[sumo] 06/18: Imported Upstream version 0.25.0+dfsg1
Anton Gladky
gladk at moszumanska.debian.org
Tue Jan 12 21:37:10 UTC 2016
This is an automated email from the git hooks/post-receive script.
gladk pushed a commit to branch master
in repository sumo.
commit c4a28a0d75855d03dfac9336ed3b63a7c1186dc8
Author: Anton Gladky <gladk at debian.org>
Date: Tue Jan 12 15:27:53 2016 +0100
Imported Upstream version 0.25.0+dfsg1
---
AUTHORS | 4 +-
Makefile.am | 18 +-
Makefile.in | 18 +-
bin/Makefile.am | 6 +-
bin/Makefile.in | 6 +-
configure | 182 +-
configure.ac | 28 +-
data/xsd/additional_file.xsd | 15 +-
data/xsd/baseTypes.xsd | 4 +-
data/xsd/connections_file.xsd | 1 +
data/xsd/edgediff_file.xsd | 4 +-
data/xsd/edges_file.xsd | 4 +-
data/xsd/marouterConfiguration.xsd | 4 +-
data/xsd/net_file.xsd | 10 +-
data/xsd/netconvertConfiguration.xsd | 10 +
data/xsd/netgenerateConfiguration.xsd | 8 +
data/xsd/polyconvertConfiguration.xsd | 2 +
data/xsd/routeTypes.xsd | 4 +-
data/xsd/sumoConfiguration.xsd | 3 +-
docs/examples/sumo/busses/busses.sumocfg | 2 +-
docs/examples/sumo/hokkaido/hokkaido.sumocfg | 2 +-
.../cross3ltl_emission/cross3ltl_emission.sumocfg | 2 +-
.../output/cross3ltl_fcd/cross3ltl_fcd.sumocfg | 2 +-
.../output/cross3ltl_full/cross3ltl_full.sumocfg | 2 +-
.../cross3ltl_inductloops.sumocfg | 2 +-
.../cross3ltl_meandata_constrained.sumocfg | 2 +-
.../cross3ltl_meandata_edges.sumocfg | 2 +-
.../cross3ltl_meandata_lanes.sumocfg | 2 +-
.../output/cross3ltl_queue/cross3ltl_queue.sumocfg | 2 +-
.../cross3ltl_rawdump/cross3ltl_rawdump.sumocfg | 2 +-
.../cross3ltl_summary/cross3ltl_summary.sumocfg | 2 +-
.../cross3ltl_tripinfo/cross3ltl_tripinfo.sumocfg | 2 +-
.../cross3ltl_vehroutes.sumocfg | 2 +-
.../cross3ltl_vtypeprobe.sumocfg | 2 +-
.../sumo/simple_nets/box/box1l/box1l.sumocfg | 2 +-
.../sumo/simple_nets/box/box2l/box2l.sumocfg | 2 +-
.../sumo/simple_nets/box/box3l/box3l.sumocfg | 2 +-
.../sumo/simple_nets/box/box4l/box4l.sumocfg | 2 +-
.../simple_nets/cross/cross1ltl/cross1ltl.sumocfg | 2 +-
.../sumo/simple_nets/cross/cross3l/cross3l.sumocfg | 2 +-
.../simple_nets/cross/cross3ltl/cross3ltl.sumocfg | 2 +-
.../variable_speed_signs.sumocfg | 2 +-
.../sumo/vehicle_stops/vehicle_stops.sumocfg | 2 +-
.../sumo/visualization/parade/parade.sumocfg | 2 +-
docs/examples/tools/traceExporter/fcd.xml | 13 +
docs/tutorial/traci_tls/runner.py | 46 +-
src/Makefile.am | 2 +-
src/Makefile.in | 4 +-
src/config.h | 6 +-
src/dfrouter/RODFNet.cpp | 6 +-
src/duarouter/duarouter_main.cpp | 8 +-
src/foreign/additional.txt | 2 +-
src/foreign/eulerspiral/BiArc.cpp | 3 +-
src/gui/GUIApplicationWindow.cpp | 87 +-
src/gui/GUIApplicationWindow.h | 14 +-
src/gui/GUILoadThread.cpp | 8 +-
src/gui/GUISUMOViewParent.cpp | 15 +-
src/gui/GUITLLogicPhasesTrackerWindow.cpp | 3 +-
src/gui/GUIViewTraffic.cpp | 83 +-
src/gui/GUIViewTraffic.h | 9 +-
src/gui/TraCIServerAPI_GUI.cpp | 7 +-
src/gui/TraCIServerAPI_GUI.h | 8 +-
src/gui/dialogs/GUIDialog_AppSettings.cpp | 24 +-
src/gui/dialogs/GUIDialog_AppSettings.h | 8 +-
src/guinetload/GUIDetectorBuilder.cpp | 25 +-
src/guinetload/GUIDetectorBuilder.h | 20 +-
src/guinetload/GUITriggerBuilder.cpp | 16 +-
src/guinetload/GUITriggerBuilder.h | 10 +-
src/guisim/{GUIVehicle.cpp => GUIBaseVehicle.cpp} | 760 +-
src/guisim/{GUIVehicle.h => GUIBaseVehicle.h} | 168 +-
src/guisim/GUIBusStop.cpp | 28 +-
src/guisim/GUICalibrator.cpp | 3 +-
.../{GUIChrgStn.cpp => GUIChargingStation.cpp} | 51 +-
src/guisim/{GUIChrgStn.h => GUIChargingStation.h} | 28 +-
src/guisim/GUIContainer.cpp | 16 +-
src/guisim/GUIContainerStop.cpp | 3 +-
src/guisim/GUIE3Collector.cpp | 7 +-
src/guisim/GUIEdge.cpp | 122 +-
src/guisim/GUIEdge.h | 14 +-
src/guisim/GUIInductLoop.cpp | 3 +-
src/guisim/GUIInstantInductLoop.cpp | 3 +-
src/guisim/GUIJunctionWrapper.cpp | 26 +-
src/guisim/GUILane.cpp | 133 +-
src/guisim/GUILane.h | 27 +-
src/guisim/GUILaneSpeedTrigger.cpp | 3 +-
src/guisim/GUINet.cpp | 22 +-
src/guisim/GUINet.h | 18 +-
src/guisim/GUIPerson.cpp | 123 +-
src/guisim/GUIPerson.h | 12 +-
src/guisim/GUITrafficLightLogicWrapper.cpp | 6 +-
src/guisim/GUITriggeredRerouter.cpp | 3 +-
src/guisim/GUITriggeredRerouter.h | 6 +-
src/guisim/GUIVehicle.cpp | 1182 +-
src/guisim/GUIVehicle.h | 240 +-
src/guisim/GUI_E2_ZS_Collector.cpp | 4 +-
src/guisim/GUI_E2_ZS_Collector.h | 7 +-
src/guisim/GUI_E2_ZS_CollectorOverLanes.cpp | 5 +-
src/guisim/GUI_E2_ZS_CollectorOverLanes.h | 14 +-
src/guisim/Makefile.am | 3 +-
src/guisim/Makefile.in | 11 +-
src/marouter/ROMAAssignments.cpp | 228 +-
src/marouter/ROMAAssignments.h | 14 +-
src/marouter/ROMAFrame.cpp | 16 +-
src/marouter/marouter_main.cpp | 48 +-
src/microsim/MSBaseVehicle.cpp | 32 +-
src/microsim/MSBaseVehicle.h | 19 +-
src/microsim/MSBitSetLogic.h | 12 +-
src/microsim/MSCModel_NonInteracting.cpp | 10 +-
src/microsim/MSContainer.cpp | 81 +-
src/microsim/MSContainer.h | 30 +-
src/microsim/MSContainerControl.cpp | 4 +-
src/microsim/MSEdge.cpp | 74 +-
src/microsim/MSFrame.cpp | 18 +-
src/microsim/MSInsertionControl.cpp | 16 +-
src/microsim/MSInsertionControl.h | 8 +-
src/microsim/MSJunction.cpp | 32 +-
src/microsim/MSJunction.h | 13 +-
src/microsim/MSJunctionControl.cpp | 7 +-
src/microsim/MSJunctionControl.h | 9 +-
src/microsim/MSLane.cpp | 24 +-
src/microsim/MSLane.h | 4 +-
src/microsim/MSLaneChanger.cpp | 40 +-
src/microsim/MSLaneChanger.h | 4 +-
src/microsim/MSLink.cpp | 137 +-
src/microsim/MSLink.h | 38 +-
src/microsim/MSLogicJunction.h | 5 +-
src/microsim/MSNet.cpp | 47 +-
src/microsim/MSNet.h | 39 +-
src/microsim/MSPersonControl.cpp | 13 +-
src/microsim/MSPersonControl.h | 42 +-
src/microsim/MSRouteHandler.cpp | 129 +-
src/microsim/MSRouteHandler.h | 4 +-
src/microsim/MSStoppingPlace.cpp | 35 +-
src/microsim/MSStoppingPlace.h | 30 +-
src/microsim/MSTransportable.cpp | 10 +-
src/microsim/MSTransportable.h | 61 +-
src/microsim/MSVehicle.cpp | 187 +-
src/microsim/MSVehicle.h | 23 +-
src/microsim/MSVehicleContainer.h | 3 +-
src/microsim/MSVehicleControl.cpp | 3 +-
src/microsim/MSVehicleTransfer.cpp | 6 +-
src/microsim/actions/Command_SaveTLCoupledDet.h | 3 +-
src/microsim/cfmodels/MSCFModel_Daniel1.cpp | 4 +-
src/microsim/cfmodels/MSCFModel_KraussOrig1.cpp | 4 +-
src/microsim/cfmodels/MSCFModel_SmartSK.cpp | 4 +-
src/microsim/devices/MSDevice_BTreceiver.cpp | 11 +-
src/microsim/devices/MSDevice_BTreceiver.h | 3 +-
src/microsim/devices/MSDevice_BTsender.cpp | 6 +-
src/microsim/devices/MSDevice_BTsender.h | 4 +-
src/microsim/devices/MSDevice_Battery.cpp | 205 +-
src/microsim/devices/MSDevice_Battery.h | 24 +-
src/microsim/devices/MSDevice_Container.cpp | 6 +-
src/microsim/devices/MSDevice_Person.cpp | 6 +-
src/microsim/devices/MSDevice_Routing.cpp | 13 +-
src/microsim/devices/MSDevice_Tripinfo.cpp | 116 +-
src/microsim/devices/MSDevice_Tripinfo.h | 28 +-
src/microsim/devices/MSDevice_Vehroutes.cpp | 8 +-
.../lcmodels/MSAbstractLaneChangeModel.cpp | 6 +-
src/microsim/lcmodels/MSLCM_DK2008.cpp | 12 +-
src/microsim/lcmodels/MSLCM_JE2013.cpp | 64 +-
src/microsim/lcmodels/MSLCM_LC2013.cpp | 30 +-
src/microsim/output/MSBatteryExport.cpp | 102 +-
src/microsim/output/MSEmissionExport.cpp | 5 +-
src/microsim/output/MSFCDExport.cpp | 9 +-
src/microsim/output/MSFullExport.cpp | 6 +-
src/microsim/output/MSXMLRawOut.cpp | 7 +-
.../pedestrians/MSPModel_NonInteracting.cpp | 9 +-
src/microsim/pedestrians/MSPModel_Striping.cpp | 316 +-
src/microsim/pedestrians/MSPModel_Striping.h | 75 +-
src/microsim/pedestrians/MSPerson.cpp | 111 +-
src/microsim/pedestrians/MSPerson.h | 29 +-
.../traffic_lights/MSActuatedTrafficLightLogic.cpp | 33 +-
.../traffic_lights/MSActuatedTrafficLightLogic.h | 16 +-
.../traffic_lights/MSOffTrafficLightLogic.h | 7 +-
src/microsim/traffic_lights/MSRailSignal.cpp | 6 +-
.../traffic_lights/MSSimpleTrafficLightLogic.cpp | 3 +-
.../traffic_lights/MSSimpleTrafficLightLogic.h | 11 +-
src/microsim/traffic_lights/MSTLLogicControl.h | 15 +-
.../traffic_lights/MSTrafficLightLogic.cpp | 28 +-
src/microsim/trigger/MSCalibrator.cpp | 4 +-
.../{MSChrgStn.cpp => MSChargingStation.cpp} | 36 +-
.../trigger/{MSChrgStn.h => MSChargingStation.h} | 35 +-
src/microsim/trigger/MSTriggeredRerouter.cpp | 4 +-
src/microsim/trigger/MSTriggeredRerouter.h | 5 +-
src/microsim/trigger/Makefile.am | 2 +-
src/microsim/trigger/Makefile.in | 6 +-
src/netbuild/NBAlgorithms.cpp | 4 +-
src/netbuild/NBAlgorithms_Ramps.cpp | 43 +-
src/netbuild/NBAlgorithms_Ramps.h | 4 +-
src/netbuild/NBContHelper.cpp | 22 +-
src/netbuild/NBContHelper.h | 13 +-
src/netbuild/NBDistrict.cpp | 6 +-
src/netbuild/NBEdge.cpp | 286 +-
src/netbuild/NBEdge.h | 42 +-
src/netbuild/NBEdgeCont.cpp | 91 +-
src/netbuild/NBEdgeCont.h | 17 +-
src/netbuild/NBFrame.cpp | 45 +-
src/netbuild/NBHelpers.cpp | 38 +-
src/netbuild/NBHelpers.h | 10 +-
src/netbuild/NBLinkPossibilityMatrix.h | 4 +-
src/netbuild/NBLoadedSUMOTLDef.cpp | 71 +-
src/netbuild/NBNetBuilder.cpp | 53 +-
src/netbuild/NBNetBuilder.h | 4 +-
src/netbuild/NBNode.cpp | 260 +-
src/netbuild/NBNode.h | 24 +-
src/netbuild/NBNodeCont.cpp | 53 +-
src/netbuild/NBNodeShapeComputer.cpp | 152 +-
src/netbuild/NBOwnTLDef.cpp | 184 +-
src/netbuild/NBOwnTLDef.h | 25 +-
src/netbuild/NBRequest.cpp | 52 +-
src/netbuild/NBRequest.h | 13 +-
src/netbuild/NBTrafficLightDefinition.cpp | 73 +-
src/netbuild/NBTrafficLightDefinition.h | 12 +-
src/netbuild/NBTrafficLightLogic.cpp | 5 +-
src/netedit/GNEApplicationWindow.cpp | 1253 +
src/netedit/GNEApplicationWindow.h | 325 +
src/netedit/GNEAttributeCarrier.cpp | 229 +
src/netedit/GNEAttributeCarrier.h | 183 +
.../GNEChange.cpp} | 40 +-
.../MSJunctionControl.h => netedit/GNEChange.h} | 91 +-
src/netedit/GNEChange_Attribute.cpp | 88 +
src/netedit/GNEChange_Attribute.h | 98 +
src/netedit/GNEChange_Connection.cpp | 105 +
src/netedit/GNEChange_Connection.h | 95 +
src/netedit/GNEChange_Edge.cpp | 100 +
.../NBHelpers.h => netedit/GNEChange_Edge.h} | 74 +-
src/netedit/GNEChange_Junction.cpp | 103 +
.../GNEChange_Junction.h} | 75 +-
src/netedit/GNEChange_Lane.cpp | 114 +
src/netedit/GNEChange_Lane.h | 89 +
src/netedit/GNEChange_Selection.cpp | 113 +
.../NBHelpers.h => netedit/GNEChange_Selection.h} | 73 +-
src/netedit/GNEChange_TLS.cpp | 111 +
src/netedit/GNEChange_TLS.h | 83 +
src/netedit/GNEConnector.cpp | 568 +
src/netedit/GNEConnector.h | 182 +
src/netedit/GNECrossing.cpp | 242 +
src/netedit/GNECrossing.h | 163 +
src/netedit/GNEDialog_About.cpp | 142 +
.../GNEDialog_About.h} | 51 +-
src/netedit/GNEDialog_Wizard.cpp | 192 +
src/netedit/GNEDialog_Wizard.h | 131 +
src/netedit/GNEEdge.cpp | 778 +
src/netedit/GNEEdge.h | 296 +
.../GNEEvent_NetworkLoaded.h} | 58 +-
src/netedit/GNEInspector.cpp | 353 +
src/netedit/GNEInspector.h | 169 +
src/netedit/GNEInternalLane.cpp | 215 +
src/netedit/GNEInternalLane.h | 189 +
src/netedit/GNEJunction.cpp | 596 +
src/netedit/GNEJunction.h | 298 +
src/netedit/GNELane.cpp | 718 +
src/netedit/GNELane.h | 237 +
src/netedit/GNELoadThread.cpp | 282 +
src/netedit/GNELoadThread.h | 123 +
src/netedit/GNENet.cpp | 1023 +
src/netedit/GNENet.h | 492 +
src/netedit/GNEPOI.cpp | 222 +
src/netedit/GNEPOI.h | 117 +
src/netedit/GNEPoly.cpp | 267 +
src/netedit/GNEPoly.h | 208 +
src/netedit/GNEReferenceCounter.h | 99 +
src/netedit/GNESelector.cpp | 530 +
src/netedit/GNESelector.h | 200 +
src/netedit/GNETLSEditor.cpp | 682 +
src/netedit/GNETLSEditor.h | 216 +
src/netedit/GNEUndoList.cpp | 162 +
src/netedit/GNEUndoList.h | 146 +
src/netedit/GNEViewNet.cpp | 1263 +
src/netedit/GNEViewNet.h | 363 +
src/netedit/GNEViewParent.cpp | 241 +
src/netedit/GNEViewParent.h | 126 +
src/netedit/Makefile.am | 84 +
{unittest/src => src/netedit}/Makefile.in | 503 +-
src/netedit/netedit64.ico | Bin 0 -> 16958 bytes
src/netedit/netedit_main.cpp | 153 +
src/netedit/tlslogo.cpp | 159 +
src/netgen/NGFrame.cpp | 6 +-
src/netgen/NGNode.cpp | 4 +-
src/netgen/NGRandomNetBuilder.cpp | 37 +-
src/netimport/NIImporter_ArcView.cpp | 9 +-
src/netimport/NIImporter_DlrNavteq.cpp | 6 +-
src/netimport/NIImporter_OpenDrive.cpp | 63 +-
src/netimport/NIImporter_OpenDrive.h | 22 +-
src/netimport/NIImporter_OpenStreetMap.cpp | 32 +-
src/netimport/NIImporter_SUMO.cpp | 131 +-
src/netimport/NIImporter_SUMO.h | 15 +-
src/netimport/NIXMLConnectionsHandler.cpp | 11 +-
src/netimport/NIXMLEdgesHandler.cpp | 4 +-
src/netimport/NIXMLNodesHandler.cpp | 38 +-
.../vissim/tempstructs/NIVissimAbstractEdge.cpp | 25 +-
.../vissim/tempstructs/NIVissimAbstractEdge.h | 4 +-
.../tempstructs/NIVissimConnectionCluster.cpp | 8 +-
.../vissim/tempstructs/NIVissimConnectionCluster.h | 11 +-
src/netimport/vissim/tempstructs/NIVissimEdge.cpp | 11 +-
.../vissim/tempstructs/NIVissimNodeDef_Poly.cpp | 51 +-
src/netload/NLBuilder.cpp | 6 +-
src/netload/NLBuilder.h | 4 +-
src/netload/NLDetectorBuilder.cpp | 57 +-
src/netload/NLDetectorBuilder.h | 23 +-
src/netload/NLEdgeControlBuilder.cpp | 11 +-
src/netload/NLHandler.cpp | 40 +-
src/netload/NLHandler.h | 31 +-
src/netload/NLJunctionControlBuilder.cpp | 32 +-
src/netload/NLJunctionControlBuilder.h | 8 +-
src/netload/NLTriggerBuilder.cpp | 27 +-
src/netload/NLTriggerBuilder.h | 10 +-
src/netwrite/NWFrame.cpp | 4 +-
src/netwrite/NWWriter_Amitran.cpp | 6 +-
src/netwrite/NWWriter_OpenDrive.cpp | 162 +-
src/netwrite/NWWriter_OpenDrive.h | 8 +-
src/netwrite/NWWriter_SUMO.cpp | 17 +-
src/od/ODMatrix.cpp | 21 +-
src/od/ODMatrix.h | 19 +-
src/polyconvert/PCLoaderArcView.cpp | 20 +-
src/polyconvert/PCLoaderVisum.cpp | 4 +-
src/polyconvert/PCLoaderXML.cpp | 6 +-
src/polyconvert/PCPolyContainer.cpp | 37 +-
src/polyconvert/PCTypeDefHandler.cpp | 4 +-
src/polyconvert/PCTypeMap.cpp | 4 +-
src/polyconvert/polyconvert_main.cpp | 8 +-
src/router/ROEdge.cpp | 16 +-
src/router/ROEdge.h | 20 +-
src/router/ROFrame.cpp | 12 +-
src/router/ROLoader.cpp | 6 +-
src/router/ROLoader.h | 4 +-
src/router/RONet.cpp | 10 +-
src/router/RORouteDef.cpp | 6 +-
src/sumo_main.cpp | 4 +-
src/traci-server/TraCIServerAPI_ArealDetector.cpp | 4 +-
src/traci-server/TraCIServerAPI_Edge.cpp | 6 +-
src/traci-server/TraCIServerAPI_Lane.cpp | 4 +-
src/traci-server/TraCIServerAPI_Person.cpp | 4 +-
src/traci-server/TraCIServerAPI_Polygon.cpp | 4 +-
src/traci-server/TraCIServerAPI_TLS.cpp | 8 +-
src/traci-server/TraCIServerAPI_Vehicle.cpp | 4 +-
src/traci_testclient/TraCITestClient.cpp | 18 +-
src/traci_testclient/TraCITestClient.h | 5 +-
src/utils/common/FileHelpers.cpp | 5 +-
src/utils/common/Named.h | 7 +-
src/utils/common/SUMOVehicleClass.cpp | 3 +-
src/utils/common/SUMOVehicleClass.h | 6 +-
src/utils/common/StdDefs.cpp | 5 +-
src/utils/common/StdDefs.h | 7 +-
src/utils/foxtools/FXLinkLabel.cpp | 5 +-
src/utils/foxtools/FXLinkLabel.h | 5 +-
src/utils/foxtools/FXWorkerThread.h | 4 +-
src/utils/geom/Boundary.cpp | 11 +-
src/utils/geom/GeoConvHelper.cpp | 8 +-
src/utils/geom/GeoConvHelper.h | 4 +-
src/utils/geom/GeomHelper.cpp | 338 +-
src/utils/geom/GeomHelper.h | 103 +-
src/utils/geom/Line.cpp | 254 -
src/utils/geom/Line.h | 95 -
src/utils/geom/Makefile.am | 2 +-
src/utils/geom/Makefile.in | 6 +-
src/utils/geom/Position.h | 19 +-
src/utils/geom/PositionVector.cpp | 587 +-
src/utils/geom/PositionVector.h | 96 +-
src/utils/gui/div/GLHelper.cpp | 25 +-
src/utils/gui/div/GLHelper.h | 10 +-
src/utils/gui/div/GUIDialog_GLChosenEditor.cpp | 4 +-
src/utils/gui/div/GUIMessageWindow.cpp | 136 +-
src/utils/gui/div/GUIMessageWindow.h | 30 +-
src/utils/gui/globjects/GUIGLObjectPopupMenu.cpp | 11 +-
src/utils/gui/globjects/GUIGLObjectPopupMenu.h | 5 +-
src/utils/gui/globjects/GUIGlObject.cpp | 3 +-
src/utils/gui/globjects/GUIGlObject.h | 12 +-
src/utils/gui/globjects/GUIGlObjectTypes.h | 4 +-
.../gui/globjects/GUIGlObject_AbstractAdd.cpp | 3 +-
src/utils/gui/globjects/GUIPointOfInterest.cpp | 4 +-
src/utils/gui/globjects/GUIPolygon.cpp | 14 +-
src/utils/gui/globjects/GUIPolygon.h | 8 +-
src/utils/gui/images/GUITexturesHelper.cpp | 7 +-
src/utils/gui/images/GUITexturesHelper.h | 8 +-
src/utils/gui/settings/GUIPropertySchemeStorage.h | 6 +-
src/utils/gui/settings/GUISettingsHandler.cpp | 8 +-
.../gui/settings/GUIVisualizationSettings.cpp | 49 +-
src/utils/gui/settings/GUIVisualizationSettings.h | 12 +-
src/utils/gui/windows/GUIAppEnum.h | 31 +-
.../gui/windows/GUIDanielPerspectiveChanger.cpp | 6 +-
src/utils/gui/windows/GUIDialog_GLObjChooser.cpp | 6 +-
src/utils/gui/windows/GUIDialog_ViewSettings.cpp | 31 +-
src/utils/gui/windows/GUIDialog_ViewSettings.h | 5 +-
src/utils/gui/windows/GUIMainWindow.h | 6 +-
src/utils/gui/windows/GUISUMOAbstractView.cpp | 10 +-
src/utils/gui/windows/GUISUMOAbstractView.h | 6 +-
src/utils/iodevices/OutputDevice.cpp | 4 +-
src/utils/iodevices/OutputDevice_File.cpp | 8 +-
src/utils/shapes/PointOfInterest.h | 46 +-
src/utils/shapes/Polygon.cpp | 6 +-
src/utils/shapes/Shape.cpp | 4 +-
src/utils/shapes/Shape.h | 18 +-
src/utils/shapes/ShapeHandler.cpp | 8 +-
src/utils/traci/TraCIAPI.cpp | 13 +-
src/utils/traci/TraCIAPI.h | 4 +-
src/utils/vehicle/AStarRouter.h | 13 +-
src/utils/vehicle/CHRouter.h | 4 +-
src/utils/vehicle/DijkstraRouterEffort.h | 13 +-
src/utils/vehicle/DijkstraRouterTT.h | 13 +-
src/utils/vehicle/SUMOAbstractRouter.h | 4 +-
src/utils/vehicle/SUMOVehicle.h | 10 +-
src/utils/vehicle/SUMOVehicleParameter.cpp | 4 +-
src/utils/vehicle/SUMOVehicleParameter.h | 4 +-
src/utils/xml/SUMOVehicleParserHelper.cpp | 4 +-
src/utils/xml/SUMOXMLDefinitions.cpp | 19 +-
src/utils/xml/SUMOXMLDefinitions.h | 20 +-
src/version.h | 2 +-
src/windows_config.h | 4 +-
sumo.doxyconf | 2547 +-
tools/assign/duaIterate.py | 19 +-
tools/build/checkSvnProps.py | 5 +-
tools/build/dailyBuildMSVC.py | 85 +-
tools/build/dailyUpdateMakeGCC.sh | 4 +-
tools/build/status.py | 48 +-
tools/build/wix.py | 76 +-
tools/contributed/traci4j/.classpath | 43 +-
.../.externalToolBuilders/TraCI4J [Builder].launch | 24 -
tools/contributed/traci4j/.gitignore | 1 +
tools/contributed/traci4j/.project | 14 +-
.../.settings/org.eclipse.core.resources.prefs | 6 +
.../traci4j/.settings/org.eclipse.jdt.core.prefs | 13 +
.../traci4j/.settings/org.eclipse.m2e.core.prefs | 4 +
tools/contributed/traci4j/README.md | 6 +-
tools/contributed/traci4j/build.xml | 58 +-
.../appeal/traci/examples/OpenStepsClose.java | 6 +-
.../appeal/traci/examples/TcpNoDelayControl.java | 115 +-
tools/contributed/traci4j/pom.xml | 335 +
tools/contributed/traci4j/src/java-gen/.gitignore | 5 -
.../src/java/de/uniluebeck/itm/tcpip/Socket.java | 50 +-
.../src/java/de/uniluebeck/itm/tcpip/Storage.java | 26 +-
.../java/it/polito/appeal/traci/AddRouteQuery.java | 164 +-
.../it/polito/appeal/traci/AddVehicleQuery.java | 247 +-
.../it/polito/appeal/traci/ChangeColorQuery.java | 100 +-
.../appeal/traci/ChangeEdgeTravelTimeQuery.java | 148 +-
.../polito/appeal/traci/ChangeLaneIndexQuery.java | 92 +-
.../appeal/traci/ChangeLightsStateQuery.java | 92 +-
.../polito/appeal/traci/ChangeMaxSpeedQuery.java | 82 +-
.../polito/appeal/traci/ChangeObjectVarQuery.java | 258 +-
.../polito/appeal/traci/ChangePositionQuery.java | 96 +-
.../it/polito/appeal/traci/ChangeRouteQuery.java | 104 +-
.../it/polito/appeal/traci/ChangeSpeedQuery.java | 82 +-
.../it/polito/appeal/traci/ChangeTargetQuery.java | 92 +-
.../java/it/polito/appeal/traci/CloseQuery.java | 78 +-
.../it/polito/appeal/traci/ControlledLink.java | 142 +-
.../it/polito/appeal/traci/ControlledLinks.java | 76 +-
.../appeal/traci/LaneIndexQueryParameter.java | 98 +-
.../java/it/polito/appeal/traci/LaneListQuery.java | 82 +-
.../java/it/polito/appeal/traci/LightState.java | 82 +-
.../src/java/it/polito/appeal/traci/Link.java | 238 +-
.../src/java/it/polito/appeal/traci/Logic.java | 178 +-
.../java/it/polito/appeal/traci/MultiQuery.java | 5 +-
.../src/java/it/polito/appeal/traci/Phase.java | 144 +-
.../src/java/it/polito/appeal/traci/Program.java | 108 +-
.../appeal/traci/ReadCompleteDefinitionQuery.java | 92 +-
.../appeal/traci/ReadControlledLinksQuery.java | 118 +-
.../it/polito/appeal/traci/ReadLinksQuery.java | 134 +-
.../it/polito/appeal/traci/ReadShapeQuery.java | 92 +-
.../it/polito/appeal/traci/ReadTLStateQuery.java | 94 +-
.../it/polito/appeal/traci/RemoveVehicleQuery.java | 158 +-
.../java/it/polito/appeal/traci/Repository.java | 177 +-
.../java/it/polito/appeal/traci/RerouteQuery.java | 92 +-
.../it/polito/appeal/traci/SimulationData.java | 36 +-
.../java/it/polito/appeal/traci/StreamLogger.java | 137 +-
.../it/polito/appeal/traci/SumoHttpRetriever.java | 324 +-
.../polito/appeal/traci/SumoTraciConnection.java | 497 +-
.../src/java/it/polito/appeal/traci/TLState.java | 130 +-
.../it/polito/appeal/traci/TraCIException.java | 56 +-
.../it/polito/appeal/traci/VehicleSetQuery.java | 84 +-
.../polito/appeal/traci/protocol/BoundingBox.java | 959 +-
.../it/polito/appeal/traci/protocol/Command.java | 250 +-
.../it/polito/appeal/traci/protocol/Constants.java | 21 +-
.../it/polito/appeal/traci/protocol/Polygon.java | 156 +-
.../appeal/traci/protocol/RequestMessage.java | 241 +-
.../appeal/traci/protocol/ResponseContainer.java | 180 +-
.../appeal/traci/protocol/ResponseMessage.java | 260 +-
.../appeal/traci/protocol/RoadmapPosition.java | 172 +-
.../appeal/traci/protocol/StatusResponse.java | 216 +-
.../polito/appeal/traci/protocol/StringList.java | 625 +-
.../appeal/traci/protocol/WriteableToStorage.java | 78 +-
.../traci4j/src/xml/traciObjects/Edge.xml | 47 +-
.../traci4j/src/xml/traciObjects/InductionLoop.xml | 39 +-
.../{InductionLoop.xml => LaArDetector.xml} | 153 +-
.../traci4j/src/xml/traciObjects/Lane.xml | 126 +-
.../traci4j/src/xml/traciObjects/MeMeDetector.xml | 29 +-
.../traci4j/src/xml/traciObjects/POI.xml | 47 +-
.../traci4j/src/xml/traciObjects/Route.xml | 5 +-
.../traci4j/src/xml/traciObjects/TrafficLight.xml | 271 +-
.../traci4j/src/xml/traciObjects/Vehicle.xml | 115 +-
.../traci4j/src/xml/traciObjects/VehicleType.xml | 36 +-
.../contributed/traci4j/src/xslt/traciObject.xslt | 4 +-
.../polito/appeal/traci/test/HttpDownloadTest.java | 2 +-
.../it/polito/appeal/traci/test/NanoHTTPD.java | 21 +-
.../appeal/traci/test/NonzeroBeginTimeTest.java | 6 +-
.../appeal/traci/test/PositionConvertionTest.java | 51 +-
.../polito/appeal/traci/test/RemoteTraCITest.java | 30 +-
.../appeal/traci/test/SingleSimTraCITest.java | 6 +-
...{NonzeroBeginTimeTest.java => SumoGuiTest.java} | 32 +-
.../polito/appeal/traci/test/TraCIServerTest.java | 22 +-
.../it/polito/appeal/traci/test/TraCITest.java | 1937 +-
.../appeal/traci/test/TrafficLightsTest.java | 17 +-
tools/contributed/traci4j/test/log4j.properties | 14 -
.../contributed/traci4j/test/resources/log4j2.xml | 6 +
.../sumo_maps/box1l/input_routes.rou.xml | 0
.../{ => resources}/sumo_maps/box1l/net.net.xml | 152 +-
.../box1l/test-nonzero-begin-time.sumo.cfg | 0
.../{ => resources}/sumo_maps/box1l/test.sumo.cfg | 0
.../sumo_maps/box1l/three_split.net.xml | 0
.../sumo_maps/cross3ltl/input_routes.rou.xml | 0
.../sumo_maps/cross3ltl/net.net.xml | 0
.../sumo_maps/cross3ltl/test.sumo.cfg | 0
.../sumo_maps/polito/polito.net.xml | 64536 +++++++++----------
.../{ => resources}/sumo_maps/polito/polito.osm | 0
.../{ => resources}/sumo_maps/polito/test.sumo.cfg | 0
.../variable_speed_signs/e1_detectors.xml | 2 +
.../variable_speed_signs/e2_detectors.xml | 2 +
.../variable_speed_signs/e3_detectors.xml | 10 +-
.../variable_speed_signs/input_routes.rou.xml | 0
.../sumo_maps/variable_speed_signs/net.net.xml | 0
.../sumo_maps/variable_speed_signs/pois.poi.xml | 6 +-
.../sumo_maps/variable_speed_signs/test.sumo.cfg | 2 +-
tools/districts2poly.py | 2 +-
tools/edgesInDistricts.py | 38 +-
tools/game/runner.py | 8 +-
tools/game/setup.py | 11 +-
tools/generateBidiDistricts.py | 77 +-
tools/import/vissim/vissim_parseRoutes.py | 48 +-
tools/net/netextract.py | 21 +-
tools/{import/osm => }/osmBuild.py | 74 +-
tools/{import/osm => }/osmGet.py | 29 +-
tools/{import/osm/server.py => osmWebWizard.py} | 128 +-
tools/output/analyze_teleports.py | 4 +-
tools/pedestrianFlow.py | 35 +-
tools/projects/evacuation/evacuation.py | 183 +
tools/projects/evacuation/generateTraffic.py | 86 +
tools/randomTrips.py | 6 +-
tools/route/extractRouteEdges.py | 46 -
tools/route2sel.py | 15 +-
tools/shapes/circlePolygon.py | 18 +-
tools/sumolib/__init__.py | 7 +-
tools/sumolib/net/__init__.py | 33 +-
tools/sumolib/net/connection.py | 20 +-
tools/sumolib/net/lane.py | 11 +-
tools/sumolib/net/node.py | 22 +-
tools/sumolib/output/convert/ns2.py | 9 +-
tools/sumolib/output/convert/omnet.py | 9 +-
tools/sumolib/output/convert/phem.py | 24 +-
tools/sumolib/shapes/polygon.py | 10 +-
tools/tlsCoordinator.py | 337 +
tools/traceExporter.py | 56 +-
tools/traci/route.py | 6 +-
.../osm => webWizard}/SimpleWebSocketServer.py | 2 +-
tools/webWizard/__init__.py | 19 +
tools/{import/osm => webWizard}/images/bicycle.png | Bin
tools/{import/osm => webWizard}/images/bus.png | Bin
.../{import/osm => webWizard}/images/generate.png | Bin
tools/{import/osm => webWizard}/images/map.png | Bin
.../osm => webWizard}/images/motorcycle.png | Bin
.../{import/osm => webWizard}/images/passenger.png | Bin
.../osm => webWizard}/images/pedestrian.png | Bin
tools/{import/osm => webWizard}/images/rail.png | Bin
.../osm => webWizard}/images/rail_urban.png | Bin
tools/{import/osm => webWizard}/images/ship.png | Bin
tools/{import/osm => webWizard}/images/tram.png | Bin
tools/{import/osm => webWizard}/images/truck.png | Bin
tools/{import/osm => webWizard}/index.html | 2 +-
tools/{import/osm => webWizard}/lib.js | 0
tools/{import/osm => webWizard}/script.js | 0
tools/{import/osm => webWizard}/style.css | 0
tools_filelist | Bin 118874 -> 119328 bytes
unittest/src/Makefile.am | 1 -
unittest/src/Makefile.in | 2 -
unittest/src/utils/geom/GeomHelperTest.cpp | 6 +-
unittest/src/utils/geom/LineTest.cpp | 174 -
unittest/src/utils/geom/Makefile.am | 1 -
unittest/src/utils/geom/Makefile.in | 4 +-
unittest/src/utils/geom/PositionVectorTest.cpp | 33 +-
577 files changed, 63592 insertions(+), 45993 deletions(-)
diff --git a/AUTHORS b/AUTHORS
index e157e93..73ace82 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -51,8 +51,8 @@ Evamarie Wiessner
Andreas Kendziorra <> kend-an
Robert Hilbrich <> rhilbrich
Thomas Lockhart <Thomas.G.Lockhart at jpl.nasa.gov>
-Gerald Richter
-Lukas Grohmann
+Gerald Richter <Gerald.Richter at ait.ac.at> ait-mob-dts
+Lukas Grohmann <Lukas.Grohmann at ait.ac.at>
Tamas Kurczveil
Pablo Alvarez Lopez
diff --git a/Makefile.am b/Makefile.am
index a455083..9eb89c2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,7 @@ SUBDIRS = src unittest bin
EXTRA_DIST = README ChangeLog AUTHORS COPYING INSTALL NEWS sumo.doxyconf
-doc: pydoc doxygen userdoc
+doc: pydoc doxygen userdoc javadoc
pydoc:
rm -rf docs/pydoc
@@ -20,6 +20,14 @@ doxygen:
userdoc:
tools/build/buildHTMLDocs.py -o docs/userdoc -i docs/wiki/index.html -r $(VERSION) && cp docs/wiki/*.png docs/wiki/*.css docs/userdoc
+javadoc:
+ rm -rf docs/javadoc
+ mkdir docs/javadoc
+ mvn --batch-mode -f tools/contributed/traci4j/pom.xml javadoc:javadoc
+ mv tools/contributed/traci4j/target/site/apidocs docs/javadoc/traci4j
+ ant -f tools/contributed/traas/build.xml javadoc
+ mv tools/contributed/traas/javadoc docs/javadoc/traas
+
man:
rm -rf docs/man
mkdir docs/man
@@ -31,6 +39,7 @@ man:
help2man -N -n "Generates routes of persons throughout a day for the microscopic road traffic simulation SUMO" bin/activitygen > docs/man/activitygen.1
help2man -N -n "Importer of O/D-matrices for the road traffic simulation SUMO" bin/od2trips > docs/man/od2trips.1
help2man -N -n "Road network importer / builder for the road traffic simulation SUMO" bin/netconvert > docs/man/netconvert.1
+ help2man -N -n "Road network editor for the road traffic simulation SUMO" bin/netedit > docs/man/netedit.1
help2man -N -n "Road network generator for the microscopic road traffic simulation SUMO" bin/netgenerate > docs/man/netgenerate.1
help2man -N -n "Importer of polygons and POIs for the road traffic simulation SUMO" bin/polyconvert > docs/man/polyconvert.1
help2man -N -n "TraCITestClient for the road traffic simulation SUMO" bin/TraCITestClient > docs/man/TraCITestClient.1
@@ -61,7 +70,7 @@ dist-doc: doc
mv $(distdir)/tests/complex/tutorial $(distdir)/docs
rmdir $(distdir)/tests/complex
rmdir $(distdir)/tests
- cp -r docs/pydoc docs/doxygen docs/userdoc $(distdir)/docs
+ cp -r docs/pydoc docs/doxygen docs/userdoc docs/javadoc $(distdir)/docs
tools/extractTest.py -i -f tests/examples.txt -o $(distdir)/docs
tar -czf $(PACKAGE)-doc-$(VERSION).tar.gz $(distdir)
rm -f $(PACKAGE)-doc-$(VERSION).zip
@@ -96,8 +105,8 @@ traas:
cp tools/contributed/traas/dist/TraaS.jar bin
traci4j:
- ant -f tools/contributed/traci4j/build.xml clean build deploy
- cp tools/contributed/traci4j/*.jar bin
+ mvn --batch-mode -f tools/contributed/traci4j/pom.xml clean install || true
+ cp tools/contributed/traci4j/target/*.jar bin || true
trafficmodeler:
cd tools/contributed/trafficmodeler && ./build.sh
@@ -107,5 +116,6 @@ sumo$(EXEEXT) netconvert$(EXEEXT) \
netgenerate$(EXEEXT) duarouter$(EXEEXT) \
dfrouter$(EXEEXT) jtrrouter$(EXEEXT) \
od2trips$(EXEEXT) polyconvert$(EXEEXT) \
+ netedit$(EXEEXT) \
sumo-gui$(EXEEXT):
$(MAKE) -C src $@
diff --git a/Makefile.in b/Makefile.in
index e768b11..a94dd57 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -796,7 +796,7 @@ uninstall-am:
uninstall-am
-doc: pydoc doxygen userdoc
+doc: pydoc doxygen userdoc javadoc
pydoc:
rm -rf docs/pydoc
@@ -814,6 +814,14 @@ doxygen:
userdoc:
tools/build/buildHTMLDocs.py -o docs/userdoc -i docs/wiki/index.html -r $(VERSION) && cp docs/wiki/*.png docs/wiki/*.css docs/userdoc
+javadoc:
+ rm -rf docs/javadoc
+ mkdir docs/javadoc
+ mvn --batch-mode -f tools/contributed/traci4j/pom.xml javadoc:javadoc
+ mv tools/contributed/traci4j/target/site/apidocs docs/javadoc/traci4j
+ ant -f tools/contributed/traas/build.xml javadoc
+ mv tools/contributed/traas/javadoc docs/javadoc/traas
+
man:
rm -rf docs/man
mkdir docs/man
@@ -825,6 +833,7 @@ man:
help2man -N -n "Generates routes of persons throughout a day for the microscopic road traffic simulation SUMO" bin/activitygen > docs/man/activitygen.1
help2man -N -n "Importer of O/D-matrices for the road traffic simulation SUMO" bin/od2trips > docs/man/od2trips.1
help2man -N -n "Road network importer / builder for the road traffic simulation SUMO" bin/netconvert > docs/man/netconvert.1
+ help2man -N -n "Road network editor for the road traffic simulation SUMO" bin/netedit > docs/man/netedit.1
help2man -N -n "Road network generator for the microscopic road traffic simulation SUMO" bin/netgenerate > docs/man/netgenerate.1
help2man -N -n "Importer of polygons and POIs for the road traffic simulation SUMO" bin/polyconvert > docs/man/polyconvert.1
help2man -N -n "TraCITestClient for the road traffic simulation SUMO" bin/TraCITestClient > docs/man/TraCITestClient.1
@@ -855,7 +864,7 @@ dist-doc: doc
mv $(distdir)/tests/complex/tutorial $(distdir)/docs
rmdir $(distdir)/tests/complex
rmdir $(distdir)/tests
- cp -r docs/pydoc docs/doxygen docs/userdoc $(distdir)/docs
+ cp -r docs/pydoc docs/doxygen docs/userdoc docs/javadoc $(distdir)/docs
tools/extractTest.py -i -f tests/examples.txt -o $(distdir)/docs
tar -czf $(PACKAGE)-doc-$(VERSION).tar.gz $(distdir)
rm -f $(PACKAGE)-doc-$(VERSION).zip
@@ -890,8 +899,8 @@ traas:
cp tools/contributed/traas/dist/TraaS.jar bin
traci4j:
- ant -f tools/contributed/traci4j/build.xml clean build deploy
- cp tools/contributed/traci4j/*.jar bin
+ mvn --batch-mode -f tools/contributed/traci4j/pom.xml clean install || true
+ cp tools/contributed/traci4j/target/*.jar bin || true
trafficmodeler:
cd tools/contributed/trafficmodeler && ./build.sh
@@ -901,6 +910,7 @@ sumo$(EXEEXT) netconvert$(EXEEXT) \
netgenerate$(EXEEXT) duarouter$(EXEEXT) \
dfrouter$(EXEEXT) jtrrouter$(EXEEXT) \
od2trips$(EXEEXT) polyconvert$(EXEEXT) \
+ netedit$(EXEEXT) \
sumo-gui$(EXEEXT):
$(MAKE) -C src $@
diff --git a/bin/Makefile.am b/bin/Makefile.am
index a97ef12..284fda3 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -1,9 +1,7 @@
if WITH_GUI
GUI_APP = sumo-gui
-if INTERNAL
NETEDIT_APP = netedit
endif
-endif
if TRACI
TRACI_TESTCLIENT_APP = TraCITestClient
@@ -16,6 +14,7 @@ duarouter duarouterD duarouterInt duarouterIntD \
jtrrouter jtrrouterD jtrrouterInt jtrrouterIntD \
marouter marouterD marouterInt marouterIntD \
netconvert netconvertD netconvertInt netconvertIntD \
+netedit neteditD neteditInt neteditIntD \
netgenerate netgenerateD netgenerateInt netgenerateIntD \
od2trips od2tripsD od2tripsInt od2tripsIntD \
polyconvert polyconvertD polyconvertInt polyconvertIntD \
@@ -107,7 +106,10 @@ $(GUI_APP): ../src/$(GUI_APP)
if [ ! -e $(GUI_APP) -a -e $(GUI_APP)D ]; then ln -s $(GUI_APP)D $(GUI_APP); fi
$(NETEDIT_APP): ../src/netedit/$(NETEDIT_APP)
cp ../src/netedit/$(NETEDIT_APP) ./`echo $(NETEDIT_APP) | sed '$(transform)'`
+ if [ ! -e $(NETEDIT_APP) -a -e $(NETEDIT_APP)Int ]; then ln -s $(NETEDIT_APP)Int $(NETEDIT_APP); fi
+ if [ ! -e $(NETEDIT_APP)D -a -e $(NETEDIT_APP)IntD ]; then ln -s $(NETEDIT_APP)IntD $(NETEDIT_APP)D; fi
if [ ! -e $(NETEDIT_APP) -a -e $(NETEDIT_APP)D ]; then ln -s $(NETEDIT_APP)D $(NETEDIT_APP); fi
+ if [ ! -e $(NETEDIT_APP)Int -a -e $(NETEDIT_APP)IntD ]; then ln -s $(NETEDIT_APP)IntD $(NETEDIT_APP)Int; fi
$(TRACI_TESTCLIENT_APP): ../src/traci_testclient/$(TRACI_TESTCLIENT_APP)
cp ../src/traci_testclient/$(TRACI_TESTCLIENT_APP) ./`echo $(TRACI_TESTCLIENT_APP) | sed '$(transform)'`
if [ ! -e $(TRACI_TESTCLIENT_APP) -a -e $(TRACI_TESTCLIENT_APP)Int ]; then ln -s $(TRACI_TESTCLIENT_APP)Int $(TRACI_TESTCLIENT_APP); fi
diff --git a/bin/Makefile.in b/bin/Makefile.in
index c77f9ca..428846e 100644
--- a/bin/Makefile.in
+++ b/bin/Makefile.in
@@ -252,7 +252,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@WITH_GUI_TRUE at GUI_APP = sumo-gui
- at INTERNAL_TRUE@@WITH_GUI_TRUE at NETEDIT_APP = netedit
+ at WITH_GUI_TRUE@NETEDIT_APP = netedit
@TRACI_TRUE at TRACI_TESTCLIENT_APP = TraCITestClient
CLEANFILES = sumo sumoD meso mesoD \
sumo-gui sumo-guiD meso-gui meso-guiD \
@@ -261,6 +261,7 @@ duarouter duarouterD duarouterInt duarouterIntD \
jtrrouter jtrrouterD jtrrouterInt jtrrouterIntD \
marouter marouterD marouterInt marouterIntD \
netconvert netconvertD netconvertInt netconvertIntD \
+netedit neteditD neteditInt neteditIntD \
netgenerate netgenerateD netgenerateInt netgenerateIntD \
od2trips od2tripsD od2tripsInt od2tripsIntD \
polyconvert polyconvertD polyconvertInt polyconvertIntD \
@@ -543,7 +544,10 @@ $(GUI_APP): ../src/$(GUI_APP)
if [ ! -e $(GUI_APP) -a -e $(GUI_APP)D ]; then ln -s $(GUI_APP)D $(GUI_APP); fi
$(NETEDIT_APP): ../src/netedit/$(NETEDIT_APP)
cp ../src/netedit/$(NETEDIT_APP) ./`echo $(NETEDIT_APP) | sed '$(transform)'`
+ if [ ! -e $(NETEDIT_APP) -a -e $(NETEDIT_APP)Int ]; then ln -s $(NETEDIT_APP)Int $(NETEDIT_APP); fi
+ if [ ! -e $(NETEDIT_APP)D -a -e $(NETEDIT_APP)IntD ]; then ln -s $(NETEDIT_APP)IntD $(NETEDIT_APP)D; fi
if [ ! -e $(NETEDIT_APP) -a -e $(NETEDIT_APP)D ]; then ln -s $(NETEDIT_APP)D $(NETEDIT_APP); fi
+ if [ ! -e $(NETEDIT_APP)Int -a -e $(NETEDIT_APP)IntD ]; then ln -s $(NETEDIT_APP)IntD $(NETEDIT_APP)Int; fi
$(TRACI_TESTCLIENT_APP): ../src/traci_testclient/$(TRACI_TESTCLIENT_APP)
cp ../src/traci_testclient/$(TRACI_TESTCLIENT_APP) ./`echo $(TRACI_TESTCLIENT_APP) | sed '$(transform)'`
if [ ! -e $(TRACI_TESTCLIENT_APP) -a -e $(TRACI_TESTCLIENT_APP)Int ]; then ln -s $(TRACI_TESTCLIENT_APP)Int $(TRACI_TESTCLIENT_APP); fi
diff --git a/configure b/configure
index e0fdea8..2763d14 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for sumo 0.24.0.
+# Generated by GNU Autoconf 2.69 for sumo 0.25.0.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sumo'
PACKAGE_TARNAME='sumo'
-PACKAGE_VERSION='0.24.0'
-PACKAGE_STRING='sumo 0.24.0'
+PACKAGE_VERSION='0.25.0'
+PACKAGE_STRING='sumo 0.25.0'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -653,17 +653,17 @@ GDAL_CONFIG
PROJ_LDFLAGS
LIB_XERCES
XERCES_LDFLAGS
+XERCES_LIBS
+XERCES_CFLAGS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
WITH_VERSION_H_FALSE
WITH_VERSION_H_TRUE
TRACI_FALSE
TRACI_TRUE
INTERNAL_FALSE
INTERNAL_TRUE
-XERCES_LIBS
-XERCES_CFLAGS
-PKG_CONFIG_LIBDIR
-PKG_CONFIG_PATH
-PKG_CONFIG
CHECK_MEMORY_LEAKS_FALSE
CHECK_MEMORY_LEAKS_TRUE
CXXCPP
@@ -1377,7 +1377,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures sumo 0.24.0 to adapt to many kinds of systems.
+\`configure' configures sumo 0.25.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1448,7 +1448,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of sumo 0.24.0:";;
+ short | recursive ) echo "Configuration of sumo 0.25.0:";;
esac
cat <<\_ACEOF
@@ -1595,7 +1595,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-sumo configure 0.24.0
+sumo configure 0.25.0
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2244,7 +2244,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by sumo $as_me 0.24.0, which was
+It was created by sumo $as_me 0.25.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3223,7 +3223,7 @@ fi
# Define the identity of the package.
PACKAGE='sumo'
- VERSION='0.24.0'
+ VERSION='0.25.0'
cat >>confdefs.h <<_ACEOF
@@ -15718,6 +15718,82 @@ $as_echo "#define OUTPUT_ACCURACY 2" >>confdefs.h
$as_echo "#define GEO_OUTPUT_ACCURACY 6" >>confdefs.h
+ if test -d $srcdir/src/mesosim; then
+ INTERNAL_TRUE=
+ INTERNAL_FALSE='#'
+else
+ INTERNAL_TRUE='#'
+ INTERNAL_FALSE=
+fi
+
+
+
+
+# Check whether --enable-traci was given.
+if test "${enable_traci+set}" = set; then :
+ enableval=$enable_traci;
+fi
+
+ if test x$enable_traci != xno; then
+ TRACI_TRUE=
+ TRACI_FALSE='#'
+else
+ TRACI_TRUE='#'
+ TRACI_FALSE=
+fi
+
+if test x$enable_traci != xno; then
+ ac_enabled="$ac_enabled TRACI"
+else
+
+$as_echo "#define NO_TRACI 1" >>confdefs.h
+
+ ac_disabled="$ac_disabled TRACI"
+fi
+
+ if test -d .svn; then
+ WITH_VERSION_H_TRUE=
+ WITH_VERSION_H_FALSE='#'
+else
+ WITH_VERSION_H_TRUE='#'
+ WITH_VERSION_H_FALSE=
+fi
+
+if test -d .svn || test x$PACKAGE_VERSION == xsvn -a -f src/version.h; then
+
+$as_echo "#define HAVE_VERSION_H 1" >>confdefs.h
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION_STRING "$PACKAGE_VERSION"
+_ACEOF
+
+fi
+
+
+case "$host" in
+ *-cygwin*)
+
+$as_echo "#define HAVE_CYGWIN 1" >>confdefs.h
+
+
+$as_echo "#define WIN32 1" >>confdefs.h
+
+
+$as_echo "#define NOMINMAX 1" >>confdefs.h
+
+ ;;
+ *-darwin*)
+ CPPFLAGS="$CPPFLAGS -I/opt/local/include"
+ export CPPFLAGS
+ LDFLAGS="$LDFLAGS -L/opt/local/lib"
+ export LDFLAGS
+ ;;
+esac
+
+
+
@@ -15917,77 +15993,6 @@ $as_echo "#define XERCES3_SIZE_t XMLSize_t" >>confdefs.h
fi
- if test -d $srcdir/src/mesosim; then
- INTERNAL_TRUE=
- INTERNAL_FALSE='#'
-else
- INTERNAL_TRUE='#'
- INTERNAL_FALSE=
-fi
-
-
-
-
-# Check whether --enable-traci was given.
-if test "${enable_traci+set}" = set; then :
- enableval=$enable_traci;
-fi
-
- if test x$enable_traci != xno; then
- TRACI_TRUE=
- TRACI_FALSE='#'
-else
- TRACI_TRUE='#'
- TRACI_FALSE=
-fi
-
-if test x$enable_traci != xno; then
- ac_enabled="$ac_enabled TRACI"
-else
-
-$as_echo "#define NO_TRACI 1" >>confdefs.h
-
- ac_disabled="$ac_disabled TRACI"
-fi
-
- if test -d .svn; then
- WITH_VERSION_H_TRUE=
- WITH_VERSION_H_FALSE='#'
-else
- WITH_VERSION_H_TRUE='#'
- WITH_VERSION_H_FALSE=
-fi
-
-if test -d .svn || test x$PACKAGE_VERSION == xsvn -a -f src/version.h; then
-
-$as_echo "#define HAVE_VERSION_H 1" >>confdefs.h
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION_STRING "$PACKAGE_VERSION"
-_ACEOF
-
-fi
-
-
-case "$host" in
- *-cygwin*)
-
-$as_echo "#define HAVE_CYGWIN 1" >>confdefs.h
-
-
-$as_echo "#define WIN32 1" >>confdefs.h
-
-
-$as_echo "#define NOMINMAX 1" >>confdefs.h
-
- ;;
-esac
-
-
-
-
# Check whether --with-xerces was given.
if test "${with_xerces+set}" = set; then :
withval=$with_xerces;
@@ -16574,7 +16579,7 @@ if test x"$with_python" == x; then
with_python=no
fi
if test x"$with_python" != xno; then
- PYTHON_LIBS=`python -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('BLDLIBRARY')"`
+ PYTHON_LIBS=`python -c "import distutils.sysconfig; bl = distutils.sysconfig.get_config_var('BLDLIBRARY'); print bl if bl else '-lpython2.7'"`
save_cppflags=$CPPFLAGS
PYTHON_INCLUDES=`python -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('INCLUDEPY')"`
@@ -17614,7 +17619,7 @@ done
-ac_config_files="$ac_config_files src/Makefile src/activitygen/Makefile src/activitygen/activities/Makefile src/activitygen/city/Makefile src/foreign/Makefile src/foreign/eulerspiral/Makefile src/foreign/gl2ps/Makefile src/foreign/mersenne/Makefile src/foreign/nvwa/Makefile src/foreign/polyfonts/Makefile src/foreign/rtree/Makefile src/foreign/tcpip/Makefile src/gui/Makefile src/gui/dialogs/Makefile src/guinetload/Makefile src/guisim/Makefile src/microsim/Makefile src/microsim/actions/Mak [...]
+ac_config_files="$ac_config_files src/Makefile src/activitygen/Makefile src/activitygen/activities/Makefile src/activitygen/city/Makefile src/foreign/Makefile src/foreign/eulerspiral/Makefile src/foreign/gl2ps/Makefile src/foreign/mersenne/Makefile src/foreign/nvwa/Makefile src/foreign/polyfonts/Makefile src/foreign/rtree/Makefile src/foreign/tcpip/Makefile src/gui/Makefile src/gui/dialogs/Makefile src/guinetload/Makefile src/guisim/Makefile src/microsim/Makefile src/microsim/actions/Mak [...]
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -18178,7 +18183,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by sumo $as_me 0.24.0, which was
+This file was extended by sumo $as_me 0.25.0, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18244,7 +18249,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-sumo config.status 0.24.0
+sumo config.status 0.25.0
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@@ -18779,6 +18784,7 @@ do
"src/microsim/trigger/Makefile") CONFIG_FILES="$CONFIG_FILES src/microsim/trigger/Makefile" ;;
"src/marouter/Makefile") CONFIG_FILES="$CONFIG_FILES src/marouter/Makefile" ;;
"src/netbuild/Makefile") CONFIG_FILES="$CONFIG_FILES src/netbuild/Makefile" ;;
+ "src/netedit/Makefile") CONFIG_FILES="$CONFIG_FILES src/netedit/Makefile" ;;
"src/netgen/Makefile") CONFIG_FILES="$CONFIG_FILES src/netgen/Makefile" ;;
"src/netimport/Makefile") CONFIG_FILES="$CONFIG_FILES src/netimport/Makefile" ;;
"src/netimport/vissim/Makefile") CONFIG_FILES="$CONFIG_FILES src/netimport/vissim/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index b37a9ab..eaf3149 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(sumo, 0.24.0)
+AC_INIT(sumo, 0.25.0)
AC_CONFIG_SRCDIR(src/sumo_main.cpp)
AC_CANONICAL_SYSTEM
@@ -98,23 +98,17 @@ AC_DEFINE([NUMERICAL_EPS], [(SUMOReal)0.001], [defines the epsilon to use on gen
AC_DEFINE([OUTPUT_ACCURACY], [2], [defines the number of digits after the comma in output])
AC_DEFINE([GEO_OUTPUT_ACCURACY], [6], [defines the number of digits after the comma in geo-coordinates output])
-dnl ... for xerces 3.0
-PKG_CHECK_MODULES([XERCES], [xerces-c >= 3.0],
- [AC_DEFINE([XERCES3_SIZE_t],[XMLSize_t],[Define length for Xerces 3.])],
- [AC_DEFINE([XERCES3_SIZE_t],[unsigned int],[Define length for Xerces 2.])])
-
-
AM_CONDITIONAL(INTERNAL, test -d $srcdir/src/mesosim)
m4_syscmd([test -d src/mesosim])
m4_if(m4_sysval,[0],[
AC_DEFINE([HAVE_INTERNAL], [1], [Define to enable internal code.])
- AC_CONFIG_FILES([src/mesogui/Makefile src/mesosim/Makefile src/netedit/Makefile src/osgview/Makefile])
+ AC_CONFIG_FILES([src/mesogui/Makefile src/mesosim/Makefile src/osgview/Makefile])
INTERNAL_DIRS="mesosim"
AC_SUBST([INTERNAL_DIRS])
- GUI_INTERNAL_DIRS="mesogui netedit osgview"
+ GUI_INTERNAL_DIRS="mesogui osgview"
AC_SUBST([GUI_INTERNAL_DIRS])
ac_enabled="$ac_enabled Internal"
- program_transform_name="s,\$\$,Int,; s,sumoInt,meso,; s,sumo-guiInt,meso-gui,; s,neteditInt,netedit,; $program_transform_name"
+ program_transform_name="s,\$\$,Int,; s,sumoInt,meso,; s,sumo-guiInt,meso-gui,; $program_transform_name"
])
AC_ARG_ENABLE([traci],[AS_HELP_STRING([--disable-traci],[disable Traffic Control Interface (TraCI) Server [default=no].])])
@@ -143,6 +137,12 @@ case "$host" in
AC_DEFINE([WIN32], [1], [Xerces and Fox expect this to be defined (cygwin)])
AC_DEFINE([NOMINMAX], [1], [Including windows.h gives errors otherwise (cygwin)])
;;
+ *-darwin*)
+ CPPFLAGS="$CPPFLAGS -I/opt/local/include"
+ export CPPFLAGS
+ LDFLAGS="$LDFLAGS -L/opt/local/lib"
+ export LDFLAGS
+ ;;
esac
@@ -150,6 +150,11 @@ dnl ---------------------------------------------
dnl check for libraries...
dnl - - - - - - - - - - - - - - - - - - - - - - -
+dnl ... for xerces 3.0
+PKG_CHECK_MODULES([XERCES], [xerces-c >= 3.0],
+ [AC_DEFINE([XERCES3_SIZE_t],[XMLSize_t],[Define length for Xerces 3.])],
+ [AC_DEFINE([XERCES3_SIZE_t],[unsigned int],[Define length for Xerces 2.])])
+
dnl ... for xerces
AC_ARG_WITH([xerces], [AS_HELP_STRING([--with-xerces=DIR],[where Xerces-C is installed (libraries in DIR/lib, headers in DIR/include).])])
if test x"$with_xerces" != x; then
@@ -375,7 +380,7 @@ if test x"$with_python" == x; then
with_python=no
fi
if test x"$with_python" != xno; then
- PYTHON_LIBS=`python -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('BLDLIBRARY')"`
+ PYTHON_LIBS=`python -c "import distutils.sysconfig; bl = distutils.sysconfig.get_config_var('BLDLIBRARY'); print bl if bl else '-lpython2.7'"`
AC_SUBST(PYTHON_LIBS)
save_cppflags=$CPPFLAGS
PYTHON_INCLUDES=`python -c "import distutils.sysconfig; print distutils.sysconfig.get_config_var('INCLUDEPY')"`
@@ -462,6 +467,7 @@ src/microsim/traffic_lights/Makefile
src/microsim/trigger/Makefile
src/marouter/Makefile
src/netbuild/Makefile
+src/netedit/Makefile
src/netgen/Makefile
src/netimport/Makefile
src/netimport/vissim/Makefile
diff --git a/data/xsd/additional_file.xsd b/data/xsd/additional_file.xsd
index fe11c4f..afbcd19 100644
--- a/data/xsd/additional_file.xsd
+++ b/data/xsd/additional_file.xsd
@@ -19,7 +19,7 @@
<xsd:element name="edgeData" type="meandataType" minOccurs="0"/>
<xsd:element name="laneData" type="meandataType" minOccurs="0"/>
<xsd:element name="timedEvent" type="timedEventType" minOccurs="0"/>
- <xsd:element name="tlLogic" type="tlLogicType" minOccurs="0"/>
+ <xsd:element name="tlLogic" type="tlLogicAdditionalType" minOccurs="0"/>
<xsd:element name="WAUT" type="WAUTType" minOccurs="0"/>
<xsd:element name="wautJunction" type="wautJunctionType" minOccurs="0"/>
<xsd:element name="variableSpeedSign" type="variableSpeedSignType" minOccurs="0"/>
@@ -314,4 +314,17 @@
<xsd:attribute name="height" type="xsd:float" use="optional"/>
</xsd:complexType>
+ <!-- differs from baseTypes.xsd/tlLogicType in 'type' being optional here -->
+ <xsd:complexType name="tlLogicAdditionalType">
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:element name="phase" type="phaseType"/>
+ <xsd:element name="param" type="paramType"/>
+ </xsd:choice>
+ <xsd:attribute name="id" type="xsd:string" use="required"/>
+ <xsd:attribute name="type" type="tlTypeType" use="optional"/>
+ <xsd:attribute name="programID" type="xsd:string" use="required"/>
+ <xsd:attribute name="offset" type="xsd:float" use="optional"/>
+ </xsd:complexType>
+
+
</xsd:schema>
diff --git a/data/xsd/baseTypes.xsd b/data/xsd/baseTypes.xsd
index e0e5f11..79717fb 100644
--- a/data/xsd/baseTypes.xsd
+++ b/data/xsd/baseTypes.xsd
@@ -203,7 +203,7 @@
<xsd:attribute name="state" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
- <xsd:pattern value="[ruyYgGoO]+"/>
+ <xsd:pattern value="[ruyYgGoOs]+"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
@@ -247,6 +247,8 @@
<xsd:enumeration value="rail_signal"/>
<xsd:enumeration value="allway_stop"/>
<xsd:enumeration value="priority_stop"/>
+ <xsd:enumeration value="zipper"/>
+ <xsd:enumeration value="traffic_light_right_on_red"/>
</xsd:restriction>
</xsd:simpleType>
diff --git a/data/xsd/connections_file.xsd b/data/xsd/connections_file.xsd
index 4395d2b..ee452c2 100644
--- a/data/xsd/connections_file.xsd
+++ b/data/xsd/connections_file.xsd
@@ -30,6 +30,7 @@
<xsd:attribute name="pass" type="boolType" use="optional"/>
<xsd:attribute name="uncontrolled" type="boolType" use="optional"/>
<xsd:attribute name="keepClear" type="boolType" use="optional"/>
+ <xsd:attribute name="contPos" type="xsd:float" use="optional"/>
</xsd:complexType>
<xsd:complexType name="prohibitionType">
diff --git a/data/xsd/edgediff_file.xsd b/data/xsd/edgediff_file.xsd
index 295311f..6c944bb 100644
--- a/data/xsd/edgediff_file.xsd
+++ b/data/xsd/edgediff_file.xsd
@@ -46,8 +46,8 @@
<xsd:attribute name="priority" type="xsd:int" use="optional"/>
<xsd:attribute name="width" type="positiveFloatType" use="optional"/>
<xsd:attribute name="shape" type="shapeType" use="optional"/>
- <xsd:attribute name="sidewalkWidth" type="positiveFloatType"/>
- <xsd:attribute name="bikeLaneWidth" type="positiveFloatType"/>
+ <xsd:attribute name="sidewalkWidth" type="nonNegativeFloatType"/>
+ <xsd:attribute name="bikeLaneWidth" type="nonNegativeFloatType"/>
<xsd:attribute name="spreadType" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
diff --git a/data/xsd/edges_file.xsd b/data/xsd/edges_file.xsd
index 806b184..d094bdb 100644
--- a/data/xsd/edges_file.xsd
+++ b/data/xsd/edges_file.xsd
@@ -45,8 +45,8 @@
<xsd:attribute name="priority" type="xsd:int" use="optional"/>
<xsd:attribute name="width" type="positiveFloatType" use="optional"/>
<xsd:attribute name="shape" type="shapeType" use="optional"/>
- <xsd:attribute name="sidewalkWidth" type="positiveFloatType"/>
- <xsd:attribute name="bikeLaneWidth" type="positiveFloatType"/>
+ <xsd:attribute name="sidewalkWidth" type="nonNegativeFloatType"/>
+ <xsd:attribute name="bikeLaneWidth" type="nonNegativeFloatType"/>
<xsd:attribute name="spreadType" use="optional">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
diff --git a/data/xsd/marouterConfiguration.xsd b/data/xsd/marouterConfiguration.xsd
index d6166a5..867aac9 100644
--- a/data/xsd/marouterConfiguration.xsd
+++ b/data/xsd/marouterConfiguration.xsd
@@ -27,6 +27,7 @@
<xsd:element name="weight-files" type="fileOptionType" minOccurs="0"/>
<xsd:element name="lane-weight-files" type="fileOptionType" minOccurs="0"/>
<xsd:element name="weight-attribute" type="strOptionType" minOccurs="0"/>
+ <xsd:element name="weight-adaption" type="floatOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
@@ -34,7 +35,6 @@
<xsd:all>
<xsd:element name="output-prefix" type="strOptionType" minOccurs="0"/>
<xsd:element name="output-file" type="fileOptionType" minOccurs="0"/>
- <xsd:element name="flow-output" type="fileOptionType" minOccurs="0"/>
<xsd:element name="ignore-vehicle-type" type="boolOptionType" minOccurs="0"/>
<xsd:element name="netload-output" type="fileOptionType" minOccurs="0"/>
<xsd:element name="all-pairs-output" type="fileOptionType" minOccurs="0"/>
@@ -56,7 +56,7 @@
<xsd:element name="prefix" type="strOptionType" minOccurs="0"/>
<xsd:element name="timeline" type="strOptionType" minOccurs="0"/>
<xsd:element name="timeline.day-in-hours" type="boolOptionType" minOccurs="0"/>
- <xsd:element name="timesplit" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="additive-traffic" type="boolOptionType" minOccurs="0"/>
<xsd:element name="assignment-method" type="strOptionType" minOccurs="0"/>
<xsd:element name="tolerance" type="floatOptionType" minOccurs="0"/>
<xsd:element name="left-turn-penalty" type="floatOptionType" minOccurs="0"/>
diff --git a/data/xsd/net_file.xsd b/data/xsd/net_file.xsd
index 36fc9d1..2a451d8 100644
--- a/data/xsd/net_file.xsd
+++ b/data/xsd/net_file.xsd
@@ -37,6 +37,9 @@
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
+ <xsd:attribute name="junctionCornerDetail" type="xsd:int"/>
+ <xsd:attribute name="junctionLinkDetail" type="xsd:int"/>
+ <xsd:attribute name="lefthand" type="boolType"/>
</xsd:complexType>
<xsd:complexType name="edgeType">
@@ -86,7 +89,7 @@
<xsd:attribute name="speed" type="positiveFloatType" use="required"/>
<xsd:attribute name="length" type="positiveFloatType" use="required"/>
<xsd:attribute name="endOffset" type="positiveFloatType" use="optional"/>
- <xsd:attribute name="width" type="positiveFloatType" use="optional"/>
+ <xsd:attribute name="width" type="nonNegativeFloatType" use="optional"/>
<xsd:attribute name="shape" type="shapeTypeTwo" use="required"/>
<xsd:attribute name="customShape" type="boolType" use="optional"/>
</xsd:complexType>
@@ -111,6 +114,8 @@
<xsd:enumeration value="allway_stop"/>
<xsd:enumeration value="priority_stop"/>
<xsd:enumeration value="rail_signal"/>
+ <xsd:enumeration value="zipper"/>
+ <xsd:enumeration value="traffic_light_right_on_red"/>
<xsd:enumeration value="internal"/>
</xsd:restriction>
</xsd:simpleType>
@@ -152,6 +157,7 @@
<xsd:attribute name="toLane" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="pass" type="boolType" use="optional"/>
<xsd:attribute name="keepClear" type="boolType" use="optional"/>
+ <xsd:attribute name="contPos" type="xsd:float" use="optional"/>
<xsd:attribute name="via" type="xsd:string" use="optional"/>
<xsd:attribute name="tl" type="xsd:string" use="optional"/>
<xsd:attribute name="linkIndex" type="xsd:nonNegativeInteger" use="optional"/>
@@ -160,6 +166,7 @@
<xsd:restriction base="xsd:string">
<xsd:enumeration value="s"/>
<xsd:enumeration value="t"/>
+ <xsd:enumeration value="T"/>
<xsd:enumeration value="l"/>
<xsd:enumeration value="r"/>
<xsd:enumeration value="L"/>
@@ -177,6 +184,7 @@
<xsd:enumeration value="-"/>
<xsd:enumeration value="s"/>
<xsd:enumeration value="w"/>
+ <xsd:enumeration value="Z"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
diff --git a/data/xsd/netconvertConfiguration.xsd b/data/xsd/netconvertConfiguration.xsd
index d46d8f1..78b0e61 100644
--- a/data/xsd/netconvertConfiguration.xsd
+++ b/data/xsd/netconvertConfiguration.xsd
@@ -83,12 +83,15 @@
<xsd:element name="tls-guess.joining" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.join" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.join-dist" type="floatOptionType" minOccurs="0"/>
+ <xsd:element name="tls.uncontrolled-within" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.guess-signals" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.guess-signals.dist" type="floatOptionType" minOccurs="0"/>
+ <xsd:element name="tls.cycle.time" type="intOptionType" minOccurs="0"/>
<xsd:element name="tls.green.time" type="intOptionType" minOccurs="0"/>
<xsd:element name="tls.yellow.min-decel" type="floatOptionType" minOccurs="0"/>
<xsd:element name="tls.yellow.patch-small" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.yellow.time" type="intOptionType" minOccurs="0"/>
+ <xsd:element name="tls.left-green.time" type="intOptionType" minOccurs="0"/>
<xsd:element name="tls.half-offset" type="strOptionType" minOccurs="0"/>
<xsd:element name="tls.quarter-offset" type="strOptionType" minOccurs="0"/>
<xsd:element name="tls.default-type" type="strOptionType" minOccurs="0"/>
@@ -174,6 +177,8 @@
<xsd:element name="no-left-connections" type="boolOptionType" minOccurs="0"/>
<xsd:element name="geometry.split" type="boolOptionType" minOccurs="0"/>
<xsd:element name="geometry.remove" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="geometry.remove.keep-edges.explicit" type="strOptionType" minOccurs="0"/>
+ <xsd:element name="geometry.remove.keep-edges.input-file" type="fileOptionType" minOccurs="0"/>
<xsd:element name="geometry.max-segment-length" type="floatOptionType" minOccurs="0"/>
<xsd:element name="geometry.min-dist" type="floatOptionType" minOccurs="0"/>
<xsd:element name="geometry.max-angle" type="floatOptionType" minOccurs="0"/>
@@ -186,19 +191,23 @@
<xsd:element name="flip-y-axis" type="boolOptionType" minOccurs="0"/>
<xsd:element name="roundabouts.guess" type="boolOptionType" minOccurs="0"/>
<xsd:element name="lefthand" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="edges.join" type="boolOptionType" minOccurs="0"/>
<xsd:element name="junctions.join" type="boolOptionType" minOccurs="0"/>
<xsd:element name="junctions.join-dist" type="floatOptionType" minOccurs="0"/>
<xsd:element name="junctions.join-exclude" type="strOptionType" minOccurs="0"/>
<xsd:element name="speed.offset" type="floatOptionType" minOccurs="0"/>
<xsd:element name="speed.factor" type="floatOptionType" minOccurs="0"/>
<xsd:element name="junctions.corner-detail" type="intOptionType" minOccurs="0"/>
+ <xsd:element name="junctions.internal-link-detail" type="intOptionType" minOccurs="0"/>
<xsd:element name="check-lane-foes.roundabout" type="boolOptionType" minOccurs="0"/>
<xsd:element name="check-lane-foes.all" type="boolOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess" type="boolOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess.max-speed" type="floatOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess.min-speed" type="floatOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess.from-permissions" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="sidewalks.guess.exclude" type="strOptionType" minOccurs="0"/>
<xsd:element name="crossings.guess" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="crossings.guess.speed-threshold" type="floatOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
@@ -209,6 +218,7 @@
<xsd:element name="default.priority" type="intOptionType" minOccurs="0"/>
<xsd:element name="default.sidewalk-width" type="floatOptionType" minOccurs="0"/>
<xsd:element name="default.junctions.keep-clear" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="default.junctions.radius" type="floatOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
diff --git a/data/xsd/netgenerateConfiguration.xsd b/data/xsd/netgenerateConfiguration.xsd
index 9f9bef5..ac5696c 100644
--- a/data/xsd/netgenerateConfiguration.xsd
+++ b/data/xsd/netgenerateConfiguration.xsd
@@ -87,10 +87,13 @@
<xsd:element name="tls-guess.joining" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.join" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.join-dist" type="floatOptionType" minOccurs="0"/>
+ <xsd:element name="tls.uncontrolled-within" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="tls.cycle.time" type="intOptionType" minOccurs="0"/>
<xsd:element name="tls.green.time" type="intOptionType" minOccurs="0"/>
<xsd:element name="tls.yellow.min-decel" type="floatOptionType" minOccurs="0"/>
<xsd:element name="tls.yellow.patch-small" type="boolOptionType" minOccurs="0"/>
<xsd:element name="tls.yellow.time" type="intOptionType" minOccurs="0"/>
+ <xsd:element name="tls.left-green.time" type="intOptionType" minOccurs="0"/>
<xsd:element name="tls.half-offset" type="strOptionType" minOccurs="0"/>
<xsd:element name="tls.quarter-offset" type="strOptionType" minOccurs="0"/>
<xsd:element name="tls.default-type" type="strOptionType" minOccurs="0"/>
@@ -129,16 +132,20 @@
<xsd:element name="flip-y-axis" type="boolOptionType" minOccurs="0"/>
<xsd:element name="roundabouts.guess" type="boolOptionType" minOccurs="0"/>
<xsd:element name="lefthand" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="edges.join" type="boolOptionType" minOccurs="0"/>
<xsd:element name="junctions.join" type="boolOptionType" minOccurs="0"/>
<xsd:element name="junctions.join-dist" type="floatOptionType" minOccurs="0"/>
<xsd:element name="junctions.corner-detail" type="intOptionType" minOccurs="0"/>
+ <xsd:element name="junctions.internal-link-detail" type="intOptionType" minOccurs="0"/>
<xsd:element name="check-lane-foes.roundabout" type="boolOptionType" minOccurs="0"/>
<xsd:element name="check-lane-foes.all" type="boolOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess" type="boolOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess.max-speed" type="floatOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess.min-speed" type="floatOptionType" minOccurs="0"/>
<xsd:element name="sidewalks.guess.from-permissions" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="sidewalks.guess.exclude" type="strOptionType" minOccurs="0"/>
<xsd:element name="crossings.guess" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="crossings.guess.speed-threshold" type="floatOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
@@ -149,6 +156,7 @@
<xsd:element name="default.priority" type="intOptionType" minOccurs="0"/>
<xsd:element name="default.sidewalk-width" type="floatOptionType" minOccurs="0"/>
<xsd:element name="default.junctions.keep-clear" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="default.junctions.radius" type="floatOptionType" minOccurs="0"/>
<xsd:element name="default-junction-type" type="strOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
diff --git a/data/xsd/polyconvertConfiguration.xsd b/data/xsd/polyconvertConfiguration.xsd
index 29ea0d3..695cc7b 100644
--- a/data/xsd/polyconvertConfiguration.xsd
+++ b/data/xsd/polyconvertConfiguration.xsd
@@ -32,6 +32,7 @@
<xsd:element name="shapefile.id-column" type="strOptionType" minOccurs="0"/>
<xsd:element name="shapefile.use-running-id" type="boolOptionType" minOccurs="0"/>
<xsd:element name="shapefile.add-param" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="shapefile.fill" type="strOptionType" minOccurs="0"/>
<xsd:element name="type-file" type="fileOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
@@ -81,6 +82,7 @@
<xsd:element name="color" type="strOptionType" minOccurs="0"/>
<xsd:element name="prefix" type="strOptionType" minOccurs="0"/>
<xsd:element name="type" type="strOptionType" minOccurs="0"/>
+ <xsd:element name="fill" type="boolOptionType" minOccurs="0"/>
<xsd:element name="layer" type="intOptionType" minOccurs="0"/>
<xsd:element name="discard" type="boolOptionType" minOccurs="0"/>
</xsd:all>
diff --git a/data/xsd/routeTypes.xsd b/data/xsd/routeTypes.xsd
index 8d280cd..1e6e630 100644
--- a/data/xsd/routeTypes.xsd
+++ b/data/xsd/routeTypes.xsd
@@ -464,7 +464,8 @@
<xsd:element name="ride">
<xsd:complexType>
<xsd:attribute name="from" type="xsd:string"/>
- <xsd:attribute name="to" type="xsd:string" use="required"/>
+ <xsd:attribute name="to" type="xsd:string"/>
+ <xsd:attribute name="busStop" type="xsd:string"/>
<xsd:attribute name="lines" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
@@ -473,6 +474,7 @@
<xsd:attribute name="edges" type="xsd:string"/>
<xsd:attribute name="from" type="xsd:string"/>
<xsd:attribute name="to" type="xsd:string"/>
+ <xsd:attribute name="busStop" type="xsd:string"/>
<xsd:attribute name="speed" type="positiveFloatType"/>
<xsd:attribute name="duration" type="positiveFloatType"/>
<xsd:attribute name="departPos" type="arrivalPosType"/>
diff --git a/data/xsd/sumoConfiguration.xsd b/data/xsd/sumoConfiguration.xsd
index f7b8211..fa75911 100644
--- a/data/xsd/sumoConfiguration.xsd
+++ b/data/xsd/sumoConfiguration.xsd
@@ -135,7 +135,8 @@
<xsd:element name="log" type="fileOptionType" minOccurs="0"/>
<xsd:element name="message-log" type="fileOptionType" minOccurs="0"/>
<xsd:element name="error-log" type="fileOptionType" minOccurs="0"/>
- <xsd:element name="no-duration-log" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="duration-log.disable" type="boolOptionType" minOccurs="0"/>
+ <xsd:element name="duration-log.statistics" type="boolOptionType" minOccurs="0"/>
<xsd:element name="no-step-log" type="boolOptionType" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
diff --git a/docs/examples/sumo/busses/busses.sumocfg b/docs/examples/sumo/busses/busses.sumocfg
index a1f59cc..27be8df 100644
--- a/docs/examples/sumo/busses/busses.sumocfg
+++ b/docs/examples/sumo/busses/busses.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/hokkaido/hokkaido.sumocfg b/docs/examples/sumo/hokkaido/hokkaido.sumocfg
index 0700d26..ed95145 100644
--- a/docs/examples/sumo/hokkaido/hokkaido.sumocfg
+++ b/docs/examples/sumo/hokkaido/hokkaido.sumocfg
@@ -14,7 +14,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_emission/cross3ltl_emission.sumocfg b/docs/examples/sumo/output/cross3ltl_emission/cross3ltl_emission.sumocfg
index fc28042..0c0e62c 100644
--- a/docs/examples/sumo/output/cross3ltl_emission/cross3ltl_emission.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_emission/cross3ltl_emission.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_fcd/cross3ltl_fcd.sumocfg b/docs/examples/sumo/output/cross3ltl_fcd/cross3ltl_fcd.sumocfg
index eaa4092..4966df4 100644
--- a/docs/examples/sumo/output/cross3ltl_fcd/cross3ltl_fcd.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_fcd/cross3ltl_fcd.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_full/cross3ltl_full.sumocfg b/docs/examples/sumo/output/cross3ltl_full/cross3ltl_full.sumocfg
index acfda1a..eab5349 100644
--- a/docs/examples/sumo/output/cross3ltl_full/cross3ltl_full.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_full/cross3ltl_full.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_inductloops/cross3ltl_inductloops.sumocfg b/docs/examples/sumo/output/cross3ltl_inductloops/cross3ltl_inductloops.sumocfg
index 22dc005..9835887 100644
--- a/docs/examples/sumo/output/cross3ltl_inductloops/cross3ltl_inductloops.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_inductloops/cross3ltl_inductloops.sumocfg
@@ -15,7 +15,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_meandata_constrained/cross3ltl_meandata_constrained.sumocfg b/docs/examples/sumo/output/cross3ltl_meandata_constrained/cross3ltl_meandata_constrained.sumocfg
index 22dc005..9835887 100644
--- a/docs/examples/sumo/output/cross3ltl_meandata_constrained/cross3ltl_meandata_constrained.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_meandata_constrained/cross3ltl_meandata_constrained.sumocfg
@@ -15,7 +15,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_meandata_edges/cross3ltl_meandata_edges.sumocfg b/docs/examples/sumo/output/cross3ltl_meandata_edges/cross3ltl_meandata_edges.sumocfg
index 22dc005..9835887 100644
--- a/docs/examples/sumo/output/cross3ltl_meandata_edges/cross3ltl_meandata_edges.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_meandata_edges/cross3ltl_meandata_edges.sumocfg
@@ -15,7 +15,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_meandata_lanes/cross3ltl_meandata_lanes.sumocfg b/docs/examples/sumo/output/cross3ltl_meandata_lanes/cross3ltl_meandata_lanes.sumocfg
index 22dc005..9835887 100644
--- a/docs/examples/sumo/output/cross3ltl_meandata_lanes/cross3ltl_meandata_lanes.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_meandata_lanes/cross3ltl_meandata_lanes.sumocfg
@@ -15,7 +15,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_queue/cross3ltl_queue.sumocfg b/docs/examples/sumo/output/cross3ltl_queue/cross3ltl_queue.sumocfg
index 339e45f..f158dbb 100644
--- a/docs/examples/sumo/output/cross3ltl_queue/cross3ltl_queue.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_queue/cross3ltl_queue.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_rawdump/cross3ltl_rawdump.sumocfg b/docs/examples/sumo/output/cross3ltl_rawdump/cross3ltl_rawdump.sumocfg
index af63363..de9c465 100644
--- a/docs/examples/sumo/output/cross3ltl_rawdump/cross3ltl_rawdump.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_rawdump/cross3ltl_rawdump.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_summary/cross3ltl_summary.sumocfg b/docs/examples/sumo/output/cross3ltl_summary/cross3ltl_summary.sumocfg
index b4e5e91..6e3d90a 100644
--- a/docs/examples/sumo/output/cross3ltl_summary/cross3ltl_summary.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_summary/cross3ltl_summary.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_tripinfo/cross3ltl_tripinfo.sumocfg b/docs/examples/sumo/output/cross3ltl_tripinfo/cross3ltl_tripinfo.sumocfg
index d5dfdf5..d7a25e5 100644
--- a/docs/examples/sumo/output/cross3ltl_tripinfo/cross3ltl_tripinfo.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_tripinfo/cross3ltl_tripinfo.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_vehroutes/cross3ltl_vehroutes.sumocfg b/docs/examples/sumo/output/cross3ltl_vehroutes/cross3ltl_vehroutes.sumocfg
index fd875d8..f25a2ae 100644
--- a/docs/examples/sumo/output/cross3ltl_vehroutes/cross3ltl_vehroutes.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_vehroutes/cross3ltl_vehroutes.sumocfg
@@ -18,7 +18,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/output/cross3ltl_vtypeprobe/cross3ltl_vtypeprobe.sumocfg b/docs/examples/sumo/output/cross3ltl_vtypeprobe/cross3ltl_vtypeprobe.sumocfg
index 8c72922..58e5365 100644
--- a/docs/examples/sumo/output/cross3ltl_vtypeprobe/cross3ltl_vtypeprobe.sumocfg
+++ b/docs/examples/sumo/output/cross3ltl_vtypeprobe/cross3ltl_vtypeprobe.sumocfg
@@ -15,7 +15,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/box/box1l/box1l.sumocfg b/docs/examples/sumo/simple_nets/box/box1l/box1l.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/box/box1l/box1l.sumocfg
+++ b/docs/examples/sumo/simple_nets/box/box1l/box1l.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/box/box2l/box2l.sumocfg b/docs/examples/sumo/simple_nets/box/box2l/box2l.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/box/box2l/box2l.sumocfg
+++ b/docs/examples/sumo/simple_nets/box/box2l/box2l.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/box/box3l/box3l.sumocfg b/docs/examples/sumo/simple_nets/box/box3l/box3l.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/box/box3l/box3l.sumocfg
+++ b/docs/examples/sumo/simple_nets/box/box3l/box3l.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/box/box4l/box4l.sumocfg b/docs/examples/sumo/simple_nets/box/box4l/box4l.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/box/box4l/box4l.sumocfg
+++ b/docs/examples/sumo/simple_nets/box/box4l/box4l.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/cross/cross1ltl/cross1ltl.sumocfg b/docs/examples/sumo/simple_nets/cross/cross1ltl/cross1ltl.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/cross/cross1ltl/cross1ltl.sumocfg
+++ b/docs/examples/sumo/simple_nets/cross/cross1ltl/cross1ltl.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/cross/cross3l/cross3l.sumocfg b/docs/examples/sumo/simple_nets/cross/cross3l/cross3l.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/cross/cross3l/cross3l.sumocfg
+++ b/docs/examples/sumo/simple_nets/cross/cross3l/cross3l.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/simple_nets/cross/cross3ltl/cross3ltl.sumocfg b/docs/examples/sumo/simple_nets/cross/cross3ltl/cross3ltl.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/simple_nets/cross/cross3ltl/cross3ltl.sumocfg
+++ b/docs/examples/sumo/simple_nets/cross/cross3ltl/cross3ltl.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/variable_speed_signs/variable_speed_signs.sumocfg b/docs/examples/sumo/variable_speed_signs/variable_speed_signs.sumocfg
index 8a61f62..085c5f4 100644
--- a/docs/examples/sumo/variable_speed_signs/variable_speed_signs.sumocfg
+++ b/docs/examples/sumo/variable_speed_signs/variable_speed_signs.sumocfg
@@ -15,7 +15,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/vehicle_stops/vehicle_stops.sumocfg b/docs/examples/sumo/vehicle_stops/vehicle_stops.sumocfg
index 8575546..438d618 100644
--- a/docs/examples/sumo/vehicle_stops/vehicle_stops.sumocfg
+++ b/docs/examples/sumo/vehicle_stops/vehicle_stops.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/sumo/visualization/parade/parade.sumocfg b/docs/examples/sumo/visualization/parade/parade.sumocfg
index d2c74be..abbfc00 100644
--- a/docs/examples/sumo/visualization/parade/parade.sumocfg
+++ b/docs/examples/sumo/visualization/parade/parade.sumocfg
@@ -13,7 +13,7 @@
<report>
<xml-validation value="never"/>
- <no-duration-log value="true"/>
+ <duration-log.disable value="true"/>
<no-step-log value="true"/>
</report>
diff --git a/docs/examples/tools/traceExporter/fcd.xml b/docs/examples/tools/traceExporter/fcd.xml
index f7a0be8..193be1c 100644
--- a/docs/examples/tools/traceExporter/fcd.xml
+++ b/docs/examples/tools/traceExporter/fcd.xml
@@ -227,17 +227,30 @@
<vehicle id="r1#1" x="988.42" y="501.65" angle="-90.00" type="passenger" speed="11.11" pos="11.58" lane="2fi_0" slope="0.00"/>
<vehicle id="r1#2" x="794.20" y="498.35" angle="90.00" type="passenger" speed="11.11" pos="282.85" lane="2o_0" slope="0.00"/>
<vehicle id="r2" x="498.35" y="94.70" angle="0.00" type="passenger" speed="11.11" pos="393.95" lane="3o_0" slope="0.00"/>
+ <person id="pNE" x="97.68" y="63.48" angle="0.00" speed="0.98" pos="36.52" edge="NC" slope="0.00"/>
+ <person id="pNW" x="97.68" y="59.15" angle="0.00" speed="0.92" pos="40.85" edge="NC" slope="0.00"/>
+ <person id="pWE" x="44.95" y="-2.33" angle="90.00" speed="0.99" pos="44.95" edge="WC" slope="0.00"/>
+ <person id="pWN" x="49.47" y="-2.33" angle="90.00" speed="0.89" pos="49.47" edge="WC" slope="0.00"/>
</timestep>
<timestep time="56.00">
<vehicle id="r1#1" x="977.31" y="501.65" angle="-90.00" type="passenger" speed="11.11" pos="22.69" lane="2fi_0" slope="0.00"/>
<vehicle id="r1#2" x="805.31" y="498.35" angle="90.00" type="passenger" speed="11.11" pos="293.96" lane="2o_0" slope="0.00"/>
<vehicle id="r2" x="498.35" y="83.59" angle="0.00" type="passenger" speed="11.11" pos="405.06" lane="3o_0" slope="0.00"/>
+ <person id="pNE" x="97.68" y="62.63" angle="0.00" speed="0.85" pos="37.37" edge="NC" slope="0.00"/>
+ <person id="pNW" x="97.68" y="58.30" angle="0.00" speed="0.85" pos="41.70" edge="NC" slope="0.00"/>
+ <person id="pWE" x="45.93" y="-2.33" angle="90.00" speed="0.98" pos="45.93" edge="WC" slope="0.00"/>
+ <person id="pWN" x="50.34" y="-2.33" angle="90.00" speed="0.87" pos="50.34" edge="WC" slope="0.00"/>
</timestep>
<timestep time="57.00">
<vehicle id="r1#1" x="966.20" y="501.65" angle="-90.00" type="passenger" speed="11.11" pos="33.80" lane="2fi_0" slope="0.00"/>
<vehicle id="r1#2" x="816.42" y="498.35" angle="90.00" type="passenger" speed="11.11" pos="305.07" lane="2o_0" slope="0.00"/>
<vehicle id="r2" x="498.35" y="72.48" angle="0.00" type="passenger" speed="11.11" pos="416.17" lane="3o_0" slope="0.00"/>
+ <person id="pNE" x="97.68" y="61.63" angle="0.00" speed="1.00" pos="38.37" edge="NC" slope="0.00"/>
+ <person id="pNW" x="97.68" y="57.39" angle="0.00" speed="0.91" pos="42.61" edge="NC" slope="0.00"/>
+ <person id="pWE" x="46.91" y="-2.33" angle="90.00" speed="0.98" pos="46.91" edge="WC" slope="0.00"/>
+ <person id="pWN" x="51.22" y="-2.33" angle="90.00" speed="0.88" pos="51.22" edge="WC" slope="0.00"/>
</timestep>
+
<timestep time="58.00">
<vehicle id="r1#1" x="955.09" y="501.65" angle="-90.00" type="passenger" speed="11.11" pos="44.91" lane="2fi_0" slope="0.00"/>
<vehicle id="r1#2" x="827.53" y="498.35" angle="90.00" type="passenger" speed="11.11" pos="316.18" lane="2o_0" slope="0.00"/>
diff --git a/docs/tutorial/traci_tls/runner.py b/docs/tutorial/traci_tls/runner.py
index 94ae769..68dc624 100755
--- a/docs/tutorial/traci_tls/runner.py
+++ b/docs/tutorial/traci_tls/runner.py
@@ -6,7 +6,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2009-03-26
- at version $Id: runner.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: runner.py 19535 2015-12-05 13:47:18Z behrisch $
Tutorial for traffic light control via the TraCI interface.
@@ -41,14 +41,6 @@ import traci
# the port used for communicating with your sumo instance
PORT = 8873
-NSGREEN = "GrGr"
-NSYELLOW = "yryr"
-WEGREEN = "rGrG"
-WEYELLOW = "ryry"
-
-PROGRAM = [WEYELLOW, WEYELLOW, WEYELLOW, NSGREEN, NSGREEN, NSGREEN,
- NSGREEN, NSGREEN, NSGREEN, NSGREEN, NSGREEN, NSYELLOW, NSYELLOW, WEGREEN]
-
def generate_routefile():
random.seed(42) # make tests reproducible
@@ -60,7 +52,7 @@ def generate_routefile():
with open("data/cross.rou.xml", "w") as routes:
print >> routes, """<routes>
<vType id="typeWE" accel="0.8" decel="4.5" sigma="0.5" length="5" minGap="2.5" maxSpeed="16.67" guiShape="passenger"/>
- <vType id="typeNS" accel="0.8" decel="4.5" sigma="0.5" length="17" minGap="3" maxSpeed="25" guiShape="bus"/>
+ <vType id="typeNS" accel="0.8" decel="4.5" sigma="0.5" length="7" minGap="3" maxSpeed="25" guiShape="bus"/>
<route id="right" edges="51o 1i 2o 52i" />
<route id="left" edges="52o 2i 1o 51i" />
@@ -85,30 +77,32 @@ def generate_routefile():
lastVeh = i
print >> routes, "</routes>"
+# The program looks like this
+# <tlLogic id="0" type="static" programID="0" offset="0">
+# the locations of the tls are NESW
+# <phase duration="31" state="GrGr"/>
+# <phase duration="6" state="yryr"/>
+# <phase duration="31" state="rGrG"/>
+# <phase duration="6" state="ryry"/>
+# </tlLogic>
+
def run():
"""execute the TraCI control loop"""
traci.init(PORT)
- programPointer = len(PROGRAM) - 1
step = 0
+ # we start with phase 2 where EW has green
+ traci.trafficlights.setPhase("0", 2)
while traci.simulation.getMinExpectedNumber() > 0:
traci.simulationStep()
- programPointer = min(programPointer + 1, len(PROGRAM) - 1)
- numPriorityVehicles = traci.inductionloop.getLastStepVehicleNumber("0")
- if numPriorityVehicles > 0:
- if programPointer == len(PROGRAM) - 1:
- # we are in the WEGREEN phase. start the priority phase
- # sequence
- programPointer = 0
- elif PROGRAM[programPointer] != WEYELLOW:
- # horizontal traffic is already stopped. restart priority phase
- # sequence at green
- programPointer = 3
+ if traci.trafficlights.getPhase("0") == 2:
+ # we are not already switching
+ if traci.inductionloop.getLastStepVehicleNumber("0") > 0:
+ # there is a vehicle from the north, switch
+ traci.trafficlights.setPhase("0", 3)
else:
- # we are in the WEYELLOW phase. continue sequence
- pass
- traci.trafficlights.setRedYellowGreenState(
- "0", PROGRAM[programPointer])
+ # otherwise try to keep green for EW
+ traci.trafficlights.setPhase("0", 2)
step += 1
traci.close()
sys.stdout.flush()
diff --git a/src/Makefile.am b/src/Makefile.am
index 87b0e9c..755c97e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -7,7 +7,7 @@ endif
if WITH_GUI
GUI_APPS = sumo-gui
-GUI_DIRS = gui guinetload guisim $(GUI_INTERNAL_DIRS)
+GUI_DIRS = gui guinetload guisim netedit $(GUI_INTERNAL_DIRS)
endif
if CHECK_MEMORY_LEAKS
diff --git a/src/Makefile.in b/src/Makefile.in
index 3714700..4084628 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -256,7 +256,7 @@ CTAGS = ctags
DIST_SUBDIRS = foreign utils microsim router od marouter netbuild \
netwrite netgen netimport netload polyconvert dfrouter \
duarouter jtrrouter activitygen tools traci-server \
- traci_testclient gui guinetload guisim
+ traci_testclient gui guinetload guisim netedit
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
am__relativize = \
dir0=`pwd`; \
@@ -428,7 +428,7 @@ top_srcdir = @top_srcdir@
@INTERNAL_TRUE at MESO_LIBS = ./mesosim/libmesosim.a
@INTERNAL_TRUE at MESOGUI_LIBS = ./mesogui/libmesogui.a ./osgview/libosgview.a
@WITH_GUI_TRUE at GUI_APPS = sumo-gui
- at WITH_GUI_TRUE@GUI_DIRS = gui guinetload guisim $(GUI_INTERNAL_DIRS)
+ at WITH_GUI_TRUE@GUI_DIRS = gui guinetload guisim netedit $(GUI_INTERNAL_DIRS)
@CHECK_MEMORY_LEAKS_TRUE at MEM_LIBS = ./foreign/nvwa/libnvwa.a
@TRACI_TRUE at TRACI_LIBS = ./traci-server/libtraciserver.a ./utils/traci/libtraci.a
@TRACI_TRUE at TRACI_DIRS = traci-server traci_testclient
diff --git a/src/config.h b/src/config.h
index 0b57889..57daaf7 100644
--- a/src/config.h
+++ b/src/config.h
@@ -174,7 +174,7 @@
#define PACKAGE_NAME "sumo"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "sumo 0.24.0"
+#define PACKAGE_STRING "sumo 0.25.0"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "sumo"
@@ -183,7 +183,7 @@
#define PACKAGE_URL ""
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.24.0"
+#define PACKAGE_VERSION "0.25.0"
/* defines the epsilon to use on position comparison */
#define POSITION_EPS (SUMOReal)0.1
@@ -221,7 +221,7 @@
/* #undef TM_IN_SYS_TIME */
/* Version number of package */
-#define VERSION "0.24.0"
+#define VERSION "0.25.0"
/* Defined if auto-generated version.h is unavailable. */
/* #undef VERSION_STRING */
diff --git a/src/dfrouter/RODFNet.cpp b/src/dfrouter/RODFNet.cpp
index aea2c8a..d48be17 100644
--- a/src/dfrouter/RODFNet.cpp
+++ b/src/dfrouter/RODFNet.cpp
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Thu, 16.03.2006
-/// @version $Id: RODFNet.cpp 18627 2015-08-13 08:58:59Z namdre $
+/// @version $Id: RODFNet.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// A DFROUTER-network
/****************************************************************************/
@@ -988,11 +988,11 @@ RODFNet::buildEdgeFlowMap(const RODFDetectorFlows& flows,
fd.fLKW += (srcFD.fLKW / (SUMOReal) maxClique->size());
fd.isLKW += (srcFD.isLKW / (SUMOReal) maxClique->size());
if (!didWarn && srcFD.vPKW > 0 && srcFD.vPKW < 255 && srcFD.vPKW / 3.6 > into->getSpeed()) {
- WRITE_MESSAGE("Detected PKW speed higher than allowed speed at '" + (*l) + "' on '" + into->getID() + "'.");
+ WRITE_MESSAGE("Detected PKW speed higher than allowed speed at '" + (*l) + "' on edge '" + into->getID() + "'.");
didWarn = true;
}
if (!didWarn && srcFD.vLKW > 0 && srcFD.vLKW < 255 && srcFD.vLKW / 3.6 > into->getSpeed()) {
- WRITE_MESSAGE("Detected LKW speed higher than allowed speed at '" + (*l) + "' on '" + into->getID() + "'.");
+ WRITE_MESSAGE("Detected LKW speed higher than allowed speed at '" + (*l) + "' on edge '" + into->getID() + "'.");
didWarn = true;
}
}
diff --git a/src/duarouter/duarouter_main.cpp b/src/duarouter/duarouter_main.cpp
index f1e50b3..0f41c8e 100644
--- a/src/duarouter/duarouter_main.cpp
+++ b/src/duarouter/duarouter_main.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Thu, 06 Jun 2002
-/// @version $Id: duarouter_main.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: duarouter_main.cpp 19003 2015-10-02 14:41:41Z behrisch $
///
// Main for DUAROUTER
/****************************************************************************/
@@ -83,14 +83,14 @@ void
initNet(RONet& net, ROLoader& loader, OptionsCont& oc) {
// load the net
RODUAEdgeBuilder builder;
- ROEdge::setGlobalOptions(oc.getBool("weights.expand"), oc.getBool("weights.expand"), oc.getBool("weights.interpolate"), oc.getInt("routing-threads") > 1);
+ ROEdge::setGlobalOptions(oc.getBool("weights.interpolate"), oc.getInt("routing-threads") > 1);
loader.loadNet(net, builder);
// load the weights when wished/available
if (oc.isSet("weight-files")) {
- loader.loadWeights(net, "weight-files", oc.getString("weight-attribute"), false);
+ loader.loadWeights(net, "weight-files", oc.getString("weight-attribute"), false, oc.getBool("weights.expand"));
}
if (oc.isSet("lane-weight-files")) {
- loader.loadWeights(net, "lane-weight-files", oc.getString("weight-attribute"), true);
+ loader.loadWeights(net, "lane-weight-files", oc.getString("weight-attribute"), true, oc.getBool("weights.expand"));
}
}
diff --git a/src/foreign/additional.txt b/src/foreign/additional.txt
index e129ce6..281d283 100644
--- a/src/foreign/additional.txt
+++ b/src/foreign/additional.txt
@@ -27,7 +27,7 @@ The subfolders contain additional libraries used by SUMO:
- RTree
Improved tiling for the drawing area
Used version: unknown
- Modifications: syntactic sugar for gcc compilation; different footprint for "Search" due to a different callback
+ Modifications: syntactic sugar for gcc compilation; different footprint for "Search" due to a different callback, tests removed because they did not compile
Original Page: http://www.superliminal.com/sources/RTreeTemplate.zip
- EulerSpiral
diff --git a/src/foreign/eulerspiral/BiArc.cpp b/src/foreign/eulerspiral/BiArc.cpp
index 0689f99..5df5f9a 100644
--- a/src/foreign/eulerspiral/BiArc.cpp
+++ b/src/foreign/eulerspiral/BiArc.cpp
@@ -1,4 +1,5 @@
#include "BiArc.h"
+#include <stdexcept>
#include <cassert>
#include <cmath> // added for cygwin build 2015-06-10 MB
@@ -131,7 +132,7 @@ void BiArc::compute_biarc_params(void)
}
else {
//this should never happen
- assert(false);
+ throw std::runtime_error("Could not compute biarc parameters");
}
}
}
diff --git a/src/gui/GUIApplicationWindow.cpp b/src/gui/GUIApplicationWindow.cpp
index 35f2d06..5cf42ed 100644
--- a/src/gui/GUIApplicationWindow.cpp
+++ b/src/gui/GUIApplicationWindow.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Andreas Gaubatz
/// @date Sept 2002
-/// @version $Id: GUIApplicationWindow.cpp 18761 2015-09-01 14:15:44Z behrisch $
+/// @version $Id: GUIApplicationWindow.cpp 19355 2015-11-16 08:08:19Z namdre $
///
// The main window of the SUMO-gui.
/****************************************************************************/
@@ -60,10 +60,10 @@
#include <utils/foxtools/FXLCDLabel.h>
#include <utils/foxtools/FXRealSpinDial.h>
#include <utils/foxtools/FXThreadEvent.h>
+#include <utils/foxtools/FXLinkLabel.h>
#include <utils/xml/XMLSubSys.h>
#include <utils/gui/images/GUITexturesHelper.h>
-#include <utils/gui/windows/GUIAppEnum.h>
#include <utils/gui/events/GUIEvent_SimulationStep.h>
#include <utils/gui/events/GUIEvent_Message.h>
#include <utils/gui/div/GUIMessageWindow.h>
@@ -77,6 +77,10 @@
#include <utils/gui/globjects/GUIGlObjectStorage.h>
#include <utils/gui/div/GUIGlobalSelection.h>
#include <utils/gui/settings/GUISettingsHandler.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/windows/GUIPerspectiveChanger.h>
+#include <utils/options/OptionsCont.h>
#include "GUIGlobals.h"
#include "dialogs/GUIDialog_AboutSUMO.h"
#include "dialogs/GUIDialog_AppSettings.h"
@@ -103,6 +107,7 @@ FXDEFMAP(GUIApplicationWindow) GUIApplicationWindowMap[] = {
FXMAPFUNC(SEL_COMMAND, MID_CLOSE, GUIApplicationWindow::onCmdClose),
FXMAPFUNC(SEL_COMMAND, MID_EDITCHOSEN, GUIApplicationWindow::onCmdEditChosen),
FXMAPFUNC(SEL_COMMAND, MID_EDIT_BREAKPOINTS, GUIApplicationWindow::onCmdEditBreakpoints),
+ FXMAPFUNC(SEL_COMMAND, MID_NETEDIT, GUIApplicationWindow::onCmdNetedit),
FXMAPFUNC(SEL_COMMAND, MID_APPSETTINGS, GUIApplicationWindow::onCmdAppSettings),
FXMAPFUNC(SEL_COMMAND, MID_GAMING, GUIApplicationWindow::onCmdGaming),
@@ -135,6 +140,8 @@ FXDEFMAP(GUIApplicationWindow) GUIApplicationWindowMap[] = {
FXMAPFUNC(SEL_UPDATE, MID_STEP, GUIApplicationWindow::onUpdStep),
FXMAPFUNC(SEL_UPDATE, MID_EDITCHOSEN, GUIApplicationWindow::onUpdNeedsSimulation),
FXMAPFUNC(SEL_UPDATE, MID_EDIT_BREAKPOINTS, GUIApplicationWindow::onUpdNeedsSimulation),
+ FXMAPFUNC(SEL_UPDATE, MID_NETEDIT, GUIApplicationWindow::onUpdNeedsSimulation),
+ FXMAPFUNC(SEL_COMMAND, MID_HELP, GUIApplicationWindow::onCmdHelp),
// forward requests to the active view
FXMAPFUNC(SEL_COMMAND, MID_LOCATEJUNCTION, GUIApplicationWindow::onCmdLocate),
@@ -224,11 +231,11 @@ GUIApplicationWindow::dependentBuild() {
myGeoFrame =
new FXHorizontalFrame(myStatusbar, LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y | LAYOUT_RIGHT | FRAME_SUNKEN,
0, 0, 20, 0, 0, 0, 0, 0, 0, 0);
- myGeoCoordinate = new FXLabel(myGeoFrame, "N/A", 0, LAYOUT_CENTER_Y);
+ myGeoCoordinate = new FXLabel(myGeoFrame, "N/A\t\tOriginal coordinate (before coordinate transformation in NETCONVERT)", 0, LAYOUT_CENTER_Y);
myCartesianFrame =
new FXHorizontalFrame(myStatusbar, LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y | LAYOUT_RIGHT | FRAME_SUNKEN,
0, 0, 20, 0, 0, 0, 0, 0, 0, 0);
- myCartesianCoordinate = new FXLabel(myCartesianFrame, "N/A", 0, LAYOUT_CENTER_Y);
+ myCartesianCoordinate = new FXLabel(myCartesianFrame, "N/A\t\tNetwork coordinate", 0, LAYOUT_CENTER_Y);
}
// make the window a mdi-window
@@ -352,20 +359,20 @@ GUIApplicationWindow::fillMenuBar() {
myFileMenu = new FXMenuPane(this);
new FXMenuTitle(myMenuBar, "&File", NULL, myFileMenu);
new FXMenuCommand(myFileMenu,
- "&Open Simulation...\tCtl-O\tOpen a simulation (Configuration file).",
+ "&Open Simulation...\tCtrl+O\tOpen a simulation (Configuration file).",
GUIIconSubSys::getIcon(ICON_OPEN_CONFIG), this, MID_OPEN_CONFIG);
new FXMenuCommand(myFileMenu,
- "Open &Network...\tCtl-N\tOpen a network.",
+ "Open &Network...\tCtrl+N\tOpen a network.",
GUIIconSubSys::getIcon(ICON_OPEN_NET), this, MID_OPEN_NETWORK);
new FXMenuCommand(myFileMenu,
- "Open Shapes \tCtl-P\tLoad POIs and Polygons for visualization.",
+ "Open Shapes \tCtrl+P\tLoad POIs and Polygons for visualization.",
GUIIconSubSys::getIcon(ICON_OPEN_SHAPES), this, MID_OPEN_SHAPES);
new FXMenuCommand(myFileMenu,
- "&Reload\tCtl-R\tReloads the simulation / the network.",
+ "&Reload\tCtrl+R\tReloads the simulation / the network.",
GUIIconSubSys::getIcon(ICON_RELOAD), this, MID_RELOAD);
new FXMenuSeparator(myFileMenu);
new FXMenuCommand(myFileMenu,
- "Close\tCtl-W\tClose the simulation.",
+ "Close\tCtrl+W\tClose the simulation.",
GUIIconSubSys::getIcon(ICON_CLOSE), this, MID_CLOSE);
// Recent files
FXMenuSeparator* sep1 = new FXMenuSeparator(myFileMenu);
@@ -402,7 +409,7 @@ GUIApplicationWindow::fillMenuBar() {
myRecentNets.setSelector(MID_RECENTFILE);
new FXMenuSeparator(myFileMenu);
new FXMenuCommand(myFileMenu,
- "&Quit\tCtl-Q\tQuit the Application.",
+ "&Quit\tCtrl+Q\tQuit the Application.",
0, this, MID_QUIT, 0);
// build edit menu
@@ -416,15 +423,19 @@ GUIApplicationWindow::fillMenuBar() {
myEditMenu = new FXMenuPane(this);
new FXMenuTitle(myMenuBar, "&Edit", NULL, myEditMenu);
new FXMenuCommand(myEditMenu,
- "Edit Selected...\tCtl-E\tOpens a Dialog for editing the List of Selected Items.",
+ "Edit Selected...\tCtrl+E\tOpens a dialog for editing the list of selected items.",
GUIIconSubSys::getIcon(ICON_FLAG), this, MID_EDITCHOSEN);
new FXMenuCascade(myEditMenu,
"Select lanes which allow...\t\tOpens a menu for selecting a vehicle class by which to selected lanes.",
GUIIconSubSys::getIcon(ICON_FLAG), mySelectByPermissions);
new FXMenuSeparator(myEditMenu);
new FXMenuCommand(myEditMenu,
- "Edit Breakpoints...\tCtl-B\tOpens a Dialog for editing breakpoints.",
+ "Edit Breakpoints...\tCtrl+B\tOpens a dialog for editing breakpoints.",
0, this, MID_EDIT_BREAKPOINTS);
+ new FXMenuSeparator(myEditMenu);
+ new FXMenuCommand(myEditMenu,
+ "Open in Netedit...\tCtrl+T\tOpens the netedit application with the current network.",
+ 0, this, MID_NETEDIT);
// build settings menu
mySettingsMenu = new FXMenuPane(this);
@@ -433,10 +444,10 @@ GUIApplicationWindow::fillMenuBar() {
"Application Settings...\t\tOpen a Dialog for Application Settings editing.",
NULL, this, MID_APPSETTINGS);
new FXMenuCheck(mySettingsMenu,
- "Gaming Mode\tCtl-G\tToggle gaming mode on/off.",
+ "Gaming Mode\tCtrl+G\tToggle gaming mode on/off.",
this, MID_GAMING);
new FXMenuCheck(mySettingsMenu,
- "Full Screen Mode\tCtl-F\tToggle full screen mode on/off.",
+ "Full Screen Mode\tCtrl+F\tToggle full screen mode on/off.",
this, MID_FULLSCREEN);
// build Locate menu
myLocatorMenu = new FXMenuPane(this);
@@ -475,13 +486,13 @@ GUIApplicationWindow::fillMenuBar() {
myControlMenu = new FXMenuPane(this);
new FXMenuTitle(myMenuBar, "Simulation", NULL, myControlMenu);
new FXMenuCommand(myControlMenu,
- "Run\tCtl-A\tStart running the simulation.",
+ "Run\tCtrl+A\tStart running the simulation.",
NULL, this, MID_START);
new FXMenuCommand(myControlMenu,
- "Stop\tCtl-S\tStop running the simulation.",
+ "Stop\tCtrl+S\tStop running the simulation.",
NULL, this, MID_STOP);
new FXMenuCommand(myControlMenu,
- "Step\tCtl-D\tPerform one simulation step.",
+ "Step\tCtrl+D\tPerform one simulation step.",
NULL, this, MID_STEP);
// build windows menu
@@ -528,6 +539,7 @@ GUIApplicationWindow::fillMenuBar() {
// build help menu
myHelpMenu = new FXMenuPane(this);
new FXMenuTitle(myMenuBar, "&Help", NULL, myHelpMenu);
+ new FXMenuCommand(myHelpMenu, "&Online Documentation", 0, this, MID_HELP);
new FXMenuCommand(myHelpMenu, "&About", GUIIconSubSys::getIcon(ICON_APP),
this, MID_ABOUT);
}
@@ -712,6 +724,47 @@ GUIApplicationWindow::onCmdEditBreakpoints(FXObject*, FXSelector, void*) {
long
+GUIApplicationWindow::onCmdHelp(FXObject*, FXSelector, void*) {
+ FXLinkLabel::fxexecute("http://sumo.dlr.de/wiki/SUMO-GUI");
+ return 1;
+}
+
+
+long
+GUIApplicationWindow::onCmdNetedit(FXObject*, FXSelector, void*) {
+ if (mySubWindows.empty()) {
+ return 1;
+ }
+ FXRegistry reg("Netedit", "DLR");
+ reg.read();
+ const GUISUMOAbstractView* const v = static_cast<GUIGlChildWindow*>(mySubWindows[0])->getView();
+ reg.writeIntEntry("viewport", "x", v->getChanger().getXPos());
+ reg.writeIntEntry("viewport", "y", v->getChanger().getYPos());
+ reg.writeIntEntry("viewport", "z", v->getChanger().getZoom());
+ reg.write();
+ std::string netedit = "netedit";
+ const char* sumoPath = getenv("SUMO_HOME");
+ if (sumoPath != 0) {
+ std::string newPath = std::string(sumoPath) + "/bin/netedit";
+ if (FileHelpers::isReadable(newPath) || FileHelpers::isReadable(newPath + ".exe")) {
+ netedit = newPath;
+ }
+ }
+ std::string cmd = netedit + " --registry-viewport -s " + OptionsCont::getOptions().getString("net-file");
+ // start in background
+#ifndef WIN32
+ cmd = cmd + " &";
+#else
+ cmd = "start " + cmd;
+#endif
+ WRITE_MESSAGE("Running " + cmd + ".");
+ // yay! fun with dangerous commands... Never use this over the internet
+ SysUtils::runHiddenCommand(cmd);
+ return 1;
+}
+
+
+long
GUIApplicationWindow::onCmdOpenConfiguration(FXObject*, FXSelector, void*) {
// get the new file name
FXFileDialog opendialog(this, "Open Simulation Configuration");
diff --git a/src/gui/GUIApplicationWindow.h b/src/gui/GUIApplicationWindow.h
index b8758fd..4557c5d 100644
--- a/src/gui/GUIApplicationWindow.h
+++ b/src/gui/GUIApplicationWindow.h
@@ -5,7 +5,7 @@
/// @author Christian Roessel
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIApplicationWindow.h 18761 2015-09-01 14:15:44Z behrisch $
+/// @version $Id: GUIApplicationWindow.h 18984 2015-10-01 13:49:53Z namdre $
///
// The main window of the SUMO-gui.
/****************************************************************************/
@@ -158,6 +158,12 @@ public:
/// @brief Called on menu Edit->Edit Breakpoints
long onCmdEditBreakpoints(FXObject*, FXSelector, void*);
+ /// @brief called if the user selects help->Documentation
+ long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief Called on menu Edit->Netedit
+ long onCmdNetedit(FXObject*, FXSelector, void*);
+
/// @brief Opens the application settings menu (Settings->Application Settings...)
long onCmdAppSettings(FXObject*, FXSelector, void*);
@@ -248,6 +254,12 @@ public:
return mySimDelayTarget->getValue();
}
+ /** @brief Sets the delay of the parent application
+ */
+ virtual void setDelay(SUMOReal delay) {
+ mySimDelayTarget->setValue(delay);
+ }
+
/** @brief Sends an event from the application thread to the GUI and waits until it is handled
* @param event the event to send
*/
diff --git a/src/gui/GUILoadThread.cpp b/src/gui/GUILoadThread.cpp
index ea33e62..098d5d8 100644
--- a/src/gui/GUILoadThread.cpp
+++ b/src/gui/GUILoadThread.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUILoadThread.cpp 18498 2015-06-22 05:59:25Z behrisch $
+/// @version $Id: GUILoadThread.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Class describing the thread that performs the loading of a simulation
/****************************************************************************/
@@ -126,6 +126,7 @@ GUILoadThread::run() {
myFile = oc.getString("configuration-file");
} else if (oc.isSet("net-file")) {
myFile = oc.getString("net-file");
+ myLoadNet = true;
}
}
myTitle = myFile;
@@ -134,6 +135,11 @@ GUILoadThread::run() {
MsgHandler::getWarningInstance()->removeRetriever(&OutputDevice::getDevice("stderr"));
MsgHandler::getErrorInstance()->removeRetriever(&OutputDevice::getDevice("stderr"));
// do this once again to get parsed options
+ if (oc.getBool("duration-log.statistics") && oc.isDefault("verbose")) {
+ // must be done before calling initOutputOptions (which checks option "verbose")
+ // but initOutputOptions must come before checkOptions (so that warnings are printed)
+ oc.set("verbose", "true");
+ }
MsgHandler::initOutputOptions();
XMLSubSys::setValidation(oc.getString("xml-validation"), oc.getString("xml-validation.net"));
GUIGlobals::gRunAfterLoad = oc.getBool("start");
diff --git a/src/gui/GUISUMOViewParent.cpp b/src/gui/GUISUMOViewParent.cpp
index 8546124..ea81470 100644
--- a/src/gui/GUISUMOViewParent.cpp
+++ b/src/gui/GUISUMOViewParent.cpp
@@ -6,7 +6,7 @@
/// @author Laura Bieker
/// @author Andreas Gaubatz
/// @date Sept 2002
-/// @version $Id: GUISUMOViewParent.cpp 18294 2015-04-24 10:23:48Z namdre $
+/// @version $Id: GUISUMOViewParent.cpp 18937 2015-09-24 18:41:01Z namdre $
///
// A single child window which contains a view of the simulation area
/****************************************************************************/
@@ -58,11 +58,16 @@
#include <guisim/GUIVehicleControl.h>
#include <guisim/GUIPersonControl.h>
#include <microsim/MSJunction.h>
+#include <microsim/MSGlobals.h>
#include "GUIGlobals.h"
#include "GUIViewTraffic.h"
#include "GUIApplicationWindow.h"
#include "GUISUMOViewParent.h"
+#ifdef HAVE_INTERNAL
+#include <mesogui/GUIMEVehicleControl.h>
+#endif
+
#ifdef HAVE_OSG
#include <osgview/GUIOSGView.h>
#endif
@@ -189,7 +194,13 @@ GUISUMOViewParent::onCmdLocate(FXObject*, FXSelector sel, void*) {
title = "Edge Chooser";
break;
case MID_LOCATEVEHICLE:
- static_cast<GUIVehicleControl&>(MSNet::getInstance()->getVehicleControl()).insertVehicleIDs(ids);
+ if (MSGlobals::gUseMesoSim) {
+#ifdef HAVE_INTERNAL
+ static_cast<GUIMEVehicleControl*>(static_cast<GUINet*>(MSNet::getInstance())->getGUIMEVehicleControl())->insertVehicleIDs(ids);
+#endif
+ } else {
+ static_cast<GUIVehicleControl&>(MSNet::getInstance()->getVehicleControl()).insertVehicleIDs(ids);
+ }
icon = ICON_LOCATEVEHICLE;
title = "Vehicle Chooser";
break;
diff --git a/src/gui/GUITLLogicPhasesTrackerWindow.cpp b/src/gui/GUITLLogicPhasesTrackerWindow.cpp
index 1d09649..362c0fe 100644
--- a/src/gui/GUITLLogicPhasesTrackerWindow.cpp
+++ b/src/gui/GUITLLogicPhasesTrackerWindow.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Oct/Nov 2003
-/// @version $Id: GUITLLogicPhasesTrackerWindow.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUITLLogicPhasesTrackerWindow.cpp 19173 2015-10-27 08:47:27Z behrisch $
///
// A window displaying the phase diagram of a tl-logic
/****************************************************************************/
@@ -38,6 +38,7 @@
#include <microsim/traffic_lights/MSTrafficLightLogic.h>
#include <microsim/MSLink.h>
#include <utils/common/ToString.h>
+#include <utils/common/MsgHandler.h>
#include <guisim/GUITrafficLightLogicWrapper.h>
#include <utils/gui/windows/GUIAppEnum.h>
#include <utils/gui/images/GUIIconSubSys.h>
diff --git a/src/gui/GUIViewTraffic.cpp b/src/gui/GUIViewTraffic.cpp
index 273cdb6..ef9904c 100644
--- a/src/gui/GUIViewTraffic.cpp
+++ b/src/gui/GUIViewTraffic.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Andreas Gaubatz
/// @date Sept 2002
-/// @version $Id: GUIViewTraffic.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: GUIViewTraffic.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A view on the simulation; this view is a microscopic one
/****************************************************************************/
@@ -45,6 +45,7 @@
#include <microsim/MSLane.h>
#include <microsim/MSJunctionControl.h>
#include <microsim/traffic_lights/MSTLLogicControl.h>
+#include <microsim/traffic_lights/MSSimpleTrafficLightLogic.h>
#include <utils/common/RGBColor.h>
#include <utils/geom/PositionVector.h>
#include <utils/shapes/Polygon.h>
@@ -69,6 +70,18 @@
#include <foreign/nvwa/debug_new.h>
#endif // CHECK_MEMORY_LEAKS
+/* -------------------------------------------------------------------------
+ * GUIViewTraffic - FOX callback mapping
+ * ----------------------------------------------------------------------- */
+FXDEFMAP(GUIViewTraffic) GUIViewTrafficMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_CLOSE_LANE, GUIViewTraffic::onCmdCloseLane),
+ FXMAPFUNC(SEL_COMMAND, MID_CLOSE_EDGE, GUIViewTraffic::onCmdCloseEdge),
+ FXMAPFUNC(SEL_COMMAND, MID_ADD_REROUTER, GUIViewTraffic::onCmdAddRerouter),
+};
+
+
+FXIMPLEMENT_ABSTRACT(GUIViewTraffic, GUISUMOAbstractView, GUIViewTrafficMap, ARRAYNUMBER(GUIViewTrafficMap))
+
// ===========================================================================
// member method definitions
@@ -111,17 +124,20 @@ GUIViewTraffic::buildViewToolBars(GUIGlChildWindow& v) {
GUIIconSubSys::getIcon(ICON_LOCATEEDGE), &v, MID_LOCATEEDGE,
ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
- if (!MSGlobals::gUseMesoSim) { // there are no gui-vehicles in mesosim
- // for vehicles
+ // for vehicles
+ new FXButton(v.getLocatorPopup(),
+ "\tLocate Vehicle\tLocate a vehicle within the network.",
+ GUIIconSubSys::getIcon(ICON_LOCATEVEHICLE), &v, MID_LOCATEVEHICLE,
+ ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
+
+ // for persons
+ if (!MSGlobals::gUseMesoSim) { // there are no persons in mesosim (yet)
new FXButton(v.getLocatorPopup(),
- "\tLocate Vehicle\tLocate a vehicle within the network.",
- GUIIconSubSys::getIcon(ICON_LOCATEVEHICLE), &v, MID_LOCATEVEHICLE,
+ "\tLocate Vehicle\tLocate a person within the network.",
+ GUIIconSubSys::getIcon(ICON_LOCATEPERSON), &v, MID_LOCATEPERSON,
ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
}
- new FXButton(v.getLocatorPopup(),
- "\tLocate Vehicle\tLocate a person within the network.",
- GUIIconSubSys::getIcon(ICON_LOCATEPERSON), &v, MID_LOCATEPERSON,
- ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
+
// for tls
new FXButton(v.getLocatorPopup(),
"\tLocate TLS\tLocate a tls within the network.",
@@ -283,4 +299,53 @@ GUIViewTraffic::getCurrentTimeStep() const {
}
+GUILane*
+GUIViewTraffic::getLaneUnderCursor() {
+ if (makeCurrent()) {
+ unsigned int id = getObjectUnderCursor();
+ if (id != 0) {
+ GUIGlObject* o = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ if (o != 0) {
+ return dynamic_cast<GUILane*>(o);
+ }
+ }
+ makeNonCurrent();
+ }
+ return 0;
+}
+
+long
+GUIViewTraffic::onCmdCloseLane(FXObject*, FXSelector, void*) {
+ GUILane* lane = getLaneUnderCursor();
+ if (lane != 0) {
+ lane->closeTraffic();
+ GUIGlObjectStorage::gIDStorage.unblockObject(lane->getGlID());
+ update();
+ }
+ return 1;
+}
+
+
+long
+GUIViewTraffic::onCmdCloseEdge(FXObject*, FXSelector, void*) {
+ GUILane* lane = getLaneUnderCursor();
+ if (lane != 0) {
+ dynamic_cast<GUIEdge*>(&lane->getEdge())->closeTraffic(lane);
+ GUIGlObjectStorage::gIDStorage.unblockObject(lane->getGlID());
+ update();
+ }
+ return 1;
+}
+
+long
+GUIViewTraffic::onCmdAddRerouter(FXObject*, FXSelector, void*) {
+ GUILane* lane = getLaneUnderCursor();
+ if (lane != 0) {
+ dynamic_cast<GUIEdge*>(&lane->getEdge())->addRerouter();
+ GUIGlObjectStorage::gIDStorage.unblockObject(lane->getGlID());
+ update();
+ }
+ return 1;
+}
+
/****************************************************************************/
diff --git a/src/gui/GUIViewTraffic.h b/src/gui/GUIViewTraffic.h
index 855bbdf..8646e6a 100644
--- a/src/gui/GUIViewTraffic.h
+++ b/src/gui/GUIViewTraffic.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Andreas Gaubatz
/// @date Sept 2002
-/// @version $Id: GUIViewTraffic.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIViewTraffic.h 18983 2015-10-01 12:40:07Z namdre $
///
// A view on the simulation; this view is a microscopic one
/****************************************************************************/
@@ -60,6 +60,7 @@ class MSRoute;
* Microsocopic view at the simulation
*/
class GUIViewTraffic : public GUISUMOAbstractView {
+ FXDECLARE(GUIViewTraffic)
public:
/// constructor
GUIViewTraffic(FXComposite* p, GUIMainWindow& app,
@@ -96,9 +97,15 @@ public:
/// @brief get the current simulation time
SUMOTime getCurrentTimeStep() const;
+ /// @brief interaction with the simulation
+ long onCmdCloseLane(FXObject*, FXSelector, void*);
+ long onCmdCloseEdge(FXObject*, FXSelector, void*);
+ long onCmdAddRerouter(FXObject*, FXSelector, void*);
+
protected:
int doPaintGL(int mode, const Boundary& bound);
+ GUILane* getLaneUnderCursor();
private:
int myTrackedID;
diff --git a/src/gui/TraCIServerAPI_GUI.cpp b/src/gui/TraCIServerAPI_GUI.cpp
index 42fc7b5..ae1c13f 100644
--- a/src/gui/TraCIServerAPI_GUI.cpp
+++ b/src/gui/TraCIServerAPI_GUI.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 07.05.2009
-/// @version $Id: TraCIServerAPI_GUI.cpp 18761 2015-09-01 14:15:44Z behrisch $
+/// @version $Id: TraCIServerAPI_GUI.cpp 18921 2015-09-24 08:10:25Z namdre $
///
// APIs for getting/setting GUI values via TraCI
/****************************************************************************/
@@ -41,6 +41,7 @@
#include <traci-server/TraCIConstants.h>
#include <guisim/GUINet.h>
#include <guisim/GUIVehicle.h>
+#include <guisim/GUIBaseVehicle.h>
#include "GUIEvent_Screenshot.h"
#include "TraCIServerAPI_GUI.h"
@@ -190,9 +191,9 @@ TraCIServerAPI_GUI::processSet(TraCIServer& server, tcpip::Storage& inputStorage
if (veh == 0) {
return server.writeErrorStatusCmd(CMD_SET_GUI_VARIABLE, "Could not find vehicle '" + id + "'.", outputStorage);
}
- if (!static_cast<GUIVehicle*>(veh)->hasActiveAddVisualisation(v, GUIVehicle::VO_TRACKED)) {
+ if (!static_cast<GUIVehicle*>(veh)->hasActiveAddVisualisation(v, GUIBaseVehicle::VO_TRACKED)) {
v->startTrack(static_cast<GUIVehicle*>(veh)->getGlID());
- static_cast<GUIVehicle*>(veh)->addActiveAddVisualisation(v, GUIVehicle::VO_TRACKED);
+ static_cast<GUIVehicle*>(veh)->addActiveAddVisualisation(v, GUIBaseVehicle::VO_TRACKED);
}
}
}
diff --git a/src/gui/TraCIServerAPI_GUI.h b/src/gui/TraCIServerAPI_GUI.h
index d5d34e7..e9ffb09 100644
--- a/src/gui/TraCIServerAPI_GUI.h
+++ b/src/gui/TraCIServerAPI_GUI.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 07.05.2009
-/// @version $Id: TraCIServerAPI_GUI.h 18724 2015-08-25 21:00:09Z behrisch $
+/// @version $Id: TraCIServerAPI_GUI.h 18841 2015-09-17 10:43:01Z behrisch $
///
// APIs for getting/setting GUI values via TraCI
/****************************************************************************/
@@ -42,12 +42,6 @@
// ===========================================================================
// class definitions
// ===========================================================================
-class GUIGlChildWindow;
-
-
-// ===========================================================================
-// class definitions
-// ===========================================================================
/**
* @class TraCIServerAPI_GUI
* @brief APIs for getting/setting GUI values via TraCI
diff --git a/src/gui/dialogs/GUIDialog_AppSettings.cpp b/src/gui/dialogs/GUIDialog_AppSettings.cpp
index c2354b8..833d3fd 100644
--- a/src/gui/dialogs/GUIDialog_AppSettings.cpp
+++ b/src/gui/dialogs/GUIDialog_AppSettings.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 08.03.2004
-/// @version $Id: GUIDialog_AppSettings.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIDialog_AppSettings.cpp 18841 2015-09-17 10:43:01Z behrisch $
///
// The application-settings dialog
/****************************************************************************/
@@ -29,11 +29,12 @@
#include <config.h>
#endif
-#include "GUIDialog_AppSettings.h"
-#include <utils/gui/windows/GUIAppEnum.h>
-#include <gui/GUIGlobals.h>
#include <utils/gui/images/GUIIconSubSys.h>
#include <utils/gui/images/GUITexturesHelper.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/div/GUIMessageWindow.h>
+#include <gui/GUIGlobals.h>
+#include "GUIDialog_AppSettings.h"
#ifdef CHECK_MEMORY_LEAKS
#include <foreign/nvwa/debug_new.h>
@@ -46,6 +47,7 @@
FXDEFMAP(GUIDialog_AppSettings) GUIDialog_AppSettingsMap[] = {
FXMAPFUNC(SEL_COMMAND, MID_QUITONSIMEND, GUIDialog_AppSettings::onCmdQuitOnEnd),
FXMAPFUNC(SEL_COMMAND, MID_ALLOWTEXTURES, GUIDialog_AppSettings::onCmdAllowTextures),
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATELINKS, GUIDialog_AppSettings::onCmdLocateLinks),
FXMAPFUNC(SEL_COMMAND, MID_SETTINGS_OK, GUIDialog_AppSettings::onCmdOk),
FXMAPFUNC(SEL_COMMAND, MID_SETTINGS_CANCEL, GUIDialog_AppSettings::onCmdCancel),
};
@@ -59,15 +61,17 @@ FXIMPLEMENT(GUIDialog_AppSettings, FXDialogBox, GUIDialog_AppSettingsMap, ARRAYN
GUIDialog_AppSettings::GUIDialog_AppSettings(FXMainWindow* parent)
: FXDialogBox(parent, "Application Settings"),
myAppQuitOnEnd(GUIGlobals::gQuitOnEnd),
- myAllowTextures(GUITexturesHelper::texturesAllowed()) {
+ myAllowTextures(GUITexturesHelper::texturesAllowed()),
+ myLocateLinks(GUIMessageWindow::locateLinksEnabled()) {
FXCheckButton* b = 0;
FXVerticalFrame* f1 = new FXVerticalFrame(this, LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0);
b = new FXCheckButton(f1, "Quit on Simulation End", this , MID_QUITONSIMEND);
b->setCheck(myAppQuitOnEnd);
+ b = new FXCheckButton(f1, "Locate elements when clicking on messages", this , MID_LOCATELINKS);
+ b->setCheck(myLocateLinks);
new FXHorizontalSeparator(f1, SEPARATOR_GROOVE | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_FILL_X);
b = new FXCheckButton(f1, "Allow Textures", this , MID_ALLOWTEXTURES);
b->setCheck(myAllowTextures);
- b->disable();
FXHorizontalFrame* f2 = new FXHorizontalFrame(f1, LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_FILL_X | PACK_UNIFORM_WIDTH, 0, 0, 0, 0, 10, 10, 5, 5);
FXButton* initial = new FXButton(f2, "&OK", NULL, this, MID_SETTINGS_OK, BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X, 0, 0, 0, 0, 30, 30, 4, 4);
new FXButton(f2, "&Cancel", NULL, this, MID_SETTINGS_CANCEL, BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X, 0, 0, 0, 0, 30, 30, 4, 4);
@@ -83,6 +87,7 @@ long
GUIDialog_AppSettings::onCmdOk(FXObject*, FXSelector, void*) {
GUIGlobals::gQuitOnEnd = myAppQuitOnEnd;
GUITexturesHelper::allowTextures(myAllowTextures);
+ GUIMessageWindow::enableLocateLinks(myLocateLinks);
destroy();
return 1;
}
@@ -109,6 +114,11 @@ GUIDialog_AppSettings::onCmdAllowTextures(FXObject*, FXSelector, void*) {
}
+long
+GUIDialog_AppSettings::onCmdLocateLinks(FXObject*, FXSelector, void*) {
+ myLocateLinks = !myLocateLinks;
+ return 1;
+}
-/****************************************************************************/
+/****************************************************************************/
diff --git a/src/gui/dialogs/GUIDialog_AppSettings.h b/src/gui/dialogs/GUIDialog_AppSettings.h
index 40d3086..05490d4 100644
--- a/src/gui/dialogs/GUIDialog_AppSettings.h
+++ b/src/gui/dialogs/GUIDialog_AppSettings.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 08.03.2004
-/// @version $Id: GUIDialog_AppSettings.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIDialog_AppSettings.h 18841 2015-09-17 10:43:01Z behrisch $
///
// The application-settings dialog
/****************************************************************************/
@@ -71,6 +71,9 @@ public:
/// @brief Called on "Allow textures"-button change
long onCmdAllowTextures(FXObject*, FXSelector, void*);
+
+ /// @brief Called on "Locate links in messages"-button change
+ long onCmdLocateLinks(FXObject*, FXSelector, void*);
/// @}
@@ -81,6 +84,9 @@ private:
/// @brief Information whether textures may be used
bool myAllowTextures;
+ /// @brief Information whether locate links appear in messages
+ bool myLocateLinks;
+
protected:
/// default constructor (needed by FOX)
diff --git a/src/guinetload/GUIDetectorBuilder.cpp b/src/guinetload/GUIDetectorBuilder.cpp
index a632a40..2ec1e07 100644
--- a/src/guinetload/GUIDetectorBuilder.cpp
+++ b/src/guinetload/GUIDetectorBuilder.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Tue, 22 Jul 2003
-/// @version $Id: GUIDetectorBuilder.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIDetectorBuilder.cpp 19497 2015-12-02 21:19:35Z behrisch $
///
// Builds detectors for guisim
/****************************************************************************/
@@ -36,6 +36,7 @@
#include <guisim/GUI_E2_ZS_CollectorOverLanes.h>
#include <guisim/GUIE3Collector.h>
#include <guisim/GUIInstantInductLoop.h>
+#include <microsim/MSGlobals.h>
#include <microsim/MSNet.h>
#include <microsim/output/MSInductLoop.h>
#include <utils/common/UtilExceptions.h>
@@ -64,8 +65,17 @@ GUIDetectorBuilder::~GUIDetectorBuilder() {}
MSDetectorFileOutput*
GUIDetectorBuilder::createInductLoop(const std::string& id,
- MSLane* lane, SUMOReal pos, bool splitByType) {
- return new GUIInductLoop(id, lane, pos, splitByType);
+ MSLane* lane, SUMOReal pos, bool splitByType, bool show) {
+ if (show) {
+#ifdef HAVE_INTERNAL
+ if (MSGlobals::gUseMesoSim) {
+ return new GUIMEInductLoop(id, MSGlobals::gMesoNet->getSegmentForEdge(lane->getEdge(), pos), pos);
+ }
+#endif
+ return new GUIInductLoop(id, lane, pos, splitByType);
+ } else {
+ return NLDetectorBuilder::createInductLoop(id, lane, pos, splitByType);
+ }
}
@@ -76,15 +86,6 @@ GUIDetectorBuilder::createInstantInductLoop(const std::string& id,
}
-#ifdef HAVE_INTERNAL
-MEInductLoop*
-GUIDetectorBuilder::createMEInductLoop(const std::string& id,
- MESegment* s, SUMOReal pos) {
- return new GUIMEInductLoop(id, s, pos);
-}
-#endif
-
-
MSDetectorFileOutput*
GUIDetectorBuilder::createSingleLaneE2Detector(const std::string& id,
DetectorUsage usage, MSLane* lane, SUMOReal pos, SUMOReal length,
diff --git a/src/guinetload/GUIDetectorBuilder.h b/src/guinetload/GUIDetectorBuilder.h
index 17027a9..5e64747 100644
--- a/src/guinetload/GUIDetectorBuilder.h
+++ b/src/guinetload/GUIDetectorBuilder.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Tue, 22 Jul 2003
-/// @version $Id: GUIDetectorBuilder.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIDetectorBuilder.h 19497 2015-12-02 21:19:35Z behrisch $
///
// Builds detectors for guisim
/****************************************************************************/
@@ -79,9 +79,10 @@ public:
* @param[in] lane The lane the detector is placed at
* @param[in] pos The position on the lane the detector is placed at
* @param[in] splitByType Whether additional information split by vehicle classes shall be generated
+ * @param[in] show Whether to show the detector in the gui if available
*/
virtual MSDetectorFileOutput* createInductLoop(const std::string& id,
- MSLane* lane, SUMOReal pos, bool splitByType);
+ MSLane* lane, SUMOReal pos, bool splitByType, bool show = true);
/** @brief Creates an instance of an e1 detector using the given values
@@ -97,21 +98,6 @@ public:
MSLane* lane, SUMOReal pos, const std::string& od);
-#ifdef HAVE_INTERNAL
- /** @brief Creates an instance of a mesoscopic e1 detector using the given values
- *
- * Simply calls the MEInductLoop constructor
- *
- * @param[in] id The id the detector shall have
- * @param[in] s The segment the detector is placed at
- * @param[in] pos ?
- * @todo Position is not used, herein!?
- */
- virtual MEInductLoop* createMEInductLoop(const std::string& id,
- MESegment* s, SUMOReal pos);
-#endif
-
-
/** @brief Creates an instance of an e2-detector (areal detector) using the given values
*
* Simply calls the GUI_E2_ZS_Collector constructor
diff --git a/src/guinetload/GUITriggerBuilder.cpp b/src/guinetload/GUITriggerBuilder.cpp
index 466666e..ec285c6 100644
--- a/src/guinetload/GUITriggerBuilder.cpp
+++ b/src/guinetload/GUITriggerBuilder.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 26.04.2004
-/// @version $Id: GUITriggerBuilder.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: GUITriggerBuilder.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Builds trigger objects for guisim
/****************************************************************************/
@@ -38,7 +38,7 @@
#include <guisim/GUIBusStop.h>
#include <guisim/GUIContainerStop.h>
#include <guisim/GUICalibrator.h>
-#include <guisim/GUIChrgStn.h>
+#include <guisim/GUIChargingStation.h>
#include "GUITriggerBuilder.h"
@@ -104,13 +104,13 @@ GUITriggerBuilder::buildContainerStop(MSNet& net, const std::string& id,
void
-GUITriggerBuilder::buildChrgStn(MSNet& net, const std::string& id,
- const std::vector<std::string>& lines,
- MSLane* lane,
- SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency, SUMOReal chargeInTransit, SUMOReal chargeDelay) {
- GUIChrgStn* chrg = new GUIChrgStn(id, lines, *lane, frompos, topos, chrgpower, efficiency, chargeInTransit, chargeDelay);
+GUITriggerBuilder::buildChargingStation(MSNet& net, const std::string& id,
+ const std::vector<std::string>& lines,
+ MSLane* lane,
+ SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency, SUMOReal chargeInTransit, SUMOReal chargeDelay) {
+ GUIChargingStation* chrg = new GUIChargingStation(id, lines, *lane, frompos, topos, chrgpower, efficiency, chargeInTransit, chargeDelay);
- if (!net.addChrgStn(chrg)) {
+ if (!net.addChargingStation(chrg)) {
delete chrg;
throw InvalidArgument("Could not build charging station '" + id + "'; probably declared twice.");
}
diff --git a/src/guinetload/GUITriggerBuilder.h b/src/guinetload/GUITriggerBuilder.h
index 37349f4..d9ffba2 100644
--- a/src/guinetload/GUITriggerBuilder.h
+++ b/src/guinetload/GUITriggerBuilder.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Mon, 26.04.2004
-/// @version $Id: GUITriggerBuilder.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: GUITriggerBuilder.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Builds trigger objects for guisim
/****************************************************************************/
@@ -152,10 +152,10 @@ protected:
* @param[in]
* @exception InvalidArgument If the charging station can not be added to the net (is duplicate)
*/
- virtual void buildChrgStn(MSNet& net, const std::string& id,
- const std::vector<std::string>& lines, MSLane* lane,
- SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency,
- SUMOReal chargeInTransit, SUMOReal chargeDelay);
+ virtual void buildChargingStation(MSNet& net, const std::string& id,
+ const std::vector<std::string>& lines, MSLane* lane,
+ SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency,
+ SUMOReal chargeInTransit, SUMOReal chargeDelay);
/** @brief builds a microscopic calibrator
*
diff --git a/src/guisim/GUIVehicle.cpp b/src/guisim/GUIBaseVehicle.cpp
similarity index 55%
copy from src/guisim/GUIVehicle.cpp
copy to src/guisim/GUIBaseVehicle.cpp
index 8dbf4ea..edf9c1f 100644
--- a/src/guisim/GUIVehicle.cpp
+++ b/src/guisim/GUIBaseVehicle.cpp
@@ -1,10 +1,10 @@
/****************************************************************************/
-/// @file GUIVehicle.cpp
+/// @file GUIBaseVehicle.cpp
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIVehicle.cpp 18702 2015-08-24 07:10:47Z namdre $
+/// @version $Id: GUIBaseVehicle.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSVehicle extended by some values for usage within the gui
/****************************************************************************/
@@ -35,13 +35,13 @@
#include <string>
#include <foreign/polyfonts/polyfonts.h>
#include <utils/common/StringUtils.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/vehicle/SUMOVehicleParameter.h>
#include <utils/emissions/PollutantsInterface.h>
#include <utils/gui/globjects/GLIncludes.h>
#include <utils/gui/windows/GUISUMOAbstractView.h>
#include <utils/gui/windows/GUIAppEnum.h>
#include <utils/gui/images/GUITexturesHelper.h>
-#include <utils/gui/div/GUIParameterTableWindow.h>
#include <utils/gui/div/GUIGlobalSelection.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/gui/div/GLObjectValuePassConnector.h>
@@ -58,7 +58,7 @@
#include <microsim/devices/MSDevice_BTreceiver.h>
#include <gui/GUIApplicationWindow.h>
#include <gui/GUIGlobals.h>
-#include "GUIVehicle.h"
+#include "GUIBaseVehicle.h"
#include "GUIPerson.h"
#include "GUIContainer.h"
#include "GUINet.h"
@@ -73,22 +73,22 @@
// ===========================================================================
// FOX callback mapping
// ===========================================================================
-FXDEFMAP(GUIVehicle::GUIVehiclePopupMenu) GUIVehiclePopupMenuMap[] = {
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_ALLROUTES, GUIVehicle::GUIVehiclePopupMenu::onCmdShowAllRoutes),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_ALLROUTES, GUIVehicle::GUIVehiclePopupMenu::onCmdHideAllRoutes),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_CURRENTROUTE, GUIVehicle::GUIVehiclePopupMenu::onCmdShowCurrentRoute),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_CURRENTROUTE, GUIVehicle::GUIVehiclePopupMenu::onCmdHideCurrentRoute),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_BEST_LANES, GUIVehicle::GUIVehiclePopupMenu::onCmdShowBestLanes),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_BEST_LANES, GUIVehicle::GUIVehiclePopupMenu::onCmdHideBestLanes),
- FXMAPFUNC(SEL_COMMAND, MID_START_TRACK, GUIVehicle::GUIVehiclePopupMenu::onCmdStartTrack),
- FXMAPFUNC(SEL_COMMAND, MID_STOP_TRACK, GUIVehicle::GUIVehiclePopupMenu::onCmdStopTrack),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_LFLINKITEMS, GUIVehicle::GUIVehiclePopupMenu::onCmdShowLFLinkItems),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_LFLINKITEMS, GUIVehicle::GUIVehiclePopupMenu::onCmdHideLFLinkItems),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_FOES, GUIVehicle::GUIVehiclePopupMenu::onCmdShowFoes),
+FXDEFMAP(GUIBaseVehicle::GUIBaseVehiclePopupMenu) GUIBaseVehiclePopupMenuMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_SHOW_ALLROUTES, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowAllRoutes),
+ FXMAPFUNC(SEL_COMMAND, MID_HIDE_ALLROUTES, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideAllRoutes),
+ FXMAPFUNC(SEL_COMMAND, MID_SHOW_CURRENTROUTE, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowCurrentRoute),
+ FXMAPFUNC(SEL_COMMAND, MID_HIDE_CURRENTROUTE, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideCurrentRoute),
+ FXMAPFUNC(SEL_COMMAND, MID_SHOW_BEST_LANES, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowBestLanes),
+ FXMAPFUNC(SEL_COMMAND, MID_HIDE_BEST_LANES, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideBestLanes),
+ FXMAPFUNC(SEL_COMMAND, MID_START_TRACK, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStartTrack),
+ FXMAPFUNC(SEL_COMMAND, MID_STOP_TRACK, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStopTrack),
+ FXMAPFUNC(SEL_COMMAND, MID_SHOW_LFLINKITEMS, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowLFLinkItems),
+ FXMAPFUNC(SEL_COMMAND, MID_HIDE_LFLINKITEMS, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideLFLinkItems),
+ FXMAPFUNC(SEL_COMMAND, MID_SHOW_FOES, GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowFoes),
};
// Object implementation
-FXIMPLEMENT(GUIVehicle::GUIVehiclePopupMenu, GUIGLObjectPopupMenu, GUIVehiclePopupMenuMap, ARRAYNUMBER(GUIVehiclePopupMenuMap))
+FXIMPLEMENT(GUIBaseVehicle::GUIBaseVehiclePopupMenu, GUIGLObjectPopupMenu, GUIBaseVehiclePopupMenuMap, ARRAYNUMBER(GUIBaseVehiclePopupMenuMap))
@@ -137,131 +137,137 @@ double vehiclePoly_ShipSuperStructure[] = { 0.8, 0, 0.5, 0.3, 0.85, 0.3, 0.8
double vehiclePoly_Cyclist[] = { 0.5, 0, 0.25, 0.45, 0.25, 0.5, 0.8, 0.15, 0.8, -0.15, 0.25, -0.5, 0.25, -0.45, -10000 };
+double vehiclePoly_EmergencySign[] = { .2, .5, -.2, .5, -.2, -.5, .2, -.5, -10000 };
+double vehiclePoly_Emergency[] = { .1, .1, -.1, .1, -.1, -.1, .1, -.1, -10000 };
+double vehiclePoly_Emergency2[] = { .04, .3, -.04, .3, -.04, -.3, .04, -.3, -10000 };
+
// ===========================================================================
// method definitions
// ===========================================================================
/* -------------------------------------------------------------------------
- * GUIVehicle::GUIVehiclePopupMenu - methods
+ * GUIBaseVehicle::GUIBaseVehiclePopupMenu - methods
* ----------------------------------------------------------------------- */
-GUIVehicle::GUIVehiclePopupMenu::GUIVehiclePopupMenu(
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::GUIBaseVehiclePopupMenu(
GUIMainWindow& app, GUISUMOAbstractView& parent,
GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations)
: GUIGLObjectPopupMenu(app, parent, o), myVehiclesAdditionalVisualizations(additionalVisualizations) {
}
-GUIVehicle::GUIVehiclePopupMenu::~GUIVehiclePopupMenu() {}
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::~GUIBaseVehiclePopupMenu() {}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowAllRoutes(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowAllRoutes(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES);
+ if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES)) {
+ static_cast<GUIBaseVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES);
}
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideAllRoutes(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideAllRoutes(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES);
+ static_cast<GUIBaseVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES);
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowCurrentRoute(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowCurrentRoute(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ROUTE)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
+ if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ROUTE)) {
+ static_cast<GUIBaseVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
}
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideCurrentRoute(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideCurrentRoute(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
+ static_cast<GUIBaseVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowBestLanes(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowBestLanes(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES);
+ if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES)) {
+ static_cast<GUIBaseVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES);
}
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideBestLanes(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideBestLanes(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES);
+ static_cast<GUIBaseVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES);
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdStartTrack(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStartTrack(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_TRACKED)) {
- myParent->startTrack(static_cast<GUIVehicle*>(myObject)->getGlID());
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_TRACKED);
+ if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_TRACKED)) {
+ myParent->startTrack(static_cast<GUIBaseVehicle*>(myObject)->getGlID());
+ static_cast<GUIBaseVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_TRACKED);
}
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdStopTrack(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdStopTrack(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_TRACKED);
+ static_cast<GUIBaseVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_TRACKED);
myParent->stopTrack();
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowLFLinkItems(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowLFLinkItems(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS);
+ if (!static_cast<GUIBaseVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS)) {
+ static_cast<GUIBaseVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS);
}
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideLFLinkItems(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdHideLFLinkItems(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS);
+ static_cast<GUIBaseVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS);
return 1;
}
long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowFoes(FXObject*, FXSelector, void*) {
+GUIBaseVehicle::GUIBaseVehiclePopupMenu::onCmdShowFoes(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->selectBlockingFoes();
+ static_cast<GUIBaseVehicle*>(myObject)->selectBlockingFoes();
+ myParent->update();
return 1;
}
/* -------------------------------------------------------------------------
- * GUIVehicle - methods
+ * GUIBaseVehicle - methods
* ----------------------------------------------------------------------- */
-GUIVehicle::GUIVehicle(SUMOVehicleParameter* pars, const MSRoute* route,
- const MSVehicleType* type, const SUMOReal speedFactor) :
- MSVehicle(pars, route, type, speedFactor),
- GUIGlObject(GLO_VEHICLE, pars->id) {
+
+GUIBaseVehicle::GUIBaseVehicle(MSBaseVehicle& vehicle) :
+ GUIGlObject(GLO_VEHICLE, vehicle.getID()),
+ myVehicle(vehicle),
+ myVType(vehicle.getVehicleType()) {
// as it is possible to show all vehicle routes, we have to store them... (bug [ 2519761 ])
- myRoutes = MSDevice_Vehroutes::buildVehicleDevices(*this, myDevices, 5);
- myMoveReminders.push_back(std::make_pair(myRoutes, 0.));
+ myRoutes = MSDevice_Vehroutes::buildVehicleDevices(myVehicle, myVehicle.myDevices, 5);
+ myVehicle.myMoveReminders.push_back(std::make_pair(myRoutes, 0.));
mySeatPositions.push_back(Position(0, 0)); // ensure length 1
}
-GUIVehicle::~GUIVehicle() {
+GUIBaseVehicle::~GUIBaseVehicle() {
myLock.lock();
for (std::map<GUISUMOAbstractView*, int>::iterator i = myAdditionalVisualizations.begin(); i != myAdditionalVisualizations.end(); ++i) {
while (i->first->removeAdditionalGLVisualisation(this));
@@ -273,9 +279,9 @@ GUIVehicle::~GUIVehicle() {
GUIGLObjectPopupMenu*
-GUIVehicle::getPopUpMenu(GUIMainWindow& app,
- GUISUMOAbstractView& parent) {
- GUIGLObjectPopupMenu* ret = new GUIVehiclePopupMenu(app, parent, *this, myAdditionalVisualizations);
+GUIBaseVehicle::getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) {
+ GUIGLObjectPopupMenu* ret = new GUIBaseVehiclePopupMenu(app, parent, *this, myAdditionalVisualizations);
buildPopupHeader(ret, app);
buildCenterPopupEntry(ret);
buildNameCopyPopupEntry(ret);
@@ -318,94 +324,8 @@ GUIVehicle::getPopUpMenu(GUIMainWindow& app,
}
-GUIParameterTableWindow*
-GUIVehicle::getParameterWindow(GUIMainWindow& app,
- GUISUMOAbstractView&) {
- GUIParameterTableWindow* ret =
- new GUIParameterTableWindow(app, *this, 40);
- // add items
- ret->mkItem("lane [id]", false, myLane->getID());
- ret->mkItem("position [m]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getPositionOnLane));
- ret->mkItem("speed [m/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getSpeed));
- ret->mkItem("angle [degree]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getAngle));
- if (getChosenSpeedFactor() != 1) {
- ret->mkItem("speed factor", false, getChosenSpeedFactor());
- }
- ret->mkItem("time gap [s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getTimeGap));
- ret->mkItem("waiting time [s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getWaitingSeconds));
- ret->mkItem("impatience", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getImpatience));
- ret->mkItem("last lane change [s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getLastLaneChangeOffset));
- ret->mkItem("desired depart [s]", false, time2string(getParameter().depart));
- if (getParameter().repetitionNumber < INT_MAX) {
- ret->mkItem("remaining [#]", false, (unsigned int) getParameter().repetitionNumber - getParameter().repetitionsDone);
- }
- if (getParameter().repetitionOffset > 0) {
- ret->mkItem("insertion period [s]", false, time2string(getParameter().repetitionOffset));
- }
- if (getParameter().repetitionProbability > 0) {
- ret->mkItem("insertion probability", false, getParameter().repetitionProbability);
- }
- ret->mkItem("stop info", false, getStopInfo());
- ret->mkItem("line", false, myParameter->line);
- ret->mkItem("CO2 [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getCO2Emissions));
- ret->mkItem("CO [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getCOEmissions));
- ret->mkItem("HC [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getHCEmissions));
- ret->mkItem("NOx [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getNOxEmissions));
- ret->mkItem("PMx [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getPMxEmissions));
- ret->mkItem("fuel [ml/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getFuelConsumption));
- ret->mkItem("noise (Harmonoise) [dB]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getHarmonoise_NoiseEmissions));
- std::ostringstream str;
- for (std::vector<MSDevice*>::const_iterator i = myDevices.begin(); i != myDevices.end(); ++i) {
- if (i != myDevices.begin()) {
- str << ' ';
- }
- str << (*i)->getID().substr(0, (*i)->getID().find(getID()));
- }
- ret->mkItem("devices", false, str.str());
- ret->mkItem("persons", true,
- new FunctionBinding<GUIVehicle, unsigned int>(this, &GUIVehicle::getPersonNumber));
- ret->mkItem("containers", true,
- new FunctionBinding<GUIVehicle, unsigned int>(this, &GUIVehicle::getContainerNumber));
-
- ret->mkItem("parameters [key:val]", false, toString(getParameter().getMap()));
- ret->mkItem("", false, "");
- ret->mkItem("Type Information:", false, "");
- ret->mkItem("type [id]", false, myType->getID());
- ret->mkItem("length", false, myType->getLength());
- ret->mkItem("minGap", false, myType->getMinGap());
- ret->mkItem("vehicle class", false, SumoVehicleClassStrings.getString(myType->getVehicleClass()));
- ret->mkItem("emission class", false, PollutantsInterface::getName(myType->getEmissionClass()));
- ret->mkItem("maximum speed [m/s]", false, getMaxSpeed());
- ret->mkItem("maximum acceleration [m/s^2]", false, getCarFollowModel().getMaxAccel());
- ret->mkItem("maximum deceleration [m/s^2]", false, getCarFollowModel().getMaxDecel());
- ret->mkItem("imperfection (sigma)", false, getCarFollowModel().getImperfection());
- ret->mkItem("reaction time (tau)", false, getCarFollowModel().getHeadwayTime());
- ret->mkItem("person capacity", false, myType->getPersonCapacity());
- ret->mkItem("container capacity", false, myType->getContainerCapacity());
-
- ret->mkItem("type parameters [key:val]", false, toString(myType->getParameter().getMap()));
- // close building
- ret->closeBuilding();
- return ret;
-}
-
-
Boundary
-GUIVehicle::getCenteringBoundary() const {
+GUIBaseVehicle::getCenteringBoundary() const {
Boundary b;
b.add(getPosition());
b.grow(20);
@@ -414,9 +334,9 @@ GUIVehicle::getCenteringBoundary() const {
void
-GUIVehicle::drawAction_drawVehicleAsBoxPlus() const {
+GUIBaseVehicle::drawAction_drawVehicleAsBoxPlus() const {
glPushMatrix();
- glScaled(getVehicleType().getWidth(), getVehicleType().getLength(), 1.);
+ glScaled(myVType.getWidth(), myVType.getLength(), 1.);
glBegin(GL_TRIANGLE_STRIP);
glVertex2d(0., 0.);
glVertex2d(-.5, .15);
@@ -429,14 +349,14 @@ GUIVehicle::drawAction_drawVehicleAsBoxPlus() const {
void
-GUIVehicle::drawAction_drawVehicleAsTrianglePlus() const {
- const SUMOReal length = getVehicleType().getLength();
+GUIBaseVehicle::drawAction_drawVehicleAsTrianglePlus() const {
+ const SUMOReal length = myVType.getLength();
if (length >= 8.) {
drawAction_drawVehicleAsBoxPlus();
return;
}
glPushMatrix();
- glScaled(getVehicleType().getWidth(), length, 1.);
+ glScaled(myVType.getWidth(), length, 1.);
glBegin(GL_TRIANGLES);
glVertex2d(0., 0.);
glVertex2d(-.5, 1.);
@@ -447,7 +367,7 @@ GUIVehicle::drawAction_drawVehicleAsTrianglePlus() const {
void
-GUIVehicle::drawPoly(double* poses, SUMOReal offset) {
+GUIBaseVehicle::drawPoly(double* poses, SUMOReal offset) {
glPushMatrix();
glTranslated(0, 0, offset * .1);
glPolygonOffset(0, offset * -1);
@@ -463,17 +383,17 @@ GUIVehicle::drawPoly(double* poses, SUMOReal offset) {
void
-GUIVehicle::drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) const {
+GUIBaseVehicle::drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) const {
RGBColor current = GLHelper::getColor();
RGBColor lighter = current.changedBrightness(51);
RGBColor darker = current.changedBrightness(-51);
- const SUMOReal length = getVehicleType().getLength();
- const SUMOReal width = getVehicleType().getWidth();
+ const SUMOReal length = myVType.getLength();
+ const SUMOReal width = myVType.getWidth();
glPushMatrix();
glRotated(90, 0, 0, 1);
glScaled(length, width, 1.);
- SUMOVehicleShape shape = getVehicleType().getGuiShape();
+ SUMOVehicleShape shape = myVType.getGuiShape();
// draw main body
switch (shape) {
@@ -682,6 +602,23 @@ GUIVehicle::drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) cons
drawPoly(vehiclePoly_ShipSuperStructure, 6);
break;
}
+ case SVS_EMERGENCY: // similar to delivery
+ glColor3d(1, 1, 1);
+ drawPoly(vehiclePoly_PassengerVanBody, 4);
+ glColor3d(1, 0, 0);
+ drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
+ glColor3d(0, 0, 0);
+ drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
+ drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
+ drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
+ // first aid sign
+ glTranslated(0.7, 0, 0);
+ glColor3d(.18, .55, .34);
+ drawPoly(vehiclePoly_EmergencySign, 4.5);
+ glColor3d(1, 1, 1);
+ drawPoly(vehiclePoly_Emergency, 5);
+ drawPoly(vehiclePoly_Emergency2, 5);
+ break;
default: // same as passenger
drawPoly(vehiclePoly_PassengerCarBody, 4);
glColor3d(1, 1, 1);
@@ -785,6 +722,7 @@ GUIVehicle::drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) cons
case SVS_E_VEHICLE:
case SVS_ANT:
case SVS_SHIP:
+ case SVS_EMERGENCY:
break;
default: // same as passenger/sedan
drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
@@ -866,16 +804,16 @@ GUIVehicle::drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) cons
bool
-GUIVehicle::drawAction_drawVehicleAsImage(const GUIVisualizationSettings& s, SUMOReal length) const {
- const std::string& file = getVehicleType().getImgFile();
+GUIBaseVehicle::drawAction_drawVehicleAsImage(const GUIVisualizationSettings& s, SUMOReal length) const {
+ const std::string& file = myVType.getImgFile();
if (file != "") {
int textureID = GUITexturesHelper::getTextureID(file);
if (textureID > 0) {
const SUMOReal exaggeration = s.vehicleSize.getExaggeration(s);
if (length < 0) {
- length = getVehicleType().getLength() * exaggeration;
+ length = myVType.getLength() * exaggeration;
}
- const SUMOReal halfWidth = getVehicleType().getWidth() / 2.0 * exaggeration;
+ const SUMOReal halfWidth = myVType.getWidth() / 2.0 * exaggeration;
GUITexturesHelper::drawTexturedBox(textureID, -halfWidth, 0, halfWidth, length);
return true;
}
@@ -884,92 +822,20 @@ GUIVehicle::drawAction_drawVehicleAsImage(const GUIVisualizationSettings& s, SUM
}
-bool
-GUIVehicle::drawAction_drawCarriageClass(const GUIVisualizationSettings& s, SUMOVehicleShape guiShape, bool asImage) const {
- switch (guiShape) {
- case SVS_BUS_FLEXIBLE:
- drawAction_drawRailCarriages(s, 8.25, 0, 0, asImage); // 16.5 overall, 2 modules http://de.wikipedia.org/wiki/Ikarus_180
- break;
- case SVS_RAIL:
- drawAction_drawRailCarriages(s, 24.5, 1, 1, asImage); // http://de.wikipedia.org/wiki/UIC-Y-Wagen_%28DR%29
- break;
- case SVS_RAIL_CAR:
- drawAction_drawRailCarriages(s, 16.85, 1, 0, asImage); // 67.4m overall, 4 carriages http://de.wikipedia.org/wiki/DB-Baureihe_423
-// drawAction_drawRailCarriages(s, 5.71, 0, 0, asImage); // 40.0m overall, 7 modules http://de.wikipedia.org/wiki/Bombardier_Flexity_Berlin
-// drawAction_drawRailCarriages(s, 9.44, 1, 1, asImage); // actually length of the locomotive http://de.wikipedia.org/wiki/KJI_Nr._20_und_21
-// drawAction_drawRailCarriages(s, 24.775, 0, 0, asImage); // http://de.wikipedia.org/wiki/ICE_3
- break;
- case SVS_RAIL_CARGO:
- drawAction_drawRailCarriages(s, 13.86, 1, 0, asImage); // UIC 571-1 http://de.wikipedia.org/wiki/Flachwagen
- break;
- default:
- return false;
- }
- return true;
-}
-
-#define BLINKER_POS_FRONT .5
-#define BLINKER_POS_BACK .5
-
-inline void
-drawAction_drawBlinker(double dir, SUMOReal length) {
- glColor3d(1.f, .8f, 0);
- glPushMatrix();
- glTranslated(dir, BLINKER_POS_FRONT, -0.1);
- GLHelper::drawFilledCircle(.5, 6);
- glPopMatrix();
- glPushMatrix();
- glTranslated(dir, length - BLINKER_POS_BACK, -0.1);
- GLHelper::drawFilledCircle(.5, 6);
- glPopMatrix();
-}
-
-
-inline void
-drawAction_drawVehicleBlinker(const GUIVehicle& veh, SUMOReal length) {
- if (!veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_RIGHT | MSVehicle::VEH_SIGNAL_BLINKER_LEFT | MSVehicle::VEH_SIGNAL_BLINKER_EMERGENCY)) {
- return;
- }
- const double offset = MAX2(.5 * veh.getVehicleType().getWidth(), .4);
- if (veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_RIGHT)) {
- drawAction_drawBlinker(-offset, length);
- }
- if (veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_LEFT)) {
- drawAction_drawBlinker(offset, length);;
- }
- if (veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_EMERGENCY)) {
- drawAction_drawBlinker(-offset, length);
- drawAction_drawBlinker(offset, length);
- }
-}
-
-
-inline void
-drawAction_drawVehicleBrakeLight(const GUIVehicle& veh, SUMOReal length) {
- if (!veh.signalSet(MSVehicle::VEH_SIGNAL_BRAKELIGHT)) {
- return;
- }
- glColor3f(1.f, .2f, 0);
- glPushMatrix();
- glTranslated(-veh.getVehicleType().getWidth() * 0.5, length, -0.1);
- GLHelper::drawFilledCircle(.5, 6);
- glPopMatrix();
- glPushMatrix();
- glTranslated(veh.getVehicleType().getWidth() * 0.5, length, -0.1);
- GLHelper::drawFilledCircle(.5, 6);
- glPopMatrix();
-}
-
-
void
-GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
+GUIBaseVehicle::drawGL(const GUIVisualizationSettings& s) const {
glPushName(getGlID());
glPushMatrix();
Position p1 = getPosition();
+ const SUMOReal angle = RAD2DEG(getAngle() + PI / 2.);
// one seat in the center of the vehicle by default
- mySeatPositions[0] = myLane->geometryPositionAtOffset(myState.pos() - getVehicleType().getLength() / 2);
+ if (myVehicle.getLane() != 0) {
+ mySeatPositions[0] = myVehicle.getLane()->geometryPositionAtOffset(myVehicle.getPositionOnLane() - myVType.getLength() / 2);
+ } else {
+ mySeatPositions[0] = p1;
+ }
glTranslated(p1.x(), p1.y(), getType());
- glRotated(getAngle(), 0, 0, 1);
+ glRotated(angle, 0, 0, 1);
// set lane color
setColor(s);
// scale
@@ -986,7 +852,7 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
}
*/
// draw the vehicle
- myCarriageLength = getVehicleType().getLength();
+ myCarriageLength = myVType.getLength();
switch (s.vehicleQuality) {
case 0:
drawAction_drawVehicleAsTrianglePlus();
@@ -996,12 +862,17 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
break;
case 2:
drawAction_drawVehicleAsPoly(s);
+ // draw flashing blue light for emergency vehicles
+ if (myVType.getGuiShape() == SVS_EMERGENCY) {
+ glTranslated(0, 0, .1);
+ drawAction_drawVehicleBlueLight();
+ }
break;
case 3:
default:
// draw as image but take special care for drawing trains
// fallback to simple shapes
- if (!drawAction_drawCarriageClass(s, getVehicleType().getGuiShape(), true)) {
+ if (!drawAction_drawCarriageClass(s, myVType.getGuiShape(), true)) {
if (!drawAction_drawVehicleAsImage(s)) {
drawAction_drawVehicleAsPoly(s);
};
@@ -1009,7 +880,7 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
break;
}
if (s.drawMinGap) {
- const SUMOReal minGap = -getVehicleType().getMinGap();
+ const SUMOReal minGap = -myVType.getMinGap();
glColor3d(0., 1., 0.);
glBegin(GL_LINES);
glVertex2d(0., 0);
@@ -1018,7 +889,7 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
glVertex2d(.5, minGap);
glEnd();
}
- MSDevice_BTreceiver* dev = static_cast<MSDevice_BTreceiver*>(getDevice(typeid(MSDevice_BTreceiver)));
+ MSDevice_BTreceiver* dev = static_cast<MSDevice_BTreceiver*>(myVehicle.getDevice(typeid(MSDevice_BTreceiver)));
if (dev != 0 && s.showBTRange) {
glColor3d(1., 0., 0.);
GLHelper::drawOutlineCircle(dev->getRange(), dev->getRange() - .2, 32);
@@ -1026,7 +897,7 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
// draw the blinker and brakelights if wished
if (s.showBlinker) {
glTranslated(0, 0, .1);
- switch (getVehicleType().getGuiShape()) {
+ switch (myVType.getGuiShape()) {
case SVS_PEDESTRIAN:
case SVS_BICYCLE:
case SVS_ANT:
@@ -1036,8 +907,8 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
// only SVS_RAIL_CAR has blinkers and brake lights
break;
default:
- drawAction_drawVehicleBlinker(*this, myCarriageLength);
- drawAction_drawVehicleBrakeLight(*this, myCarriageLength);
+ drawAction_drawVehicleBlinker(myCarriageLength);
+ drawAction_drawVehicleBrakeLight(myCarriageLength);
break;
}
}
@@ -1088,40 +959,24 @@ GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
glEnd();
}
*/
- glPopMatrix();
- const Position namePos = getPosition(-MIN2(getVehicleType().getLength() / 2, SUMOReal(5)));
- drawName(namePos, s.scale,
- getVehicleType().getGuiShape() == SVS_PEDESTRIAN ? s.personName : s.vehicleName);
- if (s.vehicleName.show && myParameter->line != "") {
- GLHelper::drawText("line:" + myParameter->line, namePos + Position(0, -0.6 * s.vehicleName.size / s.scale),
+ glTranslated(0, MIN2(myVType.getLength() / 2, SUMOReal(5)), -getType()); // drawing name at GLO_MAX fails unless translating z
+ glRotated(-angle, 0, 0, 1);
+ glScaled(1 / upscale, 1 / upscale, 1);
+ drawName(Position(0, 0), s.scale,
+ myVType.getGuiShape() == SVS_PEDESTRIAN ? s.personName : s.vehicleName);
+ if (s.vehicleName.show && myVehicle.getParameter().line != "") {
+ glTranslated(0, 0.6 * s.vehicleName.size / s.scale, 0);
+ GLHelper::drawText("line:" + myVehicle.getParameter().line, Position(0, 0),
GLO_MAX, s.vehicleName.size / s.scale, s.vehicleName.color);
}
+ glPopMatrix();
glPopName();
- if (myPersonDevice != 0) {
- const std::vector<MSTransportable*>& ps = myPersonDevice->getPersons();
- size_t personIndex = 0;
- for (std::vector<MSTransportable*>::const_iterator i = ps.begin(); i != ps.end(); ++i) {
- GUIPerson* person = dynamic_cast<GUIPerson*>(*i);
- assert(person != 0);
- person->setPositionInVehicle(getSeatPosition(personIndex++));
- person->drawGL(s);
- }
- }
- if (myContainerDevice != 0) {
- const std::vector<MSTransportable*>& cs = myContainerDevice->getContainers();
- size_t containerIndex = 0;
- for (std::vector<MSTransportable*>::const_iterator i = cs.begin(); i != cs.end(); ++i) {
- GUIContainer* container = dynamic_cast<GUIContainer*>(*i);
- assert(container != 0);
- container->setPositionInVehicle(getSeatPosition(containerIndex++));
- container->drawGL(s);
- }
- }
+ drawAction_drawPersonsAndContainers(s);
}
void
-GUIVehicle::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisualizationSettings& s) const {
+GUIBaseVehicle::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisualizationSettings& s) const {
glPushName(getGlID());
glPushMatrix();
glTranslated(0, 0, getType() - .1); // don't draw on top of other cars
@@ -1132,8 +987,8 @@ GUIVehicle::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisuali
drawRoute(s, 0, 0.25);
}
if (hasActiveAddVisualisation(parent, VO_SHOW_ALL_ROUTES)) {
- if (getNumberReroutes() > 0) {
- const int noReroutePlus1 = getNumberReroutes() + 1;
+ if (myVehicle.getNumberReroutes() > 0) {
+ const int noReroutePlus1 = myVehicle.getNumberReroutes() + 1;
for (int i = noReroutePlus1 - 1; i >= 0; i--) {
SUMOReal darken = SUMOReal(0.4) / SUMOReal(noReroutePlus1) * SUMOReal(i);
drawRoute(s, i, darken);
@@ -1143,29 +998,7 @@ GUIVehicle::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisuali
}
}
if (hasActiveAddVisualisation(parent, VO_SHOW_LFLINKITEMS)) {
- for (DriveItemVector::const_iterator i = myLFLinkLanes.begin(); i != myLFLinkLanes.end(); ++i) {
- if ((*i).myLink == 0) {
- continue;
- }
- MSLink* link = (*i).myLink;
- MSLane* via = link->getViaLaneOrLane();
- if (via != 0) {
- Position p = via->getShape()[0];
- if ((*i).mySetRequest) {
- glColor3d(0, .8, 0);
- } else {
- glColor3d(.8, 0, 0);
- }
- const SUMOTime leaveTime = (*i).myLink->getLeaveTime(
- (*i).myArrivalTime, (*i).myArrivalSpeed, (*i).getLeaveSpeed(), getVehicleType().getLengthWithGap());
- drawLinkItem(p, (*i).myArrivalTime, leaveTime, s.vehicleSize.getExaggeration(s));
- // the time slot that ego vehicle uses when checking opened may
- // differ from the one it requests in setApproaching
- MSLink::ApproachingVehicleInformation avi = (*i).myLink->getApproaching(this);
- assert(avi.arrivalTime == (*i).myArrivalTime && avi.leavingTime == leaveTime);
- UNUSED_PARAMETER(avi); // only used for assertion
- }
- }
+ drawAction_drawLinkItems(s);
}
glPopMatrix();
glPopName();
@@ -1173,7 +1006,7 @@ GUIVehicle::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisuali
void
-GUIVehicle::drawLinkItem(const Position& pos, SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal exagerate) {
+GUIBaseVehicle::drawLinkItem(const Position& pos, SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal exagerate) {
glTranslated(pos.x(), pos.y(), -.1);
GLHelper::drawFilledCircle(1);
std::string times = toString(STEPS2TIME(arrivalTime)) + "/" + toString(STEPS2TIME(leaveTime));
@@ -1183,16 +1016,16 @@ GUIVehicle::drawLinkItem(const Position& pos, SUMOTime arrivalTime, SUMOTime lea
void
-GUIVehicle::setColor(const GUIVisualizationSettings& s) const {
+GUIBaseVehicle::setColor(const GUIVisualizationSettings& s) const {
const GUIColorer& c = s.vehicleColorer;
- if (!setFunctionalColor(c.getActive(), this)) {
+ if (!setFunctionalColor(c.getActive(), &myVehicle)) {
GLHelper::setColor(c.getScheme().getColor(getColorValue(c.getActive())));
}
}
bool
-GUIVehicle::setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh) {
+GUIBaseVehicle::setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh) {
switch (activeScheme) {
case 0: {
if (veh->getParameter().wasSet(VEHPARS_COLOR_SET)) {
@@ -1259,7 +1092,7 @@ GUIVehicle::setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh) {
GLHelper::setColor(RGBColor::fromHSV(hue, sat, 1.));
return true;
}
- case 24: { // color randomly (by pointer)
+ case 25: { // color randomly (by pointer)
const SUMOReal hue = (long)veh % 360; // [0-360]
const SUMOReal sat = (((long)veh / 360) % 67) / 100.0 + 0.33; // [0.33-1]
GLHelper::setColor(RGBColor::fromHSV(hue, sat, 1.));
@@ -1270,58 +1103,15 @@ GUIVehicle::setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh) {
}
-SUMOReal
-GUIVehicle::getColorValue(size_t activeScheme) const {
- switch (activeScheme) {
- case 8:
- return getSpeed();
- case 9:
- return getWaitingSeconds();
- case 10:
- return getLastLaneChangeOffset();
- case 11:
- return getLane()->getVehicleMaxSpeed(this);
- case 12:
- return getCO2Emissions();
- case 13:
- return getCOEmissions();
- case 14:
- return getPMxEmissions();
- case 15:
- return getNOxEmissions();
- case 16:
- return getHCEmissions();
- case 17:
- return getFuelConsumption();
- case 18:
- return getHarmonoise_NoiseEmissions();
- case 19: // !!! unused!?
- if (getNumberReroutes() == 0) {
- return -1;
- }
- return getNumberReroutes();
- case 20:
- return gSelected.isSelected(GLO_VEHICLE, getGlID());
- case 21:
- return getBestLaneOffset();
- case 22:
- return getAcceleration();
- case 23:
- return getTimeGap();
- }
- return 0;
-}
-
-
// ------------ Additional visualisations
bool
-GUIVehicle::hasActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) const {
+GUIBaseVehicle::hasActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) const {
return myAdditionalVisualizations.find(parent) != myAdditionalVisualizations.end() && (myAdditionalVisualizations.find(parent)->second & which) != 0;
}
void
-GUIVehicle::addActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) {
+GUIBaseVehicle::addActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) {
if (myAdditionalVisualizations.find(parent) == myAdditionalVisualizations.end()) {
myAdditionalVisualizations[parent] = 0;
}
@@ -1331,14 +1121,14 @@ GUIVehicle::addActiveAddVisualisation(GUISUMOAbstractView* const parent, int whi
void
-GUIVehicle::removeActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) {
+GUIBaseVehicle::removeActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) {
myAdditionalVisualizations[parent] &= ~which;
parent->removeAdditionalGLVisualisation(this);
}
void
-GUIVehicle::drawRoute(const GUIVisualizationSettings& s, int routeNo, SUMOReal darken) const {
+GUIBaseVehicle::drawRoute(const GUIVisualizationSettings& s, int routeNo, SUMOReal darken) const {
setColor(s);
GLdouble colors[4];
glGetDoublev(GL_CURRENT_COLOR, colors);
@@ -1361,281 +1151,23 @@ GUIVehicle::drawRoute(const GUIVisualizationSettings& s, int routeNo, SUMOReal d
glColor3dv(colors);
const SUMOReal exaggeration = s.vehicleSize.getExaggeration(s);
if (routeNo == 0) {
- drawRouteHelper(*myRoute, exaggeration);
+ drawRouteHelper(myVehicle.getRoute(), exaggeration);
return;
}
--routeNo; // only prior routes are stored
- drawRouteHelper(*myRoutes->getRoute(routeNo), exaggeration);
-}
-
-
-void
-GUIVehicle::drawBestLanes() const {
- myLock.lock();
- std::vector<std::vector<MSVehicle::LaneQ> > bestLanes = myBestLanes;
- myLock.unlock();
- SUMOReal width = 0.5;
- for (std::vector<std::vector<MSVehicle::LaneQ> >::iterator j = bestLanes.begin(); j != bestLanes.end(); ++j) {
- std::vector<MSVehicle::LaneQ>& lanes = *j;
- SUMOReal gmax = -1;
- SUMOReal rmax = -1;
- for (std::vector<MSVehicle::LaneQ>::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
- gmax = MAX2((*i).length, gmax);
- rmax = MAX2((*i).occupation, rmax);
- }
- for (std::vector<MSVehicle::LaneQ>::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
- const PositionVector& shape = (*i).lane->getShape();
- SUMOReal g = (*i).length / gmax;
- SUMOReal r = (*i).occupation / rmax;
- glColor3d(r, g, 0);
- GLHelper::drawBoxLines(shape, width);
-
- PositionVector s1 = shape;
- s1.move2side((SUMOReal) .1);
- glColor3d(r, 0, 0);
- GLHelper::drawLine(s1);
- s1.move2side((SUMOReal) - .2);
- glColor3d(0, g, 0);
- GLHelper::drawLine(s1);
-
- glColor3d(r, g, 0);
- Position lastPos = shape[-1];
- }
- width = .2;
- }
-}
-
-
-void
-GUIVehicle::drawRouteHelper(const MSRoute& r, SUMOReal exaggeration) const {
- MSRouteIterator i = r.begin();
- const std::vector<MSLane*>& bestLaneConts = getBestLanesContinuation();
- // draw continuation lanes when drawing the current route where available
- size_t bestLaneIndex = (&r == myRoute ? 0 : bestLaneConts.size());
- for (; i != r.end(); ++i) {
- const GUILane* lane;
- if (bestLaneIndex < bestLaneConts.size() && bestLaneConts[bestLaneIndex] != 0 && (*i) == &(bestLaneConts[bestLaneIndex]->getEdge())) {
- lane = static_cast<GUILane*>(bestLaneConts[bestLaneIndex]);
- ++bestLaneIndex;
- } else {
- lane = static_cast<GUILane*>((*i)->getLanes()[0]);
- }
- GLHelper::drawBoxLines(lane->getShape(), lane->getShapeRotations(), lane->getShapeLengths(), exaggeration);
- }
-}
-
-
-MSLane*
-GUIVehicle::getPreviousLane(MSLane* current, int& furtherIndex) const {
- if (furtherIndex < (int)myFurtherLanes.size()) {
- return myFurtherLanes[furtherIndex++];
- } else {
- return current;
- }
-}
-
-
-void
-GUIVehicle::drawAction_drawRailCarriages(const GUIVisualizationSettings& s, SUMOReal defaultLength, SUMOReal carriageGap, int firstPassengerCarriage, bool asImage) const {
- RGBColor current = GLHelper::getColor();
- RGBColor darker = current.changedBrightness(-51);
- const SUMOReal exaggeration = s.vehicleSize.getExaggeration(s);
- defaultLength *= exaggeration;
- if (exaggeration == 0) {
- return;
- }
- carriageGap *= exaggeration;
- const SUMOReal length = getVehicleType().getLength() * exaggeration;
- const SUMOReal halfWidth = getVehicleType().getWidth() / 2.0 * exaggeration;
- glPopMatrix(); // undo scaling and 90 degree rotation
- glPopMatrix(); // undo initial translation and rotation
- GLHelper::setColor(darker);
- const SUMOReal xCornerCut = 0.3 * exaggeration;
- const SUMOReal yCornerCut = 0.4 * exaggeration;
- // round to closest integer
- const int numCarriages = floor(length / (defaultLength + carriageGap) + 0.5);
- assert(numCarriages > 0);
- const SUMOReal carriageLengthWithGap = length / numCarriages;
- const SUMOReal carriageLength = carriageLengthWithGap - carriageGap;
- // lane on which the carriage front is situated
- MSLane* lane = myLane;
- int furtherIndex = 0;
- // lane on which the carriage back is situated
- MSLane* backLane = myLane;
- int backFurtherIndex = furtherIndex;
- // offsets of front and back
- SUMOReal carriageOffset = myState.pos();
- SUMOReal carriageBackOffset = myState.pos() - carriageLength;
- // handle seats
- int requiredSeats = getNumPassengers();
- if (requiredSeats > 0) {
- mySeatPositions.clear();
- }
- Position front, back;
- SUMOReal angle = 0.;
- // draw individual carriages
- for (int i = 0; i < numCarriages; ++i) {
- while (carriageOffset < 0) {
- MSLane* prev = getPreviousLane(lane, furtherIndex);
- if (prev != lane) {
- carriageOffset += prev->getLength();
- } else {
- // no lane available for drawing.
- carriageOffset = 0;
- }
- lane = prev;
- }
- while (carriageBackOffset < 0) {
- MSLane* prev = getPreviousLane(backLane, backFurtherIndex);
- if (prev != backLane) {
- carriageBackOffset += prev->getLength();
- } else {
- // no lane available for drawing.
- carriageBackOffset = 0;
- }
- backLane = prev;
- }
- front = lane->getShape().positionAtOffset2D(carriageOffset);
- back = backLane->getShape().positionAtOffset2D(carriageBackOffset);
- if (front == back) {
- // no place for drawing available
- continue;
- }
- angle = atan2((front.x() - back.x()), (back.y() - front.y())) * (SUMOReal) 180.0 / (SUMOReal) PI;
- if (i >= firstPassengerCarriage) {
- computeSeats(front, back, requiredSeats);
- }
- glPushMatrix();
- glTranslated(front.x(), front.y(), getType());
- glRotated(angle, 0, 0, 1);
- if (!asImage || !drawAction_drawVehicleAsImage(s, carriageLength)) {
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(-halfWidth + xCornerCut, 0);
- glVertex2d(-halfWidth, yCornerCut);
- glVertex2d(-halfWidth, carriageLength - yCornerCut);
- glVertex2d(-halfWidth + xCornerCut, carriageLength);
- glVertex2d(halfWidth - xCornerCut, carriageLength);
- glVertex2d(halfWidth, carriageLength - yCornerCut);
- glVertex2d(halfWidth, yCornerCut);
- glVertex2d(halfWidth - xCornerCut, 0);
- glEnd();
- }
- glPopMatrix();
- carriageOffset -= carriageLengthWithGap;
- carriageBackOffset -= carriageLengthWithGap;
- GLHelper::setColor(current);
+ const MSRoute* route = myRoutes->getRoute(routeNo);
+ if (route != 0) {
+ drawRouteHelper(*route, exaggeration);
}
- myCarriageLength = front.distanceTo2D(back);
- // restore matrices
- glPushMatrix();
- glTranslated(front.x(), front.y(), getType());
- glRotated(angle, 0, 0, 1);
- glPushMatrix();
}
const Position&
-GUIVehicle::getSeatPosition(size_t personIndex) const {
+GUIBaseVehicle::getSeatPosition(size_t personIndex) const {
/// if there are not enough seats in the vehicle people have to squeeze onto the last seat
return mySeatPositions[(int)MIN2(personIndex, mySeatPositions.size() - 1)];
}
-int
-GUIVehicle::getNumPassengers() const {
- if (myPersonDevice != 0) {
- return (int)myPersonDevice->getPersons().size();
- }
- return 0;
-}
-
-
-void
-GUIVehicle::computeSeats(const Position& front, const Position& back, int& requiredSeats) const {
- if (requiredSeats <= 0) {
- return; // save some work
- }
- const Line l(front, back);
- const SUMOReal length = l.length2D();
- if (length < 4) {
- // small vehicle, sit at the center
- mySeatPositions.push_back(l.getPositionAtDistance2D(length / 2));
- requiredSeats--;
- } else {
- for (SUMOReal p = 2; p <= length - 1; p += 1) {
- mySeatPositions.push_back(l.getPositionAtDistance2D(p));
- requiredSeats--;
- }
- }
-}
-
-
-SUMOReal
-GUIVehicle::getLastLaneChangeOffset() const {
- return STEPS2TIME(getLaneChangeModel().getLastLaneChangeOffset());
-}
-
-
-std::string
-GUIVehicle::getStopInfo() const {
- std::string result = "";
- if (isParking()) {
- result += "parking";
- } else if (isStopped()) {
- result += "stopped";
- } else {
- return "";
- }
- if (myStops.front().triggered) {
- result += ", triggered";
- } else if (myStops.front().containerTriggered) {
- result += ", containerTriggered";
- } else {
- result += ", duration=" + time2string(myStops.front().duration);
- }
- return result;
-}
-
-
-void
-GUIVehicle::selectBlockingFoes() const {
- SUMOReal dist = myLane->getLength() - getPositionOnLane();
- for (DriveItemVector::const_iterator i = myLFLinkLanes.begin(); i != myLFLinkLanes.end(); ++i) {
- const DriveProcessItem& dpi = *i;
- if (dpi.myLink == 0) {
- continue;
- }
- std::vector<const SUMOVehicle*> blockingFoes;
- std::vector<const MSPerson*> blockingPersons;
- dpi.myLink->opened(dpi.myArrivalTime, dpi.myArrivalSpeed, dpi.getLeaveSpeed(), getVehicleType().getLength(),
- getImpatience(), getCarFollowModel().getMaxDecel(), getWaitingTime(), &blockingFoes);
- for (std::vector<const SUMOVehicle*>::const_iterator it = blockingFoes.begin(); it != blockingFoes.end(); ++it) {
- gSelected.select(static_cast<const GUIVehicle*>(*it)->getGlID());
- }
-#ifdef HAVE_INTERNAL_LANES
- const MSLink::LinkLeaders linkLeaders = (dpi.myLink)->getLeaderInfo(dist, getVehicleType().getMinGap(), &blockingPersons);
- for (MSLink::LinkLeaders::const_iterator it = linkLeaders.begin(); it != linkLeaders.end(); ++it) {
- // the vehicle to enter the junction first has priority
- const GUIVehicle* leader = dynamic_cast<const GUIVehicle*>(it->vehAndGap.first);
- if (leader != 0) {
- if (leader->myLinkLeaders[dpi.myLink->getJunction()].count(getID()) == 0) {
- // leader isn't already following us, now we follow it
- gSelected.select(leader->getGlID());
- }
- } else {
- for (std::vector<const MSPerson*>::iterator it_p = blockingPersons.begin(); it_p != blockingPersons.end(); ++it_p) {
- const GUIPerson* foe = dynamic_cast<const GUIPerson*>(*it_p);
- if (foe != 0) {
- gSelected.select(foe->getGlID());
- //std::cout << SIMTIME << " veh=" << getID() << " is blocked on link " << dpi.myLink->getRespondIndex() << " to " << dpi.myLink->getViaLaneOrLane()->getID() << " by pedestrian. dist=" << it->second << "\n";
- }
- }
- }
- }
-#endif
- dist += dpi.myLink->getViaLaneOrLane()->getLength();
- }
-}
-
/****************************************************************************/
diff --git a/src/guisim/GUIVehicle.h b/src/guisim/GUIBaseVehicle.h
similarity index 80%
copy from src/guisim/GUIVehicle.h
copy to src/guisim/GUIBaseVehicle.h
index 0be0529..6d4a7d6 100644
--- a/src/guisim/GUIVehicle.h
+++ b/src/guisim/GUIBaseVehicle.h
@@ -1,11 +1,11 @@
/****************************************************************************/
-/// @file GUIVehicle.h
+/// @file GUIBaseVehicle.h
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIVehicle.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIBaseVehicle.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSVehicle extended by some values for usage within the gui
/****************************************************************************/
@@ -20,8 +20,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef GUIVehicle_h
-#define GUIVehicle_h
+#ifndef GUIBaseVehicle_h
+#define GUIBaseVehicle_h
// ===========================================================================
@@ -57,7 +57,7 @@ class MSDevice_Vehroutes;
// class definitions
// ===========================================================================
/**
- * @class GUIVehicle
+ * @class GUIBaseVehicle
* @brief A MSVehicle extended by some values for usage within the gui
*
* A visualisable MSVehicle. Extended by the possibility to retrieve names
@@ -65,35 +65,51 @@ class MSDevice_Vehroutes;
* color of the vehicle which is available in different forms allowing an
* easier recognition of done actions such as lane changing.
*/
-class GUIVehicle : public MSVehicle, public GUIGlObject {
+class GUIBaseVehicle : public GUIGlObject {
public:
- /** @brief Constructor
- * @param[in] pars The vehicle description
- * @param[in] route The vehicle's route
- * @param[in] type The vehicle's type
- * @param[in] speedFactor The factor for driven lane's speed limits
- * @exception ProcessError If a value is wrong
- */
- GUIVehicle(SUMOVehicleParameter* pars, const MSRoute* route,
- const MSVehicleType* type, const SUMOReal speedFactor);
+ GUIBaseVehicle(MSBaseVehicle& vehicle);
/// @brief destructor
- ~GUIVehicle();
+ ~GUIBaseVehicle();
- /// @name inherited from GUIGlObject
- //@{
-
- /** @brief Returns an own popup-menu
+ /** @brief Return current position (x/y, cartesian)
*
- * @param[in] app The application needed to build the popup-menu
- * @param[in] parent The parent window needed to build the popup-menu
- * @return The built popup-menu
- * @see GUIGlObject::getPopUpMenu
+ * If the vehicle's myLane is 0, Position::INVALID.
+ * @param[in] offset optional offset in longitudinal direction
+ * @return The current position (in cartesian coordinates)
+ * @see myLane
*/
- GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent);
+ virtual Position getPosition(const SUMOReal offset = 0) const = 0;
+
+ /** @brief Returns the vehicle's direction in radians
+ * @return The vehicle's current angle
+ */
+ virtual SUMOReal getAngle() const = 0;
+
+ /// @brief gets the color value according to the current scheme index
+ virtual SUMOReal getColorValue(size_t activeScheme) const = 0;
+
+ /// @brief draws the given guiShape if it has distinc carriages/modules and eturns true if so
+ virtual bool drawAction_drawCarriageClass(const GUIVisualizationSettings& s, SUMOVehicleShape guiShape, bool asImage) const = 0;
+
+ /** @brief Returns the time since the last lane change in seconds
+ * @see MSVehicle::myLastLaneChangeOffset
+ * @return The time since the last lane change in seconds
+ */
+ virtual SUMOReal getLastLaneChangeOffset() const = 0;
+
+ /** @brief Draws the route
+ * @param[in] r The route to draw
+ */
+ virtual void drawRouteHelper(const MSRoute& r, SUMOReal exaggeration) const = 0;
+ /// @brief retrieve information about the current stop state
+ virtual std::string getStopInfo() const = 0;
+
+ /// @brief adds the blocking foes to the current selection
+ virtual void selectBlockingFoes() const = 0;
/** @brief Returns an own parameter window
*
@@ -102,7 +118,31 @@ public:
* @return The built parameter window
* @see GUIGlObject::getParameterWindow
*/
- GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent);
+ virtual GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent) = 0;
+
+ virtual void drawAction_drawVehicleBlinker(SUMOReal /*length*/) const {}
+ virtual void drawAction_drawVehicleBrakeLight(SUMOReal /*length*/) const {}
+ virtual void drawAction_drawLinkItems(const GUIVisualizationSettings& /*s*/) const {}
+ virtual void drawAction_drawPersonsAndContainers(const GUIVisualizationSettings& /*s*/) const {}
+ /** @brief Draws the vehicle's best lanes */
+ virtual void drawBestLanes() const {};
+ virtual void drawAction_drawVehicleBlueLight() const {}
+
+
+
+
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent);
/** @brief Returns the boundary to which the view shall be centered in order to show the object
@@ -159,21 +199,14 @@ public:
- /** @brief Returns the time since the last lane change in seconds
- * @see MSVehicle::myLastLaneChangeOffset
- * @return The time since the last lane change in seconds
- */
- SUMOReal getLastLaneChangeOffset() const;
-
-
/**
- * @class GUIVehiclePopupMenu
+ * @class GUIBaseVehiclePopupMenu
*
* A popup-menu for vehicles. In comparison to the normal popup-menu, this one
* also allows to trigger further visualisations and to track the vehicle.
*/
- class GUIVehiclePopupMenu : public GUIGLObjectPopupMenu {
- FXDECLARE(GUIVehiclePopupMenu)
+ class GUIBaseVehiclePopupMenu : public GUIGLObjectPopupMenu {
+ FXDECLARE(GUIBaseVehiclePopupMenu)
public:
/** @brief Constructor
* @param[in] app The main window for instantiation of other windows
@@ -181,11 +214,11 @@ public:
* @param[in] o The object of interest
* @param[in, out] additionalVisualizations Information which additional visualisations are enabled (per view)
*/
- GUIVehiclePopupMenu(GUIMainWindow& app,
- GUISUMOAbstractView& parent, GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations);
+ GUIBaseVehiclePopupMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent, GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations);
/// @brief Destructor
- ~GUIVehiclePopupMenu();
+ ~GUIBaseVehiclePopupMenu();
/// @brief Called if all routes of the vehicle shall be shown
long onCmdShowAllRoutes(FXObject*, FXSelector, void*);
@@ -218,7 +251,7 @@ public:
protected:
/// @brief default constructor needed by FOX
- GUIVehiclePopupMenu() : myVehiclesAdditionalVisualizations(dummy) { }
+ GUIBaseVehiclePopupMenu() : myVehiclesAdditionalVisualizations(dummy) { }
};
@@ -245,12 +278,6 @@ public:
std::map<GUISUMOAbstractView*, int> myAdditionalVisualizations;
- /** @brief Draws the route
- * @param[in] r The route to draw
- */
- void drawRouteHelper(const MSRoute& r, SUMOReal exaggeration) const;
-
-
/** @brief Chooses the route to draw and draws it, darkening it as given
* @param[in] s The visualisation settings, needed to determine the vehicle's color
* @param[in] routeNo The route to show (0: the current, >0: prior)
@@ -259,25 +286,15 @@ public:
void drawRoute(const GUIVisualizationSettings& s, int routeNo, SUMOReal darken) const;
- /** @brief Draws the vehicle's best lanes
- */
- void drawBestLanes() const;
/// @}
- /// @brief adds the blocking foes to the current selection
- void selectBlockingFoes() const;
-
- /// @brief gets the color value according to the current scheme index
- SUMOReal getColorValue(size_t activeScheme) const;
-
/// @brief sets the color according to the current scheme index and some vehicle function
static bool setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh);
-private:
+protected:
/// @brief sets the color according to the currente settings
void setColor(const GUIVisualizationSettings& s) const;
-
/// @name drawing helper methods
/// @{
static void drawPoly(double* poses, SUMOReal offset);
@@ -291,49 +308,32 @@ private:
* (defaults to the * length specified in the vehicle type if -1 is passed)
*/
bool drawAction_drawVehicleAsImage(const GUIVisualizationSettings& s, SUMOReal length = -1) const;
-
- /* @brief draw train with individual carriages. The number of carriages is
- * determined from defaultLength of carriages and vehicle length
- * passengerSeats are computed beginning at firstPassengerCarriage */
- void drawAction_drawRailCarriages(const GUIVisualizationSettings& s, SUMOReal defaultLength, SUMOReal carriageGap,
- int firstPassengerCarriage, bool asImage) const;
/// @}
- /// @brief draws the given guiShape if it has distinc carriages/modules and eturns true if so
- bool drawAction_drawCarriageClass(const GUIVisualizationSettings& s, SUMOVehicleShape guiShape, bool asImage) const;
-
- /* @brief return the previous lane in this vehicles route including internal lanes
- * @param[in] current The lane of which the predecessor should be returned
- * @param[in,out] routeIndex The index of the current or previous non-internal edge in the route
- */
- MSLane* getPreviousLane(MSLane* current, int& furtherIndex) const;
-
/// @brief returns the seat position for the person with the given index
const Position& getSeatPosition(size_t personIndex) const;
- /// @brief return the number of passengers
- int getNumPassengers() const;
-
- /// @brief add seats to mySeatPositions and update requiredSeats
- void computeSeats(const Position& front, const Position& back, int& requiredSeats) const;
-
- /// @brief retrieve information about the current stop state
- std::string getStopInfo() const;
-
static void drawLinkItem(const Position& pos, SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal exagerate);
-private:
+protected:
/// The mutex used to avoid concurrent updates of the vehicle buffer
mutable MFXMutex myLock;
/// Variable to set with the length of the last drawn carriage or the vehicle length
mutable SUMOReal myCarriageLength;
- MSDevice_Vehroutes* myRoutes;
-
/// @brief positions of seats in the vehicle (updated at every drawing step)
mutable PositionVector mySeatPositions;
+private:
+ /// @brief The vehicle to which all calls should be delegated
+ MSBaseVehicle& myVehicle;
+
+ /// @brief A shortcut to myVehicle.myType
+ const MSVehicleType& myVType;
+
+ MSDevice_Vehroutes* myRoutes;
+
};
diff --git a/src/guisim/GUIBusStop.cpp b/src/guisim/GUIBusStop.cpp
index a23bb9c..5484da5 100644
--- a/src/guisim/GUIBusStop.cpp
+++ b/src/guisim/GUIBusStop.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Wed, 07.12.2005
-/// @version $Id: GUIBusStop.cpp 18258 2015-04-21 13:20:47Z behrisch $
+/// @version $Id: GUIBusStop.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A lane area vehicles can halt at (gui-version)
/****************************************************************************/
@@ -33,7 +33,6 @@
#include <string>
#include <utils/common/MsgHandler.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/geom/Boundary.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/common/ToString.h>
@@ -65,11 +64,12 @@
// method definitions
// ===========================================================================
GUIBusStop::GUIBusStop(const std::string& id, const std::vector<std::string>& lines, MSLane& lane,
- SUMOReal frompos, SUMOReal topos)
- : MSStoppingPlace(id, lines, lane, frompos, topos),
- GUIGlObject_AbstractAdd("busStop", GLO_TRIGGER, id) {
+ SUMOReal frompos, SUMOReal topos) :
+ MSStoppingPlace(id, lines, lane, frompos, topos),
+ GUIGlObject_AbstractAdd("busStop", GLO_TRIGGER, id) {
+ const SUMOReal offsetSign = MSNet::getInstance()->lefthand() ? -1 : 1;
myFGShape = lane.getShape();
- myFGShape.move2side((SUMOReal) 1.65);
+ myFGShape.move2side(1.65 * offsetSign);
myFGShape = myFGShape.getSubpart(frompos, topos);
myFGShapeRotations.reserve(myFGShape.size() - 1);
myFGShapeLengths.reserve(myFGShape.size() - 1);
@@ -81,7 +81,7 @@ GUIBusStop::GUIBusStop(const std::string& id, const std::vector<std::string>& li
myFGShapeRotations.push_back((SUMOReal) atan2((s.x() - f.x()), (f.y() - s.y())) * (SUMOReal) 180.0 / (SUMOReal) PI);
}
PositionVector tmp = myFGShape;
- tmp.move2side(1.5);
+ tmp.move2side(1.5 * offsetSign);
myFGSignPos = tmp.getLineCenter();
myFGSignRot = 0;
if (tmp.length() != 0) {
@@ -133,20 +133,20 @@ GUIBusStop::drawGL(const GUIVisualizationSettings& s) const {
size_t i;
glTranslated(0, 0, getType());
GLHelper::setColor(green);
- GLHelper::drawBoxLines(myFGShape, myFGShapeRotations, myFGShapeLengths, 1.0);
- // draw details unless zoomed out to far
const SUMOReal exaggeration = s.addSize.getExaggeration(s);
+ GLHelper::drawBoxLines(myFGShape, myFGShapeRotations, myFGShapeLengths, exaggeration);
+ // draw details unless zoomed out to far
if (s.scale * exaggeration >= 10) {
// draw the lines
+ const SUMOReal rotSign = MSNet::getInstance()->lefthand() ? -1 : 1;
for (i = 0; i != myLines.size(); ++i) {
glPushMatrix();
glTranslated(myFGSignPos.x(), myFGSignPos.y(), 0);
glRotated(180, 1, 0, 0);
- glRotated(myFGSignRot, 0, 0, 1);
+ glRotated(rotSign * myFGSignRot, 0, 0, 1);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
pfSetPosition(0, 0);
pfSetScale(1.f);
- glScaled(exaggeration, exaggeration, 1);
glTranslated(1.2, -(double)i, 0);
pfDrawString(myLines[i].c_str());
glPopMatrix();
@@ -163,16 +163,12 @@ GUIBusStop::drawGL(const GUIVisualizationSettings& s) const {
GLHelper::setColor(yellow);
GLHelper::drawFilledCircle((SUMOReal) 0.9, noPoints);
if (s.scale * exaggeration >= 4.5) {
- GLHelper::drawText("H", Position(), .1, 1.6 * exaggeration, green, myFGSignRot);
+ GLHelper::drawText("H", Position(), .1, 1.6, green, myFGSignRot);
}
}
glPopMatrix();
glPopName();
drawName(getCenteringBoundary().getCenter(), s.scale, s.addName);
- for (std::vector<MSTransportable*>::const_iterator i = myWaitingTransportables.begin(); i != myWaitingTransportables.end(); ++i) {
- glTranslated(0, 1, 0); // make multiple persons viewable
- static_cast<GUIPerson*>(*i)->drawGL(s);
- }
}
diff --git a/src/guisim/GUICalibrator.cpp b/src/guisim/GUICalibrator.cpp
index 53767ff..b7fcf0c 100644
--- a/src/guisim/GUICalibrator.cpp
+++ b/src/guisim/GUICalibrator.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 26.04.2004
-/// @version $Id: GUICalibrator.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUICalibrator.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// Changes flow and speed on a set of lanes (gui version)
/****************************************************************************/
@@ -31,7 +31,6 @@
#include <string>
#include <utils/common/MsgHandler.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/geom/Boundary.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/common/ToString.h>
diff --git a/src/guisim/GUIChrgStn.cpp b/src/guisim/GUIChargingStation.cpp
similarity index 80%
rename from src/guisim/GUIChrgStn.cpp
rename to src/guisim/GUIChargingStation.cpp
index 886f0e3..181b53c 100644
--- a/src/guisim/GUIChrgStn.cpp
+++ b/src/guisim/GUIChargingStation.cpp
@@ -1,12 +1,12 @@
/****************************************************************************/
-/// @file GUIChrgStn.cpp
+/// @file GUIChargingStation.cpp
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @author Tamas Kurczveil
/// @author Pablo Alvarez L�pez
/// @date 20-12-13
-/// @version $Id: GUIChrgStn.cpp 18762 2015-09-01 16:27:09Z behrisch $
+/// @version $Id: GUIChargingStation.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A lane area vehicles can halt at (gui-version)
/****************************************************************************/
@@ -35,7 +35,6 @@
#include <string>
#include <utils/common/MsgHandler.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/geom/Boundary.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/common/ToString.h>
@@ -45,7 +44,7 @@
#include "GUINet.h"
#include "GUIEdge.h"
#include "GUIPerson.h"
-#include "GUIChrgStn.h"
+#include "GUIChargingStation.h"
#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
#include <utils/gui/windows/GUIAppEnum.h>
#include <gui/GUIGlobals.h>
@@ -65,9 +64,9 @@
// ===========================================================================
// method definitions
// ===========================================================================
-GUIChrgStn::GUIChrgStn(const std::string& id, const std::vector<std::string>& lines, MSLane& lane,
- SUMOReal frompos, SUMOReal topos, SUMOReal new_chrgpower, SUMOReal new_efficiency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay)
- : MSChrgStn(id, lines, lane, frompos, topos, new_chrgpower, new_efficiency, new_ChargeInTransit, new_ChargeDelay),
+GUIChargingStation::GUIChargingStation(const std::string& id, const std::vector<std::string>& lines, MSLane& lane,
+ SUMOReal frompos, SUMOReal topos, SUMOReal new_chrgpower, SUMOReal new_efficiency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay)
+ : MSChargingStation(id, lines, lane, frompos, topos, new_chrgpower, new_efficiency, new_ChargeInTransit, new_ChargeDelay),
GUIGlObject_AbstractAdd("chargingStation", GLO_TRIGGER, id) {
myFGShape = lane.getShape();
myFGShape = myFGShape.getSubpart(frompos, topos);
@@ -96,13 +95,13 @@ GUIChrgStn::GUIChrgStn(const std::string& id, const std::vector<std::string>& li
}
-GUIChrgStn::~GUIChrgStn()
+GUIChargingStation::~GUIChargingStation()
{}
GUIParameterTableWindow*
-GUIChrgStn::getParameterWindow(GUIMainWindow& app,
- GUISUMOAbstractView&) {
+GUIChargingStation::getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView&) {
GUIParameterTableWindow* ret = new GUIParameterTableWindow(app, *this, 6);
// add items
@@ -120,7 +119,7 @@ GUIChrgStn::getParameterWindow(GUIMainWindow& app,
GUIGLObjectPopupMenu*
-GUIChrgStn::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
+GUIChargingStation::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
GUIGLObjectPopupMenu* ret = new GUIGLObjectPopupMenu(app, parent, *this);
buildPopupHeader(ret, app);
buildCenterPopupEntry(ret);
@@ -132,7 +131,7 @@ GUIChrgStn::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
}
Boundary
-GUIChrgStn::getCenteringBoundary() const {
+GUIChargingStation::getCenteringBoundary() const {
Boundary b = myFGShape.getBoxBoundary();
b.grow(20);
return b;
@@ -140,7 +139,7 @@ GUIChrgStn::getCenteringBoundary() const {
void
-GUIChrgStn::drawGL(const GUIVisualizationSettings& s) const {
+GUIChargingStation::drawGL(const GUIVisualizationSettings& s) const {
glPushName(getGlID());
glPushMatrix();
@@ -150,31 +149,11 @@ GUIChrgStn::drawGL(const GUIVisualizationSettings& s) const {
// draw the area
glTranslated(0, 0, getType());
GLHelper::setColor(blue);
- GLHelper::drawBoxLines(myFGShape, myFGShapeRotations, myFGShapeLengths, 1.0);
+ const SUMOReal exaggeration = s.addSize.getExaggeration(s);
+ GLHelper::drawBoxLines(myFGShape, myFGShapeRotations, myFGShapeLengths, exaggeration);
// draw details unless zoomed out to far
- const SUMOReal exaggeration = s.addSize.getExaggeration(s);
if (s.scale * exaggeration >= 10) {
- /**
- size_t i;
- // draw the lines
- GLHelper::setColor(green);
-
- for (i = 0; i != myLines.size(); ++i) {
- glPushMatrix();
- glTranslated(myFGSignPos.x(), myFGSignPos.y(), 0);
- glRotated(180, 1, 0, 0);
- glRotated(myFGSignRot, 0, 0, 1);
- glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
- pfSetPosition(0, 0);
- pfSetScale(1.f);
- glScaled(exaggeration, exaggeration, 1);
- glTranslated(1.2, -(double)i, 0);
- pfDrawString(myLines[i].c_str());
- glPopMatrix();
- }
- */
-
// draw the sign
glTranslated(myFGSignPos.x(), myFGSignPos.y(), 0);
int noPoints = 9;
@@ -191,7 +170,7 @@ GUIChrgStn::drawGL(const GUIVisualizationSettings& s) const {
GLHelper::drawFilledCircle((SUMOReal) 0.9, noPoints);
if (s.scale * exaggeration >= 4.5) {
- GLHelper::drawText("C", Position(), .1, 1.6 * exaggeration, green, myFGSignRot);
+ GLHelper::drawText("C", Position(), .1, 1.6, green, myFGSignRot);
}
/** draw the Sen function IGNORED
diff --git a/src/guisim/GUIChrgStn.h b/src/guisim/GUIChargingStation.h
similarity index 86%
rename from src/guisim/GUIChrgStn.h
rename to src/guisim/GUIChargingStation.h
index 89fe43c..fa20585 100644
--- a/src/guisim/GUIChrgStn.h
+++ b/src/guisim/GUIChargingStation.h
@@ -1,12 +1,12 @@
/****************************************************************************/
-/// @file GUIChrgStn.h
+/// @file GUIChargingStation.h
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @author Tamas Kurczveil
/// @author Pablo Alvarez L�pez
/// @date 20-12-13
-/// @version $Id: GUIChrgStn.h 18762 2015-09-01 16:27:09Z behrisch $
+/// @version $Id: GUIChargingStation.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A lane area vehicles can halt at (gui-version)
/****************************************************************************/
@@ -21,8 +21,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef GUIChrgStn_h
-#define GUIChrgStn_h
+#ifndef GUIChargingStation_h
+#define GUIChargingStation_h
// ===========================================================================
@@ -39,7 +39,7 @@
#include <utils/common/Command.h>
#include <utils/common/VectorHelper.h>
#include <utils/geom/PositionVector.h>
-#include <microsim/trigger/MSChrgStn.h>
+#include <microsim/trigger/MSChargingStation.h>
#include <guisim/GUIBusStop.h>
#include <utils/gui/globjects/GUIGlObject.h>
#include <utils/gui/globjects/GUIGlObject_AbstractAdd.h>
@@ -61,17 +61,17 @@ class GUIManipulator;
// class definitions
// ===========================================================================
/**
- * @class GUIChrgStn
+ * @class GUIChargingStation
* @brief A lane area vehicles can halt at (gui-version)
*
- * This gui-version of a bus-stop extends MSChrgStn by methods for displaying
+ * This gui-version of a bus-stop extends MSChargingStation by methods for displaying
* and interaction.
*
- * @see MSChrgStn
+ * @see MSChargingStation
* @see GUIGlObject_AbstractAdd
* @see GUIGlObject
*/
-class GUIChrgStn : public MSChrgStn, public GUIGlObject_AbstractAdd {
+class GUIChargingStation : public MSChargingStation, public GUIGlObject_AbstractAdd {
public:
/** @brief Constructor
* @param[in] idStorage The gl-id storage for giving this object an gl-id
@@ -81,14 +81,14 @@ public:
* @param[in] begPos Begin position of the charging station on the lane
* @param[in] endPos End position of the charging station on the lane
*/
- GUIChrgStn(const std::string& id,
- const std::vector<std::string>& lines, MSLane& lane,
- SUMOReal frompos, SUMOReal topos,
- SUMOReal new_chrgpower, SUMOReal new_efficiency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay);
+ GUIChargingStation(const std::string& id,
+ const std::vector<std::string>& lines, MSLane& lane,
+ SUMOReal frompos, SUMOReal topos,
+ SUMOReal new_chrgpower, SUMOReal new_efficiency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay);
/// @brief Destructor
- ~GUIChrgStn();
+ ~GUIChargingStation();
/// @name inherited from GUIGlObject
diff --git a/src/guisim/GUIContainer.cpp b/src/guisim/GUIContainer.cpp
index 233970b..673c91d 100644
--- a/src/guisim/GUIContainer.cpp
+++ b/src/guisim/GUIContainer.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Wed, 01.08.2014
-/// @version $Id: GUIContainer.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: GUIContainer.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// A MSContainer extended by some values for usage within the gui
/****************************************************************************/
@@ -43,6 +43,7 @@
#include <utils/common/StringUtils.h>
#include <utils/vehicle/SUMOVehicleParameter.h>
#include <utils/common/AbstractMutex.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/gui/images/GUITexturesHelper.h>
#include <utils/gui/windows/GUISUMOAbstractView.h>
#include <utils/gui/windows/GUIAppEnum.h>
@@ -156,7 +157,12 @@ GUIContainer::getParameterWindow(GUIMainWindow& app,
Boundary
GUIContainer::getCenteringBoundary() const {
Boundary b;
- b.add(getPosition());
+ // ensure that the vehicle is drawn, otherwise myPositionInVehicle will not be updated
+ if (getCurrentStageType() == DRIVING && !isWaiting4Vehicle()) {
+ b.add(getVehicle()->getPosition());
+ } else {
+ b.add(getPosition());
+ }
b.grow(20);
return b;
}
@@ -289,7 +295,7 @@ GUIContainer::setFunctionalColor(size_t activeScheme) const {
return false;
}
case 8: {
- SUMOReal hue = getAngle() + 180; // [0-360]
+ SUMOReal hue = GeomHelper::naviDegree(getAngle());
GLHelper::setColor(RGBColor::fromHSV(hue, 1., 1.));
return true;
}
@@ -365,7 +371,7 @@ GUIContainer::getSpeed() const {
void
GUIContainer::drawAction_drawAsPoly(const GUIVisualizationSettings& /* s */) const {
// draw pedestrian shape
- glRotated(getAngle(), 0, 0, 1);
+ glRotated(RAD2DEG(getAngle() + PI / 2.), 0, 0, 1);
glScaled(getVehicleType().getLength(), getVehicleType().getWidth(), 1);
glBegin(GL_QUADS);
glVertex2d(0, 0.5);
@@ -390,7 +396,7 @@ GUIContainer::drawAction_drawAsImage(const GUIVisualizationSettings& s) const {
if (file != "") {
// @todo invent an option for controlling whether images should be rotated or not
//if (getVehicleType().getGuiShape() == SVS_CONTAINER) {
- // glRotated(getAngle(), 0, 0, 1);
+ // glRotated(RAD2DEG(getAngle() + PI / 2.), 0, 0, 1);
//}
int textureID = GUITexturesHelper::getTextureID(file);
if (textureID > 0) {
diff --git a/src/guisim/GUIContainerStop.cpp b/src/guisim/GUIContainerStop.cpp
index 405176a..0577953 100644
--- a/src/guisim/GUIContainerStop.cpp
+++ b/src/guisim/GUIContainerStop.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Wed, 01.08.2014
-/// @version $Id: GUIContainerStop.cpp 18258 2015-04-21 13:20:47Z behrisch $
+/// @version $Id: GUIContainerStop.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// A lane area vehicles can halt at (gui-version)
/****************************************************************************/
@@ -32,7 +32,6 @@
#include <string>
#include <utils/common/MsgHandler.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/geom/Boundary.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/common/ToString.h>
diff --git a/src/guisim/GUIE3Collector.cpp b/src/guisim/GUIE3Collector.cpp
index 7c63efe..3429915 100644
--- a/src/guisim/GUIE3Collector.cpp
+++ b/src/guisim/GUIE3Collector.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Jan 2004
-/// @version $Id: GUIE3Collector.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIE3Collector.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// The gui-version of a MSE3Collector
/****************************************************************************/
@@ -32,7 +32,6 @@
#include "GUIE3Collector.h"
#include "GUIEdge.h"
-#include <utils/geom/Line.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
#include <utils/gui/div/GLHelper.h>
#include <microsim/logging/FunctionBinding.h>
@@ -143,10 +142,10 @@ GUIE3Collector::MyWrapper::drawSingleCrossing(const Position& pos,
// arrows
glTranslated(1.5, 0, 0);
GLHelper::drawBoxLine(Position(0, 4), 0, 2, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 4), Position(0, 1)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 4), Position(0, 1), (SUMOReal) 1, (SUMOReal) .25);
glTranslated(-3, 0, 0);
GLHelper::drawBoxLine(Position(0, 4), 0, 2, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 4), Position(0, 1)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 4), Position(0, 1), (SUMOReal) 1, (SUMOReal) .25);
glPopMatrix();
}
diff --git a/src/guisim/GUIEdge.cpp b/src/guisim/GUIEdge.cpp
index adb5d41..67972cc 100644
--- a/src/guisim/GUIEdge.cpp
+++ b/src/guisim/GUIEdge.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Sept 2002
-/// @version $Id: GUIEdge.cpp 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: GUIEdge.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A road/street connecting two junctions (gui-version)
/****************************************************************************/
@@ -52,6 +52,7 @@
#include <microsim/MSGlobals.h>
#include <microsim/logging/CastingFunctionBinding.h>
#include <microsim/logging/FunctionBinding.h>
+#include "GUITriggeredRerouter.h"
#include "GUIEdge.h"
#include "GUIVehicle.h"
#include "GUINet.h"
@@ -61,6 +62,7 @@
#ifdef HAVE_INTERNAL
#include <mesogui/GUIMEVehicleControl.h>
+#include <mesogui/GUIMEVehicle.h>
#include <mesosim/MESegment.h>
#include <mesosim/MELoop.h>
#include <mesosim/MEVehicle.h>
@@ -304,20 +306,18 @@ GUIEdge::drawMesoVehicles(const GUIVisualizationSettings& s) const {
SUMOReal segmentOffset = 0; // offset at start of current segment
for (MESegment* segment = MSGlobals::gMesoNet->getSegmentForEdge(*this);
segment != 0; segment = segment->getNextSegment()) {
- const SUMOReal length = segment->getLength() * segment->getLengthGeometryFactor();
+ const SUMOReal length = segment->getLength();
if (laneIndex < segment->numQueues()) {
// make a copy so we don't have to worry about synchronization
queue = segment->getQueue(laneIndex);
const SUMOReal avgCarSize = segment->getBruttoOccupancy() / segment->getCarNumber();
- const SUMOReal avgCarHalfSize = 0.5 * avgCarSize;
const size_t queueSize = queue.size();
SUMOReal vehiclePosition = segmentOffset + length;
// draw vehicles beginning with the leader at the end of the segment
SUMOReal xOff = 0;
for (size_t i = 0; i < queueSize; ++i) {
- MSBaseVehicle* veh = queue[queueSize - i - 1];
+ GUIMEVehicle* veh = static_cast<GUIMEVehicle*>(queue[queueSize - i - 1]);
const SUMOReal vehLength = veh->getVehicleType().getLengthWithGap();
- setVehicleColor(s, veh);
while (vehiclePosition < segmentOffset) {
// if there is only a single queue for a
// multi-lane edge shift vehicles and start
@@ -326,28 +326,9 @@ GUIEdge::drawMesoVehicles(const GUIVisualizationSettings& s) const {
xOff += 2;
}
const Position p = l->geometryPositionAtOffset(vehiclePosition);
- const SUMOReal angle = -l->getShape().rotationDegreeAtOffset(l->interpolateLanePosToGeometryPos(vehiclePosition));
- glPushMatrix();
- glTranslated(p.x(), p.y(), 0);
- glRotated(angle, 0, 0, 1);
- glTranslated(xOff, 0, GLO_VEHICLE);
- glScaled(exaggeration, vehLength * exaggeration, 1);
- glBegin(GL_TRIANGLES);
- glVertex2d(0, 0);
- glVertex2d(0 - 1.25, 1);
- glVertex2d(0 + 1.25, 1);
- glEnd();
- glPopMatrix();
- if (nameSettings.show) {
- glPushMatrix();
- glRotated(angle, 0, 0, 1);
- glTranslated(xOff, 0, 0);
- glRotated(-angle, 0, 0, 1);
- GLHelper::drawText(veh->getID(),
- l->geometryPositionAtOffset(vehiclePosition - 0.5 * vehLength),
- GLO_MAX, nameSettings.size / s.scale, nameSettings.color);
- glPopMatrix();
- }
+ const SUMOReal angle = l->getShape().rotationAtOffset(l->interpolateLanePosToGeometryPos(vehiclePosition));
+ veh->setPositionAndAngle(p, angle);
+ veh->drawGL(s);
vehiclePosition -= vehLength;
}
}
@@ -490,65 +471,48 @@ GUIEdge::getSegmentAtPosition(const Position& pos) {
}
+#endif
+
+
void
-GUIEdge::setVehicleColor(const GUIVisualizationSettings& s, MSBaseVehicle* veh) const {
- const GUIColorer& c = s.vehicleColorer;
- if (!GUIVehicle::setFunctionalColor(c.getActive(), veh)) {
- GLHelper::setColor(c.getScheme().getColor(getVehicleColorValue(c.getActive(), veh)));
+GUIEdge::closeTraffic(const GUILane* lane) {
+ const std::vector<MSLane*>& lanes = getLanes();
+ const bool isClosed = lane->isClosed();
+ for (std::vector<MSLane*>::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
+ GUILane* l = dynamic_cast<GUILane*>(*i);
+ if (l->isClosed() == isClosed) {
+ l->closeTraffic(false);
+ }
}
+ rebuildAllowedLanes();
}
-SUMOReal
-GUIEdge::getVehicleColorValue(size_t activeScheme, MSBaseVehicle* veh) const {
- switch (activeScheme) {
- case 8:
- return veh->getSpeed();
- case 9:
- return STEPS2TIME(veh->getWaitingTime());
- case 10:
- return 0; // invalid getLastLaneChangeOffset();
- case 11:
- return getVehicleMaxSpeed(veh);
- case 12:
- return 0; // invalid getCO2Emissions();
- case 13:
- return 0; // invalid getCOEmissions();
- case 14:
- return 0; // invalid getPMxEmissions();
- case 15:
- return 0; // invalid getNOxEmissions();
- case 16:
- return 0; // invalid getHCEmissions();
- case 17:
- return 0; // invalid getFuelConsumption();
- case 18:
- return 0; // invalid getHarmonoise_NoiseEmissions();
- case 19: // !!! unused!?
- if (veh->getNumberReroutes() == 0) {
- return -1;
- }
- return veh->getNumberReroutes();
- case 20:
- return 0; // invalid gSelected.isSelected(GLO_VEHICLE, getGlID());
- case 21:
- return 0; // invalid getBestLaneOffset();
- case 22:
- return 0; // invalid getAcceleration();
- case 23:
- return 0; // invalid getTimeGap();
+void
+GUIEdge::addRerouter() {
+ MSEdgeVector edges;
+ edges.push_back(this);
+ GUITriggeredRerouter* rr = new GUITriggeredRerouter(getID() + "_dynamic_rerouter", edges, 1, "", false,
+ GUINet::getGUIInstance()->getVisualisationSpeedUp());
+
+ MSTriggeredRerouter::RerouteInterval ri;
+ ri.begin = MSNet::getInstance()->getCurrentTimeStep();
+ ri.end = SUMOTime_MAX;
+ ri.edgeProbs.add(1, &MSTriggeredRerouter::mySpecialDest_keepDestination);
+ rr->myIntervals.push_back(ri);
+
+ // trigger rerouting for vehicles already on this edge
+ const std::vector<MSLane*>& lanes = getLanes();
+ for (std::vector<MSLane*>::const_iterator i = lanes.begin(); i != lanes.end(); ++i) {
+ const MSLane::VehCont& vehicles = (*i)->getVehiclesSecure();
+ for (MSLane::VehCont::const_iterator v = vehicles.begin(); v != vehicles.end(); ++v) {
+ if ((*v)->getLane() == (*i)) {
+ rr->notifyEnter(**v, MSMoveReminder::NOTIFICATION_JUNCTION);
+ } // else: this is the shadow during a continuous lane change
+ }
+ (*i)->releaseVehicles();
}
- return 0;
}
-
-
-
-
-
-
-
-#endif
-
/****************************************************************************/
diff --git a/src/guisim/GUIEdge.h b/src/guisim/GUIEdge.h
index 6d50178..c7cd27c 100644
--- a/src/guisim/GUIEdge.h
+++ b/src/guisim/GUIEdge.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIEdge.h 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: GUIEdge.h 18983 2015-10-01 12:40:07Z namdre $
///
// A road/street connecting two junctions (gui-version)
/****************************************************************************/
@@ -47,6 +47,7 @@
class MESegment;
#endif
class MSBaseVehicle;
+class GUILane;
// ===========================================================================
@@ -188,16 +189,15 @@ public:
/// @brief returns the segment closest to the given position
MESegment* getSegmentAtPosition(const Position& pos);
- /// @brief sets the vehicle color according to the currente settings
- void setVehicleColor(const GUIVisualizationSettings& s, MSBaseVehicle* veh) const;
-
- /// @brief gets the vehicle color value according to the current scheme index
- SUMOReal getVehicleColorValue(size_t activeScheme, MSBaseVehicle* veh) const;
-
void drawMesoVehicles(const GUIVisualizationSettings& s) const;
#endif
+ /// @brief close this edge for traffic
+ void closeTraffic(const GUILane* lane);
+
+ /// @brief add a rerouter
+ void addRerouter();
private:
/// @brief invalidated copy constructor
diff --git a/src/guisim/GUIInductLoop.cpp b/src/guisim/GUIInductLoop.cpp
index 88713a6..28162cd 100644
--- a/src/guisim/GUIInductLoop.cpp
+++ b/src/guisim/GUIInductLoop.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Aug 2003
-/// @version $Id: GUIInductLoop.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIInductLoop.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// The gui-version of the MSInductLoop, together with the according
/****************************************************************************/
@@ -34,7 +34,6 @@
#include <utils/geom/PositionVector.h>
#include "GUIInductLoop.h"
#include <utils/gui/div/GLHelper.h>
-#include <utils/geom/Line.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
#include <microsim/logging/FunctionBinding.h>
#include <microsim/MSLane.h>
diff --git a/src/guisim/GUIInstantInductLoop.cpp b/src/guisim/GUIInstantInductLoop.cpp
index dbe3a96..7777ecb 100644
--- a/src/guisim/GUIInstantInductLoop.cpp
+++ b/src/guisim/GUIInstantInductLoop.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Aug 2003
-/// @version $Id: GUIInstantInductLoop.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIInstantInductLoop.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// The gui-version of the MSInstantInductLoop
/****************************************************************************/
@@ -34,7 +34,6 @@
#include <utils/geom/PositionVector.h>
#include "GUIInstantInductLoop.h"
#include <utils/gui/div/GLHelper.h>
-#include <utils/geom/Line.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
#include <microsim/logging/FunctionBinding.h>
#include <microsim/output/MSInstantInductLoop.h>
diff --git a/src/guisim/GUIJunctionWrapper.cpp b/src/guisim/GUIJunctionWrapper.cpp
index 2bf6424..ab841cd 100644
--- a/src/guisim/GUIJunctionWrapper.cpp
+++ b/src/guisim/GUIJunctionWrapper.cpp
@@ -6,7 +6,7 @@
/// @author Laura Bieker
/// @author Andreas Gaubatz
/// @date Mon, 1 Jul 2003
-/// @version $Id: GUIJunctionWrapper.cpp 18201 2015-04-15 10:23:04Z namdre $
+/// @version $Id: GUIJunctionWrapper.cpp 19488 2015-12-02 09:53:19Z namdre $
///
// }
/****************************************************************************/
@@ -137,15 +137,21 @@ GUIJunctionWrapper::drawGL(const GUIVisualizationSettings& s) const {
glPushName(getGlID());
const SUMOReal colorValue = getColorValue(s);
GLHelper::setColor(s.junctionColorer.getScheme().getColor(colorValue));
- glTranslated(0, 0, getType());
- if (s.scale * myMaxSize < 40.) {
- GLHelper::drawFilledPoly(myJunction.getShape(), true);
- } else {
- GLHelper::drawFilledPolyTesselated(myJunction.getShape(), true);
- }
+
+ // recognize full transparency and simply don't draw
+ GLfloat color[4];
+ glGetFloatv(GL_CURRENT_COLOR, color);
+ if (color[3] != 0) {
+ glTranslated(0, 0, getType());
+ if (s.scale * myMaxSize < 40.) {
+ GLHelper::drawFilledPoly(myJunction.getShape(), true);
+ } else {
+ GLHelper::drawFilledPolyTesselated(myJunction.getShape(), true);
+ }
#ifdef GUIJunctionWrapper_DEBUG_DRAW_NODE_SHAPE_VERTICES
- GLHelper::debugVertices(myJunction.getShape(), 80 / s.scale);
+ GLHelper::debugVertices(myJunction.getShape(), 80 / s.scale);
#endif
+ }
glPopName();
glPopMatrix();
}
@@ -195,6 +201,10 @@ GUIJunctionWrapper::getColorValue(const GUIVisualizationSettings& s) const {
return 8;
case NODETYPE_RAIL_SIGNAL:
return 9;
+ case NODETYPE_ZIPPER:
+ return 10;
+ case NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED:
+ return 11;
}
default:
assert(false);
diff --git a/src/guisim/GUILane.cpp b/src/guisim/GUILane.cpp
index 5aeb040..133b227 100644
--- a/src/guisim/GUILane.cpp
+++ b/src/guisim/GUILane.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUILane.cpp 18639 2015-08-17 13:59:19Z namdre $
+/// @version $Id: GUILane.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Representation of a lane in the micro simulation (gui-version)
/****************************************************************************/
@@ -44,6 +44,7 @@
#include <utils/gui/windows/GUISUMOAbstractView.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/windows/GUIAppEnum.h>
#include <microsim/MSGlobals.h>
#include <microsim/MSLane.h>
#include <microsim/MSVehicleControl.h>
@@ -73,7 +74,8 @@ GUILane::GUILane(const std::string& id, SUMOReal maxSpeed, SUMOReal length,
const PositionVector& shape, SUMOReal width,
SVCPermissions permissions, unsigned int index) :
MSLane(id, maxSpeed, length, edge, numericalID, shape, width, permissions),
- GUIGlObject(GLO_LANE, id) {
+ GUIGlObject(GLO_LANE, id),
+ myAmClosed(false) {
myShapeRotations.reserve(myShape.size() - 1);
myShapeLengths.reserve(myShape.size() - 1);
myShapeColors.reserve(myShape.size() - 1);
@@ -167,7 +169,7 @@ GUILane::detectCollisions(SUMOTime timestep, const std::string& stage) {
// ------ Drawing methods ------
void
-GUILane::drawLinkNo() const {
+GUILane::drawLinkNo(const GUIVisualizationSettings& s) const {
unsigned int noLinks = (unsigned int)myLinks.size();
if (noLinks == 0) {
return;
@@ -178,23 +180,24 @@ GUILane::drawLinkNo() const {
MSLink* link = MSLinkContHelper::getConnectingLink(*getLogicalPredecessorLane(), *this);
PositionVector shape = getShape();
shape.extrapolate(0.5); // draw on top of the walking area
- drawTextAtEnd(toString(link->getIndex()), shape, 0);
- drawTextAtEnd(toString(link->getIndex()), shape.reverse(), 0);
+ drawTextAtEnd(toString(link->getIndex()), shape, 0, s.drawLinkJunctionIndex);
+ drawTextAtEnd(toString(link->getIndex()), shape.reverse(), 0, s.drawLinkJunctionIndex);
return;
}
// draw all links
SUMOReal w = myWidth / (SUMOReal) noLinks;
SUMOReal x1 = myHalfLaneWidth;
+ const bool lefthand = MSNet::getInstance()->lefthand();
for (int i = noLinks; --i >= 0;) {
SUMOReal x2 = x1 - (SUMOReal)(w / 2.);
- drawTextAtEnd(toString(myLinks[i]->getIndex()), getShape(), x2);
+ drawTextAtEnd(toString(myLinks[lefthand ? noLinks - 1 - i : i]->getIndex()), getShape(), x2, s.drawLinkJunctionIndex);
x1 -= w;
}
}
void
-GUILane::drawTLSLinkNo(const GUINet& net) const {
+GUILane::drawTLSLinkNo(const GUIVisualizationSettings& s, const GUINet& net) const {
unsigned int noLinks = (unsigned int)myLinks.size();
if (noLinks == 0) {
return;
@@ -206,35 +209,36 @@ GUILane::drawTLSLinkNo(const GUINet& net) const {
if (linkNo >= 0) {
PositionVector shape = getShape();
shape.extrapolate(0.5); // draw on top of the walking area
- drawTextAtEnd(toString(linkNo), shape, 0);
- drawTextAtEnd(toString(linkNo), shape.reverse(), 0);
+ drawTextAtEnd(toString(linkNo), shape, 0, s.drawLinkTLIndex);
+ drawTextAtEnd(toString(linkNo), shape.reverse(), 0, s.drawLinkTLIndex);
}
return;
}
// draw all links
SUMOReal w = myWidth / (SUMOReal) noLinks;
SUMOReal x1 = myHalfLaneWidth;
+ const bool lefthand = MSNet::getInstance()->lefthand();
for (int i = noLinks; --i >= 0;) {
SUMOReal x2 = x1 - (SUMOReal)(w / 2.);
- int linkNo = net.getLinkTLIndex(myLinks[i]);
+ int linkNo = net.getLinkTLIndex(myLinks[lefthand ? noLinks - 1 - i : i]);
if (linkNo < 0) {
continue;
}
- drawTextAtEnd(toString(linkNo), getShape(), x2);
+ drawTextAtEnd(toString(linkNo), getShape(), x2, s.drawLinkTLIndex);
x1 -= w;
}
}
void
-GUILane::drawTextAtEnd(const std::string& text, const PositionVector& shape, SUMOReal x) const {
+GUILane::drawTextAtEnd(const std::string& text, const PositionVector& shape, SUMOReal x, const GUIVisualizationTextSettings& settings) const {
glPushMatrix();
const Position& end = shape.back();
const Position& f = shape[-2];
const SUMOReal rot = RAD2DEG(atan2((end.x() - f.x()), (f.y() - end.y())));
glTranslated(end.x(), end.y(), 0);
glRotated(rot, 0, 0, 1);
- GLHelper::drawText(text, Position(x, 0.26), 0, .6, RGBColor(128, 128, 255, 255), 180);
+ GLHelper::drawText(text, Position(x, 0.26), 0, .6 * settings.size / 50, settings.color, 180);
glPopMatrix();
}
@@ -258,9 +262,10 @@ GUILane::drawLinkRules(const GUIVisualizationSettings& s, const GUINet& net) con
// draw all links
SUMOReal w = myWidth / (SUMOReal) noLinks;
SUMOReal x1 = 0;
+ const bool lefthand = MSNet::getInstance()->lefthand();
for (unsigned int i = 0; i < noLinks; ++i) {
SUMOReal x2 = x1 + w;
- drawLinkRule(s, net, myLinks[i], getShape(), x1, x2);
+ drawLinkRule(s, net, myLinks[lefthand ? noLinks - 1 - i : i], getShape(), x1, x2);
x1 = x2;
}
}
@@ -347,39 +352,39 @@ GUILane::drawArrows() const {
switch (dir) {
case LINKDIR_STRAIGHT:
GLHelper::drawBoxLine(Position(0, 4), 0, 2, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 4), Position(0, 1)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 4), Position(0, 1), (SUMOReal) 1, (SUMOReal) .25);
break;
case LINKDIR_TURN:
GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
GLHelper::drawBoxLine(Position(0, 2.5), 90, .5, .05);
GLHelper::drawBoxLine(Position(0.5, 2.5), 180, 1, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0.5, 2.5), Position(0.5, 4)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0.5, 2.5), Position(0.5, 4), (SUMOReal) 1, (SUMOReal) .25);
break;
case LINKDIR_TURN_LEFTHAND:
GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
GLHelper::drawBoxLine(Position(0, 2.5), -90, 1, .05);
GLHelper::drawBoxLine(Position(-0.5, 2.5), -180, 1, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(-0.5, 2.5), Position(-0.5, 4)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(-0.5, 2.5), Position(-0.5, 4), (SUMOReal) 1, (SUMOReal) .25);
break;
case LINKDIR_LEFT:
GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
GLHelper::drawBoxLine(Position(0, 2.5), 90, 1, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 2.5), Position(1.5, 2.5)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(1.5, 2.5), (SUMOReal) 1, (SUMOReal) .25);
break;
case LINKDIR_RIGHT:
GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
GLHelper::drawBoxLine(Position(0, 2.5), -90, 1, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 2.5), Position(-1.5, 2.5)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(-1.5, 2.5), (SUMOReal) 1, (SUMOReal) .25);
break;
case LINKDIR_PARTLEFT:
GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
GLHelper::drawBoxLine(Position(0, 2.5), 45, .7, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 2.5), Position(1.2, 1.3)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(1.2, 1.3), (SUMOReal) 1, (SUMOReal) .25);
break;
case LINKDIR_PARTRIGHT:
GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
GLHelper::drawBoxLine(Position(0, 2.5), -45, .7, .05);
- GLHelper::drawTriangleAtEnd(Line(Position(0, 2.5), Position(-1.2, 1.3)), (SUMOReal) 1, (SUMOReal) .25);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(-1.2, 1.3), (SUMOReal) 1, (SUMOReal) .25);
break;
default:
break;
@@ -403,7 +408,7 @@ GUILane::drawLane2LaneConnections() const {
glVertex2f(p1.x(), p1.y());
glVertex2f(p2.x(), p2.y());
glEnd();
- GLHelper::drawTriangleAtEnd(Line(p1, p2), (SUMOReal) .4, (SUMOReal) .2);
+ GLHelper::drawTriangleAtEnd(p1, p2, (SUMOReal) .4, (SUMOReal) .2);
}
}
@@ -416,13 +421,15 @@ GUILane::drawGL(const GUIVisualizationSettings& s) const {
const bool isWalkingArea = myEdge->getPurpose() == MSEdge::EDGEFUNCTION_WALKINGAREA;
const bool isInternal = isCrossing || isWalkingArea || myEdge->getPurpose() == MSEdge::EDGEFUNCTION_INTERNAL;
bool mustDrawMarkings = false;
- SUMOReal exaggeration = s.laneWidthExaggeration * s.laneScaler.getScheme().getColor(getScaleValue(s.laneScaler.getActive()));
-#ifdef HAVE_INTERNAL
+ SUMOReal exaggeration = s.laneWidthExaggeration;
if (MSGlobals::gUseMesoSim) {
+#ifdef HAVE_INTERNAL
GUIEdge* myGUIEdge = dynamic_cast<GUIEdge*>(myEdge);
exaggeration *= s.edgeScaler.getScheme().getColor(myGUIEdge->getScaleValue(s.edgeScaler.getActive()));
- }
#endif
+ } else {
+ exaggeration *= s.laneScaler.getScheme().getColor(getScaleValue(s.laneScaler.getActive()));
+ }
const bool drawDetails = s.scale * exaggeration > 5;
if (isCrossing || isWalkingArea) {
// draw internal lanes on top of junctions
@@ -468,27 +475,31 @@ GUILane::drawGL(const GUIVisualizationSettings& s) const {
}
drawCrossties(0.3 * exaggeration, 1 * exaggeration, 1 * exaggeration);
} else if (isCrossing) {
- // determine priority to decide color
- MSLink* link = MSLinkContHelper::getConnectingLink(*getLogicalPredecessorLane(), *this);
- if (link->havePriority() || net->getLinkTLIndex(link) > 0) {
- glColor3d(0.9, 0.9, 0.9);
- } else {
- glColor3d(0.1, 0.1, 0.1);
+ if (s.drawCrossingsAndWalkingareas) {
+ // determine priority to decide color
+ MSLink* link = MSLinkContHelper::getConnectingLink(*getLogicalPredecessorLane(), *this);
+ if (link->havePriority() || net->getLinkTLIndex(link) > 0) {
+ glColor3d(0.9, 0.9, 0.9);
+ } else {
+ glColor3d(0.1, 0.1, 0.1);
+ }
+ glTranslated(0, 0, .2);
+ drawCrossties(0.5, 1.0, getWidth() * 0.5);
+ glTranslated(0, 0, -.2);
}
- glTranslated(0, 0, .2);
- drawCrossties(0.5, 1.0, getWidth() * 0.5);
- glTranslated(0, 0, -.2);
} else if (isWalkingArea) {
- glTranslated(0, 0, .2);
- if (s.scale * exaggeration < 20.) {
- GLHelper::drawFilledPoly(myShape, true);
- } else {
- GLHelper::drawFilledPolyTesselated(myShape, true);
- }
- glTranslated(0, 0, -.2);
+ if (s.drawCrossingsAndWalkingareas) {
+ glTranslated(0, 0, .2);
+ if (s.scale * exaggeration < 20.) {
+ GLHelper::drawFilledPoly(myShape, true);
+ } else {
+ GLHelper::drawFilledPolyTesselated(myShape, true);
+ }
+ glTranslated(0, 0, -.2);
#ifdef GUILane_DEBUG_DRAW_WALKING_AREA_VERTICES
- GLHelper::debugVertices(myShape, 80 / s.scale);
+ GLHelper::debugVertices(myShape, 80 / s.scale);
#endif
+ }
} else {
const SUMOReal halfWidth = isInternal ? myQuarterLaneWidth : myHalfLaneWidth;
mustDrawMarkings = !isInternal && myPermissions != 0 && myPermissions != SVC_PEDESTRIAN && exaggeration == 1.0 && !isWaterway(myPermissions);
@@ -516,11 +527,11 @@ GUILane::drawGL(const GUIVisualizationSettings& s) const {
drawLane2LaneConnections();
}
glTranslated(0, 0, .1);
- if (s.drawLinkJunctionIndex) {
- drawLinkNo();
+ if (s.drawLinkJunctionIndex.show) {
+ drawLinkNo(s);
}
- if (s.drawLinkTLIndex) {
- drawTLSLinkNo(*net);
+ if (s.drawLinkTLIndex.show) {
+ drawTLSLinkNo(s, *net);
}
glPopMatrix();
}
@@ -565,7 +576,7 @@ GUILane::drawMarkings(const GUIVisualizationSettings& s, SUMOReal scale) const {
setColor(s);
// optionally draw inverse markings
if (myIndex > 0 && (myEdge->getLanes()[myIndex - 1]->getPermissions() & myPermissions) != 0) {
- SUMOReal mw = (myHalfLaneWidth + SUMO_const_laneOffset + .01) * scale;
+ SUMOReal mw = (myHalfLaneWidth + SUMO_const_laneOffset + .01) * scale * (MSNet::getInstance()->lefthand() ? -1 : 1);
int e = (int) getShape().size() - 1;
for (int i = 0; i < e; ++i) {
glPushMatrix();
@@ -650,6 +661,7 @@ GUILane::getPopUpMenu(GUIMainWindow& app,
buildPopupHeader(ret, app);
buildCenterPopupEntry(ret);
//
+ new FXMenuCommand(ret, "Copy edge name to clipboard", 0, ret, MID_COPY_EDGE_NAME);
buildNameCopyPopupEntry(ret);
buildSelectionPopupEntry(ret);
//
@@ -659,6 +671,15 @@ GUILane::getPopUpMenu(GUIMainWindow& app,
new FXMenuCommand(ret, ("pos: " + toString(pos) + " height: " + toString(height)).c_str(), 0, 0, 0);
new FXMenuSeparator(ret);
buildPositionCopyEntry(ret, false);
+ new FXMenuSeparator(ret);
+ if (myAmClosed) {
+ new FXMenuCommand(ret, "Reopen lane", 0, &parent, MID_CLOSE_LANE);
+ new FXMenuCommand(ret, "Reopen edge", 0, &parent, MID_CLOSE_EDGE);
+ } else {
+ new FXMenuCommand(ret, "Close lane", 0, &parent, MID_CLOSE_LANE);
+ new FXMenuCommand(ret, "Close edge", 0, &parent, MID_CLOSE_EDGE);
+ }
+ new FXMenuCommand(ret, "Add rerouter", 0, &parent, MID_ADD_REROUTER);
return ret;
}
@@ -770,7 +791,7 @@ bool
GUILane::setFunctionalColor(size_t activeScheme) const {
switch (activeScheme) {
case 18: {
- SUMOReal hue = RAD2DEG(myShape.beginEndAngle()) + 180; // [0-360]
+ SUMOReal hue = GeomHelper::naviDegree(myShape.beginEndAngle()); // [0-360]
GLHelper::setColor(RGBColor::fromHSV(hue, 1., 1.));
return true;
}
@@ -815,6 +836,8 @@ GUILane::getColorValue(size_t activeScheme) const {
return 3;
case SVC_SHIP:
return 4;
+ case SVC_AUTHORITY:
+ return 6;
default:
break;
}
@@ -985,6 +1008,20 @@ GUILane::updateColor(const GUIVisualizationSettings& s) {
#endif
+void
+GUILane::closeTraffic(bool rebuildAllowed) {
+ MSGlobals::gCheckRoutes = false;
+ if (myAmClosed) {
+ myPermissions = myOriginalPermissions;
+ } else {
+ myOriginalPermissions = myPermissions;
+ myPermissions = SVC_AUTHORITY;
+ }
+ myAmClosed = !myAmClosed;
+ if (rebuildAllowed) {
+ getEdge().rebuildAllowedLanes();
+ }
+}
/****************************************************************************/
diff --git a/src/guisim/GUILane.h b/src/guisim/GUILane.h
index 4dbdd09..0414de7 100644
--- a/src/guisim/GUILane.h
+++ b/src/guisim/GUILane.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUILane.h 18637 2015-08-17 10:15:18Z namdre $
+/// @version $Id: GUILane.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Representation of a lane in the micro simulation (gui-version)
/****************************************************************************/
@@ -91,6 +91,13 @@ public:
/// @brief Destructor
~GUILane();
+ /** @brief Returns the name of the parent object (if any)
+ * @note Inherited from GUIGlObject
+ * @return This object's parent id
+ */
+ const std::string& getParentName() const {
+ return getEdge().getID();
+ }
/// @name Access to vehicles
@@ -219,7 +226,16 @@ public:
}
void updateColor(const GUIVisualizationSettings& s);
+
#endif
+
+ /// @brief close this lane for traffic
+ void closeTraffic(bool rebuildAllowed = true);
+
+ bool isClosed() const {
+ return myAmClosed;
+ }
+
protected:
/// moves myTmpVehicles int myVehicles after a lane change procedure
void swapAfterLaneChange(SUMOTime t);
@@ -241,9 +257,9 @@ protected:
private:
/// @brief helper methods
- void drawLinkNo() const;
- void drawTLSLinkNo(const GUINet& net) const;
- void drawTextAtEnd(const std::string& text, const PositionVector& shape, SUMOReal x) const;
+ void drawLinkNo(const GUIVisualizationSettings& s) const;
+ void drawTLSLinkNo(const GUIVisualizationSettings& s, const GUINet& net) const;
+ void drawTextAtEnd(const std::string& text, const PositionVector& shape, SUMOReal x, const GUIVisualizationTextSettings& settings) const;
void drawLinkRules(const GUIVisualizationSettings& s, const GUINet& net) const;
void drawLinkRule(const GUIVisualizationSettings& s, const GUINet& net, MSLink* link, const PositionVector& shape, SUMOReal x1, SUMOReal x2) const;
void drawArrows() const;
@@ -295,6 +311,9 @@ private:
osg::Geometry* myGeom;
#endif
+ /// @brief state for dynamic lane closings
+ bool myAmClosed;
+ SVCPermissions myOriginalPermissions;
private:
/// The mutex used to avoid concurrent updates of the vehicle buffer
diff --git a/src/guisim/GUILaneSpeedTrigger.cpp b/src/guisim/GUILaneSpeedTrigger.cpp
index 94504be..3101a1f 100644
--- a/src/guisim/GUILaneSpeedTrigger.cpp
+++ b/src/guisim/GUILaneSpeedTrigger.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 26.04.2004
-/// @version $Id: GUILaneSpeedTrigger.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUILaneSpeedTrigger.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// Changes the speed allowed on a set of lanes (gui version)
/****************************************************************************/
@@ -31,7 +31,6 @@
#include <string>
#include <utils/common/MsgHandler.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/geom/Boundary.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/common/ToString.h>
diff --git a/src/guisim/GUINet.cpp b/src/guisim/GUINet.cpp
index 6177833..f176964 100644
--- a/src/guisim/GUINet.cpp
+++ b/src/guisim/GUINet.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Sept 2002
-/// @version $Id: GUINet.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUINet.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSNet extended by some values for usage within the gui
/****************************************************************************/
@@ -428,11 +428,11 @@ GUIParameterTableWindow*
GUINet::getParameterWindow(GUIMainWindow& app,
GUISUMOAbstractView&) {
GUIParameterTableWindow* ret =
- new GUIParameterTableWindow(app, *this, 19);
+ new GUIParameterTableWindow(app, *this, 28);
// add items
ret->mkItem("loaded vehicles [#]", true,
new FunctionBinding<MSVehicleControl, unsigned int>(&getVehicleControl(), &MSVehicleControl::getLoadedVehicleNo));
- ret->mkItem("waiting vehicles [#]", true,
+ ret->mkItem("insertion-backlogged vehicles [#]", true,
new FunctionBinding<MSInsertionControl, unsigned int>(&getInsertionControl(), &MSInsertionControl::getWaitingVehicleNo));
ret->mkItem("departed vehicles [#]", true,
new FunctionBinding<MSVehicleControl, unsigned int>(&getVehicleControl(), &MSVehicleControl::getDepartedVehicleNo));
@@ -444,6 +444,14 @@ GUINet::getParameterWindow(GUIMainWindow& app,
new FunctionBinding<MSVehicleControl, unsigned int>(&getVehicleControl(), &MSVehicleControl::getCollisionCount));
ret->mkItem("teleports [#]", true,
new FunctionBinding<MSVehicleControl, unsigned int>(&getVehicleControl(), &MSVehicleControl::getTeleportCount));
+ if (myPersonControl != 0) {
+ ret->mkItem("loaded persons [#]", true,
+ new FunctionBinding<MSPersonControl, unsigned int>(&getPersonControl(), &MSPersonControl::getLoadedPersonNumber));
+ ret->mkItem("running persons [#]", true,
+ new FunctionBinding<MSPersonControl, unsigned int>(&getPersonControl(), &MSPersonControl::getRunningPersonNumber));
+ ret->mkItem("jammed persons [#]", true,
+ new FunctionBinding<MSPersonControl, unsigned int>(&getPersonControl(), &MSPersonControl::getJammedPersonNumber));
+ }
ret->mkItem("end time [s]", false, OptionsCont::getOptions().getString("end"));
ret->mkItem("begin time [s]", false, OptionsCont::getOptions().getString("begin"));
// ret->mkItem("time step [s]", true, new FunctionBinding<GUINet, SUMOTime>(this, &GUINet::getCurrentTimeStep));
@@ -464,11 +472,19 @@ GUINet::getParameterWindow(GUIMainWindow& app,
*/
ret->mkItem("ups [#]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getUPS));
ret->mkItem("mean ups [#]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getMeanUPS));
+ if (OptionsCont::getOptions().getBool("duration-log.statistics")) {
+ ret->mkItem("avg. trip length [m]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getAvgRouteLength));
+ ret->mkItem("avg. trip duration [s]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getAvgDuration));
+ ret->mkItem("avg. trip waiting time [s]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getAvgWaitingTime));
+ ret->mkItem("avg. trip time loss [s]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getAvgTimeLoss));
+ ret->mkItem("avg. trip depart delay [s]", true, new FunctionBinding<GUINet, SUMOReal>(this, &GUINet::getAvgDepartDelay));
+ }
}
ret->mkItem("nodes [#]", false, (int)myJunctions->size());
ret->mkItem("edges [#]", false, (int)GUIEdge::getIDs(false).size());
ret->mkItem("total edge length [km]", false, GUIEdge::getTotalLength(false, false) / 1000);
ret->mkItem("total lane length [km]", false, GUIEdge::getTotalLength(false, true) / 1000);
+ ret->mkItem("network version ", false, toString(myVersion));
// close building
ret->closeBuilding();
diff --git a/src/guisim/GUINet.h b/src/guisim/GUINet.h
index d58caa3..6de9c16 100644
--- a/src/guisim/GUINet.h
+++ b/src/guisim/GUINet.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUINet.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUINet.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSNet extended by some values for usage within the gui
/****************************************************************************/
@@ -35,6 +35,7 @@
#include <string>
#include <utility>
#include <microsim/MSNet.h>
+#include <microsim/devices/MSDevice_Tripinfo.h>
#include <utils/geom/Boundary.h>
#include <utils/geom/Position.h>
#include <foreign/rtree/SUMORTree.h>
@@ -208,6 +209,21 @@ public:
void setIdleDuration(int val);
//}
+ SUMOReal getAvgRouteLength() const {
+ return MSDevice_Tripinfo::getAvgRouteLength();
+ }
+ SUMOReal getAvgDuration() const {
+ return MSDevice_Tripinfo::getAvgDuration();
+ }
+ SUMOReal getAvgWaitingTime() const {
+ return MSDevice_Tripinfo::getAvgWaitingTime();
+ }
+ SUMOReal getAvgTimeLoss() const {
+ return MSDevice_Tripinfo::getAvgTimeLoss();
+ }
+ SUMOReal getAvgDepartDelay() const {
+ return MSDevice_Tripinfo::getAvgDepartDelay();
+ }
/** @brief Returns the person control
*
diff --git a/src/guisim/GUIPerson.cpp b/src/guisim/GUIPerson.cpp
index 808445c..5cab03c 100644
--- a/src/guisim/GUIPerson.cpp
+++ b/src/guisim/GUIPerson.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIPerson.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: GUIPerson.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSPerson extended by some values for usage within the gui
/****************************************************************************/
@@ -39,11 +39,11 @@
#include <microsim/logging/CastingFunctionBinding.h>
#include <microsim/logging/FunctionBinding.h>
#include <microsim/MSVehicleControl.h>
-//#include <microsim/MSAbstractLaneChangeModel.h>
#include <microsim/devices/MSDevice_Vehroutes.h>
#include <utils/common/StringUtils.h>
#include <utils/vehicle/SUMOVehicleParameter.h>
#include <utils/common/AbstractMutex.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/gui/images/GUITexturesHelper.h>
#include <utils/gui/windows/GUISUMOAbstractView.h>
#include <utils/gui/windows/GUIAppEnum.h>
@@ -51,12 +51,13 @@
#include <utils/gui/div/GUIGlobalSelection.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/gui/div/GLObjectValuePassConnector.h>
+#include <utils/gui/globjects/GLIncludes.h>
#include <gui/GUIApplicationWindow.h>
#include <gui/GUIGlobals.h>
-#include "GUIPerson.h"
+#include "GUILane.h"
#include "GUINet.h"
#include "GUIEdge.h"
-#include <utils/gui/globjects/GLIncludes.h>
+#include "GUIPerson.h"
#ifdef CHECK_MEMORY_LEAKS
#include <foreign/nvwa/debug_new.h>
@@ -68,8 +69,12 @@
// FOX callback mapping
// ===========================================================================
FXDEFMAP(GUIPerson::GUIPersonPopupMenu) GUIPersonPopupMenuMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_SHOW_CURRENTROUTE, GUIPerson::GUIPersonPopupMenu::onCmdShowCurrentRoute),
+ FXMAPFUNC(SEL_COMMAND, MID_HIDE_CURRENTROUTE, GUIPerson::GUIPersonPopupMenu::onCmdHideCurrentRoute),
FXMAPFUNC(SEL_COMMAND, MID_SHOW_WALKINGAREA_PATH, GUIPerson::GUIPersonPopupMenu::onCmdShowWalkingareaPath),
FXMAPFUNC(SEL_COMMAND, MID_HIDE_WALKINGAREA_PATH, GUIPerson::GUIPersonPopupMenu::onCmdHideWalkingareaPath),
+ FXMAPFUNC(SEL_COMMAND, MID_START_TRACK, GUIPerson::GUIPersonPopupMenu::onCmdStartTrack),
+ FXMAPFUNC(SEL_COMMAND, MID_STOP_TRACK, GUIPerson::GUIPersonPopupMenu::onCmdStopTrack),
};
// Object implementation
@@ -85,14 +90,33 @@ FXIMPLEMENT(GUIPerson::GUIPersonPopupMenu, GUIGLObjectPopupMenu, GUIPersonPopupM
* ----------------------------------------------------------------------- */
GUIPerson::GUIPersonPopupMenu::GUIPersonPopupMenu(
GUIMainWindow& app, GUISUMOAbstractView& parent,
- GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations)
- : GUIGLObjectPopupMenu(app, parent, o), myVehiclesAdditionalVisualizations(additionalVisualizations) {
-}
+ GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations) :
+ GUIGLObjectPopupMenu(app, parent, o),
+ myVehiclesAdditionalVisualizations(additionalVisualizations)
+{}
GUIPerson::GUIPersonPopupMenu::~GUIPersonPopupMenu() {}
long
+GUIPerson::GUIPersonPopupMenu::onCmdShowCurrentRoute(FXObject*, FXSelector, void*) {
+ assert(myObject->getType() == GLO_PERSON);
+ if (!static_cast<GUIPerson*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ROUTE)) {
+ static_cast<GUIPerson*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
+ }
+ return 1;
+}
+
+long
+GUIPerson::GUIPersonPopupMenu::onCmdHideCurrentRoute(FXObject*, FXSelector, void*) {
+ assert(myObject->getType() == GLO_PERSON);
+ static_cast<GUIPerson*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
+ return 1;
+}
+
+
+
+long
GUIPerson::GUIPersonPopupMenu::onCmdShowWalkingareaPath(FXObject*, FXSelector, void*) {
assert(myObject->getType() == GLO_PERSON);
if (!static_cast<GUIPerson*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_WALKINGAREA_PATH)) {
@@ -109,6 +133,25 @@ GUIPerson::GUIPersonPopupMenu::onCmdHideWalkingareaPath(FXObject*, FXSelector, v
}
+long
+GUIPerson::GUIPersonPopupMenu::onCmdStartTrack(FXObject*, FXSelector, void*) {
+ assert(myObject->getType() == GLO_PERSON);
+ if (!static_cast<GUIPerson*>(myObject)->hasActiveAddVisualisation(myParent, VO_TRACKED)) {
+ myParent->startTrack(static_cast<GUIPerson*>(myObject)->getGlID());
+ static_cast<GUIPerson*>(myObject)->addActiveAddVisualisation(myParent, VO_TRACKED);
+ }
+ return 1;
+}
+
+long
+GUIPerson::GUIPersonPopupMenu::onCmdStopTrack(FXObject*, FXSelector, void*) {
+ assert(myObject->getType() == GLO_PERSON);
+ static_cast<GUIPerson*>(myObject)->removeActiveAddVisualisation(myParent, VO_TRACKED);
+ myParent->stopTrack();
+ return 1;
+}
+
+
/* -------------------------------------------------------------------------
@@ -116,7 +159,8 @@ GUIPerson::GUIPersonPopupMenu::onCmdHideWalkingareaPath(FXObject*, FXSelector, v
* ----------------------------------------------------------------------- */
GUIPerson::GUIPerson(const SUMOVehicleParameter* pars, const MSVehicleType* vtype, MSTransportable::MSTransportablePlan* plan) :
MSPerson(pars, vtype, plan),
- GUIGlObject(GLO_PERSON, pars->id)
+ GUIGlObject(GLO_PERSON, pars->id),
+ myPositionInVehicle(Position::INVALID)
{ }
@@ -132,12 +176,24 @@ GUIPerson::getPopUpMenu(GUIMainWindow& app,
buildCenterPopupEntry(ret);
buildNameCopyPopupEntry(ret);
buildSelectionPopupEntry(ret);
-
+ if (hasActiveAddVisualisation(&parent, VO_SHOW_ROUTE)) {
+ new FXMenuCommand(ret, "Hide Current Route", 0, ret, MID_HIDE_CURRENTROUTE);
+ } else {
+ new FXMenuCommand(ret, "Show Current Route", 0, ret, MID_SHOW_CURRENTROUTE);
+ }
if (hasActiveAddVisualisation(&parent, VO_SHOW_WALKINGAREA_PATH)) {
new FXMenuCommand(ret, "Hide Walkingarea Path", 0, ret, MID_HIDE_WALKINGAREA_PATH);
} else {
new FXMenuCommand(ret, "Show Walkingarea Path", 0, ret, MID_SHOW_WALKINGAREA_PATH);
}
+ new FXMenuSeparator(ret);
+ int trackedID = parent.getTrackedID();
+ if (trackedID < 0 || (size_t)trackedID != getGlID()) {
+ new FXMenuCommand(ret, "Start Tracking", 0, ret, MID_START_TRACK);
+ } else {
+ new FXMenuCommand(ret, "Stop Tracking", 0, ret, MID_STOP_TRACK);
+ }
+ new FXMenuSeparator(ret);
//
buildShowParamsPopupEntry(ret);
buildPositionCopyEntry(ret, false);
@@ -149,7 +205,7 @@ GUIParameterTableWindow*
GUIPerson::getParameterWindow(GUIMainWindow& app,
GUISUMOAbstractView&) {
GUIParameterTableWindow* ret =
- new GUIParameterTableWindow(app, *this, 8);
+ new GUIParameterTableWindow(app, *this, 16);
// add items
//ret->mkItem("type [NAME]", false, myType->getID());
ret->mkItem("stage", false, getCurrentStageDescription());
@@ -158,8 +214,18 @@ GUIPerson::getParameterWindow(GUIMainWindow& app,
ret->mkItem("edge [id]", false, getEdge()->getID());
ret->mkItem("position [m]", true, new FunctionBinding<GUIPerson, SUMOReal>(this, &GUIPerson::getEdgePos));
ret->mkItem("speed [m/s]", true, new FunctionBinding<GUIPerson, SUMOReal>(this, &GUIPerson::getSpeed));
- ret->mkItem("angle [degree]", true, new FunctionBinding<GUIPerson, SUMOReal>(this, &GUIPerson::getAngle));
+ ret->mkItem("angle [degree]", true, new FunctionBinding<GUIPerson, SUMOReal>(this, &GUIPerson::getNaviDegree));
ret->mkItem("waiting time [s]", true, new FunctionBinding<GUIPerson, SUMOReal>(this, &GUIPerson::getWaitingSeconds));
+
+ ret->mkItem("parameters [key:val]", false, toString(getParameter().getMap()));
+ ret->mkItem("", false, "");
+ ret->mkItem("Type Information:", false, "");
+ ret->mkItem("type [id]", false, myVType->getID());
+ ret->mkItem("length", false, myVType->getLength());
+ ret->mkItem("minGap", false, myVType->getMinGap());
+ ret->mkItem("maximum speed [m/s]", false, myVType->getMaxSpeed());
+
+ ret->mkItem("type parameters [key:val]", false, toString(myVType->getParameter().getMap()));
// close building
ret->closeBuilding();
return ret;
@@ -169,7 +235,12 @@ GUIPerson::getParameterWindow(GUIMainWindow& app,
Boundary
GUIPerson::getCenteringBoundary() const {
Boundary b;
- b.add(getPosition());
+ // ensure that the vehicle is drawn, otherwise myPositionInVehicle will not be updated
+ if (getCurrentStageType() == DRIVING && !isWaiting4Vehicle()) {
+ b.add(getVehicle()->getPosition());
+ } else {
+ b.add(getPosition());
+ }
b.grow(20);
return b;
}
@@ -235,6 +306,22 @@ GUIPerson::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisualiz
if (hasActiveAddVisualisation(parent, VO_SHOW_WALKINGAREA_PATH)) {
drawAction_drawWalkingareaPath(s);
}
+ if (hasActiveAddVisualisation(parent, VO_SHOW_ROUTE)) {
+ if (getCurrentStageType() == MOVING_WITHOUT_VEHICLE) {
+ setColor(s);
+ RGBColor current = GLHelper::getColor();
+ RGBColor darker = current.changedBrightness(-51);
+ GLHelper::setColor(darker);
+ MSPersonStage_Walking* stage = dynamic_cast<MSPersonStage_Walking*>(getCurrentStage());
+ assert(stage != 0);
+ const SUMOReal exaggeration = s.personSize.getExaggeration(s);
+ const ConstMSEdgeVector& edges = stage->getRoute();
+ for (ConstMSEdgeVector::const_iterator it = edges.begin(); it != edges.end(); ++it) {
+ GUILane* lane = static_cast<GUILane*>((*it)->getLanes()[0]);
+ GLHelper::drawBoxLines(lane->getShape(), lane->getShapeRotations(), lane->getShapeLengths(), exaggeration);
+ }
+ }
+ }
glPopMatrix();
glPopName();
}
@@ -280,7 +367,7 @@ GUIPerson::setFunctionalColor(size_t activeScheme) const {
return false;
}
case 8: { // color by angle
- SUMOReal hue = getAngle() + 180; // [0-360]
+ SUMOReal hue = GeomHelper::naviDegree(getAngle());
GLHelper::setColor(RGBColor::fromHSV(hue, 1., 1.));
return true;
}
@@ -334,9 +421,9 @@ GUIPerson::getPosition() const {
SUMOReal
-GUIPerson::getAngle() const {
+GUIPerson::getNaviDegree() const {
AbstractMutex::ScopedLocker locker(myLock);
- return MSPerson::getAngle();
+ return GeomHelper::naviDegree(MSPerson::getAngle());
}
@@ -357,7 +444,7 @@ GUIPerson::getSpeed() const {
void
GUIPerson::drawAction_drawAsTriangle(const GUIVisualizationSettings& /* s */) const {
// draw triangle pointing forward
- glRotated(getAngle(), 0, 0, 1);
+ glRotated(RAD2DEG(getAngle() + PI / 2.), 0, 0, 1);
glScaled(getVehicleType().getLength(), getVehicleType().getWidth(), 1);
glBegin(GL_TRIANGLES);
glVertex2d(0., 0.);
@@ -379,7 +466,7 @@ GUIPerson::drawAction_drawAsTriangle(const GUIVisualizationSettings& /* s */) co
void
GUIPerson::drawAction_drawAsPoly(const GUIVisualizationSettings& /* s */) const {
// draw pedestrian shape
- glRotated(getAngle(), 0, 0, 1);
+ glRotated(GeomHelper::naviDegree(getAngle()) - 180, 0, 0, -1);
glScaled(getVehicleType().getLength(), getVehicleType().getWidth(), 1);
RGBColor lighter = GLHelper::getColor().changedBrightness(51);
glTranslated(0, 0, .045);
@@ -407,7 +494,7 @@ GUIPerson::drawAction_drawAsImage(const GUIVisualizationSettings& s) const {
const std::string& file = getVehicleType().getImgFile();
if (file != "") {
if (getVehicleType().getGuiShape() == SVS_PEDESTRIAN) {
- glRotated(getAngle(), 0, 0, 1);
+ glRotated(RAD2DEG(getAngle() + PI / 2.), 0, 0, 1);
}
int textureID = GUITexturesHelper::getTextureID(file);
if (textureID > 0) {
diff --git a/src/guisim/GUIPerson.h b/src/guisim/GUIPerson.h
index 161d227..209f0c1 100644
--- a/src/guisim/GUIPerson.h
+++ b/src/guisim/GUIPerson.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIPerson.h 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: GUIPerson.h 19374 2015-11-18 12:04:13Z behrisch $
///
// A MSVehicle extended by some values for usage within the gui
/****************************************************************************/
@@ -132,7 +132,7 @@ public:
Position getPosition() const;
/// @brief return the current angle of the person
- SUMOReal getAngle() const;
+ SUMOReal getNaviDegree() const;
/// @brief the time this person spent waiting in seconds
SUMOReal getWaitingSeconds() const;
@@ -164,10 +164,18 @@ public:
/// @brief Destructor
~GUIPersonPopupMenu();
+ /// @brief Called if the current route of the person shall be shown
+ long onCmdShowCurrentRoute(FXObject*, FXSelector, void*);
+ /// @brief Called if the current route of the person shall be hidden
+ long onCmdHideCurrentRoute(FXObject*, FXSelector, void*);
/// @brief Called if the walkingarea path of the person shall be shown
long onCmdShowWalkingareaPath(FXObject*, FXSelector, void*);
/// @brief Called if the walkingarea path of the person shall be hidden
long onCmdHideWalkingareaPath(FXObject*, FXSelector, void*);
+ /// @brief Called if the person shall be tracked
+ long onCmdStartTrack(FXObject*, FXSelector, void*);
+ /// @brief Called if the person shall not be tracked any longer
+ long onCmdStopTrack(FXObject*, FXSelector, void*);
protected:
diff --git a/src/guisim/GUITrafficLightLogicWrapper.cpp b/src/guisim/GUITrafficLightLogicWrapper.cpp
index 3ff5e7d..cae9b17 100644
--- a/src/guisim/GUITrafficLightLogicWrapper.cpp
+++ b/src/guisim/GUITrafficLightLogicWrapper.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Oct/Nov 2003
-/// @version $Id: GUITrafficLightLogicWrapper.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUITrafficLightLogicWrapper.cpp 18852 2015-09-17 21:01:18Z namdre $
///
// A wrapper for tl-logics to allow their visualisation and interaction
/****************************************************************************/
@@ -161,9 +161,11 @@ GUITrafficLightLogicWrapper::getPopUpMenu(GUIMainWindow& app,
new FXMenuCommand(ret, "Track Phases", 0, ret, MID_TRACKPHASES);
new FXMenuCommand(ret, "Show Phases", 0, ret, MID_SHOWPHASES);
new FXMenuSeparator(ret);
- //
+ MSTrafficLightLogic* tll = myTLLogicControl.getActive(myTLLogic.getID());
buildNameCopyPopupEntry(ret);
buildSelectionPopupEntry(ret);
+ new FXMenuCommand(ret, ("phase: " + toString(tll->getCurrentPhaseIndex())).c_str(), 0, 0, 0);
+ new FXMenuSeparator(ret);
buildPositionCopyEntry(ret, false);
return ret;
}
diff --git a/src/guisim/GUITriggeredRerouter.cpp b/src/guisim/GUITriggeredRerouter.cpp
index 4300737..fb3a80b 100644
--- a/src/guisim/GUITriggeredRerouter.cpp
+++ b/src/guisim/GUITriggeredRerouter.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 25.07.2005
-/// @version $Id: GUITriggeredRerouter.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUITriggeredRerouter.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// Reroutes vehicles passing an edge (gui version)
/****************************************************************************/
@@ -33,7 +33,6 @@
#include <string>
#include <utils/common/MsgHandler.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/geom/Boundary.h>
#include <utils/gui/div/GLHelper.h>
#include <utils/common/ToString.h>
diff --git a/src/guisim/GUITriggeredRerouter.h b/src/guisim/GUITriggeredRerouter.h
index 36ff6a2..c5b9d74 100644
--- a/src/guisim/GUITriggeredRerouter.h
+++ b/src/guisim/GUITriggeredRerouter.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 25.07.2005
-/// @version $Id: GUITriggeredRerouter.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUITriggeredRerouter.h 18983 2015-10-01 12:40:07Z namdre $
///
// Reroutes vehicles passing an edge (gui-version)
/****************************************************************************/
@@ -41,6 +41,10 @@
#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
#include <gui/GUIManipulator.h>
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUIEdge;
// ===========================================================================
// class definitions
diff --git a/src/guisim/GUIVehicle.cpp b/src/guisim/GUIVehicle.cpp
index 8dbf4ea..da25d3b 100644
--- a/src/guisim/GUIVehicle.cpp
+++ b/src/guisim/GUIVehicle.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIVehicle.cpp 18702 2015-08-24 07:10:47Z namdre $
+/// @version $Id: GUIVehicle.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSVehicle extended by some values for usage within the gui
/****************************************************************************/
@@ -37,6 +37,7 @@
#include <utils/common/StringUtils.h>
#include <utils/vehicle/SUMOVehicleParameter.h>
#include <utils/emissions/PollutantsInterface.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/gui/globjects/GLIncludes.h>
#include <utils/gui/windows/GUISUMOAbstractView.h>
#include <utils/gui/windows/GUIAppEnum.h>
@@ -47,10 +48,10 @@
#include <utils/gui/div/GLObjectValuePassConnector.h>
#include <utils/gui/div/GUIGlobalSelection.h>
#include <microsim/MSVehicle.h>
+#include <microsim/MSJunction.h>
#include <microsim/MSLane.h>
#include <microsim/logging/CastingFunctionBinding.h>
#include <microsim/logging/FunctionBinding.h>
-#include <microsim/MSVehicleControl.h>
#include <microsim/lcmodels/MSAbstractLaneChangeModel.h>
#include <microsim/devices/MSDevice_Vehroutes.h>
#include <microsim/devices/MSDevice_Person.h>
@@ -73,248 +74,27 @@
// ===========================================================================
// FOX callback mapping
// ===========================================================================
-FXDEFMAP(GUIVehicle::GUIVehiclePopupMenu) GUIVehiclePopupMenuMap[] = {
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_ALLROUTES, GUIVehicle::GUIVehiclePopupMenu::onCmdShowAllRoutes),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_ALLROUTES, GUIVehicle::GUIVehiclePopupMenu::onCmdHideAllRoutes),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_CURRENTROUTE, GUIVehicle::GUIVehiclePopupMenu::onCmdShowCurrentRoute),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_CURRENTROUTE, GUIVehicle::GUIVehiclePopupMenu::onCmdHideCurrentRoute),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_BEST_LANES, GUIVehicle::GUIVehiclePopupMenu::onCmdShowBestLanes),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_BEST_LANES, GUIVehicle::GUIVehiclePopupMenu::onCmdHideBestLanes),
- FXMAPFUNC(SEL_COMMAND, MID_START_TRACK, GUIVehicle::GUIVehiclePopupMenu::onCmdStartTrack),
- FXMAPFUNC(SEL_COMMAND, MID_STOP_TRACK, GUIVehicle::GUIVehiclePopupMenu::onCmdStopTrack),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_LFLINKITEMS, GUIVehicle::GUIVehiclePopupMenu::onCmdShowLFLinkItems),
- FXMAPFUNC(SEL_COMMAND, MID_HIDE_LFLINKITEMS, GUIVehicle::GUIVehiclePopupMenu::onCmdHideLFLinkItems),
- FXMAPFUNC(SEL_COMMAND, MID_SHOW_FOES, GUIVehicle::GUIVehiclePopupMenu::onCmdShowFoes),
-};
// Object implementation
-FXIMPLEMENT(GUIVehicle::GUIVehiclePopupMenu, GUIGLObjectPopupMenu, GUIVehiclePopupMenuMap, ARRAYNUMBER(GUIVehiclePopupMenuMap))
-
-
-
-// ===========================================================================
-// data definitions
-// ===========================================================================
-/* -------------------------------------------------------------------------
- * drawed shapes
- * ----------------------------------------------------------------------- */
-double vehiclePoly_PassengerCarBody[] = { .5, 0, 0, 0, 0, .3, 0.08, .44, 0.25, .5, 0.95, .5, 1., .4, 1., -.4, 0.95, -.5, 0.25, -.5, 0.08, -.44, 0, -.3, 0, 0, -10000 };
-double vehiclePoly_PassengerCarBodyFront[] = { 0.1, 0, 0.025, 0, 0.025, 0.25, 0.27, 0.4, 0.27, -.4, 0.025, -0.25, 0.025, 0, -10000 };
-double vehiclePoly_PassengerFrontGlass[] = { 0.35, 0, 0.3, 0, 0.3, 0.4, 0.43, 0.3, 0.43, -0.3, 0.3, -0.4, 0.3, 0, -10000 };
-double vehiclePoly_PassengerSedanRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.77, -.47, 0.67, -.37, 0.45, -.37, 0.34, -.47, -10000 };
-double vehiclePoly_PassengerSedanLeftGlass[] = { 0.36, .43, 0.34, .47, 0.77, .47, 0.67, .37, 0.45, .37, 0.34, .47, -10000 };
-double vehiclePoly_PassengerSedanBackGlass[] = { 0.80, 0, 0.70, 0, 0.70, 0.3, 0.83, 0.4, 0.83, -.4, 0.70, -.3, 0.70, 0, -10000 };
-double vehiclePoly_PassengerHatchbackRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.80, -.37, 0.45, -.37, 0.34, -.47, -10000 };
-double vehiclePoly_PassengerHatchbackLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.80, .37, 0.45, .37, 0.34, .47, -10000 };
-double vehiclePoly_PassengerHatchbackBackGlass[] = { 0.92, 0, 0.80, 0, 0.80, 0.3, 0.95, 0.4, 0.95, -.4, 0.80, -.3, 0.80, 0, -10000 };
-double vehiclePoly_PassengerWagonRightGlass[] = { 0.36, -.43, 0.34, -.47, 0.94, -.47, 0.87, -.37, 0.45, -.37, 0.34, -.47, -10000 };
-double vehiclePoly_PassengerWagonLeftGlass[] = { 0.36, .43, 0.34, .47, 0.94, .47, 0.87, .37, 0.45, .37, 0.34, .47, -10000 };
-double vehiclePoly_PassengerWagonBackGlass[] = { 0.92, 0, 0.90, 0, 0.90, 0.3, 0.95, 0.4, 0.95, -.4, 0.90, -.3, 0.90, 0, -10000 };
-
-double vehiclePoly_PassengerVanBody[] = { .5, 0, 0, 0, 0, .4, 0.1, .5, 0.97, .5, 1., .47, 1., -.47, 0.97, -.5, 0.1, -.5, 0, -.4, 0, 0, -10000 };
-double vehiclePoly_PassengerVanBodyFront[] = { 0.1, 0, 0.025, 0, 0.025, 0.25, 0.13, 0.4, 0.13, -.4, 0.025, -0.25, 0.025, 0, -10000 };
-double vehiclePoly_PassengerVanFrontGlass[] = { 0.21, 0, 0.16, 0, 0.16, 0.4, 0.29, 0.3, 0.29, -0.3, 0.16, -0.4, 0.16, 0, -10000 };
-double vehiclePoly_PassengerVanRightGlass[] = { 0.36, -.43, 0.20, -.47, 0.98, -.47, 0.91, -.37, 0.31, -.37, 0.20, -.47, -10000 };
-double vehiclePoly_PassengerVanLeftGlass[] = { 0.36, .43, 0.20, .47, 0.98, .47, 0.91, .37, 0.31, .37, 0.20, .47, -10000 };
-double vehiclePoly_PassengerVanBackGlass[] = { 0.95, 0, 0.94, 0, 0.94, 0.3, 0.98, 0.4, 0.98, -.4, 0.94, -.3, 0.94, 0, -10000 };
-
-double vehiclePoly_DeliveryMediumRightGlass[] = { 0.21, -.43, 0.20, -.47, 0.38, -.47, 0.38, -.37, 0.31, -.37, 0.20, -.47, -10000 };
-double vehiclePoly_DeliveryMediumLeftGlass[] = { 0.21, .43, 0.20, .47, 0.38, .47, 0.38, .37, 0.31, .37, 0.20, .47, -10000 };
-
-double vehiclePoly_TransportBody[] = { .5, 0, 0, 0, 0, .45, 0.05, .5, 2.25, .5, 2.25, -.5, 0.05, -.5, 0, -.45, 0, 0, -10000 };
-double vehiclePoly_TransportFrontGlass[] = { 0.1, 0, 0.05, 0, 0.05, 0.45, 0.25, 0.4, 0.25, -.4, 0.05, -0.45, 0.05, 0, -10000 };
-double vehiclePoly_TransportRightGlass[] = { 0.36, -.47, 0.10, -.48, 1.25, -.48, 1.25, -.4, 0.3, -.4, 0.10, -.48, -10000 };
-double vehiclePoly_TransportLeftGlass[] = { 0.36, .47, 0.10, .48, 1.25, .48, 1.25, .4, 0.3, .4, 0.10, .48, -10000 };
-
-double vehiclePoly_EVehicleBody[] = { .5, 0, 0, 0, 0, .3, 0.08, .44, 0.25, .5, 0.75, .5, .92, .44, 1, .3, 1, -.3, .92, -.44, .75, -.5, .25, -.5, 0.08, -.44, 0, -.3, 0, 0, -1000 };
-double vehiclePoly_EVehicleFrontGlass[] = { .5, 0, 0.05, .05, 0.05, .25, 0.13, .39, 0.3, .45, 0.70, .45, .87, .39, .95, .25, .95, -.25, .87, -.39, .70, -.45, .3, -.45, 0.13, -.39, 0.05, -.25, 0.05, 0.05, -1000 };
-//double vehiclePoly_EVehicleFrontGlass[] = { 0.35,0, 0.1,0, 0.1,0.4, 0.43,0.3, 0.43,-0.3, 0.1,-0.4, 0.1,0, -10000 };
-double vehiclePoly_EVehicleBackGlass[] = { 0.65, 0, 0.9, 0, 0.9, 0.4, 0.57, 0.3, 0.57, -0.3, 0.9, -0.4, 0.9, 0, -10000 };
-
-double vehiclePoly_Ship[] = { 0.25, 0, 0, 0, 0.1, 0.25, 0.2, 0.45, 0.25, 0.5, 0.95, 0.5, 1.0, 0.45, 1.0, -0.45, 0.95, -0.5, 0.25, -0.5, 0.2, -0.45, 0.1, -0.25, 0, 0, -10000 };
-double vehiclePoly_ShipDeck[] = { 0.5, 0, 0.25, 0.4, 0.95, 0.4, 0.95, -0.4, 0.25, -0.4, 0.25, 0.4, -10000 };
-double vehiclePoly_ShipSuperStructure[] = { 0.8, 0, 0.5, 0.3, 0.85, 0.3, 0.85, -0.3, 0.5, -0.3, 0.5, 0.3, -10000 };
-
-double vehiclePoly_Cyclist[] = { 0.5, 0, 0.25, 0.45, 0.25, 0.5, 0.8, 0.15, 0.8, -0.15, 0.25, -0.5, 0.25, -0.45, -10000 };
-
-// ===========================================================================
-// method definitions
-// ===========================================================================
-/* -------------------------------------------------------------------------
- * GUIVehicle::GUIVehiclePopupMenu - methods
- * ----------------------------------------------------------------------- */
-GUIVehicle::GUIVehiclePopupMenu::GUIVehiclePopupMenu(
- GUIMainWindow& app, GUISUMOAbstractView& parent,
- GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations)
- : GUIGLObjectPopupMenu(app, parent, o), myVehiclesAdditionalVisualizations(additionalVisualizations) {
-}
-
-
-GUIVehicle::GUIVehiclePopupMenu::~GUIVehiclePopupMenu() {}
-
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowAllRoutes(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES);
- }
- return 1;
-}
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideAllRoutes(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ALL_ROUTES);
- return 1;
-}
-
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowCurrentRoute(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_ROUTE)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
- }
- return 1;
-}
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideCurrentRoute(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_ROUTE);
- return 1;
-}
-
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowBestLanes(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES);
- }
- return 1;
-}
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideBestLanes(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_BEST_LANES);
- return 1;
-}
-
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdStartTrack(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_TRACKED)) {
- myParent->startTrack(static_cast<GUIVehicle*>(myObject)->getGlID());
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_TRACKED);
- }
- return 1;
-}
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdStopTrack(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_TRACKED);
- myParent->stopTrack();
- return 1;
-}
-
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowLFLinkItems(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- if (!static_cast<GUIVehicle*>(myObject)->hasActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS)) {
- static_cast<GUIVehicle*>(myObject)->addActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS);
- }
- return 1;
-}
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdHideLFLinkItems(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->removeActiveAddVisualisation(myParent, VO_SHOW_LFLINKITEMS);
- return 1;
-}
-
-long
-GUIVehicle::GUIVehiclePopupMenu::onCmdShowFoes(FXObject*, FXSelector, void*) {
- assert(myObject->getType() == GLO_VEHICLE);
- static_cast<GUIVehicle*>(myObject)->selectBlockingFoes();
- return 1;
-}
/* -------------------------------------------------------------------------
* GUIVehicle - methods
* ----------------------------------------------------------------------- */
+#ifdef _MSC_VER
+#pragma warning(disable: 4355)
+#endif
GUIVehicle::GUIVehicle(SUMOVehicleParameter* pars, const MSRoute* route,
const MSVehicleType* type, const SUMOReal speedFactor) :
MSVehicle(pars, route, type, speedFactor),
- GUIGlObject(GLO_VEHICLE, pars->id) {
- // as it is possible to show all vehicle routes, we have to store them... (bug [ 2519761 ])
- myRoutes = MSDevice_Vehroutes::buildVehicleDevices(*this, myDevices, 5);
- myMoveReminders.push_back(std::make_pair(myRoutes, 0.));
- mySeatPositions.push_back(Position(0, 0)); // ensure length 1
+ GUIBaseVehicle((MSBaseVehicle&)*this) {
}
+#ifdef _MSC_VER
+#pragma warning(default: 4355)
+#endif
GUIVehicle::~GUIVehicle() {
- myLock.lock();
- for (std::map<GUISUMOAbstractView*, int>::iterator i = myAdditionalVisualizations.begin(); i != myAdditionalVisualizations.end(); ++i) {
- while (i->first->removeAdditionalGLVisualisation(this));
- }
- myLock.unlock();
- GLObjectValuePassConnector<SUMOReal>::removeObject(*this);
- delete myRoutes;
-}
-
-
-GUIGLObjectPopupMenu*
-GUIVehicle::getPopUpMenu(GUIMainWindow& app,
- GUISUMOAbstractView& parent) {
- GUIGLObjectPopupMenu* ret = new GUIVehiclePopupMenu(app, parent, *this, myAdditionalVisualizations);
- buildPopupHeader(ret, app);
- buildCenterPopupEntry(ret);
- buildNameCopyPopupEntry(ret);
- buildSelectionPopupEntry(ret);
- //
- if (hasActiveAddVisualisation(&parent, VO_SHOW_ROUTE)) {
- new FXMenuCommand(ret, "Hide Current Route", 0, ret, MID_HIDE_CURRENTROUTE);
- } else {
- new FXMenuCommand(ret, "Show Current Route", 0, ret, MID_SHOW_CURRENTROUTE);
- }
- if (hasActiveAddVisualisation(&parent, VO_SHOW_ALL_ROUTES)) {
- new FXMenuCommand(ret, "Hide All Routes", 0, ret, MID_HIDE_ALLROUTES);
- } else {
- new FXMenuCommand(ret, "Show All Routes", 0, ret, MID_SHOW_ALLROUTES);
- }
- if (hasActiveAddVisualisation(&parent, VO_SHOW_BEST_LANES)) {
- new FXMenuCommand(ret, "Hide Best Lanes", 0, ret, MID_HIDE_BEST_LANES);
- } else {
- new FXMenuCommand(ret, "Show Best Lanes", 0, ret, MID_SHOW_BEST_LANES);
- }
- if (hasActiveAddVisualisation(&parent, VO_SHOW_LFLINKITEMS)) {
- new FXMenuCommand(ret, "Hide Link Items", 0, ret, MID_HIDE_LFLINKITEMS);
- } else {
- new FXMenuCommand(ret, "Show Link Items", 0, ret, MID_SHOW_LFLINKITEMS);
- }
- new FXMenuSeparator(ret);
- int trackedID = parent.getTrackedID();
- if (trackedID < 0 || (size_t)trackedID != getGlID()) {
- new FXMenuCommand(ret, "Start Tracking", 0, ret, MID_START_TRACK);
- } else {
- new FXMenuCommand(ret, "Stop Tracking", 0, ret, MID_STOP_TRACK);
- }
- new FXMenuCommand(ret, "Select Foes", 0, ret, MID_SHOW_FOES);
-
- new FXMenuSeparator(ret);
- //
- buildShowParamsPopupEntry(ret);
- buildPositionCopyEntry(ret, false);
- return ret;
}
@@ -326,11 +106,11 @@ GUIVehicle::getParameterWindow(GUIMainWindow& app,
// add items
ret->mkItem("lane [id]", false, myLane->getID());
ret->mkItem("position [m]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getPositionOnLane));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getPositionOnLane));
ret->mkItem("speed [m/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getSpeed));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getSpeed));
ret->mkItem("angle [degree]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getAngle));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getNaviDegree));
if (getChosenSpeedFactor() != 1) {
ret->mkItem("speed factor", false, getChosenSpeedFactor());
}
@@ -343,6 +123,7 @@ GUIVehicle::getParameterWindow(GUIMainWindow& app,
ret->mkItem("last lane change [s]", true,
new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getLastLaneChangeOffset));
ret->mkItem("desired depart [s]", false, time2string(getParameter().depart));
+ ret->mkItem("depart delay [s]", false, time2string(getDepartDelay()));
if (getParameter().repetitionNumber < INT_MAX) {
ret->mkItem("remaining [#]", false, (unsigned int) getParameter().repetitionNumber - getParameter().repetitionsDone);
}
@@ -355,19 +136,19 @@ GUIVehicle::getParameterWindow(GUIMainWindow& app,
ret->mkItem("stop info", false, getStopInfo());
ret->mkItem("line", false, myParameter->line);
ret->mkItem("CO2 [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getCO2Emissions));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getCO2Emissions));
ret->mkItem("CO [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getCOEmissions));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getCOEmissions));
ret->mkItem("HC [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getHCEmissions));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getHCEmissions));
ret->mkItem("NOx [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getNOxEmissions));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getNOxEmissions));
ret->mkItem("PMx [mg/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getPMxEmissions));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getPMxEmissions));
ret->mkItem("fuel [ml/s]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getFuelConsumption));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getFuelConsumption));
ret->mkItem("noise (Harmonoise) [dB]", true,
- new FunctionBinding<GUIVehicle, SUMOReal>(this, &GUIVehicle::getHarmonoise_NoiseEmissions));
+ new FunctionBinding<GUIVehicle, SUMOReal>(this, &MSVehicle::getHarmonoise_NoiseEmissions));
std::ostringstream str;
for (std::vector<MSDevice*>::const_iterator i = myDevices.begin(); i != myDevices.end(); ++i) {
if (i != myDevices.begin()) {
@@ -377,9 +158,9 @@ GUIVehicle::getParameterWindow(GUIMainWindow& app,
}
ret->mkItem("devices", false, str.str());
ret->mkItem("persons", true,
- new FunctionBinding<GUIVehicle, unsigned int>(this, &GUIVehicle::getPersonNumber));
+ new FunctionBinding<GUIVehicle, unsigned int>(this, &MSVehicle::getPersonNumber));
ret->mkItem("containers", true,
- new FunctionBinding<GUIVehicle, unsigned int>(this, &GUIVehicle::getContainerNumber));
+ new FunctionBinding<GUIVehicle, unsigned int>(this, &MSVehicle::getContainerNumber));
ret->mkItem("parameters [key:val]", false, toString(getParameter().getMap()));
ret->mkItem("", false, "");
@@ -404,483 +185,56 @@ GUIVehicle::getParameterWindow(GUIMainWindow& app,
}
-Boundary
-GUIVehicle::getCenteringBoundary() const {
- Boundary b;
- b.add(getPosition());
- b.grow(20);
- return b;
-}
-
-
-void
-GUIVehicle::drawAction_drawVehicleAsBoxPlus() const {
- glPushMatrix();
- glScaled(getVehicleType().getWidth(), getVehicleType().getLength(), 1.);
- glBegin(GL_TRIANGLE_STRIP);
- glVertex2d(0., 0.);
- glVertex2d(-.5, .15);
- glVertex2d(.5, .15);
- glVertex2d(-.5, 1.);
- glVertex2d(.5, 1.);
- glEnd();
- glPopMatrix();
-}
-
-
-void
-GUIVehicle::drawAction_drawVehicleAsTrianglePlus() const {
- const SUMOReal length = getVehicleType().getLength();
- if (length >= 8.) {
- drawAction_drawVehicleAsBoxPlus();
- return;
- }
- glPushMatrix();
- glScaled(getVehicleType().getWidth(), length, 1.);
- glBegin(GL_TRIANGLES);
- glVertex2d(0., 0.);
- glVertex2d(-.5, 1.);
- glVertex2d(.5, 1.);
- glEnd();
- glPopMatrix();
-}
-
-
-void
-GUIVehicle::drawPoly(double* poses, SUMOReal offset) {
- glPushMatrix();
- glTranslated(0, 0, offset * .1);
- glPolygonOffset(0, offset * -1);
- glBegin(GL_TRIANGLE_FAN);
- int i = 0;
- while (poses[i] > -999) {
- glVertex2d(poses[i], poses[i + 1]);
- i = i + 2;
- }
- glEnd();
- glPopMatrix();
-}
-
-
void
-GUIVehicle::drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) const {
- RGBColor current = GLHelper::getColor();
- RGBColor lighter = current.changedBrightness(51);
- RGBColor darker = current.changedBrightness(-51);
-
- const SUMOReal length = getVehicleType().getLength();
- const SUMOReal width = getVehicleType().getWidth();
- glPushMatrix();
- glRotated(90, 0, 0, 1);
- glScaled(length, width, 1.);
- SUMOVehicleShape shape = getVehicleType().getGuiShape();
-
- // draw main body
- switch (shape) {
- case SVS_UNKNOWN:
- drawPoly(vehiclePoly_PassengerCarBody, 4);
- GLHelper::setColor(lighter);
- drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
- break;
- case SVS_PEDESTRIAN:
- glTranslated(0, 0, .045);
- GLHelper::drawFilledCircle(0.25);
- glTranslated(0, 0, -.045);
- glScaled(.7, 2, 1);
- glTranslated(0, 0, .04);
- GLHelper::setColor(lighter);
- GLHelper::drawFilledCircle(0.25);
- glTranslated(0, 0, -.04);
- break;
- case SVS_BICYCLE:
- case SVS_MOPED:
- case SVS_MOTORCYCLE: {
- RGBColor darker = current.changedBrightness(-50);
- // body
- drawPoly(vehiclePoly_Cyclist, 4);
- // head
- glPushMatrix();
- glTranslated(0.4, 0, .5);
- glScaled(0.1, 0.2, 1);
- GLHelper::setColor(darker);
- GLHelper::drawFilledCircle(1);
- glPopMatrix();
- // bike frame
- GLHelper::setColor(RGBColor::GREY);
- glPushMatrix();
- glTranslated(0.5, 0, .3);
- glScaled(0.5, 0.05, 1);
- GLHelper::drawFilledCircle(1);
- glPopMatrix();
- // handle bar
- glPushMatrix();
- glTranslated(0.25, 0, .3);
- glScaled(0.02, 0.5, 1);
- GLHelper::drawFilledCircle(1);
- glPopMatrix();
- }
- break;
- case SVS_PASSENGER:
- case SVS_PASSENGER_SEDAN:
- case SVS_PASSENGER_HATCHBACK:
- case SVS_PASSENGER_WAGON:
- drawPoly(vehiclePoly_PassengerCarBody, 4);
- GLHelper::setColor(lighter);
- drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
- break;
- case SVS_PASSENGER_VAN:
- drawPoly(vehiclePoly_PassengerVanBody, 4);
- GLHelper::setColor(lighter);
- drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
- drawPoly(vehiclePoly_PassengerVanRightGlass, 4.5);
- drawPoly(vehiclePoly_PassengerVanLeftGlass, 4.5);
- drawPoly(vehiclePoly_PassengerVanBackGlass, 4.5);
- break;
- case SVS_DELIVERY:
- drawPoly(vehiclePoly_PassengerVanBody, 4);
- GLHelper::setColor(lighter);
- drawPoly(vehiclePoly_PassengerVanBodyFront, 4.5);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_PassengerVanFrontGlass, 4.5);
- drawPoly(vehiclePoly_DeliveryMediumRightGlass, 4.5);
- drawPoly(vehiclePoly_DeliveryMediumLeftGlass, 4.5);
- break;
- case SVS_TRUCK:
- case SVS_TRUCK_SEMITRAILER:
- case SVS_TRUCK_1TRAILER:
- glScaled(1. / (length), 1, 1.);
- drawPoly(vehiclePoly_TransportBody, 4);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_TransportFrontGlass, 4.5);
- drawPoly(vehiclePoly_TransportRightGlass, 4.5);
- drawPoly(vehiclePoly_TransportLeftGlass, 4.5);
- break;
- case SVS_BUS:
- case SVS_BUS_COACH:
- case SVS_BUS_TROLLEY: {
- SUMOReal ml = length;
- glScaled(1. / (length), 1, 1.);
- glTranslated(0, 0, .04);
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(ml / 2., 0);
- glVertex2d(0, 0);
- glVertex2d(0, -.45);
- glVertex2d(0 + .05, -.5);
- glVertex2d(ml - .05, -.5);
- glVertex2d(ml, -.45);
- glVertex2d(ml, .45);
- glVertex2d(ml - .05, .5);
- glVertex2d(0 + .05, .5);
- glVertex2d(0, .45);
- glVertex2d(0, 0);
- glEnd();
- glTranslated(0, 0, -.04);
-
- glTranslated(0, 0, .045);
- glColor3d(0, 0, 0);
- glBegin(GL_QUADS);
- glVertex2d(0 + .05, .48);
- glVertex2d(0 + .05, -.48);
- glVertex2d(0 + .15, -.48);
- glVertex2d(0 + .15, .48);
-
- glVertex2d(ml - .1, .45);
- glVertex2d(ml - .1, -.45);
- glVertex2d(ml - .05, -.45);
- glVertex2d(ml - .05, .45);
-
- glVertex2d(0 + .20, .49);
- glVertex2d(0 + .20, .45);
- glVertex2d(ml - .20, .45);
- glVertex2d(ml - .20, .49);
-
- glVertex2d(0 + .20, -.49);
- glVertex2d(0 + .20, -.45);
- glVertex2d(ml - .20, -.45);
- glVertex2d(ml - .20, -.49);
-
- glEnd();
- glTranslated(0, 0, -.045);
- }
- break;
- case SVS_BUS_FLEXIBLE:
- case SVS_RAIL:
- case SVS_RAIL_CAR:
- case SVS_RAIL_CARGO:
- drawAction_drawCarriageClass(s, shape, false);
- break;
- case SVS_E_VEHICLE:
- drawPoly(vehiclePoly_EVehicleBody, 4);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_EVehicleFrontGlass, 4.5);
- glTranslated(0, 0, .048);
- GLHelper::setColor(current);
- glBegin(GL_QUADS);
- glVertex2d(.3, .5);
- glVertex2d(.35, .5);
- glVertex2d(.35, -.5);
- glVertex2d(.3, -.5);
-
- glVertex2d(.3, -.05);
- glVertex2d(.7, -.05);
- glVertex2d(.7, .05);
- glVertex2d(.3, .05);
-
- glVertex2d(.7, .5);
- glVertex2d(.65, .5);
- glVertex2d(.65, -.5);
- glVertex2d(.7, -.5);
- glEnd();
- glTranslated(0, 0, -.048);
- //drawPoly(vehiclePoly_EVehicleBackGlass, 4.5);
- break;
- case SVS_ANT:
- glPushMatrix();
- // ant is stretched via vehicle length
- GLHelper::setColor(darker);
- // draw left side
- GLHelper::drawBoxLine(Position(-0.2, -.10), 350, 0.5, .02);
- GLHelper::drawBoxLine(Position(-0.3, -.50), 240, 0.4, .03);
- GLHelper::drawBoxLine(Position(0.3, -.10), 340, 0.8, .03);
- GLHelper::drawBoxLine(Position(0.05, -.80), 290, 0.6, .04);
- GLHelper::drawBoxLine(Position(0.4, -.10), 20, 0.8, .03);
- GLHelper::drawBoxLine(Position(0.65, -.80), 75, 0.6, .04);
- GLHelper::drawBoxLine(Position(0.5, -.10), 55, 0.8, .04);
- GLHelper::drawBoxLine(Position(1.1, -.55), 90, 0.6, .04);
- // draw right side
- GLHelper::drawBoxLine(Position(-0.2, .10), 190, 0.5, .02);
- GLHelper::drawBoxLine(Position(-0.3, .50), 300, 0.4, .03);
- GLHelper::drawBoxLine(Position(0.3, .10), 200, 0.8, .03);
- GLHelper::drawBoxLine(Position(0.05, .80), 250, 0.6, .04);
- GLHelper::drawBoxLine(Position(0.4, .10), 160, 0.8, .03);
- GLHelper::drawBoxLine(Position(0.65, .80), 105, 0.6, .04);
- GLHelper::drawBoxLine(Position(0.5, .10), 125, 0.8, .04);
- GLHelper::drawBoxLine(Position(1.1, .55), 90, 0.6, .04);
- // draw body
- GLHelper::setColor(current);
- glTranslated(0, 0, 0.1);
- GLHelper::drawFilledCircle(.25, 16);
- glTranslated(.4, 0, 0);
- GLHelper::drawFilledCircle(.2, 16);
- glTranslated(.4, 0, 0);
- GLHelper::drawFilledCircle(.3, 16);
- glPopMatrix();
- break;
- case SVS_SHIP: {
- RGBColor darker = current.changedBrightness(-30);
- RGBColor darker2 = current.changedBrightness(-70);
- drawPoly(vehiclePoly_Ship, 4);
- GLHelper::setColor(darker);
- drawPoly(vehiclePoly_ShipDeck, 5);
- GLHelper::setColor(darker2);
- drawPoly(vehiclePoly_ShipSuperStructure, 6);
- break;
+GUIVehicle::drawAction_drawPersonsAndContainers(const GUIVisualizationSettings& s) const {
+ if (myPersonDevice != 0) {
+ const std::vector<MSTransportable*>& ps = myPersonDevice->getPersons();
+ size_t personIndex = 0;
+ for (std::vector<MSTransportable*>::const_iterator i = ps.begin(); i != ps.end(); ++i) {
+ GUIPerson* person = dynamic_cast<GUIPerson*>(*i);
+ assert(person != 0);
+ person->setPositionInVehicle(getSeatPosition(personIndex++));
+ person->drawGL(s);
}
- default: // same as passenger
- drawPoly(vehiclePoly_PassengerCarBody, 4);
- glColor3d(1, 1, 1);
- drawPoly(vehiclePoly_PassengerCarBodyFront, 4.5);
- glColor3d(0, 0, 0);
- drawPoly(vehiclePoly_PassengerFrontGlass, 4.5);
- break;
}
-
- // draw decorations
- switch (shape) {
- case SVS_PEDESTRIAN:
- break;
- case SVS_BICYCLE:
- //glScaled(length, 1, 1.);
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(1 / 2., 0);
- glVertex2d(0, 0);
- glVertex2d(0, -.03);
- glVertex2d(0 + .05, -.05);
- glVertex2d(1 - .05, -.05);
- glVertex2d(1, -.03);
- glVertex2d(1, .03);
- glVertex2d(1 - .05, .05);
- glVertex2d(0 + .05, .05);
- glVertex2d(0, .03);
- glVertex2d(0, 0);
- glEnd();
- break;
- case SVS_MOPED:
- case SVS_MOTORCYCLE:
- //glScaled(length, 1, 1.);
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(1 / 2., 0);
- glVertex2d(0, 0);
- glVertex2d(0, -.03);
- glVertex2d(0 + .05, -.2);
- glVertex2d(1 - .05, -.2);
- glVertex2d(1, -.03);
- glVertex2d(1, .03);
- glVertex2d(1 - .05, .2);
- glVertex2d(0 + .05, .2);
- glVertex2d(0, .03);
- glVertex2d(0, 0);
- glEnd();
- break;
- case SVS_PASSENGER:
- case SVS_PASSENGER_SEDAN:
- drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
- drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
- drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
- break;
- case SVS_PASSENGER_HATCHBACK:
- drawPoly(vehiclePoly_PassengerHatchbackRightGlass, 4.5);
- drawPoly(vehiclePoly_PassengerHatchbackLeftGlass, 4.5);
- drawPoly(vehiclePoly_PassengerHatchbackBackGlass, 4.5);
- break;
- case SVS_PASSENGER_WAGON:
- drawPoly(vehiclePoly_PassengerWagonRightGlass, 4.5);
- drawPoly(vehiclePoly_PassengerWagonLeftGlass, 4.5);
- drawPoly(vehiclePoly_PassengerWagonBackGlass, 4.5);
- break;
- case SVS_PASSENGER_VAN:
- case SVS_DELIVERY:
- break;
- case SVS_TRUCK:
- GLHelper::setColor(current);
- GLHelper::drawBoxLine(Position(2.3, 0), 90., length - 2.3, .5);
- break;
- case SVS_TRUCK_SEMITRAILER:
- GLHelper::setColor(current);
- GLHelper::drawBoxLine(Position(2.8, 0), 90., length - 2.8, .5);
- break;
- case SVS_TRUCK_1TRAILER: {
- GLHelper::setColor(current);
- SUMOReal l = length - 2.3;
- l = l / 2.;
- GLHelper::drawBoxLine(Position(2.3, 0), 90., l, .5);
- GLHelper::drawBoxLine(Position(2.3 + l + .5, 0), 90., l - .5, .5);
- break;
+ if (myContainerDevice != 0) {
+ const std::vector<MSTransportable*>& cs = myContainerDevice->getContainers();
+ size_t containerIndex = 0;
+ for (std::vector<MSTransportable*>::const_iterator i = cs.begin(); i != cs.end(); ++i) {
+ GUIContainer* container = dynamic_cast<GUIContainer*>(*i);
+ assert(container != 0);
+ container->setPositionInVehicle(getSeatPosition(containerIndex++));
+ container->drawGL(s);
}
- case SVS_BUS_TROLLEY:
- glPushMatrix();
- glTranslated(0, 0, .1);
- GLHelper::setColor(darker);
- GLHelper::drawBoxLine(Position(3.8, 0), 90., 1, .3);
- glTranslated(0, 0, .1);
- glColor3d(0, 0, 0);
- GLHelper::drawBoxLine(Position(4.3, .2), 90., 1, .06);
- GLHelper::drawBoxLine(Position(4.3, -.2), 90., 1, .06);
- GLHelper::drawBoxLine(Position(5.3, .2), 90., 3, .03);
- GLHelper::drawBoxLine(Position(5.3, -.2), 90., 3, .03);
- glPopMatrix();
- break;
- case SVS_BUS:
- case SVS_BUS_COACH:
- case SVS_BUS_FLEXIBLE:
- case SVS_RAIL:
- case SVS_RAIL_CAR:
- case SVS_RAIL_CARGO:
- case SVS_E_VEHICLE:
- case SVS_ANT:
- case SVS_SHIP:
- break;
- default: // same as passenger/sedan
- drawPoly(vehiclePoly_PassengerSedanRightGlass, 4.5);
- drawPoly(vehiclePoly_PassengerSedanLeftGlass, 4.5);
- drawPoly(vehiclePoly_PassengerSedanBackGlass, 4.5);
- break;
}
- /*
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(.5,.5); // center - strip begin
- glVertex2d(0, .5); // center, front
- glVertex2d(0, .8); // ... clockwise ... (vehicle right side)
- glVertex2d(0.08, .94);
- glVertex2d(0.25, 1.);
- glVertex2d(0.95, 1.);
- glVertex2d(1., .9);
- glVertex2d(1., .1); // (vehicle left side)
- glVertex2d(0.95, 0.);
- glVertex2d(0.25, 0.);
- glVertex2d(0.08, .06);
- glVertex2d(0, .2); //
- glVertex2d(0, .5); // center, front (close)
- glEnd();
-
- glPolygonOffset(0, -4.5);
- glColor3d(1, 1, 1); // front
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(0.1,0.5);
- glVertex2d(0.025,0.5);
- glVertex2d(0.025,0.75);
- glVertex2d(0.27,0.9);
- glVertex2d(0.27,0.1);
- glVertex2d(0.025,0.25);
- glVertex2d(0.025,0.5);
- glEnd();
-
- glColor3d(0, 0, 0); // front glass
- glBegin(GL_TRIANGLE_FAN);
- glVertex2d(0.35,0.5);
- glVertex2d(0.3,0.5);
- glVertex2d(0.3,0.9);
- glVertex2d(0.43,0.8);
- glVertex2d(0.43,0.2);
- glVertex2d(0.3,0.1);
- glVertex2d(0.3,0.5);
- glEnd();
-
- glBegin(GL_TRIANGLE_FAN); // back glass
- glVertex2d(0.92,0.5);
- glVertex2d(0.90,0.5);
- glVertex2d(0.90,0.8);
- glVertex2d(0.95,0.9);
- glVertex2d(0.95,0.1);
- glVertex2d(0.90,0.2);
- glVertex2d(0.90,0.5);
- glEnd();
-
- glBegin(GL_TRIANGLE_FAN); // right glass
- glVertex2d(0.36,0.07);
- glVertex2d(0.34,0.03);
- glVertex2d(0.94,0.03);
- glVertex2d(0.87,0.13);
- glVertex2d(0.45,0.13);
- glVertex2d(0.34,0.03);
- glEnd();
-
- glBegin(GL_TRIANGLE_FAN); // left glass
- glVertex2d(0.36,1.-0.07);
- glVertex2d(0.34,1.-0.03);
- glVertex2d(0.94,1.-0.03);
- glVertex2d(0.87,1.-0.13);
- glVertex2d(0.45,1.-0.13);
- glVertex2d(0.34,1.-0.03);
- glEnd();
- */
-
- glPopMatrix();
}
-bool
-GUIVehicle::drawAction_drawVehicleAsImage(const GUIVisualizationSettings& s, SUMOReal length) const {
- const std::string& file = getVehicleType().getImgFile();
- if (file != "") {
- int textureID = GUITexturesHelper::getTextureID(file);
- if (textureID > 0) {
- const SUMOReal exaggeration = s.vehicleSize.getExaggeration(s);
- if (length < 0) {
- length = getVehicleType().getLength() * exaggeration;
+void
+GUIVehicle::drawAction_drawLinkItems(const GUIVisualizationSettings& s) const {
+ for (DriveItemVector::const_iterator i = myLFLinkLanes.begin(); i != myLFLinkLanes.end(); ++i) {
+ if ((*i).myLink == 0) {
+ continue;
+ }
+ MSLink* link = (*i).myLink;
+ MSLane* via = link->getViaLaneOrLane();
+ if (via != 0) {
+ Position p = via->getShape()[0];
+ if ((*i).mySetRequest) {
+ glColor3d(0, .8, 0);
+ } else {
+ glColor3d(.8, 0, 0);
}
- const SUMOReal halfWidth = getVehicleType().getWidth() / 2.0 * exaggeration;
- GUITexturesHelper::drawTexturedBox(textureID, -halfWidth, 0, halfWidth, length);
- return true;
+ const SUMOTime leaveTime = (*i).myLink->getLeaveTime(
+ (*i).myArrivalTime, (*i).myArrivalSpeed, (*i).getLeaveSpeed(), getVehicleType().getLengthWithGap());
+ drawLinkItem(p, (*i).myArrivalTime, leaveTime, s.vehicleName.size / s.scale);
+ // the time slot that ego vehicle uses when checking opened may
+ // differ from the one it requests in setApproaching
+ MSLink::ApproachingVehicleInformation avi = (*i).myLink->getApproaching(this);
+ assert(avi.arrivalTime == (*i).myArrivalTime && avi.leavingTime == leaveTime);
+ UNUSED_PARAMETER(avi); // only used for assertion
}
}
- return false;
}
@@ -925,19 +279,19 @@ drawAction_drawBlinker(double dir, SUMOReal length) {
}
-inline void
-drawAction_drawVehicleBlinker(const GUIVehicle& veh, SUMOReal length) {
- if (!veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_RIGHT | MSVehicle::VEH_SIGNAL_BLINKER_LEFT | MSVehicle::VEH_SIGNAL_BLINKER_EMERGENCY)) {
+void
+GUIVehicle::drawAction_drawVehicleBlinker(SUMOReal length) const {
+ if (!signalSet(MSVehicle::VEH_SIGNAL_BLINKER_RIGHT | MSVehicle::VEH_SIGNAL_BLINKER_LEFT | MSVehicle::VEH_SIGNAL_BLINKER_EMERGENCY)) {
return;
}
- const double offset = MAX2(.5 * veh.getVehicleType().getWidth(), .4);
- if (veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_RIGHT)) {
+ const double offset = MAX2(.5 * getVehicleType().getWidth(), .4);
+ if (signalSet(MSVehicle::VEH_SIGNAL_BLINKER_RIGHT)) {
drawAction_drawBlinker(-offset, length);
}
- if (veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_LEFT)) {
+ if (signalSet(MSVehicle::VEH_SIGNAL_BLINKER_LEFT)) {
drawAction_drawBlinker(offset, length);;
}
- if (veh.signalSet(MSVehicle::VEH_SIGNAL_BLINKER_EMERGENCY)) {
+ if (signalSet(MSVehicle::VEH_SIGNAL_BLINKER_EMERGENCY)) {
drawAction_drawBlinker(-offset, length);
drawAction_drawBlinker(offset, length);
}
@@ -945,328 +299,30 @@ drawAction_drawVehicleBlinker(const GUIVehicle& veh, SUMOReal length) {
inline void
-drawAction_drawVehicleBrakeLight(const GUIVehicle& veh, SUMOReal length) {
- if (!veh.signalSet(MSVehicle::VEH_SIGNAL_BRAKELIGHT)) {
+GUIVehicle::drawAction_drawVehicleBrakeLight(SUMOReal length) const {
+ if (!signalSet(MSVehicle::VEH_SIGNAL_BRAKELIGHT)) {
return;
}
glColor3f(1.f, .2f, 0);
glPushMatrix();
- glTranslated(-veh.getVehicleType().getWidth() * 0.5, length, -0.1);
+ glTranslated(-getVehicleType().getWidth() * 0.5, length, -0.1);
GLHelper::drawFilledCircle(.5, 6);
glPopMatrix();
glPushMatrix();
- glTranslated(veh.getVehicleType().getWidth() * 0.5, length, -0.1);
+ glTranslated(getVehicleType().getWidth() * 0.5, length, -0.1);
GLHelper::drawFilledCircle(.5, 6);
glPopMatrix();
}
-
-void
-GUIVehicle::drawGL(const GUIVisualizationSettings& s) const {
- glPushName(getGlID());
- glPushMatrix();
- Position p1 = getPosition();
- // one seat in the center of the vehicle by default
- mySeatPositions[0] = myLane->geometryPositionAtOffset(myState.pos() - getVehicleType().getLength() / 2);
- glTranslated(p1.x(), p1.y(), getType());
- glRotated(getAngle(), 0, 0, 1);
- // set lane color
- setColor(s);
- // scale
- const SUMOReal upscale = s.vehicleSize.getExaggeration(s);
- glScaled(upscale, upscale, 1);
- /*
- MSLCM_DK2004 &m2 = static_cast<MSLCM_DK2004&>(veh->getLaneChangeModel());
- if((m2.getState()&LCA_URGENT)!=0) {
- glColor3d(1, .4, .4);
- } else if((m2.getState()&LCA_SPEEDGAIN)!=0) {
- glColor3d(.4, .4, 1);
- } else {
- glColor3d(.4, 1, .4);
- }
- */
- // draw the vehicle
- myCarriageLength = getVehicleType().getLength();
- switch (s.vehicleQuality) {
- case 0:
- drawAction_drawVehicleAsTrianglePlus();
- break;
- case 1:
- drawAction_drawVehicleAsBoxPlus();
- break;
- case 2:
- drawAction_drawVehicleAsPoly(s);
- break;
- case 3:
- default:
- // draw as image but take special care for drawing trains
- // fallback to simple shapes
- if (!drawAction_drawCarriageClass(s, getVehicleType().getGuiShape(), true)) {
- if (!drawAction_drawVehicleAsImage(s)) {
- drawAction_drawVehicleAsPoly(s);
- };
- }
- break;
- }
- if (s.drawMinGap) {
- const SUMOReal minGap = -getVehicleType().getMinGap();
- glColor3d(0., 1., 0.);
- glBegin(GL_LINES);
- glVertex2d(0., 0);
- glVertex2d(0., minGap);
- glVertex2d(-.5, minGap);
- glVertex2d(.5, minGap);
- glEnd();
- }
- MSDevice_BTreceiver* dev = static_cast<MSDevice_BTreceiver*>(getDevice(typeid(MSDevice_BTreceiver)));
- if (dev != 0 && s.showBTRange) {
- glColor3d(1., 0., 0.);
- GLHelper::drawOutlineCircle(dev->getRange(), dev->getRange() - .2, 32);
- }
- // draw the blinker and brakelights if wished
- if (s.showBlinker) {
- glTranslated(0, 0, .1);
- switch (getVehicleType().getGuiShape()) {
- case SVS_PEDESTRIAN:
- case SVS_BICYCLE:
- case SVS_ANT:
- case SVS_SHIP:
- case SVS_RAIL:
- case SVS_RAIL_CARGO:
- // only SVS_RAIL_CAR has blinkers and brake lights
- break;
- default:
- drawAction_drawVehicleBlinker(*this, myCarriageLength);
- drawAction_drawVehicleBrakeLight(*this, myCarriageLength);
- break;
- }
- }
- // draw the wish to change the lane
- if (s.drawLaneChangePreference) {
- /*
- if(gSelected.isSelected(GLO_VEHICLE, veh->getGlID())) {
- MSLCM_DK2004 &m = static_cast<MSLCM_DK2004&>(veh->getLaneChangeModel());
- glColor3d(.5, .5, 1);
- glBegin(GL_LINES);
- glVertex2f(0, 0);
- glVertex2f(m.getChangeProbability(), .5);
- glEnd();
-
- glColor3d(1, 0, 0);
- glBegin(GL_LINES);
- glVertex2f(0.1, 0);
- glVertex2f(0.1, m.myMaxJam1);
- glEnd();
-
- glColor3d(0, 1, 0);
- glBegin(GL_LINES);
- glVertex2f(-0.1, 0);
- glVertex2f(-0.1, m.myTDist);
- glEnd();
- }
- */
- }
- // draw best lanes
- /*
- if (true) {
- const MSLane &l = veh->getLane();
- SUMOReal r1 = veh->allowedContinuationsLength(&l, 0);
- SUMOReal r2 = l.getLeftLane()!=0 ? veh->allowedContinuationsLength(l.getLeftLane(), 0) : 0;
- SUMOReal r3 = l.getRightLane()!=0 ? veh->allowedContinuationsLength(l.getRightLane(), 0) : 0;
- SUMOReal mmax = MAX3(r1, r2, r3);
- glBegin(GL_LINES);
- glVertex2f(0, 0);
- glVertex2f(0, r1/mmax/2.);
- glEnd();
- glBegin(GL_LINES);
- glVertex2f(.4, 0);
- glVertex2f(.4, r2/mmax/2.);
- glEnd();
- glBegin(GL_LINES);
- glVertex2f(-.4, 0);
- glVertex2f(-.4, r3/mmax/2.);
- glEnd();
- }
- */
- glPopMatrix();
- const Position namePos = getPosition(-MIN2(getVehicleType().getLength() / 2, SUMOReal(5)));
- drawName(namePos, s.scale,
- getVehicleType().getGuiShape() == SVS_PEDESTRIAN ? s.personName : s.vehicleName);
- if (s.vehicleName.show && myParameter->line != "") {
- GLHelper::drawText("line:" + myParameter->line, namePos + Position(0, -0.6 * s.vehicleName.size / s.scale),
- GLO_MAX, s.vehicleName.size / s.scale, s.vehicleName.color);
- }
- glPopName();
- if (myPersonDevice != 0) {
- const std::vector<MSTransportable*>& ps = myPersonDevice->getPersons();
- size_t personIndex = 0;
- for (std::vector<MSTransportable*>::const_iterator i = ps.begin(); i != ps.end(); ++i) {
- GUIPerson* person = dynamic_cast<GUIPerson*>(*i);
- assert(person != 0);
- person->setPositionInVehicle(getSeatPosition(personIndex++));
- person->drawGL(s);
- }
- }
- if (myContainerDevice != 0) {
- const std::vector<MSTransportable*>& cs = myContainerDevice->getContainers();
- size_t containerIndex = 0;
- for (std::vector<MSTransportable*>::const_iterator i = cs.begin(); i != cs.end(); ++i) {
- GUIContainer* container = dynamic_cast<GUIContainer*>(*i);
- assert(container != 0);
- container->setPositionInVehicle(getSeatPosition(containerIndex++));
- container->drawGL(s);
- }
- }
-}
-
-
-void
-GUIVehicle::drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisualizationSettings& s) const {
- glPushName(getGlID());
- glPushMatrix();
- glTranslated(0, 0, getType() - .1); // don't draw on top of other cars
- if (hasActiveAddVisualisation(parent, VO_SHOW_BEST_LANES)) {
- drawBestLanes();
- }
- if (hasActiveAddVisualisation(parent, VO_SHOW_ROUTE)) {
- drawRoute(s, 0, 0.25);
- }
- if (hasActiveAddVisualisation(parent, VO_SHOW_ALL_ROUTES)) {
- if (getNumberReroutes() > 0) {
- const int noReroutePlus1 = getNumberReroutes() + 1;
- for (int i = noReroutePlus1 - 1; i >= 0; i--) {
- SUMOReal darken = SUMOReal(0.4) / SUMOReal(noReroutePlus1) * SUMOReal(i);
- drawRoute(s, i, darken);
- }
- } else {
- drawRoute(s, 0, 0.25);
- }
- }
- if (hasActiveAddVisualisation(parent, VO_SHOW_LFLINKITEMS)) {
- for (DriveItemVector::const_iterator i = myLFLinkLanes.begin(); i != myLFLinkLanes.end(); ++i) {
- if ((*i).myLink == 0) {
- continue;
- }
- MSLink* link = (*i).myLink;
- MSLane* via = link->getViaLaneOrLane();
- if (via != 0) {
- Position p = via->getShape()[0];
- if ((*i).mySetRequest) {
- glColor3d(0, .8, 0);
- } else {
- glColor3d(.8, 0, 0);
- }
- const SUMOTime leaveTime = (*i).myLink->getLeaveTime(
- (*i).myArrivalTime, (*i).myArrivalSpeed, (*i).getLeaveSpeed(), getVehicleType().getLengthWithGap());
- drawLinkItem(p, (*i).myArrivalTime, leaveTime, s.vehicleSize.getExaggeration(s));
- // the time slot that ego vehicle uses when checking opened may
- // differ from the one it requests in setApproaching
- MSLink::ApproachingVehicleInformation avi = (*i).myLink->getApproaching(this);
- assert(avi.arrivalTime == (*i).myArrivalTime && avi.leavingTime == leaveTime);
- UNUSED_PARAMETER(avi); // only used for assertion
- }
- }
- }
- glPopMatrix();
- glPopName();
-}
-
-
-void
-GUIVehicle::drawLinkItem(const Position& pos, SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal exagerate) {
- glTranslated(pos.x(), pos.y(), -.1);
- GLHelper::drawFilledCircle(1);
- std::string times = toString(STEPS2TIME(arrivalTime)) + "/" + toString(STEPS2TIME(leaveTime));
- GLHelper::drawText(times.c_str(), Position(), .1, 1.6 * exagerate, RGBColor::GREEN, 0);
- glTranslated(-pos.x(), -pos.y(), .1);
-}
-
-
-void
-GUIVehicle::setColor(const GUIVisualizationSettings& s) const {
- const GUIColorer& c = s.vehicleColorer;
- if (!setFunctionalColor(c.getActive(), this)) {
- GLHelper::setColor(c.getScheme().getColor(getColorValue(c.getActive())));
- }
-}
-
-
-bool
-GUIVehicle::setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh) {
- switch (activeScheme) {
- case 0: {
- if (veh->getParameter().wasSet(VEHPARS_COLOR_SET)) {
- GLHelper::setColor(veh->getParameter().color);
- return true;
- }
- if (veh->getVehicleType().wasSet(VTYPEPARS_COLOR_SET)) {
- GLHelper::setColor(veh->getVehicleType().getColor());
- return true;
- }
- if (&(veh->getRoute().getColor()) != &RGBColor::DEFAULT_COLOR) {
- GLHelper::setColor(veh->getRoute().getColor());
- return true;
- }
- return false;
- }
- case 2: {
- if (veh->getParameter().wasSet(VEHPARS_COLOR_SET)) {
- GLHelper::setColor(veh->getParameter().color);
- return true;
- }
- return false;
- }
- case 3: {
- if (veh->getVehicleType().wasSet(VTYPEPARS_COLOR_SET)) {
- GLHelper::setColor(veh->getVehicleType().getColor());
- return true;
- }
- return false;
- }
- case 4: {
- if (&(veh->getRoute().getColor()) != &RGBColor::DEFAULT_COLOR) {
- GLHelper::setColor(veh->getRoute().getColor());
- return true;
- }
- return false;
- }
- case 5: {
- Position p = veh->getRoute().getEdges()[0]->getLanes()[0]->getShape()[0];
- const Boundary& b = ((GUINet*) MSNet::getInstance())->getBoundary();
- Position center = b.getCenter();
- SUMOReal hue = 180. + atan2(center.x() - p.x(), center.y() - p.y()) * 180. / PI;
- SUMOReal sat = p.distanceTo(center) / center.distanceTo(Position(b.xmin(), b.ymin()));
- GLHelper::setColor(RGBColor::fromHSV(hue, sat, 1.));
- return true;
- }
- case 6: {
- Position p = veh->getRoute().getEdges().back()->getLanes()[0]->getShape()[-1];
- const Boundary& b = ((GUINet*) MSNet::getInstance())->getBoundary();
- Position center = b.getCenter();
- SUMOReal hue = 180. + atan2(center.x() - p.x(), center.y() - p.y()) * 180. / PI;
- SUMOReal sat = p.distanceTo(center) / center.distanceTo(Position(b.xmin(), b.ymin()));
- GLHelper::setColor(RGBColor::fromHSV(hue, sat, 1.));
- return true;
- }
- case 7: {
- Position pb = veh->getRoute().getEdges()[0]->getLanes()[0]->getShape()[0];
- Position pe = veh->getRoute().getEdges().back()->getLanes()[0]->getShape()[-1];
- const Boundary& b = ((GUINet*) MSNet::getInstance())->getBoundary();
- SUMOReal hue = 180. + atan2(pb.x() - pe.x(), pb.y() - pe.y()) * 180. / PI;
- Position minp(b.xmin(), b.ymin());
- Position maxp(b.xmax(), b.ymax());
- SUMOReal sat = pb.distanceTo(pe) / minp.distanceTo(maxp);
- GLHelper::setColor(RGBColor::fromHSV(hue, sat, 1.));
- return true;
- }
- case 24: { // color randomly (by pointer)
- const SUMOReal hue = (long)veh % 360; // [0-360]
- const SUMOReal sat = (((long)veh / 360) % 67) / 100.0 + 0.33; // [0.33-1]
- GLHelper::setColor(RGBColor::fromHSV(hue, sat, 1.));
- return true;
- }
+inline void
+GUIVehicle::drawAction_drawVehicleBlueLight() const {
+ if (signalSet(MSVehicle::VEH_SIGNAL_EMERGENCY_BLUE)) {
+ glPushMatrix();
+ glTranslated(0, 2.5, .5);
+ glColor3f(0, 0, 1);
+ GLHelper::drawFilledCircle(.5, 6);
+ glPopMatrix();
}
- return false;
}
@@ -1308,67 +364,13 @@ GUIVehicle::getColorValue(size_t activeScheme) const {
return getAcceleration();
case 23:
return getTimeGap();
+ case 24:
+ return STEPS2TIME(getDepartDelay());
}
return 0;
}
-// ------------ Additional visualisations
-bool
-GUIVehicle::hasActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) const {
- return myAdditionalVisualizations.find(parent) != myAdditionalVisualizations.end() && (myAdditionalVisualizations.find(parent)->second & which) != 0;
-}
-
-
-void
-GUIVehicle::addActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) {
- if (myAdditionalVisualizations.find(parent) == myAdditionalVisualizations.end()) {
- myAdditionalVisualizations[parent] = 0;
- }
- myAdditionalVisualizations[parent] |= which;
- parent->addAdditionalGLVisualisation(this);
-}
-
-
-void
-GUIVehicle::removeActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) {
- myAdditionalVisualizations[parent] &= ~which;
- parent->removeAdditionalGLVisualisation(this);
-}
-
-
-void
-GUIVehicle::drawRoute(const GUIVisualizationSettings& s, int routeNo, SUMOReal darken) const {
- setColor(s);
- GLdouble colors[4];
- glGetDoublev(GL_CURRENT_COLOR, colors);
- colors[0] -= darken;
- if (colors[0] < 0) {
- colors[0] = 0;
- }
- colors[1] -= darken;
- if (colors[1] < 0) {
- colors[1] = 0;
- }
- colors[2] -= darken;
- if (colors[2] < 0) {
- colors[2] = 0;
- }
- colors[3] -= darken;
- if (colors[3] < 0) {
- colors[3] = 0;
- }
- glColor3dv(colors);
- const SUMOReal exaggeration = s.vehicleSize.getExaggeration(s);
- if (routeNo == 0) {
- drawRouteHelper(*myRoute, exaggeration);
- return;
- }
- --routeNo; // only prior routes are stored
- drawRouteHelper(*myRoutes->getRoute(routeNo), exaggeration);
-}
-
-
void
GUIVehicle::drawBestLanes() const {
myLock.lock();
@@ -1425,6 +427,7 @@ GUIVehicle::drawRouteHelper(const MSRoute& r, SUMOReal exaggeration) const {
}
+
MSLane*
GUIVehicle::getPreviousLane(MSLane* current, int& furtherIndex) const {
if (furtherIndex < (int)myFurtherLanes.size()) {
@@ -1534,10 +537,9 @@ GUIVehicle::drawAction_drawRailCarriages(const GUIVisualizationSettings& s, SUMO
}
-const Position&
-GUIVehicle::getSeatPosition(size_t personIndex) const {
- /// if there are not enough seats in the vehicle people have to squeeze onto the last seat
- return mySeatPositions[(int)MIN2(personIndex, mySeatPositions.size() - 1)];
+SUMOReal
+GUIVehicle::getNaviDegree() const {
+ return GeomHelper::naviDegree(getAngle());
}
@@ -1555,15 +557,14 @@ GUIVehicle::computeSeats(const Position& front, const Position& back, int& requi
if (requiredSeats <= 0) {
return; // save some work
}
- const Line l(front, back);
- const SUMOReal length = l.length2D();
+ const SUMOReal length = front.distanceTo2D(back);
if (length < 4) {
// small vehicle, sit at the center
- mySeatPositions.push_back(l.getPositionAtDistance2D(length / 2));
+ mySeatPositions.push_back(PositionVector::positionAtOffset2D(front, back, length / 2));
requiredSeats--;
} else {
for (SUMOReal p = 2; p <= length - 1; p += 1) {
- mySeatPositions.push_back(l.getPositionAtDistance2D(p));
+ mySeatPositions.push_back(PositionVector::positionAtOffset2D(front, back, p));
requiredSeats--;
}
}
@@ -1618,8 +619,7 @@ GUIVehicle::selectBlockingFoes() const {
// the vehicle to enter the junction first has priority
const GUIVehicle* leader = dynamic_cast<const GUIVehicle*>(it->vehAndGap.first);
if (leader != 0) {
- if (leader->myLinkLeaders[dpi.myLink->getJunction()].count(getID()) == 0) {
- // leader isn't already following us, now we follow it
+ if (dpi.myLink->isLeader(this, leader)) {
gSelected.select(leader->getGlID());
}
} else {
diff --git a/src/guisim/GUIVehicle.h b/src/guisim/GUIVehicle.h
index 0be0529..62bf156 100644
--- a/src/guisim/GUIVehicle.h
+++ b/src/guisim/GUIVehicle.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIVehicle.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIVehicle.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A MSVehicle extended by some values for usage within the gui
/****************************************************************************/
@@ -34,23 +34,16 @@
#endif
#include <vector>
-#include <set>
#include <string>
-#include <utils/gui/globjects/GUIGlObject.h>
-#include <utils/common/RGBColor.h>
#include <utils/geom/PositionVector.h>
#include <microsim/MSVehicle.h>
-#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
-#include <utils/foxtools/MFXMutex.h>
-#include <utils/gui/settings/GUIPropertySchemeStorage.h>
+#include "GUIBaseVehicle.h"
// ===========================================================================
// class declarations
// ===========================================================================
class GUISUMOAbstractView;
-class GUIGLObjectPopupMenu;
-class MSDevice_Vehroutes;
// ===========================================================================
@@ -65,7 +58,7 @@ class MSDevice_Vehroutes;
* color of the vehicle which is available in different forms allowing an
* easier recognition of done actions such as lane changing.
*/
-class GUIVehicle : public MSVehicle, public GUIGlObject {
+class GUIVehicle : public MSVehicle, public GUIBaseVehicle {
public:
/** @brief Constructor
* @param[in] pars The vehicle description
@@ -81,83 +74,32 @@ public:
/// @brief destructor
~GUIVehicle();
-
- /// @name inherited from GUIGlObject
- //@{
-
- /** @brief Returns an own popup-menu
+ /** @brief Return current position (x/y, cartesian)
*
- * @param[in] app The application needed to build the popup-menu
- * @param[in] parent The parent window needed to build the popup-menu
- * @return The built popup-menu
- * @see GUIGlObject::getPopUpMenu
+ * @note implementation of abstract method does not work otherwise
*/
- GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent);
-
+ Position getPosition(const SUMOReal offset = 0) const {
+ return MSVehicle::getPosition(offset);
+ }
- /** @brief Returns an own parameter window
+ /** @brief Return current angle
*
- * @param[in] app The application needed to build the parameter window
- * @param[in] parent The parent window needed to build the parameter window
- * @return The built parameter window
- * @see GUIGlObject::getParameterWindow
+ * @note implementation of abstract method does not work otherwise
*/
- GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent);
-
-
- /** @brief Returns the boundary to which the view shall be centered in order to show the object
- *
- * @return The boundary the object is within
- * @see GUIGlObject::getCenteringBoundary
- */
- Boundary getCenteringBoundary() const;
-
-
- /** @brief Draws the object
- * @param[in] s The settings for the current view (may influence drawing)
- * @see GUIGlObject::drawGL
- */
- void drawGL(const GUIVisualizationSettings& s) const;
-
+ SUMOReal getAngle() const {
+ return MSVehicle::getAngle();
+ }
-
- /** @brief Draws additionally triggered visualisations
- * @param[in] parent The view
- * @param[in] s The settings for the current view (may influence drawing)
- */
- virtual void drawGLAdditional(GUISUMOAbstractView* const parent, const GUIVisualizationSettings& s) const;
- //@}
-
-
-
- /// @name Additional visualisations
- /// @{
-
- /** @brief Returns whether the named feature is enabled in the given view
- * @param[in] parent The view for which the feature may be enabled
- * @param[in] which The visualisation feature
- * @return see comment
- */
- bool hasActiveAddVisualisation(GUISUMOAbstractView* const parent, int which) const;
-
-
- /** @brief Adds the named visualisation feature to the given view
- * @param[in] parent The view for which the feature shall be enabled
- * @param[in] which The visualisation feature to enable
- * @see GUISUMOAbstractView::addAdditionalGLVisualisation
- */
- void addActiveAddVisualisation(GUISUMOAbstractView* const parent, int which);
-
-
- /** @brief Adds the named visualisation feature to the given view
- * @param[in] parent The view for which the feature shall be enabled
- * @param[in] which The visualisation feature to enable
- * @see GUISUMOAbstractView::removeAdditionalGLVisualisation
+ /** @brief Draws the route
+ * @param[in] r The route to draw
*/
- void removeActiveAddVisualisation(GUISUMOAbstractView* const parent, int which);
- /// @}
-
+ void drawRouteHelper(const MSRoute& r, SUMOReal exaggeration) const;
+ void drawAction_drawVehicleBlinker(SUMOReal length) const;
+ void drawAction_drawVehicleBrakeLight(SUMOReal length) const;
+ void drawAction_drawPersonsAndContainers(const GUIVisualizationSettings& s) const;
+ void drawAction_drawLinkItems(const GUIVisualizationSettings& s) const;
+ void drawAction_drawVehicleBlueLight() const;
/** @brief Returns the time since the last lane change in seconds
* @see MSVehicle::myLastLaneChangeOffset
@@ -166,99 +108,6 @@ public:
SUMOReal getLastLaneChangeOffset() const;
- /**
- * @class GUIVehiclePopupMenu
- *
- * A popup-menu for vehicles. In comparison to the normal popup-menu, this one
- * also allows to trigger further visualisations and to track the vehicle.
- */
- class GUIVehiclePopupMenu : public GUIGLObjectPopupMenu {
- FXDECLARE(GUIVehiclePopupMenu)
- public:
- /** @brief Constructor
- * @param[in] app The main window for instantiation of other windows
- * @param[in] parent The parent view for changing it
- * @param[in] o The object of interest
- * @param[in, out] additionalVisualizations Information which additional visualisations are enabled (per view)
- */
- GUIVehiclePopupMenu(GUIMainWindow& app,
- GUISUMOAbstractView& parent, GUIGlObject& o, std::map<GUISUMOAbstractView*, int>& additionalVisualizations);
-
- /// @brief Destructor
- ~GUIVehiclePopupMenu();
-
- /// @brief Called if all routes of the vehicle shall be shown
- long onCmdShowAllRoutes(FXObject*, FXSelector, void*);
- /// @brief Called if all routes of the vehicle shall be hidden
- long onCmdHideAllRoutes(FXObject*, FXSelector, void*);
- /// @brief Called if the current route of the vehicle shall be shown
- long onCmdShowCurrentRoute(FXObject*, FXSelector, void*);
- /// @brief Called if the current route of the vehicle shall be hidden
- long onCmdHideCurrentRoute(FXObject*, FXSelector, void*);
- /// @brief Called if the vehicle's best lanes shall be shown
- long onCmdShowBestLanes(FXObject*, FXSelector, void*);
- /// @brief Called if the vehicle's best lanes shall be hidden
- long onCmdHideBestLanes(FXObject*, FXSelector, void*);
- /// @brief Called if the vehicle shall be tracked
- long onCmdStartTrack(FXObject*, FXSelector, void*);
- /// @brief Called if the current shall not be tracked any longer
- long onCmdStopTrack(FXObject*, FXSelector, void*);
- /// @brief Called if all routes of the vehicle shall be shown
- long onCmdShowLFLinkItems(FXObject*, FXSelector, void*);
- /// @brief Called if all routes of the vehicle shall be hidden
- long onCmdHideLFLinkItems(FXObject*, FXSelector, void*);
- /// @brief Called when show a vehicles foes
- long onCmdShowFoes(FXObject*, FXSelector, void*);
-
- protected:
- /// @brief Information which additional visualisations are enabled (per view)
- std::map<GUISUMOAbstractView*, int>& myVehiclesAdditionalVisualizations;
- /// @brief Needed for parameterless instantiation
- std::map<GUISUMOAbstractView*, int> dummy;
-
- protected:
- /// @brief default constructor needed by FOX
- GUIVehiclePopupMenu() : myVehiclesAdditionalVisualizations(dummy) { }
-
- };
-
-
- /// @name Additional visualisations
- /// @{
-
- /** @brief Additional visualisation feature ids
- */
- enum VisualisationFeatures {
- /// @brief show vehicle's best lanes
- VO_SHOW_BEST_LANES = 1,
- /// @brief show vehicle's current route
- VO_SHOW_ROUTE = 2,
- /// @brief show all vehicle's routes
- VO_SHOW_ALL_ROUTES = 4,
- /// @brief track vehicle
- VO_TRACKED = 8,
- /// @brief LFLinkItems
- VO_SHOW_LFLINKITEMS = 16
- };
-
- /// @brief Enabled visualisations, per view
- std::map<GUISUMOAbstractView*, int> myAdditionalVisualizations;
-
-
- /** @brief Draws the route
- * @param[in] r The route to draw
- */
- void drawRouteHelper(const MSRoute& r, SUMOReal exaggeration) const;
-
-
- /** @brief Chooses the route to draw and draws it, darkening it as given
- * @param[in] s The visualisation settings, needed to determine the vehicle's color
- * @param[in] routeNo The route to show (0: the current, >0: prior)
- * @param[in] darken The amount to darken the route by
- */
- void drawRoute(const GUIVisualizationSettings& s, int routeNo, SUMOReal darken) const;
-
-
/** @brief Draws the vehicle's best lanes
*/
void drawBestLanes() const;
@@ -270,27 +119,16 @@ public:
/// @brief gets the color value according to the current scheme index
SUMOReal getColorValue(size_t activeScheme) const;
- /// @brief sets the color according to the current scheme index and some vehicle function
- static bool setFunctionalColor(size_t activeScheme, const MSBaseVehicle* veh);
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app, GUISUMOAbstractView& parent);
private:
- /// @brief sets the color according to the currente settings
- void setColor(const GUIVisualizationSettings& s) const;
-
-
- /// @name drawing helper methods
- /// @{
- static void drawPoly(double* poses, SUMOReal offset);
-
- void drawAction_drawVehicleAsBoxPlus() const;
- void drawAction_drawVehicleAsTrianglePlus() const;
- void drawAction_drawVehicleAsPoly(const GUIVisualizationSettings& s) const;
-
- /* @brief try to draw vehicle as raster image and return true if sucessful
- * @param[in] length The custom length of the vehicle
- * (defaults to the * length specified in the vehicle type if -1 is passed)
- */
- bool drawAction_drawVehicleAsImage(const GUIVisualizationSettings& s, SUMOReal length = -1) const;
/* @brief draw train with individual carriages. The number of carriages is
* determined from defaultLength of carriages and vehicle length
@@ -299,7 +137,7 @@ private:
int firstPassengerCarriage, bool asImage) const;
/// @}
- /// @brief draws the given guiShape if it has distinc carriages/modules and eturns true if so
+ /// @brief draws the given guiShape if it has distinct carriages/modules and returns true if so
bool drawAction_drawCarriageClass(const GUIVisualizationSettings& s, SUMOVehicleShape guiShape, bool asImage) const;
/* @brief return the previous lane in this vehicles route including internal lanes
@@ -308,8 +146,8 @@ private:
*/
MSLane* getPreviousLane(MSLane* current, int& furtherIndex) const;
- /// @brief returns the seat position for the person with the given index
- const Position& getSeatPosition(size_t personIndex) const;
+ /// @brief return the current angle in navigational degrees
+ SUMOReal getNaviDegree() const;
/// @brief return the number of passengers
int getNumPassengers() const;
@@ -320,20 +158,6 @@ private:
/// @brief retrieve information about the current stop state
std::string getStopInfo() const;
- static void drawLinkItem(const Position& pos, SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal exagerate);
-
-private:
- /// The mutex used to avoid concurrent updates of the vehicle buffer
- mutable MFXMutex myLock;
-
- /// Variable to set with the length of the last drawn carriage or the vehicle length
- mutable SUMOReal myCarriageLength;
-
- MSDevice_Vehroutes* myRoutes;
-
- /// @brief positions of seats in the vehicle (updated at every drawing step)
- mutable PositionVector mySeatPositions;
-
};
diff --git a/src/guisim/GUI_E2_ZS_Collector.cpp b/src/guisim/GUI_E2_ZS_Collector.cpp
index 117cc07..d3bc8f3 100644
--- a/src/guisim/GUI_E2_ZS_Collector.cpp
+++ b/src/guisim/GUI_E2_ZS_Collector.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Okt 2003
-/// @version $Id: GUI_E2_ZS_Collector.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUI_E2_ZS_Collector.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// The gui-version of the MS_E2_ZS_Collector
/****************************************************************************/
@@ -35,7 +35,6 @@
#include <utils/geom/PositionVector.h>
#include "GUI_E2_ZS_Collector.h"
#include <utils/gui/div/GLHelper.h>
-#include <utils/geom/Line.h>
#include <utils/geom/GeomHelper.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
#include <microsim/logging/FunctionBinding.h>
@@ -79,7 +78,6 @@ GUI_E2_ZS_Collector::MyWrapper::MyWrapper(GUI_E2_ZS_Collector& detector)
: GUIDetectorWrapper("E2 detector", detector.getID()),
myDetector(detector) {
const PositionVector& v = detector.getLane()->getShape();
- Line l(v.front(), v.back());
// build geometry
myFullGeometry = v.getSubpart(detector.getStartPos(), detector.getEndPos());
//
diff --git a/src/guisim/GUI_E2_ZS_Collector.h b/src/guisim/GUI_E2_ZS_Collector.h
index f51afe1..d00f6bd 100644
--- a/src/guisim/GUI_E2_ZS_Collector.h
+++ b/src/guisim/GUI_E2_ZS_Collector.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Okt 2003
-/// @version $Id: GUI_E2_ZS_Collector.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUI_E2_ZS_Collector.h 19173 2015-10-27 08:47:27Z behrisch $
///
// The gui-version of the MS_E2_ZS_Collector
/****************************************************************************/
@@ -33,11 +33,6 @@
#endif
#include <microsim/output/MSE2Collector.h>
-#include <microsim/MSNet.h>
-#include <utils/geom/Position.h>
-#include <utils/geom/PositionVector.h>
-#include <utils/common/VectorHelper.h>
-#include <utils/common/ValueSource.h>
#include "GUIDetectorWrapper.h"
diff --git a/src/guisim/GUI_E2_ZS_CollectorOverLanes.cpp b/src/guisim/GUI_E2_ZS_CollectorOverLanes.cpp
index a7755d1..19a11db 100644
--- a/src/guisim/GUI_E2_ZS_CollectorOverLanes.cpp
+++ b/src/guisim/GUI_E2_ZS_CollectorOverLanes.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Okt 2003
-/// @version $Id: GUI_E2_ZS_CollectorOverLanes.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUI_E2_ZS_CollectorOverLanes.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// The gui-version of a MS_E2_ZS_CollectorOverLanes.
/****************************************************************************/
@@ -34,10 +34,11 @@
#include <utils/gui/globjects/GUIGlObjectStorage.h>
#include <utils/geom/PositionVector.h>
#include <utils/gui/div/GLHelper.h>
-#include <utils/geom/Line.h>
#include <utils/geom/GeomHelper.h>
#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <microsim/MSLane.h>
#include <guisim/GUIEdge.h>
+#include "GUI_E2_ZS_Collector.h"
#include "GUI_E2_ZS_CollectorOverLanes.h"
#ifdef CHECK_MEMORY_LEAKS
diff --git a/src/guisim/GUI_E2_ZS_CollectorOverLanes.h b/src/guisim/GUI_E2_ZS_CollectorOverLanes.h
index d2b2ad1..90ed4fd 100644
--- a/src/guisim/GUI_E2_ZS_CollectorOverLanes.h
+++ b/src/guisim/GUI_E2_ZS_CollectorOverLanes.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Okt 2003
-/// @version $Id: GUI_E2_ZS_CollectorOverLanes.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUI_E2_ZS_CollectorOverLanes.h 19173 2015-10-27 08:47:27Z behrisch $
///
// The gui-version of a MS_E2_ZS_CollectorOverLanes.
/****************************************************************************/
@@ -33,16 +33,16 @@
#endif
#include <microsim/output/MS_E2_ZS_CollectorOverLanes.h>
-#include <microsim/MSNet.h>
-#include <utils/geom/Position.h>
-#include <utils/geom/PositionVector.h>
-#include <utils/common/VectorHelper.h>
-#include <utils/common/ValueSource.h>
-#include "GUI_E2_ZS_Collector.h"
#include "GUIDetectorWrapper.h"
// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUI_E2_ZS_Collector;
+
+
+// ===========================================================================
// class definitions
// ===========================================================================
/**
diff --git a/src/guisim/Makefile.am b/src/guisim/Makefile.am
index add2049..7c1c2a4 100644
--- a/src/guisim/Makefile.am
+++ b/src/guisim/Makefile.am
@@ -17,7 +17,8 @@ GUINet.cpp GUINet.h \
GUITrafficLightLogicWrapper.cpp GUITrafficLightLogicWrapper.h \
GUITriggeredRerouter.cpp GUITriggeredRerouter.h \
GUICalibrator.cpp GUICalibrator.h \
-GUIChrgStn.cpp GUIChrgStn.h \
+GUIChargingStation.cpp GUIChargingStation.h \
+GUIBaseVehicle.cpp GUIBaseVehicle.h \
GUIVehicle.cpp GUIVehicle.h GUIVehicleControl.cpp GUIVehicleControl.h \
GUI_E2_ZS_Collector.cpp GUI_E2_ZS_Collector.h \
GUI_E2_ZS_CollectorOverLanes.cpp GUI_E2_ZS_CollectorOverLanes.h
diff --git a/src/guisim/Makefile.in b/src/guisim/Makefile.in
index 8d0fa93..25ca4e2 100644
--- a/src/guisim/Makefile.in
+++ b/src/guisim/Makefile.in
@@ -108,8 +108,9 @@ am_libguisim_a_OBJECTS = GUIBusStop.$(OBJEXT) GUIContainer.$(OBJEXT) \
GUIPersonControl.$(OBJEXT) GUINet.$(OBJEXT) \
GUITrafficLightLogicWrapper.$(OBJEXT) \
GUITriggeredRerouter.$(OBJEXT) GUICalibrator.$(OBJEXT) \
- GUIChrgStn.$(OBJEXT) GUIVehicle.$(OBJEXT) \
- GUIVehicleControl.$(OBJEXT) GUI_E2_ZS_Collector.$(OBJEXT) \
+ GUIChargingStation.$(OBJEXT) GUIBaseVehicle.$(OBJEXT) \
+ GUIVehicle.$(OBJEXT) GUIVehicleControl.$(OBJEXT) \
+ GUI_E2_ZS_Collector.$(OBJEXT) \
GUI_E2_ZS_CollectorOverLanes.$(OBJEXT)
libguisim_a_OBJECTS = $(am_libguisim_a_OBJECTS)
AM_V_P = $(am__v_P_ at AM_V@)
@@ -355,7 +356,8 @@ GUINet.cpp GUINet.h \
GUITrafficLightLogicWrapper.cpp GUITrafficLightLogicWrapper.h \
GUITriggeredRerouter.cpp GUITriggeredRerouter.h \
GUICalibrator.cpp GUICalibrator.h \
-GUIChrgStn.cpp GUIChrgStn.h \
+GUIChargingStation.cpp GUIChargingStation.h \
+GUIBaseVehicle.cpp GUIBaseVehicle.h \
GUIVehicle.cpp GUIVehicle.h GUIVehicleControl.cpp GUIVehicleControl.h \
GUI_E2_ZS_Collector.cpp GUI_E2_ZS_Collector.h \
GUI_E2_ZS_CollectorOverLanes.cpp GUI_E2_ZS_CollectorOverLanes.h
@@ -410,9 +412,10 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIBaseVehicle.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIBusStop.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUICalibrator.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIChrgStn.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIChargingStation.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIContainer.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIContainerControl.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GUIContainerStop.Po at am__quote@
diff --git a/src/marouter/ROMAAssignments.cpp b/src/marouter/ROMAAssignments.cpp
index f0e5ae0..24e075d 100644
--- a/src/marouter/ROMAAssignments.cpp
+++ b/src/marouter/ROMAAssignments.cpp
@@ -4,7 +4,7 @@
/// @author Laura Bieker
/// @author Michael Behrisch
/// @date Feb 2013
-/// @version $Id: ROMAAssignments.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: ROMAAssignments.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Assignment methods
/****************************************************************************/
@@ -57,10 +57,10 @@ std::map<const ROEdge* const, SUMOReal> ROMAAssignments::myPenalties;
// method definitions
// ===========================================================================
-ROMAAssignments::ROMAAssignments(const SUMOTime begin, const SUMOTime end, const bool timeSplit,
- RONet& net, ODMatrix& matrix,
+ROMAAssignments::ROMAAssignments(const SUMOTime begin, const SUMOTime end, const bool additiveTraffic,
+ const SUMOReal adaptionFactor, RONet& net, ODMatrix& matrix,
SUMOAbstractRouter<ROEdge, ROVehicle>& router)
- : myBegin(begin), myEnd(end), myTimeSplit(timeSplit), myNet(net), myMatrix(matrix), myRouter(router) {
+ : myBegin(begin), myEnd(end), myAdditiveTraffic(additiveTraffic), myAdaptionFactor(adaptionFactor), myNet(net), myMatrix(matrix), myRouter(router) {
myDefaultVehicle = new ROVehicle(SUMOVehicleParameter(), 0, net.getVehicleTypeSecure(DEFAULT_VTYPE_ID), &net);
}
@@ -71,53 +71,106 @@ ROMAAssignments::~ROMAAssignments() {
// based on the definitions in PTV-Validate and in the VISUM-K�ln network
SUMOReal
+ROMAAssignments::getCapacity(const ROEdge* edge) {
+ if (edge->getFunc() == ROEdge::ET_DISTRICT) {
+ return 0;
+ }
+ const int roadClass = -edge->getPriority();
+ // TODO: differ road class 1 from the unknown road class 1!!!
+ if (edge->getLaneNo() == 0) {
+ // TAZ have no cost
+ return 0;
+ } else if (roadClass == 0 || roadClass == 1) {
+ return edge->getLaneNo() * 2000.; //CR13 in table.py
+ } else if (roadClass == 2 && edge->getSpeed() <= 11.) {
+ return edge->getLaneNo() * 1333.33; //CR5 in table.py
+ } else if (roadClass == 2 && edge->getSpeed() > 11. && edge->getSpeed() <= 16.) {
+ return edge->getLaneNo() * 1500.; //CR3 in table.py
+ } else if (roadClass == 2 && edge->getSpeed() > 16.) {
+ return edge->getLaneNo() * 2000.; //CR13 in table.py
+ } else if (roadClass == 3 && edge->getSpeed() <= 11.) {
+ return edge->getLaneNo() * 800.; //CR5 in table.py
+ } else if (roadClass == 3 && edge->getSpeed() > 11. && edge->getSpeed() <= 13.) {
+ return edge->getLaneNo() * 875.; //CR5 in table.py
+ } else if (roadClass == 3 && edge->getSpeed() > 13. && edge->getSpeed() <= 16.) {
+ return edge->getLaneNo() * 1500.; //CR4 in table.py
+ } else if (roadClass == 3 && edge->getSpeed() > 16.) {
+ return edge->getLaneNo() * 1800.; //CR13 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() <= 5.) {
+ return edge->getLaneNo() * 200.; //CR7 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 5. && edge->getSpeed() <= 7.) {
+ return edge->getLaneNo() * 412.5; //CR7 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 7. && edge->getSpeed() <= 9.) {
+ return edge->getLaneNo() * 600.; //CR6 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 9. && edge->getSpeed() <= 11.) {
+ return edge->getLaneNo() * 800.; //CR5 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 11. && edge->getSpeed() <= 13.) {
+ return edge->getLaneNo() * 1125.; //CR5 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 13. && edge->getSpeed() <= 16.) {
+ return edge->getLaneNo() * 1583.; //CR4 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 16. && edge->getSpeed() <= 18.) {
+ return edge->getLaneNo() * 1100.; //CR3 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 18. && edge->getSpeed() <= 22.) {
+ return edge->getLaneNo() * 1200.; //CR3 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 22. && edge->getSpeed() <= 26.) {
+ return edge->getLaneNo() * 1300.; //CR3 in table.py
+ } else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 26.) {
+ return edge->getLaneNo() * 1400.; //CR3 in table.py
+ }
+ return edge->getLaneNo() * 800.; //CR5 in table.py
+}
+
+
+// based on the definitions in PTV-Validate and in the VISUM-K�ln network
+SUMOReal
ROMAAssignments::capacityConstraintFunction(const ROEdge* edge, const SUMOReal flow) const {
if (edge->getFunc() == ROEdge::ET_DISTRICT) {
return 0;
}
const int roadClass = -edge->getPriority();
+ const SUMOReal capacity = getCapacity(edge);
// TODO: differ road class 1 from the unknown road class 1!!!
if (edge->getLaneNo() == 0) {
// TAZ have no cost
return 0;
} else if (roadClass == 0 || roadClass == 1) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 2000.*1.3)) * 2.); //CR13 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.3)) * 2.); //CR13 in table.py
} else if (roadClass == 2 && edge->getSpeed() <= 11.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1333.33 * 0.9)) * 3.); //CR5 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.9)) * 3.); //CR5 in table.py
} else if (roadClass == 2 && edge->getSpeed() > 11. && edge->getSpeed() <= 16.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1500.*1.)) * 2.); //CR3 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.)) * 2.); //CR3 in table.py
} else if (roadClass == 2 && edge->getSpeed() > 16.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 2000.*1.3)) * 2.); //CR13 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.3)) * 2.); //CR13 in table.py
} else if (roadClass == 3 && edge->getSpeed() <= 11.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 800.*0.9)) * 3.); //CR5 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.9)) * 3.); //CR5 in table.py
} else if (roadClass == 3 && edge->getSpeed() > 11. && edge->getSpeed() <= 13.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 875.*0.9)) * 3.); //CR5 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.9)) * 3.); //CR5 in table.py
} else if (roadClass == 3 && edge->getSpeed() > 13. && edge->getSpeed() <= 16.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.7 * (flow / (edge->getLaneNo() * 1500.*1.)) * 2.); //CR4 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.7 * (flow / (capacity * 1.)) * 2.); //CR4 in table.py
} else if (roadClass == 3 && edge->getSpeed() > 16.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1800.*1.3)) * 2.); //CR13 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.3)) * 2.); //CR13 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() <= 5.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 200.*0.5)) * 3.); //CR7 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.5)) * 3.); //CR7 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 5. && edge->getSpeed() <= 7.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 412.5 * 0.5)) * 3.); //CR7 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.5)) * 3.); //CR7 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 7. && edge->getSpeed() <= 9.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 600.*0.8)) * 3.); //CR6 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.8)) * 3.); //CR6 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 9. && edge->getSpeed() <= 11.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 800.*0.9)) * 3.); //CR5 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.9)) * 3.); //CR5 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 11. && edge->getSpeed() <= 13.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1125.*0.9)) * 3.); //CR5 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.9)) * 3.); //CR5 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 13. && edge->getSpeed() <= 16.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.7 * (flow / (edge->getLaneNo() * 1583.*1.)) * 2.); //CR4 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.7 * (flow / (capacity * 1.)) * 2.); //CR4 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 16. && edge->getSpeed() <= 18.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1100.*1.)) * 2.); //CR3 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.)) * 2.); //CR3 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 18. && edge->getSpeed() <= 22.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1200.*1.)) * 2.); //CR3 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.)) * 2.); //CR3 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 22. && edge->getSpeed() <= 26.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1300.*1.)) * 2.); //CR3 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.)) * 2.); //CR3 in table.py
} else if ((roadClass >= 4 || roadClass == -1) && edge->getSpeed() > 26.) {
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 1400.*1.)) * 2.); //CR3 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 1.)) * 2.); //CR3 in table.py
}
- return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (edge->getLaneNo() * 800.*0.9)) * 3.); //CR5 in table.py
+ return edge->getLength() / edge->getSpeed() * (1. + 1.*(flow / (capacity * 0.9)) * 3.); //CR5 in table.py
}
@@ -169,25 +222,59 @@ ROMAAssignments::resetFlows() {
void
ROMAAssignments::incremental(const int numIter) {
- for (int t = 0; t < numIter; t++) {
- for (std::vector<ODCell*>::const_iterator i = myMatrix.getCells().begin(); i != myMatrix.getCells().end(); i++) {
- ODCell* c = *i;
- ConstROEdgeVector edges;
- const SUMOReal linkFlow = c->vehicleNumber / numIter;
- const SUMOTime begin = myTimeSplit ? c->begin : myBegin;
- const SUMOTime end = myTimeSplit ? c->end : myEnd;
- myRouter.compute(myNet.getEdge(c->origin + "-source"), myNet.getEdge(c->destination + "-sink"), myDefaultVehicle, begin, edges);
- SUMOReal costs = 0.;
- for (ConstROEdgeVector::iterator e = edges.begin(); e != edges.end(); e++) {
- ROMAEdge* edge = static_cast<ROMAEdge*>(myNet.getEdge((*e)->getID()));
- const SUMOReal newFlow = edge->getFlow(STEPS2TIME(begin)) + linkFlow;
- edge->setFlow(STEPS2TIME(begin), STEPS2TIME(end), newFlow);
- const SUMOReal travelTime = capacityConstraintFunction(edge, newFlow);
- edge->addTravelTime(travelTime, STEPS2TIME(begin), STEPS2TIME(end));
- costs += travelTime;
+ SUMOTime lastBegin = -1;
+ std::vector<int> intervals;
+ int count = 0;
+ for (std::vector<ODCell*>::const_iterator i = myMatrix.getCells().begin(); i != myMatrix.getCells().end(); ++i) {
+ if ((*i)->begin != lastBegin) {
+ intervals.push_back(count);
+ lastBegin = (*i)->begin;
+ }
+ count++;
+ }
+ lastBegin = -1;
+ for (std::vector<int>::const_iterator offset = intervals.begin(); offset != intervals.end(); offset++) {
+ std::vector<ODCell*>::const_iterator end = myMatrix.getCells().end();
+ if (offset != intervals.end() - 1) {
+ end = myMatrix.getCells().begin() + (*(offset + 1));
+ }
+ const SUMOTime intervalStart = (*(myMatrix.getCells().begin() + (*offset)))->begin;
+ std::map<const ROMAEdge*, SUMOReal> loadedTravelTimes;
+ for (std::map<std::string, ROEdge*>::const_iterator i = myNet.getEdgeMap().begin(); i != myNet.getEdgeMap().end(); ++i) {
+ ROMAEdge* edge = static_cast<ROMAEdge*>(i->second);
+ if (edge->hasLoadedTravelTime(STEPS2TIME(intervalStart))) {
+ loadedTravelTimes[edge] = edge->getTravelTime(myDefaultVehicle, STEPS2TIME(intervalStart));
+ }
+ }
+ for (int t = 0; t < numIter; t++) {
+ for (std::vector<ODCell*>::const_iterator i = myMatrix.getCells().begin() + (*offset); i != end; i++) {
+ ODCell* const c = *i;
+ ConstROEdgeVector edges;
+ const SUMOReal linkFlow = c->vehicleNumber / numIter;
+ const SUMOTime begin = myAdditiveTraffic ? myBegin : c->begin;
+ const SUMOTime end = myAdditiveTraffic ? myEnd : c->end;
+ const SUMOReal intervalLengthInHours = STEPS2TIME(end - begin) / 3600.;
+ myRouter.compute(myNet.getEdge(c->origin + "-source"), myNet.getEdge(c->destination + "-sink"), myDefaultVehicle, begin, edges);
+ SUMOReal costs = 0.;
+ for (ConstROEdgeVector::iterator e = edges.begin(); e != edges.end(); e++) {
+ ROMAEdge* edge = static_cast<ROMAEdge*>(myNet.getEdge((*e)->getID()));
+ const SUMOReal newFlow = edge->getFlow(STEPS2TIME(begin)) + linkFlow;
+ edge->setFlow(STEPS2TIME(begin), STEPS2TIME(end), newFlow);
+ SUMOReal travelTime = capacityConstraintFunction(edge, newFlow / intervalLengthInHours);
+ if (lastBegin >= 0 && myAdaptionFactor > 0.) {
+ if (loadedTravelTimes.count(edge) != 0) {
+ travelTime = loadedTravelTimes[edge] * myAdaptionFactor + (1. - myAdaptionFactor) * travelTime;
+ } else {
+ travelTime = edge->getTravelTime(myDefaultVehicle, STEPS2TIME(lastBegin)) * myAdaptionFactor + (1. - myAdaptionFactor) * travelTime;
+ }
+ }
+ edge->addTravelTime(travelTime, STEPS2TIME(begin), STEPS2TIME(end));
+ costs += travelTime;
+ }
+ addRoute(edges, c->pathsVector, c->origin + c->destination + toString(c->pathsVector.size()), costs, linkFlow);
}
- addRoute(edges, c->pathsVector, c->origin + c->destination + toString(c->pathsVector.size()), costs, linkFlow);
}
+ lastBegin = intervalStart;
}
}
@@ -195,10 +282,20 @@ ROMAAssignments::incremental(const int numIter) {
void
ROMAAssignments::sue(const int maxOuterIteration, const int maxInnerIteration, const int kPaths, const SUMOReal penalty, const SUMOReal tolerance, const std::string /* routeChoiceMethod */) {
getKPaths(kPaths, penalty);
+ std::map<const SUMOReal, SUMOReal> intervals;
+ if (myAdditiveTraffic) {
+ intervals[STEPS2TIME(myBegin)] = STEPS2TIME(myEnd);
+ } else {
+ for (std::vector<ODCell*>::const_iterator i = myMatrix.getCells().begin(); i != myMatrix.getCells().end(); ++i) {
+ intervals[STEPS2TIME((*i)->begin)] = STEPS2TIME((*i)->end);
+ }
+ }
for (int outer = 0; outer < maxOuterIteration; outer++) {
for (int inner = 0; inner < maxInnerIteration; inner++) {
for (std::vector<ODCell*>::const_iterator i = myMatrix.getCells().begin(); i != myMatrix.getCells().end(); ++i) {
- ODCell* c = *i;
+ ODCell* const c = *i;
+ const SUMOTime begin = myAdditiveTraffic ? myBegin : c->begin;
+ const SUMOTime end = myAdditiveTraffic ? myEnd : c->end;
// update path cost
for (std::vector<RORoute*>::const_iterator j = c->pathsVector.begin(); j != c->pathsVector.end(); ++j) {
RORoute* r = *j;
@@ -214,38 +311,41 @@ ROMAAssignments::sue(const int maxOuterIteration, const int maxInnerIteration, c
// assign edge flow deltas
for (ConstROEdgeVector::const_iterator e = r->getEdgeVector().begin(); e != r->getEdgeVector().end(); e++) {
ROMAEdge* edge = static_cast<ROMAEdge*>(myNet.getEdge((*e)->getID()));
- edge->setHelpFlow(STEPS2TIME(myBegin), STEPS2TIME(myEnd), edge->getHelpFlow(STEPS2TIME(myBegin)) + pathFlow);
+ edge->setHelpFlow(STEPS2TIME(begin), STEPS2TIME(end), edge->getHelpFlow(STEPS2TIME(begin)) + pathFlow);
}
}
}
// calculate new edge flows and check for stability
int unstableEdges = 0;
- for (std::map<std::string, ROEdge*>::const_iterator i = myNet.getEdgeMap().begin(); i != myNet.getEdgeMap().end(); ++i) {
- ROMAEdge* edge = static_cast<ROMAEdge*>((*i).second);
- const SUMOReal oldFlow = edge->getFlow(STEPS2TIME(myBegin));
- SUMOReal newFlow = oldFlow;
- if (inner == 0 && outer == 0) {
- newFlow += edge->getHelpFlow(STEPS2TIME(myBegin));
- } else {
- newFlow += (edge->getHelpFlow(STEPS2TIME(myBegin)) - oldFlow) / (inner + 1);
- }
-// if not lohse:
- if (newFlow > 0.) {
- if (abs(newFlow - oldFlow) / newFlow > tolerance) {
- unstableEdges++;
+ for (std::map<const SUMOReal, SUMOReal>::const_iterator i = intervals.begin(); i != intervals.end(); ++i) {
+ const SUMOReal intervalLengthInHours = STEPS2TIME(i->second - i->first) / 3600.;
+ for (std::map<std::string, ROEdge*>::const_iterator e = myNet.getEdgeMap().begin(); e != myNet.getEdgeMap().end(); ++e) {
+ ROMAEdge* edge = static_cast<ROMAEdge*>(e->second);
+ const SUMOReal oldFlow = edge->getFlow(i->first);
+ SUMOReal newFlow = oldFlow;
+ if (inner == 0 && outer == 0) {
+ newFlow += edge->getHelpFlow(i->first);
+ } else {
+ newFlow += (edge->getHelpFlow(i->first) - oldFlow) / (inner + 1);
}
- } else if (newFlow == 0.) {
- if (oldFlow != 0. && (abs(newFlow - oldFlow) / oldFlow > tolerance)) {
+ // if not lohse:
+ if (newFlow > 0.) {
+ if (abs(newFlow - oldFlow) / newFlow > tolerance) {
+ unstableEdges++;
+ }
+ } else if (newFlow == 0.) {
+ if (oldFlow != 0. && (abs(newFlow - oldFlow) / oldFlow > tolerance)) {
+ unstableEdges++;
+ }
+ } else { // newFlow < 0.
unstableEdges++;
+ newFlow = 0.;
}
- } else { // newFlow < 0.
- unstableEdges++;
- newFlow = 0.;
+ edge->setFlow(i->first, i->second, newFlow);
+ const SUMOReal travelTime = capacityConstraintFunction(edge, newFlow / intervalLengthInHours);
+ edge->addTravelTime(travelTime, i->first, i->second);
+ edge->setHelpFlow(i->first, i->second, 0.);
}
- edge->setFlow(STEPS2TIME(myBegin), STEPS2TIME(myEnd), newFlow);
- const SUMOReal travelTime = capacityConstraintFunction(edge, newFlow);
- edge->addTravelTime(travelTime, STEPS2TIME(myBegin), STEPS2TIME(myEnd));
- edge->setHelpFlow(STEPS2TIME(myBegin), STEPS2TIME(myEnd), 0.);
}
// if stable break
if (unstableEdges == 0) {
diff --git a/src/marouter/ROMAAssignments.h b/src/marouter/ROMAAssignments.h
index b01d953..687fbc3 100644
--- a/src/marouter/ROMAAssignments.h
+++ b/src/marouter/ROMAAssignments.h
@@ -4,7 +4,7 @@
/// @author Laura Bieker
/// @author Michael Behrisch
/// @date Feb 2013
-/// @version $Id: ROMAAssignments.h 18675 2015-08-20 20:00:26Z behrisch $
+/// @version $Id: ROMAAssignments.h 19003 2015-10-02 14:41:41Z behrisch $
///
// Assignment methods
/****************************************************************************/
@@ -58,8 +58,8 @@ class ROVehicle;
class ROMAAssignments {
public:
/// Constructor
- ROMAAssignments(const SUMOTime begin, const SUMOTime end, const bool timeSplit,
- RONet& net, ODMatrix& matrix, SUMOAbstractRouter<ROEdge, ROVehicle>& router);
+ ROMAAssignments(const SUMOTime begin, const SUMOTime end, const bool additiveTraffic,
+ const SUMOReal adaptionFactor, RONet& net, ODMatrix& matrix, SUMOAbstractRouter<ROEdge, ROVehicle>& router);
/// Destructor
~ROMAAssignments();
@@ -68,7 +68,10 @@ public:
return myDefaultVehicle;
}
- // @brief calculate edge travel time with the given road class and max link speed
+ // @brief calculate edge capacity for the given edge
+ static SUMOReal getCapacity(const ROEdge* edge);
+
+ // @brief calculate edge travel time for the given edge and number of vehicles per hour
SUMOReal capacityConstraintFunction(const ROEdge* edge, const SUMOReal flow) const;
// @brief clear effort storage
@@ -132,7 +135,8 @@ private:
private:
const SUMOTime myBegin;
const SUMOTime myEnd;
- const bool myTimeSplit;
+ const bool myAdditiveTraffic;
+ const SUMOReal myAdaptionFactor;
RONet& myNet;
ODMatrix& myMatrix;
SUMOAbstractRouter<ROEdge, ROVehicle>& myRouter;
diff --git a/src/marouter/ROMAFrame.cpp b/src/marouter/ROMAFrame.cpp
index 79dea3a..c3df5de 100644
--- a/src/marouter/ROMAFrame.cpp
+++ b/src/marouter/ROMAFrame.cpp
@@ -5,7 +5,7 @@
/// @author Laura Bieker
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: ROMAFrame.cpp 18565 2015-07-14 10:06:34Z behrisch $
+/// @version $Id: ROMAFrame.cpp 19003 2015-10-02 14:41:41Z behrisch $
///
// Sets and checks options for ma-routing
/****************************************************************************/
@@ -81,10 +81,7 @@ ROMAFrame::addImportOptions() {
// register import options
oc.doRegister("output-file", 'o', new Option_FileName());
oc.addSynonyme("output-file", "output");
- oc.addDescription("output-file", "Output", "Write route distributions to FILE");
-
- oc.doRegister("flow-output", new Option_FileName());
- oc.addDescription("flow-output", "Output", "Writes flow definitions into FILE");
+ oc.addDescription("output-file", "Output", "Write flow definitions with route distributions to FILE");
oc.doRegister("ignore-vehicle-type", new Option_Bool(false));
oc.addSynonyme("ignore-vehicle-type", "no-vtype", true);
@@ -132,6 +129,9 @@ ROMAFrame::addImportOptions() {
oc.addSynonyme("weight-attribute", "measure", true);
oc.addDescription("weight-attribute", "Input", "Name of the xml attribute which gives the edge weight");
+ oc.doRegister("weight-adaption", new Option_Float(0.));
+ oc.addDescription("weight-adaption", "Input", "The travel time influence of prior intervals");
+
// register the time settings
oc.doRegister("begin", 'b', new Option_String("0", "TIME"));
oc.addDescription("begin", "Time", "Defines the begin time; Previous trips will be discarded");
@@ -212,8 +212,8 @@ ROMAFrame::addAssignmentOptions() {
oc.doRegister("timeline.day-in-hours", new Option_Bool(false));
oc.addDescription("timeline.day-in-hours", "Processing", "Uses STR as a 24h-timeline definition");
- oc.doRegister("timesplit", new Option_Bool(false));
- oc.addDescription("timesplit", "Processing", "Do separate assignments for each time slot");
+ oc.doRegister("additive-traffic", new Option_Bool(false));
+ oc.addDescription("additive-traffic", "Processing", "Keep traffic flows of all time slots in the net");
// register macroscopic SUE-settings
oc.doRegister("assignment-method", new Option_String("incremental"));
@@ -287,7 +287,7 @@ ROMAFrame::checkOptions() {
WRITE_ERROR("invalid assignment method");
return false;
}
- if (oc.getString("route-choice-method") != "gawron" && oc.getString("route-choice-method") != "logit" && oc.getString("route-choice-methods") != "lohse") {
+ if (oc.getString("route-choice-method") != "gawron" && oc.getString("route-choice-method") != "logit" && oc.getString("route-choice-method") != "lohse") {
WRITE_ERROR("invalid route choice method");
return false;
}
diff --git a/src/marouter/marouter_main.cpp b/src/marouter/marouter_main.cpp
index 5776fcd..d9e02c9 100644
--- a/src/marouter/marouter_main.cpp
+++ b/src/marouter/marouter_main.cpp
@@ -5,7 +5,7 @@
/// @author Laura Bieker
/// @author Michael Behrisch
/// @date Thu, 06 Jun 2002
-/// @version $Id: marouter_main.cpp 18675 2015-08-20 20:00:26Z behrisch $
+/// @version $Id: marouter_main.cpp 19003 2015-10-02 14:41:41Z behrisch $
///
// Main for MAROUTER
/****************************************************************************/
@@ -98,14 +98,20 @@ void
initNet(RONet& net, ROLoader& loader, OptionsCont& oc) {
// load the net
ROMAEdgeBuilder builder;
- ROEdge::setGlobalOptions(oc.getBool("weights.expand"), oc.getBool("weights.expand"), oc.getBool("weights.interpolate"), false);
+ ROEdge::setGlobalOptions(oc.getBool("weights.interpolate"), false);
loader.loadNet(net, builder);
+ // initialize the travel times
+ /* const SUMOTime begin = string2time(oc.getString("begin"));
+ const SUMOTime end = string2time(oc.getString("end"));
+ for (std::map<std::string, ROEdge*>::const_iterator i = net.getEdgeMap().begin(); i != net.getEdgeMap().end(); ++i) {
+ (*i).second->addTravelTime(STEPS2TIME(begin), STEPS2TIME(end), (*i).second->getLength() / (*i).second->getSpeed());
+ }*/
// load the weights when wished/available
if (oc.isSet("weight-files")) {
- loader.loadWeights(net, "weight-files", oc.getString("weight-attribute"), false);
+ loader.loadWeights(net, "weight-files", oc.getString("weight-attribute"), false, oc.getBool("weights.expand"));
}
if (oc.isSet("lane-weight-files")) {
- loader.loadWeights(net, "lane-weight-files", oc.getString("weight-attribute"), true);
+ loader.loadWeights(net, "lane-weight-files", oc.getString("weight-attribute"), true, oc.getBool("weights.expand"));
}
}
@@ -149,8 +155,13 @@ writeInterval(OutputDevice& dev, const SUMOTime begin, const SUMOTime end, const
ROMAEdge* edge = static_cast<ROMAEdge*>(i->second);
if (edge->getFunc() == ROEdge::ET_NORMAL) {
dev.openTag(SUMO_TAG_EDGE).writeAttr(SUMO_ATTR_ID, edge->getID());
- dev.writeAttr("traveltime", edge->getTravelTime(veh, STEPS2TIME(begin)));
- dev.writeAttr("entered", edge->getFlow(STEPS2TIME(begin))).closeTag();
+ const SUMOReal traveltime = edge->getTravelTime(veh, STEPS2TIME(begin));
+ const SUMOReal flow = edge->getFlow(STEPS2TIME(begin));
+ dev.writeAttr("traveltime", traveltime);
+ dev.writeAttr("speed", edge->getLength() / traveltime);
+ dev.writeAttr("entered", flow);
+ dev.writeAttr("flowCapacityRatio", 100. * flow / ROMAAssignments::getCapacity(edge));
+ dev.closeTag();
}
}
dev.closeTag();
@@ -265,15 +276,15 @@ computeRoutes(RONet& net, OptionsCont& oc, ODMatrix& matrix) {
}
}
// prepare the output
- net.openOutput(oc.isSet("output-file") ? oc.getString("output-file") : "",
- oc.isSet("flow-output") ? oc.getString("flow-output") : "", "");
+ net.openOutput(oc.isSet("output-file") ? oc.getString("output-file") : "", "", "");
// process route definitions
try {
if (oc.isSet("timeline")) {
matrix.applyCurve(matrix.parseTimeLine(oc.getStringVector("timeline"), oc.getBool("timeline.day-in-hours")));
}
+ matrix.sortByBeginTime();
ROVehicle defaultVehicle(SUMOVehicleParameter(), 0, net.getVehicleTypeSecure(DEFAULT_VTYPE_ID), &net);
- ROMAAssignments a(begin, end, oc.getBool("timesplit"), net, matrix, *router);
+ ROMAAssignments a(begin, end, oc.getBool("additive-traffic"), oc.getFloat("weight-adaption"), net, matrix, *router);
a.resetFlows();
const std::string assignMethod = oc.getString("assignment-method");
if (assignMethod == "incremental") {
@@ -286,19 +297,6 @@ computeRoutes(RONet& net, OptionsCont& oc, ODMatrix& matrix) {
bool haveOutput = false;
OutputDevice* dev = net.getRouteOutput();
if (dev != 0) {
- for (std::vector<ODCell*>::const_iterator i = matrix.getCells().begin(); i != matrix.getCells().end(); ++i) {
- const ODCell* const c = *i;
- dev->openTag(SUMO_TAG_ROUTE_DISTRIBUTION).writeAttr(SUMO_ATTR_ID, c->origin + "_" + c->destination + "_" + time2string(c->begin) + "_" + time2string(c->end));
- for (std::vector<RORoute*>::const_iterator j = c->pathsVector.begin(); j != c->pathsVector.end(); ++j) {
- (*j)->setCosts(router->recomputeCosts((*j)->getEdgeVector(), &defaultVehicle, begin));
- (*j)->writeXMLDefinition(*dev, 0, true, false);
- }
- dev->closeTag();
- }
- haveOutput = true;
- }
- dev = net.getRouteOutput(true);
- if (dev != 0) {
int num = 0;
for (std::vector<ODCell*>::const_iterator i = matrix.getCells().begin(); i != matrix.getCells().end(); ++i) {
const ODCell* const c = *i;
@@ -334,7 +332,9 @@ computeRoutes(RONet& net, OptionsCont& oc, ODMatrix& matrix) {
haveOutput = true;
}
if (OutputDevice::createDeviceByOption("netload-output", "meandata")) {
- if (oc.getBool("timesplit")) {
+ if (oc.getBool("additive-traffic")) {
+ writeInterval(OutputDevice::getDeviceByOption("netload-output"), begin, end, net, a.getDefaultVehicle());
+ } else {
SUMOTime lastCell = 0;
for (std::vector<ODCell*>::const_iterator i = matrix.getCells().begin(); i != matrix.getCells().end(); ++i) {
if ((*i)->end > lastCell) {
@@ -345,8 +345,6 @@ computeRoutes(RONet& net, OptionsCont& oc, ODMatrix& matrix) {
for (SUMOTime start = begin; start < MIN2(end, lastCell); start += interval) {
writeInterval(OutputDevice::getDeviceByOption("netload-output"), start, start + interval, net, a.getDefaultVehicle());
}
- } else {
- writeInterval(OutputDevice::getDeviceByOption("netload-output"), begin, end, net, a.getDefaultVehicle());
}
haveOutput = true;
}
diff --git a/src/microsim/MSBaseVehicle.cpp b/src/microsim/MSBaseVehicle.cpp
index d6af7b2..f73c084 100644
--- a/src/microsim/MSBaseVehicle.cpp
+++ b/src/microsim/MSBaseVehicle.cpp
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date Mon, 8 Nov 2010
-/// @version $Id: MSBaseVehicle.cpp 18501 2015-06-24 10:03:39Z behrisch $
+/// @version $Id: MSBaseVehicle.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A base class for vehicle implementations
/****************************************************************************/
@@ -71,6 +71,7 @@ MSBaseVehicle::MSBaseVehicle(SUMOVehicleParameter* pars, const MSRoute* route,
myMoveReminders(0),
myDeparture(NOT_YET_DEPARTED),
myArrivalPos(-1),
+ myArrivalLane(-1),
myNumberReroutes(0)
#ifdef _DEBUG
, myTraceMoveReminders(myShallTraceMoveReminders.count(pars->id) > 0)
@@ -84,7 +85,7 @@ MSBaseVehicle::MSBaseVehicle(SUMOVehicleParameter* pars, const MSRoute* route,
}
myRoute->addReference();
if (!pars->wasSet(VEHPARS_FORCE_REROUTE)) {
- calculateArrivalPos();
+ calculateArrivalParams();
}
}
@@ -169,7 +170,7 @@ MSBaseVehicle::reroute(SUMOTime t, SUMOAbstractRouter<MSEdge, SUMOVehicle>& rout
bool
MSBaseVehicle::replaceRouteEdges(ConstMSEdgeVector& edges, bool onInit) {
if (edges.empty()) {
- WRITE_WARNING("No route for vehicle '" + getID() + "' found" + (onInit ? " (skipping vehicle)." : "."));
+ WRITE_WARNING("No route for vehicle '" + getID() + "' found.");
return false;
}
// build a new id, first
@@ -194,7 +195,7 @@ MSBaseVehicle::replaceRouteEdges(ConstMSEdgeVector& edges, bool onInit) {
if (edges == myRoute->getEdges()) {
if (onInit) {
// if edges = 'from to' we still need to calculate the arrivalPos once
- calculateArrivalPos();
+ calculateArrivalParams();
}
return true;
}
@@ -224,7 +225,7 @@ MSBaseVehicle::replaceRouteEdges(ConstMSEdgeVector& edges, bool onInit) {
#endif
return false;
}
- calculateArrivalPos();
+ calculateArrivalParams();
return true;
}
@@ -273,7 +274,7 @@ MSBaseVehicle::hasValidRoute(std::string& msg) const {
// check connectivity, first
for (MSRouteIterator e = myCurrEdge; e != last; ++e) {
if ((*e)->allowedLanes(**(e + 1), myType->getVehicleClass()) == 0) {
- msg = "No connection between '" + (*e)->getID() + "' and '" + (*(e + 1))->getID() + "'.";
+ msg = "No connection between edge '" + (*e)->getID() + "' and edge '" + (*(e + 1))->getID() + "'.";
return false;
}
}
@@ -339,8 +340,9 @@ MSBaseVehicle::activateReminders(const MSMoveReminder::Notification reason) {
void
-MSBaseVehicle::calculateArrivalPos() {
- const SUMOReal lastLaneLength = (myRoute->getLastEdge()->getLanes())[0]->getLength();
+MSBaseVehicle::calculateArrivalParams() {
+ const std::vector<MSLane*>& lanes = myRoute->getLastEdge()->getLanes();
+ const SUMOReal lastLaneLength = lanes[0]->getLength();
switch (myParameter->arrivalPosProcedure) {
case ARRIVAL_POS_GIVEN:
if (fabs(myParameter->arrivalPos) > lastLaneLength) {
@@ -359,6 +361,20 @@ MSBaseVehicle::calculateArrivalPos() {
myArrivalPos = lastLaneLength;
break;
}
+ if (myParameter->arrivalLaneProcedure == ARRIVAL_LANE_GIVEN) {
+ if (myParameter->arrivalLane >= (int)lanes.size() || !lanes[myParameter->arrivalLane]->allowsVehicleClass(myType->getVehicleClass())) {
+ WRITE_WARNING("Vehicle '" + getID() + "' will not be able to arrive at the given lane '" + myRoute->getLastEdge()->getID() + "_" + toString(myParameter->arrivalLane) + "'!");
+ }
+ myArrivalLane = MIN2(myParameter->arrivalLane, (int)(lanes.size() - 1));
+ }
+ if (myParameter->arrivalSpeedProcedure == ARRIVAL_SPEED_GIVEN) {
+ for (std::vector<MSLane*>::const_iterator l = lanes.begin(); l != lanes.end(); ++l) {
+ if (myParameter->arrivalSpeed <= (*l)->getVehicleMaxSpeed(this)) {
+ return;
+ }
+ }
+ WRITE_WARNING("Vehicle '" + getID() + "' will not be able to arrive with the given speed!");
+ }
}
diff --git a/src/microsim/MSBaseVehicle.h b/src/microsim/MSBaseVehicle.h
index 1d6cec7..e25b4b6 100644
--- a/src/microsim/MSBaseVehicle.h
+++ b/src/microsim/MSBaseVehicle.h
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Mon, 8 Nov 2010
-/// @version $Id: MSBaseVehicle.h 18663 2015-08-19 13:02:24Z namdre $
+/// @version $Id: MSBaseVehicle.h 19380 2015-11-18 20:31:19Z namdre $
///
// A base class for vehicle implementations
/****************************************************************************/
@@ -51,6 +51,9 @@
*/
class MSBaseVehicle : public SUMOVehicle {
public:
+
+ friend class GUIBaseVehicle;
+
/** @brief Constructor
* @param[in] pars The vehicle description
* @param[in] route The vehicle's route
@@ -200,6 +203,13 @@ public:
return myDeparture;
}
+ /** @brief Returns the depart delay */
+ SUMOTime getDepartDelay() const {
+ return getDeparture() - getParameter().depart;
+ }
+
+
+
/** @brief Returns this vehicle's desired arrivalPos for its current route
* (may change on reroute)
* @return This vehicle's real arrivalPos
@@ -327,9 +337,9 @@ public:
protected:
- /** @brief (Re-)Calculates the arrival position from the vehicle parameters
+ /** @brief (Re-)Calculates the arrival position and lane from the vehicle parameters
*/
- void calculateArrivalPos();
+ void calculateArrivalParams();
/** @brief Returns the list of still pending stop edges
*/
@@ -371,6 +381,9 @@ protected:
/// the position on the destination lane where the vehicle stops
SUMOReal myArrivalPos;
+ /// the position on the destination lane where the vehicle stops
+ int myArrivalLane;
+
/// @brief The number of reroutings
unsigned int myNumberReroutes;
diff --git a/src/microsim/MSBitSetLogic.h b/src/microsim/MSBitSetLogic.h
index 4f545e3..7cccd69 100644
--- a/src/microsim/MSBitSetLogic.h
+++ b/src/microsim/MSBitSetLogic.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Wed, 12 Dez 2001
-/// @version $Id: MSBitSetLogic.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSBitSetLogic.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Container for holding a right-of-way matrix
/****************************************************************************/
@@ -68,7 +68,7 @@ public:
MSBitSetLogic(unsigned int nLinks,
Logic* logic,
Foes* foes,
- std::bitset<64> conts)
+ std::bitset<SUMO_MAX_CONNECTIONS> conts)
: MSJunctionLogic(nLinks), myLogic(logic),
myInternalLinksFoes(foes), myConts(conts) {}
@@ -110,7 +110,7 @@ private:
/// internal lanes logic
Foes* myInternalLinksFoes;
- std::bitset<64> myConts;
+ std::bitset<SUMO_MAX_CONNECTIONS> myConts;
private:
/// @brief Invalidated copy constructor.
@@ -122,10 +122,10 @@ private:
};
-/** To make things easier we use a fixed size. 64 will be sufficient even for
- pathological junctions. If it will consume to much space, reduce it to 32.
+/** To make things easier we use a fixed size. SUMO_MAX_CONNECTIONS will hopefully be sufficient even for
+ large asian junctions.
So, here comes the type which should be used by the netbuilder. */
-typedef MSBitSetLogic< 64 > MSBitsetLogic;
+typedef MSBitSetLogic<SUMO_MAX_CONNECTIONS> MSBitsetLogic;
#endif
diff --git a/src/microsim/MSCModel_NonInteracting.cpp b/src/microsim/MSCModel_NonInteracting.cpp
index 579bea9..f41c9f1 100644
--- a/src/microsim/MSCModel_NonInteracting.cpp
+++ b/src/microsim/MSCModel_NonInteracting.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Tue, 29 July 2014
-/// @version $Id: MSCModel_NonInteracting.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSCModel_NonInteracting.cpp 19230 2015-10-30 21:59:38Z behrisch $
///
// The container following model for tranship (prototype)
/****************************************************************************/
@@ -31,6 +31,7 @@
#include <math.h>
#include <algorithm>
#include <utils/common/RandHelper.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/options/OptionsCont.h>
#include <microsim/MSNet.h>
#include <microsim/MSEdge.h>
@@ -122,10 +123,9 @@ CState::getPosition(const MSContainer::MSContainerStage_Tranship& stage, SUMOTim
SUMOReal
CState::getAngle(const MSContainer::MSContainerStage_Tranship& stage, SUMOTime now) const {
- //todo: change angle by 90 degree
- SUMOReal angle = stage.getEdgeAngle(stage.getEdge(), getEdgePos(stage, now)) + (myCurrentEndPos < myCurrentBeginPos ? 180 : 0);
- if (angle > 180) {
- angle -= 360;
+ SUMOReal angle = stage.getEdgeAngle(stage.getEdge(), getEdgePos(stage, now)) + (myCurrentEndPos < myCurrentBeginPos ? 1.5 * M_PI : 0.5 * M_PI);
+ if (angle > M_PI) {
+ angle -= 2 * M_PI;
}
return angle;
}
diff --git a/src/microsim/MSContainer.cpp b/src/microsim/MSContainer.cpp
index 62bfc5a..a39243b 100644
--- a/src/microsim/MSContainer.cpp
+++ b/src/microsim/MSContainer.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Thu, 12 Jun 2014
-/// @version $Id: MSContainer.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSContainer.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The class for modelling container-movements
/****************************************************************************/
@@ -34,6 +34,7 @@
#include <utils/iodevices/OutputDevice.h>
#include <utils/options/OptionsCont.h>
#include <utils/common/ToString.h>
+#include <utils/geom/GeomHelper.h>
#include "MSNet.h"
#include "MSEdge.h"
#include "MSLane.h"
@@ -60,30 +61,34 @@ const SUMOReal MSContainer::ROADSIDE_OFFSET(3);
* MSContainer::MSContainerStage_Driving - methods
* ----------------------------------------------------------------------- */
MSContainer::MSContainerStage_Driving::MSContainerStage_Driving(const MSEdge& destination,
- MSStoppingPlace* toCS, const std::vector<std::string>& lines)
- : MSTransportable::Stage(destination, DRIVING), myLines(lines.begin(), lines.end()),
- myVehicle(0), myDestinationContainerStop(toCS) {}
+ MSStoppingPlace* toStop, const SUMOReal arrivalPos, const std::vector<std::string>& lines)
+ : MSTransportable::Stage(destination, toStop, arrivalPos, DRIVING), myLines(lines.begin(), lines.end()),
+ myVehicle(0) {}
MSContainer::MSContainerStage_Driving::~MSContainerStage_Driving() {}
void
-MSContainer::MSContainerStage_Driving::proceed(MSNet* net, MSTransportable* container, SUMOTime now,
- MSEdge* previousEdge, const SUMOReal at) {
- myWaitingEdge = previousEdge;
- myWaitingPos = at;
+MSContainer::MSContainerStage_Driving::proceed(MSNet* net, MSTransportable* container, SUMOTime now, Stage* previous) {
+ if (previous->getDestinationStop() != 0) {
+ // the arrival stop may have an access point
+ myWaitingEdge = &previous->getDestinationStop()->getLane().getEdge();
+ } else {
+ myWaitingEdge = previous->getEdge();
+ }
+ myWaitingPos = previous->getEdgePos(now);
myWaitingSince = now;
- SUMOVehicle* availableVehicle = net->getVehicleControl().getWaitingVehicle(previousEdge, myLines, myWaitingPos, container->getID());
+ SUMOVehicle* availableVehicle = net->getVehicleControl().getWaitingVehicle(myWaitingEdge, myLines, myWaitingPos, container->getID());
if (availableVehicle != 0 && availableVehicle->getParameter().departProcedure == DEPART_CONTAINER_TRIGGERED) {
myVehicle = availableVehicle;
- previousEdge->removeContainer(container);
+ myWaitingEdge->removeContainer(container);
myVehicle->addContainer(container);
net->getInsertionControl().add(myVehicle);
- net->getVehicleControl().removeWaiting(previousEdge, myVehicle);
+ net->getVehicleControl().removeWaiting(myWaitingEdge, myVehicle);
net->getVehicleControl().unregisterOneWaitingForContainer();
} else {
- net->getContainerControl().addWaiting(previousEdge, container);
- previousEdge->addContainer(container);
+ net->getContainerControl().addWaiting(myWaitingEdge, container);
+ myWaitingEdge->addContainer(container);
}
}
@@ -130,7 +135,7 @@ MSContainer::MSContainerStage_Driving::getAngle(SUMOTime /* now */) const {
return 0;
}
}
- return getEdgeAngle(myWaitingEdge, myWaitingPos) + 90;
+ return getEdgeAngle(myWaitingEdge, myWaitingPos) + M_PI / 2.;
}
bool
@@ -191,13 +196,11 @@ MSContainer::MSContainerStage_Driving::endEventOutput(const MSTransportable& con
* ----------------------------------------------------------------------- */
MSContainer::MSContainerStage_Waiting::MSContainerStage_Waiting(const MSEdge& destination,
SUMOTime duration, SUMOTime until, SUMOReal pos, const std::string& actType) :
- MSTransportable::Stage(destination, WAITING),
+ MSTransportable::Stage(destination, 0, SUMOVehicleParameter::interpretEdgePos(
+ pos, destination.getLength(), SUMO_ATTR_DEPARTPOS, "container stopping at " + destination.getID()), WAITING),
myWaitingDuration(duration),
myWaitingUntil(until),
- myActType(actType),
- myStartPos(pos) {
- myStartPos = SUMOVehicleParameter::interpretEdgePos(
- myStartPos, myDestination.getLength(), SUMO_ATTR_DEPARTPOS, "container stopping at " + myDestination.getID());
+ myActType(actType) {
}
MSContainer::MSContainerStage_Waiting::~MSContainerStage_Waiting() {}
@@ -214,7 +217,7 @@ MSContainer::MSContainerStage_Waiting::getFromEdge() const {
SUMOReal
MSContainer::MSContainerStage_Waiting::getEdgePos(SUMOTime /* now */) const {
- return myStartPos;
+ return myArrivalPos;
}
SUMOTime
@@ -224,12 +227,12 @@ MSContainer::MSContainerStage_Waiting::getUntil() const {
Position
MSContainer::MSContainerStage_Waiting::getPosition(SUMOTime /* now */) const {
- return getEdgePosition(&myDestination, myStartPos, ROADSIDE_OFFSET);
+ return getEdgePosition(&myDestination, myArrivalPos, ROADSIDE_OFFSET);
}
SUMOReal
MSContainer::MSContainerStage_Waiting::getAngle(SUMOTime /* now */) const {
- return getEdgeAngle(&myDestination, myStartPos) - 180;
+ return getEdgeAngle(&myDestination, myArrivalPos) + M_PI;
}
SUMOTime
@@ -248,9 +251,8 @@ MSContainer::MSContainerStage_Waiting::getDepartContainerStop() const {
}
void
-MSContainer::MSContainerStage_Waiting::proceed(MSNet* net, MSTransportable* container, SUMOTime now,
- MSEdge* previousEdge, const SUMOReal /* at */) {
- previousEdge->addContainer(container);
+MSContainer::MSContainerStage_Waiting::proceed(MSNet* net, MSTransportable* container, SUMOTime now, Stage* previous) {
+ previous->getEdge()->addContainer(container);
myWaitingStart = now;
const SUMOTime until = MAX3(now, now + myWaitingDuration, myWaitingUntil);
net->getContainerControl().setWaitEnd(until, container);
@@ -289,29 +291,25 @@ MSContainer::MSContainerStage_Waiting::endEventOutput(const MSTransportable& con
* MSContainer::MSContainerStage_Tranship - methods
* ----------------------------------------------------------------------- */
MSContainer::MSContainerStage_Tranship::MSContainerStage_Tranship(const std::vector<const MSEdge*>& route,
- MSStoppingPlace* toCS,
+ MSStoppingPlace* toStop,
SUMOReal speed,
SUMOReal departPos, SUMOReal arrivalPos) :
- MSTransportable::Stage(*route.back(), MOVING_WITHOUT_VEHICLE), myRoute(route),
- myDestinationContainerStop(toCS),
+ MSTransportable::Stage(*route.back(), toStop, SUMOVehicleParameter::interpretEdgePos(
+ arrivalPos, route.back()->getLength(), SUMO_ATTR_ARRIVALPOS, "container getting transhipped to " + route.back()->getID()), MOVING_WITHOUT_VEHICLE), myRoute(route),
mySpeed(speed), myContainerState(0), myCurrentInternalEdge(0) {
myDepartPos = SUMOVehicleParameter::interpretEdgePos(
departPos, myRoute.front()->getLength(), SUMO_ATTR_DEPARTPOS, "container getting transhipped from " + myRoute.front()->getID());
- myArrivalPos = SUMOVehicleParameter::interpretEdgePos(
- arrivalPos, myRoute.back()->getLength(), SUMO_ATTR_ARRIVALPOS, "container getting transhipped to " + myRoute.back()->getID());
}
MSContainer::MSContainerStage_Tranship::~MSContainerStage_Tranship() {
}
void
-MSContainer::MSContainerStage_Tranship::proceed(MSNet* /* net */, MSTransportable* container, SUMOTime now, MSEdge* previousEdge, const SUMOReal at) {
- previousEdge->removeContainer(container);
+MSContainer::MSContainerStage_Tranship::proceed(MSNet* /* net */, MSTransportable* container, SUMOTime now, Stage* previous) {
+ previous->getEdge()->removeContainer(container);
myRouteStep = myRoute.end() - 1; //define that the container is already on its destination edge
MSNet::getInstance()->getContainerControl().setTranship(container);
- if (at >= 0) {
- myDepartPos = at;
- }
+ myDepartPos = previous->getEdgePos(now);
myContainerState = MSCModel_NonInteracting::getModel()->add(container, this, now);
(*myRouteStep)->addContainer(container);
}
@@ -397,8 +395,8 @@ MSContainer::MSContainerStage_Tranship::moveToNextEdge(MSTransportable* containe
((MSEdge*)getEdge())->removeContainer(container);
if (myRouteStep == myRoute.end() - 1) {
MSNet::getInstance()->getContainerControl().unsetTranship(container);
- if (myDestinationContainerStop != 0) {
- myDestinationContainerStop->addTransportable(container); //jakob
+ if (myDestinationStop != 0) {
+ myDestinationStop->addTransportable(container); //jakob
}
if (!container->proceed(MSNet::getInstance(), currentTime)) {
MSNet::getInstance()->getContainerControl().erase(container);
@@ -428,15 +426,14 @@ MSContainer::~MSContainer() {
bool
MSContainer::proceed(MSNet* net, SUMOTime time) {
- MSEdge* arrivedAt = (MSEdge*)(*myStep)->getEdge();
- SUMOReal atPos = (*myStep)->getEdgePos(time);
- (*myStep)->setArrived(time);
+ Stage* prior = *myStep;
+ prior->setArrived(time);
myStep++;
if (myStep != myPlan->end()) {
- (*myStep)->proceed(net, this, time, arrivedAt, atPos);
+ (*myStep)->proceed(net, this, time, prior);
return true;
} else {
- arrivedAt->removeContainer(this);
+ prior->getEdge()->removeContainer(this);
return false;
}
}
diff --git a/src/microsim/MSContainer.h b/src/microsim/MSContainer.h
index 853ee3a..686b89c 100644
--- a/src/microsim/MSContainer.h
+++ b/src/microsim/MSContainer.h
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Thu, 12 Jun 2014
-/// @version $Id: MSContainer.h 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSContainer.h 19388 2015-11-19 21:33:01Z behrisch $
///
// The class for modelling container-movements
/****************************************************************************/
@@ -79,14 +79,14 @@ public:
class MSContainerStage_Driving : public MSTransportable::Stage {
public:
/// constructor
- MSContainerStage_Driving(const MSEdge& destination, MSStoppingPlace* toCS,
- const std::vector<std::string>& lines);
+ MSContainerStage_Driving(const MSEdge& destination, MSStoppingPlace* toStop,
+ const SUMOReal arrivalPos, const std::vector<std::string>& lines);
/// destructor
~MSContainerStage_Driving();
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* container, SUMOTime now, MSEdge* previousEdge, const SUMOReal at);
+ virtual void proceed(MSNet* net, MSTransportable* container, SUMOTime now, Stage* previous);
/// Returns the current edge
const MSEdge* getEdge() const;
@@ -105,6 +105,11 @@ public:
/// Whether the container waits for a vehicle of the line specified.
bool isWaitingFor(const std::string& line) const;
+ /// @brief The vehicle the person is riding or 0
+ SUMOVehicle* getVehicle() const {
+ return myVehicle;
+ }
+
/// @brief Whether the container waits for a vehicle
bool isWaiting4Vehicle() const;
@@ -160,9 +165,6 @@ public:
/// @brief The taken vehicle
SUMOVehicle* myVehicle;
- /// @brief The destination container stop
- MSStoppingPlace* myDestinationContainerStop;
-
/// @brief The container stop from which the container departs
MSStoppingPlace* myDepartContainerStop;
@@ -230,7 +232,7 @@ public:
MSStoppingPlace* getDepartContainerStop() const;
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* container, SUMOTime now, MSEdge* previousEdge, const SUMOReal at);
+ virtual void proceed(MSNet* net, MSTransportable* container, SUMOTime now, Stage* previous);
/** @brief Called on writing tripinfo output
*
@@ -271,8 +273,6 @@ public:
/// @brief The type of activity
std::string myActType;
- SUMOReal myStartPos;
-
/// @brief the container stop at which the container is waiting
MSStoppingPlace* myCurrentContainerStop;
@@ -296,13 +296,13 @@ public:
public:
/// constructor
- MSContainerStage_Tranship(const std::vector<const MSEdge*>& route, MSStoppingPlace* toCS, SUMOReal speed, SUMOReal departPos, SUMOReal arrivalPos);
+ MSContainerStage_Tranship(const std::vector<const MSEdge*>& route, MSStoppingPlace* toStop, SUMOReal speed, SUMOReal departPos, SUMOReal arrivalPos);
/// destructor
~MSContainerStage_Tranship();
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* container, SUMOTime now, MSEdge* previousEdge, const SUMOReal at);
+ virtual void proceed(MSNet* net, MSTransportable* container, SUMOTime now, Stage* previous);
/// Returns the current edge
const MSEdge* getEdge() const;
@@ -395,12 +395,6 @@ public:
/// @brief the depart position
SUMOReal myDepartPos;
- /// @brief the arrival position
- SUMOReal myArrivalPos;
-
- /// @brief the destination container stop
- MSStoppingPlace* myDestinationContainerStop;
-
/// @brief The container stop from which the container departs
MSStoppingPlace* myDepartContainerStop;
diff --git a/src/microsim/MSContainerControl.cpp b/src/microsim/MSContainerControl.cpp
index 8d6889b..38dd398 100644
--- a/src/microsim/MSContainerControl.cpp
+++ b/src/microsim/MSContainerControl.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Mon, 16 Jun 2014
-/// @version $Id: MSContainerControl.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSContainerControl.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// Stores all containers in the net and handles their waiting for cars.
/****************************************************************************/
@@ -224,7 +224,7 @@ MSContainerControl::abortWaiting() {
for (ContainerVector::const_iterator j = pv.begin(); j != pv.end(); ++j) {
MSTransportable* p = (*j);
edge->removeContainer(p);
- WRITE_WARNING("Container " + p->getID() + " aborted waiting for a transport that will never come.");
+ WRITE_WARNING("Container '" + p->getID() + "' aborted waiting for a transport that will never come.");
erase(p);
}
}
diff --git a/src/microsim/MSEdge.cpp b/src/microsim/MSEdge.cpp
index 7791d94..11a649e 100644
--- a/src/microsim/MSEdge.cpp
+++ b/src/microsim/MSEdge.cpp
@@ -8,7 +8,7 @@
/// @author Michael Behrisch
/// @author Sascha Krieg
/// @date Tue, 06 Mar 2001
-/// @version $Id: MSEdge.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSEdge.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A road/street connecting two junctions
/****************************************************************************/
@@ -40,10 +40,12 @@
#include <utils/common/StringTokenizer.h>
#include <utils/options/OptionsCont.h>
#include "MSEdge.h"
+#include "MSInsertionControl.h"
#include "MSJunction.h"
#include "MSLane.h"
#include "MSLaneChanger.h"
#include "MSGlobals.h"
+#include "MSNet.h"
#include "MSVehicle.h"
#include "MSContainer.h"
#include "MSEdgeWeightsStorage.h"
@@ -116,6 +118,11 @@ MSEdge::initialize(const std::vector<MSLane*>* lanes) {
if (myFunction == EDGEFUNCTION_DISTRICT) {
myCombinedPermissions = SVCAll;
}
+#ifdef HAVE_INTERNAL
+ if (MSGlobals::gUseMesoSim && !lanes->empty()) {
+ MSGlobals::gMesoNet->buildSegmentsFor(*this, OptionsCont::getOptions());
+ }
+#endif
}
@@ -402,6 +409,21 @@ MSEdge::insertVehicle(SUMOVehicle& v, SUMOTime time, const bool checkOnly) const
"' is too high for the departure edge '" + getID() + "'.");
}
}
+ if (checkOnly && v.getEdge()->getPurpose() == MSEdge::EDGEFUNCTION_DISTRICT) {
+ return true;
+ }
+ if (!checkOnly) {
+ std::string msg;
+ if (!v.hasValidRoute(msg)) {
+ if (MSGlobals::gCheckRoutes) {
+ throw ProcessError("Vehicle '" + v.getID() + "' has no valid route. " + msg);
+ } else if (v.getEdge()->getPurpose() == MSEdge::EDGEFUNCTION_DISTRICT) {
+ WRITE_WARNING("Removing vehicle '" + pars.id + "' which has no valid route.");
+ MSNet::getInstance()->getInsertionControl().descheduleDeparture(&v);
+ return false;
+ }
+ }
+ }
#ifdef HAVE_INTERNAL
if (MSGlobals::gUseMesoSim) {
SUMOReal pos = 0.0;
@@ -450,9 +472,6 @@ MSEdge::insertVehicle(SUMOVehicle& v, SUMOTime time, const bool checkOnly) const
UNUSED_PARAMETER(time);
#endif
if (checkOnly) {
- if (v.getEdge()->getPurpose() == MSEdge::EDGEFUNCTION_DISTRICT) {
- return true;
- }
switch (v.getParameter().departLaneProcedure) {
case DEPART_LANE_GIVEN:
case DEPART_LANE_DEFAULT:
@@ -482,11 +501,18 @@ MSEdge::changeLanes(SUMOTime t) {
}
if (myFunction == EDGEFUNCTION_INTERNAL) {
// allow changing only if all links leading to this internal lane have priority
+ // or they are controlled by a traffic light
for (std::vector<MSLane*>::const_iterator it = myLanes->begin(); it != myLanes->end(); ++it) {
MSLane* pred = (*it)->getLogicalPredecessorLane();
MSLink* link = MSLinkContHelper::getConnectingLink(*pred, **it);
assert(link != 0);
- if (!link->havePriority()) {
+ LinkState state = link->getState();
+ if (state == LINKSTATE_MINOR
+ || state == LINKSTATE_EQUAL
+ || state == LINKSTATE_STOP
+ || state == LINKSTATE_ALLWAY_STOP
+ || state == LINKSTATE_ZIPPER
+ || state == LINKSTATE_DEADEND) {
return;
}
}
@@ -694,7 +720,7 @@ MSEdge::transportable_by_position_sorter::operator()(const MSTransportable* cons
const MSEdgeVector&
MSEdge::getSuccessors(SUMOVehicleClass vClass) const {
- if (vClass == SVC_IGNORING || !MSNet::getInstance()->hasPermissions()) {
+ if (vClass == SVC_IGNORING || !MSNet::getInstance()->hasPermissions() || myFunction == EDGEFUNCTION_DISTRICT) {
return mySuccessors;
}
#ifdef HAVE_FOX
@@ -702,30 +728,30 @@ MSEdge::getSuccessors(SUMOVehicleClass vClass) const {
MSDevice_Routing::lock();
}
#endif
- std::map<SUMOVehicleClass, MSEdgeVector>::const_iterator i = myClassesSuccessorMap.find(vClass);
- if (i != myClassesSuccessorMap.end()) {
- // can use cached value
-#ifdef HAVE_FOX
- if (MSDevice_Routing::isParallel()) {
- MSDevice_Routing::unlock();
- }
-#endif
- return i->second;
- } else {
+ std::map<SUMOVehicleClass, MSEdgeVector>::iterator i = myClassesSuccessorMap.find(vClass);
+ if (i == myClassesSuccessorMap.end()) {
+ // instantiate vector
+ myClassesSuccessorMap[vClass];
+ i = myClassesSuccessorMap.find(vClass);
// this vClass is requested for the first time. rebuild all successors
for (MSEdgeVector::const_iterator it = mySuccessors.begin(); it != mySuccessors.end(); ++it) {
- const std::vector<MSLane*>* allowed = allowedLanes(*it, vClass);
- if (allowed != 0 && allowed->size() > 0) {
- myClassesSuccessorMap[vClass].push_back(*it);
+ if ((*it)->getPurpose() == EDGEFUNCTION_DISTRICT) {
+ i->second.push_back(*it);
+ } else {
+ const std::vector<MSLane*>* allowed = allowedLanes(*it, vClass);
+ if (allowed != 0 && allowed->size() > 0) {
+ i->second.push_back(*it);
+ }
}
}
+ }
+ // can use cached value
#ifdef HAVE_FOX
- if (MSDevice_Routing::isParallel()) {
- MSDevice_Routing::unlock();
- }
-#endif
- return myClassesSuccessorMap[vClass];
+ if (MSDevice_Routing::isParallel()) {
+ MSDevice_Routing::unlock();
}
+#endif
+ return i->second;
}
diff --git a/src/microsim/MSFrame.cpp b/src/microsim/MSFrame.cpp
index fd6700a..3124968 100644
--- a/src/microsim/MSFrame.cpp
+++ b/src/microsim/MSFrame.cpp
@@ -8,7 +8,7 @@
/// @author Mario Krumnow
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: MSFrame.cpp 18686 2015-08-21 14:52:03Z namdre $
+/// @version $Id: MSFrame.cpp 19315 2015-11-11 06:51:47Z namdre $
///
// Sets and checks options for microsim; inits global outputs and settings
/****************************************************************************/
@@ -196,7 +196,7 @@ MSFrame::fillOptions() {
oc.addDescription("link-output", "Output", "Save links states into FILE");
oc.doRegister("bt-output", new Option_FileName());
- oc.addDescription("bt-output", "Output", "Save bt visibilities into FILE");
+ oc.addDescription("bt-output", "Output", "Save bluetooth visibilities into FILE (in conjunction with device.btreceiver and device.btsender)");
#ifdef _DEBUG
@@ -245,8 +245,7 @@ MSFrame::fillOptions() {
oc.addDescription("ignore-route-errors", "Processing", "Do not check whether routes are connected");
oc.doRegister("max-num-vehicles", new Option_Integer(-1));
- oc.addSynonyme("max-num-vehicles", "too-many-vehicles", true);
- oc.addDescription("max-num-vehicles", "Processing", "Quit simulation if this number of vehicles is exceeded");
+ oc.addDescription("max-num-vehicles", "Processing", "Delay vehicle insertion to stay within the given maximum number");
oc.doRegister("scale", new Option_Float());
oc.addDescription("scale", "Processing", "Scale demand by the given factor (by discarding or duplicating vehicles)");
@@ -307,8 +306,12 @@ MSFrame::fillOptions() {
MSDevice::insertOptions(oc);
// register report options
- oc.doRegister("no-duration-log", new Option_Bool(false));
- oc.addDescription("no-duration-log", "Report", "Disable performance reports for individual simulation steps");
+ oc.doRegister("duration-log.disable", new Option_Bool(false));
+ oc.addSynonyme("duration-log.disable", "no-duration-log", false);
+ oc.addDescription("duration-log.disable", "Report", "Disable performance reports for individual simulation steps");
+
+ oc.doRegister("duration-log.statistics", new Option_Bool(false));
+ oc.addDescription("duration-log.statistics", "Report", "Enable statistics on vehicle trips");
oc.doRegister("no-step-log", new Option_Bool(false));
oc.addDescription("no-step-log", "Report", "Disable console output of current simulation step");
@@ -464,6 +467,9 @@ MSFrame::checkOptions() {
if (oc.getBool("sloppy-insert")) {
WRITE_WARNING("The option 'sloppy-insert' is deprecated, because it is now activated by default, see the new option 'eager-insert'.");
}
+ if (oc.getBool("duration-log.statistics") && oc.isDefault("verbose")) {
+ oc.set("verbose", "true");
+ }
return ok;
}
diff --git a/src/microsim/MSInsertionControl.cpp b/src/microsim/MSInsertionControl.cpp
index 92d9ba1..1df9e80 100644
--- a/src/microsim/MSInsertionControl.cpp
+++ b/src/microsim/MSInsertionControl.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSInsertionControl.cpp 18473 2015-06-03 21:35:22Z namdre $
+/// @version $Id: MSInsertionControl.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Inserts vehicles into the network when their departure time is reached
/****************************************************************************/
@@ -54,9 +54,13 @@
// ===========================================================================
MSInsertionControl::MSInsertionControl(MSVehicleControl& vc,
SUMOTime maxDepartDelay,
- bool checkEdgesOnce)
- : myVehicleControl(vc), myMaxDepartDelay(maxDepartDelay),
- myCheckEdgesOnce(checkEdgesOnce) {}
+ bool checkEdgesOnce,
+ int maxVehicleNumber) :
+ myVehicleControl(vc),
+ myMaxDepartDelay(maxDepartDelay),
+ myCheckEdgesOnce(checkEdgesOnce),
+ myMaxVehicleNumber(maxVehicleNumber)
+{}
MSInsertionControl::~MSInsertionControl() {
@@ -146,7 +150,9 @@ MSInsertionControl::tryInsert(SUMOTime time, SUMOVehicle* veh,
veh->onDepart();
return 1;
}
- if ((!myCheckEdgesOnce || edge.getLastFailedInsertionTime() != time) && edge.insertVehicle(*veh, time)) {
+ if ((myMaxVehicleNumber < 0 || (int)MSNet::getInstance()->getVehicleControl().getRunningVehicleNo() < myMaxVehicleNumber)
+ && (!myCheckEdgesOnce || edge.getLastFailedInsertionTime() != time)
+ && edge.insertVehicle(*veh, time)) {
// Successful insertion
checkFlowWait(veh);
veh->onDepart();
diff --git a/src/microsim/MSInsertionControl.h b/src/microsim/MSInsertionControl.h
index 84de8c7..27fadf9 100644
--- a/src/microsim/MSInsertionControl.h
+++ b/src/microsim/MSInsertionControl.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSInsertionControl.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSInsertionControl.h 19057 2015-10-09 06:23:15Z namdre $
///
// Inserts vehicles into the network when their departure time is reached
/****************************************************************************/
@@ -71,8 +71,9 @@ public:
* @param[in] vc The assigned vehicle control (needed for vehicle re-insertion and deletion)
* @param[in] maxDepartDelay Vehicles waiting for insertion longer than this time are deleted (-1: no deletion)
* @param[in] checkEdgesOnce Whether an edge on which a vehicle could not depart should be ignored in the same step
+ * @param[in] maxVehicleNumber The maximum number of vehicles that should not be exceeded
*/
- MSInsertionControl(MSVehicleControl& vc, SUMOTime maxDepartDelay, bool checkEdgesOnce);
+ MSInsertionControl(MSVehicleControl& vc, SUMOTime maxDepartDelay, bool checkEdgesOnce, int maxVehicleNumber);
/// @brief Destructor.
@@ -223,6 +224,9 @@ private:
/// @brief Whether an edge on which a vehicle could not depart should be ignored in the same step
bool myCheckEdgesOnce;
+ /// @brief Storage for maximum vehicle number
+ int myMaxVehicleNumber;
+
private:
/// @brief Invalidated copy constructor.
diff --git a/src/microsim/MSJunction.cpp b/src/microsim/MSJunction.cpp
index d9baff4..c55fbf2 100644
--- a/src/microsim/MSJunction.cpp
+++ b/src/microsim/MSJunction.cpp
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Wed, 12 Dez 2001
-/// @version $Id: MSJunction.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSJunction.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The base class for an intersection
/****************************************************************************/
@@ -30,6 +30,8 @@
#include <config.h>
#endif
+#include "MSVehicle.h"
+#include "MSEdge.h"
#include "MSJunction.h"
#ifdef CHECK_MEMORY_LEAKS
@@ -50,8 +52,12 @@ class MSLink;
// member method definition
// ===========================================================================
MSJunction::MSJunction(const std::string& id, SumoXMLNodeType type, const Position& position,
- const PositionVector& shape)
- : Named(id), myType(type), myPosition(position), myShape(shape) {}
+ const PositionVector& shape) :
+ Named(id),
+ myType(type),
+ myPosition(position),
+ myShape(shape)
+{}
MSJunction::~MSJunction() {}
@@ -67,5 +73,25 @@ void
MSJunction::postloadInit() {}
+void
+MSJunction::passedJunction(const MSVehicle* vehicle) {
+ myLinkLeaders.erase(vehicle);
+}
+
+
+bool
+MSJunction::isLeader(const MSVehicle* ego, const MSVehicle* foe) {
+ if (foe->getLane()->getEdge().getToJunction() != this) {
+ // foe is already past the junction so is definitely a leader
+ return true;
+ }
+ if (myLinkLeaders.find(ego) == myLinkLeaders.end() || myLinkLeaders[ego].count(foe) == 0) {
+ // we are not yet the leader for foe, thus foe will be our leader
+ myLinkLeaders[foe].insert(ego);
+ return true;
+ } else {
+ return false;
+ }
+}
/****************************************************************************/
diff --git a/src/microsim/MSJunction.h b/src/microsim/MSJunction.h
index 2307b3a..d177f7c 100644
--- a/src/microsim/MSJunction.h
+++ b/src/microsim/MSJunction.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Wed, 12 Dez 2001
-/// @version $Id: MSJunction.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSJunction.h 19412 2015-11-24 13:04:53Z namdre $
///
// The base class for an intersection
/****************************************************************************/
@@ -120,6 +120,12 @@ public:
return myType;
}
+ /// @brief erase vehicle from myLinkLeaders
+ void passedJunction(const MSVehicle* vehicle);
+
+ /* @brief @return whether the foe vehicle is a leader for ego
+ * @note vehicles are added to myLinkLeaders when first seen as a foe */
+ bool isLeader(const MSVehicle* ego, const MSVehicle* foe);
protected:
/// @brief Tye type of this junction
@@ -143,6 +149,11 @@ protected:
/// @brief definition of the static dictionary type
typedef std::map<std::string, MSJunction* > DictType;
+ /// @brief map from leader vehicle to follower vehicles
+ typedef std::map<const MSVehicle*, std::set<const MSVehicle*> > LeaderMap;
+ LeaderMap myLinkLeaders;
+
+
private:
/// @brief Invalidated copy constructor.
MSJunction(const MSJunction&);
diff --git a/src/microsim/MSJunctionControl.cpp b/src/microsim/MSJunctionControl.cpp
index eaf23a3..6d75038 100644
--- a/src/microsim/MSJunctionControl.cpp
+++ b/src/microsim/MSJunctionControl.cpp
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Tue, 06 Mar 2001
-/// @version $Id: MSJunctionControl.cpp 18168 2015-03-27 13:28:26Z behrisch $
+/// @version $Id: MSJunctionControl.cpp 19183 2015-10-27 22:17:35Z behrisch $
///
// Container for junctions; performs operations on all stored junctions
/****************************************************************************/
@@ -30,10 +30,9 @@
#include <config.h>
#endif
-#include "MSJunctionControl.h"
-#include "MSJunction.h"
-#include "MSInternalJunction.h"
#include <algorithm>
+#include "MSInternalJunction.h"
+#include "MSJunctionControl.h"
#ifdef CHECK_MEMORY_LEAKS
#include <foreign/nvwa/debug_new.h>
diff --git a/src/microsim/MSJunctionControl.h b/src/microsim/MSJunctionControl.h
index bfbbe87..808912d 100644
--- a/src/microsim/MSJunctionControl.h
+++ b/src/microsim/MSJunctionControl.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSJunctionControl.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSJunctionControl.h 19183 2015-10-27 22:17:35Z behrisch $
///
// Container for junctions; performs operations on all stored junctions
/****************************************************************************/
@@ -39,12 +39,7 @@
#include <utils/common/NamedObjectCont.h>
#include <utils/common/UtilExceptions.h>
-
-
-// ===========================================================================
-// class declarations
-// ===========================================================================
-class MSJunction;
+#include "MSJunction.h"
// ===========================================================================
diff --git a/src/microsim/MSLane.cpp b/src/microsim/MSLane.cpp
index 8548c5b..8fb1405 100644
--- a/src/microsim/MSLane.cpp
+++ b/src/microsim/MSLane.cpp
@@ -9,7 +9,7 @@
/// @author Christoph Sommer
/// @author Mario Krumnow
/// @date Mon, 05 Mar 2001
-/// @version $Id: MSLane.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSLane.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Representation of a lane in the micro simulation
/****************************************************************************/
@@ -67,7 +67,6 @@
#include <utils/common/ToString.h>
#include <utils/options/OptionsCont.h>
#include <utils/emissions/HelpersHarmonoise.h>
-#include <utils/geom/Line.h>
#include <utils/geom/GeomHelper.h>
#ifdef CHECK_MEMORY_LEAKS
@@ -93,7 +92,7 @@ MSLane::MSLane(const std::string& id, SUMOReal maxSpeed, SUMOReal length, MSEdge
myPermissions(permissions),
myLogicalPredecessorLane(0),
myBruttoVehicleLengthSum(0), myNettoVehicleLengthSum(0), myInlappingVehicleEnd(10000), myInlappingVehicle(0),
- myLengthGeometryFactor(myShape.length() / myLength) {
+ myLengthGeometryFactor(MAX2(POSITION_EPS, myShape.length()) / myLength) { // factor should not be 0
myRestrictions = MSNet::getInstance()->getRestrictions(edge->getEdgeType());
}
@@ -460,11 +459,6 @@ MSLane::isInsertionSuccess(MSVehicle* aVehicle,
aVehicle->getID() + "'. Inserting at lane end instead.");
pos = myLength;
}
- std::string msg;
- if (!MSGlobals::gCheckRoutes && aVehicle->getParameter().wasSet(VEHPARS_FORCE_REROUTE) && !aVehicle->hasValidRoute(msg)) {
- MSNet::getInstance()->getInsertionControl().descheduleDeparture(aVehicle);
- return false;
- }
aVehicle->setTentativeLaneAndPosition(this, pos);
aVehicle->updateBestLanes(false, this);
const MSCFModel& cfModel = aVehicle->getCarFollowModel();
@@ -827,7 +821,7 @@ MSLane::executeMovements(SUMOTime t, std::vector<MSLane*>& into) {
// for any reasons the vehicle is beyond its lane...
// this should never happen because it is handled in MSVehicle::executeMove
assert(false);
- WRITE_WARNING("Teleporting vehicle '" + veh->getID() + "'; beyond end of lane, targetLane='" + getID() + "', time=" +
+ WRITE_WARNING("Teleporting vehicle '" + veh->getID() + "'; beyond end of lane, target lane='" + getID() + "', time=" +
time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
MSNet::getInstance()->getVehicleControl().registerCollision();
MSVehicleTransfer::getInstance()->add(t, veh);
@@ -1053,7 +1047,7 @@ MSLane::succLinkSec(const SUMOVehicle& veh, unsigned int nRouteSuccs,
}
// the only case where this should happen is for a disconnected route (deliberately ignored)
#ifdef _DEBUG
- WRITE_WARNING("Could not find connection between '" + succLinkSource.getID() + "' and '" + conts[nRouteSuccs]->getID() +
+ WRITE_WARNING("Could not find connection between lane '" + succLinkSource.getID() + "' and lane '" + conts[nRouteSuccs]->getID() +
"' for vehicle '" + veh.getID() + "' time=" + time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
#endif
return succLinkSource.myLinks.end();
@@ -1122,11 +1116,11 @@ MSLane::addIncomingLane(MSLane* lane, MSLink* viaLink) {
void
-MSLane::addApproachingLane(MSLane* lane) {
+MSLane::addApproachingLane(MSLane* lane, bool warnMultiCon) {
MSEdge* approachingEdge = &lane->getEdge();
if (myApproachingLanes.find(approachingEdge) == myApproachingLanes.end()) {
myApproachingLanes[approachingEdge] = std::vector<MSLane*>();
- } else if (approachingEdge->getPurpose() != MSEdge::EDGEFUNCTION_INTERNAL) {
+ } else if (approachingEdge->getPurpose() != MSEdge::EDGEFUNCTION_INTERNAL && warnMultiCon) {
// whenever a normal edge connects twice, there is a corresponding
// internal edge wich connects twice, one warning is sufficient
WRITE_WARNING("Lane '" + getID() + "' is approached multiple times from edge '" + approachingEdge->getID() + "'. This may cause collisions.");
@@ -1676,7 +1670,7 @@ MSLane::vehicle_position_sorter::operator()(MSVehicle* v1, MSVehicle* v2) const
MSLane::by_connections_to_sorter::by_connections_to_sorter(const MSEdge* const e) :
myEdge(e),
- myLaneDir(e->getLanes()[0]->getShape().getBegLine().atan2PositiveAngle())
+ myLaneDir(e->getLanes()[0]->getShape().angleAt2D(0))
{ }
@@ -1686,11 +1680,11 @@ MSLane::by_connections_to_sorter::operator()(const MSEdge* const e1, const MSEdg
const std::vector<MSLane*>* ae2 = e2->allowedLanes(*myEdge);
SUMOReal s1 = 0;
if (ae1 != 0 && ae1->size() != 0) {
- s1 = (SUMOReal) ae1->size() + GeomHelper::getMinAngleDiff((*ae1)[0]->getShape().getBegLine().atan2PositiveAngle(), myLaneDir) / M_PI / 2.;
+ s1 = (SUMOReal) ae1->size() + fabs(GeomHelper::angleDiff((*ae1)[0]->getShape().angleAt2D(0), myLaneDir)) / M_PI / 2.;
}
SUMOReal s2 = 0;
if (ae2 != 0 && ae2->size() != 0) {
- s2 = (SUMOReal) ae2->size() + GeomHelper::getMinAngleDiff((*ae2)[0]->getShape().getBegLine().atan2PositiveAngle(), myLaneDir) / M_PI / 2.;
+ s2 = (SUMOReal) ae2->size() + fabs(GeomHelper::angleDiff((*ae2)[0]->getShape().angleAt2D(0), myLaneDir)) / M_PI / 2.;
}
return s1 < s2;
}
diff --git a/src/microsim/MSLane.h b/src/microsim/MSLane.h
index 7ac21dd..c8073bd 100644
--- a/src/microsim/MSLane.h
+++ b/src/microsim/MSLane.h
@@ -8,7 +8,7 @@
/// @author Michael Behrisch
/// @author Mario Krumnow
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSLane.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSLane.h 19451 2015-11-27 13:39:24Z namdre $
///
// Representation of a lane in the micro simulation
/****************************************************************************/
@@ -592,7 +592,7 @@ public:
}
- void addApproachingLane(MSLane* lane);
+ void addApproachingLane(MSLane* lane, bool warnMultiCon);
bool isApproachedFrom(MSEdge* const edge);
bool isApproachedFrom(MSEdge* const edge, MSLane* const lane);
diff --git a/src/microsim/MSLaneChanger.cpp b/src/microsim/MSLaneChanger.cpp
index ee20a85..35ebe15 100644
--- a/src/microsim/MSLaneChanger.cpp
+++ b/src/microsim/MSLaneChanger.cpp
@@ -7,7 +7,7 @@
/// @author Friedemann Wesner
/// @author Jakob Erdmann
/// @date Fri, 01 Feb 2002
-/// @version $Id: MSLaneChanger.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSLaneChanger.cpp 19329 2015-11-11 11:44:42Z namdre $
///
// Performs lane changing of vehicles
/****************************************************************************/
@@ -148,7 +148,7 @@ MSLaneChanger::change() {
vehicle->adaptBestLanesOccupation(i, myChanger[i].dens);
}
const std::vector<MSVehicle::LaneQ>& preb = vehicle->getBestLanes();
- std::pair<MSVehicle* const, SUMOReal> leader = getRealThisLeader(myCandi);
+ std::pair<MSVehicle* const, SUMOReal> leader = getRealLeader(myCandi);
// check whether the vehicle wants and is able to change to right lane
int state1 = 0;
if (myCandi != myChanger.begin() && (myCandi - 1)->lane->allowsVehicleClass(veh(myCandi)->getVehicleType().getVehicleClass())) {
@@ -293,42 +293,6 @@ MSLaneChanger::startChange(MSVehicle* vehicle, ChangerIt& from, int direction) {
std::pair<MSVehicle* const, SUMOReal>
-MSLaneChanger::getRealThisLeader(const ChangerIt& target) const {
- // get the leading vehicle on the lane to change to
- MSVehicle* leader = target->lead;
- if (leader == 0) {
- MSLane* targetLane = target->lane;
- MSVehicle* predP = targetLane->getPartialOccupator();
- if (predP != 0) {
- return std::pair<MSVehicle*, SUMOReal>(predP, targetLane->getPartialOccupatorEnd() - veh(myCandi)->getPositionOnLane());
- }
- const std::vector<MSLane*>& bestLaneConts = veh(myCandi)->getBestLanesContinuation();
- MSLinkCont::const_iterator link = MSLane::succLinkSec(*veh(myCandi), 1, *targetLane, bestLaneConts);
- if (targetLane->isLinkEnd(link)) {
- return std::pair<MSVehicle*, SUMOReal>(static_cast<MSVehicle*>(0), -1);
- }
- MSLane* nextLane = (*link)->getLane();
- if (nextLane == 0) {
- return std::pair<MSVehicle*, SUMOReal>(static_cast<MSVehicle*>(0), -1);
- }
- leader = nextLane->getLastVehicle();
- if (leader == 0) {
- return std::pair<MSVehicle*, SUMOReal>(static_cast<MSVehicle*>(0), -1);
- }
- SUMOReal gap =
- leader->getPositionOnLane() - leader->getVehicleType().getLength()
- +
- (myCandi->lane->getLength() - veh(myCandi)->getPositionOnLane() - veh(myCandi)->getVehicleType().getMinGap()); // !!! recheck
- return std::pair<MSVehicle* const, SUMOReal>(leader, MAX2((SUMOReal) 0, gap));
- } else {
- MSVehicle* candi = veh(myCandi);
- SUMOReal gap = leader->getPositionOnLane() - leader->getVehicleType().getLength() - candi->getPositionOnLane() - candi->getVehicleType().getMinGap();
- return std::pair<MSVehicle* const, SUMOReal>(leader, MAX2((SUMOReal) 0, gap));
- }
-}
-
-
-std::pair<MSVehicle* const, SUMOReal>
MSLaneChanger::getRealLeader(const ChangerIt& target) const {
// get the leading vehicle on the lane to change to
MSVehicle* neighLead = target->lead;
diff --git a/src/microsim/MSLaneChanger.h b/src/microsim/MSLaneChanger.h
index 9b68351..bef9b6e 100644
--- a/src/microsim/MSLaneChanger.h
+++ b/src/microsim/MSLaneChanger.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Fri, 01 Feb 2002
-/// @version $Id: MSLaneChanger.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSLaneChanger.h 19336 2015-11-12 08:42:09Z namdre $
///
// Performs lane changing of vehicles
/****************************************************************************/
@@ -155,8 +155,6 @@ protected:
/// @brief start the lane change maneuver (and finish it instantly if gLaneChangeDuration == 0)
void startChange(MSVehicle* vehicle, ChangerIt& from, int direction);
- std::pair<MSVehicle* const, SUMOReal> getRealThisLeader(const ChangerIt& target) const;
-
std::pair<MSVehicle* const, SUMOReal> getRealFollower(const ChangerIt& target) const;
std::pair<MSVehicle* const, SUMOReal> getRealLeader(const ChangerIt& target) const;
diff --git a/src/microsim/MSLink.cpp b/src/microsim/MSLink.cpp
index 3d03691..4eceb16 100644
--- a/src/microsim/MSLink.cpp
+++ b/src/microsim/MSLink.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Sept 2002
-/// @version $Id: MSLink.cpp 18319 2015-04-29 06:49:01Z namdre $
+/// @version $Id: MSLink.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A connnection between lanes
/****************************************************************************/
@@ -35,6 +35,7 @@
#include <limits>
#include <utils/iodevices/OutputDevice.h>
#include "MSNet.h"
+#include "MSJunction.h"
#include "MSLink.h"
#include "MSLane.h"
#include <microsim/pedestrians/MSPerson.h>
@@ -52,8 +53,14 @@
// ===========================================================================
// static member variables
// ===========================================================================
-SUMOTime MSLink::myLookaheadTime = TIME2STEPS(1);
+const SUMOTime MSLink::myLookaheadTime = TIME2STEPS(1);
+// additional caution is needed when approaching a zipper link
+const SUMOTime MSLink::myLookaheadTimeZipper = TIME2STEPS(4);
+// time to link in seconds below which adaptation should take place
+#define ZIPPER_ADAPT_TIME 10
+// distance to link in m below which adaptation should take place
+#define ZIPPER_ADAPT_DIST 100
// ===========================================================================
// member method definitions
@@ -104,7 +111,7 @@ MSLink::setRequestInformation(int index, bool hasFoes, bool isCont,
// cannot assign vector due to const-ness
myFoeLanes.push_back(*it_lane);
}
- myJunction = myLane->getEdge().getFromJunction(); // junctionGraph is initialized after the whole network is loaded
+ myJunction = const_cast<MSJunction*>(myLane->getEdge().getFromJunction()); // junctionGraph is initialized after the whole network is loaded
#ifdef HAVE_INTERNAL_LANES
myInternalLaneBefore = internalLaneBefore;
MSLane* lane = 0;
@@ -232,11 +239,11 @@ getLastIntersections(const MSLane* lane, const MSLane* foe);
void
MSLink::setApproaching(const SUMOVehicle* approaching, const SUMOTime arrivalTime, const SUMOReal arrivalSpeed, const SUMOReal leaveSpeed,
- const bool setRequest, const SUMOTime arrivalTimeBraking, const SUMOReal arrivalSpeedBraking, const SUMOTime waitingTime) {
+ const bool setRequest, const SUMOTime arrivalTimeBraking, const SUMOReal arrivalSpeedBraking, const SUMOTime waitingTime, SUMOReal dist) {
const SUMOTime leaveTime = getLeaveTime(arrivalTime, arrivalSpeed, leaveSpeed, approaching->getVehicleType().getLength());
myApproachingVehicles.insert(std::make_pair(approaching,
ApproachingVehicleInformation(arrivalTime, leaveTime, arrivalSpeed, leaveSpeed, setRequest,
- arrivalTimeBraking, arrivalSpeedBraking, waitingTime)));
+ arrivalTimeBraking, arrivalSpeedBraking, waitingTime, dist)));
}
@@ -270,7 +277,7 @@ MSLink::getApproaching(const SUMOVehicle* veh) const {
if (i != myApproachingVehicles.end()) {
return i->second;
} else {
- return ApproachingVehicleInformation(-1000, -1000, 0, 0, false, -1000, 0, 0);
+ return ApproachingVehicleInformation(-1000, -1000, 0, 0, false, -1000, 0, 0, 0);
}
}
@@ -292,6 +299,10 @@ MSLink::opened(SUMOTime arrivalTime, SUMOReal arrivalSpeed, SUMOReal leaveSpeed,
if (myAmCont && MSGlobals::gUsingInternalLanes) {
return true;
}
+ if (havePriority() && myState != LINKSTATE_ZIPPER) {
+ // zipper still needs to collect foes
+ return true;
+ }
if ((myState == LINKSTATE_STOP || myState == LINKSTATE_ALLWAY_STOP) && waitingTime == 0) {
return false;
}
@@ -309,6 +320,9 @@ MSLink::opened(SUMOTime arrivalTime, SUMOReal arrivalSpeed, SUMOReal leaveSpeed,
return false;
}
}
+ if (collectFoes != 0 && collectFoes->size() > 0) {
+ return false;
+ }
return true;
}
@@ -331,9 +345,10 @@ MSLink::blockedAtTime(SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal arrival
}
}
const SUMOTime foeArrivalTime = (SUMOTime)((1.0 - impatience) * i->second.arrivalTime + impatience * i->second.arrivalTimeBraking);
+ const SUMOTime lookAhead = myState == LINKSTATE_ZIPPER ? myLookaheadTimeZipper : myLookaheadTime;
if (i->second.leavingTime < arrivalTime) {
// ego wants to be follower
- if (sameTargetLane && (arrivalTime - i->second.leavingTime < myLookaheadTime
+ if (sameTargetLane && (arrivalTime - i->second.leavingTime < lookAhead
|| unsafeMergeSpeeds(i->second.leaveSpeed, arrivalSpeed,
i->first->getVehicleType().getCarFollowModel().getMaxDecel(), decel))) {
if (collectFoes == 0) {
@@ -344,7 +359,7 @@ MSLink::blockedAtTime(SUMOTime arrivalTime, SUMOTime leaveTime, SUMOReal arrival
}
} else if (foeArrivalTime > leaveTime) {
// ego wants to be leader.
- if (sameTargetLane && (foeArrivalTime - leaveTime < myLookaheadTime
+ if (sameTargetLane && (foeArrivalTime - leaveTime < lookAhead
|| unsafeMergeSpeeds(leaveSpeed, i->second.arrivalSpeedBraking,
decel, i->first->getVehicleType().getCarFollowModel().getMaxDecel()))) {
if (collectFoes == 0) {
@@ -620,5 +635,111 @@ MSLink::getViaLaneOrLane() const {
}
+void
+MSLink::passedJunction(const MSVehicle* vehicle) {
+ if (myJunction != 0) {
+ myJunction->passedJunction(vehicle);
+ }
+}
+
+
+bool
+MSLink::isLeader(const MSVehicle* ego, const MSVehicle* foe) {
+ if (myJunction != 0) {
+ return myJunction->isLeader(ego, foe);
+ } else {
+ // unregulated junction
+ return false;
+ }
+}
+
+const MSLane*
+MSLink::getInternalLaneBefore() const {
+#ifdef HAVE_INTERNAL_LANES
+ return myInternalLaneBefore;
+#endif
+ return 0;
+}
+
+
+SUMOReal
+MSLink::getZipperSpeed(const MSVehicle* ego, const SUMOReal dist, SUMOReal vSafe,
+ SUMOTime arrivalTime,
+ std::vector<const SUMOVehicle*>* collectFoes) const {
+ //gDebugFlag1 = ego->getID() == "left.7";
+ if (myFoeLinks.size() == 0) {
+ // link should have LINKSTATE_MAJOR in this case
+ assert(false);
+ return vSafe;
+ } else if (myFoeLinks.size() > 1) {
+ throw ProcessError("Zipper junctions with more than two conflicting lanes are not supported (at junction '"
+ + myJunction->getID() + "')");
+ }
+ const SUMOTime now = MSNet::getInstance()->getCurrentTimeStep();
+ const SUMOReal secondsToArrival = STEPS2TIME(arrivalTime - now);
+ if (secondsToArrival > ZIPPER_ADAPT_TIME && dist > ZIPPER_ADAPT_DIST) {
+ //if (gDebugFlag1) std::cout << SIMTIME << " getZipperSpeed ego=" << ego->getID()
+ // << " dist=" << dist
+ // << " ignoring foes (arrival in " << STEPS2TIME(arrivalTime - now) << ")\n";
+ return vSafe;
+ }
+ //if (gDebugFlag1) std::cout << SIMTIME << " getZipperSpeed ego=" << ego->getID()
+ // << " egoAT=" << arrivalTime
+ // << " dist=" << dist
+ // << " vSafe=" << vSafe
+ // << " numFoes=" << collectFoes->size()
+ // << "\n";
+ MSLink* foeLink = myFoeLinks[0];
+ for (std::vector<const SUMOVehicle*>::const_iterator i = collectFoes->begin(); i != collectFoes->end(); ++i) {
+ const MSVehicle* foe = dynamic_cast<const MSVehicle*>(*i);
+ assert(foe != 0);
+ const ApproachingVehicleInformation& avi = foeLink->getApproaching(foe);
+ if ( // ignore vehicles that arrive after us (unless they are ahead and we could easily brake for them)
+ ((avi.arrivalTime > arrivalTime) && !couldBrakeForLeader(dist, avi.dist, ego, foe)) ||
+ // also ignore vehicles that are behind us and are able to brake for us
+ couldBrakeForLeader(avi.dist, dist, foe, ego)) {
+ //if (gDebugFlag1) std::cout
+ // << " ignoring foe=" << foe->getID()
+ // << " foeAT=" << avi.arrivalTime
+ // << " foeDist=" << avi.dist
+ // << " foeSpeed=" << foe->getSpeed()
+ // << " egoSpeed=" << ego->getSpeed()
+ // << " deltaDist=" << avi.dist - dist
+ // << " delteSpeed=" << foe->getSpeed() - foe->getCarFollowModel().getMaxDecel() - ego->getSpeed()
+ // << "\n";
+ continue;
+ }
+ const SUMOReal gap = dist - foe->getVehicleType().getLength() - ego->getVehicleType().getMinGap() - avi.dist;
+ const SUMOReal follow = ego->getCarFollowModel().followSpeed(
+ ego, ego->getSpeed(), gap, foe->getSpeed(), foe->getCarFollowModel().getMaxDecel());
+ // speed adaption to follow the foe can be spread over secondsToArrival
+ const SUMOReal followInTime = vSafe + (follow - vSafe) / MAX2((SUMOReal)1, secondsToArrival / TS);
+ vSafe = MIN2(vSafe, followInTime);
+ //if (gDebugFlag1) std::cout << " adapting to foe=" << foe->getID()
+ // << " foeDist=" << avi.dist
+ // << " follow=" << follow
+ // << " followInTime=" << followInTime
+ // << " gap=" << gap
+ // << " foeSpeed=" << foe->getSpeed()
+ // << " follow=" << follow
+ // << " foeAT=" << avi.arrivalTime
+ // << " foeLT=" << avi.leavingTime
+ // << " foeAS=" << avi.arrivalSpeed
+ // << " vSafe=" << vSafe
+ // << "\n";
+ }
+ return vSafe;
+}
+
+
+bool
+MSLink::couldBrakeForLeader(SUMOReal followDist, SUMOReal leaderDist, const MSVehicle* follow, const MSVehicle* leader) {
+ return (// leader is ahead of follower
+ followDist > leaderDist &&
+ // and follower could brake for 1 s to stay behind leader
+ followDist - leaderDist > follow->getSpeed() - follow->getCarFollowModel().getMaxDecel() - leader->getSpeed());
+}
+
+
/****************************************************************************/
diff --git a/src/microsim/MSLink.h b/src/microsim/MSLink.h
index ff26ef2..877b893 100644
--- a/src/microsim/MSLink.h
+++ b/src/microsim/MSLink.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: MSLink.h 18319 2015-04-29 06:49:01Z namdre $
+/// @version $Id: MSLink.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A connnection between lanes
/****************************************************************************/
@@ -101,14 +101,17 @@ public:
const bool _willPass,
const SUMOTime _arrivalTimeBraking,
const SUMOReal _arrivalSpeedBraking,
- const SUMOTime _waitingTime
+ const SUMOTime _waitingTime,
+ const SUMOReal _dist
) :
arrivalTime(_arrivalTime), leavingTime(_leavingTime),
arrivalSpeed(_arrivalSpeed), leaveSpeed(_leaveSpeed),
willPass(_willPass),
arrivalTimeBraking(_arrivalTimeBraking),
arrivalSpeedBraking(_arrivalSpeedBraking),
- waitingTime(_waitingTime) {}
+ waitingTime(_waitingTime),
+ dist(_dist)
+ {}
/// @brief The time the vehicle's front arrives at the link
const SUMOTime arrivalTime;
@@ -126,6 +129,8 @@ public:
const SUMOReal arrivalSpeedBraking;
/// @brief The waiting duration at the current link
const SUMOTime waitingTime;
+ /// @brief The distance up to the current link
+ const SUMOReal dist;
private:
/// invalidated assignment operator
@@ -180,7 +185,7 @@ public:
void setApproaching(const SUMOVehicle* approaching, const SUMOTime arrivalTime,
const SUMOReal arrivalSpeed, const SUMOReal leaveSpeed, const bool setRequest,
const SUMOTime arrivalTimeBraking, const SUMOReal arrivalSpeedBraking,
- const SUMOTime waitingTime);
+ const SUMOTime waitingTime, SUMOReal dist);
/// @brief removes the vehicle from myApproachingVehicles
void removeApproaching(const SUMOVehicle* veh);
@@ -359,9 +364,16 @@ public:
LinkLeaders getLeaderInfo(SUMOReal dist, SUMOReal minGap, std::vector<const MSPerson*>* collectBlockers = 0) const;
#endif
+ /// @brief return the speed at which ego vehicle must approach the zipper link
+ SUMOReal getZipperSpeed(const MSVehicle* ego, const SUMOReal dist, SUMOReal vSafe,
+ SUMOTime arrivalTime,
+ std::vector<const SUMOVehicle*>* collectFoes) const;
+
/// @brief return the via lane if it exists and the lane otherwise
MSLane* getViaLaneOrLane() const;
+ /// @brief return myInternalLaneBefore (always 0 when compiled without internal lanes)
+ const MSLane* getInternalLaneBefore() const;
/// @brief return the expected time at which the given vehicle will clear the link
SUMOTime getLeaveTime(const SUMOTime arrivalTime, const SUMOReal arrivalSpeed, const SUMOReal leaveSpeed, const SUMOReal vehicleLength) const;
@@ -369,10 +381,11 @@ public:
/// @brief write information about all approaching vehicles to the given output device
void writeApproaching(OutputDevice& od, const std::string fromLaneID) const;
- /// @brief return the junction to which this link belongs
- const MSJunction* getJunction() const {
- return myJunction;
- }
+ /// @brief erase vehicle from myLinkLeaders of this links junction
+ void passedJunction(const MSVehicle* vehicle);
+
+ //// @brief @return whether the foe vehicle is a leader for ego
+ bool isLeader(const MSVehicle* ego, const MSVehicle* foe);
private:
/// @brief return whether the given vehicles may NOT merge safely
@@ -384,6 +397,9 @@ private:
/// @brief returns whether the given lane may still be occupied by a vehicle currently on it
static bool maybeOccupied(MSLane* lane);
+ /// @brief whether fllower could stay behind leader (possibly by braking)
+ static bool couldBrakeForLeader(SUMOReal followDist, SUMOReal leaderDist, const MSVehicle* follow, const MSVehicle* leader);
+
private:
/// @brief The lane (but the internal one) approached by this link
MSLane* myLane;
@@ -429,11 +445,13 @@ private:
#endif
/// @brief the junction to which this link belongs
- const MSJunction* myJunction;
+ MSJunction* myJunction;
std::vector<MSLink*> myFoeLinks;
std::vector<const MSLane*> myFoeLanes;
- static SUMOTime myLookaheadTime;
+
+ static const SUMOTime myLookaheadTime;
+ static const SUMOTime myLookaheadTimeZipper;
private:
diff --git a/src/microsim/MSLogicJunction.h b/src/microsim/MSLogicJunction.h
index 6a43f19..4fe07e4 100644
--- a/src/microsim/MSLogicJunction.h
+++ b/src/microsim/MSLogicJunction.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Wed, 12 Dez 2001
-/// @version $Id: MSLogicJunction.h 18635 2015-08-14 13:33:44Z namdre $
+/// @version $Id: MSLogicJunction.h 19395 2015-11-20 12:22:20Z namdre $
///
// with one ore more logics.
/****************************************************************************/
@@ -35,6 +35,7 @@
#include "MSJunction.h"
#include <utils/common/SUMOTime.h>
+#include <utils/common/StdDefs.h>
#include <bitset>
#include <vector>
@@ -62,7 +63,7 @@ public:
virtual ~MSLogicJunction();
/** @brief Container for link response and foes */
- typedef std::bitset<64> LinkBits;
+ typedef std::bitset<SUMO_MAX_CONNECTIONS> LinkBits;
/// initialises the junction after the whole net has been loaded
virtual void postloadInit();
diff --git a/src/microsim/MSNet.cpp b/src/microsim/MSNet.cpp
index 1665739..7eed49f 100644
--- a/src/microsim/MSNet.cpp
+++ b/src/microsim/MSNet.cpp
@@ -10,7 +10,7 @@
/// @author Mario Krumnow
/// @author Christoph Sommer
/// @date Tue, 06 Mar 2001
-/// @version $Id: MSNet.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSNet.cpp 19525 2015-12-04 11:08:33Z namdre $
///
// The simulated network and simulation perfomer
/****************************************************************************/
@@ -186,8 +186,7 @@ MSNet::MSNet(MSVehicleControl* vc, MSEventControl* beginOfTimestepEvents,
myStep = string2time(oc.getString("begin"));
myLogExecutionTime = !oc.getBool("no-duration-log");
myLogStepNumber = !oc.getBool("no-step-log");
- myTooManyVehicles = oc.getInt("max-num-vehicles");
- myInserter = new MSInsertionControl(*vc, string2time(oc.getString("max-depart-delay")), !oc.getBool("eager-insert"));
+ myInserter = new MSInsertionControl(*vc, string2time(oc.getString("max-depart-delay")), !oc.getBool("eager-insert"), oc.getInt("max-num-vehicles"));
myVehicleControl = vc;
myDetectorControl = new MSDetectorControl();
myEdges = 0;
@@ -221,7 +220,9 @@ MSNet::closeBuilding(MSEdgeControl* edges, MSJunctionControl* junctions,
MSTLLogicControl* tlc,
std::vector<SUMOTime> stateDumpTimes,
std::vector<std::string> stateDumpFiles,
- bool hasInternalLinks) {
+ bool hasInternalLinks,
+ bool lefthand,
+ SUMOReal version) {
myEdges = edges;
myJunctions = junctions;
myRouteLoaders = routeLoaders;
@@ -239,6 +240,8 @@ MSNet::closeBuilding(MSEdgeControl* edges, MSJunctionControl* junctions,
}
myHasInternalLinks = hasInternalLinks;
myHasElevation = checkElevation();
+ myLefthand = lefthand;
+ myVersion = version;
}
@@ -389,6 +392,17 @@ MSNet::closeSimulation(SUMOTime start) {
if (myVehicleControl->getEmergencyStops() > 0) {
msg << "Emergency Stops: " << myVehicleControl->getEmergencyStops() << "\n";
}
+ if (myPersonControl != 0 && myPersonControl->getLoadedPersonNumber() > 0) {
+ msg << "Persons: " << "\n"
+ << " Inserted: " << myPersonControl->getLoadedPersonNumber() << "\n"
+ << " Running: " << myPersonControl->getRunningPersonNumber() << "\n";
+ if (myPersonControl->getJammedPersonNumber() > 0) {
+ msg << " Jammed: " << myPersonControl->getJammedPersonNumber() << "\n";
+ }
+ }
+ if (OptionsCont::getOptions().getBool("duration-log.statistics")) {
+ msg << MSDevice_Tripinfo::printStatistics();
+ }
WRITE_MESSAGE(msg.str());
}
myDetectorControl->close(myStep);
@@ -504,9 +518,6 @@ MSNet::simulationStep() {
MSNet::SimulationState
MSNet::simulationState(SUMOTime stopTime) const {
- if (myTooManyVehicles > 0 && (int) myVehicleControl->getRunningVehicleNo() > myTooManyVehicles) {
- return SIMSTATE_TOO_MANY_VEHICLES;
- }
#ifndef NO_TRACI
if (TraCIServer::wasClosed()) {
return SIMSTATE_CONNECTION_CLOSED;
@@ -814,24 +825,24 @@ MSNet::getContainerStopID(const MSLane* lane, const SUMOReal pos) const {
bool
-MSNet::addChrgStn(MSChrgStn* chrgStn) {
- return myChrgStnDict.add(chrgStn->getID(), chrgStn);
+MSNet::addChargingStation(MSChargingStation* chargingStation) {
+ return myChargingStationDict.add(chargingStation->getID(), chargingStation);
}
-MSChrgStn*
-MSNet::getChrgStn(const std::string& id) const {
- return myChrgStnDict.get(id);
+MSChargingStation*
+MSNet::getChargingStation(const std::string& id) const {
+ return myChargingStationDict.get(id);
}
std::string
-MSNet::getChrgStnID(const MSLane* lane, const SUMOReal pos) const {
- const std::map<std::string, MSChrgStn*>& vals = myChrgStnDict.getMyMap();
- for (std::map<std::string, MSChrgStn*>::const_iterator it = vals.begin(); it != vals.end(); ++it) {
- MSChrgStn* chrgStn = it->second;
- if (&chrgStn->getLane() == lane && chrgStn->getBeginLanePosition() <= pos && chrgStn->getEndLanePosition() >= pos) {
- return chrgStn->getID();
+MSNet::getChargingStationID(const MSLane* lane, const SUMOReal pos) const {
+ const std::map<std::string, MSChargingStation*>& vals = myChargingStationDict.getMyMap();
+ for (std::map<std::string, MSChargingStation*>::const_iterator it = vals.begin(); it != vals.end(); ++it) {
+ MSChargingStation* chargingStation = it->second;
+ if (&chargingStation->getLane() == lane && chargingStation->getBeginLanePosition() <= pos && chargingStation->getEndLanePosition() >= pos) {
+ return chargingStation->getID();
}
}
return "";
diff --git a/src/microsim/MSNet.h b/src/microsim/MSNet.h
index 8f7a3fd..1c1a40f 100644
--- a/src/microsim/MSNet.h
+++ b/src/microsim/MSNet.h
@@ -8,7 +8,7 @@
/// @author Clemens Honomichl
/// @author Michael Behrisch
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSNet.h 18686 2015-08-21 14:52:03Z namdre $
+/// @version $Id: MSNet.h 19525 2015-12-04 11:08:33Z namdre $
///
// The simulated network and simulation perfomer
/****************************************************************************/
@@ -49,7 +49,7 @@
#include <utils/geom/Boundary.h>
#include <utils/geom/Position.h>
#include <utils/common/SUMOTime.h>
-#include <microsim/trigger/MSChrgStn.h>
+#include <microsim/trigger/MSChargingStation.h>
#include <microsim/MSStoppingPlace.h>
#include <utils/common/UtilExceptions.h>
#include <utils/common/NamedObjectCont.h>
@@ -157,12 +157,16 @@ public:
* @param[in] stateDumpTimes List of time steps at which state shall be written
* @param[in] stateDumpFiles Filenames for states
* @param[in] hasInternalLinks Whether the network actually contains internal links
+ * @param[in] lefthand Whether the network was built for left-hand traffic
+ * @param[in] version The network version
* @todo Try to move all this to the constructor?
*/
void closeBuilding(MSEdgeControl* edges, MSJunctionControl* junctions,
SUMORouteLoaderControl* routeLoaders, MSTLLogicControl* tlc,
std::vector<SUMOTime> stateDumpTimes, std::vector<std::string> stateDumpFiles,
- bool hasInternalLinks);
+ bool hasInternalLinks,
+ bool lefthand,
+ SUMOReal version);
/** @brief Returns whether the network has specific vehicle class permissions
@@ -491,27 +495,27 @@ public:
*
* If another charging station with the same id exists, false is returned.
* Otherwise, the charging station is added to the internal bus stop
- * container "myChrgStnDict".
+ * container "myChargingStationDict".
*
* This control gets responsible for deletion of the added charging station.
*
- * @param[in] chrgStn The charging station add
+ * @param[in] chargingStation The charging station add
* @return Whether the charging station could be added
*/
- bool addChrgStn(MSChrgStn* chrgStn);
+ bool addChargingStation(MSChargingStation* chargingStation);
/** @brief Returns the named charging station
* @param[in] id The id of the charging station to return.
* @return The named charging station, or 0 if no such stop exists
*/
- MSChrgStn* getChrgStn(const std::string& id) const;
+ MSChargingStation* getChargingStation(const std::string& id) const;
/** @brief Returns the charging station close to the given position
* @param[in] lane the lane of the charging station to return.
* @param[in] pos the position of the bus stop to return.
* @return The charging station id on the location, or "" if no such stop exists
*/
- std::string getChrgStnID(const MSLane* lane, const SUMOReal pos) const;
+ std::string getChargingStationID(const MSLane* lane, const SUMOReal pos) const;
/// @}
@@ -630,6 +634,16 @@ public:
return myHasElevation;
}
+ /// @brief return whether the network was built for lefthand traffic
+ bool lefthand() const {
+ return myLefthand;
+ }
+
+ /// @brief return the network version
+ SUMOReal version() const {
+ return myVersion;
+ }
+
protected:
/// @brief check all lanes for elevation data
bool checkElevation();
@@ -723,8 +737,11 @@ protected:
/// @brief Whether the network contains elevation data
bool myHasElevation;
- /// @brief Storage for maximum vehicle number
- int myTooManyVehicles;
+ /// @brief Whether the network was built for left-hand traffic
+ bool myLefthand;
+
+ /// @brief the network version
+ SUMOReal myVersion;
/// @brief Dictionary of bus stops
NamedObjectCont<MSStoppingPlace*> myBusStopDict;
@@ -733,7 +750,7 @@ protected:
NamedObjectCont<MSStoppingPlace*> myContainerStopDict;
/// @brief Dictionary of charging Stations
- NamedObjectCont<MSChrgStn*> myChrgStnDict;
+ NamedObjectCont<MSChargingStation*> myChargingStationDict;
/// @brief Container for vehicle state listener
std::vector<VehicleStateListener*> myVehicleStateListeners;
diff --git a/src/microsim/MSPersonControl.cpp b/src/microsim/MSPersonControl.cpp
index d34712f..9866436 100644
--- a/src/microsim/MSPersonControl.cpp
+++ b/src/microsim/MSPersonControl.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: MSPersonControl.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSPersonControl.cpp 18865 2015-09-18 21:44:49Z namdre $
///
// Stores all persons in the net and handles their waiting for cars.
/****************************************************************************/
@@ -49,7 +49,11 @@
// ===========================================================================
// method definitions
// ===========================================================================
-MSPersonControl::MSPersonControl() {}
+MSPersonControl::MSPersonControl():
+ myLoadedPersonNumber(0),
+ myRunningPersonNumber(0),
+ myJammedPersonNumber(0)
+{}
MSPersonControl::~MSPersonControl() {
@@ -65,6 +69,8 @@ bool
MSPersonControl::add(const std::string& id, MSPerson* person) {
if (myPersons.find(id) == myPersons.end()) {
myPersons[id] = person;
+ myLoadedPersonNumber++;
+ myRunningPersonNumber++;
return true;
}
return false;
@@ -99,6 +105,7 @@ MSPersonControl::erase(MSTransportable* person) {
}
const std::map<std::string, MSTransportable*>::iterator i = myPersons.find(id);
if (i != myPersons.end()) {
+ myRunningPersonNumber--;
delete i->second;
myPersons.erase(i);
}
@@ -238,7 +245,7 @@ MSPersonControl::abortWaiting() {
for (PersonVector::const_iterator j = pv.begin(); j != pv.end(); ++j) {
MSTransportable* p = (*j);
edge->removePerson(p);
- WRITE_WARNING("Person " + p->getID() + " aborted waiting for a ride that will never come.");
+ WRITE_WARNING("Person '" + p->getID() + "' aborted waiting for a ride that will never come.");
erase(p);
}
}
diff --git a/src/microsim/MSPersonControl.h b/src/microsim/MSPersonControl.h
index da040b9..c44e267 100644
--- a/src/microsim/MSPersonControl.h
+++ b/src/microsim/MSPersonControl.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: MSPersonControl.h 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSPersonControl.h 18865 2015-09-18 21:44:49Z namdre $
///
// Stores all persons in the net and handles their waiting for cars.
/****************************************************************************/
@@ -160,6 +160,37 @@ public:
return (unsigned int) myPersons.size();
}
+ /// @brief register a jammed person
+ void registerJammed() {
+ myJammedPersonNumber++;
+ }
+
+ /// @name Retrieval of Person statistics (always accessable)
+ /// @{
+
+ /** @brief Returns the number of build Persons
+ * @return The number of loaded (build) Persons
+ */
+ unsigned int getLoadedPersonNumber() const {
+ return myLoadedPersonNumber;
+ }
+
+
+ /** @brief Returns the number of build and inserted, but not yet deleted Persons
+ * @return The number simulated Persons
+ */
+ unsigned int getRunningPersonNumber() const {
+ return myRunningPersonNumber;
+ }
+
+ /** @brief Returns the number of times a person was jammed
+ * @return The number of times persons were jammed
+ */
+ unsigned int getJammedPersonNumber() const {
+ return myJammedPersonNumber;
+ }
+
+ /// @}
protected:
/// all persons by id
@@ -177,6 +208,15 @@ protected:
/// the lists of waiting persons
std::map<const MSEdge*, PersonVector> myWaiting4Vehicle;
+ /// @brief The number of build persons
+ unsigned int myLoadedPersonNumber;
+
+ /// @brief The number of persons within the network (build and inserted but not removed)
+ unsigned int myRunningPersonNumber;
+
+ /// @brief The number of jammed persons
+ unsigned int myJammedPersonNumber;
+
};
diff --git a/src/microsim/MSRouteHandler.cpp b/src/microsim/MSRouteHandler.cpp
index 8a69359..0b3bebf 100644
--- a/src/microsim/MSRouteHandler.cpp
+++ b/src/microsim/MSRouteHandler.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: MSRouteHandler.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSRouteHandler.cpp 19525 2015-12-04 11:08:33Z namdre $
///
// Parser and container for routes during their loading
/****************************************************************************/
@@ -155,11 +155,13 @@ MSRouteHandler::myStartElement(int element,
StringTokenizer st(desc);
std::string bsID = attrs.getOpt<std::string>(SUMO_ATTR_BUS_STOP, 0, ok, "");
MSStoppingPlace* bs = 0;
+ MSEdge* to = 0;
if (bsID != "") {
bs = MSNet::getInstance()->getBusStop(bsID);
if (bs == 0) {
throw ProcessError("Unknown bus stop '" + bsID + "' for person '" + myVehicleParameter->id + "'.");
}
+ to = &bs->getLane().getEdge();
}
if (attrs.hasAttribute(SUMO_ATTR_FROM)) {
const std::string fromID = attrs.get<std::string>(SUMO_ATTR_FROM, pid.c_str(), ok);
@@ -177,12 +179,14 @@ MSRouteHandler::myStartElement(int element,
} else if (myActivePlan->empty()) {
throw ProcessError("The start edge within for person '" + pid + "' is not known.");
}
- const std::string toID = attrs.get<std::string>(SUMO_ATTR_TO, pid.c_str(), ok);
- MSEdge* to = MSEdge::dictionary(toID);
if (to == 0) {
- throw ProcessError("The to edge '" + toID + "' within a ride of person '" + pid + "' is not known.");
+ const std::string toID = attrs.get<std::string>(SUMO_ATTR_TO, pid.c_str(), ok);
+ to = MSEdge::dictionary(toID);
+ if (to == 0) {
+ throw ProcessError("The to edge '" + toID + "' within a ride of person '" + pid + "' is not known.");
+ }
}
- myActivePlan->push_back(new MSPerson::MSPersonStage_Driving(*to, bs, st.getVector()));
+ myActivePlan->push_back(new MSPerson::MSPersonStage_Driving(*to, bs, -NUMERICAL_EPS, st.getVector()));
break;
}
case SUMO_TAG_WALK: {
@@ -209,32 +213,30 @@ MSRouteHandler::myStartElement(int element,
MSEdge::parseEdgesList(attrs.get<std::string>(SUMO_ATTR_EDGES, myVehicleParameter->id.c_str(), ok), myActiveRoute, myActiveRouteID);
parseWalkPositions(attrs, myVehicleParameter->id, myActiveRoute.front(), myActiveRoute.back(), departPos, arrivalPos, bs, ok);
} else {
- if (attrs.hasAttribute(SUMO_ATTR_FROM) && attrs.hasAttribute(SUMO_ATTR_TO)) {
- const std::string fromID = attrs.get<std::string>(SUMO_ATTR_FROM, myVehicleParameter->id.c_str(), ok);
- MSEdge* from = MSEdge::dictionary(fromID);
- if (from == 0) {
- throw ProcessError("The from edge '" + fromID + "' within a walk of person '" + myVehicleParameter->id + "' is not known.");
- }
- const std::string toID = attrs.get<std::string>(SUMO_ATTR_TO, myVehicleParameter->id.c_str(), ok);
- MSEdge* to = MSEdge::dictionary(toID);
- if (to == 0) {
- throw ProcessError("The to edge '" + toID + "' within a walk of person '" + myVehicleParameter->id + "' is not known.");
- }
- parseWalkPositions(attrs, myVehicleParameter->id, from, to, departPos, arrivalPos, bs, ok);
- MSNet::getInstance()->getPedestrianRouter().compute(from, to, departPos, arrivalPos,
- speed, 0, 0, myActiveRoute);
- if (myActiveRoute.empty()) {
- const std::string error = "No connection found between '" + from->getID() + "' and '" + to->getID() + "' for person '" + myVehicleParameter->id + "'.";
- if (OptionsCont::getOptions().getBool("ignore-route-errors")) {
- myActiveRoute.push_back(from);
- myActiveRoute.push_back(to); // pedestrian will teleport
- //WRITE_WARNING(error);
- } else {
- throw ProcessError(error);
- }
+ const std::string fromID = attrs.getOpt<std::string>(SUMO_ATTR_FROM, myVehicleParameter->id.c_str(), ok, "");
+ const MSEdge* from = fromID != "" || myActivePlan->empty() ? MSEdge::dictionary(fromID) : &myActivePlan->back()->getDestination();
+ if (from == 0) {
+ throw ProcessError("The from edge '" + fromID + "' within a walk of person '" + myVehicleParameter->id + "' is not known.");
+ }
+ const std::string toID = attrs.getOpt<std::string>(SUMO_ATTR_TO, myVehicleParameter->id.c_str(), ok, "");
+ const MSEdge* to = MSEdge::dictionary(toID);
+ if (toID != "" && to == 0) {
+ throw ProcessError("The to edge '" + toID + "' within a walk of person '" + myVehicleParameter->id + "' is not known.");
+ }
+ parseWalkPositions(attrs, myVehicleParameter->id, from, to, departPos, arrivalPos, bs, ok);
+ MSNet::getInstance()->getPedestrianRouter().compute(from, to, departPos, arrivalPos,
+ speed, 0, 0, myActiveRoute);
+ if (myActiveRoute.empty()) {
+ const std::string error = "No connection found between '" + from->getID() + "' and '" + to->getID() + "' for person '" + myVehicleParameter->id + "'.";
+ if (!MSGlobals::gCheckRoutes) {
+ myActiveRoute.push_back(from);
+ myActiveRoute.push_back(to); // pedestrian will teleport
+ //WRITE_WARNING(error);
+ } else {
+ throw ProcessError(error);
}
- //std::cout << myVehicleParameter->id << " edges=" << toString(myActiveRoute) << "\n";
}
+ //std::cout << myVehicleParameter->id << " edges=" << toString(myActiveRoute) << "\n";
}
if (myActiveRoute.empty()) {
throw ProcessError("No edges to walk for person '" + myVehicleParameter->id + "'.");
@@ -285,7 +287,7 @@ MSRouteHandler::myStartElement(int element,
if (to == 0) {
throw ProcessError("The to edge '" + toID + "' within a transport of container '" + containerId + "' is not known.");
}
- myActiveContainerPlan->push_back(new MSContainer::MSContainerStage_Driving(*to, cs, st.getVector()));
+ myActiveContainerPlan->push_back(new MSContainer::MSContainerStage_Driving(*to, cs, -NUMERICAL_EPS, st.getVector()));
break;
}
case SUMO_TAG_TRANSHIP: {
@@ -331,7 +333,7 @@ MSRouteHandler::myStartElement(int element,
myActiveRoute.push_back(to);
if (myActiveRoute.empty()) {
const std::string error = "No connection found between '" + from->getID() + "' and '" + to->getID() + "' for container '" + myVehicleParameter->id + "'.";
- if (OptionsCont::getOptions().getBool("ignore-route-errors")) {
+ if (!MSGlobals::gCheckRoutes) {
myActiveRoute.push_back(from);
} else {
WRITE_ERROR(error);
@@ -667,11 +669,10 @@ MSRouteHandler::closeVehicle() {
// try to build the vehicle
SUMOVehicle* vehicle = 0;
if (vehControl.getVehicle(myVehicleParameter->id) == 0) {
- const bool ignoreRouteErrors = OptionsCont::getOptions().getBool("ignore-route-errors");
try {
- vehicle = vehControl.buildVehicle(myVehicleParameter, route, vtype, ignoreRouteErrors);
+ vehicle = vehControl.buildVehicle(myVehicleParameter, route, vtype, !MSGlobals::gCheckRoutes);
} catch (const ProcessError& e) {
- if (ignoreRouteErrors) {
+ if (!MSGlobals::gCheckRoutes) {
WRITE_WARNING(e.what());
vehControl.deleteVehicle(0, true);
myVehicleParameter = 0;
@@ -701,7 +702,7 @@ MSRouteHandler::closeVehicle() {
MSNet::getInstance()->getInsertionControl().add(vehicle);
SUMOVehicleParameter* newPars = new SUMOVehicleParameter(*myVehicleParameter);
newPars->id = myVehicleParameter->id + "." + toString(i);
- vehicle = vehControl.buildVehicle(newPars, route, vtype, OptionsCont::getOptions().getBool("ignore-route-errors"));
+ vehicle = vehControl.buildVehicle(newPars, route, vtype, !MSGlobals::gCheckRoutes);
vehControl.addVehicle(newPars->id, vehicle);
}
}
@@ -848,7 +849,7 @@ MSRouteHandler::addStop(const SUMOSAXAttributes& attrs) {
if (!ok) {
return;
}
- MSEdge* edge = 0;
+ const MSEdge* edge = 0;
// try to parse the assigned bus stop
if (stop.busstop != "") {
// ok, we have a bus stop
@@ -875,16 +876,16 @@ MSRouteHandler::addStop(const SUMOSAXAttributes& attrs) {
stop.endPos = cs->getEndLanePosition();
stop.startPos = cs->getBeginLanePosition();
edge = &l.getEdge();
- } else if (stop.chrgStn != "") {
+ } else if (stop.chargingStation != "") {
// ok, we have a Charging station
- MSChrgStn* cs = MSNet::getInstance()->getChrgStn(stop.busstop);
+ MSChargingStation* cs = MSNet::getInstance()->getChargingStation(stop.busstop);
if (cs != 0) {
const MSLane& l = cs->getLane();
stop.lane = l.getID();
stop.endPos = cs->getEndLanePosition();
stop.startPos = cs->getBeginLanePosition();
} else {
- WRITE_ERROR("The charging station '" + stop.chrgStn + "' is not known" + errorSuffix);
+ WRITE_ERROR("The charging station '" + stop.chargingStation + "' is not known" + errorSuffix);
return;
}
} else {
@@ -897,8 +898,23 @@ MSRouteHandler::addStop(const SUMOSAXAttributes& attrs) {
return;
}
} else {
- WRITE_ERROR("A stop must be placed on a bus stop, a container stop or a lane" + errorSuffix);
- return;
+ if (myActivePlan && !myActivePlan->empty()) {
+ const MSStoppingPlace* bs = myActivePlan->back()->getDestinationStop();
+ if (bs != 0) {
+ edge = &bs->getLane().getEdge();
+ stop.lane = bs->getLane().getID();
+ stop.endPos = bs->getEndLanePosition();
+ stop.startPos = bs->getBeginLanePosition();
+ } else {
+ edge = &myActivePlan->back()->getDestination();
+ stop.lane = edge->getLanes()[0]->getID();
+ stop.endPos = myActivePlan->back()->getArrivalPos();
+ stop.startPos = stop.endPos - POSITION_EPS;
+ }
+ } else {
+ WRITE_ERROR("A stop must be placed on a bus stop, a container stop or a lane" + errorSuffix);
+ return;
+ }
}
edge = &MSLane::dictionary(stop.lane)->getEdge();
if (myActivePlan &&
@@ -933,8 +949,12 @@ MSRouteHandler::addStop(const SUMOSAXAttributes& attrs) {
}
if (myActivePlan != 0) {
std::string actType = attrs.getOpt<std::string>(SUMO_ATTR_ACTTYPE, 0, ok, "waiting");
+ SUMOReal pos = (stop.startPos + stop.endPos) / 2.;
+ if (!myActivePlan->empty()) {
+ pos = myActivePlan->back()->getArrivalPos();
+ }
myActivePlan->push_back(new MSPerson::MSPersonStage_Waiting(
- MSLane::dictionary(stop.lane)->getEdge(), stop.duration, stop.until, stop.startPos, actType));
+ MSLane::dictionary(stop.lane)->getEdge(), stop.duration, stop.until, pos, actType));
} else if (myActiveContainerPlan != 0) {
std::string actType = attrs.getOpt<std::string>(SUMO_ATTR_ACTTYPE, 0, ok, "waiting");
myActiveContainerPlan->push_back(new MSContainer::MSContainerStage_Waiting(
@@ -953,7 +973,7 @@ MSRouteHandler::addStop(const SUMOSAXAttributes& attrs) {
void
MSRouteHandler::parseWalkPositions(const SUMOSAXAttributes& attrs, const std::string& personID,
- const MSEdge* fromEdge, const MSEdge* toEdge,
+ const MSEdge* fromEdge, const MSEdge*& toEdge,
SUMOReal& departPos, SUMOReal& arrivalPos, MSStoppingPlace*& bs, bool& ok) {
const std::string description = "person '" + personID + "' walking from " + fromEdge->getID();
@@ -962,19 +982,30 @@ MSRouteHandler::parseWalkPositions(const SUMOSAXAttributes& attrs, const std::st
std::string bsID = attrs.getOpt<std::string>(SUMO_ATTR_BUS_STOP, 0, ok, "");
if (bsID != "") {
- if (attrs.hasAttribute(SUMO_ATTR_ARRIVALPOS)) {
- WRITE_WARNING("Ignoring '" + toString(SUMO_ATTR_ARRIVALPOS)
- + "' for " + description + " because '" + toString(SUMO_ATTR_BUS_STOP) + "' is given.");
- }
bs = MSNet::getInstance()->getBusStop(bsID);
if (bs == 0) {
throw ProcessError("Unknown bus stop '" + bsID + "' for " + description + ".");
}
- arrivalPos = bs->getEndLanePosition();
+ if (toEdge == 0) {
+ toEdge = &bs->getLane().getEdge();
+ }
+ arrivalPos = (bs->getBeginLanePosition() + bs->getEndLanePosition()) / 2.;
+ if (attrs.hasAttribute(SUMO_ATTR_ARRIVALPOS)) {
+ const SUMOReal arrPos = parseWalkPos(SUMO_ATTR_ARRIVALPOS, description, toEdge,
+ attrs.get<std::string>(SUMO_ATTR_ARRIVALPOS, description.c_str(), ok));
+ if (arrPos >= bs->getBeginLanePosition() && arrPos < bs->getEndLanePosition()) {
+ arrivalPos = arrPos;
+ } else {
+ WRITE_WARNING("Ignoring arrivalPos for " + description + " because it is outside the given stop '" + toString(SUMO_ATTR_BUS_STOP) + "'.");
+ }
+ }
} else {
+ if (toEdge == 0) {
+ throw ProcessError("No destination edge for " + description + ".");
+ }
if (attrs.hasAttribute(SUMO_ATTR_ARRIVALPOS)) {
arrivalPos = parseWalkPos(SUMO_ATTR_ARRIVALPOS, description, toEdge,
- attrs.getOpt<std::string>(SUMO_ATTR_ARRIVALPOS, description.c_str(), ok, toString(-POSITION_EPS)));
+ attrs.get<std::string>(SUMO_ATTR_ARRIVALPOS, description.c_str(), ok));
} else {
arrivalPos = -NUMERICAL_EPS;
}
diff --git a/src/microsim/MSRouteHandler.h b/src/microsim/MSRouteHandler.h
index ab5bae7..b23b622 100644
--- a/src/microsim/MSRouteHandler.h
+++ b/src/microsim/MSRouteHandler.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: MSRouteHandler.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSRouteHandler.h 19377 2015-11-18 12:08:00Z behrisch $
///
// Parser and container for routes during their loading
/****************************************************************************/
@@ -145,7 +145,7 @@ protected:
///@ brief parse depart- and arrival positions of a walk
void parseWalkPositions(const SUMOSAXAttributes& attrs, const std::string& personID,
- const MSEdge* fromEdge, const MSEdge* toEdge,
+ const MSEdge* fromEdge, const MSEdge*& toEdge,
SUMOReal& departPos, SUMOReal& arrivalPos, MSStoppingPlace*& bs, bool& ok);
SUMOReal parseWalkPos(SumoXMLAttr attr, const std::string& id, const MSEdge* edge, const std::string& val);
diff --git a/src/microsim/MSStoppingPlace.cpp b/src/microsim/MSStoppingPlace.cpp
index 85f1cf2..c874097 100644
--- a/src/microsim/MSStoppingPlace.cpp
+++ b/src/microsim/MSStoppingPlace.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 13.12.2005
-/// @version $Id: MSStoppingPlace.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSStoppingPlace.cpp 19388 2015-11-19 21:33:01Z behrisch $
///
// A lane area vehicles can halt at
/****************************************************************************/
@@ -31,7 +31,10 @@
#include <cassert>
#include <utils/vehicle/SUMOVehicle.h>
+#include <utils/geom/Position.h>
#include <microsim/MSVehicleType.h>
+#include "MSLane.h"
+#include "MSTransportable.h"
#include "MSStoppingPlace.h"
#ifdef CHECK_MEMORY_LEAKS
@@ -47,7 +50,7 @@ MSStoppingPlace::MSStoppingPlace(const std::string& id,
MSLane& lane,
SUMOReal begPos, SUMOReal endPos)
: Named(id), myLines(lines), myLane(lane),
- myBegPos(begPos), myEndPos(endPos), myLastFreePos(endPos) {
+ myBegPos(begPos), myEndPos(endPos), myLastFreePos(endPos), myWaitingPos(endPos) {
computeLastFreePos();
}
@@ -89,6 +92,34 @@ MSStoppingPlace::getLastFreePos(const SUMOVehicle& forVehicle) const {
}
+Position
+MSStoppingPlace::getWaitPosition() const {
+ return myLane.getShape().positionAtOffset(myLane.interpolateLanePosToGeometryPos(myWaitingPos), .5);
+}
+
+
+void
+MSStoppingPlace::addTransportable(MSTransportable* p) {
+ myWaitingTransportables.push_back(p);
+ myWaitingPos -= p->getVehicleType().getLength();
+}
+
+
+void
+MSStoppingPlace::removeTransportable(MSTransportable* p) {
+ std::vector<MSTransportable*>::iterator i = std::find(myWaitingTransportables.begin(), myWaitingTransportables.end(), p);
+ if (i != myWaitingTransportables.end()) {
+ if (i == myWaitingTransportables.end() - 1) {
+ myWaitingPos -= p->getVehicleType().getLength();
+ }
+ if (i == myWaitingTransportables.begin()) {
+ myWaitingPos = getEndLanePosition();
+ }
+ myWaitingTransportables.erase(i);
+ }
+}
+
+
void
MSStoppingPlace::leaveFrom(SUMOVehicle* what) {
assert(myEndPositions.find(what) != myEndPositions.end());
diff --git a/src/microsim/MSStoppingPlace.h b/src/microsim/MSStoppingPlace.h
index 25c12f8..4d7f9f7 100644
--- a/src/microsim/MSStoppingPlace.h
+++ b/src/microsim/MSStoppingPlace.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 13.12.2005
-/// @version $Id: MSStoppingPlace.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSStoppingPlace.h 19388 2015-11-19 21:33:01Z behrisch $
///
// A lane area vehicles can halt at
/****************************************************************************/
@@ -44,6 +44,7 @@
class MSLane;
class SUMOVehicle;
class MSTransportable;
+class Position;
// ===========================================================================
@@ -135,6 +136,13 @@ public:
SUMOReal getLastFreePos(const SUMOVehicle& forVehicle) const;
+ /** @brief Returns the next free waiting place for pedestrians / containers
+ *
+ * @return The next free waiting place for pedestrians / containers
+ */
+ Position getWaitPosition() const;
+
+
/** @brief Returns the number of transportables waiting on this stop
*/
unsigned int getTransportableNumber() const {
@@ -142,17 +150,10 @@ public:
}
/// @brief adds a transportable to this stop
- void addTransportable(MSTransportable* p) {
- myWaitingTransportables.push_back(p);
- }
+ void addTransportable(MSTransportable* p);
/// @brief Removes a transportable from this stop
- void removeTransportable(MSTransportable* p) {
- std::vector<MSTransportable*>::iterator i = std::find(myWaitingTransportables.begin(), myWaitingTransportables.end(), p);
- if (i != myWaitingTransportables.end()) {
- myWaitingTransportables.erase(i);
- }
- }
+ void removeTransportable(MSTransportable* p);
protected:
/** @brief Computes the last free position on this stop
@@ -172,17 +173,20 @@ protected:
std::map<SUMOVehicle*, std::pair<SUMOReal, SUMOReal> > myEndPositions;
/// @brief The lane this bus stop is located at
- MSLane& myLane;
+ const MSLane& myLane;
/// @brief The begin position this bus stop is located at
- SUMOReal myBegPos;
+ const SUMOReal myBegPos;
/// @brief The end position this bus stop is located at
- SUMOReal myEndPos;
+ const SUMOReal myEndPos;
/// @brief The last free position at this stop (variable)
SUMOReal myLastFreePos;
+ /// @brief The next free position for persons / containers
+ SUMOReal myWaitingPos;
+
/// @brief Persons waiting at this stop
std::vector<MSTransportable*> myWaitingTransportables;
diff --git a/src/microsim/MSTransportable.cpp b/src/microsim/MSTransportable.cpp
index 7523e4e..d76b569 100644
--- a/src/microsim/MSTransportable.cpp
+++ b/src/microsim/MSTransportable.cpp
@@ -4,7 +4,7 @@
/// @author Andreas Kendziorra
/// @author Michael Behrisch
/// @date Thu, 12 Jun 2014
-/// @version $Id: MSTransportable.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSTransportable.cpp 19388 2015-11-19 21:33:01Z behrisch $
///
// The common superclass for modelling transportable objects like persons and containers
/****************************************************************************/
@@ -45,8 +45,8 @@
/* -------------------------------------------------------------------------
* MSTransportable::Stage - methods
* ----------------------------------------------------------------------- */
-MSTransportable::Stage::Stage(const MSEdge& destination, StageType type)
- : myDestination(destination), myDeparted(-1), myArrived(-1), myType(type) {}
+MSTransportable::Stage::Stage(const MSEdge& destination, MSStoppingPlace* toStop, const SUMOReal arrivalPos, StageType type)
+ : myDestination(destination), myDestinationStop(toStop), myArrivalPos(arrivalPos), myDeparted(-1), myArrived(-1), myType(type) {}
MSTransportable::Stage::~Stage() {}
@@ -55,6 +55,7 @@ MSTransportable::Stage::getDestination() const {
return myDestination;
}
+
void
MSTransportable::Stage::setDeparted(SUMOTime now) {
if (myDeparted < 0) {
@@ -84,8 +85,7 @@ MSTransportable::Stage::getLanePosition(const MSLane* lane, SUMOReal at, SUMORea
SUMOReal
MSTransportable::Stage::getEdgeAngle(const MSEdge* e, SUMOReal at) const {
- PositionVector shp = e->getLanes()[0]->getShape();
- return -shp.rotationDegreeAtOffset(at);
+ return e->getLanes()[0]->getShape().rotationAtOffset(at);
}
diff --git a/src/microsim/MSTransportable.h b/src/microsim/MSTransportable.h
index 6b59e19..eca7f1c 100644
--- a/src/microsim/MSTransportable.h
+++ b/src/microsim/MSTransportable.h
@@ -2,7 +2,7 @@
/// @file MSTransportable.h
/// @author Michael Behrisch
/// @date Tue, 21 Apr 2015
-/// @version $Id: MSTransportable.h 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSTransportable.h 19388 2015-11-19 21:33:01Z behrisch $
///
// The common superclass for modelling transportable objects like persons and containers
/****************************************************************************/
@@ -36,10 +36,12 @@
class MSEdge;
class MSLane;
class MSNet;
+class MSStoppingPlace;
class MSVehicleType;
class OutputDevice;
class Position;
class SUMOVehicleParameter;
+class SUMOVehicle;
// ===========================================================================
@@ -65,7 +67,7 @@ public:
class Stage {
public:
/// constructor
- Stage(const MSEdge& destination, StageType type);
+ Stage(const MSEdge& destination, MSStoppingPlace* toStop, const SUMOReal arrivalPos, StageType type);
/// destructor
virtual ~Stage();
@@ -73,6 +75,15 @@ public:
/// returns the destination edge
const MSEdge& getDestination() const;
+ /// returns the destination stop (if any)
+ const MSStoppingPlace* getDestinationStop() const {
+ return myDestinationStop;
+ }
+
+ SUMOReal getArrivalPos() const {
+ return myArrivalPos;
+ }
+
/// Returns the current edge
virtual const MSEdge* getEdge() const = 0;
virtual const MSEdge* getFromEdge() const = 0;
@@ -93,7 +104,7 @@ public:
virtual std::string getStageDescription() const = 0;
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* transportable, SUMOTime now, MSEdge* previousEdge, const SUMOReal at) = 0;
+ virtual void proceed(MSNet* net, MSTransportable* transportable, SUMOTime now, Stage* previous) = 0;
/// logs end of the step
void setDeparted(SUMOTime now);
@@ -109,6 +120,11 @@ public:
return false;
}
+ /// @brief Whether the transportable waits for a vehicle
+ virtual SUMOVehicle* getVehicle() const {
+ return 0;
+ }
+
/// @brief the time this transportable spent waiting
virtual SUMOTime getWaitingTime(SUMOTime now) const = 0;
@@ -140,18 +156,24 @@ public:
* @param[in] os The stream to write the information into
* @exception IOError not yet implemented
*/
- virtual void beginEventOutput(const MSTransportable& container, SUMOTime t, OutputDevice& os) const = 0;
+ virtual void beginEventOutput(const MSTransportable& transportable, SUMOTime t, OutputDevice& os) const = 0;
/** @brief Called for writing the events output (end of an action)
* @param[in] os The stream to write the information into
* @exception IOError not yet implemented
*/
- virtual void endEventOutput(const MSTransportable& container, SUMOTime t, OutputDevice& os) const = 0;
+ virtual void endEventOutput(const MSTransportable& transportable, SUMOTime t, OutputDevice& os) const = 0;
protected:
/// the next edge to reach by getting transported
const MSEdge& myDestination;
+ /// the stop to reach by getting transported (if any)
+ MSStoppingPlace* const myDestinationStop;
+
+ /// the position at which we want to arrive
+ SUMOReal myArrivalPos;
+
/// the time at which this stage started
SUMOTime myDeparted;
@@ -170,7 +192,7 @@ public:
};
- /// the structure holding the plan of a container
+ /// the structure holding the plan of a transportable
typedef std::vector<MSTransportable::Stage*> MSTransportablePlan;
/// constructor
@@ -180,7 +202,7 @@ public:
virtual ~MSTransportable();
/* @brief proceeds to the next step of the route,
- * @return Whether the containers plan continues */
+ * @return Whether the transportables plan continues */
virtual bool proceed(MSNet* net, SUMOTime time) = 0;
/// returns the id of the transportable
@@ -223,19 +245,19 @@ public:
/// @brief Return the position on the edge
virtual SUMOReal getEdgePos() const;
- /// @brief Return the Network coordinate of the container
+ /// @brief Return the Network coordinate of the transportable
virtual Position getPosition() const;
- /// @brief return the current angle of the container
+ /// @brief return the current angle of the transportable
virtual SUMOReal getAngle() const;
- /// @brief the time this container spent waiting in seconds
+ /// @brief the time this transportable spent waiting in seconds
virtual SUMOReal getWaitingSeconds() const;
- /// @brief the current speed of the container
+ /// @brief the current speed of the transportable
virtual SUMOReal getSpeed() const;
- /// @brief the current stage type of the container
+ /// @brief the current stage type of the transportable
StageType getCurrentStageType() const {
return (*myStep)->getStageType();
}
@@ -264,28 +286,33 @@ public:
*/
virtual void routeOutput(OutputDevice& os) const = 0;
- /// Whether the container waits for a vehicle of the line specified.
+ /// Whether the transportable waits for a vehicle of the line specified.
bool isWaitingFor(const std::string& line) const {
return (*myStep)->isWaitingFor(line);
}
- /// Whether the container waits for a vehicle
+ /// Whether the transportable waits for a vehicle
bool isWaiting4Vehicle() const {
return (*myStep)->isWaiting4Vehicle();
}
+ /// The vehicle associated with this transportable
+ SUMOVehicle* getVehicle() const {
+ return (*myStep)->getVehicle();
+ }
+
protected:
- /// the plan of the container
+ /// the plan of the transportable
const SUMOVehicleParameter* myParameter;
- /// @brief This container's type. (mainly used for drawing related information
+ /// @brief This transportable's type. (mainly used for drawing related information
/// Note sure if it is really necessary
const MSVehicleType* myVType;
/// @brief Whether events shall be written
bool myWriteEvents;
- /// the plan of the container
+ /// the plan of the transportable
MSTransportablePlan* myPlan;
/// the iterator over the route
diff --git a/src/microsim/MSVehicle.cpp b/src/microsim/MSVehicle.cpp
index 5bd6e3e..2958aa1 100644
--- a/src/microsim/MSVehicle.cpp
+++ b/src/microsim/MSVehicle.cpp
@@ -12,7 +12,7 @@
/// @author Axel Wegener
/// @author Christoph Sommer
/// @date Mon, 05 Mar 2001
-/// @version $Id: MSVehicle.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSVehicle.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Representation of a vehicle in the micro simulation
/****************************************************************************/
@@ -52,7 +52,6 @@
#include <utils/common/StringUtils.h>
#include <utils/common/StdDefs.h>
#include <utils/geom/GeomHelper.h>
-#include <utils/geom/Line.h>
#include <utils/iodevices/OutputDevice.h>
#include <utils/iodevices/BinaryInputDevice.h>
#include <utils/xml/SUMOSAXAttributes.h>
@@ -70,6 +69,7 @@
#include "MSContainer.h"
#include "MSContainerControl.h"
#include "MSLane.h"
+#include "MSJunction.h"
#include "MSVehicle.h"
#include "MSEdge.h"
#include "MSVehicleType.h"
@@ -356,6 +356,26 @@ MSVehicle::Influencer::postProcessVTD(MSVehicle* v) {
myAmVTDControlled = false;
}
+SUMOReal
+MSVehicle::Influencer::implicitSpeedVTD(const MSVehicle* veh, SUMOReal oldSpeed) {
+ const SUMOReal dist = veh->getDistanceToPosition(myVTDPos, &myVTDLane->getEdge());
+ if (DIST2SPEED(dist) > veh->getMaxSpeed()) {
+ return oldSpeed;
+ } else {
+ return DIST2SPEED(dist);
+ }
+}
+
+SUMOReal
+MSVehicle::Influencer::implicitDeltaPosVTD(const MSVehicle* veh) {
+ const SUMOReal dist = veh->getDistanceToPosition(myVTDPos, &myVTDLane->getEdge());
+ if (DIST2SPEED(dist) > veh->getMaxSpeed()) {
+ return 0;
+ } else {
+ return dist;
+ }
+}
+
#endif
@@ -470,7 +490,7 @@ MSVehicle::replaceRoute(const MSRoute* newRoute, bool onInit, int offset) {
myLastBestLanesInternalLane = 0;
updateBestLanes(true, onInit ? (*myCurrEdge)->getLanes().front() : 0);
// update arrival definition
- calculateArrivalPos();
+ calculateArrivalParams();
// save information that the vehicle was rerouted
myNumberReroutes++;
MSNet::getInstance()->informVehicleStateListener(this, MSNet::VEHICLE_STATE_NEWROUTE);
@@ -613,8 +633,11 @@ MSVehicle::getPosition(const SUMOReal offset) const {
Position result = myLane->geometryPositionAtOffset(getPositionOnLane() + offset);
if (changingLanes) {
const Position other = getLaneChangeModel().getShadowLane()->geometryPositionAtOffset(getPositionOnLane() + offset);
- Line line = getLaneChangeModel().isLaneChangeMidpointPassed() ? Line(other, result) : Line(result, other);
- return line.getPositionAtDistance(getLaneChangeModel().getLaneChangeCompletion() * line.length());
+ const SUMOReal dist = getLaneChangeModel().getLaneChangeCompletion() * result.distanceTo(other);
+ if (getLaneChangeModel().isLaneChangeMidpointPassed()) {
+ return PositionVector::positionAtOffset(other, result, dist);
+ }
+ return PositionVector::positionAtOffset(result, other, dist);
}
return result;
}
@@ -641,7 +664,7 @@ MSVehicle::getAngle() const {
Position p1;
Position p2;
if (isParking()) {
- return -myLane->getShape().rotationDegreeAtOffset(myLane->interpolateLanePosToGeometryPos(getPositionOnLane()));
+ return myLane->getShape().rotationAtOffset(myLane->interpolateLanePosToGeometryPos(getPositionOnLane()));
}
if (getLaneChangeModel().isChangingLanes()) {
// cannot use getPosition() because it already includes the offset to the side and thus messes up the angle
@@ -657,16 +680,15 @@ MSVehicle::getAngle() const {
? myFurtherLanes.back()->geometryPositionAtOffset(myFurtherLanes.back()->getPartialOccupatorEnd())
: myLane->getShape().front();
if (getLaneChangeModel().isChangingLanes() && myFurtherLanes.size() > 0 && getLaneChangeModel().getShadowLane(myFurtherLanes.back()) == 0) {
- // special case where there target lane has no predecessor
+ // special case where the target lane has no predecessor
p2 = myLane->getShape().front();
}
}
- SUMOReal result = (p1 != p2 ?
- atan2(p1.x() - p2.x(), p2.y() - p1.y()) * 180. / M_PI :
- -myLane->getShape().rotationDegreeAtOffset(myLane->interpolateLanePosToGeometryPos(getPositionOnLane())));
+ SUMOReal result = (p1 != p2 ? p2.angleTo2D(p1) :
+ myLane->getShape().rotationAtOffset(myLane->interpolateLanePosToGeometryPos(getPositionOnLane())));
if (getLaneChangeModel().isChangingLanes()) {
const SUMOReal angleOffset = 60 / STEPS2TIME(MSGlobals::gLaneChangeDuration) * (getLaneChangeModel().isLaneChangeMidpointPassed() ? 1 - getLaneChangeModel().getLaneChangeCompletion() : getLaneChangeModel().getLaneChangeCompletion());
- result += getLaneChangeModel().getLaneChangeDirection() * angleOffset;
+ result += getLaneChangeModel().getLaneChangeDirection() * DEG2RAD(angleOffset);
}
return result;
}
@@ -983,10 +1005,6 @@ MSVehicle::planMoveInternal(const SUMOTime t, const MSVehicle* pred, DriveItemVe
if (myInfluencer != 0) {
const SUMOReal vMin = MAX2(SUMOReal(0), cfModel.getSpeedAfterMaxDecel(myState.mySpeed));
v = myInfluencer->influenceSpeed(MSNet::getInstance()->getCurrentTimeStep(), v, v, vMin, maxV);
- // !!! recheck - why is it done, here?
- if (myInfluencer->isVTDControlled()) {
- return; // !!! temporary
- }
}
#endif
@@ -1003,6 +1021,7 @@ MSVehicle::planMoveInternal(const SUMOTime t, const MSVehicle* pred, DriveItemVe
SUMOReal vLinkPass = MIN2(estimateSpeedAfterDistance(seen, v, getVehicleType().getCarFollowModel().getMaxAccel()), laneMaxV); // upper bound
unsigned int view = 0;
DriveProcessItem* lastLink = 0;
+ bool slowedDownForMinor = false; // whether the vehicle already had to slow down on approach to a minor link
SUMOReal gap = 0;
if (pred != 0) {
if (pred == myLane->getPartialOccupator()) {
@@ -1099,9 +1118,13 @@ MSVehicle::planMoveInternal(const SUMOTime t, const MSVehicle* pred, DriveItemVe
}
}
- // - even if red, if we cannot break we should issue a request
// - always issue a request to leave the intersection we are currently on
- bool setRequest = v > 0 || (myLane->getEdge().isInternal() && lastLink == 0);
+ const bool leavingCurrentIntersection = myLane->getEdge().isInternal() && lastLink == 0;
+ // - do not issue a request to enter an intersection after we already slowed down for an earlier one
+ const bool abortRequestAfterMinor = slowedDownForMinor && (*link)->getInternalLaneBefore() == 0;
+ // - even if red, if we cannot break we should issue a request
+ bool setRequest = (v > 0 && !abortRequestAfterMinor) || (leavingCurrentIntersection);
+
SUMOReal vLinkWait = MIN2(v, cfModel.stopSpeed(this, getSpeed(), stopDist));
const SUMOReal brakeDist = cfModel.brakeGap(myState.mySpeed) - myState.mySpeed * cfModel.getHeadwayTime();
if (yellowOrRed && seen >= brakeDist) {
@@ -1112,32 +1135,32 @@ MSVehicle::planMoveInternal(const SUMOTime t, const MSVehicle* pred, DriveItemVe
}
#ifdef HAVE_INTERNAL_LANES
- // we want to pass the link but need to check for foes on internal lanes
- const MSLink::LinkLeaders linkLeaders = (*link)->getLeaderInfo(seen, getVehicleType().getMinGap());
- for (MSLink::LinkLeaders::const_iterator it = linkLeaders.begin(); it != linkLeaders.end(); ++it) {
- // the vehicle to enter the junction first has priority
- const MSVehicle* leader = (*it).vehAndGap.first;
- if (leader == 0) {
- // leader is a pedestrian. Passing 'this' as a dummy.
- //std::cout << SIMTIME << " veh=" << getID() << " is blocked on link to " << (*link)->getViaLaneOrLane()->getID() << " by pedestrian. dist=" << it->distToCrossing << "\n";
- adaptToLeader(std::make_pair(this, -1), seen, lastLink, lane, v, vLinkPass, it->distToCrossing);
- } else if (leader->myLinkLeaders[(*link)->getJunction()].count(getID()) == 0) {
- // leader isn't already following us, now we follow it
- myLinkLeaders[(*link)->getJunction()].insert(leader->getID());
- adaptToLeader(it->vehAndGap, seen, lastLink, lane, v, vLinkPass, it->distToCrossing);
- if (lastLink != 0) {
- // we are not yet on the junction with this linkLeader.
- // at least we can drive up to the previous link and stop there
- v = MAX2(v, lastLink->myVLinkWait);
- }
- // if blocked by a leader from the same lane we must yield our request
- if (v < SUMO_const_haltingSpeed && leader->getLane()->getLogicalPredecessorLane() == myLane->getLogicalPredecessorLane()) {
- setRequest = false;
+ if (MSGlobals::gUsingInternalLanes) {
+ // we want to pass the link but need to check for foes on internal lanes
+ const MSLink::LinkLeaders linkLeaders = (*link)->getLeaderInfo(seen, getVehicleType().getMinGap());
+ for (MSLink::LinkLeaders::const_iterator it = linkLeaders.begin(); it != linkLeaders.end(); ++it) {
+ // the vehicle to enter the junction first has priority
+ const MSVehicle* leader = (*it).vehAndGap.first;
+ if (leader == 0) {
+ // leader is a pedestrian. Passing 'this' as a dummy.
+ //std::cout << SIMTIME << " veh=" << getID() << " is blocked on link to " << (*link)->getViaLaneOrLane()->getID() << " by pedestrian. dist=" << it->distToCrossing << "\n";
+ adaptToLeader(std::make_pair(this, -1), seen, lastLink, lane, v, vLinkPass, it->distToCrossing);
+ } else if ((*link)->isLeader(this, leader)) {
+ adaptToLeader(it->vehAndGap, seen, lastLink, lane, v, vLinkPass, it->distToCrossing);
+ if (lastLink != 0) {
+ // we are not yet on the junction with this linkLeader.
+ // at least we can drive up to the previous link and stop there
+ v = MAX2(v, lastLink->myVLinkWait);
+ }
+ // if blocked by a leader from the same lane we must yield our request
+ if (v < SUMO_const_haltingSpeed && leader->getLane()->getLogicalPredecessorLane() == myLane->getLogicalPredecessorLane()) {
+ setRequest = false;
+ }
}
}
+ // if this is the link between two internal lanes we may have to slow down for pedestrians
+ vLinkWait = MIN2(vLinkWait, v);
}
- // if this is the link between two internal lanes we may have to slow down for pedestrians
- vLinkWait = MIN2(vLinkWait, v);
#endif
if (lastLink != 0) {
@@ -1150,6 +1173,7 @@ MSVehicle::planMoveInternal(const SUMOTime t, const MSVehicle* pred, DriveItemVe
if (!(*link)->havePriority() && stopDist > cfModel.getMaxDecel() && brakeDist < seen) {
// vehicle decelerates just enough to be able to stop if necessary and then accelerates
arrivalSpeed = cfModel.getMaxDecel() + cfModel.getMaxAccel();
+ slowedDownForMinor = true;
}
// @note intuitively it would make sense to compare arrivalSpeed with getSpeed() instead of v
// however, due to the current position update rule (ticket #860) the vehicle moves with v in this step
@@ -1196,7 +1220,7 @@ MSVehicle::planMoveInternal(const SUMOTime t, const MSVehicle* pred, DriveItemVe
++view;
#endif
// we need to look ahead far enough to see available space for checkRewindLinkLanes
- if (!setRequest || ((v <= 0 || seen > dist) && hadNonInternal && seenNonInternal > vehicleLength * CRLL_LOOK_AHEAD)) {
+ if ((!setRequest || v <= 0 || seen > dist) && hadNonInternal && seenNonInternal > vehicleLength * CRLL_LOOK_AHEAD) {
break;
}
// get the following lane
@@ -1264,18 +1288,12 @@ MSVehicle::executeMove() {
#endif
// get safe velocities from DriveProcessItems
SUMOReal vSafe = 0; // maximum safe velocity
+ SUMOReal vSafeZipper = std::numeric_limits<SUMOReal>::max(); // speed limit due to zipper merging
SUMOReal vSafeMin = 0; // minimum safe velocity
// the distance to a link which should either be crossed this step or in
// front of which we need to stop
SUMOReal vSafeMinDist = 0;
myHaveToWaitOnNextLink = false;
-#ifndef NO_TRACI
- if (myInfluencer != 0) {
- if (myInfluencer->isVTDControlled()) {
- return false;
- }
- }
-#endif
assert(myLFLinkLanes.size() != 0 || (myInfluencer != 0 && myInfluencer->isVTDControlled()));
DriveItemVector::iterator i;
@@ -1299,10 +1317,12 @@ MSVehicle::executeMove() {
#else
const bool influencerPrio = (myInfluencer != 0 && !myInfluencer->getRespectJunctionPriority());
#endif
+ std::vector<const SUMOVehicle*> collectFoes;
const bool opened = yellow || influencerPrio ||
link->opened((*i).myArrivalTime, (*i).myArrivalSpeed, (*i).getLeaveSpeed(),
getVehicleType().getLength(), getImpatience(),
- getCarFollowModel().getMaxDecel(), getWaitingTime());
+ getCarFollowModel().getMaxDecel(), getWaitingTime(),
+ ls == LINKSTATE_ZIPPER ? &collectFoes : 0);
// vehicles should decelerate when approaching a minor link
if (opened && !influencerPrio && !link->havePriority() && !link->lastWasContMajor() && !link->isCont()) {
if ((*i).myDistance > getCarFollowModel().getMaxDecel()) {
@@ -1330,6 +1350,9 @@ MSVehicle::executeMove() {
// this vehicle is probably not gonna drive accross the next junction (heuristic)
myHaveToWaitOnNextLink = true;
}
+ } else if (link->getState() == LINKSTATE_ZIPPER) {
+ vSafeZipper = MIN2(vSafeZipper,
+ link->getZipperSpeed(this, (*i).myDistance, (*i).myVLinkPass, (*i).myArrivalTime, &collectFoes));
} else {
vSafe = (*i).myVLinkWait;
myHaveToWaitOnNextLink = true;
@@ -1356,6 +1379,7 @@ MSVehicle::executeMove() {
if (myLane->getEdge().isRoundabout()) {
myHaveToWaitOnNextLink = false;
}
+ vSafe = MIN2(vSafe, vSafeZipper);
// XXX braking due to lane-changing is not registered
bool braking = vSafe < getSpeed();
@@ -1376,12 +1400,12 @@ MSVehicle::executeMove() {
vNext = MAX2(vNext, (SUMOReal) 0.);
#ifndef NO_TRACI
if (myInfluencer != 0) {
+ if (myInfluencer->isVTDControlled()) {
+ vNext = myInfluencer->implicitSpeedVTD(this, myState.mySpeed);
+ }
const SUMOReal vMax = getVehicleType().getCarFollowModel().maxNextSpeed(myState.mySpeed, this);
const SUMOReal vMin = MAX2(SUMOReal(0), getVehicleType().getCarFollowModel().getSpeedAfterMaxDecel(myState.mySpeed));
vNext = myInfluencer->influenceSpeed(MSNet::getInstance()->getCurrentTimeStep(), vNext, vSafe, vMin, vMax);
- if (myInfluencer->isVTDControlled()) {
- vNext = 0;
- }
}
#endif
// visit waiting time
@@ -1401,7 +1425,14 @@ MSVehicle::executeMove() {
// update position and speed
myAcceleration = SPEED2ACCEL(vNext - myState.mySpeed);
- myState.myPos += SPEED2DIST(vNext);
+
+ SUMOReal deltaPos = SPEED2DIST(vNext);
+#ifndef NO_TRACI
+ if (myInfluencer != 0 && myInfluencer->isVTDControlled()) {
+ deltaPos = myInfluencer->implicitDeltaPosVTD(this);
+ }
+#endif
+ myState.myPos += deltaPos;
myState.mySpeed = vNext;
myCachedPosition = Position::INVALID;
std::vector<MSLane*> passedLanes;
@@ -1452,6 +1483,14 @@ MSVehicle::executeMove() {
assert(myState.myPos > 0);
enterLaneAtMove(approachedLane);
myLane = approachedLane;
+#ifdef HAVE_INTERNAL_LANES
+ if (MSGlobals::gUsingInternalLanes) {
+ // erase leaders when past the junction
+ if (link->getViaLane() == 0) {
+ link->passedJunction(this);
+ }
+ }
+#endif
if (hasArrived()) {
break;
}
@@ -1463,12 +1502,6 @@ MSVehicle::executeMove() {
getLaneChangeModel().endLaneChangeManeuver();
}
}
-#ifdef HAVE_INTERNAL_LANES
- // erase leaders when past the junction
- if (link->getViaLane() == 0) {
- myLinkLeaders[link->getJunction()].clear();
- }
-#endif
moved = true;
if (approachedLane->getEdge().isVaporizing()) {
leaveLane(MSMoveReminder::NOTIFICATION_VAPORIZED);
@@ -1485,15 +1518,10 @@ MSVehicle::executeMove() {
}
myFurtherLanes.clear();
- if (myInfluencer != 0 && myInfluencer->isVTDControlled()) {
- myWaitingTime = 0;
- return false;
- }
-
if (!hasArrived() && !myLane->getEdge().isVaporizing()) {
if (myState.myPos > myLane->getLength()) {
WRITE_WARNING("Vehicle '" + getID() + "' performs emergency stop at the end of lane '" + myLane->getID()
- + emergencyReason
+ + "'" + emergencyReason
+ " (decel=" + toString(myAcceleration - myState.mySpeed)
+ "), time=" + time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
MSNet::getInstance()->getVehicleControl().registerEmergencyStop();
@@ -1515,6 +1543,10 @@ MSVehicle::executeMove() {
getLaneChangeModel().continueLaneChangeManeuver(moved);
}
setBlinkerInformation(); // needs updated bestLanes
+ //change the blue light only for emergency vehicles SUMOVehicleClass
+ if (myType->getVehicleClass() == SVC_EMERGENCY) {
+ setEmergencyBlueLight(MSNet::getInstance()->getCurrentTimeStep());
+ }
// State needs to be reset for all vehicles before the next call to MSEdgeControl::changeLanes
getLaneChangeModel().prepareStep();
}
@@ -1695,7 +1727,7 @@ MSVehicle::checkRewindLinkLanes(const SUMOReal lengthsInFront, DriveItemVector&
(*i).myArrivalTime += (SUMOTime)RandHelper::rand((size_t)2); // tie braker
}
(*i).myLink->setApproaching(this, (*i).myArrivalTime, (*i).myArrivalSpeed, (*i).getLeaveSpeed(),
- (*i).mySetRequest, (*i).myArrivalTimeBraking, (*i).myArrivalSpeedBraking, getWaitingTime());
+ (*i).mySetRequest, (*i).myArrivalTimeBraking, (*i).myArrivalSpeedBraking, getWaitingTime(), (*i).myDistance);
}
}
}
@@ -1811,10 +1843,6 @@ MSVehicle::enterLaneAtInsertion(MSLane* enteredLane, SUMOReal pos, SUMOReal spee
addReminder(*rem);
}
activateReminders(notification);
- std::string msg;
- if (MSGlobals::gCheckRoutes && !hasValidRoute(msg)) {
- throw ProcessError("Vehicle '" + getID() + "' has no valid route. " + msg);
- }
// build the list of lanes the vehicle is lapping into
SUMOReal leftLength = myType->getLength() - pos;
MSLane* clane = enteredLane;
@@ -1980,7 +2008,7 @@ MSVehicle::updateBestLanes(bool forceRebuild, const MSLane* startLane) {
}
if (myParameter->arrivalLaneProcedure == ARRIVAL_LANE_GIVEN && nextStopEdge == 0) {
nextStopEdge = *(myRoute->end() - 1);
- nextStopLane = nextStopEdge->getLanes()[myParameter->arrivalLane];
+ nextStopLane = nextStopEdge->getLanes()[myArrivalLane];
nextStopPos = myArrivalPos;
}
if (nextStopEdge != 0) {
@@ -2214,12 +2242,8 @@ MSVehicle::fixPosition() {
SUMOReal
-MSVehicle::getDistanceToPosition(SUMOReal destPos, const MSEdge* destEdge) {
-#ifdef DEBUG_VEHICLE_GUI_SELECTION
- SUMOReal distance = 1000000.;
-#else
+MSVehicle::getDistanceToPosition(SUMOReal destPos, const MSEdge* destEdge) const {
SUMOReal distance = std::numeric_limits<SUMOReal>::max();
-#endif
if (isOnRoad() && destEdge != NULL) {
if (&myLane->getEdge() == *myCurrEdge) {
// vehicle is on a normal edge
@@ -2401,6 +2425,17 @@ MSVehicle::setBlinkerInformation() {
}
+void
+MSVehicle::setEmergencyBlueLight(SUMOTime currentTime) {
+ if (currentTime % 1000 == 0) {
+ if (signalSet(VEH_SIGNAL_EMERGENCY_BLUE)) {
+ switchOffSignal(VEH_SIGNAL_EMERGENCY_BLUE);
+ } else {
+ switchOnSignal(VEH_SIGNAL_EMERGENCY_BLUE);
+ }
+ }
+}
+
void
MSVehicle::replaceVehicleType(MSVehicleType* type) {
diff --git a/src/microsim/MSVehicle.h b/src/microsim/MSVehicle.h
index 400e01f..766f694 100644
--- a/src/microsim/MSVehicle.h
+++ b/src/microsim/MSVehicle.h
@@ -10,7 +10,7 @@
/// @author Michael Behrisch
/// @author Axel Wegener
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSVehicle.h 18686 2015-08-21 14:52:03Z namdre $
+/// @version $Id: MSVehicle.h 19525 2015-12-04 11:08:33Z namdre $
///
// Representation of a vehicle in the micro simulation
/****************************************************************************/
@@ -59,7 +59,7 @@ class MSLaneChanger;
class MSVehicleTransfer;
class MSAbstractLaneChangeModel;
class MSStoppingPlace;
-class MSChrgStn;
+class MSChargingStation;
class MSPerson;
class MSDevice;
class MSEdgeWeightsStorage;
@@ -571,7 +571,7 @@ public:
/// @brief (Optional) container stop if one is assigned to the stop
MSStoppingPlace* containerstop;
/// @brief (Optional) charging station if one is assigned to the stop
- MSChrgStn* chrgStn;
+ MSChargingStation* chargingStation;
/// @brief The stopping position start
SUMOReal startPos;
/// @brief The stopping position end
@@ -649,7 +649,7 @@ public:
* or a near infinite real value if the destination position is not contained
* within the vehicles route or the vehicle is not active
*/
- SUMOReal getDistanceToPosition(SUMOReal destPos, const MSEdge* destEdge);
+ SUMOReal getDistanceToPosition(SUMOReal destPos, const MSEdge* destEdge) const;
/** @brief Processes stops, returns the velocity needed to reach the stop
@@ -1037,6 +1037,12 @@ public:
void postProcessVTD(MSVehicle* v);
+ /// @brief return the speed that is implicit in the new VTD position
+ SUMOReal implicitSpeedVTD(const MSVehicle* veh, SUMOReal oldSpeed);
+
+ /// @brief return the change in longitudinal position that is implicit in the new VTD position
+ SUMOReal implicitDeltaPosVTD(const MSVehicle* veh);
+
inline bool isVTDControlled() const {
return myAmVTDControlled;
}
@@ -1158,6 +1164,10 @@ protected:
void setBlinkerInformation();
+ /** @brief sets the blue flashing light for emergency vehicles
+ */
+ void setEmergencyBlueLight(SUMOTime currentTime);
+
/// updates LaneQ::nextOccupation and myCurrentLaneInBestLanes
void updateOccupancyAndCurrentBestLane(const MSLane* startLane);
@@ -1313,11 +1323,6 @@ protected:
const MSLane* const lane, SUMOReal& v, SUMOReal& vLinkPass,
SUMOReal distToCrossing = -1) const;
-#ifdef HAVE_INTERNAL_LANES
- /// @brief ids of vehicles being followed across a link (for resolving priority)
- mutable std::map<const MSJunction*, std::set<std::string> > myLinkLeaders;
-#endif
-
private:
/* @brief The vehicle's knowledge about edge efforts/travel times; @see MSEdgeWeightsStorage
* @note member is initialized on first access */
diff --git a/src/microsim/MSVehicleContainer.h b/src/microsim/MSVehicleContainer.h
index e5819e3..f858e18 100644
--- a/src/microsim/MSVehicleContainer.h
+++ b/src/microsim/MSVehicleContainer.h
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 12 Mar 2001
-/// @version $Id: MSVehicleContainer.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSVehicleContainer.h 19173 2015-10-27 08:47:27Z behrisch $
///
// vehicles sorted by their departures
/****************************************************************************/
@@ -34,7 +34,6 @@
#include <vector>
#include <iostream>
-#include "MSNet.h"
// ===========================================================================
diff --git a/src/microsim/MSVehicleControl.cpp b/src/microsim/MSVehicleControl.cpp
index 32ab282..d053ac8 100644
--- a/src/microsim/MSVehicleControl.cpp
+++ b/src/microsim/MSVehicleControl.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Wed, 10. Dec 2003
-/// @version $Id: MSVehicleControl.cpp 18131 2015-03-24 13:26:29Z behrisch $
+/// @version $Id: MSVehicleControl.cpp 18790 2015-09-07 12:33:41Z behrisch $
///
// The class responsible for building and deletion of vehicles
/****************************************************************************/
@@ -65,6 +65,7 @@ MSVehicleControl::MSVehicleControl() :
myTotalDepartureDelay(0),
myTotalTravelTime(0),
myDefaultVTypeMayBeDeleted(true),
+ myDefaultPedTypeMayBeDeleted(true),
myWaitingForPerson(0),
myWaitingForContainer(0),
myScale(-1),
diff --git a/src/microsim/MSVehicleTransfer.cpp b/src/microsim/MSVehicleTransfer.cpp
index e945d8f..c06d38d 100644
--- a/src/microsim/MSVehicleTransfer.cpp
+++ b/src/microsim/MSVehicleTransfer.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sep 2003
-/// @version $Id: MSVehicleTransfer.cpp 18429 2015-05-21 08:58:17Z namdre $
+/// @version $Id: MSVehicleTransfer.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// A mover of vehicles that got stucked due to grid locks
/****************************************************************************/
@@ -66,7 +66,7 @@ MSVehicleTransfer::add(const SUMOTime t, MSVehicle* veh) {
veh->getLaneChangeModel().endLaneChangeManeuver(MSMoveReminder::NOTIFICATION_TELEPORT);
MSNet::getInstance()->informVehicleStateListener(veh, MSNet::VEHICLE_STATE_STARTING_TELEPORT);
if (veh->succEdge(1) == 0) {
- WRITE_WARNING("Vehicle '" + veh->getID() + "' teleports beyond end of route ('" + veh->getEdge()->getID() + "'), time " + time2string(t) + ".");
+ WRITE_WARNING("Vehicle '" + veh->getID() + "' teleports beyond arrival edge '" + veh->getEdge()->getID() + "', time " + time2string(t) + ".");
veh->onRemovalFromNet(MSMoveReminder::NOTIFICATION_TELEPORT_ARRIVED);
MSNet::getInstance()->getVehicleControl().scheduleVehicleRemoval(veh);
return;
@@ -137,7 +137,7 @@ MSVehicleTransfer::checkInsertions(SUMOTime time) {
// could not insert. maybe we should proceed in virtual space
if (desc.myProceedTime < time) {
if (desc.myVeh->succEdge(1) == 0) {
- WRITE_WARNING("Vehicle '" + desc.myVeh->getID() + "' teleports beyond end of route ('" + e->getID() + "'), time " + time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
+ WRITE_WARNING("Vehicle '" + desc.myVeh->getID() + "' teleports beyond arrival edge '" + e->getID() + "', time " + time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
desc.myVeh->leaveLane(MSMoveReminder::NOTIFICATION_TELEPORT_ARRIVED);
MSNet::getInstance()->getVehicleControl().scheduleVehicleRemoval(desc.myVeh);
i = myVehicles.erase(i);
diff --git a/src/microsim/actions/Command_SaveTLCoupledDet.h b/src/microsim/actions/Command_SaveTLCoupledDet.h
index 0b96a37..2b2d126 100644
--- a/src/microsim/actions/Command_SaveTLCoupledDet.h
+++ b/src/microsim/actions/Command_SaveTLCoupledDet.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 15 Feb 2004
-/// @version $Id: Command_SaveTLCoupledDet.h 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: Command_SaveTLCoupledDet.h 19173 2015-10-27 08:47:27Z behrisch $
///
// Writes e2 state on each tls switch
/****************************************************************************/
@@ -32,7 +32,6 @@
#endif
#include <string>
-#include <microsim/MSNet.h>
#include <microsim/traffic_lights/MSTLLogicControl.h>
diff --git a/src/microsim/cfmodels/MSCFModel_Daniel1.cpp b/src/microsim/cfmodels/MSCFModel_Daniel1.cpp
index d3a03f6..2625f19 100644
--- a/src/microsim/cfmodels/MSCFModel_Daniel1.cpp
+++ b/src/microsim/cfmodels/MSCFModel_Daniel1.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 05 Jun 2012
-/// @version $Id: MSCFModel_Daniel1.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSCFModel_Daniel1.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// The original Krauss (1998) car-following model and parameter
/****************************************************************************/
@@ -63,7 +63,7 @@ MSCFModel_Daniel1::moveHelper(MSVehicle* const veh, SUMOReal vPos) const {
const SUMOReal vMax = MIN3(veh->getLane()->getVehicleMaxSpeed(veh), maxNextSpeed(oldV, veh), vSafe);
#ifdef _DEBUG
if (vMin > vMax) {
- WRITE_WARNING("Vehicle's '" + veh->getID() + "' maximum speed is lower than the minimum speed (min: " + toString(vMin) + ", max: " + toString(vMax) + ").");
+ WRITE_WARNING("Maximum speed of vehicle '" + veh->getID() + "' is lower than the minimum speed (min: " + toString(vMin) + ", max: " + toString(vMax) + ").");
}
#endif
return veh->getLaneChangeModel().patchSpeed(vMin, MAX2(vMin, dawdle(vMax)), vMax, *this);
diff --git a/src/microsim/cfmodels/MSCFModel_KraussOrig1.cpp b/src/microsim/cfmodels/MSCFModel_KraussOrig1.cpp
index ec83b81..3454e18 100644
--- a/src/microsim/cfmodels/MSCFModel_KraussOrig1.cpp
+++ b/src/microsim/cfmodels/MSCFModel_KraussOrig1.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Mon, 04 Aug 2009
-/// @version $Id: MSCFModel_KraussOrig1.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSCFModel_KraussOrig1.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// The original Krauss (1998) car-following model and parameter
/****************************************************************************/
@@ -65,7 +65,7 @@ MSCFModel_KraussOrig1::moveHelper(MSVehicle* const veh, SUMOReal vPos) const {
MIN3(veh->getLane()->getVehicleMaxSpeed(veh), maxNextSpeed(oldV, veh), vSafe));
#ifdef _DEBUG
//if (vMin > vMax) {
- // WRITE_WARNING("Vehicle's '" + veh->getID() + "' maximum speed is lower than the minimum speed (min: " + toString(vMin) + ", max: " + toString(vMax) + ").");
+ // WRITE_WARNING("Maximum speed of vehicle '" + veh->getID() + "' is lower than the minimum speed (min: " + toString(vMin) + ", max: " + toString(vMax) + ").");
//}
#endif
return veh->getLaneChangeModel().patchSpeed(vMin, MAX2(vMin, dawdle(vMax)), vMax, *this);
diff --git a/src/microsim/cfmodels/MSCFModel_SmartSK.cpp b/src/microsim/cfmodels/MSCFModel_SmartSK.cpp
index f22ea95..302c70e 100644
--- a/src/microsim/cfmodels/MSCFModel_SmartSK.cpp
+++ b/src/microsim/cfmodels/MSCFModel_SmartSK.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Peter Wagner
/// @date Tue, 05 Jun 2012
-/// @version $Id: MSCFModel_SmartSK.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSCFModel_SmartSK.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// A smarter SK
/****************************************************************************/
@@ -82,7 +82,7 @@ MSCFModel_SmartSK::moveHelper(MSVehicle* const veh, SUMOReal vPos) const {
const SUMOReal vMax = MIN3(veh->getLane()->getVehicleMaxSpeed(veh), maxNextSpeed(oldV, veh), vSafe);
#ifdef _DEBUG
if (vMin > vMax) {
- WRITE_WARNING("Vehicle's '" + veh->getID() + "' maximum speed is lower than the minimum speed (min: " + toString(vMin) + ", max: " + toString(vMax) + ").");
+ WRITE_WARNING("Maximum speed of vehicle '" + veh->getID() + "' is lower than the minimum speed (min: " + toString(vMin) + ", max: " + toString(vMax) + ").");
}
#endif
updateMyHeadway(veh);
diff --git a/src/microsim/devices/MSDevice_BTreceiver.cpp b/src/microsim/devices/MSDevice_BTreceiver.cpp
index 553548e..1607e04 100644
--- a/src/microsim/devices/MSDevice_BTreceiver.cpp
+++ b/src/microsim/devices/MSDevice_BTreceiver.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 14.08.2013
-/// @version $Id: MSDevice_BTreceiver.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: MSDevice_BTreceiver.cpp 19210 2015-10-29 10:31:59Z behrisch $
///
// A BT sender
/****************************************************************************/
@@ -34,7 +34,6 @@
#include <utils/iodevices/OutputDevice.h>
#include <utils/vehicle/SUMOVehicle.h>
#include <utils/geom/Position.h>
-#include <utils/geom/Line.h>
#include <utils/geom/GeomHelper.h>
#include <microsim/MSNet.h>
#include <microsim/MSLane.h>
@@ -207,7 +206,7 @@ MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(MSDevice_BTreceiver::Veh
const Position translatedSender = senderData.position - receiverDelta;
// find crossing points
std::vector<SUMOReal> intersections;
- GeomHelper::FindLineCircleIntersections(oldReceiverPosition, receiver.range, oldSenderPosition, translatedSender, intersections);
+ GeomHelper::findLineCircleIntersections(oldReceiverPosition, receiver.range, oldSenderPosition, translatedSender, intersections);
switch (intersections.size()) {
case 0:
// no intersections -> other vehicle either stays within or beyond range
@@ -252,7 +251,7 @@ MSDevice_BTreceiver::BTreceiverUpdate::updateVisibility(MSDevice_BTreceiver::Veh
leaveRange(receiver, intersectionReceiverData,
sender, intersectionSenderData, (intersections.back() - 1.) * TS);
} else {
- WRITE_WARNING("The vehicle '" + sender.getID() + "' cannot be in the range of '" + receiver.getID() + "', leave, and enter it in one step.");
+ WRITE_WARNING("The vehicle '" + sender.getID() + "' cannot be in the range of vehicle '" + receiver.getID() + "', leave, and enter it in one step.");
}
break;
default:
@@ -414,7 +413,7 @@ MSDevice_BTreceiver::notifyEnter(SUMOVehicle& veh, Notification reason) {
bool
MSDevice_BTreceiver::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOReal newPos, SUMOReal newSpeed) {
if (sVehicles.find(veh.getID()) == sVehicles.end()) {
- WRITE_WARNING("btreceiver: Can not update position of a vehicle that is not within the road network (" + veh.getID() + ").");
+ WRITE_WARNING("btreceiver: Can not update position of vehicle '" + veh.getID() + "' which is not on the road.");
return true;
}
const MSVehicle& v = static_cast<MSVehicle&>(veh);
@@ -429,7 +428,7 @@ MSDevice_BTreceiver::notifyLeave(SUMOVehicle& veh, SUMOReal /* lastPos */, Notif
return true;
}
if (sVehicles.find(veh.getID()) == sVehicles.end()) {
- WRITE_WARNING("btreceiver: Can not update position of a vehicle that is not within the road network (" + veh.getID() + ").");
+ WRITE_WARNING("btreceiver: Can not update position of vehicle '" + veh.getID() + "' which is not on the road.");
return true;
}
const MSVehicle& v = static_cast<MSVehicle&>(veh);
diff --git a/src/microsim/devices/MSDevice_BTreceiver.h b/src/microsim/devices/MSDevice_BTreceiver.h
index dabd18e..a35c1e0 100644
--- a/src/microsim/devices/MSDevice_BTreceiver.h
+++ b/src/microsim/devices/MSDevice_BTreceiver.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 14.08.2013
-/// @version $Id: MSDevice_BTreceiver.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSDevice_BTreceiver.h 19173 2015-10-27 08:47:27Z behrisch $
///
// A BT receiver
/****************************************************************************/
@@ -33,7 +33,6 @@
#include "MSDevice.h"
#include "MSDevice_BTsender.h"
-#include <microsim/MSNet.h>
#include <utils/common/SUMOTime.h>
#include <utils/common/Command.h>
#include <utils/common/RandHelper.h>
diff --git a/src/microsim/devices/MSDevice_BTsender.cpp b/src/microsim/devices/MSDevice_BTsender.cpp
index 7bede6b..5c79b0d 100644
--- a/src/microsim/devices/MSDevice_BTsender.cpp
+++ b/src/microsim/devices/MSDevice_BTsender.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 14.08.2013
-/// @version $Id: MSDevice_BTsender.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSDevice_BTsender.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// A BT sender
/****************************************************************************/
@@ -105,7 +105,7 @@ MSDevice_BTsender::notifyEnter(SUMOVehicle& veh, Notification reason) {
bool
MSDevice_BTsender::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOReal newPos, SUMOReal newSpeed) {
if (sVehicles.find(veh.getID()) == sVehicles.end()) {
- WRITE_WARNING("btsender: Can not update position of a vehicle that is not within the road network (" + veh.getID() + ").");
+ WRITE_WARNING("btsender: Can not update position of vehicle '" + veh.getID() + "' which is not on the road.");
return true;
}
const MSVehicle& v = static_cast<MSVehicle&>(veh);
@@ -120,7 +120,7 @@ MSDevice_BTsender::notifyLeave(SUMOVehicle& veh, SUMOReal /* lastPos */, Notific
return true;
}
if (sVehicles.find(veh.getID()) == sVehicles.end()) {
- WRITE_WARNING("btsender: Can not update position of a vehicle that is not within the road network (" + veh.getID() + ").");
+ WRITE_WARNING("btsender: Can not update position of vehicle '" + veh.getID() + "' which is not on the road.");
return true;
}
const MSVehicle& v = static_cast<MSVehicle&>(veh);
diff --git a/src/microsim/devices/MSDevice_BTsender.h b/src/microsim/devices/MSDevice_BTsender.h
index feb893f..7794112 100644
--- a/src/microsim/devices/MSDevice_BTsender.h
+++ b/src/microsim/devices/MSDevice_BTsender.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 14.08.2013
-/// @version $Id: MSDevice_BTsender.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSDevice_BTsender.h 19173 2015-10-27 08:47:27Z behrisch $
///
// A BT sender
/****************************************************************************/
@@ -35,7 +35,7 @@
#include <string>
#include "MSDevice.h"
#include <utils/common/SUMOTime.h>
-#include <utils/geom/Position.h>
+#include <utils/geom/Boundary.h>
// ===========================================================================
diff --git a/src/microsim/devices/MSDevice_Battery.cpp b/src/microsim/devices/MSDevice_Battery.cpp
index 135dd59..1cb9060 100644
--- a/src/microsim/devices/MSDevice_Battery.cpp
+++ b/src/microsim/devices/MSDevice_Battery.cpp
@@ -3,7 +3,7 @@
/// @author Tamas Kurczveil
/// @author Pablo Alvarez L�pez
/// @date 20.12.2013
-/// @version $Id: MSDevice_Battery.cpp 18762 2015-09-01 16:27:09Z behrisch $ // ATENCION
+/// @version $Id: MSDevice_Battery.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The Battery parameters for the vehicle
/****************************************************************************/
@@ -32,6 +32,7 @@
#include <utils/options/OptionsCont.h>
#include <utils/iodevices/OutputDevice.h>
#include <utils/common/SUMOTime.h>
+#include <utils/geom/GeomHelper.h>
#include <microsim/MSNet.h>
#include <microsim/MSLane.h>
#include <microsim/MSEdge.h>
@@ -81,44 +82,44 @@ MSDevice_Battery::buildVehicleDevices(SUMOVehicle& v, std::vector<MSDevice*>& in
SUMOReal new_LastEnergy = 0;
// MaxBatKap
- new_MaxBatKap = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("MaxBatKap", "0").c_str());
+ new_MaxBatKap = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("maximumBatteryCapacity", "0").c_str());
// ActBatKap
- if (v.getParameter().getParameter("ActBatKap", "-") == "-") {
+ if (v.getParameter().getParameter("actualBatteryCapacity", "-") == "-") {
new_ActBatKap = new_MaxBatKap / 2.0;
} else {
- new_ActBatKap = TplConvert::_2SUMOReal(v/*.getVehicleType()*/.getParameter().getParameter("ActBatKap", "0").c_str());
+ new_ActBatKap = TplConvert::_2SUMOReal(v.getParameter().getParameter("actualBatteryCapacity", "0").c_str());
}
// Power
- new_PowerMax = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("PowerMax", "100").c_str());
+ new_PowerMax = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("maximumPower", "100").c_str());
// Mass
- new_Mass = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("Mass", "1000").c_str());
+ new_Mass = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("vehicleMass", "1000").c_str());
// FrontSurfaceArea
- new_FrontSurfaceArea = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("FrontSurfaceArea", "2").c_str());
+ new_FrontSurfaceArea = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("frontSurfaceArea", "2").c_str());
// AirDragCoefficient
- new_AirDragCoefficient = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("AirDragCoefficient", "0.4").c_str());
+ new_AirDragCoefficient = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("airDragCoefficient", "0.4").c_str());
// InternalMomentOfInertia
- new_InternalMomentOfInertia = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("InternalMomentOfInertia", "10").c_str());
+ new_InternalMomentOfInertia = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("internalMomentOfInertia", "10").c_str());
// Radial Drag Coefficient
- new_RadialDragCoefficient = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("RadialDragCoefficient", "1").c_str());
+ new_RadialDragCoefficient = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("radialDragCoefficient", "1").c_str());
// RollDragCoefficient
- new_RollDragCoefficient = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("RollDragCoefficient", "0.5").c_str());
+ new_RollDragCoefficient = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("rollDragCoefficient", "0.5").c_str());
// ConstantPowerIntake
- new_ConstantPowerIntake = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("ConstantPowerIntake", "10").c_str());
+ new_ConstantPowerIntake = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("constantPowerIntake", "10").c_str());
// PropulsionEfficiency
- new_PropulsionEfficiency = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("PropulsionEfficiency", "0.5").c_str());
+ new_PropulsionEfficiency = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("propulsionEfficiency", "0.5").c_str());
// RecuperationEfficiency
- new_RecuperationEfficiency = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("RecuperationEfficiency", "0").c_str());
+ new_RecuperationEfficiency = TplConvert::_2SUMOReal(v.getVehicleType().getParameter().getParameter("recuperationEfficiency", "0").c_str());
// constructor
MSDevice_Battery* device = new MSDevice_Battery(v, "battery_" + v.getID(),
@@ -142,34 +143,34 @@ bool MSDevice_Battery::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOR
}
// Update Energy from the battery
- if (getMaxBatKap() != 0) {
+ if (getMaximumBatteryCapacity() != 0) {
Consum = getPropEnergy(veh);
// Energy lost/gained from vehicle movement (via vehicle energy model) [kWh]
- setActBatKap(getActBatKap() - Consum);
+ setActualBatteryCapacity(getActualBatteryCapacity() - Consum);
// saturate between 0 and MaxBatKap [kWh]
- if (getActBatKap() < 0) {
- setActBatKap(0);
+ if (getActualBatteryCapacity() < 0) {
+ setActualBatteryCapacity(0);
- if (getMaxBatKap() > 0) {
- WRITE_WARNING("Battery from vehicle with ID = '" + veh.getID() + "' is depleted.");
+ if (getMaximumBatteryCapacity() > 0) {
+ WRITE_WARNING("Battery of vehicle '" + veh.getID() + "' is depleted.");
}
- } else if (getActBatKap() > getMaxBatKap()) {
- setActBatKap(getMaxBatKap());
+ } else if (getActualBatteryCapacity() > getMaximumBatteryCapacity()) {
+ setActualBatteryCapacity(getMaximumBatteryCapacity());
}
setLastAngle(veh.getAngle());
}
// Check if vehicle has under their position one charge Station
- std::string ChargingStationID = MSNet::getInstance()->getChrgStnID(veh.getLane(), veh.getPositionOnLane());
+ std::string ChargingStationID = MSNet::getInstance()->getChargingStationID(veh.getLane(), veh.getPositionOnLane());
// If vehicle is over a charging station
if (ChargingStationID != "") {
// Declare a pointer to the charging station
- MSChrgStn* ChargingStationPointer = MSNet::getInstance()->getChrgStn(ChargingStationID);
+ MSChargingStation* ChargingStationPointer = MSNet::getInstance()->getChargingStation(ChargingStationID);
// if the vehicle is almost stopped, or charge in transit is enabled, then charge vehicle
if ((veh.getSpeed() < 0.2) || (ChargingStationPointer->getChargeInTransit() == 1)) {
@@ -188,8 +189,8 @@ bool MSDevice_Battery::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOR
ItsChargingInTransit = true;
}
- // Set actChrgStn parameter
- actChrgStn = ChargingStationID;
+ // Set actChargingStation parameter
+ actChargingStation = ChargingStationID;
// Only update charging start time if vehicle allow charge in transit, or in other case
// if the vehicle not allow charge in transit but it's stopped.
@@ -207,10 +208,10 @@ bool MSDevice_Battery::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOR
energyCharged /= 3600;
// Update Battery charge
- if ((energyCharged + getActBatKap()) > getMaxBatKap()) {
- setActBatKap(getMaxBatKap());
+ if ((energyCharged + getActualBatteryCapacity()) > getMaximumBatteryCapacity()) {
+ setActualBatteryCapacity(getMaximumBatteryCapacity());
} else {
- setActBatKap(getActBatKap() + energyCharged);
+ setActualBatteryCapacity(getActualBatteryCapacity() + energyCharged);
}
}
}
@@ -222,7 +223,7 @@ bool MSDevice_Battery::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOR
ItsChargingStopped = false;
// Disable charging station
- actChrgStn = "NULL";
+ actChargingStation = "NULL";
// Set energy charged to 0
energyCharged = 0.00;
@@ -237,10 +238,10 @@ bool MSDevice_Battery::notifyMove(SUMOVehicle& veh, SUMOReal /* oldPos */, SUMOR
bool MSDevice_Battery::notifyEnter(SUMOVehicle& veh, MSMoveReminder::Notification reason) {
- // Set last Energy ONLY when the vehicle is introduced in the simulation (That's mean, that the reason is 0)
- if (reason == 0) {
+ // Set last Energy ONLY when the vehicle is introduced in the simulation
+ if (reason == MSMoveReminder::NOTIFICATION_DEPARTED) {
setLastEnergy(getMass() * veh.getSpeed() * veh.getSpeed() / 2 + getMass() * 9.81 * veh.getLane()->getShape().front().z() + getInternalMomentOfInertia() * 0.5 * veh.getSpeed() * veh.getSpeed());
- setLastAngle(veh.getLane()->getShape().beginEndAngle() * 180 / PI);
+ setLastAngle(veh.getLane()->getShape().beginEndAngle());
}
// This function return always true
@@ -250,26 +251,6 @@ bool MSDevice_Battery::notifyEnter(SUMOVehicle& veh, MSMoveReminder::Notificatio
void MSDevice_Battery::generateOutput() const {
//Function implemented in MSBatteryExport
- /*if (OptionsCont::getOptions().isSet("tripinfo-output"))
- {
- OutputDevice& os = OutputDevice::getDeviceByOption("tripinfo-output");
-
- os.openTag("Battery");
- os.writeAttr("Act Bat Kap", toString(ActBatKap));
- os.writeAttr("Max Bat Kap", toString(MaxBatKap));
- os.writeAttr("Power Max", toString(PowerMax));
- os.writeAttr("Mass", toString(Mass));
- os.writeAttr("Front Surface Area", toString(FrontSurfaceArea));
- os.writeAttr("Air Drag Coefficient", toString(AirDragCoefficient));
- os.writeAttr("Radial Drag Coefficient", toString(RadialDragCoefficient));
- os.writeAttr("RollDrag Coefficient", toString(RollDragCoefficient));
- os.writeAttr("Constant Power Intake", toString(ConstantPowerIntake));
- os.writeAttr("Propulsion Efficiency", toString(PropulsionEfficiency));
- os.writeAttr("Recuperation Efficiency", toString(RecuperationEfficiency));
- os.writeAttr("Last Angle", toString(LastAngle));
- os.writeAttr("Last Energy", toString(LastEnergy));
- os.closeTag();
- }*/
}
@@ -279,20 +260,20 @@ void MSDevice_Battery::generateOutput() const {
MSDevice_Battery::MSDevice_Battery(SUMOVehicle& holder, const std::string& id, const SUMOReal new_ActBatKap, const SUMOReal new_MaxBatKap, const SUMOReal new_PowerMax, const SUMOReal new_Mass, const SUMOReal new_FrontSurfaceArea, const SUMOReal new_AirDragCoefficient, const SUMOReal new_InternalMomentOfInertia, const SUMOReal new_RadialDragCoefficient, const SUMOReal new_RollDragCoefficient, const SUMOReal new_ConstantPowerIntake, const SUMOReal new_PropulsionEfficiency, const SUMOReal n [...]
:
MSDevice(holder, id),
- ActBatKap(new_ActBatKap), // [ActBatKap <= MaxBatKap]
- MaxBatKap(new_MaxBatKap), // [MaxBatKap >= 0]
- PowerMax(new_PowerMax), // [PowerMax >= 0]
- Mass(new_Mass), // [Mass >= 0]
- FrontSurfaceArea(new_FrontSurfaceArea), // [FrontSurfaceArea >= 0]
- AirDragCoefficient(new_AirDragCoefficient), // [AirDragCoefficient >=0]
- InternalMomentOfInertia(new_InternalMomentOfInertia), // [InternalMomentOfInertia >= 0]
- RadialDragCoefficient(new_RadialDragCoefficient), // [RadialDragCoefficient >=0]
- RollDragCoefficient(new_RollDragCoefficient), // [RollDragCoefficient >= 0]
- ConstantPowerIntake(new_ConstantPowerIntake), // [ConstantPowerIntake >= 0]
- PropulsionEfficiency(new_PropulsionEfficiency), // [1 >= PropulsionEfficiency >= 0]
- RecuperationEfficiency(new_RecuperationEfficiency), // [1 >= RecuperationEfficiency >= 0]
- LastAngle(new_LastAngle), // Limit not needed
- LastEnergy(new_LastEnergy) { // Limit not needed
+ ActBatKap(new_ActBatKap), // [actualBatteryCapacity <= maximumBatteryCapacity]
+ MaxBatKap(new_MaxBatKap), // [maximumBatteryCapacity >= 0]
+ PowerMax(new_PowerMax), // [maximumPower >= 0]
+ Mass(new_Mass), // [vehicleMass >= 0]
+ FrontSurfaceArea(new_FrontSurfaceArea), // [frontSurfaceArea >= 0]
+ AirDragCoefficient(new_AirDragCoefficient), // [airDragCoefficient >=0]
+ InternalMomentOfInertia(new_InternalMomentOfInertia), // [internalMomentOfInertia >= 0]
+ RadialDragCoefficient(new_RadialDragCoefficient), // [radialDragCoefficient >=0]
+ RollDragCoefficient(new_RollDragCoefficient), // [rollDragCoefficient >= 0]
+ ConstantPowerIntake(new_ConstantPowerIntake), // [constantPowerIntake >= 0]
+ PropulsionEfficiency(new_PropulsionEfficiency), // [1 >= propulsionEfficiency >= 0]
+ RecuperationEfficiency(new_RecuperationEfficiency), // [1 >= recuperationEfficiency >= 0]
+ LastAngle(new_LastAngle), // Limit not needed
+ LastEnergy(new_LastEnergy) { // Limit not needed
// Initially the Vehicle is not charging and is not in a Chargin Station
ItsChargingStopped = false;
ItsChargingInTransit = false;
@@ -300,61 +281,62 @@ MSDevice_Battery::MSDevice_Battery(SUMOVehicle& holder, const std::string& id, c
// Initially the energy charged is null
energyCharged = 0;
- // Initially the Vehicle stopped and the consum is cero.
+ // Initially the Vehicle stopped and the consum is zero.
Consum = 0;
// Initially the vehicle is stopped and the corresponding variable is 0
vehicleStopped = 0;
// Initially the Vehicle are not over a Charging Station
- actChrgStn = "NULL";
+ actChargingStation = "NULL";
if (ActBatKap > MaxBatKap) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has a actual battery capacity (" + SUMOReal_str(ActBatKap) + ") greater than it's max battery capacity(" + SUMOReal_str(MaxBatKap) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has a actual battery capacity (" + SUMOReal_str(ActBatKap) + ") greater than it's max battery capacity(" + SUMOReal_str(MaxBatKap) + ").");
+ ActBatKap = MaxBatKap; //TAMAS!!!
}
if (MaxBatKap < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid battery capacity (" + SUMOReal_str(MaxBatKap) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid maximum battery capacity (" + SUMOReal_str(MaxBatKap) + ").");
}
if (PowerMax < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid power max (" + SUMOReal_str(PowerMax) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid maximum power (" + SUMOReal_str(PowerMax) + ").");
}
if (Mass < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid mass (" + SUMOReal_str(Mass) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid mass (" + SUMOReal_str(Mass) + ").");
}
if (FrontSurfaceArea < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid front surface Area (" + SUMOReal_str(FrontSurfaceArea) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid front surface Area (" + SUMOReal_str(FrontSurfaceArea) + ").");
}
if (AirDragCoefficient < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid drag coefficient (" + SUMOReal_str(AirDragCoefficient) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid drag coefficient (" + SUMOReal_str(AirDragCoefficient) + ").");
}
if (InternalMomentOfInertia < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid internal moment of inertia (" + SUMOReal_str(InternalMomentOfInertia) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid internal moment of inertia (" + SUMOReal_str(InternalMomentOfInertia) + ").");
}
if (RadialDragCoefficient < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid radial friction coefficient (" + SUMOReal_str(RadialDragCoefficient) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid radial friction coefficient (" + SUMOReal_str(RadialDragCoefficient) + ").");
}
if (RollDragCoefficient < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid roll friction coefficient (" + SUMOReal_str(RollDragCoefficient) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid roll friction coefficient (" + SUMOReal_str(RollDragCoefficient) + ").");
}
if (ConstantPowerIntake < 0) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid constant power intake (" + SUMOReal_str(ConstantPowerIntake) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid constant power intake (" + SUMOReal_str(ConstantPowerIntake) + ").");
}
if (PropulsionEfficiency < 0 || PropulsionEfficiency > 1) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid propulsion efficiency (" + SUMOReal_str(PropulsionEfficiency) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid propulsion efficiency (" + SUMOReal_str(PropulsionEfficiency) + ").");
}
if (RecuperationEfficiency < 0 || RecuperationEfficiency > 1) {
- WRITE_WARNING("Battery builder: Vehicle with id = " + getID() + " has not a valid Recuparation efficiency (" + SUMOReal_str(RecuperationEfficiency) + ").");
+ WRITE_WARNING("Battery builder: Vehicle '" + getID() + "' has not a valid Recuparation efficiency (" + SUMOReal_str(RecuperationEfficiency) + ").");
}
}
@@ -365,20 +347,20 @@ MSDevice_Battery::~MSDevice_Battery()
// SET FUNCTIONS
-void MSDevice_Battery::setActBatKap(const SUMOReal new_ActBatKap) {
+void MSDevice_Battery::setActualBatteryCapacity(const SUMOReal new_ActBatKap) {
ActBatKap = new_ActBatKap;
if (ActBatKap > MaxBatKap) {
- WRITE_WARNING("Function setActBatKap: Actual battery capacity (" + SUMOReal_str(ActBatKap) + ") from Vehicle with id = " + getID() + " is greater than it's max battery capacity(" + SUMOReal_str(MaxBatKap) + ").");
+ WRITE_WARNING("Function setActualBatteryCapacity: Actual battery capacity (" + SUMOReal_str(ActBatKap) + ") from Vehicle '" + getID() + "' is greater than it's max battery capacity(" + SUMOReal_str(MaxBatKap) + ").");
}
}
-void MSDevice_Battery::setMaxBatKap(const SUMOReal new_MaxBatKap) {
+void MSDevice_Battery::setMaximumBatteryCapacity(const SUMOReal new_MaxBatKap) {
MaxBatKap = new_MaxBatKap;
if (MaxBatKap < 0) {
- WRITE_WARNING("Function setMaxBatKap: Vehicle with id = " + getID() + " has not a valid battery capacity (" + SUMOReal_str(MaxBatKap) + ").");
+ WRITE_WARNING("Function setMaximumBatteryCapacity: Vehicle '" + getID() + "' has not a valid battery capacity (" + SUMOReal_str(MaxBatKap) + ").");
}
}
@@ -387,7 +369,7 @@ void MSDevice_Battery::setMass(const SUMOReal new_Mass) {
Mass = new_Mass;
if (Mass < 0) {
- WRITE_WARNING("Function setMass: Vehicle with id = " + getID() + " has not a valid mass (" + SUMOReal_str(Mass) + ").");
+ WRITE_WARNING("Function setMass: Vehicle '" + getID() + "' has not a valid mass (" + SUMOReal_str(Mass) + ").");
}
}
@@ -396,7 +378,7 @@ void MSDevice_Battery::setPowerMax(const SUMOReal new_PowerMax) {
PowerMax = new_PowerMax;
if (PowerMax < 0) {
- WRITE_WARNING("Function setPowerMax: Vehicle with id = " + getID() + " has not a valid power max (" + SUMOReal_str(PowerMax) + ").");
+ WRITE_WARNING("Function setPowerMax: Vehicle '" + getID() + "' has not a valid power max (" + SUMOReal_str(PowerMax) + ").");
}
}
@@ -404,7 +386,7 @@ void MSDevice_Battery::setFrontSurfaceArea(const SUMOReal new_FrontSurfaceArea)
FrontSurfaceArea = new_FrontSurfaceArea;
if (FrontSurfaceArea < 0) {
- WRITE_WARNING("Function setFrontSurfaceArea: Vehicle with id = " + getID() + " has not a valid front surface Area (" + SUMOReal_str(FrontSurfaceArea) + ").");
+ WRITE_WARNING("Function setFrontSurfaceArea: Vehicle '" + getID() + "' has not a valid front surface Area (" + SUMOReal_str(FrontSurfaceArea) + ").");
}
}
@@ -413,7 +395,7 @@ void MSDevice_Battery::setAirDragCoefficient(const SUMOReal new_AirDragCoefficie
AirDragCoefficient = new_AirDragCoefficient;
if (AirDragCoefficient < 0) {
- WRITE_WARNING("Function setAirDragCoefficient: Vehicle with id = " + getID() + " has not a valid drag coefficient (" + SUMOReal_str(AirDragCoefficient) + ").");
+ WRITE_WARNING("Function setAirDragCoefficient: Vehicle '" + getID() + "' has not a valid drag coefficient (" + SUMOReal_str(AirDragCoefficient) + ").");
}
}
@@ -422,7 +404,7 @@ void MSDevice_Battery::setInternalMomentOfInertia(const SUMOReal new_InternalMom
InternalMomentOfInertia = new_InternalMomentOfInertia;
if (InternalMomentOfInertia < 0) {
- WRITE_WARNING("Function setInternalMomentOfInertia: Vehicle with id = " + getID() + " has not a valid internal moment of inertia (" + SUMOReal_str(InternalMomentOfInertia) + ").");
+ WRITE_WARNING("Function setInternalMomentOfInertia: Vehicle '" + getID() + "' has not a valid internal moment of inertia (" + SUMOReal_str(InternalMomentOfInertia) + ").");
}
}
@@ -431,7 +413,7 @@ void MSDevice_Battery::setRadialDragCoefficient(const SUMOReal new_RadialDragCoe
RadialDragCoefficient = new_RadialDragCoefficient;
if (RadialDragCoefficient < 0) {
- WRITE_WARNING("Function setRadialDragCoefficient: Vehicle with id = " + getID() + " has not a valid radial friction coefficient (" + SUMOReal_str(RadialDragCoefficient) + ").");
+ WRITE_WARNING("Function setRadialDragCoefficient: Vehicle '" + getID() + "' has not a valid radial friction coefficient (" + SUMOReal_str(RadialDragCoefficient) + ").");
}
}
@@ -440,7 +422,7 @@ void MSDevice_Battery::setRollDragCoefficient(const SUMOReal new_RollDragCoeffic
RollDragCoefficient = new_RollDragCoefficient;
if (RollDragCoefficient < 0) {
- WRITE_WARNING("Function setRollDragCoefficient: Vehicle with id = " + getID() + " has not a valid roll friction coefficient (" + SUMOReal_str(RollDragCoefficient) + ").");
+ WRITE_WARNING("Function setRollDragCoefficient: Vehicle '" + getID() + "' has not a valid roll friction coefficient (" + SUMOReal_str(RollDragCoefficient) + ").");
}
}
@@ -449,7 +431,7 @@ void MSDevice_Battery::setConstantPowerIntake(const SUMOReal new_ConstantPowerIn
ConstantPowerIntake = new_ConstantPowerIntake;
if (ConstantPowerIntake < 0) {
- WRITE_WARNING("Function setConstantPowerIntake: Vehicle with id = " + getID() + " has not a valid constant power intake (" + SUMOReal_str(ConstantPowerIntake) + ").");
+ WRITE_WARNING("Function setConstantPowerIntake: Vehicle '" + getID() + "' has not a valid constant power intake (" + SUMOReal_str(ConstantPowerIntake) + ").");
}
}
@@ -458,7 +440,7 @@ void MSDevice_Battery::setPropulsionEfficiency(const SUMOReal new_PropulsionEffi
PropulsionEfficiency = new_PropulsionEfficiency;
if (PropulsionEfficiency < 0 || PropulsionEfficiency > 1) {
- WRITE_WARNING("Function setPropulsionEfficiency: Vehicle with id = " + getID() + " has not a valid propulsion efficiency (" + SUMOReal_str(PropulsionEfficiency) + ").");
+ WRITE_WARNING("Function setPropulsionEfficiency: Vehicle '" + getID() + "' has not a valid propulsion efficiency (" + SUMOReal_str(PropulsionEfficiency) + ").");
}
}
@@ -467,7 +449,7 @@ void MSDevice_Battery::setRecuperationEfficiency(const SUMOReal new_Recuperation
RecuperationEfficiency = new_RecuperationEfficiency;
if (RecuperationEfficiency < 0 || RecuperationEfficiency > 1) {
- WRITE_WARNING("Function setRecuperationEfficiency: Vehicle with id = " + getID() + " has not a valid recuparation efficiency (" + SUMOReal_str(RecuperationEfficiency) + ").");
+ WRITE_WARNING("Function setRecuperationEfficiency: Vehicle '" + getID() + "' has not a valid recuparation efficiency (" + SUMOReal_str(RecuperationEfficiency) + ").");
}
}
@@ -499,15 +481,15 @@ inline void MSDevice_Battery::increaseVehicleStoppedTimer() {
//GET FUNCTIONS
-SUMOReal MSDevice_Battery::getActBatKap() const {
+SUMOReal MSDevice_Battery::getActualBatteryCapacity() const {
return ActBatKap;
}
-SUMOReal MSDevice_Battery::getMaxBatKap() const {
+SUMOReal MSDevice_Battery::getMaximumBatteryCapacity() const {
return MaxBatKap;
}
-SUMOReal MSDevice_Battery::getPowerMax() const {
+SUMOReal MSDevice_Battery::getMaximumPower() const {
return PowerMax;
}
@@ -571,8 +553,8 @@ SUMOReal MSDevice_Battery::getChargingStartTime() const {
return ChargingStartTime;
}
-const std::string& MSDevice_Battery::getChrgStnID() const {
- return actChrgStn;
+const std::string& MSDevice_Battery::getChargingStationID() const {
+ return actChargingStation;
}
SUMOReal MSDevice_Battery::getChrgEnergy() const {
@@ -598,11 +580,18 @@ SUMOReal MSDevice_Battery::getPropEnergy(SUMOVehicle& veh) {
// Calculate the radius of the vehicle's current path if is distintc (r = ds / dphi)
SUMOReal radius = 0;
- if (getLastAngle() != veh.getAngle())
- radius = veh.getSpeed() * 180 / (PI * (
- (fabs(getLastAngle() - veh.getAngle()) < fabs(veh.getAngle() - getLastAngle())) ?
- fabs(getLastAngle() - veh.getAngle()) :
- fabs(veh.getAngle() - getLastAngle())));
+ // If angle of vehicle was changed
+ if (getLastAngle() != veh.getAngle()) {
+ // Compute new radio
+ radius = SPEED2DIST(veh.getSpeed()) / fabs(GeomHelper::angleDiff(getLastAngle(), veh.getAngle()));
+
+ // Check if radius is in the interval [0.0001 - 10000] (To avoid overflow and division by zero)
+ if (radius < 0.0001) {
+ radius = 0.0001;
+ } else if (radius > 10000) {
+ radius = 10000;
+ }
+ }
// add current rotational energy of internal rotating elements
currentEnergy += getInternalMomentOfInertia() * veh.getSpeed() * veh.getSpeed();
@@ -649,11 +638,7 @@ SUMOReal MSDevice_Battery::getPropEnergy(SUMOVehicle& veh) {
// convert from [Ws] to [kWh] (3600s / 1h):
EnergyLoss = EnergyLoss / 3600 ; // EnergyLoss[Ws] * 1[h]/3600[s] * 1[k]/1000
-
- // original EnergyLoss = EnergyLoss / 3600 / 1000 ; // EnergyLoss[Ws] * 1[h]/3600[s] * 1[k]/1000
-
- //BATTERYS CAPACITY CHANGE !!
-
+ // Return calculated energy
return(EnergyLoss);
}
diff --git a/src/microsim/devices/MSDevice_Battery.h b/src/microsim/devices/MSDevice_Battery.h
index aed467b..6a16b55 100644
--- a/src/microsim/devices/MSDevice_Battery.h
+++ b/src/microsim/devices/MSDevice_Battery.h
@@ -3,7 +3,7 @@
/// @author Tamas Kurczveil
/// @author Pablo Alvarez L�pez
/// @date 20-12-13
-/// @version $Id: MSDevice_Battery.h 18762 2015-09-01 16:27:09Z behrisch $
+/// @version $Id: MSDevice_Battery.h 19525 2015-12-04 11:08:33Z namdre $
///
// The Battery parameters for the vehicle
/****************************************************************************/
@@ -34,7 +34,7 @@
#include <microsim/devices/MSDevice.h>
#include <microsim/MSVehicle.h>
-#include <microsim/trigger/MSChrgStn.h>
+#include <microsim/trigger/MSChargingStation.h>
#include <utils/common/SUMOTime.h>
#include <iostream>
#include <sstream>
@@ -147,13 +147,13 @@ public:
// GET FUNCTIONS
/// @brief Get parameter 01, the actual vehicles' Battery Capacity in kWh
- SUMOReal getActBatKap() const;
+ SUMOReal getActualBatteryCapacity() const;
/// @brief Get parameter 02, the total vehicles' Battery Capacity in kWh
- SUMOReal getMaxBatKap() const;
+ SUMOReal getMaximumBatteryCapacity() const;
/// @brief Get parameter 03, the maximum power when accelerating
- inline SUMOReal getPowerMax() const;
+ inline SUMOReal getMaximumPower() const;
/// @brief Get parameter 04, vehicle's Mass
inline SUMOReal getMass() const;
@@ -201,7 +201,7 @@ public:
SUMOReal getConsum() const;
/// @brief Get parameter 19, Charging Station I
- const std::string& getChrgStnID() const;
+ const std::string& getChargingStationID() const;
/// @brief Get parameter 20, charging energy
SUMOReal getChrgEnergy() const;
@@ -216,10 +216,10 @@ public:
// SET FUNCTIONS
/// @brief Set parameter 01, The actual vehicles' Battery Capacity in kWh
- inline void setActBatKap(const SUMOReal new_ActBatKap);
+ inline void setActualBatteryCapacity(const SUMOReal new_ActBatKap);
/// @brief Set parameter 02, The total vehicles' Battery Capacity in kWh
- inline void setMaxBatKap(const SUMOReal new_MaxBatKap);
+ inline void setMaximumBatteryCapacity(const SUMOReal new_MaxBatKap);
/// @brief Set parameter 03, The maximum power when accelerating
inline void setPowerMax(const SUMOReal new_Pmax);
@@ -269,12 +269,6 @@ public:
/// @brief Set parameter 21a, increase vehicleStopped
inline void increaseVehicleStoppedTimer();
-
-
-
-
-
-
private:
/// @brief Parameter 01, The actual vehicles' Battery Capacity in kWh
@@ -351,7 +345,7 @@ private:
/// @brief Parameter 19, Vehicle consum during a time step
/// @condition by default is "".
- std::string actChrgStn;
+ std::string actChargingStation;
/// @brief Parameter 20, Energy charged in each timestep
SUMOReal energyCharged;
diff --git a/src/microsim/devices/MSDevice_Container.cpp b/src/microsim/devices/MSDevice_Container.cpp
index 96ecc7b..c123cff 100644
--- a/src/microsim/devices/MSDevice_Container.cpp
+++ b/src/microsim/devices/MSDevice_Container.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Mon, 16 Jun 2014
-/// @version $Id: MSDevice_Container.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSDevice_Container.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// A device which is used to keep track of containers riding with a vehicle
/****************************************************************************/
@@ -113,8 +113,8 @@ MSDevice_Container::notifyLeave(SUMOVehicle& veh, SUMOReal /*lastPos*/,
MSTransportable* container = *i;
if (&(container->getDestination()) != veh.getEdge()) {
WRITE_WARNING("Teleporting container '" + container->getID() +
- "' from vehicle destination '" + veh.getEdge()->getID() +
- "' to intended destination '" + container->getDestination().getID() + "'");
+ "' from vehicle destination edge '" + veh.getEdge()->getID() +
+ "' to intended destination edge '" + container->getDestination().getID() + "'");
}
if (!container->proceed(MSNet::getInstance(), MSNet::getInstance()->getCurrentTimeStep())) {
MSNet::getInstance()->getContainerControl().erase(container);
diff --git a/src/microsim/devices/MSDevice_Person.cpp b/src/microsim/devices/MSDevice_Person.cpp
index 18fcd85..5346ca0 100644
--- a/src/microsim/devices/MSDevice_Person.cpp
+++ b/src/microsim/devices/MSDevice_Person.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Fri, 30.01.2009
-/// @version $Id: MSDevice_Person.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSDevice_Person.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// A device which is used to keep track of Persons riding with a vehicle
/****************************************************************************/
@@ -117,8 +117,8 @@ MSDevice_Person::notifyLeave(SUMOVehicle& veh, SUMOReal /*lastPos*/,
MSTransportable* person = *i;
if (&(person->getDestination()) != veh.getEdge()) {
WRITE_WARNING("Teleporting person '" + person->getID() +
- "' from vehicle destination '" + veh.getEdge()->getID() +
- "' to intended destination '" + person->getDestination().getID() + "'");
+ "' from vehicle destination edge '" + veh.getEdge()->getID() +
+ "' to intended destination edge '" + person->getDestination().getID() + "'");
}
if (!person->proceed(MSNet::getInstance(), MSNet::getInstance()->getCurrentTimeStep())) {
MSNet::getInstance()->getPersonControl().erase(person);
diff --git a/src/microsim/devices/MSDevice_Routing.cpp b/src/microsim/devices/MSDevice_Routing.cpp
index 7c75f2a..b315b1a 100644
--- a/src/microsim/devices/MSDevice_Routing.cpp
+++ b/src/microsim/devices/MSDevice_Routing.cpp
@@ -6,7 +6,7 @@
/// @author Christoph Sommer
/// @author Jakob Erdmann
/// @date Tue, 04 Dec 2007
-/// @version $Id: MSDevice_Routing.cpp 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: MSDevice_Routing.cpp 19131 2015-10-20 11:52:38Z namdre $
///
// A device that performs vehicle rerouting based on current edge speeds
/****************************************************************************/
@@ -96,7 +96,7 @@ MSDevice_Routing::insertOptions(OptionsCont& oc) {
oc.doRegister("device.rerouting.with-taz", new Option_Bool(false));
oc.addSynonyme("device.rerouting.with-taz", "device.routing.with-taz", true);
oc.addSynonyme("device.rerouting.with-taz", "with-taz");
- oc.addDescription("device.rerouting.with-taz", "Routing", "Use zones (districts) as routing end points");
+ oc.addDescription("device.rerouting.with-taz", "Routing", "Use zones (districts) as routing start- and endpoints");
oc.doRegister("device.rerouting.init-with-loaded-weights", new Option_Bool(false));
oc.addDescription("device.rerouting.init-with-loaded-weights", "Routing", "Use given weight files for initializing edge weights");
@@ -104,10 +104,8 @@ MSDevice_Routing::insertOptions(OptionsCont& oc) {
oc.doRegister("device.rerouting.shortest-path-file", new Option_FileName());
oc.addDescription("device.rerouting.shortest-path-file", "Routing", "Initialize lookup table for astar from the given distance matrix");
-#ifdef HAVE_FOX
oc.doRegister("device.rerouting.threads", new Option_Integer(0));
oc.addDescription("device.rerouting.threads", "Routing", "The number of parallel execution threads used for rerouting");
-#endif
oc.doRegister("device.rerouting.output", new Option_FileName());
oc.addDescription("device.rerouting.output", "Routing", "Save adapting weights to FILE");
@@ -127,7 +125,7 @@ MSDevice_Routing::buildVehicleDevices(SUMOVehicle& v, std::vector<MSDevice*>& in
// no route computation is modelled
return;
}
- needRerouting |= equippedByDefaultAssignmentOptions(OptionsCont::getOptions(), "rerouting", v);
+ needRerouting |= equippedByDefaultAssignmentOptions(oc, "rerouting", v);
if (needRerouting) {
// route computation is enabled
myWithTaz = oc.getBool("device.rerouting.with-taz");
@@ -153,6 +151,11 @@ MSDevice_Routing::buildVehicleDevices(SUMOVehicle& v, std::vector<MSDevice*>& in
if (myRandomizeWeightsFactor < 1) {
WRITE_ERROR("weights.random-factor cannot be less than 1");
}
+#ifndef HAVE_FOX
+ if (oc.getInt("device.rerouting.threads") > 1) {
+ WRITE_ERROR("Parallel routing is only possible when compiled with Fox.");
+ }
+#endif
}
// make the weights be updated
if (myAdaptationInterval == -1) {
diff --git a/src/microsim/devices/MSDevice_Tripinfo.cpp b/src/microsim/devices/MSDevice_Tripinfo.cpp
index a62a9bb..66ebfe9 100644
--- a/src/microsim/devices/MSDevice_Tripinfo.cpp
+++ b/src/microsim/devices/MSDevice_Tripinfo.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Fri, 30.01.2009
-/// @version $Id: MSDevice_Tripinfo.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: MSDevice_Tripinfo.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A device which collects info on the vehicle trip
/****************************************************************************/
@@ -51,6 +51,13 @@
// ===========================================================================
MSDevice_Tripinfo::DeviceSet MSDevice_Tripinfo::myPendingOutput;
+SUMOReal MSDevice_Tripinfo::myVehicleCount(0);
+SUMOReal MSDevice_Tripinfo::myTotalRouteLength(0);
+SUMOTime MSDevice_Tripinfo::myTotalDuration(0);
+SUMOTime MSDevice_Tripinfo::myTotalWaitingTime(0);
+SUMOTime MSDevice_Tripinfo::myTotalTimeLoss(0);
+SUMOTime MSDevice_Tripinfo::myTotalDepartDelay(0);
+
// ===========================================================================
// method definitions
// ===========================================================================
@@ -59,7 +66,7 @@ MSDevice_Tripinfo::DeviceSet MSDevice_Tripinfo::myPendingOutput;
// ---------------------------------------------------------------------------
void
MSDevice_Tripinfo::buildVehicleDevices(SUMOVehicle& v, std::vector<MSDevice*>& into) {
- if (OptionsCont::getOptions().isSet("tripinfo-output")) {
+ if (OptionsCont::getOptions().isSet("tripinfo-output") || OptionsCont::getOptions().getBool("duration-log.statistics")) {
MSDevice_Tripinfo* device = new MSDevice_Tripinfo(v, "tripinfo_" + v.getID());
into.push_back(device);
myPendingOutput.insert(device);
@@ -144,10 +151,8 @@ MSDevice_Tripinfo::notifyLeave(SUMOVehicle& veh, SUMOReal /*lastPos*/,
return true;
}
-
void
-MSDevice_Tripinfo::generateOutput() const {
- myPendingOutput.erase(this);
+MSDevice_Tripinfo::computeLengthAndDuration(SUMOReal& routeLength, SUMOTime& duration) const {
SUMOTime finalTime;
SUMOReal finalPos;
SUMOReal finalPosOnInternal = 0;
@@ -166,8 +171,23 @@ MSDevice_Tripinfo::generateOutput() const {
finalPos = myArrivalPos;
}
const bool includeInternalLengths = MSGlobals::gUsingInternalLanes && MSNet::getInstance()->hasInternalLinks();
- const SUMOReal routeLength = myHolder.getRoute().getDistanceBetween(myDepartPos, finalPos,
- myHolder.getRoute().begin(), myHolder.getCurrentRouteEdge(), includeInternalLengths) + finalPosOnInternal;
+ routeLength = myHolder.getRoute().getDistanceBetween(myDepartPos, finalPos,
+ myHolder.getRoute().begin(), myHolder.getCurrentRouteEdge(), includeInternalLengths) + finalPosOnInternal;
+
+ duration = finalTime - myHolder.getDeparture();
+}
+
+
+void
+MSDevice_Tripinfo::generateOutput() const {
+ updateStatistics();
+ if (!OptionsCont::getOptions().isSet("tripinfo-output")) {
+ return;
+ }
+ myPendingOutput.erase(this);
+ SUMOReal routeLength;
+ SUMOTime duration;
+ computeLengthAndDuration(routeLength, duration);
// write
OutputDevice& os = OutputDevice::getDeviceByOption("tripinfo-output");
@@ -176,12 +196,12 @@ MSDevice_Tripinfo::generateOutput() const {
os.writeAttr("departLane", myDepartLane);
os.writeAttr("departPos", myDepartPos);
os.writeAttr("departSpeed", myDepartSpeed);
- os.writeAttr("departDelay", time2string(myHolder.getDeparture() - myHolder.getParameter().depart));
+ os.writeAttr("departDelay", time2string(myHolder.getDepartDelay()));
os.writeAttr("arrival", time2string(myArrivalTime));
os.writeAttr("arrivalLane", myArrivalLane);
os.writeAttr("arrivalPos", myArrivalPos);
os.writeAttr("arrivalSpeed", myArrivalSpeed);
- os.writeAttr("duration", time2string(finalTime - myHolder.getDeparture()));
+ os.writeAttr("duration", time2string(duration));
os.writeAttr("routeLength", routeLength);
os.writeAttr("waitSteps", myWaitingSteps);
os.writeAttr("timeLoss", time2string(myTimeLoss));
@@ -207,6 +227,9 @@ MSDevice_Tripinfo::generateOutputForUnfinished() {
const MSDevice_Tripinfo* d = *myPendingOutput.begin();
if (d->myHolder.hasDeparted()) {
d->generateOutput();
+ if (!OptionsCont::getOptions().isSet("tripinfo-output")) {
+ return;
+ }
// @todo also generate emission output if holder has a device
OutputDevice::getDeviceByOption("tripinfo-output").closeTag();
} else {
@@ -216,6 +239,81 @@ MSDevice_Tripinfo::generateOutputForUnfinished() {
}
+void
+MSDevice_Tripinfo::updateStatistics() const {
+ SUMOReal routeLength;
+ SUMOTime duration;
+ computeLengthAndDuration(routeLength, duration);
+
+ myVehicleCount++;
+ myTotalRouteLength += routeLength;
+ myTotalDuration += duration;
+ myTotalWaitingTime += (SUMOTime)(myWaitingSteps * DELTA_T);
+ myTotalTimeLoss += myTimeLoss;
+ myTotalDepartDelay += myHolder.getDepartDelay();
+}
+
+
+std::string
+MSDevice_Tripinfo::printStatistics() {
+ std::ostringstream msg;
+ msg.setf(msg.fixed);
+ msg.precision(OUTPUT_ACCURACY);
+ msg << "Statistics (avg):\n"
+ << " RouteLength: " << getAvgRouteLength() << "\n"
+ << " Duration: " << getAvgDuration() << "\n"
+ << " WaitingTime: " << getAvgWaitingTime() << "\n"
+ << " TimeLoss: " << getAvgTimeLoss() << "\n"
+ << " DepartDelay: " << getAvgDepartDelay() << "\n";
+ return msg.str();
+}
+
+
+SUMOReal
+MSDevice_Tripinfo::getAvgRouteLength() {
+ if (myVehicleCount > 0) {
+ return myTotalRouteLength / myVehicleCount;
+ } else {
+ return 0;
+ }
+}
+
+SUMOReal
+MSDevice_Tripinfo::getAvgDuration() {
+ if (myVehicleCount > 0) {
+ return STEPS2TIME(myTotalDuration / myVehicleCount);
+ } else {
+ return 0;
+ }
+}
+
+SUMOReal
+MSDevice_Tripinfo::getAvgWaitingTime() {
+ if (myVehicleCount > 0) {
+ return STEPS2TIME(myTotalWaitingTime / myVehicleCount);
+ } else {
+ return 0;
+ }
+}
+
+SUMOReal
+MSDevice_Tripinfo::getAvgTimeLoss() {
+ if (myVehicleCount > 0) {
+ return STEPS2TIME(myTotalTimeLoss / myVehicleCount);
+ } else {
+ return 0;
+ }
+}
+
+SUMOReal
+MSDevice_Tripinfo::getAvgDepartDelay() {
+ if (myVehicleCount > 0) {
+ return STEPS2TIME(myTotalDepartDelay / myVehicleCount);
+ } else {
+ return 0;
+ }
+}
+
/****************************************************************************/
diff --git a/src/microsim/devices/MSDevice_Tripinfo.h b/src/microsim/devices/MSDevice_Tripinfo.h
index 5049119..177166a 100644
--- a/src/microsim/devices/MSDevice_Tripinfo.h
+++ b/src/microsim/devices/MSDevice_Tripinfo.h
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Fri, 30.01.2009
-/// @version $Id: MSDevice_Tripinfo.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSDevice_Tripinfo.h 19002 2015-10-02 12:19:53Z namdre $
///
// A device which collects info on the vehicle trip
/****************************************************************************/
@@ -65,9 +65,22 @@ public:
*/
static void buildVehicleDevices(SUMOVehicle& v, std::vector<MSDevice*>& into);
+ /// @brief update tripinfo statistics
+ void updateStatistics() const;
+
/// @brief generate output for vehicles which are still in the network
static void generateOutputForUnfinished();
+ /// @brief get statistics for printing to stdout
+ static std::string printStatistics();
+
+ /// @brief accessors for GUINet-Parameters
+ static SUMOReal getAvgRouteLength();
+ static SUMOReal getAvgDuration();
+ static SUMOReal getAvgWaitingTime();
+ static SUMOReal getAvgTimeLoss();
+ static SUMOReal getAvgDepartDelay();
+
public:
/// @brief Destructor.
~MSDevice_Tripinfo();
@@ -135,6 +148,10 @@ private:
MSDevice_Tripinfo();
+ /* @brief compute trip length and duration (depending on whether the
+ vehicle arrived or not */
+ void computeLengthAndDuration(SUMOReal& routeLength, SUMOTime& duration) const;
+
private:
/// @brief The lane the vehicle departed at
std::string myDepartLane;
@@ -165,8 +182,17 @@ private:
/// @brief devices which may still need to produce output
typedef std::set<const MSDevice_Tripinfo*, Named::NamedLikeComparatorIdLess<MSDevice_Tripinfo> > DeviceSet;
+
static DeviceSet myPendingOutput;
+ /// @brief global tripinfo statistics
+ static SUMOReal myVehicleCount;
+ static SUMOReal myTotalRouteLength;
+ static SUMOTime myTotalDuration;
+ static SUMOTime myTotalWaitingTime;
+ static SUMOTime myTotalTimeLoss;
+ static SUMOTime myTotalDepartDelay;
+
private:
/// @brief Invalidated copy constructor.
MSDevice_Tripinfo(const MSDevice_Tripinfo&);
diff --git a/src/microsim/devices/MSDevice_Vehroutes.cpp b/src/microsim/devices/MSDevice_Vehroutes.cpp
index 6c69f14..9f27a7d 100644
--- a/src/microsim/devices/MSDevice_Vehroutes.cpp
+++ b/src/microsim/devices/MSDevice_Vehroutes.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Fri, 30.01.2009
-/// @version $Id: MSDevice_Vehroutes.cpp 18375 2015-05-15 07:05:22Z behrisch $
+/// @version $Id: MSDevice_Vehroutes.cpp 18868 2015-09-19 06:42:06Z namdre $
///
// A device which collects info on the vehicle trip
/****************************************************************************/
@@ -301,7 +301,11 @@ MSDevice_Vehroutes::generateOutput() const {
const MSRoute*
MSDevice_Vehroutes::getRoute(int index) const {
- return myReplacedRoutes[index].route;
+ if (index < (int)myReplacedRoutes.size()) {
+ return myReplacedRoutes[index].route;
+ } else {
+ return 0;
+ }
}
diff --git a/src/microsim/lcmodels/MSAbstractLaneChangeModel.cpp b/src/microsim/lcmodels/MSAbstractLaneChangeModel.cpp
index ba5d605..0694b0d 100644
--- a/src/microsim/lcmodels/MSAbstractLaneChangeModel.cpp
+++ b/src/microsim/lcmodels/MSAbstractLaneChangeModel.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Fri, 29.04.2005
-/// @version $Id: MSAbstractLaneChangeModel.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSAbstractLaneChangeModel.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// Interface for lane-change models
/****************************************************************************/
@@ -203,8 +203,8 @@ MSAbstractLaneChangeModel::continueLaneChangeManeuver(bool moved) {
myVehicle.enterLaneAtLaneChange(myShadowLane);
myShadowLane = tmp;
if (myVehicle.fixPosition()) {
- WRITE_WARNING("vehicle '" + myVehicle.getID() + "' set back by " + toString(myVehicle.getPositionOnLane() - myVehicle.getLane()->getLength()) +
- "m when changing lanes on lane '" + myVehicle.getLane()->getID() + " time=" +
+ WRITE_WARNING("Vehicle '" + myVehicle.getID() + "' set back by " + toString(myVehicle.getPositionOnLane() - myVehicle.getLane()->getLength()) +
+ "m when changing lanes on lane '" + myVehicle.getLane()->getID() + "' time=" +
time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
}
changed(myLaneChangeDirection);
diff --git a/src/microsim/lcmodels/MSLCM_DK2008.cpp b/src/microsim/lcmodels/MSLCM_DK2008.cpp
index d2f5b24..48046cc 100644
--- a/src/microsim/lcmodels/MSLCM_DK2008.cpp
+++ b/src/microsim/lcmodels/MSLCM_DK2008.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Tue, 29.05.2005
-/// @version $Id: MSLCM_DK2008.cpp 18403 2015-05-19 10:41:09Z namdre $
+/// @version $Id: MSLCM_DK2008.cpp 19345 2015-11-13 05:56:56Z namdre $
///
// A lane change model developed by D. Krajzewicz between 2004 and 2010
/****************************************************************************/
@@ -280,18 +280,18 @@ MSLCM_DK2008::wantsChangeToRight(MSAbstractLaneChangeModel::MSLCMessager& msgPas
if (thisLaneVSafe - neighLaneVSafe > 5. / 3.6) {
// ok, the current lane is faster than the right one...
if (myChangeProbability < 0) {
- myChangeProbability /= 2.0;
+ myChangeProbability *= pow(0.5, TS);
}
} else {
// ok, the right lane is faster than the current
- myChangeProbability -= (SUMOReal)((neighLaneVSafe - thisLaneVSafe) / (myVehicle.getLane()->getVehicleMaxSpeed(&myVehicle)));
+ myChangeProbability -= TS * ((neighLaneVSafe - thisLaneVSafe) / (myVehicle.getLane()->getVehicleMaxSpeed(&myVehicle)));
}
// let's recheck the "Rechtsfahrgebot"
SUMOReal vmax = MIN2(myVehicle.getLane()->getVehicleMaxSpeed(&myVehicle), myVehicle.getVehicleType().getMaxSpeed());
vmax -= (SUMOReal)(5. / 2.6);
if (neighLaneVSafe >= vmax) {
- myChangeProbability -= (SUMOReal)((neighLaneVSafe - vmax) / (vmax));
+ myChangeProbability -= TS * ((neighLaneVSafe - vmax) / (vmax));
}
if (myChangeProbability < -2 && neighDist / MAX2((SUMOReal) .1, myVehicle.getSpeed()) > 20.) { //./MAX2((SUMOReal) .1, myVehicle.getSpeed())) { // -.1
@@ -498,11 +498,11 @@ MSLCM_DK2008::wantsChangeToLeft(MSAbstractLaneChangeModel::MSLCMessager& msgPass
if (thisLaneVSafe > neighLaneVSafe) {
// this lane is better
if (myChangeProbability > 0) {
- myChangeProbability /= 2.0;
+ myChangeProbability *= pow(0.5, TS);
}
} else {
// right lane is better
- myChangeProbability += (SUMOReal)((neighLaneVSafe - thisLaneVSafe) / (myVehicle.getLane()->getVehicleMaxSpeed(&myVehicle))); // !!! Fahrzeuggeschw.!
+ myChangeProbability += TS * ((neighLaneVSafe - thisLaneVSafe) / (myVehicle.getLane()->getVehicleMaxSpeed(&myVehicle))); // !!! Fahrzeuggeschw.!
}
if (myChangeProbability > .2 && neighDist / MAX2((SUMOReal) .1, myVehicle.getSpeed()) > 20.) { // .1
return ret | LCA_LEFT | LCA_SPEEDGAIN | LCA_URGENT;
diff --git a/src/microsim/lcmodels/MSLCM_JE2013.cpp b/src/microsim/lcmodels/MSLCM_JE2013.cpp
index 8b87c66..80bf311 100644
--- a/src/microsim/lcmodels/MSLCM_JE2013.cpp
+++ b/src/microsim/lcmodels/MSLCM_JE2013.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Fri, 08.10.2013
-/// @version $Id: MSLCM_JE2013.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSLCM_JE2013.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A lane change model developed by J. Erdmann
// based on the model of D. Krajzewicz developed between 2004 and 2011 (MSLCM_DK2004)
@@ -89,7 +89,7 @@
#define TURN_LANE_DIST (SUMOReal)200.0 // the distance at which a lane leading elsewhere is considered to be a turn-lane that must be avoided
//#define DEBUG_COND (myVehicle.getID() == "1501_27271428" || myVehicle.getID() == "1502_27270000")
-//#define DEBUG_COND (myVehicle.getID() == "overtaking")
+//#define DEBUG_COND (myVehicle.getID() == "f0.1")
//#define DEBUG_COND (myVehicle.getID() == "pkw150478" || myVehicle.getID() == "pkw150494" || myVehicle.getID() == "pkw150289")
//#define DEBUG_COND (myVehicle.getID() == "A" || myVehicle.getID() == "B") // fail change to left
//#define DEBUG_COND (myVehicle.getID() == "Costa_12_13") // test stops_overtaking
@@ -134,7 +134,8 @@ MSLCM_JE2013::wantsChange(
gDebugFlag2 = DEBUG_COND;
if (gDebugFlag2) {
- std::cout << STEPS2TIME(MSNet::getInstance()->getCurrentTimeStep())
+ std::cout << "\n" << STEPS2TIME(MSNet::getInstance()->getCurrentTimeStep())
+ //<< std::setprecision(20)
<< " veh=" << myVehicle.getID()
<< " lane=" << myVehicle.getLane()->getID()
<< " pos=" << myVehicle.getPositionOnLane()
@@ -523,11 +524,18 @@ MSLCM_JE2013::informFollower(MSAbstractLaneChangeModel::MSLCMessager& msgPass,
if (decelGap > 0 && decelGap >= secureGap) {
// if the blocking neighbor brakes it could actually help
// how hard does it actually need to be?
+ // to be safe in the next step the following equation has to hold:
+ // vsafe <= followSpeed(gap=currentGap - SPEED2DIST(vsafe), ...)
+ // we compute an upper bound on vsafe by doing the computation twice
+ const SUMOReal vsafe1 = MAX2(neighNewSpeed, nv->getCarFollowModel().followSpeed(
+ nv, nv->getSpeed(), neighFollow.second + SPEED2DIST(plannedSpeed), plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel()));
const SUMOReal vsafe = MAX2(neighNewSpeed, nv->getCarFollowModel().followSpeed(
- nv, nv->getSpeed(), neighFollow.second, plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel()));
+ nv, nv->getSpeed(), neighFollow.second + SPEED2DIST(plannedSpeed - vsafe1), plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel()));
+ assert(vsafe <= vsafe1);
msgPass.informNeighFollower(new Info(vsafe, dir | LCA_AMBLOCKINGFOLLOWER), &myVehicle);
if (gDebugFlag2) {
std::cout << " wants to cut in before nv=" << nv->getID()
+ << " vsafe1=" << vsafe1
<< " vsafe=" << vsafe
<< " newSecGap=" << nv->getCarFollowModel().getSecureGap(vsafe, plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel())
<< "\n";
@@ -593,8 +601,10 @@ MSLCM_JE2013::informFollower(MSAbstractLaneChangeModel::MSLCMessager& msgPass,
} else if (neighFollow.first != 0) {
// we are not blocked no, make sure it remains that way
MSVehicle* nv = neighFollow.first;
+ const SUMOReal vsafe1 = nv->getCarFollowModel().followSpeed(
+ nv, nv->getSpeed(), neighFollow.second + SPEED2DIST(plannedSpeed), plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel());
const SUMOReal vsafe = nv->getCarFollowModel().followSpeed(
- nv, nv->getSpeed(), neighFollow.second, plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel());
+ nv, nv->getSpeed(), neighFollow.second + SPEED2DIST(plannedSpeed - vsafe1), plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel());
msgPass.informNeighFollower(new Info(vsafe, dir), &myVehicle);
if (gDebugFlag2) {
std::cout << " wants to cut in before non-blocking follower nv=" << nv->getID() << "\n";
@@ -716,6 +726,8 @@ MSLCM_JE2013::_wantsChange(
<< " veh=" << myVehicle.getID()
<< " firstBlocked=" << tryID(*firstBlocked)
<< " lastBlocked=" << tryID(*lastBlocked)
+ << " leader=" << tryID(leader.first)
+ << " leaderGap=" << leader.second
<< " neighLead=" << tryID(neighLead.first)
<< " neighLeadGap=" << neighLead.second
<< " neighFollow=" << tryID(neighFollow.first)
@@ -834,7 +846,7 @@ MSLCM_JE2013::_wantsChange(
&myVehicle, myVehicle.getSpeed(), neighLead.second, nv->getSpeed(), nv->getCarFollowModel().getMaxDecel());
myVSafes.push_back(vSafe);
if (vSafe < myVehicle.getSpeed()) {
- mySpeedGainProbability += CHANGE_PROB_THRESHOLD_LEFT / 3;
+ mySpeedGainProbability += TS * CHANGE_PROB_THRESHOLD_LEFT / 3;
}
if (gDebugFlag2) {
std::cout << STEPS2TIME(currentTime)
@@ -1020,6 +1032,13 @@ MSLCM_JE2013::_wantsChange(
// @todo: what if leader is below safe gap?!!!
thisLaneVSafe = MIN2(thisLaneVSafe, myCarFollowModel.followSpeed(&myVehicle, myVehicle.getSpeed(), leader.second, leader.first->getSpeed(), leader.first->getCarFollowModel().getMaxDecel()));
}
+ if (gDebugFlag2) {
+ std::cout << STEPS2TIME(currentTime)
+ << " veh=" << myVehicle.getID()
+ << " currentDist=" << currentDist
+ << " neighDist=" << neighDist
+ << "\n";
+ }
const SUMOReal vMax = MIN2(myVehicle.getVehicleType().getMaxSpeed(), myVehicle.getLane()->getVehicleMaxSpeed(&myVehicle));
thisLaneVSafe = MIN2(thisLaneVSafe, vMax);
@@ -1032,11 +1051,17 @@ MSLCM_JE2013::_wantsChange(
if (thisLaneVSafe - 5 / 3.6 > neighLaneVSafe) {
// ok, the current lane is faster than the right one...
if (mySpeedGainProbability < 0) {
- mySpeedGainProbability /= 2.0;
+ mySpeedGainProbability *= pow(0.5, TS);
}
} else {
- // ok, the current lane is not faster than the right one
- mySpeedGainProbability -= relativeGain;
+ // ok, the current lane is not (much) faster than the right one
+ // @todo recheck the 5 km/h discount on thisLaneVSafe
+
+ // do not promote changing to the left just because changing to the
+ // right is bad
+ if (mySpeedGainProbability < 0 || relativeGain > 0) {
+ mySpeedGainProbability -= TS * relativeGain;
+ }
// honor the obligation to keep right (Rechtsfahrgebot)
// XXX consider fast approaching followers on the current lane
@@ -1053,7 +1078,7 @@ MSLCM_JE2013::_wantsChange(
const SUMOReal deltaProb = (CHANGE_PROB_THRESHOLD_RIGHT
* STEPS2TIME(DELTA_T)
* (fullSpeedDrivingSeconds / acceptanceTime) / KEEP_RIGHT_TIME);
- myKeepRightProbability -= deltaProb;
+ myKeepRightProbability -= TS * deltaProb;
if (gDebugFlag2) {
std::cout << STEPS2TIME(currentTime)
@@ -1068,6 +1093,7 @@ MSLCM_JE2013::_wantsChange(
<< " fullSpeedGap=" << fullSpeedGap
<< " fullSpeedDrivingSeconds=" << fullSpeedDrivingSeconds
<< " dProb=" << deltaProb
+ << " myKeepRightProbability=" << myKeepRightProbability
<< "\n";
}
if (myKeepRightProbability < -CHANGE_PROB_THRESHOLD_RIGHT) {
@@ -1082,7 +1108,7 @@ MSLCM_JE2013::_wantsChange(
std::cout << STEPS2TIME(currentTime)
<< " veh=" << myVehicle.getID()
<< " speed=" << myVehicle.getSpeed()
- << " myKeepRightProbability=" << myKeepRightProbability
+ << " mySpeedGainProbability=" << mySpeedGainProbability
<< " thisLaneVSafe=" << thisLaneVSafe
<< " neighLaneVSafe=" << neighLaneVSafe
<< " relativeGain=" << relativeGain
@@ -1102,11 +1128,11 @@ MSLCM_JE2013::_wantsChange(
if (thisLaneVSafe > neighLaneVSafe) {
// this lane is better
if (mySpeedGainProbability > 0) {
- mySpeedGainProbability /= 2.0;
+ mySpeedGainProbability *= pow(0.5, TS);
}
} else {
// left lane is better
- mySpeedGainProbability += relativeGain;
+ mySpeedGainProbability += TS * relativeGain;
}
// VARIANT_19 (stayRight)
//if (neighFollow.first != 0) {
@@ -1117,6 +1143,18 @@ MSLCM_JE2013::_wantsChange(
// return ret | LCA_STAY | LCA_SPEEDGAIN;
// }
//}
+
+ if (gDebugFlag2) {
+ std::cout << STEPS2TIME(currentTime)
+ << " veh=" << myVehicle.getID()
+ << " speed=" << myVehicle.getSpeed()
+ << " mySpeedGainProbability=" << mySpeedGainProbability
+ << " thisLaneVSafe=" << thisLaneVSafe
+ << " neighLaneVSafe=" << neighLaneVSafe
+ << " relativeGain=" << relativeGain
+ << " blocked=" << blocked
+ << "\n";
+ }
if (mySpeedGainProbability > CHANGE_PROB_THRESHOLD_LEFT && neighDist / MAX2((SUMOReal) .1, myVehicle.getSpeed()) > 20.) { // .1
req = ret | lca | LCA_SPEEDGAIN;
if (!cancelRequest(req)) {
diff --git a/src/microsim/lcmodels/MSLCM_LC2013.cpp b/src/microsim/lcmodels/MSLCM_LC2013.cpp
index c9d7963..e68a9ca 100644
--- a/src/microsim/lcmodels/MSLCM_LC2013.cpp
+++ b/src/microsim/lcmodels/MSLCM_LC2013.cpp
@@ -6,7 +6,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Fri, 08.10.2013
-/// @version $Id: MSLCM_LC2013.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSLCM_LC2013.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A lane change model developed by D. Krajzewicz, J. Erdmann et al. between 2004 and 2013
/****************************************************************************/
@@ -307,8 +307,14 @@ MSLCM_LC2013::informFollower(MSAbstractLaneChangeModel::MSLCMessager& msgPass,
if (decelGap > 0 && decelGap >= secureGap) {
// if the blocking neighbor brakes it could actually help
// how hard does it actually need to be?
+ // to be safe in the next step the following equation has to hold:
+ // vsafe <= followSpeed(gap=currentGap - SPEED2DIST(vsafe), ...)
+ // we compute an upper bound on vsafe by doing the computation twice
+ const SUMOReal vsafe1 = MAX2(neighNewSpeed, nv->getCarFollowModel().followSpeed(
+ nv, nv->getSpeed(), neighFollow.second + SPEED2DIST(plannedSpeed), plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel()));
const SUMOReal vsafe = MAX2(neighNewSpeed, nv->getCarFollowModel().followSpeed(
- nv, nv->getSpeed(), neighFollow.second, plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel()));
+ nv, nv->getSpeed(), neighFollow.second + SPEED2DIST(plannedSpeed - vsafe1), plannedSpeed, myVehicle.getCarFollowModel().getMaxDecel()));
+ assert(vsafe <= vsafe1);
msgPass.informNeighFollower(new Info(vsafe, dir | LCA_AMBLOCKINGFOLLOWER), &myVehicle);
} else if (dv > 0 && dv * remainingSeconds > (secureGap - decelGap + POSITION_EPS)) {
// decelerating once is sufficient to open up a large enough gap in time
@@ -511,7 +517,7 @@ MSLCM_LC2013::_wantsChange(
&myVehicle, myVehicle.getSpeed(), neighLead.second, nv->getSpeed(), nv->getCarFollowModel().getMaxDecel());
myVSafes.push_back(vSafe);
if (vSafe < myVehicle.getSpeed()) {
- mySpeedGainProbability += CHANGE_PROB_THRESHOLD_LEFT / 3;
+ mySpeedGainProbability += TS * CHANGE_PROB_THRESHOLD_LEFT / 3;
}
}
}
@@ -652,12 +658,18 @@ MSLCM_LC2013::_wantsChange(
if (thisLaneVSafe - 5 / 3.6 > neighLaneVSafe) {
// ok, the current lane is faster than the right one...
if (mySpeedGainProbability < 0) {
- mySpeedGainProbability /= 2.0;
+ mySpeedGainProbability *= pow(0.5, TS);
//myKeepRightProbability /= 2.0;
}
} else {
- // ok, the current lane is not faster than the right one
- mySpeedGainProbability -= relativeGain;
+ // ok, the current lane is not (much) faster than the right one
+ // @todo recheck the 5 km/h discount on thisLaneVSafe
+
+ // do not promote changing to the left just because changing to the
+ // right is bad
+ if (mySpeedGainProbability < 0 || relativeGain > 0) {
+ mySpeedGainProbability -= TS * relativeGain;
+ }
// honor the obligation to keep right (Rechtsfahrgebot)
// XXX consider fast approaching followers on the current lane
@@ -674,7 +686,7 @@ MSLCM_LC2013::_wantsChange(
const SUMOReal deltaProb = (CHANGE_PROB_THRESHOLD_RIGHT
* STEPS2TIME(DELTA_T)
* (fullSpeedDrivingSeconds / acceptanceTime) / KEEP_RIGHT_TIME);
- myKeepRightProbability -= deltaProb;
+ myKeepRightProbability -= TS * deltaProb;
if (gDebugFlag2) {
std::cout << STEPS2TIME(currentTime)
@@ -711,11 +723,11 @@ MSLCM_LC2013::_wantsChange(
if (thisLaneVSafe > neighLaneVSafe) {
// this lane is better
if (mySpeedGainProbability > 0) {
- mySpeedGainProbability /= 2.0;
+ mySpeedGainProbability *= pow(0.5, TS);
}
} else {
// left lane is better
- mySpeedGainProbability += relativeGain;
+ mySpeedGainProbability += TS * relativeGain;
}
if (mySpeedGainProbability > CHANGE_PROB_THRESHOLD_LEFT && neighDist / MAX2((SUMOReal) .1, myVehicle.getSpeed()) > 20.) { // .1
req = ret | lca | LCA_SPEEDGAIN;
diff --git a/src/microsim/output/MSBatteryExport.cpp b/src/microsim/output/MSBatteryExport.cpp
index 3616829..55f261f 100644
--- a/src/microsim/output/MSBatteryExport.cpp
+++ b/src/microsim/output/MSBatteryExport.cpp
@@ -4,7 +4,7 @@
/// @author Tamas Kurczveil
/// @author Pablo Alvarez L�pez
/// @date 20-12-13
-/// @version $Id: MSBatteryExport.cpp 18762 2015-09-01 16:27:09Z behrisch $
+/// @version $Id: MSBatteryExport.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Realises dumping Battery Data
/****************************************************************************/
@@ -55,7 +55,7 @@
// ===========================================================================
void
MSBatteryExport::write(OutputDevice& of, SUMOTime timestep, int precision) {
- of.openTag("timestep").writeAttr("time", time2string(timestep));
+ of.openTag(SUMO_TAG_TIMESTEP).writeAttr(SUMO_ATTR_TIME, time2string(timestep));
of.setPrecision(precision);
MSVehicleControl& vc = MSNet::getInstance()->getVehicleControl();
@@ -74,78 +74,70 @@ MSBatteryExport::write(OutputDevice& of, SUMOTime timestep, int precision) {
Position pos = veh->getLane()->getShape().positionAtOffset(veh->getPositionOnLane());
if (static_cast<MSDevice_Battery*>(veh->getDevice(typeid(MSDevice_Battery))) != 0) {
- // Get battery
- MSDevice_Battery* batteryToExport = dynamic_cast<MSDevice_Battery*>(veh->getDevice(typeid(MSDevice_Battery)));
- // Open Row
- of.openTag("vehicle");
+ MSDevice_Battery* batteryToExport = dynamic_cast<MSDevice_Battery*>(veh->getDevice(typeid(MSDevice_Battery)));
- // Write ID
- of.writeAttr("id", veh->getID());
+ if (batteryToExport->getMaximumBatteryCapacity() > 0) {
+ // Open Row
+ of.openTag("vehicle");
- // Write consum
- of.writeAttr("Consum", batteryToExport->getConsum());
+ // Write ID
+ of.writeAttr("id", veh->getID());
- // Write ActBatKap
- of.writeAttr("ActBatKap", batteryToExport->getActBatKap());
+ // Write consum
+ of.writeAttr("energyConsumed", batteryToExport->getConsum());
- // Write MaxBatKap
- of.writeAttr("MaxBatKap", batteryToExport->getMaxBatKap());
+ // Write ActBatKap
+ of.writeAttr("actualBatteryCapacity", batteryToExport->getActualBatteryCapacity());
- // Write Charging Station ID
- of.writeAttr("ChrgStnId", batteryToExport->getChrgStnID());
+ // Write MaxBatKap
+ of.writeAttr("maximumBatteryCapacity", batteryToExport->getMaximumBatteryCapacity());
- // Write Charge charged in the Battery
- of.writeAttr("Charge", batteryToExport->getChrgEnergy());
+ // Write Charging Station ID
+ of.writeAttr("chargingStationId", batteryToExport->getChargingStationID());
- // Write ChargeInTransit
- if (batteryToExport->isChargingInTransit()) {
- of.writeAttr("ChargeInTransit", batteryToExport->getChrgEnergy());
- } else {
- of.writeAttr("ChargeInTransit", 0.00);
- }
+ // Write Charge charged in the Battery
+ of.writeAttr("energyCharged", batteryToExport->getChrgEnergy());
- // Write ChargingStopped
- if (batteryToExport->isChargingStopped()) {
- of.writeAttr("ChargeStopped", batteryToExport->getChrgEnergy());
- } else {
- of.writeAttr("ChargeStopped", 0.00);
- }
+ // Write ChargeInTransit
+ if (batteryToExport->isChargingInTransit()) {
+ of.writeAttr("energyChargedInTransit", batteryToExport->getChrgEnergy());
+ } else {
+ of.writeAttr("energyChargedInTransit", 0.00);
+ }
- // Write Speed
- of.writeAttr("speed", veh->getSpeed());
+ // Write ChargingStopped
+ if (batteryToExport->isChargingStopped()) {
+ of.writeAttr("energyChargedStopped", batteryToExport->getChrgEnergy());
+ } else {
+ of.writeAttr("energyChargedStopped", 0.00);
+ }
- // Write Acceleration
- of.writeAttr("acceleration", veh->getAcceleration());
+ // Write Speed
+ of.writeAttr("speed", veh->getSpeed());
- // Write pos x
- of.writeAttr("x", veh->getPosition().x());
+ // Write Acceleration
+ of.writeAttr("acceleration", veh->getAcceleration());
- // Write pos y
- of.writeAttr("y", veh->getPosition().y());
+ // Write pos x
+ of.writeAttr(SUMO_ATTR_X, veh->getPosition().x());
- // Write Lane ID
- of.writeAttr("lane", veh->getLane()->getID());
+ // Write pos y
+ of.writeAttr(SUMO_ATTR_Y, veh->getPosition().y());
- // Write vehicle position in the lane
- of.writeAttr("posOnLane", veh->getPositionOnLane());
+ // Write Lane ID
+ of.writeAttr("lane", veh->getLane()->getID());
- // Write Time stopped (In all cases)
- of.writeAttr("timeStopped", batteryToExport->getVehicleStopped());
+ // Write vehicle position in the lane
+ of.writeAttr("posOnLane", veh->getPositionOnLane());
- /*0
- 1
- 2
- 3
- 4
- vehiclestopped�berein station
+ // Write Time stopped (In all cases)
+ of.writeAttr("timeStopped", batteryToExport->getVehicleStopped());
- wielangevehiceladen
- */
- // Close Row
- of.closeTag();
+ // Close Row
+ of.closeTag();
+ }
}
}
of.closeTag();
-
}
diff --git a/src/microsim/output/MSEmissionExport.cpp b/src/microsim/output/MSEmissionExport.cpp
index a4900e8..2237f57 100644
--- a/src/microsim/output/MSEmissionExport.cpp
+++ b/src/microsim/output/MSEmissionExport.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 2012-04-26
-/// @version $Id: MSEmissionExport.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSEmissionExport.cpp 19230 2015-10-30 21:59:38Z behrisch $
///
// Realises dumping Emission Data
/****************************************************************************/
@@ -34,6 +34,7 @@
#include <utils/iodevices/OutputDevice.h>
#include <utils/emissions/PollutantsInterface.h>
#include <utils/emissions/HelpersHarmonoise.h>
+#include <utils/geom/GeomHelper.h>
#include <microsim/MSNet.h>
#include <microsim/MSVehicle.h>
#include "MSEmissionExport.h"
@@ -67,7 +68,7 @@ MSEmissionExport::write(OutputDevice& of, SUMOTime timestep) {
of.writeAttr("lane", microVeh->getLane()->getID());
}
of.writeAttr("pos", veh->getPositionOnLane()).writeAttr("speed", veh->getSpeed());
- of.writeAttr("angle", veh->getAngle()).writeAttr("x", veh->getPosition().x()).writeAttr("y", veh->getPosition().y());
+ of.writeAttr("angle", GeomHelper::naviDegree(veh->getAngle())).writeAttr("x", veh->getPosition().x()).writeAttr("y", veh->getPosition().y());
of.closeTag();
}
}
diff --git a/src/microsim/output/MSFCDExport.cpp b/src/microsim/output/MSFCDExport.cpp
index 4d8a330..a9b5f3c 100644
--- a/src/microsim/output/MSFCDExport.cpp
+++ b/src/microsim/output/MSFCDExport.cpp
@@ -5,7 +5,7 @@
/// @author Mario Krumnow
/// @author Michael Behrisch
/// @date 2012-04-26
-/// @version $Id: MSFCDExport.cpp 18287 2015-04-23 13:20:21Z namdre $
+/// @version $Id: MSFCDExport.cpp 19230 2015-10-30 21:59:38Z behrisch $
///
// Realises dumping Floating Car Data (FCD) Data
/****************************************************************************/
@@ -34,6 +34,7 @@
#include <utils/iodevices/OutputDevice.h>
#include <utils/options/OptionsCont.h>
#include <utils/geom/GeoConvHelper.h>
+#include <utils/geom/GeomHelper.h>
#include <microsim/MSEdgeControl.h>
#include <microsim/MSEdge.h>
#include <microsim/MSLane.h>
@@ -75,7 +76,7 @@ MSFCDExport::write(OutputDevice& of, SUMOTime timestep, bool elevation) {
if (elevation) {
of.writeAttr(SUMO_ATTR_Z, pos.z());
}
- of.writeAttr(SUMO_ATTR_ANGLE, veh->getAngle());
+ of.writeAttr(SUMO_ATTR_ANGLE, GeomHelper::naviDegree(veh->getAngle()));
of.writeAttr(SUMO_ATTR_TYPE, veh->getVehicleType().getID());
of.writeAttr(SUMO_ATTR_SPEED, veh->getSpeed());
of.writeAttr(SUMO_ATTR_POSITION, veh->getPositionOnLane());
@@ -109,7 +110,7 @@ MSFCDExport::write(OutputDevice& of, SUMOTime timestep, bool elevation) {
if (elevation) {
of.writeAttr(SUMO_ATTR_Z, pos.z());
}
- of.writeAttr(SUMO_ATTR_ANGLE, p->getAngle());
+ of.writeAttr(SUMO_ATTR_ANGLE, GeomHelper::naviDegree(p->getAngle()));
of.writeAttr(SUMO_ATTR_SPEED, p->getSpeed());
of.writeAttr(SUMO_ATTR_POSITION, p->getEdgePos());
of.writeAttr(SUMO_ATTR_EDGE, (*e)->getID());
@@ -138,7 +139,7 @@ MSFCDExport::write(OutputDevice& of, SUMOTime timestep, bool elevation) {
if (elevation) {
of.writeAttr(SUMO_ATTR_Z, pos.z());
}
- of.writeAttr(SUMO_ATTR_ANGLE, c->getAngle());
+ of.writeAttr(SUMO_ATTR_ANGLE, GeomHelper::naviDegree(c->getAngle()));
of.writeAttr(SUMO_ATTR_SPEED, c->getSpeed());
of.writeAttr(SUMO_ATTR_POSITION, c->getEdgePos());
of.writeAttr(SUMO_ATTR_EDGE, (*e)->getID());
diff --git a/src/microsim/output/MSFullExport.cpp b/src/microsim/output/MSFullExport.cpp
index 67fc08f..245b5c9 100644
--- a/src/microsim/output/MSFullExport.cpp
+++ b/src/microsim/output/MSFullExport.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 2012-04-26
-/// @version $Id: MSFullExport.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSFullExport.cpp 19230 2015-10-30 21:59:38Z behrisch $
///
// Dumping a hugh List of Parameters available in the Simulation
/****************************************************************************/
@@ -34,11 +34,13 @@
#include <utils/iodevices/OutputDevice.h>
#include <utils/emissions/PollutantsInterface.h>
#include <utils/emissions/HelpersHarmonoise.h>
+#include <utils/geom/GeomHelper.h>
#include <microsim/MSEdge.h>
#include <microsim/MSEdgeControl.h>
#include <microsim/MSNet.h>
#include <microsim/MSVehicle.h>
#include <microsim/traffic_lights/MSTLLogicControl.h>
+#include <microsim/traffic_lights/MSTrafficLightLogic.h>
#include "MSFullExport.h"
#ifdef CHECK_MEMORY_LEAKS
@@ -83,7 +85,7 @@ MSFullExport::writeVehicles(OutputDevice& of) {
of.writeAttr("lane", microVeh->getLane()->getID());
}
of.writeAttr("pos", veh->getPositionOnLane()).writeAttr("speed", veh->getSpeed());
- of.writeAttr("angle", veh->getAngle()).writeAttr("x", veh->getPosition().x()).writeAttr("y", veh->getPosition().y());
+ of.writeAttr("angle", GeomHelper::naviDegree(veh->getAngle())).writeAttr("x", veh->getPosition().x()).writeAttr("y", veh->getPosition().y());
of.closeTag();
}
}
diff --git a/src/microsim/output/MSXMLRawOut.cpp b/src/microsim/output/MSXMLRawOut.cpp
index aef4241..52d6185 100644
--- a/src/microsim/output/MSXMLRawOut.cpp
+++ b/src/microsim/output/MSXMLRawOut.cpp
@@ -6,7 +6,7 @@
/// @author Bjoern Hendriks
/// @author Michael Behrisch
/// @date Mon, 10.05.2004
-/// @version $Id: MSXMLRawOut.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSXMLRawOut.cpp 19230 2015-10-30 21:59:38Z behrisch $
///
// Realises dumping the complete network state
/****************************************************************************/
@@ -32,6 +32,7 @@
#include <config.h>
#endif
+#include <utils/geom/GeomHelper.h>
#include <microsim/MSEdgeControl.h>
#include <microsim/MSEdge.h>
#include <microsim/MSLane.h>
@@ -126,7 +127,7 @@ MSXMLRawOut::writeEdge(OutputDevice& of, const MSEdge& edge, SUMOTime timestep)
of.openTag(SUMO_TAG_PERSON);
of.writeAttr(SUMO_ATTR_ID, (*it_p)->getID());
of.writeAttr(SUMO_ATTR_POSITION, (*it_p)->getEdgePos());
- of.writeAttr(SUMO_ATTR_ANGLE, (*it_p)->getAngle());
+ of.writeAttr(SUMO_ATTR_ANGLE, GeomHelper::naviDegree((*it_p)->getAngle()));
of.writeAttr("stage", (*it_p)->getCurrentStageDescription());
of.closeTag();
}
@@ -135,7 +136,7 @@ MSXMLRawOut::writeEdge(OutputDevice& of, const MSEdge& edge, SUMOTime timestep)
of.openTag(SUMO_TAG_CONTAINER);
of.writeAttr(SUMO_ATTR_ID, (*it_c)->getID());
of.writeAttr(SUMO_ATTR_POSITION, (*it_c)->getEdgePos());
- of.writeAttr(SUMO_ATTR_ANGLE, (*it_c)->getAngle());
+ of.writeAttr(SUMO_ATTR_ANGLE, GeomHelper::naviDegree((*it_c)->getAngle()));
of.writeAttr("stage", (*it_c)->getCurrentStageDescription());
of.closeTag();
}
diff --git a/src/microsim/pedestrians/MSPModel_NonInteracting.cpp b/src/microsim/pedestrians/MSPModel_NonInteracting.cpp
index b419307..889bd74 100644
--- a/src/microsim/pedestrians/MSPModel_NonInteracting.cpp
+++ b/src/microsim/pedestrians/MSPModel_NonInteracting.cpp
@@ -2,7 +2,7 @@
/// @file MSPModel_NonInteracting.h
/// @author Jakob Erdmann
/// @date Mon, 13 Jan 2014
-/// @version $Id: MSPModel_NonInteracting.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSPModel_NonInteracting.cpp 19230 2015-10-30 21:59:38Z behrisch $
///
// The pedestrian following model (prototype)
/****************************************************************************/
@@ -30,6 +30,7 @@
#include <math.h>
#include <algorithm>
#include <utils/common/RandHelper.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/options/OptionsCont.h>
#include <microsim/MSNet.h>
#include <microsim/MSEdge.h>
@@ -153,9 +154,9 @@ MSPModel_NonInteracting::PState::getPosition(const MSPerson::MSPersonStage_Walki
SUMOReal
MSPModel_NonInteracting::PState::getAngle(const MSPerson::MSPersonStage_Walking& stage, SUMOTime now) const {
//std::cout << SIMTIME << " rawAngle=" << stage.getEdgeAngle(stage.getEdge(), getEdgePos(stage, now)) << " angle=" << stage.getEdgeAngle(stage.getEdge(), getEdgePos(stage, now)) + (myCurrentEndPos < myCurrentBeginPos ? 180 : 0) << "\n";
- SUMOReal angle = stage.getEdgeAngle(stage.getEdge(), getEdgePos(stage, now)) + (myCurrentEndPos < myCurrentBeginPos ? 180 : 0);
- if (angle > 180) {
- angle -= 360;
+ SUMOReal angle = stage.getEdgeAngle(stage.getEdge(), getEdgePos(stage, now)) + (myCurrentEndPos < myCurrentBeginPos ? M_PI : 0);
+ if (angle > M_PI) {
+ angle -= 2 * M_PI;
}
return angle;
}
diff --git a/src/microsim/pedestrians/MSPModel_Striping.cpp b/src/microsim/pedestrians/MSPModel_Striping.cpp
index f7c6144..e9ec5de 100644
--- a/src/microsim/pedestrians/MSPModel_Striping.cpp
+++ b/src/microsim/pedestrians/MSPModel_Striping.cpp
@@ -1,8 +1,9 @@
/****************************************************************************/
-/// @file MSPModel_Striping.h
+/// @file MSPModel_Striping.cpp
/// @author Jakob Erdmann
+/// @author Michael Behrisch
/// @date Mon, 13 Jan 2014
-/// @version $Id: MSPModel_Striping.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSPModel_Striping.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The pedestrian following model (prototype)
/****************************************************************************/
@@ -30,11 +31,14 @@
#include <math.h>
#include <algorithm>
#include <utils/common/RandHelper.h>
+#include <utils/geom/GeomHelper.h>
#include <utils/options/OptionsCont.h>
#include <microsim/MSNet.h>
#include <microsim/MSEdge.h>
#include <microsim/MSLane.h>
#include <microsim/MSJunction.h>
+#include <microsim/MSGlobals.h>
+#include <microsim/MSPersonControl.h>
#include "MSPModel_Striping.h"
@@ -42,8 +46,8 @@
// DEBUGGING HELPERS
// ===========================================================================
//
-#define DEBUG1 "disabled"
-#define DEBUG2 "disabled"
+#define DEBUG1 ""
+#define DEBUG2 ""
#define DEBUGCOND(PEDID) (PEDID == DEBUG1 || PEDID == DEBUG2)
//#define LOG_ALL 1
@@ -51,8 +55,8 @@ void MSPModel_Striping::DEBUG_PRINT(const Obstacles& obs) {
for (int i = 0; i < (int)obs.size(); ++i) {
std::cout
<< "(" << obs[i].description
- << " x=" << obs[i].x
- << " s=" << obs[i].speed
+ << " x=(" << obs[i].xBack << "," << obs[i].xFwd
+ << ") s=" << obs[i].speed
<< ") ";
}
std::cout << "\n";
@@ -62,11 +66,8 @@ void MSPModel_Striping::DEBUG_PRINT(const Obstacles& obs) {
// named (internal) constants
// ===========================================================================
-
-// need to be able to subtract without underflow
-#define BLOCKED_STRIPE -10000
#define FAR_AWAY 10000
-#define ONCOMING_CONFLICT -1000
+
// ===========================================================================
// static members
@@ -82,13 +83,16 @@ SUMOReal MSPModel_Striping::dawdling;
SUMOTime MSPModel_Striping::jamTime;
const SUMOReal MSPModel_Striping::LOOKAHEAD_SAMEDIR(4.0); // seconds
const SUMOReal MSPModel_Striping::LOOKAHEAD_ONCOMING(10.0); // seconds
-const SUMOReal MSPModel_Striping::LATERAL_PENALTY(-1);
+const SUMOReal MSPModel_Striping::LATERAL_PENALTY(-1.); // meters
+const SUMOReal MSPModel_Striping::OBSTRUCTED_PENALTY(-300000.); // meters
+const SUMOReal MSPModel_Striping::INAPPROPRIATE_PENALTY(-20000.); // meters
+const SUMOReal MSPModel_Striping::ONCOMING_CONFLICT_PENALTY(-1000.); // meters
const SUMOReal MSPModel_Striping::SQUEEZE(0.7);
-const SUMOReal MSPModel_Striping::BLOCKER_LOOKAHEAD(10.0);
+const SUMOReal MSPModel_Striping::BLOCKER_LOOKAHEAD(10.0); // meters
const SUMOReal MSPModel_Striping::RESERVE_FOR_ONCOMING_FACTOR(0.0);
const SUMOReal MSPModel_Striping::MAX_WAIT_TOLERANCE(120.); // seconds
const SUMOReal MSPModel_Striping::LATERAL_SPEED_FACTOR(0.4);
-const SUMOReal MSPModel_Striping::MIN_STARTUP_SPEED(0.3);
+const SUMOReal MSPModel_Striping::MIN_STARTUP_DIST(0.4); // meters
// ===========================================================================
@@ -330,6 +334,8 @@ MSPModel_Striping::getNextLane(const PState& ped, const MSLane* currentLane, con
<< "' to '" << (nextRouteEdge == 0 ? "NULL" : nextRouteEdge->getID())
<< "\n";
}
+ WRITE_WARNING("Pedestrian '" + ped.myPerson->getID() + "' could not find route across junction '" + junction->getID() + "', time=" +
+ time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
// error indicated by nextDir == UNDEFINED_DIRECTION
}
} else if (currentEdge == nextRouteEdge) {
@@ -422,31 +428,36 @@ MSPModel_Striping::getNextWalkingArea(const MSLane* currentLane, const int dir,
MSPModel_Striping::Obstacles
-MSPModel_Striping::mergeObstacles(const Obstacles& obs1, const Obstacles& obs2, int dir) {
- Obstacles result(obs1.begin(), obs1.end());
- for (int i = 0; i < (int)obs1.size(); ++i) {
- if ((obs2[i].x - obs1[i].x) * dir < 0) {
- result[i] = obs2[i];
- }
- }
- return result;
-}
-
-
-MSPModel_Striping::Obstacles
MSPModel_Striping::getNeighboringObstacles(const Pedestrians& pedestrians, int egoIndex, int stripes) {
const PState& ego = *pedestrians[egoIndex];
- const SUMOReal egoBack = ego.myRelX - ego.myDir * ego.getLength();
- int index = egoIndex + 1;
Obstacles obs(stripes, Obstacle(ego.myDir));
- while (index < (int)pedestrians.size() && ego.myDir * (pedestrians[index]->myRelX - egoBack) > 0) {
+ std::vector<bool> haveBlocker(stripes, false);
+ for (int index = egoIndex + 1; index < (int)pedestrians.size(); index++) {
const PState& p = *pedestrians[index];
+ if DEBUGCOND(ego.myPerson->getID()) {
+ std::cout << SIMTIME << " ped=" << ego.myPerson->getID() << " checking neighbor " << p.myPerson->getID();
+ }
if (!p.myWaitingToEnter) {
- Obstacle o(p, ego.myDir);
- obs[p.stripe()] = o;
- obs[p.otherStripe()] = o;
+ const Obstacle o(p);
+ if DEBUGCOND(ego.myPerson->getID()) {
+ std::cout << " dist=" << ego.distanceTo(o) << std::endl;
+ }
+ if (ego.distanceTo(o) < 0.) {
+ break;
+ }
+ if (ego.distanceTo(o, false) == 0.) {
+ obs[p.stripe()] = o;
+ obs[p.otherStripe()] = o;
+ haveBlocker[p.stripe()] = true;
+ haveBlocker[p.otherStripe()] = true;
+ }
+ if (!haveBlocker[p.stripe()]) {
+ obs[p.stripe()] = o;
+ }
+ if (!haveBlocker[p.otherStripe()]) {
+ obs[p.otherStripe()] = o;
+ }
}
- index++;
}
if DEBUGCOND(ego.myPerson->getID()) {
std::cout << SIMTIME << " ped=" << ego.myPerson->getID() << " neighObs=";
@@ -471,9 +482,13 @@ MSPModel_Striping::getNextLaneObstacles(NextLanesObstacles& nextLanesObs, const
// figure out the which pedestrians are ahead on the next lane
const int nextStripes = numStripes(nextLane);
- const int offset = (stripes - nextStripes) / 2;
Obstacles obs(stripes, Obstacle(nextDir));
if (nextStripes < stripes) {
+ int offset = (stripes - nextStripes) / 2;
+ if (currentDir == nextDir) {
+ // for odd stripe number differences there is a bigger offset at the beginning
+ offset += (stripes - nextStripes) % 2;
+ }
// some stripes do not continue
for (int ii = 0; ii < stripes; ++ii) {
if (ii < offset || ii >= nextStripes + offset) {
@@ -483,8 +498,6 @@ MSPModel_Striping::getNextLaneObstacles(NextLanesObstacles& nextLanesObs, const
}
Pedestrians& pedestrians = getPedestrians(nextLane);
if (nextLane->getEdge().isWalkingArea()) {
- const SUMOReal minY = stripeWidth * - 0.5 + NUMERICAL_EPS;
- const SUMOReal maxY = stripeWidth * (stripes - 0.5) - NUMERICAL_EPS;
// complex transformation into the coordinate system of the current lane
// (pedestrians on next lane may walk at arbitrary angles relative to the current lane)
const SUMOReal lateral_offset = (lane->getWidth() - stripeWidth) * 0.5;
@@ -494,10 +507,8 @@ MSPModel_Striping::getNextLaneObstacles(NextLanesObstacles& nextLanesObs, const
PState& p = *pedestrians[ii];
Position relPos = lane->getShape().transformToVectorCoordinates(p.getPosition(*p.myStage, -1), true);
const SUMOReal newY = relPos.y() + lateral_offset;
- if (newY >= minY && newY <= maxY) {
- addCloserObstacle(obs, relPos.x(), p.stripe(newY), p.myPerson->getID(), stripes, currentDir);
- addCloserObstacle(obs, relPos.x(), p.otherStripe(newY), p.myPerson->getID(), stripes, currentDir);
- }
+ addCloserObstacle(obs, relPos.x(), p.stripe(newY), stripes, p.myPerson->getID(), p.myPerson->getVehicleType().getWidth(), currentDir);
+ addCloserObstacle(obs, relPos.x(), p.otherStripe(newY), stripes, p.myPerson->getID(), p.myPerson->getVehicleType().getWidth(), currentDir);
}
} else {
// simple transformation into the coordinate system of the current lane
@@ -509,18 +520,34 @@ MSPModel_Striping::getNextLaneObstacles(NextLanesObstacles& nextLanesObs, const
if (p.myWaitingToEnter) {
continue;
}
- addMappedObstacle(obs, p, p.stripe(), currentDir, nextDir, offset, stripes, nextStripes);
- addMappedObstacle(obs, p, p.otherStripe(), currentDir, nextDir, offset, stripes, nextStripes);
+ SUMOReal newY = p.myRelY;
+ if (nextDir != currentDir) {
+ newY = nextLane->getWidth() - stripeWidth - newY;
+ }
+ newY += 0.5 * (lane->getWidth() - nextLane->getWidth());
+ const int stripe = p.stripe(newY);
+ if (stripe >= 0 && stripe < stripes) {
+ obs[stripe] = Obstacle(p);
+ }
+ const int otherStripe = p.otherStripe(newY);
+ if (otherStripe >= 0 && otherStripe < stripes) {
+ obs[otherStripe] = Obstacle(p);
+ }
}
for (int ii = 0; ii < stripes; ++ii) {
Obstacle& o = obs[ii];
if (nextDir == BACKWARD) {
- o.x = nextLength - o.x;
+ const SUMOReal xfwd = nextLength - o.xBack;
+ o.xBack = nextLength - o.xFwd;
+ o.xFwd = xfwd;
}
if (currentDir == FORWARD) {
- o.x += currentLength;
+ o.xFwd += currentLength;
+ o.xBack += currentLength;
} else {
- o.x *= -1;
+ const SUMOReal xfwd = -o.xBack;
+ o.xBack = -o.xFwd;
+ o.xFwd = xfwd;
}
}
}
@@ -531,20 +558,11 @@ MSPModel_Striping::getNextLaneObstacles(NextLanesObstacles& nextLanesObs, const
void
-MSPModel_Striping::addMappedObstacle(Obstacles& obs, const PState& p, int stripe, int currentDir, int nextDir, int offset, int stripes, int nextStripes) {
- const int mappedStripe = (nextDir == currentDir
- ? stripe + offset
- : nextStripes - 1 - stripe + offset);
- if (mappedStripe >= 0 && mappedStripe < stripes) {
- obs[mappedStripe] = Obstacle(p, nextDir);
- }
-}
-
-
-void
-MSPModel_Striping::addCloserObstacle(Obstacles& obs, SUMOReal x, int stripe, const std::string& id, int stripes, int dir) {
- if (stripe < stripes && obs[stripe].x * dir > x * dir) {
- obs[stripe] = Obstacle(x, 0, id);
+MSPModel_Striping::addCloserObstacle(Obstacles& obs, SUMOReal x, int stripe, int numStripes, const std::string& id, SUMOReal width, int dir) {
+ if (stripe >= 0 && stripe < numStripes) {
+ if ((dir == FORWARD && x - width / 2. < obs[stripe].xBack) || (dir == BACKWARD && x + width / 2. > obs[stripe].xFwd)) {
+ obs[stripe] = Obstacle(x, 0, id, width);
+ }
}
}
@@ -656,7 +674,7 @@ MSPModel_Striping::moveInDirectionOnLane(Pedestrians& pedestrians, const MSLane*
Obstacles currentObs = obs;
if (p.myDir != dir || changedLane.count(p.myPerson) != 0) {
if (!p.myWaitingToEnter) {
- Obstacle o(p, dir);
+ Obstacle o(p);
obs[p.stripe()] = o;
obs[p.otherStripe()] = o;
}
@@ -682,41 +700,61 @@ MSPModel_Striping::moveInDirectionOnLane(Pedestrians& pedestrians, const MSLane*
std::cout << SIMTIME << " ped=" << p.myPerson->getID() << " nextObs=";
DEBUG_PRINT(nextObs);
}
- currentObs = mergeObstacles(currentObs, nextObs, dir);
+ p.mergeObstacles(currentObs, nextObs);
}
if DEBUGCOND(p.myPerson->getID()) {
std::cout << SIMTIME << " ped=" << p.myPerson->getID() << " obsWithNext=";
DEBUG_PRINT(currentObs);
}
- currentObs = mergeObstacles(currentObs, getNeighboringObstacles(pedestrians, ii, stripes), dir);
+ p.mergeObstacles(currentObs, getNeighboringObstacles(pedestrians, ii, stripes));
if DEBUGCOND(p.myPerson->getID()) {
std::cout << SIMTIME << " ped=" << p.myPerson->getID() << " obsWithNeigh=";
DEBUG_PRINT(currentObs);
}
// check link state
if (link != 0
- && dist < speed // only check close before junction
+ // only check close before junction, @todo we should take deceleration into account here
+ && dist - p.getMinGap() < LOOKAHEAD_SAMEDIR * speed
&& (!link->opened(currentTime, speed, speed, p.getLength(), p.getImpatience(currentTime), speed, 0)
- // XXX check for presence of vehicles blocking the path
+ // @todo check for presence of vehicles blocking the path
)) {
// prevent movement passed a closed link
- Obstacles closedLink(stripes, Obstacle(p.myRelX + dir * dist - POSITION_EPS, 0, "closedLink"));
- currentObs = mergeObstacles(currentObs, closedLink, dir);
+ Obstacles closedLink(stripes, Obstacle(p.myRelX + dir * (dist + NUMERICAL_EPS), 0, "closedLink"));
+ p.mergeObstacles(currentObs, closedLink);
if DEBUGCOND(p.myPerson->getID()) {
std::cout << SIMTIME << " ped=" << p.myPerson->getID() << " obsWitTLS=";
DEBUG_PRINT(currentObs);
}
// consider rerouting over another crossing
if (p.myWalkingAreaPath != 0) {
- // XXX actually another path would be needed starting at the current position
+ // @todo actually another path would be needed starting at the current position
p.myNLI = getNextLane(p, p.myLane, p.myWalkingAreaPath->from);
}
}
+ if (&lane->getEdge() == &p.myStage->getDestination() && p.myStage->getDestinationStop() != 0) {
+ Obstacles arrival(stripes, Obstacle(p.myStage->getArrivalPos() + dir * p.getMinGap(), 0, "arrival"));
+ p.mergeObstacles(currentObs, arrival);
+ }
p.walk(currentObs, currentTime);
if (!p.myWaitingToEnter) {
- Obstacle o(p, dir);
+ Obstacle o(p);
obs[p.stripe()] = o;
obs[p.otherStripe()] = o;
+ if (MSGlobals::gCheck4Accidents && p.myWalkingAreaPath == 0 && !p.myAmJammed) {
+ for (int coll = 0; coll < ii; ++coll) {
+ PState& c = *pedestrians[coll];
+ if (!c.myWaitingToEnter && c.myWalkingAreaPath == 0 && !c.myAmJammed) {
+ if (c.stripe() == p.stripe() || p.stripe() == c.otherStripe() || p.otherStripe() == c.stripe() || p.otherStripe() == c.otherStripe()) {
+ Obstacle cObs(c);
+ // we check only for real collisions, no min gap violations
+ if (p.distanceTo(cObs, false) == 0.) {
+ WRITE_WARNING("Collision of person '" + p.myPerson->getID() + "' and person '" + c.myPerson->getID()
+ + "', lane='" + lane->getID() + "', time=" + time2string(currentTime) + ".");
+ }
+ }
+ }
+ }
+ }
}
//std::cout << SIMTIME << p.myPerson->getID() << " lane=" << lane->getID() << " x=" << p.myRelX << "\n";
}
@@ -727,22 +765,19 @@ MSPModel_Striping::moveInDirectionOnLane(Pedestrians& pedestrians, const MSLane*
// MSPModel_Striping::Obstacle method definitions
// ===========================================================================
MSPModel_Striping::Obstacle::Obstacle(int dir) :
- x(dir* FAR_AWAY), // far away when seen in dir
+ xFwd(dir* FAR_AWAY), // far away when seen in dir
+ xBack(dir* FAR_AWAY), // far away when seen in dir
speed(0),
description("")
{}
-MSPModel_Striping::Obstacle::Obstacle(const PState& ped, int dir) :
+MSPModel_Striping::Obstacle::Obstacle(const PState& ped) :
description(ped.myPerson->getID()) {
assert(!ped.myWaitingToEnter);
- if (dir == ped.myDir) {
- speed = ped.mySpeed;
- x = ped.myRelX - dir * ped.getLength();
- } else {
- speed = -ped.mySpeed;
- x = ped.myRelX;
- }
+ xFwd = ped.getMaxX();
+ xBack = ped.getMinX();
+ speed = ped.myDir * ped.mySpeed;
}
@@ -806,22 +841,46 @@ MSPModel_Striping::PState::PState(MSPerson* person, MSPerson::MSPersonStage_Walk
SUMOReal
+MSPModel_Striping::PState::getMinX(const bool includeMinGap) const {
+ // @todo speed should have an influence here because faster persons need more space
+ if (myDir == FORWARD) {
+ return myRelX - getLength();
+ }
+ return myRelX - (includeMinGap ? getMinGap() : 0.);
+}
+
+
+SUMOReal
+MSPModel_Striping::PState::getMaxX(const bool includeMinGap) const {
+ // @todo speed should have an influence here because faster persons need more space
+ if (myDir == FORWARD) {
+ return myRelX + (includeMinGap ? getMinGap() : 0.);
+ }
+ return myRelX + getLength();
+}
+
+
+SUMOReal
MSPModel_Striping::PState::getLength() const {
return myPerson->getVehicleType().getLength();
}
+SUMOReal
+MSPModel_Striping::PState::getMinGap() const {
+ return myPerson->getVehicleType().getMinGap();
+}
+
+
int
MSPModel_Striping::PState::stripe(SUMOReal relY) const {
- const int max = numStripes(myLane) - 1;
- return MIN2(MAX2(0, (int)floor(relY / stripeWidth + 0.5)), max);
+ return (int)floor(relY / stripeWidth + 0.5);
}
int
MSPModel_Striping::PState::otherStripe(SUMOReal relY) const {
- const int max = numStripes(myLane) - 1;
- const int s = stripe();
+ const int s = stripe(relY);
const SUMOReal offset = relY - s * stripeWidth;
const SUMOReal threshold = MAX2(NUMERICAL_EPS, stripeWidth - SQUEEZE * myPerson->getVehicleType().getWidth());
int result;
@@ -832,28 +891,28 @@ MSPModel_Striping::PState::otherStripe(SUMOReal relY) const {
} else {
result = s;
}
- std::cout.setf(std::ios::fixed , std::ios::floatfield);
- std::cout << std::setprecision(5);
+ //std::cout.setf(std::ios::fixed , std::ios::floatfield);
+ //std::cout << std::setprecision(5);
//if DEBUGCOND(myPerson->getID()) std::cout << " otherStripe " << myPerson->getID() << " offset=" << offset << " threshold=" << threshold << " rawResult=" << result << "\n";
- return MIN2(MAX2(0, result), max);
+ return result;
}
int
MSPModel_Striping::PState::stripe() const {
- return stripe(myRelY);
+ return MIN2(MAX2(0, stripe(myRelY)), numStripes(myLane) - 1);
}
int
MSPModel_Striping::PState::otherStripe() const {
- return otherStripe(myRelY);
+ return MIN2(MAX2(0, otherStripe(myRelY)), numStripes(myLane) - 1);
}
SUMOReal
MSPModel_Striping::PState::distToLaneEnd() const {
if (myStage->getNextRouteEdge() == 0) {
- return myDir * (myStage->getArrivalPos() - myRelX);
+ return myDir * (myStage->getArrivalPos() - myRelX) - POSITION_EPS;
} else {
const SUMOReal length = myWalkingAreaPath == 0 ? myLane->getLength() : myWalkingAreaPath->length;
return myDir == FORWARD ? length - myRelX : myRelX;
@@ -929,7 +988,7 @@ MSPModel_Striping::PState::moveToNextLane(SUMOTime currentTime) {
}
// adjust to change in direction
if (myDir != oldDir) {
- myRelY = (numStripes(oldLane) - 1) * stripeWidth - myRelY;
+ myRelY = oldLane->getWidth() - stripeWidth - myRelY;
}
// adjust to differences in sidewalk width
myRelY += 0.5 * (myLane->getWidth() - oldLane->getWidth());
@@ -950,7 +1009,6 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
// ultimate goal is to choose the prefered stripe (chosen)
const int current = stripe();
const int other = otherStripe();
- int chosen = current;
// compute utility for all stripes
std::vector<SUMOReal> utility(stripes);
// penalize lateral movement (may increase jamming)
@@ -960,20 +1018,28 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
// compute distances
std::vector<SUMOReal> distance(stripes);
for (int i = 0; i < stripes; ++i) {
- distance[i] = myDir * (obs[i].x - myRelX);
+ distance[i] = distanceTo(obs[i]);
+ if (distance[i] <= 0) {
+ utility[i] += INAPPROPRIATE_PENALTY;
+ }
}
// forbid stripes which are blocked and also all stripes behind them
for (int i = 0; i < stripes; ++i) {
- if (distance[i] <= 0) {
+ if (distanceTo(obs[i], false) <= 0) {
if (i < current) {
for (int j = 0; j <= i; ++j) {
- utility[j] = 2 * BLOCKED_STRIPE;
+ utility[j] += OBSTRUCTED_PENALTY;
}
- } else {
+ }
+ if (i > current) {
for (int j = i; j < stripes; ++j) {
- utility[j] = 2 * BLOCKED_STRIPE;
+ utility[j] += OBSTRUCTED_PENALTY;
}
}
+ if (i == current) {
+ // staying should always be an option
+ utility[i] += INAPPROPRIATE_PENALTY;
+ }
}
}
// forbid a portion of the leftmost stripes (in walking direction).
@@ -982,11 +1048,11 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
const int reserved = (int)floor(stripes * RESERVE_FOR_ONCOMING_FACTOR);
if (myDir == FORWARD) {
for (int i = 0; i < reserved; ++i) {
- utility[i] = BLOCKED_STRIPE;
+ utility[i] += INAPPROPRIATE_PENALTY;
}
} else {
for (int i = sMax; i > sMax - reserved; --i) {
- utility[i] = BLOCKED_STRIPE;
+ utility[i] += INAPPROPRIATE_PENALTY;
}
}
// adapt utility based on obstacles
@@ -1000,8 +1066,8 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
}
}
// compute expected distance achievable by staying on this stripe for a time horizon
- const SUMOReal lookAhead = obs[i].speed >= 0 ? LOOKAHEAD_SAMEDIR : LOOKAHEAD_ONCOMING;
- const SUMOReal expectedDist = MIN2(vMax * LOOKAHEAD_SAMEDIR, distance[i] + obs[i].speed * lookAhead);
+ const SUMOReal lookAhead = obs[i].speed * myDir >= 0 ? LOOKAHEAD_SAMEDIR : LOOKAHEAD_ONCOMING;
+ const SUMOReal expectedDist = MIN2(vMax * LOOKAHEAD_SAMEDIR, distance[i] + obs[i].speed * myDir * lookAhead);
if (DEBUGCOND(myPerson->getID())) {
std::cout << " util=" << utility[i] << " exp=" << expectedDist << "\n";
}
@@ -1009,25 +1075,26 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
utility[i] += expectedDist;
} else {
// let only the distance count
- utility[i] += ONCOMING_CONFLICT + distance[i];
+ utility[i] += ONCOMING_CONFLICT_PENALTY + distance[i];
}
}
// bonus to remain on the rightmost lane (in walking direction) if there
// are oncoming
if (((myDir == FORWARD && current == sMax)
|| (myDir == BACKWARD && current == 0))
- && obs[current].speed < 0) {
- utility[current] -= ONCOMING_CONFLICT;
+ && obs[current].speed * myDir < 0) {
+ utility[current] -= ONCOMING_CONFLICT_PENALTY;
}
// bonus to leave the leftmost lane (in walking direction) if there
// are oncoming
if (((myDir == BACKWARD && current == sMax)
|| (myDir == FORWARD && current == 0))
- && obs[current].speed < 0) {
- utility[current] += ONCOMING_CONFLICT;
+ && obs[current].speed * myDir < 0) {
+ utility[current] += ONCOMING_CONFLICT_PENALTY;
}
// select best stripe
+ int chosen = current;
for (int i = 0; i < stripes; ++i) {
if (utility[chosen] < utility[i]) {
chosen = i;
@@ -1037,20 +1104,26 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
const int next = (chosen == current ? current : (chosen < current ? current - 1 : current + 1));
const SUMOReal xDist = MIN3(distance[current], distance[other], distance[next]);
// XXX preferred gap differs between approaching a standing obstacle or a moving obstacle
- const SUMOReal preferredGap = myPerson->getVehicleType().getMinGap() + xDist * 0.5;
- SUMOReal xSpeed = MIN2(vMax, MAX2((SUMOReal)0, xDist - preferredGap));
+ const SUMOReal preferredGap = NUMERICAL_EPS;
+ SUMOReal xSpeed = MIN2(vMax, MAX2((SUMOReal)0, DIST2SPEED(xDist - preferredGap)));
if (DEBUGCOND(myPerson->getID())) {
std::cout << " xSpeedPotential=" << xSpeed << "\n";
}
// avoid tiny steps
// XXX pressure from behind?
- if (mySpeed == 0 && xSpeed < MIN_STARTUP_SPEED * vMax) {
+ if (mySpeed == 0 && xDist < MIN_STARTUP_DIST) {
xSpeed = 0;
}
if (xSpeed == 0) {
if (myWaitingTime > jamTime || myAmJammed) {
// squeeze slowly through the crowd ignoring others
- myAmJammed = true;
+ if (!myAmJammed) {
+ MSNet::getInstance()->getPersonControl().registerJammed();
+ WRITE_WARNING("Person '" + myPerson->getID()
+ + "' is jammed on edge '" + myStage->getEdge()->getID()
+ + "', time=" + time2string(MSNet::getInstance()->getCurrentTimeStep()) + ".");
+ myAmJammed = true;
+ }
xSpeed = vMax / 4;
} else {
myAmJammed = false;
@@ -1058,7 +1131,6 @@ MSPModel_Striping::PState::walk(const Obstacles& obs, SUMOTime currentTime) {
}
// dawdling
const SUMOReal dawdle = MIN2(xSpeed, RandHelper::rand() * vMax * dawdling);
- xSpeed -= dawdle;
// XXX ensure that diagonal speed <= vMax
// avoid deadlocks on narrow sidewalks
@@ -1153,9 +1225,9 @@ MSPModel_Striping::PState::getAngle(const MSPerson::MSPersonStage_Walking&, SUMO
return 0;
}
const PositionVector& shp = myWalkingAreaPath == 0 ? myLane->getShape() : myWalkingAreaPath->shape;
- SUMOReal angle = -shp.rotationDegreeAtOffset(myRelX) + (myDir == MSPModel::BACKWARD ? 180 : 0);
- if (angle > 180) {
- angle -= 360;
+ SUMOReal angle = shp.rotationAtOffset(myRelX) + (myDir == MSPModel::BACKWARD ? M_PI : 0);
+ if (angle > M_PI) {
+ angle -= 2 * M_PI;
}
return angle;
}
@@ -1179,6 +1251,30 @@ MSPModel_Striping::PState::getNextEdge(const MSPerson::MSPersonStage_Walking&) c
}
+SUMOReal
+MSPModel_Striping::PState::distanceTo(const Obstacle& obs, const bool includeMinGap) const {
+ // check for overlap
+ const SUMOReal maxX = getMaxX(includeMinGap);
+ const SUMOReal minX = getMinX(includeMinGap);
+ if ((obs.xFwd > maxX && obs.xBack < maxX) || (obs.xFwd <= maxX && obs.xFwd > minX)) {
+ return 0.;
+ }
+ const SUMOReal dist = obs.xFwd <= minX ? obs.xFwd - minX : obs.xBack - maxX;
+ return myDir * dist;
+}
+
+
+void
+MSPModel_Striping::PState::mergeObstacles(Obstacles& into, const Obstacles& obs2) {
+ for (int i = 0; i < (int)into.size(); ++i) {
+ if (fabs(distanceTo(obs2[i], false)) < fabs(distanceTo(into[i], false))) {
+ into[i] = obs2[i];
+ }
+ }
+}
+
+
+
// ===========================================================================
// MSPModel_Striping::MovePedestrians method definitions
// ===========================================================================
diff --git a/src/microsim/pedestrians/MSPModel_Striping.h b/src/microsim/pedestrians/MSPModel_Striping.h
index 2721074..35805ef 100644
--- a/src/microsim/pedestrians/MSPModel_Striping.h
+++ b/src/microsim/pedestrians/MSPModel_Striping.h
@@ -1,8 +1,9 @@
/****************************************************************************/
/// @file MSPModel_Striping.h
/// @author Jakob Erdmann
+/// @author Michael Behrisch
/// @date Mon, 13 Jan 2014
-/// @version $Id: MSPModel_Striping.h 18209 2015-04-16 11:17:10Z namdre $
+/// @version $Id: MSPModel_Striping.h 19535 2015-12-05 13:47:18Z behrisch $
///
// The pedestrian following model (prototype)
/****************************************************************************/
@@ -86,18 +87,27 @@ public:
// @brief the time threshold before becoming jammed
static SUMOTime jamTime;
- // @brief the distance to look ahead for changing stripes
+ // @brief the distance (in seconds) to look ahead for changing stripes
static const SUMOReal LOOKAHEAD_SAMEDIR;
- // @brief the distance to look ahead for changing stripes (regarding oncoming pedestrians)
+ // @brief the distance (in seconds) to look ahead for changing stripes (regarding oncoming pedestrians)
static const SUMOReal LOOKAHEAD_ONCOMING;
- // @brief the speed penalty for moving sideways
+ // @brief the utility penalty for moving sideways (corresponds to meters)
static const SUMOReal LATERAL_PENALTY;
+ // @brief the utility penalty for obstructed (physically blocking me) stripes (corresponds to meters)
+ static const SUMOReal OBSTRUCTED_PENALTY;
+
+ // @brief the utility penalty for inappropriate (reserved for oncoming traffic or may violate my min gap) stripes (corresponds to meters)
+ static const SUMOReal INAPPROPRIATE_PENALTY;
+
+ // @brief the utility penalty for oncoming conflicts on stripes (corresponds to meters)
+ static const SUMOReal ONCOMING_CONFLICT_PENALTY;
+
// @brief the factor by which pedestrian width is reduced when sqeezing past each other
static const SUMOReal SQUEEZE;
- // @brief the maximum distance at which oncoming pedestrians block right turning traffic
+ // @brief the maximum distance (in meters) at which oncoming pedestrians block right turning traffic
static const SUMOReal BLOCKER_LOOKAHEAD;
// @brief fraction of the leftmost lanes to reserve for oncoming traffic
@@ -109,8 +119,8 @@ public:
// @brief the fraction of forward speed to be used for lateral movemenk
static const SUMOReal LATERAL_SPEED_FACTOR;
- // @brief the minimum fraction of maxSpeed in order to start walking after stopped
- static const SUMOReal MIN_STARTUP_SPEED;
+ // @brief the minimum distance to the next obstacle in order to start walking after stopped
+ static const SUMOReal MIN_STARTUP_DIST;
///@}
@@ -159,13 +169,16 @@ protected:
/// @brief create No-Obstacle
Obstacle(int dir);
/// @brief create an obstacle from ped for ego moving in dir
- Obstacle(const PState& ped, int dir);
+ Obstacle(const PState& ped);
/// @brief create an obstacle from explict values
- Obstacle(SUMOReal _x, SUMOReal _speed, const std::string& _description) : x(_x), speed(_speed), description(_description) {};
-
- /// @brief position on the current lane
- SUMOReal x;
- /// @brief speed relative to ego direction (positive means in the same direction)
+ Obstacle(SUMOReal _x, SUMOReal _speed, const std::string& _description, const SUMOReal width = 0.)
+ : xFwd(_x + width / 2.), xBack(_x - width / 2.), speed(_speed), description(_description) {};
+
+ /// @brief maximal position on the current lane in forward direction
+ SUMOReal xFwd;
+ /// @brief maximal position on the current lane in backward direction
+ SUMOReal xBack;
+ /// @brief speed relative to lane direction (positive means in the same direction)
SUMOReal speed;
/// @brief the id / description of the obstacle
std::string description;
@@ -197,7 +210,12 @@ protected:
if (p1->from->getNumericalID() < p2->from->getNumericalID()) {
return true;
}
- return p1->to->getNumericalID() < p2->to->getNumericalID();
+ if (p1->from->getNumericalID() == p2->from->getNumericalID()) {
+ if (p1->to->getNumericalID() < p2->to->getNumericalID()) {
+ return true;
+ }
+ }
+ return false;
}
};
@@ -245,9 +263,18 @@ protected:
/// @brief whether the person is jammed
bool myAmJammed;
+ /// @brief return the minimum position on the lane
+ SUMOReal getMinX(const bool includeMinGap = true) const;
+
+ /// @brief return the maximum position on the lane
+ SUMOReal getMaxX(const bool includeMinGap = true) const;
+
/// @brief return the length of the pedestrian
SUMOReal getLength() const;
+ /// @brief return the minimum gap of the pedestrian
+ SUMOReal getMinGap() const;
+
/// @brief the absolute distance to the end of the lane in walking direction (or to the arrivalPos)
SUMOReal distToLaneEnd() const;
@@ -260,14 +287,17 @@ protected:
/// @brief returns the impatience
SUMOReal getImpatience(SUMOTime now) const;
- /// @brief return the speed-dependent minGap of the pedestrian
- SUMOReal getMingap() const;
-
int stripe() const;
int otherStripe() const;
- int stripe(SUMOReal relY) const;
- int otherStripe(SUMOReal relY) const;
+ int stripe(const SUMOReal relY) const;
+ int otherStripe(const SUMOReal relY) const;
+
+ /// @brief calculate distance to the given obstacle, positive values mean in front of me in walking direction, negative behind me, 0 means overlap
+ SUMOReal distanceTo(const Obstacle& obs, const bool includeMinGap = true) const;
+
+ /// @brief replace obstacles in the first vector with obstacles from the second if they are closer to me
+ void mergeObstacles(Obstacles& into, const Obstacles& obs2);
};
@@ -283,6 +313,7 @@ protected:
MovePedestrians& operator=(const MovePedestrians&);
};
+ /// @brief sorts the persons by position on the lane. If dir is forward, higher x positions come first.
class by_xpos_sorter {
public:
/// constructor
@@ -337,16 +368,12 @@ private:
/// @brief return the maximum number of pedestrians walking side by side
static int numStripes(const MSLane* lane);
- static Obstacles mergeObstacles(const Obstacles& obs1, const Obstacles& obs2, int dir);
-
static Obstacles getNeighboringObstacles(const Pedestrians& pedestrians, int egoIndex, int stripes);
const Obstacles& getNextLaneObstacles(NextLanesObstacles& nextLanesObs, const MSLane* lane, const MSLane* nextLane, int stripes,
SUMOReal nextLength, int nextDir, SUMOReal currentLength, int currentDir);
- static void addMappedObstacle(Obstacles& obs, const PState& p, int stripe, int currentDir, int nextDir, int offset, int stripes, int nextStripes);
-
- static void addCloserObstacle(Obstacles& obs, SUMOReal x, int stripe, const std::string& id, int stripes, int dir);
+ static void addCloserObstacle(Obstacles& obs, SUMOReal x, int stripe, int numStripes, const std::string& id, SUMOReal width, int dir);
/// @brief retrieves the pedestian vector for the given lane (may be empty)
Pedestrians& getPedestrians(const MSLane* lane);
diff --git a/src/microsim/pedestrians/MSPerson.cpp b/src/microsim/pedestrians/MSPerson.cpp
index a27cdaa..ab9da63 100644
--- a/src/microsim/pedestrians/MSPerson.cpp
+++ b/src/microsim/pedestrians/MSPerson.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Mon, 9 Jul 2001
-/// @version $Id: MSPerson.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: MSPerson.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The class for modelling person-movements
/****************************************************************************/
@@ -37,6 +37,7 @@
#include <utils/options/OptionsCont.h>
#include <utils/common/ToString.h>
#include <utils/common/StringUtils.h>
+#include <utils/geom/GeomHelper.h>
#include <microsim/MSNet.h>
#include <microsim/MSEdge.h>
#include <microsim/MSLane.h>
@@ -57,18 +58,17 @@
* MSPerson::MSPersonStage_Walking - methods
* ----------------------------------------------------------------------- */
MSPerson::MSPersonStage_Walking::MSPersonStage_Walking(const ConstMSEdgeVector& route,
- MSStoppingPlace* toBS,
+ MSStoppingPlace* toStop,
SUMOTime walkingTime, SUMOReal speed,
SUMOReal departPos, SUMOReal arrivalPos) :
- MSTransportable::Stage(*route.back(), MOVING_WITHOUT_VEHICLE), myWalkingTime(walkingTime), myRoute(route),
+ MSTransportable::Stage(*route.back(), toStop, SUMOVehicleParameter::interpretEdgePos(
+ arrivalPos, route.back()->getLength(), SUMO_ATTR_ARRIVALPOS, "person walking to " + route.back()->getID()), MOVING_WITHOUT_VEHICLE), myWalkingTime(walkingTime), myRoute(route),
myCurrentInternalEdge(0),
- myDepartPos(departPos), myArrivalPos(arrivalPos), myDestinationBusStop(toBS),
+ myDepartPos(departPos),
mySpeed(speed),
myPedestrianState(0) {
myDepartPos = SUMOVehicleParameter::interpretEdgePos(
myDepartPos, myRoute.front()->getLength(), SUMO_ATTR_DEPARTPOS, "person walking from " + myRoute.front()->getID());
- myArrivalPos = SUMOVehicleParameter::interpretEdgePos(
- myArrivalPos, myRoute.back()->getLength(), SUMO_ATTR_ARRIVALPOS, "person walking to " + myRoute.back()->getID());
if (walkingTime > 0) {
mySpeed = computeAverageSpeed();
}
@@ -126,19 +126,18 @@ MSPerson::MSPersonStage_Walking::getSpeed() const {
void
-MSPerson::MSPersonStage_Walking::proceed(MSNet* net, MSTransportable* person, SUMOTime now,
- MSEdge* previousEdge, const SUMOReal at) {
- previousEdge->removePerson(person);
+MSPerson::MSPersonStage_Walking::proceed(MSNet* net, MSTransportable* person, SUMOTime now, Stage* previous) {
+ previous->getEdge()->removePerson(person);
myRouteStep = myRoute.begin();
if (myWalkingTime == 0) {
if (!person->proceed(net, now)) {
MSNet::getInstance()->getPersonControl().erase(person);
- };
+ }
return;
}
MSNet::getInstance()->getPersonControl().setWalking(person);
- if (at >= 0) {
- myDepartPos = at;
+ if (previous->getEdgePos(now) >= 0) {
+ myDepartPos = previous->getEdgePos(now);
if (myWalkingTime > 0) {
mySpeed = computeAverageSpeed();
}
@@ -198,8 +197,8 @@ MSPerson::MSPersonStage_Walking::moveToNextEdge(MSPerson* person, SUMOTime curre
//std::cout << SIMTIME << " moveToNextEdge person=" << person->getID() << "\n";
if (myRouteStep == myRoute.end() - 1) {
MSNet::getInstance()->getPersonControl().unsetWalking(person);
- if (myDestinationBusStop != 0) {
- myDestinationBusStop->addTransportable(person);
+ if (myDestinationStop != 0) {
+ myDestinationStop->addTransportable(person);
}
if (!person->proceed(MSNet::getInstance(), currentTime)) {
MSNet::getInstance()->getPersonControl().erase(person);
@@ -224,9 +223,9 @@ MSPerson::MSPersonStage_Walking::moveToNextEdge(MSPerson* person, SUMOTime curre
* MSPerson::MSPersonStage_Driving - methods
* ----------------------------------------------------------------------- */
MSPerson::MSPersonStage_Driving::MSPersonStage_Driving(const MSEdge& destination,
- MSStoppingPlace* toBS, const std::vector<std::string>& lines)
- : MSTransportable::Stage(destination, DRIVING), myLines(lines.begin(), lines.end()),
- myVehicle(0), myDestinationBusStop(toBS) {}
+ MSStoppingPlace* toStop, const SUMOReal arrivalPos, const std::vector<std::string>& lines)
+ : MSTransportable::Stage(destination, toStop, arrivalPos, DRIVING), myLines(lines.begin(), lines.end()),
+ myVehicle(0) {}
MSPerson::MSPersonStage_Driving::~MSPersonStage_Driving() {}
@@ -249,27 +248,30 @@ MSPerson::MSPersonStage_Driving::getFromEdge() const {
SUMOReal
MSPerson::MSPersonStage_Driving::getEdgePos(SUMOTime /* now */) const {
- if (myVehicle != 0) {
- // vehicle may already have passed the lane (check whether this is correct)
- return MIN2(myVehicle->getPositionOnLane(), getEdge()->getLength());
+ if (isWaiting4Vehicle()) {
+ return myWaitingPos;
}
- return myWaitingPos;
+ // vehicle may already have passed the lane (check whether this is correct)
+ return MIN2(myVehicle->getPositionOnLane(), getEdge()->getLength());
}
Position
MSPerson::MSPersonStage_Driving::getPosition(SUMOTime /* now */) const {
- if (myVehicle != 0) {
- /// @bug this fails while vehicle is driving across a junction
- return myVehicle->getEdge()->getLanes()[0]->getShape().positionAtOffset(myVehicle->getPositionOnLane());
+ if (isWaiting4Vehicle()) {
+ if (myStopWaitPos != Position::INVALID) {
+ return myStopWaitPos;
+ }
+ return getEdgePosition(myWaitingEdge, myWaitingPos, MSPModel::SIDEWALK_OFFSET);
}
- return getEdgePosition(myWaitingEdge, myWaitingPos, MSPModel::SIDEWALK_OFFSET);
+ /// @bug this fails while vehicle is driving across a junction
+ return myVehicle->getEdge()->getLanes()[0]->getShape().positionAtOffset(myVehicle->getPositionOnLane());
}
SUMOReal
MSPerson::MSPersonStage_Driving::getAngle(SUMOTime /* now */) const {
- if (myVehicle != 0) {
+ if (!isWaiting4Vehicle()) {
MSVehicle* veh = dynamic_cast<MSVehicle*>(myVehicle);
if (veh != 0) {
return veh->getAngle();
@@ -277,28 +279,34 @@ MSPerson::MSPersonStage_Driving::getAngle(SUMOTime /* now */) const {
return 0;
}
}
- return getEdgeAngle(myWaitingEdge, myWaitingPos) + 90;
+ return getEdgeAngle(myWaitingEdge, myWaitingPos) + M_PI / 2.;
}
void
-MSPerson::MSPersonStage_Driving::proceed(MSNet* net, MSTransportable* person, SUMOTime now,
- MSEdge* previousEdge, const SUMOReal at) {
- myWaitingEdge = previousEdge;
- myWaitingPos = at;
+MSPerson::MSPersonStage_Driving::proceed(MSNet* net, MSTransportable* person, SUMOTime now, Stage* previous) {
+ if (previous->getDestinationStop() != 0) {
+ // the arrival stop may have an access point
+ myWaitingEdge = &previous->getDestinationStop()->getLane().getEdge();
+ myStopWaitPos = previous->getDestinationStop()->getWaitPosition();
+ } else {
+ myWaitingEdge = previous->getEdge();
+ myStopWaitPos = Position::INVALID;
+ }
+ myWaitingPos = previous->getEdgePos(now);
myWaitingSince = now;
- SUMOVehicle* availableVehicle = net->getVehicleControl().getWaitingVehicle(previousEdge, myLines, myWaitingPos, person->getID());
+ SUMOVehicle* availableVehicle = net->getVehicleControl().getWaitingVehicle(myWaitingEdge, myLines, myWaitingPos, person->getID());
if (availableVehicle != 0 && availableVehicle->getParameter().departProcedure == DEPART_TRIGGERED) {
myVehicle = availableVehicle;
- previousEdge->removePerson(person);
+ myWaitingEdge->removePerson(person);
myVehicle->addPerson(person);
net->getInsertionControl().add(myVehicle);
- net->getVehicleControl().removeWaiting(previousEdge, myVehicle);
+ net->getVehicleControl().removeWaiting(myWaitingEdge, myVehicle);
net->getVehicleControl().unregisterOneWaitingForPerson();
} else {
- net->getPersonControl().addWaiting(previousEdge, person);
- previousEdge->addPerson(person);
+ net->getPersonControl().addWaiting(myWaitingEdge, person);
+ myWaitingEdge->addPerson(person);
}
}
@@ -323,7 +331,7 @@ MSPerson::MSPersonStage_Driving::getWaitingTime(SUMOTime now) const {
SUMOReal
MSPerson::MSPersonStage_Driving::getSpeed() const {
- return myVehicle == 0 ? 0 : myVehicle->getSpeed();
+ return isWaiting4Vehicle() ? 0 : myVehicle->getSpeed();
}
@@ -364,13 +372,11 @@ MSPerson::MSPersonStage_Driving::endEventOutput(const MSTransportable& p, SUMOTi
* ----------------------------------------------------------------------- */
MSPerson::MSPersonStage_Waiting::MSPersonStage_Waiting(const MSEdge& destination,
SUMOTime duration, SUMOTime until, SUMOReal pos, const std::string& actType) :
- MSTransportable::Stage(destination, WAITING),
+ MSTransportable::Stage(destination, 0, SUMOVehicleParameter::interpretEdgePos(
+ pos, destination.getLength(), SUMO_ATTR_DEPARTPOS, "person stopping at " + destination.getID()), WAITING),
myWaitingDuration(duration),
myWaitingUntil(until),
- myActType(actType),
- myStartPos(pos) {
- myStartPos = SUMOVehicleParameter::interpretEdgePos(
- myStartPos, myDestination.getLength(), SUMO_ATTR_DEPARTPOS, "person stopping at " + myDestination.getID());
+ myActType(actType) {
}
@@ -391,7 +397,7 @@ MSPerson::MSPersonStage_Waiting::getFromEdge() const {
SUMOReal
MSPerson::MSPersonStage_Waiting::getEdgePos(SUMOTime /* now */) const {
- return myStartPos;
+ return myArrivalPos;
}
@@ -403,20 +409,19 @@ MSPerson::MSPersonStage_Waiting::getUntil() const {
Position
MSPerson::MSPersonStage_Waiting::getPosition(SUMOTime /* now */) const {
- return getEdgePosition(&myDestination, myStartPos, MSPModel::SIDEWALK_OFFSET);
+ return getEdgePosition(&myDestination, myArrivalPos, MSPModel::SIDEWALK_OFFSET);
}
SUMOReal
MSPerson::MSPersonStage_Waiting::getAngle(SUMOTime /* now */) const {
- return getEdgeAngle(&myDestination, myStartPos) - 90;
+ return getEdgeAngle(&myDestination, myArrivalPos) + M_PI / 2;
}
void
-MSPerson::MSPersonStage_Waiting::proceed(MSNet* net, MSTransportable* person, SUMOTime now,
- MSEdge* previousEdge, const SUMOReal /* at */) {
- previousEdge->addPerson(person);
+MSPerson::MSPersonStage_Waiting::proceed(MSNet* net, MSTransportable* person, SUMOTime now, Stage* previous) {
+ previous->getEdge()->addPerson(person);
myWaitingStart = now;
const SUMOTime until = MAX3(now, now + myWaitingDuration, myWaitingUntil);
net->getPersonControl().setWaitEnd(until, person);
@@ -484,10 +489,8 @@ MSPerson::~MSPerson() {
bool
MSPerson::proceed(MSNet* net, SUMOTime time) {
- MSEdge* arrivedAt = (MSEdge*)(*myStep)->getEdge();
- SUMOReal atPos = (*myStep)->getEdgePos(time);
- //MSPersonPlan::iterator prior = myStep;
- (*myStep)->setArrived(time);
+ MSTransportable::Stage* prior = *myStep;
+ prior->setArrived(time);
/*
if(myWriteEvents) {
(*myStep)->endEventOutput(*this, time, OutputDevice::getDeviceByOption("person-event-output"));
@@ -495,7 +498,7 @@ MSPerson::proceed(MSNet* net, SUMOTime time) {
*/
myStep++;
if (myStep != myPlan->end()) {
- (*myStep)->proceed(net, this, time, arrivedAt, atPos);
+ (*myStep)->proceed(net, this, time, prior);
/*
if(myWriteEvents) {
(*myStep)->beginEventOutput(*this, time, OutputDevice::getDeviceByOption("person-event-output"));
@@ -503,7 +506,7 @@ MSPerson::proceed(MSNet* net, SUMOTime time) {
*/
return true;
} else {
- arrivedAt->removePerson(this);
+ prior->getEdge()->removePerson(this);
return false;
}
}
diff --git a/src/microsim/pedestrians/MSPerson.h b/src/microsim/pedestrians/MSPerson.h
index 3a54e73..b666047 100644
--- a/src/microsim/pedestrians/MSPerson.h
+++ b/src/microsim/pedestrians/MSPerson.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: MSPerson.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSPerson.h 19388 2015-11-19 21:33:01Z behrisch $
///
// The class for modelling person-movements
/****************************************************************************/
@@ -80,13 +80,13 @@ public:
public:
/// constructor
- MSPersonStage_Walking(const ConstMSEdgeVector& route, MSStoppingPlace* toBS, SUMOTime walkingTime, SUMOReal speed, SUMOReal departPos, SUMOReal arrivalPos);
+ MSPersonStage_Walking(const ConstMSEdgeVector& route, MSStoppingPlace* toStop, SUMOTime walkingTime, SUMOReal speed, SUMOReal departPos, SUMOReal arrivalPos);
/// destructor
~MSPersonStage_Walking();
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* person, SUMOTime now, MSEdge* previousEdge, const SUMOReal at);
+ virtual void proceed(MSNet* net, MSTransportable* person, SUMOTime now, Stage* previous);
/// Returns the current edge
const MSEdge* getEdge() const;
@@ -182,12 +182,7 @@ public:
/// @brief The current internal edge this person is on or 0
MSEdge* myCurrentInternalEdge;
- /// @brief A vector of computed times an edge is reached
- //std::vector<SUMOTime> myArrivalTimes;
-
SUMOReal myDepartPos;
- SUMOReal myArrivalPos;
- MSStoppingPlace* myDestinationBusStop;
SUMOReal mySpeed;
/// @brief state that is to be manipulated by MSPModel
@@ -224,14 +219,14 @@ public:
class MSPersonStage_Driving : public MSTransportable::Stage {
public:
/// constructor
- MSPersonStage_Driving(const MSEdge& destination, MSStoppingPlace* toBS,
- const std::vector<std::string>& lines);
+ MSPersonStage_Driving(const MSEdge& destination, MSStoppingPlace* toStop,
+ const SUMOReal arrivalPos, const std::vector<std::string>& lines);
/// destructor
~MSPersonStage_Driving();
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* person, SUMOTime now, MSEdge* previousEdge, const SUMOReal at);
+ virtual void proceed(MSNet* net, MSTransportable* person, SUMOTime now, Stage* previous);
/// Returns the current edge
const MSEdge* getEdge() const;
@@ -251,6 +246,11 @@ public:
/// @brief Whether the person waits for a vehicle
bool isWaiting4Vehicle() const;
+ /// @brief The vehicle the person is riding or 0
+ SUMOVehicle* getVehicle() const {
+ return myVehicle;
+ }
+
/// @brief time spent waiting for a ride
SUMOTime getWaitingTime(SUMOTime now) const;
@@ -293,11 +293,11 @@ public:
/// @brief The taken vehicle
SUMOVehicle* myVehicle;
- MSStoppingPlace* myDestinationBusStop;
SUMOReal myWaitingPos;
/// @brief The time since which this person is waiting for a ride
SUMOTime myWaitingSince;
const MSEdge* myWaitingEdge;
+ Position myStopWaitPos;
private:
/// @brief Invalidated copy constructor.
@@ -340,7 +340,7 @@ public:
}
/// proceeds to the next step
- virtual void proceed(MSNet* net, MSTransportable* person, SUMOTime now, MSEdge* previousEdge, const SUMOReal at);
+ virtual void proceed(MSNet* net, MSTransportable* person, SUMOTime now, Stage* previous);
/** @brief Called on writing tripinfo output
*
@@ -381,9 +381,6 @@ public:
/// @brief The type of activity
std::string myActType;
- SUMOReal myStartPos;
-
-
private:
/// @brief Invalidated copy constructor.
MSPersonStage_Waiting(const MSPersonStage_Waiting&);
diff --git a/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.cpp b/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.cpp
index b985821..2197b8d 100644
--- a/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.cpp
+++ b/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Sept 2002
-/// @version $Id: MSActuatedTrafficLightLogic.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: MSActuatedTrafficLightLogic.cpp 19506 2015-12-03 12:44:22Z behrisch $
///
// An actuated (adaptive) traffic light logic
/****************************************************************************/
@@ -39,6 +39,7 @@
#include <microsim/MSEventControl.h>
#include <microsim/output/MSDetectorControl.h>
#include <microsim/output/MSInductLoop.h>
+#include <microsim/MSGlobals.h>
#include <microsim/MSNet.h>
#include "MSTrafficLightLogic.h"
#include "MSActuatedTrafficLightLogic.h"
@@ -66,13 +67,17 @@ MSActuatedTrafficLightLogic::MSActuatedTrafficLightLogic(MSTLLogicControl& tlcon
const std::string& id, const std::string& programID,
const Phases& phases,
unsigned int step, SUMOTime delay,
- const std::map<std::string, std::string>& parameter) :
+ const std::map<std::string, std::string>& parameter,
+ const std::string& basePath) :
MSSimpleTrafficLightLogic(tlcontrol, id, programID, phases, step, delay, parameter) {
myMaxGap = TplConvert::_2SUMOReal(getParameter("max-gap", DEFAULT_MAX_GAP).c_str());
myPassingTime = TplConvert::_2SUMOReal(getParameter("passing-time", DEFAULT_PASSING_TIME).c_str());
myDetectorGap = TplConvert::_2SUMOReal(getParameter("detector-gap", DEFAULT_DETECTOR_GAP).c_str());
myShowDetectors = TplConvert::_2bool(getParameter("show-detectors", "false").c_str());
+ myFile = FileHelpers::checkForRelativity(getParameter("file", "NUL"), basePath);
+ myFreq = TIME2STEPS(TplConvert::_2SUMOReal(getParameter("freq", "300").c_str()));
+ mySplitByType = TplConvert::_2bool(getParameter("splitByType", "false").c_str());
}
@@ -100,24 +105,15 @@ MSActuatedTrafficLightLogic::init(NLDetectorBuilder& nb) {
// Build the induct loop and set it into the container
std::string id = "TLS" + myID + "_" + myProgramID + "_InductLoopOn_" + lane->getID();
if (myInductLoops.find(lane) == myInductLoops.end()) {
- myInductLoops[lane] = dynamic_cast<MSInductLoop*>(nb.createInductLoop(id, lane, ilpos, false));
- assert(myInductLoops[lane] != 0);
- if (myShowDetectors) {
- MSNet::getInstance()->getDetectorControl().add(SUMO_TAG_INDUCTION_LOOP, myInductLoops[lane], "NULL", TIME2STEPS(300));
- }
+ myInductLoops[lane] = nb.createInductLoop(id, lane, ilpos, mySplitByType);
+ MSNet::getInstance()->getDetectorControl().add(SUMO_TAG_INDUCTION_LOOP, myInductLoops[lane], myFile, myFreq, myShowDetectors);
}
}
}
}
-MSActuatedTrafficLightLogic::~MSActuatedTrafficLightLogic() {
- if (!myShowDetectors) {
- for (InductLoopMap::iterator i = myInductLoops.begin(); i != myInductLoops.end(); ++i) {
- delete(*i).second;
- }
- }
-}
+MSActuatedTrafficLightLogic::~MSActuatedTrafficLightLogic() { }
// ------------ Switching and setting current rows
@@ -189,10 +185,11 @@ MSActuatedTrafficLightLogic::gapControl() {
if (myInductLoops.find(*j) == myInductLoops.end()) {
continue;
}
- SUMOReal actualGap =
- myInductLoops.find(*j)->second->getTimestepsSinceLastDetection();
- if (actualGap < myMaxGap) {
- result = MIN2(result, actualGap);
+ if (!MSGlobals::gUseMesoSim) {
+ const SUMOReal actualGap = static_cast<MSInductLoop*>(myInductLoops.find(*j)->second)->getTimestepsSinceLastDetection();
+ if (actualGap < myMaxGap) {
+ result = MIN2(result, actualGap);
+ }
}
}
}
diff --git a/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.h b/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.h
index 415e901..0758b7d 100644
--- a/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.h
+++ b/src/microsim/traffic_lights/MSActuatedTrafficLightLogic.h
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Sept 2002
-/// @version $Id: MSActuatedTrafficLightLogic.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSActuatedTrafficLightLogic.h 19506 2015-12-03 12:44:22Z behrisch $
///
// An actuated (adaptive) traffic light logic
/****************************************************************************/
@@ -58,7 +58,7 @@ class NLDetectorBuilder;
class MSActuatedTrafficLightLogic : public MSSimpleTrafficLightLogic {
public:
/// @brief Definition of a map from lanes to induct loops lying on them
- typedef std::map<MSLane*, MSInductLoop*> InductLoopMap;
+ typedef std::map<MSLane*, MSDetectorFileOutput*> InductLoopMap;
public:
/** @brief Constructor
@@ -74,7 +74,8 @@ public:
const std::string& id, const std::string& programID,
const MSSimpleTrafficLightLogic::Phases& phases,
unsigned int step, SUMOTime delay,
- const std::map<std::string, std::string>& parameter);
+ const std::map<std::string, std::string>& parameter,
+ const std::string& basePath);
/** @brief Initialises the tls with information about incoming lanes
@@ -133,6 +134,15 @@ protected:
/// Whether the detectors shall be shown in the GUI
bool myShowDetectors;
+ /// The output file for generated detectors
+ std::string myFile;
+
+ /// The frequency for aggregating detector output
+ SUMOTime myFreq;
+
+ /// Whether detector output separates by vType
+ bool mySplitByType;
+
};
diff --git a/src/microsim/traffic_lights/MSOffTrafficLightLogic.h b/src/microsim/traffic_lights/MSOffTrafficLightLogic.h
index e2f723e..5b18c5f 100644
--- a/src/microsim/traffic_lights/MSOffTrafficLightLogic.h
+++ b/src/microsim/traffic_lights/MSOffTrafficLightLogic.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 08.05.2007
-/// @version $Id: MSOffTrafficLightLogic.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSOffTrafficLightLogic.h 19179 2015-10-27 13:11:02Z behrisch $
///
// A traffic lights logic which represents a tls in an off-mode
/****************************************************************************/
@@ -35,12 +35,9 @@
#include <utility>
#include <vector>
#include <bitset>
-#include <microsim/MSEventControl.h>
-#include <microsim/MSNet.h>
#include <utils/common/StdDefs.h>
-#include "MSTrafficLightLogic.h"
-#include "MSPhaseDefinition.h"
#include "MSTLLogicControl.h"
+#include "MSTrafficLightLogic.h"
// ===========================================================================
diff --git a/src/microsim/traffic_lights/MSRailSignal.cpp b/src/microsim/traffic_lights/MSRailSignal.cpp
index 3e61c19..96165cb 100644
--- a/src/microsim/traffic_lights/MSRailSignal.cpp
+++ b/src/microsim/traffic_lights/MSRailSignal.cpp
@@ -3,7 +3,7 @@
/// @author Melanie Weber
/// @author Andreas Kendziorra
/// @date Jan 2015
-/// @version $Id: MSRailSignal.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: MSRailSignal.cpp 19412 2015-11-24 13:04:53Z namdre $
///
// A rail signal logic
/****************************************************************************/
@@ -93,7 +93,7 @@ MSRailSignal::init(NLDetectorBuilder&) {
if (precedentLane == 0) { //if there is no preceeding lane
noRailSignal = false;
} else {
- const MSJunction* junction = MSLinkContHelper::getConnectingLink(*precedentLane, *currentLane)->getJunction(); //the junction between precentLane and currentLane
+ const MSJunction* junction = precedentLane->getEdge().getToJunction();
if ((junction != 0) && (junction->getType() == NODETYPE_RAIL_SIGNAL)) { //if this junction exists and if it has a rail signal
noRailSignal = false;
} else {
@@ -129,7 +129,7 @@ MSRailSignal::init(NLDetectorBuilder&) {
noRailSignal = false;
} else {
if (outGoingLanes.size() > 1) {
- WRITE_WARNING("Rail lane " + currentLane->getID() + " has more than one outgoing lane but does not have a rail signal at its end");
+ WRITE_WARNING("Rail lane '" + currentLane->getID() + "' has more than one outgoing lane but does not have a rail signal at its end");
}
const MSLane* nextLane = outGoingLanes.front();
succeedingBlock.push_back(nextLane);
diff --git a/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.cpp b/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.cpp
index 2fa70d4..0575579 100644
--- a/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.cpp
+++ b/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Friedemann Wesner
/// @date Sept 2002
-/// @version $Id: MSSimpleTrafficLightLogic.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: MSSimpleTrafficLightLogic.cpp 19173 2015-10-27 08:47:27Z behrisch $
///
// A fixed traffic light logic
/****************************************************************************/
@@ -38,6 +38,7 @@
#include <bitset>
#include <sstream>
#include <microsim/MSEventControl.h>
+#include <microsim/MSNet.h>
#include "MSTLLogicControl.h"
#include "MSTrafficLightLogic.h"
#include "MSSimpleTrafficLightLogic.h"
diff --git a/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.h b/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.h
index 7afd4cb..6cff8d9 100644
--- a/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.h
+++ b/src/microsim/traffic_lights/MSSimpleTrafficLightLogic.h
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Friedemann Wesner
/// @date Sept 2002
-/// @version $Id: MSSimpleTrafficLightLogic.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSSimpleTrafficLightLogic.h 19173 2015-10-27 08:47:27Z behrisch $
///
// A fixed traffic light logic
/****************************************************************************/
@@ -37,10 +37,13 @@
#include <utility>
#include <vector>
#include <bitset>
-#include <microsim/MSEventControl.h>
-#include <microsim/MSNet.h>
#include "MSTrafficLightLogic.h"
-#include "MSPhaseDefinition.h"
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class MSNet;
// ===========================================================================
diff --git a/src/microsim/traffic_lights/MSTLLogicControl.h b/src/microsim/traffic_lights/MSTLLogicControl.h
index dd1ad6d..d5a7fae 100644
--- a/src/microsim/traffic_lights/MSTLLogicControl.h
+++ b/src/microsim/traffic_lights/MSTLLogicControl.h
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Friedemann Wesner
/// @date Sept 2002
-/// @version $Id: MSTLLogicControl.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSTLLogicControl.h 19173 2015-10-27 08:47:27Z behrisch $
///
// A class that stores and controls tls and switching of their programs
/****************************************************************************/
@@ -36,10 +36,17 @@
#include <vector>
#include <map>
-#include "MSTrafficLightLogic.h"
-#include "MSSimpleTrafficLightLogic.h"
+#include <utils/xml/SUMOXMLDefinitions.h>
#include <utils/common/Command.h>
-#include <utils/common/UtilExceptions.h>
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class MSTrafficLightLogic;
+class MSLink;
+class MSLane;
+class MSPhaseDefinition;
// ===========================================================================
diff --git a/src/microsim/traffic_lights/MSTrafficLightLogic.cpp b/src/microsim/traffic_lights/MSTrafficLightLogic.cpp
index 5f767ea..7b426be 100644
--- a/src/microsim/traffic_lights/MSTrafficLightLogic.cpp
+++ b/src/microsim/traffic_lights/MSTrafficLightLogic.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: MSTrafficLightLogic.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: MSTrafficLightLogic.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The parent class for traffic light logics
/****************************************************************************/
@@ -36,20 +36,23 @@
#include <map>
#include <microsim/MSLink.h>
#include <microsim/MSLane.h>
-#include "MSTrafficLightLogic.h"
#include <microsim/MSEventControl.h>
-#include "MSTLLogicControl.h"
#include <microsim/MSJunctionLogic.h>
+#include <microsim/MSNet.h>
+#include "MSTLLogicControl.h"
+#include "MSTrafficLightLogic.h"
#ifdef CHECK_MEMORY_LEAKS
#include <foreign/nvwa/debug_new.h>
#endif // CHECK_MEMORY_LEAKS
+
// ===========================================================================
// static value definitions
// ===========================================================================
const MSTrafficLightLogic::LaneVector MSTrafficLightLogic::myEmptyLaneVector;
+
// ===========================================================================
// member method definitions
// ===========================================================================
@@ -121,8 +124,9 @@ MSTrafficLightLogic::init(NLDetectorBuilder&) {
const Phases& phases = getPhases();
if (phases.size() > 1) {
bool haveWarnedAboutUnusedStates = false;
- // warn about transistions from green to red without intermediate yellow
+ std::vector<bool> foundGreen(phases.front()->getState().size(), false);
for (int i = 0; i < (int)phases.size(); ++i) {
+ // warn about unused stats
const int iNext = (i + 1) % phases.size();
const std::string& state1 = phases[i]->getState();
const std::string& state2 = phases[iNext]->getState();
@@ -133,6 +137,7 @@ MSTrafficLightLogic::init(NLDetectorBuilder&) {
+ " after tl-index " + toString((int)myLanes.size() - 1));
haveWarnedAboutUnusedStates = true;
}
+ // warn about transitions from green to red without intermediate yellow
for (int j = 0; j < (int)MIN3(state1.size(), state2.size(), myLanes.size()); ++j) {
if ((LinkState)state2[j] == LINKSTATE_TL_RED
&& ((LinkState)state1[j] == LINKSTATE_TL_GREEN_MAJOR
@@ -147,7 +152,22 @@ MSTrafficLightLogic::init(NLDetectorBuilder&) {
}
}
}
+ // warn about links that never get the green light
+ for (int j = 0; j < (int)state1.size(); ++j) {
+ LinkState ls = (LinkState)state1[j];
+ if (ls == LINKSTATE_TL_GREEN_MAJOR || ls == LINKSTATE_TL_GREEN_MINOR) {
+ foundGreen[j] = true;
+ }
+ }
}
+ for (int j = 0; j < (int)foundGreen.size(); ++j) {
+ if (!foundGreen[j]) {
+ WRITE_WARNING("Missing green phase in tlLogic '" + getID()
+ + "', program '" + getProgramID() + "' for tl-index " + toString(j));
+ break;
+ }
+ }
+
}
}
diff --git a/src/microsim/trigger/MSCalibrator.cpp b/src/microsim/trigger/MSCalibrator.cpp
index 40c8e68..06be786 100644
--- a/src/microsim/trigger/MSCalibrator.cpp
+++ b/src/microsim/trigger/MSCalibrator.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, May 2005
-/// @version $Id: MSCalibrator.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: MSCalibrator.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// Calibrates the flow on an edge by removing an inserting vehicles
/****************************************************************************/
@@ -267,7 +267,7 @@ MSCalibrator::removePending() {
vehicle->getLane()->removeVehicle(vehicle, MSMoveReminder::NOTIFICATION_VAPORIZED);
vc.scheduleVehicleRemoval(vehicle);
} else {
- WRITE_WARNING("Calibrator '" + getID() + "' could not remove vehicle '" + *it);
+ WRITE_WARNING("Calibrator '" + getID() + "' could not remove vehicle '" + *it + "'.");
}
}
myToRemove.clear();
diff --git a/src/microsim/trigger/MSChrgStn.cpp b/src/microsim/trigger/MSChargingStation.cpp
similarity index 74%
rename from src/microsim/trigger/MSChrgStn.cpp
rename to src/microsim/trigger/MSChargingStation.cpp
index f3d5ccc..4bf6ef3 100644
--- a/src/microsim/trigger/MSChrgStn.cpp
+++ b/src/microsim/trigger/MSChargingStation.cpp
@@ -1,12 +1,12 @@
/****************************************************************************/
-/// @file MSChrgStn_h.h
+/// @file MSChargingStation_h.h
/// @author Daniel Krajzewicz
/// @author Tamas Kurzveil
/// @author Pablo Alvarez Lopez
/// @date 20-12-13
-/// @version $Id: MSChrgStn.cpp 18762 2015-09-01 16:27:09Z behrisch $ //REVISION NEEDED
+/// @version $Id: MSChargingStation.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
-// Chargin Station for Electric vehicles //REVISION NEEDED
+// Chargin Station for Electric vehicles
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -34,7 +34,7 @@
#include <utils/vehicle/SUMOVehicle.h>
#include <microsim/MSVehicleType.h>
#include <microsim/MSStoppingPlace.h>
-#include "MSChrgStn.h"
+#include "MSChargingStation.h"
#include "MSTrigger.h"
@@ -46,11 +46,11 @@
// member method definitions
// ===========================================================================
-MSChrgStn::MSChrgStn(const std::string& new_ChrgStnID,
- const std::vector<std::string>& new_lines,
- MSLane& new_Lane, SUMOReal new_StartPos, SUMOReal new_EndPos, SUMOReal new_ChrgPower,
- SUMOReal new_Efficency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay) :
- MSStoppingPlace(new_ChrgStnID, new_lines, new_Lane, new_StartPos, new_EndPos),
+MSChargingStation::MSChargingStation(const std::string& new_ChargingStationID,
+ const std::vector<std::string>& new_lines,
+ MSLane& new_Lane, SUMOReal new_StartPos, SUMOReal new_EndPos, SUMOReal new_ChrgPower,
+ SUMOReal new_Efficency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay) :
+ MSStoppingPlace(new_ChargingStationID, new_lines, new_Lane, new_StartPos, new_EndPos),
ChrgPower(new_ChrgPower),
Efficency(new_Efficency),
ChargeInTransit(new_ChargeInTransit),
@@ -69,7 +69,7 @@ MSChrgStn::MSChrgStn(const std::string& new_ChrgStnID,
}
-MSChrgStn::~MSChrgStn()
+MSChargingStation::~MSChargingStation()
{}
@@ -77,29 +77,29 @@ MSChrgStn::~MSChrgStn()
SUMOReal
-MSChrgStn::getChrgPower() const {
+MSChargingStation::getChrgPower() const {
return ChrgPower;
}
SUMOReal
-MSChrgStn::getEfficency() const {
+MSChargingStation::getEfficency() const {
return Efficency;
}
SUMOReal
-MSChrgStn::getChargeInTransit() const {
+MSChargingStation::getChargeInTransit() const {
return ChargeInTransit;
}
SUMOReal
-MSChrgStn::getChargeDelay() const {
+MSChargingStation::getChargeDelay() const {
return ChargeDelay;
}
// SET FUNCTIONS
-void MSChrgStn::setChrgPower(SUMOReal new_ChrgPower) {
+void MSChargingStation::setChrgPower(SUMOReal new_ChrgPower) {
ChrgPower = new_ChrgPower;
if (new_ChrgPower < 0) {
@@ -108,7 +108,7 @@ void MSChrgStn::setChrgPower(SUMOReal new_ChrgPower) {
}
-void MSChrgStn::setEfficency(SUMOReal new_Efficency) {
+void MSChargingStation::setEfficency(SUMOReal new_Efficency) {
if (new_Efficency < 0 || new_Efficency > 1) {
std::cout << std::string("Warning: Chargin Station with ID = " + getID() + " doesn't have a valid Efficency (" + SUMOReal_str(getEfficency()) + ").");
}
@@ -116,7 +116,7 @@ void MSChrgStn::setEfficency(SUMOReal new_Efficency) {
Efficency = new_Efficency;
}
-bool MSChrgStn::vehicleIsInside(const SUMOReal position) {
+bool MSChargingStation::vehicleIsInside(const SUMOReal position) {
if ((position >= getBeginLanePosition()) && (position <= getEndLanePosition())) {
return true;
} else {
@@ -126,7 +126,7 @@ bool MSChrgStn::vehicleIsInside(const SUMOReal position) {
// Private methods
-std::string MSChrgStn::SUMOReal_str(const SUMOReal& var) {
+std::string MSChargingStation::SUMOReal_str(const SUMOReal& var) {
std::ostringstream convert;
convert << var;
return convert.str();
diff --git a/src/microsim/trigger/MSChrgStn.h b/src/microsim/trigger/MSChargingStation.h
similarity index 82%
rename from src/microsim/trigger/MSChrgStn.h
rename to src/microsim/trigger/MSChargingStation.h
index 93dba59..ab94cbb 100644
--- a/src/microsim/trigger/MSChrgStn.h
+++ b/src/microsim/trigger/MSChargingStation.h
@@ -1,12 +1,12 @@
/****************************************************************************/
-/// @file MSChrgStn_h.h
+/// @file MSChargingStation_h.h
/// @author Daniel Krajzewicz
/// @author Tamas Kurzveil
/// @author Pablo Alvarez Lopez
/// @date 20-12-13
-/// @version $Id: MSChrgStn.h 18762 2015-09-01 16:27:09Z behrisch $ //REVISION NEEDED
+/// @version $Id: MSChargingStation.h 19535 2015-12-05 13:47:18Z behrisch $
///
-// Chargin Station for Electric vehicles //REVISION NEEDED
+// Chargin Station for Electric vehicles
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -19,8 +19,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef MSChrgStn_h
-#define MSChrgStn_h
+#ifndef MSChargingStation_h
+#define MSChargingStation_h
// ===========================================================================
// included modules
@@ -39,38 +39,30 @@
#include <microsim/MSStoppingPlace.h>
-#define DEFAULT_EFFICIENCY 0.95
-
-
-class OptionsCont;
-
// ===========================================================================
// class declarations
// ===========================================================================
class MSLane;
class MSBusStop;
+class OptionsCont;
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class ChrgStn
+ * @class ChargingStation
* @brief Definition of charging stations
*/
-class MSChrgStn : public MSStoppingPlace {
+class MSChargingStation : public MSStoppingPlace {
public:
// CONSTRUCTORES
- MSChrgStn(const std::string& new_ChrgStnID, const std::vector<std::string>& new_lines, MSLane& new_Lane,
- SUMOReal new_StartPos, SUMOReal new_EndPos, SUMOReal new_ChrgPower, SUMOReal new_Efficency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay);
-
- virtual ~MSChrgStn();
-
-
- // GET FUNCTIONS
+ MSChargingStation(const std::string& new_ChargingStationID, const std::vector<std::string>& new_lines, MSLane& new_Lane,
+ SUMOReal new_StartPos, SUMOReal new_EndPos, SUMOReal new_ChrgPower, SUMOReal new_Efficency, SUMOReal new_ChargeInTransit, SUMOReal new_ChargeDelay);
+ virtual ~MSChargingStation();
/// @brief Get parameter 01, charging station's charging power
SUMOReal getChrgPower() const;
@@ -84,9 +76,6 @@ public:
/// @brief Get parameter 03, get Charge Delay
SUMOReal getChargeDelay() const;
-
- // SET FUNCTIONS
-
/// @brief Set parameter 05, charging station's charging power
inline void setChrgPower(SUMOReal new_ChrgPower);
@@ -123,8 +112,6 @@ private:
* @return Variable var in String format
*/
std::string SUMOReal_str(const SUMOReal& var);
-
-
};
#endif
diff --git a/src/microsim/trigger/MSTriggeredRerouter.cpp b/src/microsim/trigger/MSTriggeredRerouter.cpp
index 2f447b3..239e3ce 100644
--- a/src/microsim/trigger/MSTriggeredRerouter.cpp
+++ b/src/microsim/trigger/MSTriggeredRerouter.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 25 July 2005
-/// @version $Id: MSTriggeredRerouter.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: MSTriggeredRerouter.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// Reroutes vehicles passing an edge
/****************************************************************************/
@@ -309,7 +309,7 @@ MSTriggeredRerouter::notifyEnter(SUMOVehicle& veh, MSMoveReminder::Notification
// if permissions aren't set vehicles will simply drive through
// the closing unless terminated. If the permissions are specified, assume that the user wants
// vehicles to stand and wait until the closing ends
- WRITE_WARNING("Cannot keep destination for vehicle '" + veh.getID() + "' due to closed edges. Terminating route.");
+ WRITE_WARNING("Cannot keep destination edge '" + lastEdge->getID() + "' for vehicle '" + veh.getID() + "' due to closed edges. Terminating route.");
newEdge = veh.getEdge();
} else {
newEdge = lastEdge;
diff --git a/src/microsim/trigger/MSTriggeredRerouter.h b/src/microsim/trigger/MSTriggeredRerouter.h
index 9910b9e..be660dd 100644
--- a/src/microsim/trigger/MSTriggeredRerouter.h
+++ b/src/microsim/trigger/MSTriggeredRerouter.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 25 July 2005
-/// @version $Id: MSTriggeredRerouter.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: MSTriggeredRerouter.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Reroutes vehicles passing an edge
/****************************************************************************/
@@ -67,6 +67,9 @@ class SUMOVehicle;
class MSTriggeredRerouter :
public MSTrigger, public MSMoveReminder,
public SUMOSAXHandler {
+
+ friend class GUIEdge; // dynamic instantiation
+
public:
/** @brief Constructor
*
diff --git a/src/microsim/trigger/Makefile.am b/src/microsim/trigger/Makefile.am
index 441c088..31d6a13 100644
--- a/src/microsim/trigger/Makefile.am
+++ b/src/microsim/trigger/Makefile.am
@@ -4,5 +4,5 @@ libmicrosimtrigger_a_SOURCES = MSCalibrator.cpp MSCalibrator.h \
MSContainerTerminal.cpp MSContainerTerminal.h \
MSLaneSpeedTrigger.cpp MSLaneSpeedTrigger.h \
MSTrigger.h MSTrigger.cpp \
-MSChrgStn.h MSChrgStn.cpp \
+MSChargingStation.h MSChargingStation.cpp \
MSTriggeredRerouter.cpp MSTriggeredRerouter.h
diff --git a/src/microsim/trigger/Makefile.in b/src/microsim/trigger/Makefile.in
index edbf7c8..baa09b0 100644
--- a/src/microsim/trigger/Makefile.in
+++ b/src/microsim/trigger/Makefile.in
@@ -100,7 +100,7 @@ libmicrosimtrigger_a_AR = $(AR) $(ARFLAGS)
libmicrosimtrigger_a_LIBADD =
am_libmicrosimtrigger_a_OBJECTS = MSCalibrator.$(OBJEXT) \
MSContainerTerminal.$(OBJEXT) MSLaneSpeedTrigger.$(OBJEXT) \
- MSTrigger.$(OBJEXT) MSChrgStn.$(OBJEXT) \
+ MSTrigger.$(OBJEXT) MSChargingStation.$(OBJEXT) \
MSTriggeredRerouter.$(OBJEXT)
libmicrosimtrigger_a_OBJECTS = $(am_libmicrosimtrigger_a_OBJECTS)
AM_V_P = $(am__v_P_ at AM_V@)
@@ -333,7 +333,7 @@ libmicrosimtrigger_a_SOURCES = MSCalibrator.cpp MSCalibrator.h \
MSContainerTerminal.cpp MSContainerTerminal.h \
MSLaneSpeedTrigger.cpp MSLaneSpeedTrigger.h \
MSTrigger.h MSTrigger.cpp \
-MSChrgStn.h MSChrgStn.cpp \
+MSChargingStation.h MSChargingStation.cpp \
MSTriggeredRerouter.cpp MSTriggeredRerouter.h
all: all-am
@@ -386,7 +386,7 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MSCalibrator.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MSChrgStn.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MSChargingStation.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MSContainerTerminal.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MSLaneSpeedTrigger.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/MSTrigger.Po at am__quote@
diff --git a/src/netbuild/NBAlgorithms.cpp b/src/netbuild/NBAlgorithms.cpp
index 217e64f..50f46ab 100644
--- a/src/netbuild/NBAlgorithms.cpp
+++ b/src/netbuild/NBAlgorithms.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date 02. March 2012
-/// @version $Id: NBAlgorithms.cpp 18699 2015-08-24 06:54:48Z namdre $
+/// @version $Id: NBAlgorithms.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// Algorithms for network computation
/****************************************************************************/
@@ -111,7 +111,7 @@ NBTurningDirectionsComputer::computeTurnDirectionsForNode(NBNode* node, bool war
if (seen.find((*j).from) != seen.end() || seen.find((*j).to) != seen.end()) {
// do not regard already set edges
if ((*j).angle > 360 && warn) {
- WRITE_WARNING("Ambiguity in turnarounds computation at node '" + node->getID() + "'.");
+ WRITE_WARNING("Ambiguity in turnarounds computation at junction '" + node->getID() + "'.");
warn = false;
}
continue;
diff --git a/src/netbuild/NBAlgorithms_Ramps.cpp b/src/netbuild/NBAlgorithms_Ramps.cpp
index 15c78f9..8c5ff4d 100644
--- a/src/netbuild/NBAlgorithms_Ramps.cpp
+++ b/src/netbuild/NBAlgorithms_Ramps.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 29. March 2012
-/// @version $Id: NBAlgorithms_Ramps.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBAlgorithms_Ramps.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Algorithms for highway on-/off-ramps computation
/****************************************************************************/
@@ -65,14 +65,23 @@ NBRampsComputer::computeRamps(NBNetBuilder& nb, OptionsCont& oc) {
std::set<NBEdge*> incremented;
// check whether on-off ramps shall be guessed
if (oc.getBool("ramps.guess")) {
+ NBNodeCont& nc = nb.getNodeCont();
+ NBEdgeCont& ec = nb.getEdgeCont();
+ NBDistrictCont& dc = nb.getDistrictCont();
+ // collect join exclusions
std::set<std::string> noramps;
if (oc.isSet("ramps.unset")) {
std::vector<std::string> edges = oc.getStringVector("ramps.unset");
noramps.insert(edges.begin(), edges.end());
}
- NBNodeCont& nc = nb.getNodeCont();
- NBEdgeCont& ec = nb.getEdgeCont();
- NBDistrictCont& dc = nb.getDistrictCont();
+ // exclude roundabouts
+ const std::set<EdgeSet>& roundabouts = ec.getRoundabouts();
+ for (std::set<EdgeSet>::const_iterator it_round = roundabouts.begin();
+ it_round != roundabouts.end(); ++it_round) {
+ for (EdgeSet::const_iterator it_edge = it_round->begin(); it_edge != it_round->end(); ++it_edge) {
+ noramps.insert((*it_edge)->getID());
+ }
+ }
// if an edge is part of two ramps, ordering is important
std::set<NBNode*, Named::ComparatorIdLess> potOnRamps;
std::set<NBNode*, Named::ComparatorIdLess> potOffRamps;
@@ -165,7 +174,7 @@ NBRampsComputer::buildOnRamp(NBNode* cur, NBNodeCont& nc, NBEdgeCont& ec, NBDist
curr->invalidateConnections(true);
incremented.insert(curr);
moveRampRight(curr, toAdd);
- currLength += curr->getLength(); // !!! loaded length?
+ currLength += curr->getGeometry().length(); // !!! loaded length?
last = curr;
}
NBNode* nextN = curr->getToNode();
@@ -247,7 +256,7 @@ NBRampsComputer::buildOffRamp(NBNode* cur, NBNodeCont& nc, NBEdgeCont& ec, NBDis
curr->invalidateConnections(true);
incremented.insert(curr);
moveRampRight(curr, toAdd);
- currLength += curr->getLength(); // !!! loaded length?
+ currLength += curr->getGeometry().length(); // !!! loaded length?
last = curr;
}
NBNode* prevN = curr->getFromNode();
@@ -305,8 +314,7 @@ NBRampsComputer::buildOffRamp(NBNode* cur, NBNodeCont& nc, NBEdgeCont& ec, NBDis
}
// patch ramp geometry
PositionVector p = potRamp->getGeometry();
- p.pop_front();
- p.push_front(first->getLaneShape(0)[-1]);
+ p[0] = first->getLaneShape(0)[-1];
potRamp->setGeometry(p);
}
@@ -410,8 +418,8 @@ bool
NBRampsComputer::fulfillsRampConstraints(
NBEdge* potHighway, NBEdge* potRamp, NBEdge* other, SUMOReal minHighwaySpeed, SUMOReal maxRampSpeed,
const std::set<std::string>& noramps) {
- // do not build ramps on rail edges
- if (isRailway(potHighway->getPermissions()) || isRailway(potRamp->getPermissions())) {
+ // check modes that are not appropriate for rampsdo not build ramps on rail edges
+ if (hasWrongMode(potHighway) || hasWrongMode(potRamp) || hasWrongMode(other)) {
return false;
}
// do not build ramps on connectors
@@ -457,5 +465,20 @@ NBRampsComputer::fulfillsRampConstraints(
}
+bool
+NBRampsComputer::hasWrongMode(NBEdge* edge) {
+ // must allow passenger vehicles
+ if ((edge->getPermissions() & SVC_PASSENGER) == 0) {
+ return true;
+ }
+ // must not have a green verge or a lane that is only for soft modes
+ for (int i = 0; i < (int)edge->getNumLanes(); ++i) {
+ if ((edge->getPermissions(i) & ~(SVC_PEDESTRIAN | SVC_BICYCLE)) == 0) {
+ return true;
+ }
+ }
+ return false;
+}
+
/****************************************************************************/
diff --git a/src/netbuild/NBAlgorithms_Ramps.h b/src/netbuild/NBAlgorithms_Ramps.h
index e4f4517..2b6136f 100644
--- a/src/netbuild/NBAlgorithms_Ramps.h
+++ b/src/netbuild/NBAlgorithms_Ramps.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date 29. March 2012
-/// @version $Id: NBAlgorithms_Ramps.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBAlgorithms_Ramps.h 18875 2015-09-19 22:50:53Z namdre $
///
// Algorithms for highway on-/off-ramps computation
/****************************************************************************/
@@ -139,6 +139,8 @@ private:
*/
static void moveRampRight(NBEdge* ramp, int addedLanes);
+ /// @brief whether the edge has a mode that does not indicate a ramp edge
+ static bool hasWrongMode(NBEdge* edge);
};
diff --git a/src/netbuild/NBContHelper.cpp b/src/netbuild/NBContHelper.cpp
index 5f64891..a99dcd9 100644
--- a/src/netbuild/NBContHelper.cpp
+++ b/src/netbuild/NBContHelper.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBContHelper.cpp 18566 2015-07-14 12:46:29Z behrisch $
+/// @version $Id: NBContHelper.cpp 19221 2015-10-29 13:42:25Z behrisch $
///
// Some methods for traversing lists of edges
/****************************************************************************/
@@ -162,12 +162,10 @@ NBContHelper::relative_outgoing_edge_sorter::operator()(NBEdge* e1, NBEdge* e2)
// look at further geometry segments to resolve ambiguity
const Position referencePos1 = e1->getGeometry().positionAtOffset2D(lookAhead);
const Position referencePos2 = e2->getGeometry().positionAtOffset2D(lookAhead);
- relAngle1 = NBHelpers::normRelAngle(myEdge->getEndAngle(), NBHelpers::angle(
- e1->getFromNode()->getPosition().x(), e1->getFromNode()->getPosition().y(),
- referencePos1.x(), referencePos1.y()));
- relAngle2 = NBHelpers::normRelAngle(myEdge->getEndAngle(), NBHelpers::angle(
- e2->getFromNode()->getPosition().x(), e2->getFromNode()->getPosition().y(),
- referencePos2.x(), referencePos2.y()));
+ relAngle1 = NBHelpers::normRelAngle(myEdge->getEndAngle(), GeomHelper::legacyDegree(
+ e1->getFromNode()->getPosition().angleTo2D(referencePos1), true));
+ relAngle2 = NBHelpers::normRelAngle(myEdge->getEndAngle(), GeomHelper::legacyDegree(
+ e2->getFromNode()->getPosition().angleTo2D(referencePos2), true));
if (lookAhead > MAX2(e1->getLength(), e2->getLength())) {
break;
}
@@ -195,12 +193,10 @@ NBContHelper::relative_incoming_edge_sorter::operator()(NBEdge* e1, NBEdge* e2)
// look at further geometry segments to resolve ambiguity
const Position referencePos1 = e1->getGeometry().positionAtOffset2D(e1->getGeometry().length() - lookAhead);
const Position referencePos2 = e2->getGeometry().positionAtOffset2D(e2->getGeometry().length() - lookAhead);
- relAngle1 = NBHelpers::normRelAngle(myEdge->getStartAngle(), NBHelpers::angle(
- referencePos1.x(), referencePos1.y(),
- e1->getToNode()->getPosition().x(), e1->getToNode()->getPosition().y()));
- relAngle2 = NBHelpers::normRelAngle(myEdge->getStartAngle(), NBHelpers::angle(
- referencePos2.x(), referencePos2.y(),
- e2->getToNode()->getPosition().x(), e2->getToNode()->getPosition().y()));
+ relAngle1 = NBHelpers::normRelAngle(myEdge->getStartAngle(), GeomHelper::legacyDegree(
+ referencePos1.angleTo2D(e1->getToNode()->getPosition()), true));
+ relAngle2 = NBHelpers::normRelAngle(myEdge->getStartAngle(), GeomHelper::legacyDegree(
+ referencePos2.angleTo2D(e2->getToNode()->getPosition()), true));
if (lookAhead > MAX2(e1->getLength(), e2->getLength())) {
break;
}
diff --git a/src/netbuild/NBContHelper.h b/src/netbuild/NBContHelper.h
index 9768302..c6c7a9b 100644
--- a/src/netbuild/NBContHelper.h
+++ b/src/netbuild/NBContHelper.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 17 Dec 2001
-/// @version $Id: NBContHelper.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NBContHelper.h 19193 2015-10-28 11:01:19Z behrisch $
///
// Some methods for traversing lists of edges
/****************************************************************************/
@@ -162,9 +162,7 @@ public:
* @return Which edge is more opposite to the related one
*/
int operator()(NBEdge* e1, NBEdge* e2) const {
- SUMOReal d1 = getDiff(e1);
- SUMOReal d2 = getDiff(e2);
- return d1 > d2;
+ return getDiff(e1) > getDiff(e2);
}
protected:
@@ -173,8 +171,7 @@ public:
* @return The angle difference
*/
SUMOReal getDiff(const NBEdge* const e) const {
- SUMOReal d = getEdgeAngleAt(e, myNode);
- return GeomHelper::getMinAngleDiff(d, myAngle);
+ return fabs(GeomHelper::angleDiff(getEdgeAngleAt(e, myNode), myAngle));
}
/** @brief Returns the given edge's angle at the given node
@@ -185,9 +182,9 @@ public:
*/
SUMOReal getEdgeAngleAt(const NBEdge* const e, const NBNode* const n) const {
if (e->getFromNode() == n) {
- return e->getGeometry().getBegLine().atan2DegreeAngle();
+ return e->getGeometry().angleAt2D(0);
} else {
- return e->getGeometry().getEndLine().reverse().atan2DegreeAngle();
+ return e->getGeometry()[-1].angleTo2D(e->getGeometry()[-2]);
}
}
diff --git a/src/netbuild/NBDistrict.cpp b/src/netbuild/NBDistrict.cpp
index c2b739f..44be17d 100644
--- a/src/netbuild/NBDistrict.cpp
+++ b/src/netbuild/NBDistrict.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NBDistrict.cpp 18639 2015-08-17 13:59:19Z namdre $
+/// @version $Id: NBDistrict.cpp 19181 2015-10-27 17:05:36Z behrisch $
///
// A class representing a single district
/****************************************************************************/
@@ -65,8 +65,8 @@ NBDistrict::~NBDistrict() {}
// ----------- Applying offset
void
NBDistrict::reshiftPosition(SUMOReal xoff, SUMOReal yoff) {
- myPosition.reshiftRotate(xoff, yoff, 0);
- myShape.reshiftRotate(xoff, yoff, 0);
+ myPosition.add(xoff, yoff, 0);
+ myShape.add(xoff, yoff, 0);
}
diff --git a/src/netbuild/NBEdge.cpp b/src/netbuild/NBEdge.cpp
index 0575632..27efa2f 100644
--- a/src/netbuild/NBEdge.cpp
+++ b/src/netbuild/NBEdge.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBEdge.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBEdge.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Methods for the representation of a single edge
/****************************************************************************/
@@ -66,6 +66,7 @@
const SUMOReal NBEdge::UNSPECIFIED_WIDTH = -1;
const SUMOReal NBEdge::UNSPECIFIED_OFFSET = 0;
const SUMOReal NBEdge::UNSPECIFIED_SPEED = -1;
+const SUMOReal NBEdge::UNSPECIFIED_CONTPOS = -1;
const SUMOReal NBEdge::UNSPECIFIED_SIGNAL_OFFSET = -1;
const SUMOReal NBEdge::UNSPECIFIED_LOADED_LENGTH = -1;
@@ -200,7 +201,7 @@ NBEdge::NBEdge(const std::string& id, NBNode* from, NBNode* to,
myAmInnerEdge(false), myAmMacroscopicConnector(false),
myStreetName(streetName),
mySignalOffset(UNSPECIFIED_SIGNAL_OFFSET) {
- init(nolanes, false);
+ init(nolanes, false, "");
}
@@ -209,6 +210,7 @@ NBEdge::NBEdge(const std::string& id, NBNode* from, NBNode* to,
int priority, SUMOReal laneWidth, SUMOReal offset,
PositionVector geom,
const std::string& streetName,
+ const std::string& origID,
LaneSpreadFunction spread, bool tryIgnoreNodePositions) :
Named(StringUtils::convertUmlaute(id)),
myStep(INIT),
@@ -224,7 +226,7 @@ NBEdge::NBEdge(const std::string& id, NBNode* from, NBNode* to,
myAmInnerEdge(false), myAmMacroscopicConnector(false),
myStreetName(streetName),
mySignalOffset(UNSPECIFIED_SIGNAL_OFFSET) {
- init(nolanes, tryIgnoreNodePositions);
+ init(nolanes, tryIgnoreNodePositions, origID);
}
@@ -247,7 +249,7 @@ NBEdge::NBEdge(const std::string& id, NBNode* from, NBNode* to, NBEdge* tpl, con
myAmMacroscopicConnector(false),
myStreetName(tpl->getStreetName()),
mySignalOffset(to == tpl->myTo ? tpl->mySignalOffset : UNSPECIFIED_SIGNAL_OFFSET) {
- init(numLanes > 0 ? numLanes : tpl->getNumLanes(), myGeom.size() > 0);
+ init(numLanes > 0 ? numLanes : tpl->getNumLanes(), myGeom.size() > 0, "");
for (unsigned int i = 0; i < getNumLanes(); i++) {
const unsigned int tplIndex = MIN2(i, tpl->getNumLanes() - 1);
setSpeed(i, tpl->getLaneSpeed(tplIndex));
@@ -289,7 +291,7 @@ NBEdge::reinit(NBNode* from, NBNode* to, const std::string& type,
// preserve lane-specific settings (geometry must be recomputed)
// if new lanes are added they copy the values from the leftmost lane (if specified)
const std::vector<Lane> oldLanes = myLanes;
- init(nolanes, tryIgnoreNodePositions);
+ init(nolanes, tryIgnoreNodePositions, oldLanes.empty() ? "" : oldLanes[0].origID);
for (int i = 0; i < (int)nolanes; ++i) {
PositionVector newShape = myLanes[i].shape;
myLanes[i] = oldLanes[MIN2(i, (int)oldLanes.size() - 1)];
@@ -329,7 +331,7 @@ NBEdge::reinitNodes(NBNode* from, NBNode* to) {
void
-NBEdge::init(unsigned int noLanes, bool tryIgnoreNodePositions) {
+NBEdge::init(unsigned int noLanes, bool tryIgnoreNodePositions, const std::string& origID) {
if (noLanes == 0) {
throw ProcessError("Edge '" + myID + "' needs at least one lane.");
}
@@ -342,8 +344,8 @@ NBEdge::init(unsigned int noLanes, bool tryIgnoreNodePositions) {
myGeom.removeDoublePoints();
if (!tryIgnoreNodePositions || myGeom.size() < 2) {
if (myGeom.size() == 0) {
+ myGeom.push_back(myFrom->getPosition());
myGeom.push_back(myTo->getPosition());
- myGeom.push_front(myFrom->getPosition());
} else {
myGeom.push_back_noDoublePos(myTo->getPosition());
myGeom.push_front_noDoublePos(myFrom->getPosition());
@@ -351,8 +353,8 @@ NBEdge::init(unsigned int noLanes, bool tryIgnoreNodePositions) {
}
if (myGeom.size() < 2) {
myGeom.clear();
+ myGeom.push_back(myFrom->getPosition());
myGeom.push_back(myTo->getPosition());
- myGeom.push_front(myFrom->getPosition());
}
if (myGeom.size() == 2 && myGeom[0] == myGeom[1]) {
WRITE_ERROR("Edge's '" + myID + "' from- and to-node are at the same position.");
@@ -366,7 +368,7 @@ NBEdge::init(unsigned int noLanes, bool tryIgnoreNodePositions) {
assert(myGeom.size() >= 2);
myLanes.clear();
for (unsigned int i = 0; i < noLanes; i++) {
- myLanes.push_back(Lane(this));
+ myLanes.push_back(Lane(this, origID));
}
computeLaneShapes();
computeAngle();
@@ -379,9 +381,9 @@ NBEdge::~NBEdge() {}
// ----------- Applying offset
void
NBEdge::reshiftPosition(SUMOReal xoff, SUMOReal yoff) {
- myGeom.reshiftRotate(xoff, yoff, 0);
+ myGeom.add(xoff, yoff, 0);
for (unsigned int i = 0; i < myLanes.size(); i++) {
- myLanes[i].shape.reshiftRotate(xoff, yoff, 0);
+ myLanes[i].shape.add(xoff, yoff, 0);
}
computeAngle(); // update angles because they are numerically sensitive (especially where based on centroids)
}
@@ -404,10 +406,7 @@ NBEdge::mirrorX() {
// ----------- Edge geometry access and computation
const PositionVector
NBEdge::getInnerGeometry() const {
- PositionVector result = getGeometry();
- result.pop_front();
- result.pop_back();
- return result;
+ return myGeom.getSubpartByIndex(1, (int)myGeom.size() - 2);
}
@@ -430,7 +429,7 @@ NBEdge::setGeometry(const PositionVector& s, bool inner) {
Position end = myGeom.back(); // may differ from node position
myGeom = s;
if (inner) {
- myGeom.push_front(begin);
+ myGeom.insert(myGeom.begin(), begin);
myGeom.push_back(end);
}
computeLaneShapes();
@@ -459,9 +458,7 @@ NBEdge::cutAtIntersection(const PositionVector& old) const {
} else {
// @note If the node shapes are overlapping we may get a shape which goes in the wrong direction
// in this case the result shape should shortened
- Line lc(shape[0], shape[-1]);
- Line lo(old[0], old[-1]);
- if (135 < GeomHelper::getMinAngleDiff(lc.atan2DegreeAngle(), lo.atan2DegreeAngle())) {
+ if (DEG2RAD(135) < fabs(GeomHelper::angleDiff(shape.beginEndAngle(), old.beginEndAngle()))) {
shape = shape.reverse();
shape = shape.getSubpart(0, 2 * POSITION_EPS); // *2 because otherwhise shape has only a single point
}
@@ -489,27 +486,31 @@ NBEdge::computeEdgeShape() {
PositionVector
NBEdge::startShapeAt(const PositionVector& laneShape, const NBNode* startNode) const {
const PositionVector& nodeShape = startNode->getShape();
- Line lb = laneShape.getBegLine();
+ PositionVector lb(laneShape.begin(), laneShape.begin() + 2);
// this doesn't look reasonable @todo use lb.extrapolateFirstBy(100.0);
- lb.extrapolateBy(100.0);
+ lb.extrapolate(100.0);
if (nodeShape.intersects(laneShape)) {
// shape intersects directly
std::vector<SUMOReal> pbv = laneShape.intersectsAtLengths2D(nodeShape);
assert(pbv.size() > 0);
- SUMOReal pb = VectorHelper<SUMOReal>::maxValue(pbv);
- assert(pb >= 0);
- PositionVector ns = pb <= laneShape.length() ? laneShape.getSubpart2D(pb, laneShape.length()) : laneShape;
+ // ensure that the subpart has at least two points
+ SUMOReal pb = MIN2(laneShape.length2D() - POSITION_EPS - NUMERICAL_EPS, VectorHelper<SUMOReal>::maxValue(pbv));
+ if (pb < 0) {
+ return laneShape;
+ }
+ PositionVector ns = laneShape.getSubpart2D(pb, laneShape.length2D());
+ //PositionVector ns = pb < (laneShape.length() - POSITION_EPS) ? laneShape.getSubpart2D(pb, laneShape.length()) : laneShape;
ns[0].set(ns[0].x(), ns[0].y(), startNode->getPosition().z());
+ assert(ns.size() >= 2);
return ns;
- } else if (nodeShape.intersects(lb.p1(), lb.p2())) {
+ } else if (nodeShape.intersects(lb)) {
// extension of first segment intersects
std::vector<SUMOReal> pbv = lb.intersectsAtLengths2D(nodeShape);
assert(pbv.size() > 0);
SUMOReal pb = VectorHelper<SUMOReal>::maxValue(pbv);
assert(pb >= 0);
- PositionVector result = laneShape;
- result.eraseAt(0);
- Position np = lb.getPositionAtDistance2D(pb);
+ PositionVector result = laneShape.getSubpartByIndex(1, (int)laneShape.size() - 1);
+ Position np = PositionVector::positionAtOffset2D(lb[0], lb[1], pb);
result.push_front_noDoublePos(Position(np.x(), np.y(), startNode->getPosition().z()));
return result;
//if (result.size() >= 2) {
@@ -541,7 +542,11 @@ NBEdge::setLaneSpreadFunction(LaneSpreadFunction spread) {
void
NBEdge::addGeometryPoint(int index, const Position& p) {
- myGeom.insertAt(index, p);
+ if (index >= 0) {
+ myGeom.insert(myGeom.begin() + index, p);
+ } else {
+ myGeom.insert(myGeom.end() + index, p);
+ }
}
@@ -605,34 +610,34 @@ NBEdge::checkGeometry(const SUMOReal maxAngle, const SUMOReal minRadius, bool fi
std::vector<SUMOReal> angles; // absolute segment angles
//std::cout << " absolute angles:";
for (int i = 0; i < (int)myGeom.size() - 1; ++i) {
- angles.push_back(myGeom.lineAt(i).atan2DegreeAngle());
+ angles.push_back(myGeom.angleAt2D(i));
//std::cout << " " << angles.back();
}
//std::cout << "\n relative angles: ";
for (int i = 0; i < (int)angles.size() - 1; ++i) {
- const SUMOReal relAngle = fabs(NBHelpers::relAngle(angles[i], angles[i + 1]));
+ const SUMOReal relAngle = fabs(GeomHelper::angleDiff(angles[i], angles[i + 1]));
//std::cout << relAngle << " ";
if (maxAngle > 0 && relAngle > maxAngle) {
- WRITE_WARNING("Found angle of " + toString(relAngle) + " degrees at edge " + getID() + ", segment " + toString(i));
+ WRITE_WARNING("Found angle of " + toString(RAD2DEG(relAngle)) + " degrees at edge '" + getID() + "', segment " + toString(i));
}
- if (relAngle < 1) {
+ if (relAngle < DEG2RAD(1)) {
continue;
}
if (i == 0 || i == (int)angles.size() - 2) {
const bool start = i == 0;
- const Line l = (start ? myGeom.getBegLine() : myGeom.getEndLine());
- const SUMOReal r = tan(DEG2RAD(90 - 0.5 * relAngle)) * l.length2D();
- //std::cout << (start ? " start" : " end") << " length=" << l.length2D() << " radius=" << r << " ";
+ const SUMOReal dist = (start ? myGeom[0].distanceTo2D(myGeom[1]) : myGeom[-2].distanceTo2D(myGeom[-1]));
+ const SUMOReal r = tan(0.5 * (M_PI - relAngle)) * dist;
+ //std::cout << (start ? " start" : " end") << " length=" << dist << " radius=" << r << " ";
if (minRadius > 0 && r < minRadius) {
if (fix) {
WRITE_MESSAGE("Removing sharp turn with radius " + toString(r) + " at the " +
- (start ? "start" : "end") + " of edge " + getID());
- myGeom.eraseAt(start ? 1 : i + 1);
+ (start ? "start" : "end") + " of edge '" + getID() + "'.");
+ myGeom.erase(myGeom.begin() + (start ? 1 : i + 1));
checkGeometry(maxAngle, minRadius, fix);
return;
} else {
WRITE_WARNING("Found sharp turn with radius " + toString(r) + " at the " +
- (start ? "start" : "end") + " of edge " + getID());
+ (start ? "start" : "end") + " of edge '" + getID() + "'.");
}
}
}
@@ -671,7 +676,8 @@ NBEdge::addLane2LaneConnection(unsigned int from, NBEdge* dest,
unsigned int toLane, Lane2LaneInfoType type,
bool mayUseSameDestination,
bool mayDefinitelyPass,
- bool keepClear) {
+ bool keepClear,
+ SUMOReal contPos) {
if (myStep == INIT_REJECT_CONNECTIONS) {
return true;
}
@@ -684,7 +690,7 @@ NBEdge::addLane2LaneConnection(unsigned int from, NBEdge* dest,
if (!addEdge2EdgeConnection(dest)) {
return false;
}
- setConnection(from, dest, toLane, type, mayUseSameDestination, mayDefinitelyPass, keepClear);
+ setConnection(from, dest, toLane, type, mayUseSameDestination, mayDefinitelyPass, keepClear, contPos);
return true;
}
@@ -711,7 +717,8 @@ NBEdge::setConnection(unsigned int lane, NBEdge* destEdge,
unsigned int destLane, Lane2LaneInfoType type,
bool mayUseSameDestination,
bool mayDefinitelyPass,
- bool keepClear) {
+ bool keepClear,
+ SUMOReal contPos) {
if (myStep == INIT_REJECT_CONNECTIONS) {
return;
}
@@ -750,6 +757,7 @@ NBEdge::setConnection(unsigned int lane, NBEdge* destEdge,
myConnections.back().mayDefinitelyPass = true;
}
myConnections.back().keepClear = keepClear;
+ myConnections.back().contPos = contPos;
if (type == L2L_USER) {
myStep = LANES2LANES_USER;
} else {
@@ -779,6 +787,21 @@ NBEdge::getConnectionsFromLane(unsigned int lane) const {
}
+NBEdge::Connection
+NBEdge::getConnection(int fromLane, const NBEdge* to, int toLane) const {
+ for (std::vector<Connection>::const_iterator i = myConnections.begin(); i != myConnections.end(); ++i) {
+ if (
+ (*i).fromLane == fromLane
+ && (*i).toEdge == to
+ && (*i).toLane == toLane) {
+ return *i;
+ }
+ }
+ throw ProcessError("Connection from " + getID() + "_" + toString(fromLane)
+ + " to " + to->getID() + "_" + toString(toLane) + " not found");
+}
+
+
bool
NBEdge::hasConnectionTo(NBEdge* destEdge, unsigned int destLane, int fromLane) const {
return destEdge != 0 && find_if(myConnections.begin(), myConnections.end(), connections_toedgelane_finder(destEdge, destLane, fromLane)) != myConnections.end();
@@ -1043,6 +1066,7 @@ NBEdge::moveConnectionToRight(unsigned int lane) {
void
NBEdge::buildInnerEdges(const NBNode& n, unsigned int noInternalNoSplits, unsigned int& linkIndex, unsigned int& splitIndex) {
+ const int numPoints = OptionsCont::getOptions().getInt("junctions.internal-link-detail");
std::string innerID = ":" + n.getID();
NBEdge* toEdge = 0;
unsigned int edgeIndex = linkIndex;
@@ -1060,7 +1084,7 @@ NBEdge::buildInnerEdges(const NBNode& n, unsigned int noInternalNoSplits, unsign
toEdge = (*i).toEdge;
internalLaneIndex = 0;
}
- PositionVector shape = n.computeInternalLaneShape(this, con);
+ PositionVector shape = n.computeInternalLaneShape(this, con, numPoints);
std::vector<unsigned int> foeInternalLinks;
LinkDirection dir = n.getDirection(this, con.toEdge);
@@ -1091,7 +1115,7 @@ NBEdge::buildInnerEdges(const NBNode& n, unsigned int noInternalNoSplits, unsign
// compute the crossing point
if (needsCont) {
crossingPositions.second.push_back(index);
- const PositionVector otherShape = n.computeInternalLaneShape(*i2, *k2);
+ const PositionVector otherShape = n.computeInternalLaneShape(*i2, *k2, numPoints);
// vehicles are typically less wide than the lane
// they drive on but but bicycle lanes should be kept clear for their whole width
SUMOReal width2 = (*k2).toEdge->getLaneWidth((*k2).toLane);
@@ -1157,7 +1181,16 @@ NBEdge::buildInnerEdges(const NBNode& n, unsigned int noInternalNoSplits, unsign
default:
break;
}
-
+ if (con.contPos != UNSPECIFIED_CONTPOS) {
+ // apply custom internal junction position
+ if (con.contPos <= 0 || con.contPos >= shape.length()) {
+ // disable internal junction
+ crossingPositions.first = -1;
+ } else {
+ // set custom position
+ crossingPositions.first = con.contPos;
+ }
+ }
// @todo compute the maximum speed allowed based on angular velocity
// see !!! for an explanation (with a_lat_mean ~0.3)
@@ -1248,10 +1281,10 @@ SUMOReal
NBEdge::getAngleAtNode(const NBNode* const atNode) const {
// myStartAngle, myEndAngle are in [0,360] and this returns results in [-180,180]
if (atNode == myFrom) {
- return myGeom.getBegLine().atan2DegreeAngle();
+ return GeomHelper::legacyDegree(myGeom.angleAt2D(0));
} else {
assert(atNode == myTo);
- return myGeom.getEndLine().atan2DegreeAngle();
+ return GeomHelper::legacyDegree(myGeom.angleAt2D(-2));
}
}
@@ -1322,7 +1355,7 @@ NBEdge::computeLaneShapes() {
try {
myLanes[i].shape = computeLaneShape(i, offsets[i]);
} catch (InvalidArgument& e) {
- WRITE_WARNING("In edge '" + getID() + "': lane shape could not be determined (" + e.what() + ")");
+ WRITE_WARNING("In edge '" + getID() + "': lane shape could not be determined (" + e.what() + ").");
myLanes[i].shape = myGeom;
}
}
@@ -1331,66 +1364,16 @@ NBEdge::computeLaneShapes() {
PositionVector
NBEdge::computeLaneShape(unsigned int lane, SUMOReal offset) const {
- PositionVector shape;
- bool haveWarned = false;
- for (int i = 0; i < (int) myGeom.size(); i++) {
- if (i == 0) {
- Position from = myGeom[i];
- Position to = myGeom[i + 1];
- std::pair<SUMOReal, SUMOReal> offsets = laneOffset(from, to, offset);
- shape.push_back(
- // (methode umbenennen; was heisst hier "-")
- Position(from.x() - offsets.first, from.y() - offsets.second, from.z()));
- } else if (i == static_cast<int>(myGeom.size() - 1)) {
- Position from = myGeom[i - 1];
- Position to = myGeom[i];
- std::pair<SUMOReal, SUMOReal> offsets = laneOffset(from, to, offset);
- shape.push_back(
- // (methode umbenennen; was heisst hier "-")
- Position(to.x() - offsets.first, to.y() - offsets.second, to.z()));
- } else {
- Position from = myGeom[i - 1];
- Position me = myGeom[i];
- Position to = myGeom[i + 1];
- std::pair<SUMOReal, SUMOReal> offsets = laneOffset(from, me, offset);
- std::pair<SUMOReal, SUMOReal> offsets2 = laneOffset(me, to, offset);
- Line l1(
- Position(from.x() - offsets.first, from.y() - offsets.second),
- Position(me.x() - offsets.first, me.y() - offsets.second));
- l1.extrapolateBy(100);
- Line l2(
- Position(me.x() - offsets2.first, me.y() - offsets2.second),
- Position(to.x() - offsets2.first, to.y() - offsets2.second));
- const SUMOReal angle = GeomHelper::getCWAngleDiff(l1.atan2DegreeAngle(), l2.atan2DegreeAngle());
- if (angle < 10. || angle > 350.) {
- shape.push_back(
- // (methode umbenennen; was heisst hier "-")
- Position(me.x() - offsets.first, me.y() - offsets.second, me.z()));
- continue;
- }
- l2.extrapolateBy(100);
- if (l1.intersects(l2)) {
- Position intersetion = l1.intersectsAt(l2);
- shape.push_back(Position(intersetion.x(), intersetion.y(), me.z()));
- } else {
- if (!haveWarned) {
- WRITE_WARNING("In lane '" + getLaneID(lane) + "': Could not build shape.");
- haveWarned = true;
- }
- }
- }
+ PositionVector shape = myGeom;
+ try {
+ shape.move2side(offset);
+ } catch (InvalidArgument& e) {
+ WRITE_WARNING("In lane '" + getLaneID(lane) + "': Could not build shape (" + e.what() + ").");
}
return shape;
}
-std::pair<SUMOReal, SUMOReal>
-NBEdge::laneOffset(const Position& from, const Position& to, SUMOReal laneCenterOffset) {
- std::pair<SUMOReal, SUMOReal> offsets = GeomHelper::getNormal90D_CW(from, to, laneCenterOffset);
- return std::pair<SUMOReal, SUMOReal>(offsets.first, offsets.second);
-}
-
-
void
NBEdge::computeAngle() {
// taking the angle at the first might be unstable, thus we take the angle
@@ -1418,17 +1401,10 @@ NBEdge::computeAngle() {
const SUMOReal angleLookahead = MIN2(shape.length2D() / 2, ANGLE_LOOKAHEAD);
const Position referencePosStart = shape.positionAtOffset2D(angleLookahead);
- myStartAngle = NBHelpers::angle(
- fromCenter.x(), fromCenter.y(),
- referencePosStart.x(), referencePosStart.y());
+ myStartAngle = GeomHelper::legacyDegree(fromCenter.angleTo2D(referencePosStart), true);
const Position referencePosEnd = shape.positionAtOffset2D(shape.length() - angleLookahead);
- myEndAngle = NBHelpers::angle(
- referencePosEnd.x(), referencePosEnd.y(),
- toCenter.x(), toCenter.y());
- myTotalAngle = NBHelpers::angle(
- myFrom->getPosition().x(), myFrom->getPosition().y(),
- myTo->getPosition().x(), myTo->getPosition().y());
-
+ myEndAngle = GeomHelper::legacyDegree(referencePosEnd.angleTo2D(toCenter), true);
+ myTotalAngle = GeomHelper::legacyDegree(myFrom->getPosition().angleTo2D(myTo->getPosition()), true);
}
@@ -1973,13 +1949,13 @@ NBEdge::setControllingTLInformation(const NBConnection& c, const std::string& tl
no++;
} else {
if ((*i).tlID != tlID && static_cast<int>((*i).tlLinkNo) == tlIndex) {
- WRITE_WARNING("The lane " + toString<int>((*i).fromLane) + " on edge " + getID() + " already had a traffic light signal.");
+ WRITE_WARNING("The lane '" + toString<int>((*i).fromLane) + "' on edge '" + getID() + "' already had a traffic light signal.");
hadError = true;
}
}
}
if (hadError && no == 0) {
- WRITE_WARNING("Could not set any signal of the traffic light '" + tlID + "' (unknown group)");
+ WRITE_WARNING("Could not set any signal of the tlLogic '" + tlID + "' (unknown group)");
}
return true;
}
@@ -2157,7 +2133,6 @@ NBEdge::getTurnDestination(bool possibleDestination) const {
std::string
NBEdge::getLaneID(unsigned int lane) const {
- assert(lane < myLanes.size());
return myID + "_" + toString(lane);
}
@@ -2177,50 +2152,63 @@ NBEdge::isNearEnough2BeJoined2(NBEdge* e, SUMOReal threshold) const {
void
+NBEdge::addLane(unsigned int index, bool recompute) {
+ assert(index <= myLanes.size());
+ myLanes.insert(myLanes.begin() + index, Lane(this, ""));
+ // copy attributes
+ if (myLanes.size() > 1) {
+ int templateIndex = index > 0 ? index - 1 : index + 1;
+ myLanes[index].speed = myLanes[templateIndex].speed;
+ myLanes[index].permissions = myLanes[templateIndex].permissions;
+ myLanes[index].preferred = myLanes[templateIndex].preferred;
+ myLanes[index].endOffset = myLanes[templateIndex].endOffset;
+ myLanes[index].width = myLanes[templateIndex].width;
+ myLanes[index].origID = myLanes[templateIndex].origID;
+ }
+ const EdgeVector& incs = myFrom->getIncomingEdges();
+ if (recompute) {
+ computeLaneShapes();
+ for (EdgeVector::const_iterator i = incs.begin(); i != incs.end(); ++i) {
+ (*i)->invalidateConnections(true);
+ }
+ invalidateConnections(true);
+ }
+}
+
+void
NBEdge::incLaneNo(unsigned int by) {
unsigned int newLaneNo = (unsigned int) myLanes.size() + by;
while (myLanes.size() < newLaneNo) {
- myLanes.push_back(Lane(this));
+ // recompute shapes on last addition
+ const bool recompute = myLanes.size() == newLaneNo - 1;
+ addLane((unsigned int)myLanes.size(), recompute);
}
- // copy attributes
- if (myLanes.size() > 1) {
- myLanes.back().speed = myLanes[myLanes.size() - 2].speed;
- myLanes.back().permissions = myLanes[myLanes.size() - 2].permissions;
- myLanes.back().preferred = myLanes[myLanes.size() - 2].preferred;
- myLanes.back().endOffset = myLanes[myLanes.size() - 2].endOffset;
- myLanes.back().width = myLanes[myLanes.size() - 2].width;
- }
- computeLaneShapes();
+}
+
+
+void
+NBEdge::deleteLane(unsigned int index, bool recompute) {
+ assert(index < myLanes.size());
+ myLanes.erase(myLanes.begin() + index);
const EdgeVector& incs = myFrom->getIncomingEdges();
- for (EdgeVector::const_iterator i = incs.begin(); i != incs.end(); ++i) {
- (*i)->invalidateConnections(true);
+ if (recompute) {
+ computeLaneShapes();
+ for (EdgeVector::const_iterator i = incs.begin(); i != incs.end(); ++i) {
+ (*i)->invalidateConnections(true);
+ }
+ invalidateConnections(true);
}
- invalidateConnections(true);
}
void
-NBEdge::decLaneNo(unsigned int by, int dir) {
+NBEdge::decLaneNo(unsigned int by) {
unsigned int newLaneNo = (unsigned int) myLanes.size() - by;
+ assert(newLaneNo > 0);
while (myLanes.size() > newLaneNo) {
- myLanes.pop_back();
- }
- computeLaneShapes();
- const EdgeVector& incs = myFrom->getIncomingEdges();
- for (EdgeVector::const_iterator i = incs.begin(); i != incs.end(); ++i) {
- (*i)->invalidateConnections(true);
- }
- if (dir == 0) {
- invalidateConnections(true);
- } else {
- const EdgeVector& outs = myTo->getOutgoingEdges();
- assert(outs.size() == 1);
- NBEdge* out = outs[0];
- if (dir < 0) {
- removeFromConnections(out, 0);
- } else {
- removeFromConnections(out, (int) myLanes.size());
- }
+ // recompute shapes on last removal
+ const bool recompute = myLanes.size() == newLaneNo + 1;
+ deleteLane((unsigned int)((int)myLanes.size() - 1), recompute);
}
}
@@ -2480,7 +2468,7 @@ NBEdge::addRestrictedLane(SUMOReal width, SUMOVehicleClass vclass) {
// crossings can be guessed
disallowVehicleClass(-1, vclass);
// add new lane
- myLanes.insert(myLanes.begin(), Lane(this));
+ myLanes.insert(myLanes.begin(), Lane(this, myLanes[0].origID));
myLanes[0].permissions = vclass;
myLanes[0].width = width;
// shift outgoing connections to the left
diff --git a/src/netbuild/NBEdge.h b/src/netbuild/NBEdge.h
index 8ab9ff8..f6f2f0e 100644
--- a/src/netbuild/NBEdge.h
+++ b/src/netbuild/NBEdge.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBEdge.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBEdge.h 19535 2015-12-05 13:47:18Z behrisch $
///
// The representation of a single edge during network building
/****************************************************************************/
@@ -42,7 +42,6 @@
#include <utils/common/VectorHelper.h>
#include <utils/geom/Bresenham.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
#include <utils/common/SUMOVehicleClass.h>
#include <utils/xml/SUMOXMLDefinitions.h>
#include "NBCont.h"
@@ -121,9 +120,10 @@ public:
* @brief An (internal) definition of a single lane of an edge
*/
struct Lane {
- Lane(NBEdge* e) :
+ Lane(NBEdge* e, const std::string& _origID) :
speed(e->getSpeed()), permissions(SVCAll), preferred(0),
- endOffset(e->getEndOffset()), width(e->getLaneWidth()) {}
+ endOffset(e->getEndOffset()), width(e->getLaneWidth()),
+ origID(_origID) {}
/// @brief The lane's shape
PositionVector shape;
/// @brief The speed allowed on this lane
@@ -172,6 +172,8 @@ public:
bool mayDefinitelyPass;
/// @brief whether the junction must be kept clear when using this connection
bool keepClear;
+ /// @brief custom position for internal junction on this connection
+ SUMOReal contPos;
std::string origID;
@@ -195,16 +197,14 @@ public:
};
- /// Computes the offset from the edge shape on the current segment
- static std::pair<SUMOReal, SUMOReal> laneOffset(const Position& from,
- const Position& to, SUMOReal laneCenterOffset);
-
/// @brief unspecified lane width
static const SUMOReal UNSPECIFIED_WIDTH;
/// @brief unspecified lane offset
static const SUMOReal UNSPECIFIED_OFFSET;
/// @brief unspecified lane speed
static const SUMOReal UNSPECIFIED_SPEED;
+ /// @brief unspecified internal junction position
+ static const SUMOReal UNSPECIFIED_CONTPOS;
/// @brief no length override given
static const SUMOReal UNSPECIFIED_LOADED_LENGTH;
@@ -255,6 +255,7 @@ public:
* @param[in] offset Additional offset to the destination node
* @param[in] geom The edge's geomatry
* @param[in] streetName The street name (need not be unique)
+ * @param[in] origID The original ID in the source network (need not be unique)
* @param[in] spread How the lateral offset of the lanes shall be computed
* @param[in] tryIgnoreNodePositions Does not add node geometries if geom.size()>=2
* @see init
@@ -266,6 +267,7 @@ public:
SUMOReal width, SUMOReal offset,
PositionVector geom,
const std::string& streetName = "",
+ const std::string& origID = "",
LaneSpreadFunction spread = LANESPREAD_RIGHT,
bool tryIgnoreNodePositions = false);
@@ -669,7 +671,8 @@ public:
unsigned int toLane, Lane2LaneInfoType type,
bool mayUseSameDestination = false,
bool mayDefinitelyPass = false,
- bool keepClear = true);
+ bool keepClear = true,
+ SUMOReal contPos = UNSPECIFIED_CONTPOS);
/** @brief Builds no connections starting at the given lanes
@@ -710,7 +713,8 @@ public:
Lane2LaneInfoType type,
bool mayUseSameDestination = false,
bool mayDefinitelyPass = false,
- bool keepClear = true);
+ bool keepClear = true,
+ SUMOReal contPos = UNSPECIFIED_CONTPOS);
@@ -724,6 +728,12 @@ public:
*/
std::vector<Connection> getConnectionsFromLane(unsigned int lane) const;
+ /** @brief Returns the specified connection
+ * This method goes through "myConnections" and returns the specified one
+ * @see NBEdge::Connection
+ */
+ Connection getConnection(int fromLane, const NBEdge* to, int toLane) const;
+
/** @brief Retrieves info about a connection to a certain lane of a certain edge
*
@@ -1009,7 +1019,11 @@ public:
void incLaneNo(unsigned int by);
- void decLaneNo(unsigned int by, int dir = 0);
+ void decLaneNo(unsigned int by);
+
+ void deleteLane(unsigned int index, bool recompute = true);
+
+ void addLane(unsigned int index, bool recompute = true);
void markAsInLane2LaneState();
@@ -1165,9 +1179,6 @@ private:
/// Computes the shape for the given lane
PositionVector computeLaneShape(unsigned int lane, SUMOReal offset) const;
- /// Computes the offset from the edge shape on the current segment
- //std::pair<SUMOReal, SUMOReal> laneOffset(const Position& from, const Position& to, SUMOReal laneCenterOffset);
-
void computeLaneShapes();
@@ -1187,8 +1198,9 @@ private:
*
* @param[in] noLanes The number of lanes this edge has
* @param[in] tryIgnoreNodePositions Does not add node geometries if geom.size()>=2
+ * @param[in] origID The original ID this edge had
*/
- void init(unsigned int noLanes, bool tryIgnoreNodePositions);
+ void init(unsigned int noLanes, bool tryIgnoreNodePositions, const std::string& origID);
/** divides the lanes on the outgoing edges */
diff --git a/src/netbuild/NBEdgeCont.cpp b/src/netbuild/NBEdgeCont.cpp
index e62ac71..469bdb8 100644
--- a/src/netbuild/NBEdgeCont.cpp
+++ b/src/netbuild/NBEdgeCont.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBEdgeCont.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBEdgeCont.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Storage for edges, including some functionality operating on multiple edges
/****************************************************************************/
@@ -35,16 +35,12 @@
#include <string>
#include <cassert>
#include <algorithm>
-#include <iostream>
-#include <fstream>
-#include <iomanip>
#include <utils/geom/Boundary.h>
#include <utils/geom/GeomHelper.h>
#include <utils/geom/GeoConvHelper.h>
#include <utils/common/MsgHandler.h>
#include <utils/common/ToString.h>
#include <utils/common/TplConvert.h>
-#include <utils/common/StringUtils.h>
#include <utils/options/OptionsCont.h>
#include "NBNetBuilder.h"
#include "NBEdgeCont.h"
@@ -88,34 +84,10 @@ NBEdgeCont::applyOptions(OptionsCont& oc) {
myRemoveEdgesAfterJoining = oc.exists("keep-edges.postload") && oc.getBool("keep-edges.postload");
// we possibly have to load the edges to keep/remove
if (oc.isSet("keep-edges.input-file")) {
- std::ifstream strm(oc.getString("keep-edges.input-file").c_str());
- if (!strm.good()) {
- throw ProcessError("Could not load names of edges too keep from '" + oc.getString("keep-edges.input-file") + "'.");
- }
- while (strm.good()) {
- std::string name;
- strm >> name;
- myEdges2Keep.insert(name);
- // maybe we're loading an edge-selection
- if (StringUtils::startsWith(name, "edge:")) {
- myEdges2Keep.insert(name.substr(5));
- }
- }
+ NBHelpers::loadEdgesFromFile(oc.getString("keep-edges.input-file"), myEdges2Keep);
}
if (oc.isSet("remove-edges.input-file")) {
- std::ifstream strm(oc.getString("remove-edges.input-file").c_str());
- if (!strm.good()) {
- throw ProcessError("Could not load names of edges too remove from '" + oc.getString("remove-edges.input-file") + "'.");
- }
- while (strm.good()) {
- std::string name;
- strm >> name;
- myEdges2Remove.insert(name);
- // maybe we're loading an edge-selection
- if (StringUtils::startsWith(name, "edge:")) {
- myEdges2Remove.insert(name.substr(5));
- }
- }
+ NBHelpers::loadEdgesFromFile(oc.getString("remove-edges.input-file"), myEdges2Remove);
}
if (oc.isSet("keep-edges.explicit")) {
const std::vector<std::string> edges = oc.getStringVector("keep-edges.explicit");
@@ -486,8 +458,7 @@ NBEdgeCont::splitAt(NBDistrictCont& dc,
}
if (geoms.second[0] != node->getPosition()) {
- geoms.second.pop_front();
- geoms.second.push_front(node->getPosition());
+ geoms.second[0] = node->getPosition();
}
// build and insert the edges
NBEdge* one = new NBEdge(firstEdgeName, edge->myFrom, node, edge, geoms.first, noLanesFirstEdge);
@@ -747,7 +718,7 @@ NBEdgeCont::joinSameNodeConnectingEdges(NBDistrictCont& dc,
}
// delete joined edges
for (i = edges.begin(); i != edges.end(); i++) {
- erase(dc, *i);
+ extract(dc, *i, true);
}
}
@@ -774,8 +745,8 @@ NBEdgeCont::recheckLaneSpread() {
// ----- other
void
-NBEdgeCont::addPostProcessConnection(const std::string& from, int fromLane, const std::string& to, int toLane, bool mayDefinitelyPass, bool keepClear) {
- myConnections.push_back(PostProcessConnection(from, fromLane, to, toLane, mayDefinitelyPass, keepClear));
+NBEdgeCont::addPostProcessConnection(const std::string& from, int fromLane, const std::string& to, int toLane, bool mayDefinitelyPass, bool keepClear, SUMOReal contPos) {
+ myConnections.push_back(PostProcessConnection(from, fromLane, to, toLane, mayDefinitelyPass, keepClear, contPos));
}
@@ -785,7 +756,7 @@ NBEdgeCont::recheckPostProcessConnections() {
NBEdge* from = retrievePossiblySplit((*i).from, true);
NBEdge* to = retrievePossiblySplit((*i).to, false);
if (from != 0 && to != 0) {
- if (!from->addLane2LaneConnection((*i).fromLane, to, (*i).toLane, NBEdge::L2L_USER, false, (*i).mayDefinitelyPass, (*i).keepClear)) {
+ if (!from->addLane2LaneConnection((*i).fromLane, to, (*i).toLane, NBEdge::L2L_USER, false, (*i).mayDefinitelyPass, (*i).keepClear, (*i).contPos)) {
WRITE_WARNING("Could not insert connection between '" + (*i).from + "' and '" + (*i).to + "' after build.");
}
}
@@ -800,8 +771,8 @@ NBEdgeCont::recheckPostProcessConnections() {
for (std::vector<NBEdge::Connection>::iterator it_con = connections.begin(); it_con != connections.end(); ++it_con) {
NBEdge::Connection& c = *it_con;
if (c.toEdge != 0 && c.toEdge->getFromNode() != to) {
- WRITE_WARNING("Found and removed invalid connection from " + edge->getID() +
- " to " + c.toEdge->getID() + " via " + to->getID());
+ WRITE_WARNING("Found and removed invalid connection from edge '" + edge->getID() +
+ "' to edge '" + c.toEdge->getID() + "' via junction '" + to->getID() + "'.");
edge->removeFromConnections(c.toEdge);
}
}
@@ -851,7 +822,7 @@ NBEdgeCont::getGeneratedFrom(const std::string& id) const {
}
-void
+int
NBEdgeCont::guessRoundabouts() {
myGuessedRoundabouts.clear();
std::set<NBEdge*> loadedRoundaboutEdges;
@@ -936,10 +907,25 @@ NBEdgeCont::guessRoundabouts() {
}
} while (doLoop);
if (doLoop) {
- // collected edges are marked in markRoundabouts
- myGuessedRoundabouts.insert(EdgeSet(loopEdges.begin(), loopEdges.end()));
+ // check form factor to avoid elongated shapes (circle: 1, square: ~0.79)
+ if (formFactor(loopEdges) > 0.6) {
+ // collected edges are marked in markRoundabouts
+ myGuessedRoundabouts.insert(EdgeSet(loopEdges.begin(), loopEdges.end()));
+ }
}
}
+ return (int)myGuessedRoundabouts.size();
+}
+
+
+SUMOReal
+NBEdgeCont::formFactor(const EdgeVector& loopEdges) {
+ PositionVector points;
+ for (EdgeVector::const_iterator it = loopEdges.begin(); it != loopEdges.end(); ++it) {
+ points.append((*it)->getGeometry());
+ }
+ SUMOReal circumference = points.length2D();
+ return 4 * M_PI * points.area() / (circumference * circumference);
}
@@ -994,7 +980,7 @@ NBEdgeCont::generateStreetSigns() {
// is this a "real" junction?
// XXX nyi
//continue
- const SUMOReal offset = e->getLength() - 3;
+ const SUMOReal offset = MAX2((SUMOReal)0, e->getLength() - 3);
switch (e->getToNode()->getType()) {
case NODETYPE_PRIORITY:
// yield or major?
@@ -1028,15 +1014,20 @@ NBEdgeCont::generateStreetSigns() {
int
NBEdgeCont::guessSidewalks(SUMOReal width, SUMOReal minSpeed, SUMOReal maxSpeed, bool fromPermissions) {
int sidewalksCreated = 0;
+ const std::vector<std::string> edges = OptionsCont::getOptions().getStringVector("sidewalks.guess.exclude");
+ std::set<std::string> exclude(edges.begin(), edges.end());
for (EdgeCont::iterator it = myEdges.begin(); it != myEdges.end(); it++) {
NBEdge* edge = it->second;
- if ((
- // guess.from-permissions
- (fromPermissions && (edge->getPermissions() & SVC_PEDESTRIAN) != 0)
- // guess from speed
- || (!fromPermissions && edge->getSpeed() > minSpeed && edge->getSpeed() <= maxSpeed))
- // does not yet have a sidewalk
- && edge->getPermissions(0) != SVC_PEDESTRIAN) {
+ if (// not excluded
+ exclude.count(edge->getID()) == 0
+ // does not yet have a sidewalk
+ && edge->getPermissions(0) != SVC_PEDESTRIAN
+ && (
+ // guess.from-permissions
+ (fromPermissions && (edge->getPermissions() & SVC_PEDESTRIAN) != 0)
+ // guess from speed
+ || (!fromPermissions && edge->getSpeed() > minSpeed && edge->getSpeed() <= maxSpeed)
+ )) {
edge->addSidewalk(width);
sidewalksCreated += 1;
}
diff --git a/src/netbuild/NBEdgeCont.h b/src/netbuild/NBEdgeCont.h
index 545bfa9..31565bd 100644
--- a/src/netbuild/NBEdgeCont.h
+++ b/src/netbuild/NBEdgeCont.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBEdgeCont.h 18647 2015-08-18 07:09:50Z namdre $
+/// @version $Id: NBEdgeCont.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Storage for edges, including some functionality operating on multiple edges
/****************************************************************************/
@@ -453,8 +453,9 @@ public:
/** @brief Determines which edges belong to roundabouts and increases their priority
* @param[out] marked Edges which belong to a roundabout are stored here
+ * @return The number of guessed roundabouts
*/
- void guessRoundabouts();
+ int guessRoundabouts();
/** @brief Returns whether the edge with the id was ignored during parsing
@@ -487,8 +488,9 @@ public:
* @param[in] toLane The number of the lane the connection ends at
* @param[in] mayDefinitelyPass Whether the connection may be passed without braking
* @param[in] keepClear Whether the connection must check to keep the junction clear
+ * @param[in] contPos Custom position for internal junction
*/
- void addPostProcessConnection(const std::string& from, int fromLane, const std::string& to, int toLane, bool mayDefinitelyPass, bool keepClear);
+ void addPostProcessConnection(const std::string& from, int fromLane, const std::string& to, int toLane, bool mayDefinitelyPass, bool keepClear, SUMOReal contPos);
/** @brief Try to set any stored connections
@@ -527,6 +529,9 @@ private:
/// @brief Returns true if this edge matches one of the removal criteria
bool ignoreFilterMatch(NBEdge* edge);
+ /// @brief compute the form factor for a loop of edges
+ static SUMOReal formFactor(const EdgeVector& loopEdges);
+
private:
/// @brief The network builder; used to obtain type information
NBTypeCont& myTypeCont;
@@ -543,8 +548,8 @@ private:
* @param[in] toLane The number of the lane the connection ends at
* @param[in] mayDefinitelyPass Whether the connection may be passed without braking
*/
- PostProcessConnection(const std::string& from_, int fromLane_, const std::string& to_, int toLane_, bool mayDefinitelyPass_, bool keepClear_)
- : from(from_), fromLane(fromLane_), to(to_), toLane(toLane_), mayDefinitelyPass(mayDefinitelyPass_), keepClear(keepClear_)
+ PostProcessConnection(const std::string& from_, int fromLane_, const std::string& to_, int toLane_, bool mayDefinitelyPass_, bool keepClear_, SUMOReal contPos_) :
+ from(from_), fromLane(fromLane_), to(to_), toLane(toLane_), mayDefinitelyPass(mayDefinitelyPass_), keepClear(keepClear_), contPos(contPos_)
{ }
/// @brief The id of the edge the connection starts at
std::string from;
@@ -558,6 +563,8 @@ private:
bool mayDefinitelyPass;
/// @brief Whether the connection may be passed without braking
bool keepClear;
+ /// @brief custom position for internal junction on this connection
+ SUMOReal contPos;
};
/// @brief The list of connections to recheck
diff --git a/src/netbuild/NBFrame.cpp b/src/netbuild/NBFrame.cpp
index 2f715b5..8c453ac 100644
--- a/src/netbuild/NBFrame.cpp
+++ b/src/netbuild/NBFrame.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 09.05.2011
-/// @version $Id: NBFrame.cpp 18478 2015-06-07 08:02:47Z namdre $
+/// @version $Id: NBFrame.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Sets and checks options for netbuild
/****************************************************************************/
@@ -79,6 +79,9 @@ NBFrame::fillOptions(bool forNetgen) {
oc.doRegister("default.junctions.keep-clear", new Option_Bool(true));
oc.addDescription("default.junctions.keep-clear", "Building Defaults", "Whether junctions should be kept clear by default");
+ oc.doRegister("default.junctions.radius", new Option_Float(1.5));
+ oc.addDescription("default.junctions.radius", "Building Defaults", "The default turning radius of intersections");
+
// register the data processing options
oc.doRegister("no-internal-links", new Option_Bool(false)); // !!! not described
oc.addDescription("no-internal-links", "Processing", "Omits internal links");
@@ -107,6 +110,13 @@ NBFrame::fillOptions(bool forNetgen) {
oc.addSynonyme("geometry.remove", "remove-geometry", true);
oc.addDescription("geometry.remove", "Processing", "Replace nodes which only define edge geometry by geometry points (joins edges)");
+ oc.doRegister("geometry.remove.keep-edges.explicit", new Option_String());
+ oc.addDescription("geometry.remove.keep-edges.explicit", "Processing", "Ensure that the given list of edges is not modified");
+
+ oc.doRegister("geometry.remove.keep-edges.input-file", new Option_FileName());
+ oc.addDescription("geometry.remove.keep-edges.input-file", "Processing",
+ "Ensure that the edges in FILE are not modified (Each id on a single line. Selection files from SUMO-GUI are also supported)");
+
oc.doRegister("geometry.max-segment-length", new Option_Float(0));
oc.addDescription("geometry.max-segment-length", "Processing", "splits geometry to restrict segment length");
@@ -149,6 +159,10 @@ NBFrame::fillOptions(bool forNetgen) {
oc.doRegister("lefthand", new Option_Bool(false));
oc.addDescription("lefthand", "Processing", "Assumes left-hand traffic on the network");
+ oc.doRegister("edges.join", new Option_Bool(false));
+ oc.addDescription("edges.join", "Processing",
+ "Merges edges whch connect the same nodes and are close to each other (recommended for VISSIM import)");
+
oc.doRegister("junctions.join", new Option_Bool(false));
oc.addDescription("junctions.join", "Processing",
"Joins junctions that are close to each other (recommended for OSM import)");
@@ -171,6 +185,9 @@ NBFrame::fillOptions(bool forNetgen) {
oc.doRegister("junctions.corner-detail", new Option_Integer(0));
oc.addDescription("junctions.corner-detail", "Processing", "Generate INT intermediate points to smooth out intersection corners");
+ oc.doRegister("junctions.internal-link-detail", new Option_Integer(5));
+ oc.addDescription("junctions.internal-link-detail", "Processing", "Generate INT intermediate points to smooth out lanes within the intersection");
+
oc.doRegister("check-lane-foes.roundabout", new Option_Bool(true));
oc.addDescription("check-lane-foes.roundabout", "Processing",
"Allow driving onto a multi-lane road if there are foes on other lanes (at roundabouts)");
@@ -195,10 +212,18 @@ NBFrame::fillOptions(bool forNetgen) {
oc.addDescription("sidewalks.guess.from-permissions", "Processing",
"Add sidewalks for edges that allow pedestrians on any of their lanes regardless of speed");
+ oc.doRegister("sidewalks.guess.exclude", new Option_String());
+ oc.addDescription("sidewalks.guess.exclude", "Processing",
+ "Do not guess sidewalks for the given list of edges");
+
oc.doRegister("crossings.guess", new Option_Bool(false));
oc.addDescription("crossings.guess", "Processing",
"Guess pedestrian crossings based on the presence of sidewalks");
+ oc.doRegister("crossings.guess.speed-threshold", new Option_Float(13.89));
+ oc.addDescription("crossings.guess.speed-threshold", "Processing",
+ "At uncontrolled nodes, do not build crossings across edges with a speed above the threshold");
+
// tls setting options
// explicit tls
oc.doRegister("tls.set", new Option_String());
@@ -231,6 +256,10 @@ NBFrame::fillOptions(bool forNetgen) {
oc.addDescription("tls.join-dist", "TLS Building",
"Determines the maximal distance for joining traffic lights (defaults to 20)");
+ oc.doRegister("tls.uncontrolled-within", new Option_Bool(false));
+ oc.addDescription("tls.uncontrolled-within", "TLS Building",
+ "Do not control edges that lie fully within a joined traffic light. This may cause collisions but allows old traffic light plans to be used");
+
if (!forNetgen) {
oc.doRegister("tls.guess-signals", new Option_Bool(false));
oc.addDescription("tls.guess-signals", "TLS Building", "Interprets tls nodes surrounding an intersection as signal positions for a larger TLS. This is typical pattern for OSM-derived networks");
@@ -241,6 +270,9 @@ NBFrame::fillOptions(bool forNetgen) {
// computational
+ oc.doRegister("tls.cycle.time", new Option_Integer(90));
+ oc.addDescription("tls.cycle.time", "TLS Building", "Use INT as cycle duration");
+
oc.doRegister("tls.green.time", new Option_Integer(31));
oc.addSynonyme("tls.green.time", "traffic-light-green", true);
oc.addDescription("tls.green.time", "TLS Building", "Use INT as green phase duration");
@@ -257,6 +289,9 @@ NBFrame::fillOptions(bool forNetgen) {
oc.addSynonyme("tls.yellow.time", "traffic-light-yellow", true);
oc.addDescription("tls.yellow.time", "TLS Building", "Set INT as fixed time for yellow phase durations");
+ oc.doRegister("tls.left-green.time", new Option_Integer(6));
+ oc.addDescription("tls.left-green.time", "TLS Building", "Use INT as green phase duration for left turns (s)");
+
// tls-shifts
oc.doRegister("tls.half-offset", new Option_String());
oc.addSynonyme("tls.half-offset", "tl-logics.half-offset", true);
@@ -391,6 +426,14 @@ NBFrame::checkOptions() {
WRITE_ERROR("only one of the options 'no-internal-links' or 'crossings.guess' may be given");
ok = false;
}
+ if (!oc.isDefault("tls.green.time") && !oc.isDefault("tls.cycle.time")) {
+ WRITE_ERROR("only one of the options 'tls.green.time' or 'tls.cycle.time' may be given");
+ ok = false;
+ }
+ if (oc.getInt("junctions.internal-link-detail") < 2) {
+ WRITE_ERROR("junctions.internal-link-detail must >= 2");
+ ok = false;
+ }
return ok;
}
diff --git a/src/netbuild/NBHelpers.cpp b/src/netbuild/NBHelpers.cpp
index c3ae0e1..183ca3b 100644
--- a/src/netbuild/NBHelpers.cpp
+++ b/src/netbuild/NBHelpers.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBHelpers.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NBHelpers.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Some mathematical helper methods
/****************************************************************************/
@@ -34,12 +34,15 @@
#include <cmath>
#include <string>
#include <sstream>
-#include "NBNode.h"
-#include "NBHelpers.h"
+#include <iostream>
+#include <fstream>
+//#include <iomanip>
+#include <utils/common/StringUtils.h>
#include <utils/common/StringTokenizer.h>
#include <utils/geom/Position.h>
#include <utils/geom/GeomHelper.h>
-#include <iostream>
+#include "NBNode.h"
+#include "NBHelpers.h"
#ifdef CHECK_MEMORY_LEAKS
#include <foreign/nvwa/debug_new.h>
@@ -50,16 +53,6 @@
// method definitions
// ===========================================================================
SUMOReal
-NBHelpers::angle(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2) {
- SUMOReal angle = RAD2DEG(atan2(x1 - x2, y1 - y2));
- if (angle < 0) {
- angle = 360 + angle;
- }
- return angle;
-}
-
-
-SUMOReal
NBHelpers::relAngle(SUMOReal angle1, SUMOReal angle2) {
angle2 -= angle1;
if (angle2 > 180) {
@@ -100,5 +93,22 @@ NBHelpers::distance(NBNode* node1, NBNode* node2) {
}
+void
+NBHelpers::loadEdgesFromFile(const std::string& file, std::set<std::string>& into) {
+ std::ifstream strm(file.c_str());
+ if (!strm.good()) {
+ throw ProcessError("Could not load names of edges too keep from '" + file + "'.");
+ }
+ while (strm.good()) {
+ std::string name;
+ strm >> name;
+ into.insert(name);
+ // maybe we're loading an edge-selection
+ if (StringUtils::startsWith(name, "edge:")) {
+ into.insert(name.substr(5));
+ }
+ }
+}
+
/****************************************************************************/
diff --git a/src/netbuild/NBHelpers.h b/src/netbuild/NBHelpers.h
index c3337e8..513c002 100644
--- a/src/netbuild/NBHelpers.h
+++ b/src/netbuild/NBHelpers.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBHelpers.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NBHelpers.h 19221 2015-10-29 13:42:25Z behrisch $
///
// Some mathematical helper methods
/****************************************************************************/
@@ -34,6 +34,7 @@
#endif
#include <string>
+#include <set>
// ===========================================================================
@@ -52,10 +53,6 @@ class Position;
*/
class NBHelpers {
public:
- /** computes the angle of the straight which is described by the two
- coordinates */
- static SUMOReal angle(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2);
-
/** computes the relative angle between the two angles */
static SUMOReal relAngle(SUMOReal angle1, SUMOReal angle2);
@@ -68,6 +65,9 @@ public:
/** returns the distance between both nodes */
static SUMOReal distance(NBNode* node1, NBNode* node2);
+ /// @brief Add edge ids defined in file (either ID or edge::ID per line) into the given set
+ static void loadEdgesFromFile(const std::string& file, std::set<std::string>& into);
+
};
diff --git a/src/netbuild/NBLinkPossibilityMatrix.h b/src/netbuild/NBLinkPossibilityMatrix.h
index b867b28..c6665f9 100644
--- a/src/netbuild/NBLinkPossibilityMatrix.h
+++ b/src/netbuild/NBLinkPossibilityMatrix.h
@@ -4,7 +4,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NBLinkPossibilityMatrix.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NBLinkPossibilityMatrix.h 19395 2015-11-20 12:22:20Z namdre $
///
// A matric to describe whether two links are foes to each other
/****************************************************************************/
@@ -44,7 +44,7 @@
* Storing the information which links may be used simultanously, this matrix
* is simply made by a vector of bitsets
*/
-typedef std::vector<std::bitset<64> > NBLinkPossibilityMatrix;
+typedef std::vector<std::bitset<SUMO_MAX_CONNECTIONS> > NBLinkPossibilityMatrix;
#endif
diff --git a/src/netbuild/NBLoadedSUMOTLDef.cpp b/src/netbuild/NBLoadedSUMOTLDef.cpp
index 11214f2..ae711f5 100644
--- a/src/netbuild/NBLoadedSUMOTLDef.cpp
+++ b/src/netbuild/NBLoadedSUMOTLDef.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Mar 2011
-/// @version $Id: NBLoadedSUMOTLDef.cpp 18495 2015-06-17 23:31:46Z namdre $
+/// @version $Id: NBLoadedSUMOTLDef.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A complete traffic light logic loaded from a sumo-net. (opted to reimplement
// since NBLoadedTLDef is quite vissim specific)
@@ -67,6 +67,7 @@ NBLoadedSUMOTLDef::NBLoadedSUMOTLDef(NBTrafficLightDefinition* def, NBTrafficLig
assert(def->getOffset() == logic->getOffset());
assert(def->getType() == logic->getType());
myControlledLinks = def->getControlledLinks();
+ myControlledNodes = def->getNodes();
}
@@ -90,9 +91,8 @@ void
NBLoadedSUMOTLDef::addConnection(NBEdge* from, NBEdge* to, int fromLane, int toLane, int linkIndex) {
assert(myTLLogic->getNumLinks() > 0); // logic should be loaded by now
if (linkIndex >= (int)myTLLogic->getNumLinks()) {
- WRITE_ERROR("Invalid linkIndex " + toString(linkIndex) + " for traffic light '" + getID() +
- "' with " + toString(myTLLogic->getNumLinks()) + " links.");
- return;
+ throw ProcessError("Invalid linkIndex " + toString(linkIndex) + " for traffic light '" + getID() +
+ "' with " + toString(myTLLogic->getNumLinks()) + " links.");
}
NBConnection conn(from, fromLane, to, toLane, linkIndex);
// avoid duplicates
@@ -126,7 +126,10 @@ NBLoadedSUMOTLDef::setTLControllingInformation() const {
// edges the links are starting at, respectively
for (NBConnectionVector::const_iterator it = myControlledLinks.begin(); it != myControlledLinks.end(); it++) {
const NBConnection& c = *it;
- assert(c.getTLIndex() < (int)myTLLogic->getNumLinks());
+ if (c.getTLIndex() >= (int)myTLLogic->getNumLinks()) {
+ throw ProcessError("Invalid linkIndex " + toString(c.getTLIndex()) + " for traffic light '" + getID() +
+ "' with " + toString(myTLLogic->getNumLinks()) + " links.");
+ }
NBEdge* edge = c.getFrom();
edge->setControllingTLInformation(c, getID());
}
@@ -266,7 +269,7 @@ NBLoadedSUMOTLDef::collectEdges() {
} else {
myEdgesWithin.push_back(edge);
(*j)->setIsInnerEdge();
- j = myIncomingEdges.erase(j);
+ ++j; //j = myIncomingEdges.erase(j);
continue;
}
}
@@ -324,29 +327,43 @@ NBLoadedSUMOTLDef::patchIfCrossingsAdded() {
}
const int newCrossings = (int)crossings.size() - oldCrossings;
if (newCrossings > 0) {
- // collect edges
- assert(size > 0);
- EdgeVector fromEdges(size, 0);
- EdgeVector toEdges(size, 0);
- for (NBConnectionVector::const_iterator it = myControlledLinks.begin(); it != myControlledLinks.end(); it++) {
- const NBConnection& c = *it;
- if (c.getTLIndex() != NBConnection::InvalidTlIndex) {
- assert(c.getTLIndex() < (int)size);
- fromEdges[c.getTLIndex()] = c.getFrom();
- toEdges[c.getTLIndex()] = c.getTo();
- }
- }
- const std::string crossingDefaultState(newCrossings, 'r');
-
- // rebuild the logic (see NBOwnTLDef.cpp::myCompute)
const std::vector<NBTrafficLightLogic::PhaseDefinition> phases = myTLLogic->getPhases();
- NBTrafficLightLogic* newLogic = new NBTrafficLightLogic(getID(), getProgramID(), 0, myOffset, myType);
- //std::cout << "patchIfCrossingsAdded for " << getID() << " numPhases=" << phases.size() << "\n";
- for (std::vector<NBTrafficLightLogic::PhaseDefinition>::const_iterator it = phases.begin(); it != phases.end(); it++) {
- NBOwnTLDef::addPedestrianPhases(newLogic, it->duration, it->state + crossingDefaultState, crossings, fromEdges, toEdges);
+ if (phases.size() > 0) {
+ if (phases.front().state.size() == noLinksAll - newCrossings) {
+ // patch states for the newly added crossings
+
+ // collect edges
+ assert(size > 0);
+ EdgeVector fromEdges(size, 0);
+ EdgeVector toEdges(size, 0);
+ for (NBConnectionVector::const_iterator it = myControlledLinks.begin(); it != myControlledLinks.end(); it++) {
+ const NBConnection& c = *it;
+ if (c.getTLIndex() != NBConnection::InvalidTlIndex) {
+ if (c.getTLIndex() >= (int)size) {
+ throw ProcessError("Invalid linkIndex " + toString(c.getTLIndex()) + " for traffic light '" + getID() +
+ "' with " + toString(size) + " links.");
+ }
+
+
+ fromEdges[c.getTLIndex()] = c.getFrom();
+ toEdges[c.getTLIndex()] = c.getTo();
+ }
+ }
+ const std::string crossingDefaultState(newCrossings, 'r');
+
+ // rebuild the logic (see NBOwnTLDef.cpp::myCompute)
+ const std::vector<NBTrafficLightLogic::PhaseDefinition> phases = myTLLogic->getPhases();
+ NBTrafficLightLogic* newLogic = new NBTrafficLightLogic(getID(), getProgramID(), 0, myOffset, myType);
+ //std::cout << "patchIfCrossingsAdded for " << getID() << " numPhases=" << phases.size() << "\n";
+ for (std::vector<NBTrafficLightLogic::PhaseDefinition>::const_iterator it = phases.begin(); it != phases.end(); it++) {
+ NBOwnTLDef::addPedestrianPhases(newLogic, it->duration, it->state + crossingDefaultState, crossings, fromEdges, toEdges);
+ }
+ delete myTLLogic;
+ myTLLogic = newLogic;
+ } else if (phases.front().state.size() != noLinksAll) {
+ WRITE_WARNING("Could not patch tlLogic " + getID() + "for new crossings");
+ }
}
- delete myTLLogic;
- myTLLogic = newLogic;
}
}
diff --git a/src/netbuild/NBNetBuilder.cpp b/src/netbuild/NBNetBuilder.cpp
index ef7ea87..f7f3f07 100644
--- a/src/netbuild/NBNetBuilder.cpp
+++ b/src/netbuild/NBNetBuilder.cpp
@@ -7,7 +7,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date 20 Nov 2001
-/// @version $Id: NBNetBuilder.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBNetBuilder.cpp 19403 2015-11-21 22:35:45Z namdre $
///
// Instance responsible for building networks
/****************************************************************************/
@@ -89,7 +89,8 @@ NBNetBuilder::compute(OptionsCont& oc,
GeoConvHelper& geoConvHelper = GeoConvHelper::getProcessing();
- if (oc.getBool("lefthand")) {
+ const bool lefthand = oc.getBool("lefthand");
+ if (lefthand) {
mirrorX();
};
@@ -113,21 +114,16 @@ NBNetBuilder::compute(OptionsCont& oc,
PROGRESS_DONE_MESSAGE();
}
}
- // join junctions (may create new "geometry"-nodes so it needs to come before removing these
- if (oc.exists("junctions.join-exclude") && oc.isSet("junctions.join-exclude")) {
- myNodeCont.addJoinExclusion(oc.getStringVector("junctions.join-exclude"));
- }
- unsigned int numJoined = myNodeCont.joinLoadedClusters(myDistrictCont, myEdgeCont, myTLLCont);
- if (oc.getBool("junctions.join")) {
- PROGRESS_BEGIN_MESSAGE("Joining junction clusters");
+ if (oc.getBool("junctions.join") || (oc.exists("ramps.guess") && oc.getBool("ramps.guess"))) {
// preliminary geometry computations to determine the length of edges
// This depends on turning directions and sorting of edge list
// in case junctions are joined geometry computations have to be repeated
+ // preliminary roundabout computations to avoid damaging roundabouts via junctions.join or ramps.guess
NBTurningDirectionsComputer::computeTurnDirections(myNodeCont, false);
NBNodesEdgesSorter::sortNodesEdges(myNodeCont);
+ myEdgeCont.computeLaneShapes();
myNodeCont.computeNodeShapes();
myEdgeCont.computeEdgeShapes();
- // preliminary roundabout computations to avoid destroying roundabouts
if (oc.getBool("roundabouts.guess")) {
myEdgeCont.guessRoundabouts();
}
@@ -140,10 +136,20 @@ NBNetBuilder::compute(OptionsCont& oc,
}
myNodeCont.addJoinExclusion(nodeIDs);
}
+ }
+ // join junctions (may create new "geometry"-nodes so it needs to come before removing these
+ if (oc.exists("junctions.join-exclude") && oc.isSet("junctions.join-exclude")) {
+ myNodeCont.addJoinExclusion(oc.getStringVector("junctions.join-exclude"));
+ }
+ unsigned int numJoined = myNodeCont.joinLoadedClusters(myDistrictCont, myEdgeCont, myTLLCont);
+ if (oc.getBool("junctions.join")) {
+ PROGRESS_BEGIN_MESSAGE("Joining junction clusters");
numJoined += myNodeCont.joinJunctions(oc.getFloat("junctions.join-dist"), myDistrictCont, myEdgeCont, myTLLCont);
+ PROGRESS_DONE_MESSAGE();
+ }
+ if (oc.getBool("junctions.join") || (oc.exists("ramps.guess") && oc.getBool("ramps.guess"))) {
// reset geometry to avoid influencing subsequent steps (ramps.guess)
myEdgeCont.computeLaneShapes();
- PROGRESS_DONE_MESSAGE();
}
if (numJoined > 0) {
// bit of a misnomer since we're already done
@@ -173,9 +179,9 @@ NBNetBuilder::compute(OptionsCont& oc,
geoConvHelper.setConvBoundary(boundary);
if (!oc.getBool("offset.disable-normalization") && oc.isDefault("offset.x") && oc.isDefault("offset.y")) {
- moveToOrigin(geoConvHelper);
+ moveToOrigin(geoConvHelper, lefthand);
}
- geoConvHelper.computeFinal(); // information needed for location element fixed at this point
+ geoConvHelper.computeFinal(lefthand); // information needed for location element fixed at this point
if (oc.exists("geometry.min-dist") && oc.isSet("geometry.min-dist")) {
PROGRESS_BEGIN_MESSAGE("Reducing geometries");
@@ -184,7 +190,7 @@ NBNetBuilder::compute(OptionsCont& oc,
}
// @note: removing geometry can create similar edges so joinSimilarEdges must come afterwards
// @note: likewise splitting can destroy similarities so joinSimilarEdges must come before
- if (removeElements) {
+ if (removeElements && oc.getBool("edges.join")) {
PROGRESS_BEGIN_MESSAGE("Joining similar edges");
myJoinedEdges.init(myEdgeCont);
myNodeCont.joinSimilarEdges(myDistrictCont, myEdgeCont, myTLLCont);
@@ -223,7 +229,7 @@ NBNetBuilder::compute(OptionsCont& oc,
//
if (oc.exists("geometry.max-angle")) {
myEdgeCont.checkGeometries(
- oc.getFloat("geometry.max-angle"),
+ DEG2RAD(oc.getFloat("geometry.max-angle")),
oc.getFloat("geometry.min-radius"),
oc.getBool("geometry.min-radius.fix"));
}
@@ -303,7 +309,10 @@ NBNetBuilder::compute(OptionsCont& oc,
//
if (oc.getBool("roundabouts.guess")) {
PROGRESS_BEGIN_MESSAGE("Guessing and setting roundabouts");
- myEdgeCont.guessRoundabouts();
+ const int numGuessed = myEdgeCont.guessRoundabouts();
+ if (numGuessed > 0) {
+ WRITE_MESSAGE(" Guessed " + toString(numGuessed) + " roundabout(s).");
+ }
PROGRESS_DONE_MESSAGE();
}
myEdgeCont.markRoundabouts();
@@ -329,7 +338,7 @@ NBNetBuilder::compute(OptionsCont& oc,
myEdgeCont.recheckLanes();
PROGRESS_DONE_MESSAGE();
- if (haveCrossings) {
+ if (haveCrossings && !oc.getBool("no-internal-links")) {
for (std::map<std::string, NBNode*>::const_iterator i = myNodeCont.begin(); i != myNodeCont.end(); ++i) {
i->second->buildCrossingsAndWalkingAreas();
}
@@ -343,7 +352,7 @@ NBNetBuilder::compute(OptionsCont& oc,
for (std::vector<std::string>::const_iterator i = tlControlledNodes.begin(); i != tlControlledNodes.end(); ++i) {
NBNode* node = myNodeCont.retrieve(*i);
if (node == 0) {
- WRITE_WARNING("Building a tl-logic for node '" + *i + "' is not possible." + "\n The node '" + *i + "' is not known.");
+ WRITE_WARNING("Building a tl-logic for junction '" + *i + "' is not possible." + "\n The junction '" + *i + "' is not known.");
} else {
myNodeCont.setAsTLControlled(node, myTLLCont, type);
}
@@ -396,7 +405,7 @@ NBNetBuilder::compute(OptionsCont& oc,
}
PROGRESS_DONE_MESSAGE();
}
- if (oc.getBool("lefthand")) {
+ if (lefthand) {
mirrorX();
};
@@ -419,11 +428,11 @@ NBNetBuilder::compute(OptionsCont& oc,
void
-NBNetBuilder::moveToOrigin(GeoConvHelper& geoConvHelper) {
+NBNetBuilder::moveToOrigin(GeoConvHelper& geoConvHelper, bool lefthand) {
PROGRESS_BEGIN_MESSAGE("Moving network to origin");
Boundary boundary = geoConvHelper.getConvBoundary();
const SUMOReal x = -boundary.xmin();
- const SUMOReal y = -boundary.ymin();
+ const SUMOReal y = -(lefthand ? boundary.ymax() : boundary.ymin());
//if (lefthand) {
// y = boundary.ymax();
//}
@@ -495,7 +504,7 @@ NBNetBuilder::transformCoordinates(PositionVector& from, bool includeInBoundary,
while (length > maxLength) {
length -= maxLength;
steps++;
- from.insertAt(i + inserted + 1, start + (step * steps));
+ from.insert(from.begin() + i + inserted + 1, start + (step * steps));
inserted++;
}
}
diff --git a/src/netbuild/NBNetBuilder.h b/src/netbuild/NBNetBuilder.h
index bda7a69..11fe4a7 100644
--- a/src/netbuild/NBNetBuilder.h
+++ b/src/netbuild/NBNetBuilder.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Fri, 29.04.2005
-/// @version $Id: NBNetBuilder.h 18639 2015-08-17 13:59:19Z namdre $
+/// @version $Id: NBNetBuilder.h 19403 2015-11-21 22:35:45Z namdre $
///
// Instance responsible for building networks
/****************************************************************************/
@@ -253,7 +253,7 @@ protected:
private:
/// @brief shift network so its lower left corner is at 0,0
- void moveToOrigin(GeoConvHelper& geoConvHelper);
+ void moveToOrigin(GeoConvHelper& geoConvHelper, bool lefthand);
/// @brief mirror the network along the X-axis
void mirrorX();
diff --git a/src/netbuild/NBNode.cpp b/src/netbuild/NBNode.cpp
index ce4af8f..9c66ec4 100644
--- a/src/netbuild/NBNode.cpp
+++ b/src/netbuild/NBNode.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBNode.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBNode.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The representation of a single node
/****************************************************************************/
@@ -43,7 +43,6 @@
#include <utils/common/UtilExceptions.h>
#include <utils/common/StringUtils.h>
#include <utils/options/OptionsCont.h>
-#include <utils/geom/Line.h>
#include <utils/geom/GeomHelper.h>
#include <utils/geom/bezier.h>
#include <utils/common/MsgHandler.h>
@@ -75,20 +74,19 @@
// create intermediate walking areas if either of the following thresholds is exceeded
#define SPLIT_CROSSING_WIDTH_THRESHOLD 1.5 // meters
#define SPLIT_CROSSING_ANGLE_THRESHOLD 5 // degrees
-// do not build uncontrolled crossings across edges with a speed above the threshold
-#define UNCONTROLLED_CROSSING_SPEED_THRESHOLD 13.89 // meters/second
+
+// minimum length for a weaving section at a combined on-off ramp
+#define MIN_WEAVE_LENGTH 20.0
#define DEBUGID "C"
// ===========================================================================
// static members
// ===========================================================================
-const int NBNode::MAX_CONNECTIONS(64);
const int NBNode::FORWARD(1);
const int NBNode::BACKWARD(-1);
const SUMOReal NBNode::DEFAULT_CROSSING_WIDTH(4);
const SUMOReal NBNode::UNSPECIFIED_RADIUS = -1;
-const SUMOReal NBNode::DEFAULT_RADIUS = 1.5;
// ===========================================================================
// method definitions
@@ -236,7 +234,7 @@ NBNode::NBNode(const std::string& id, const Position& position,
myDistrict(0),
myHaveCustomPoly(false),
myRequest(0),
- myRadius(UNSPECIFIED_RADIUS),
+ myRadius(OptionsCont::getOptions().isDefault("default.junctions.radius") ? UNSPECIFIED_RADIUS : OptionsCont::getOptions().getFloat("default.junctions.radius")),
myKeepClear(OptionsCont::getOptions().getBool("default.junctions.keep-clear")),
myDiscardAllCrossings(false),
myCrossingsLoadedFromSumoNet(0)
@@ -250,7 +248,7 @@ NBNode::NBNode(const std::string& id, const Position& position, NBDistrict* dist
myDistrict(district),
myHaveCustomPoly(false),
myRequest(0),
- myRadius(UNSPECIFIED_RADIUS),
+ myRadius(OptionsCont::getOptions().isDefault("default.junctions.radius") ? UNSPECIFIED_RADIUS : OptionsCont::getOptions().getFloat("default.junctions.radius")),
myKeepClear(OptionsCont::getOptions().getBool("default.junctions.keep-clear")),
myDiscardAllCrossings(false),
myCrossingsLoadedFromSumoNet(0)
@@ -268,7 +266,7 @@ NBNode::reinit(const Position& position, SumoXMLNodeType type,
myPosition = position;
// patch type
myType = type;
- if (myType != NODETYPE_TRAFFIC_LIGHT && myType != NODETYPE_TRAFFIC_LIGHT_NOJUNCTION) {
+ if (!isTrafficLight(myType)) {
removeTrafficLights();
}
if (updateEdgeGeometries) {
@@ -299,6 +297,13 @@ void
NBNode::mirrorX() {
myPosition.mul(1, -1);
myPoly.mirrorX();
+ // mirror pre-computed geometty of crossings and walkingareas
+ for (std::vector<Crossing>::iterator it = myCrossings.begin(); it != myCrossings.end(); ++it) {
+ (*it).shape.mirrorX();
+ }
+ for (std::vector<WalkingArea>::iterator it_wa = myWalkingAreas.begin(); it_wa != myWalkingAreas.end(); ++it_wa) {
+ (*it_wa).shape.mirrorX();
+ }
}
@@ -306,7 +311,8 @@ NBNode::mirrorX() {
void
NBNode::addTrafficLight(NBTrafficLightDefinition* tlDef) {
myTrafficLights.insert(tlDef);
- if (myType != NODETYPE_TRAFFIC_LIGHT_NOJUNCTION && myType != NODETYPE_RAIL_SIGNAL) {
+ // rail signals receive a temporary traffic light in order to set connection tl-linkIndex
+ if (!isTrafficLight(myType) && myType != NODETYPE_RAIL_SIGNAL) {
myType = NODETYPE_TRAFFIC_LIGHT;
}
}
@@ -475,91 +481,68 @@ NBNode::computeSmoothShape(const PositionVector& begShape,
const Position end = endShape.front();
PositionVector ret;
PositionVector init;
- unsigned int numInitialPoints = 0;
bool noSpline = false;
- Line begL = begShape.getEndLine();
- Line endL = endShape.getBegLine();
- if (beg.distanceTo(end) <= POSITION_EPS || begL.length() < POSITION_EPS || endL.length() < POSITION_EPS) {
+ if (beg.distanceTo(end) < POSITION_EPS || beg.distanceTo(begShape[-2]) < POSITION_EPS || end.distanceTo(endShape[1]) < POSITION_EPS) {
noSpline = true;
} else {
+ init.push_back(beg);
if (isTurnaround) {
// turnarounds:
// - end of incoming lane
// - position between incoming/outgoing end/begin shifted by the distance orthogonally
// - begin of outgoing lane
- numInitialPoints = 3;
- init.push_back(beg);
- Line straightConn(begShape[-1], endShape[0]);
- Position straightCenter = straightConn.getPositionAtDistance((SUMOReal) straightConn.length() / (SUMOReal) 2.);
- Position center = straightCenter;//.add(straightCenter);
- Line cross(straightConn);
- cross.sub(cross.p1().x(), cross.p1().y());
- cross.rotateAtP1(M_PI / 2);
- center.sub(cross.p2());
+ Position center = PositionVector::positionAtOffset(beg, end, beg.distanceTo(end) / (SUMOReal) 2.);
+ center.sub(beg.y() - end.y(), end.x() - beg.x());
init.push_back(center);
- init.push_back(end);
} else {
- const SUMOReal angle = fabs(begL.atan2Angle() - endL.atan2Angle());
- if (angle < M_PI / 4. || angle > 7. / 4.*M_PI) {
+ const SUMOReal angle = fabs(GeomHelper::angleDiff(begShape.angleAt2D(-2), endShape.angleAt2D(0)));
+ PositionVector endShapeBegLine(endShape[0], endShape[1]);
+ PositionVector begShapeEndLineRev(begShape[-1], begShape[-2]);
+ endShapeBegLine.extrapolate(100, true);
+ begShapeEndLineRev.extrapolate(100, true);
+ if (angle < M_PI / 4.) {
// very low angle: almost straight
- numInitialPoints = 4;
- init.push_back(beg);
- begL.extrapolateSecondBy(100);
- endL.extrapolateFirstBy(100);
- SUMOReal distance = beg.distanceTo(end);
- if (distance > 10) {
- {
- SUMOReal off1 = begShape.getEndLine().length() + extrapolateBeg;
- off1 = MIN2(off1, (SUMOReal)(begShape.getEndLine().length() + distance / 2.));
- Position tmp = begL.getPositionAtDistance(off1);
- init.push_back(tmp);
- }
- {
- SUMOReal off1 = (SUMOReal) 100. - extrapolateEnd;
- off1 = MAX2(off1, (SUMOReal)(100. - distance / 2.));
- Position tmp = endL.getPositionAtDistance(off1);
- init.push_back(tmp);
- }
+ const SUMOReal halfDistance = beg.distanceTo(end) / 2.;
+ if (halfDistance > 5) {
+ const SUMOReal endLength = begShape[-2].distanceTo(begShape[-1]);
+ const SUMOReal off1 = endLength + MIN2(extrapolateBeg, halfDistance);
+ init.push_back(PositionVector::positionAtOffset(begShapeEndLineRev[1], begShapeEndLineRev[0], off1));
+ const SUMOReal off2 = 100. - MIN2(extrapolateEnd, halfDistance);
+ init.push_back(PositionVector::positionAtOffset(endShapeBegLine[0], endShapeBegLine[1], off2));
} else {
noSpline = true;
}
- init.push_back(end);
} else {
// turning
// - end of incoming lane
// - intersection of the extrapolated lanes
// - begin of outgoing lane
// attention: if there is no intersection, use a straight line
- numInitialPoints = 3;
- init.push_back(beg);
- begL.extrapolateSecondBy(100);
- endL.extrapolateFirstBy(100);
- if (!begL.intersects(endL)) {
+ init.push_back(endShapeBegLine.intersectionPosition2D(begShapeEndLineRev));
+ if (init[-1] == Position::INVALID) {
noSpline = true;
- } else {
- init.push_back(begL.intersectsAt(endL));
}
- init.push_back(end);
}
}
+ init.push_back(end);
}
//
if (noSpline) {
- ret.push_back(begShape.back());
- ret.push_back(endShape.front());
+ ret.push_back(beg);
+ ret.push_back(end);
} else {
- SUMOReal* def = new SUMOReal[1 + numInitialPoints * 3];
- for (int i = 0; i < (int) init.size(); ++i) {
+ SUMOReal* def = new SUMOReal[1 + (int)init.size() * 3];
+ for (int i = 0; i < (int)init.size(); ++i) {
// starts at index 1
def[i * 3 + 1] = init[i].x();
def[i * 3 + 2] = 0;
def[i * 3 + 3] = init[i].y();
}
SUMOReal* ret_buf = new SUMOReal[numPoints * 3 + 1];
- bezier(numInitialPoints, def, numPoints, ret_buf);
+ bezier((int)init.size(), def, numPoints, ret_buf);
delete[] def;
Position prev;
- for (int i = 0; i < (int) numPoints; i++) {
+ for (int i = 0; i < (int)numPoints; i++) {
Position current(ret_buf[i * 3 + 1], ret_buf[i * 3 + 3], myPosition.z());
if (prev != current && !ISNAN(current.x()) && !ISNAN(current.y())) {
ret.push_back(current);
@@ -649,10 +632,10 @@ NBNode::needsCont(const NBEdge* fromE, const NBEdge* otherFromE,
}
if (c.tlID != "" && !bothLeft) {
assert(myTrafficLights.size() > 0);
- return (*myTrafficLights.begin())->needsCont(fromE, toE, otherFromE, otherToE);
+ return (c.contPos != NBEdge::UNSPECIFIED_CONTPOS) || (*myTrafficLights.begin())->needsCont(fromE, toE, otherFromE, otherToE);
}
if (fromE->getJunctionPriority(this) > 0 && otherFromE->getJunctionPriority(this) > 0) {
- return mustBrake(fromE, toE, c.fromLane, false);
+ return mustBrake(fromE, toE, c.fromLane, c.toLane, false);
}
return false;
}
@@ -685,7 +668,7 @@ NBNode::computeLogic(const NBEdgeCont& ec, OptionsCont& oc) {
myRequest = new NBRequest(ec, this, myAllEdges, myIncomingEdges, myOutgoingEdges, myBlockedConnections);
// check whether it is not too large
unsigned int numConnections = numNormalConnections();
- if (numConnections >= MAX_CONNECTIONS) {
+ if (numConnections >= SUMO_MAX_CONNECTIONS) {
// yep -> make it untcontrolled, warn
delete myRequest;
myRequest = 0;
@@ -695,7 +678,7 @@ NBNode::computeLogic(const NBEdgeCont& ec, OptionsCont& oc) {
myType = NODETYPE_NOJUNCTION;
}
WRITE_WARNING("Junction '" + getID() + "' is too complicated (" + toString(numConnections)
- + " connections, max 64); will be set to " + toString(myType));
+ + " connections, max " + toString(SUMO_MAX_CONNECTIONS) + "); will be set to " + toString(myType));
} else if (numConnections == 0) {
delete myRequest;
myRequest = 0;
@@ -737,11 +720,11 @@ NBNode::computeNodeShape(SUMOReal mismatchThreshold) {
if (mismatchThreshold >= 0
&& !tmp.around(myPosition)
&& tmp.distance(myPosition) > mismatchThreshold) {
- WRITE_WARNING("Junction shape for '" + myID + "' has distance " + toString(tmp.distance(myPosition)) + " to its given position");
+ WRITE_WARNING("Shape for junction '" + myID + "' has distance " + toString(tmp.distance(myPosition)) + " to its given position");
}
}
} catch (InvalidArgument&) {
- WRITE_WARNING("For node '" + getID() + "': could not compute shape.");
+ WRITE_WARNING("For junction '" + getID() + "': could not compute shape.");
// make sure our shape is not empty because our XML schema forbids empty attributes
myPoly.clear();
myPoly.push_back(myPosition);
@@ -790,7 +773,8 @@ NBNode::computeLanes2Lanes() {
&& in1 != out
&& in2 != out
&& in1->isConnectedTo(out)
- && in2->isConnectedTo(out)) {
+ && in2->isConnectedTo(out)
+ && isLongEnough(out, MIN_WEAVE_LENGTH)) {
// for internal: check which one is the rightmost
SUMOReal a1 = in1->getAngleAtNode(this);
SUMOReal a2 = in2->getAngleAtNode(this);
@@ -831,6 +815,28 @@ NBNode::computeLanes2Lanes() {
return;
}
}
+ // special case d):
+ // one in, one out, the outgoing has one lane less and node has type 'zipper'
+ if (myIncomingEdges.size() == 1 && myOutgoingEdges.size() == 1 && myType == NODETYPE_ZIPPER) {
+ NBEdge* in = myIncomingEdges[0];
+ NBEdge* out = myOutgoingEdges[0];
+ // check if it's not the turnaround
+ if (in->getTurnDestination() == out) {
+ // will be added later or not...
+ return;
+ }
+ const int inOffset = MAX2(0, in->getFirstNonPedestrianLaneIndex(FORWARD, true));
+ const int outOffset = MAX2(0, out->getFirstNonPedestrianLaneIndex(FORWARD, true));
+ if (in->getStep() <= NBEdge::LANES2EDGES
+ && in->getNumLanes() - inOffset == out->getNumLanes() - outOffset + 1
+ && in != out
+ && in->isConnectedTo(out)) {
+ for (int i = inOffset; i < (int) in->getNumLanes(); ++i) {
+ in->setConnection(i, out, MIN2(outOffset + i, ((int)out->getNumLanes() - 1)), NBEdge::L2L_COMPUTED, true);
+ }
+ return;
+ }
+ }
// go through this node's outgoing edges
// for every outgoing edge, compute the distribution of the node's
@@ -847,7 +853,48 @@ NBNode::computeLanes2Lanes() {
Bresenham::compute(÷r, numApproaching, divider.numAvailableLanes());
}
delete approaching;
+
+ // ensure that all modes have a connection if possible
+ for (EdgeVector::const_iterator i = myIncomingEdges.begin(); i != myIncomingEdges.end(); i++) {
+ NBEdge* incoming = *i;
+ if (incoming->getConnectionLanes(currentOutgoing).size() > 0) {
+ // no connections are needed for pedestrians during this step
+ // no satisfaction is possible if the outgoing edge disallows
+ SVCPermissions unsatisfied = incoming->getPermissions() & currentOutgoing->getPermissions() & ~SVC_PEDESTRIAN;
+ //std::cout << "initial unsatisfied modes from edge=" << incoming->getID() << " toEdge=" << currentOutgoing->getID() << " deadModes=" << getVehicleClassNames(unsatisfied) << "\n";
+ const std::vector<NBEdge::Connection>& elv = incoming->getConnections();
+ for (std::vector<NBEdge::Connection>::const_iterator k = elv.begin(); k != elv.end(); ++k) {
+ const NBEdge::Connection& c = *k;
+ if (c.toEdge == currentOutgoing) {
+ const SVCPermissions satisfied = (incoming->getPermissions(c.fromLane) & c.toEdge->getPermissions(c.toLane));
+ //std::cout << " from=" << c.fromLane << " to=" << c.toEdge->getID() << "_" << c.toLane << " satisfied=" << getVehicleClassNames(satisfied) << "\n";
+ unsatisfied &= ~satisfied;
+ }
+ }
+ if (unsatisfied != 0) {
+ //std::cout << " unsatisfied modes from edge=" << incoming->getID() << " toEdge=" << currentOutgoing->getID() << " deadModes=" << getVehicleClassNames(unsatisfied) << "\n";
+ int fromLane = 0;
+ while (unsatisfied != 0 && fromLane < (int)incoming->getNumLanes()) {
+ if ((incoming->getPermissions(fromLane) & unsatisfied) != 0) {
+ for (int toLane = 0; toLane < (int)currentOutgoing->getNumLanes(); ++toLane) {
+ const SVCPermissions satisfied = incoming->getPermissions(fromLane) & currentOutgoing->getPermissions(toLane) & unsatisfied;
+ if (satisfied != 0) {
+ incoming->setConnection((unsigned int)fromLane, currentOutgoing, toLane, NBEdge::L2L_COMPUTED);
+ //std::cout << " new connection from=" << fromLane << " to=" << currentOutgoing->getID() << "_" << toLane << " satisfies=" << getVehicleClassNames(satisfied) << "\n";
+ unsatisfied &= ~satisfied;
+ }
+ }
+ }
+ fromLane++;
+ }
+ //if (unsatisfied != 0) {
+ // std::cout << " still unsatisfied modes from edge=" << incoming->getID() << " toEdge=" << currentOutgoing->getID() << " deadModes=" << getVehicleClassNames(unsatisfied) << "\n";
+ //}
+ }
+ }
+ }
}
+
// ... but we may have the case that there are no outgoing edges
// In this case, we have to mark the incoming edges as being in state
// LANE2LANE( not RECHECK) by hand
@@ -867,6 +914,21 @@ NBNode::computeLanes2Lanes() {
//}
}
+bool
+NBNode::isLongEnough(NBEdge* out, SUMOReal minLength) {
+ SUMOReal seen = out->getLoadedLength();
+ while (seen < minLength) {
+ // advance along trivial continuations
+ if (out->getToNode()->getOutgoingEdges().size() != 1
+ || out->getToNode()->getIncomingEdges().size() != 1) {
+ return false;
+ } else {
+ out = out->getToNode()->getOutgoingEdges()[0];
+ seen += out->getLoadedLength();
+ }
+ }
+ return true;
+}
EdgeVector*
NBNode::getEdgesThatApproach(NBEdge* currentOutgoing) {
@@ -1178,7 +1240,7 @@ NBNode::invalidateOutgoingConnections() {
bool
-NBNode::mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, bool includePedCrossings) const {
+NBNode::mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, int toLane, bool includePedCrossings) const {
// unregulated->does not need to brake
if (myRequest == 0) {
return false;
@@ -1188,7 +1250,7 @@ NBNode::mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane
return true;
}
// check whether any other connection on this node prohibits this connection
- return myRequest->mustBrake(from, to, fromLane, includePedCrossings);
+ return myRequest->mustBrake(from, to, fromLane, toLane, includePedCrossings);
}
bool
@@ -1426,7 +1488,7 @@ NBNode::getDirection(const NBEdge* const incoming, const NBEdge* const outgoing,
LinkState
-NBNode::getLinkState(const NBEdge* incoming, NBEdge* outgoing, int fromlane,
+NBNode::getLinkState(const NBEdge* incoming, NBEdge* outgoing, int fromlane, int toLane,
bool mayDefinitelyPass, const std::string& tlID) const {
if (tlID != "") {
return LINKSTATE_TL_OFF_BLINKING;
@@ -1440,7 +1502,10 @@ NBNode::getLinkState(const NBEdge* incoming, NBEdge* outgoing, int fromlane,
if (myType == NODETYPE_ALLWAY_STOP) {
return LINKSTATE_ALLWAY_STOP; // all drive, first one to arrive may drive first
}
- if ((!incoming->isInnerEdge() && mustBrake(incoming, outgoing, fromlane, true)) && !mayDefinitelyPass) {
+ if (myType == NODETYPE_ZIPPER && mustBrake(incoming, outgoing, fromlane, toLane, false)) {
+ return LINKSTATE_ZIPPER;
+ }
+ if ((!incoming->isInnerEdge() && mustBrake(incoming, outgoing, fromlane, toLane, true)) && !mayDefinitelyPass) {
return myType == NODETYPE_PRIORITY_STOP ? LINKSTATE_STOP : LINKSTATE_MINOR; // minor road
}
// traffic lights are not regarded here
@@ -1718,7 +1783,7 @@ NBNode::checkCrossing(EdgeVector candidates) {
}
return 0;
}
- if (!isTLControlled() && edge->getSpeed() > UNCONTROLLED_CROSSING_SPEED_THRESHOLD) {
+ if (!isTLControlled() && edge->getSpeed() > OptionsCont::getOptions().getFloat("crossings.guess.speed-threshold")) {
if (gDebugFlag1) {
std::cout << "no crossing added (uncontrolled, edge with speed=" << edge->getSpeed() << ")\n";
}
@@ -1804,7 +1869,12 @@ NBNode::buildCrossingsAndWalkingAreas() {
// ensure that all crossings are properly connected
for (std::vector<Crossing>::iterator it = myCrossings.begin(); it != myCrossings.end();) {
if ((*it).prevWalkingArea == "" || (*it).nextWalkingArea == "") {
- WRITE_WARNING("Discarding Invalid crossing '" + (*it).id + "' at node '" + getID() + "' with edges '" + toString((*it).edges) + "'.");
+ WRITE_WARNING("Discarding invalid crossing '" + (*it).id + "' at junction '" + getID() + "' with edges '" + toString((*it).edges) + "'.");
+ for (std::vector<WalkingArea>::iterator it_wa = myWalkingAreas.begin(); it_wa != myWalkingAreas.end(); it_wa++) {
+ if ((*it_wa).nextCrossing == (*it).id) {
+ (*it_wa).nextCrossing = "";
+ }
+ }
it = myCrossings.erase(it);
} else {
++it;
@@ -1905,7 +1975,7 @@ NBNode::buildCrossings() {
if (edges.front()->getFirstNonPedestrianLaneIndex(begDir) < 0
|| edges.back()->getFirstNonPedestrianLaneIndex(endDir) < 0) {
// invalid crossing
- WRITE_WARNING("Discarding Invalid crossing '" + (*it).id + "' at node '" + getID() + "' with edges '" + toString((*it).edges) + "'.");
+ WRITE_WARNING("Discarding invalid crossing '" + (*it).id + "' at junction '" + getID() + "' with edges '" + toString((*it).edges) + "'.");
it = myCrossings.erase(it);
} else {
NBEdge::Lane crossingBeg = edges.front()->getFirstNonPedestrianLane(begDir);
@@ -2053,6 +2123,12 @@ NBNode::buildWalkingAreas(int cornerDetail) {
if ((*it).edges.back() == normalizedLanes[end].first
&& (normalizedLanes[end].second.permissions & SVC_PEDESTRIAN) == 0) {
// crossing ends
+ if ((*it).nextWalkingArea != "") {
+ WRITE_WARNING("Invalid pedestrian topology at junction '" + getID()
+ + "'; crossing '" + (*it).id
+ + "' targets '" + (*it).nextWalkingArea
+ + "' and '" + wa.id + "'.");
+ }
(*it).nextWalkingArea = wa.id;
endCrossingWidth = (*it).width;
endCrossingShape = (*it).shape;
@@ -2066,6 +2142,12 @@ NBNode::buildWalkingAreas(int cornerDetail) {
if ((*it).edges.front() == normalizedLanes[prev].first
&& (normalizedLanes[prev].second.permissions & SVC_PEDESTRIAN) == 0) {
// crossing starts
+ if ((*it).prevWalkingArea != "") {
+ WRITE_WARNING("Invalid pedestrian topology at junction '" + getID()
+ + "'; crossing '" + (*it).id
+ + "' is targeted by '" + (*it).prevWalkingArea
+ + "' and '" + wa.id + "'.");
+ }
(*it).prevWalkingArea = wa.id;
wa.nextCrossing = (*it).id;
startCrossingWidth = (*it).width;
@@ -2167,13 +2249,13 @@ NBNode::buildWalkingAreas(int cornerDetail) {
<< " endCrossingWidth=" << endCrossingWidth << " startCrossingWidth=" << startCrossingWidth
<< " begShape=" << begShape << " endShape=" << endShape << " smooth curve=" << curve << "\n";
if (curve.size() > 2) {
- curve.eraseAt(0);
- curve.eraseAt(-1);
+ curve.erase(curve.begin());
+ curve.pop_back();
if (endCrossingWidth > 0) {
- wa.shape.eraseAt(-1);
+ wa.shape.pop_back();
}
if (startCrossingWidth > 0) {
- wa.shape.eraseAt(0);
+ wa.shape.erase(wa.shape.begin());
}
wa.shape.append(curve, 0);
}
@@ -2208,6 +2290,10 @@ NBNode::buildWalkingAreas(int cornerDetail) {
std::cout << " checkIntermediate: prev=" << prev.id << " next=" << next.id << " prev.nextWA=" << prev.nextWalkingArea << "\n";
}
if (prev.nextWalkingArea == "") {
+ if (next.prevWalkingArea != "") {
+ WRITE_WARNING("Invalid pedestrian topology: crossing '" + prev.id + "' has no target.");
+ continue;
+ }
WalkingArea wa(":" + getID() + "_w" + toString(index++), prev.width);
prev.nextWalkingArea = wa.id;
wa.nextCrossing = next.id;
@@ -2423,5 +2509,25 @@ NBNode::avoidOverlap() {
// @todo: edges in the same direction with sharp angles starting/ending at the same position
}
+
+bool
+NBNode::isTrafficLight(SumoXMLNodeType type) {
+ return type == NODETYPE_TRAFFIC_LIGHT
+ || type == NODETYPE_TRAFFIC_LIGHT_NOJUNCTION
+ || type == NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED;
+}
+
+
+bool
+NBNode::rightOnRedConflict(int index, int foeIndex) const {
+ if (myType == NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED) {
+ for (std::set<NBTrafficLightDefinition*>::const_iterator i = myTrafficLights.begin(); i != myTrafficLights.end(); ++i) {
+ if ((*i)->rightOnRedConflict(index, foeIndex)) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
/****************************************************************************/
diff --git a/src/netbuild/NBNode.h b/src/netbuild/NBNode.h
index cfe6f08..91fe9fc 100644
--- a/src/netbuild/NBNode.h
+++ b/src/netbuild/NBNode.h
@@ -5,7 +5,7 @@
/// @author Yun-Pang Floetteroed
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBNode.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBNode.h 19488 2015-12-02 09:53:19Z namdre $
///
// The representation of a single node
/****************************************************************************/
@@ -43,7 +43,6 @@
#include <utils/geom/Bresenham.h>
#include <utils/common/VectorHelper.h>
#include <utils/geom/Position.h>
-#include <utils/geom/Line.h>
#include <utils/geom/PositionVector.h>
#include <utils/xml/SUMOXMLDefinitions.h>
#include "NBEdge.h"
@@ -186,16 +185,10 @@ public:
/// @brief default width of pedetrian crossings
static const SUMOReal DEFAULT_CROSSING_WIDTH;
- /// @brief the default turning radius at intersections in m
- static const SUMOReal DEFAULT_RADIUS;
-
/// @brief unspecified lane width
static const SUMOReal UNSPECIFIED_RADIUS;
public:
- /// @brief maximum number of connections allowed
- static const int MAX_CONNECTIONS;
-
/** @brief Constructor
* @param[in] id The id of the node
* @param[in] position The position of the node
@@ -440,10 +433,11 @@ public:
* @param[in] from The connection's start edge
* @param[in] to The connection's end edge
* @param[in] fromLane The lane the connection start at
+ * @param[in] toLane The lane the connection ends at
* @param[in] includePedCrossings Whether braking due to a pedestrian crossing counts
* @return Whether the described connection must brake (has higher priorised foes)
*/
- bool mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, bool includePedCrossings) const;
+ bool mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, int toLane, bool includePedCrossings) const;
/** @brief Returns the information whether the described flow must brake for the given crossing
* @param[in] from The connection's start edge
@@ -491,7 +485,7 @@ public:
LinkDirection getDirection(const NBEdge* const incoming, const NBEdge* const outgoing, bool leftHand = false) const;
LinkState getLinkState(const NBEdge* incoming, NBEdge* outgoing,
- int fromLane, bool mayDefinitelyPass, const std::string& tlID) const;
+ int fromLane, int toLane, bool mayDefinitelyPass, const std::string& tlID) const;
/** @brief Compute the junction shape for this node
* @param[in] mismatchThreshold The threshold for warning about shapes which are away from myPosition
@@ -548,7 +542,7 @@ public:
* @param[in] numPoints The number of geometry points for the internal lane
* @return The shape of the internal lane
*/
- PositionVector computeInternalLaneShape(NBEdge* fromE, const NBEdge::Connection& con, int numPoints = 5) const;
+ PositionVector computeInternalLaneShape(NBEdge* fromE, const NBEdge::Connection& con, int numPoints) const;
/** @brief Compute a smooth curve between the given geometries
@@ -665,6 +659,8 @@ public:
*/
void avoidOverlap();
+ /// @brief whether the given index must yield to the foeIndex while turing right on a red light
+ bool rightOnRedConflict(int index, int foeIndex) const;
/**
* @class nodes_by_id_sorter
@@ -704,6 +700,10 @@ public:
/// @brief returns the node id for internal lanes, crossings and walkingareas
static std::string getNodeIDFromInternalLane(const std::string id);
+
+ /// @brief return whether the given type is a traffic light
+ static bool isTrafficLight(SumoXMLNodeType type);
+
private:
bool isSimpleContinuation() const;
@@ -732,6 +732,8 @@ private:
/// @brief returns the list of all edges sorted clockwise by getAngleAtNodeToCenter
EdgeVector getEdgesSortedByAngleAtNodeCenter() const;
+ static bool isLongEnough(NBEdge* out, SUMOReal minLength);
+
private:
/// @brief The position the node lies at
Position myPosition;
diff --git a/src/netbuild/NBNodeCont.cpp b/src/netbuild/NBNodeCont.cpp
index 42823f4..e231295 100644
--- a/src/netbuild/NBNodeCont.cpp
+++ b/src/netbuild/NBNodeCont.cpp
@@ -8,7 +8,7 @@
/// @author Michael Behrisch
/// @author Sascha Krieg
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBNodeCont.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBNodeCont.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Container for nodes during the netbuilding process
/****************************************************************************/
@@ -49,6 +49,7 @@
#include <utils/xml/SUMOXMLDefinitions.h>
#include <utils/geom/GeoConvHelper.h>
#include <utils/iodevices/OutputDevice.h>
+#include "NBHelpers.h"
#include "NBDistrict.h"
#include "NBEdgeCont.h"
#include "NBTrafficLightLogicCont.h"
@@ -186,12 +187,7 @@ NBNodeCont::joinSimilarEdges(NBDistrictCont& dc, NBEdgeCont& ec, NBTrafficLightL
std::map<NBNode*, EdgeVector> connectionCount;
const EdgeVector& outgoing = (*i).second->getOutgoingEdges();
for (EdgeVector::const_iterator j = outgoing.begin(); j != outgoing.end(); j++) {
- NBEdge* e = (*j);
- NBNode* connected = e->getToNode();
- if (connectionCount.find(connected) == connectionCount.end()) {
- connectionCount[connected] = EdgeVector();
- }
- connectionCount[connected].push_back(e);
+ connectionCount[(*j)->getToNode()].push_back(*j);
}
// check whether more than a single edge connect another node and join them
std::map<NBNode*, EdgeVector>::iterator k;
@@ -323,6 +319,18 @@ unsigned int
NBNodeCont::removeUnwishedNodes(NBDistrictCont& dc, NBEdgeCont& ec,
NBJoinedEdgesMap& je, NBTrafficLightLogicCont& tlc,
bool removeGeometryNodes) {
+ // load edges that shall not be modified
+ std::set<std::string> edges2keep;
+ if (removeGeometryNodes) {
+ const OptionsCont& oc = OptionsCont::getOptions();
+ if (oc.isSet("geometry.remove.keep-edges.input-file")) {
+ NBHelpers::loadEdgesFromFile(oc.getString("geometry.remove.keep-edges.input-file"), edges2keep);
+ }
+ if (oc.isSet("geometry.remove.keep-edges.explicit")) {
+ const std::vector<std::string> edges = oc.getStringVector("geometry.remove.keep-edges.explicit");
+ edges2keep.insert(edges.begin(), edges.end());
+ }
+ }
unsigned int no = 0;
std::vector<NBNode*> toRemove;
for (NodeCont::iterator i = myNodes.begin(); i != myNodes.end(); i++) {
@@ -342,6 +350,13 @@ NBNodeCont::removeUnwishedNodes(NBDistrictCont& dc, NBEdgeCont& ec,
// ok, one in, one out or two in, two out
// -> ask the node whether to join
remove = current->checkIsRemovable();
+ // check whether any of the edges must be kept
+ for (EdgeVector::const_iterator it_edge = current->getEdges().begin(); it_edge != current->getEdges().end(); ++it_edge) {
+ if (edges2keep.find((*it_edge)->getID()) != edges2keep.end()) {
+ remove = false;
+ break;
+ }
+ }
if (remove) {
toJoin = current->getEdgesToJoin();
}
@@ -437,9 +452,9 @@ NBNodeCont::addJoinExclusion(const std::vector<std::string>& ids, bool check) {
// error handling has to take place here since joinExclusions could be
// loaded from multiple files / command line
if (myJoined.count(*it) > 0) {
- WRITE_WARNING("Ignoring join exclusion for node '" + *it + "' since it already occured in a list of nodes to be joined");
+ WRITE_WARNING("Ignoring join exclusion for junction '" + *it + "' since it already occured in a list of nodes to be joined");
} else if (check && retrieve(*it) == 0) {
- WRITE_WARNING("Ignoring join exclusion for unknown node '" + *it + "'");
+ WRITE_WARNING("Ignoring join exclusion for unknown junction '" + *it + "'");
} else {
myJoinExclusions.insert(*it);
}
@@ -452,10 +467,10 @@ NBNodeCont::addCluster2Join(std::set<std::string> cluster) {
// error handling has to take place here since joins could be loaded from multiple files
for (std::set<std::string>::const_iterator it = cluster.begin(); it != cluster.end(); it++) {
if (myJoinExclusions.count(*it) > 0) {
- WRITE_WARNING("Ignoring join-cluster because node '" + *it + "' was already excluded from joining");
+ WRITE_WARNING("Ignoring join-cluster because junction '" + *it + "' was already excluded from joining");
return;
} else if (myJoined.count(*it) > 0) {
- WRITE_WARNING("Ignoring join-cluster because node '" + *it + "' already occured in another join-cluster");
+ WRITE_WARNING("Ignoring join-cluster because junction '" + *it + "' already occured in another join-cluster");
return;
} else {
myJoined.insert(*it);
@@ -474,7 +489,7 @@ NBNodeCont::joinLoadedClusters(NBDistrictCont& dc, NBEdgeCont& ec, NBTrafficLigh
for (std::set<std::string>::iterator it_id = it->begin(); it_id != it->end(); it_id++) {
NBNode* node = retrieve(*it_id);
if (node == 0) {
- WRITE_WARNING("Ignoring unknown node '" + *it_id + "' while joining");
+ WRITE_WARNING("Ignoring unknown junction '" + *it_id + "' while joining");
} else {
cluster.insert(node);
}
@@ -717,7 +732,7 @@ NBNodeCont::joinNodeClusters(NodeClusters clusters,
(*l)->replaceInConnections(e, e->getConnections());
}
}
- ec.erase(dc, e);
+ ec.extract(dc, e, true);
allEdges.erase(j++); // erase does not invalidate the other iterators
} else {
++j;
@@ -829,7 +844,7 @@ NBNodeCont::guessTLs(OptionsCont& oc, NBTrafficLightLogicCont& tlc) {
for (std::vector<std::string>::const_iterator i = notTLControlledNodes.begin(); i != notTLControlledNodes.end(); ++i) {
NBNode* n = NBNodeCont::retrieve(*i);
if (n == 0) {
- throw ProcessError(" The node '" + *i + "' to set as not-controlled is not known.");
+ throw ProcessError(" The junction '" + *i + "' to set as not-controlled is not known.");
}
std::set<NBTrafficLightDefinition*> tls = n->getControllingTLS();
for (std::set<NBTrafficLightDefinition*>::const_iterator j = tls.begin(); j != tls.end(); ++j) {
@@ -1037,7 +1052,7 @@ NBNodeCont::setAsTLControlled(NBNode* node, NBTrafficLightLogicCont& tlc,
NBTrafficLightDefinition* tlDef = new NBOwnTLDef(id, node, 0, type);
if (!tlc.insert(tlDef)) {
// actually, nothing should fail here
- WRITE_WARNING("Building a tl-logic for node '" + id + "' twice is not possible.");
+ WRITE_WARNING("Building a tl-logic for junction '" + id + "' twice is not possible.");
delete tlDef;
return;
}
@@ -1099,6 +1114,7 @@ NBNodeCont::printBuiltNodesStatistics() const {
int numPriorityJunctions = 0;
int numRightBeforeLeftJunctions = 0;
int numAllWayStopJunctions = 0;
+ int numZipperJunctions = 0;
int numRailSignals = 0;
for (NodeCont::const_iterator i = myNodes.begin(); i != myNodes.end(); i++) {
switch ((*i).second->getType()) {
@@ -1112,6 +1128,7 @@ NBNodeCont::printBuiltNodesStatistics() const {
case NODETYPE_PRIORITY:
case NODETYPE_PRIORITY_STOP:
case NODETYPE_TRAFFIC_LIGHT:
+ case NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED:
++numPriorityJunctions;
break;
case NODETYPE_RIGHT_BEFORE_LEFT:
@@ -1120,6 +1137,9 @@ NBNodeCont::printBuiltNodesStatistics() const {
case NODETYPE_ALLWAY_STOP:
++numAllWayStopJunctions;
break;
+ case NODETYPE_ZIPPER:
+ ++numZipperJunctions;
+ break;
case NODETYPE_DISTRICT:
++numRightBeforeLeftJunctions;
break;
@@ -1142,6 +1162,9 @@ NBNodeCont::printBuiltNodesStatistics() const {
if (numAllWayStopJunctions > 0) {
WRITE_MESSAGE(" All-way stop junctions : " + toString(numAllWayStopJunctions));
}
+ if (numZipperJunctions > 0) {
+ WRITE_MESSAGE(" Zipper-merge junctions : " + toString(numZipperJunctions));
+ }
if (numRailSignals > 0) {
WRITE_MESSAGE(" Rail signal junctions : " + toString(numRailSignals));
}
diff --git a/src/netbuild/NBNodeShapeComputer.cpp b/src/netbuild/NBNodeShapeComputer.cpp
index 7d25042..fc8117a 100644
--- a/src/netbuild/NBNodeShapeComputer.cpp
+++ b/src/netbuild/NBNodeShapeComputer.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NBNodeShapeComputer.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBNodeShapeComputer.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// This class computes shapes of junctions
/****************************************************************************/
@@ -112,25 +112,23 @@ NBNodeShapeComputer::compute() {
void
computeSameEnd(PositionVector& l1, PositionVector& l2) {
- Line sub(l1.lineAt(0).getPositionAtDistance2D(100), l1[1]);
- Line tmp(sub);
- tmp.rotateAtP1(M_PI / 2);
- tmp.extrapolateBy2D(100);
- if (l1.intersects(tmp.p1(), tmp.p2())) {
- SUMOReal offset1 = l1.intersectsAtLengths2D(tmp)[0];
- Line tl1 = Line(
- l1.lineAt(0).getPositionAtDistance2D(offset1),
- l1[1]);
- tl1.extrapolateBy2D(100);
- l1.replaceAt(0, tl1.p1());
- }
- if (l2.intersects(tmp.p1(), tmp.p2())) {
- SUMOReal offset2 = l2.intersectsAtLengths2D(tmp)[0];
- Line tl2 = Line(
- l2.lineAt(0).getPositionAtDistance2D(offset2),
- l2[1]);
- tl2.extrapolateBy2D(100);
- l2.replaceAt(0, tl2.p1());
+ assert(l1[0].distanceTo2D(l1[1]) >= 100.);
+ assert(l2[0].distanceTo2D(l2[1]) >= 100.);
+ PositionVector tmp;
+ tmp.push_back(PositionVector::positionAtOffset2D(l1[0], l1[1], 100));
+ tmp.push_back(l1[1]);
+ tmp[1].sub(tmp[0]);
+ tmp[1].set(-tmp[1].y(), tmp[1].x());
+ tmp[1].add(tmp[0]);
+ tmp.extrapolate2D(100);
+ if (l2.intersects(tmp[0], tmp[1])) {
+ const SUMOReal offset = l2.intersectsAtLengths2D(tmp)[0];
+ if (l2.length2D() - offset > POSITION_EPS) {
+ PositionVector tl2 = l2.getSubpart2D(offset, l2.length2D());
+ tl2.extrapolate2D(100);
+ l2.erase(l2.begin(), l2.begin() + (l2.size() - tl2.size()));
+ l2[0] = tl2[0];
+ }
}
}
@@ -142,7 +140,8 @@ NBNodeShapeComputer::computeNodeShapeDefault(bool simpleContinuation) {
return PositionVector();
}
// magic values
- const SUMOReal radius = (myNode.getRadius() == NBNode::UNSPECIFIED_RADIUS ? NBNode::DEFAULT_RADIUS : myNode.getRadius());
+ const SUMOReal radius = (myNode.getRadius() == NBNode::UNSPECIFIED_RADIUS ?
+ OptionsCont::getOptions().getFloat("default.junctions.radius") : myNode.getRadius());
const int cornerDetail = OptionsCont::getOptions().getInt("junctions.corner-detail");
// initialise
@@ -355,8 +354,8 @@ NBNodeShapeComputer::getSmoothCorner(PositionVector begShape, PositionVector end
endShape[0] = endPoint;
PositionVector curve = myNode.computeSmoothShape(begShape, endShape, cornerDetail + 2, false, 25, 25);
if (curve.size() > 2) {
- curve.eraseAt(0);
- curve.eraseAt(-1);
+ curve.erase(curve.begin());
+ curve.pop_back();
ret = curve;
}
}
@@ -388,13 +387,8 @@ NBNodeShapeComputer::joinSameDirectionEdges(std::map<NBEdge*, std::set<NBEdge*>
myNode.hasIncoming(*i)
? (*i)->getCCWBoundaryLine(myNode)
: (*i)->getCWBoundaryLine(myNode);
- Line l1 = g1.lineAt(0);
- Line tmp = geomsCCW[*i].lineAt(0);
- tmp.extrapolateBy2D(100);
- geomsCCW[*i].replaceAt(0, tmp.p1());
- tmp = geomsCW[*i].lineAt(0);
- tmp.extrapolateBy2D(100);
- geomsCW[*i].replaceAt(0, tmp.p1());
+ geomsCCW[*i].extrapolate2D(100, true);
+ geomsCW[*i].extrapolate2D(100, true);
//
for (j = i + 1; j != myNode.myAllEdges.end(); j++) {
geomsCCW[*j] = (*j)->getCCWBoundaryLine(myNode);
@@ -403,13 +397,8 @@ NBNodeShapeComputer::joinSameDirectionEdges(std::map<NBEdge*, std::set<NBEdge*>
myNode.hasIncoming(*j)
? (*j)->getCCWBoundaryLine(myNode)
: (*j)->getCWBoundaryLine(myNode);
- Line l2 = g2.lineAt(0);
- tmp = geomsCCW[*j].lineAt(0);
- tmp.extrapolateBy2D(100);
- geomsCCW[*j].replaceAt(0, tmp.p1());
- tmp = geomsCW[*j].lineAt(0);
- tmp.extrapolateBy2D(100);
- geomsCW[*j].replaceAt(0, tmp.p1());
+ geomsCCW[*j].extrapolate2D(100, true);
+ geomsCW[*j].extrapolate2D(100, true);
}
}
// compute same (edges where an intersection doesn't work well
@@ -426,23 +415,21 @@ NBNodeShapeComputer::joinSameDirectionEdges(std::map<NBEdge*, std::set<NBEdge*>
const bool incoming2 = (*j)->getToNode() == &myNode;
const Position positionAtNode = (*i)->getGeometry()[incoming ? -1 : 0];
const Position positionAtNode2 = (*j)->getGeometry()[incoming2 ? -1 : 0];
- PositionVector g1 = incoming ? (*i)->getCCWBoundaryLine(myNode) : (*i)->getCWBoundaryLine(myNode);
- PositionVector g2 = incoming ? (*j)->getCCWBoundaryLine(myNode) : (*j)->getCWBoundaryLine(myNode);
- Line l1 = g1.lineAt(0);
- Line l2 = g2.lineAt(0);
- const SUMOReal angle1further = (g1.size() > 2 && l1.length2D() < angleChangeLookahead ?
- g1.lineAt(1).atan2DegreeAngle() : l1.atan2DegreeAngle());
- const SUMOReal angle2further = (g2.size() > 2 && l2.length2D() < angleChangeLookahead ?
- g2.lineAt(1).atan2DegreeAngle() : l2.atan2DegreeAngle());
- const SUMOReal angleDiff = NBHelpers::relAngle(l1.atan2DegreeAngle(), l2.atan2DegreeAngle());
- const SUMOReal angleDiffFurther = NBHelpers::relAngle(angle1further, angle2further);
+ const PositionVector g1 = incoming ? (*i)->getCCWBoundaryLine(myNode) : (*i)->getCWBoundaryLine(myNode);
+ const PositionVector g2 = incoming ? (*j)->getCCWBoundaryLine(myNode) : (*j)->getCWBoundaryLine(myNode);
+ const SUMOReal angle1further = (g1.size() > 2 && g1[0].distanceTo2D(g1[1]) < angleChangeLookahead ?
+ g1.angleAt2D(1) : g1.angleAt2D(0));
+ const SUMOReal angle2further = (g2.size() > 2 && g2[0].distanceTo2D(g2[1]) < angleChangeLookahead ?
+ g2.angleAt2D(1) : g2.angleAt2D(0));
+ const SUMOReal angleDiff = GeomHelper::angleDiff(g1.angleAt2D(0), g2.angleAt2D(0));
+ const SUMOReal angleDiffFurther = GeomHelper::angleDiff(angle1further, angle2further);
const bool ambiguousGeometry = ((angleDiff > 0 && angleDiffFurther < 0) || (angleDiff < 0 && angleDiffFurther > 0));
const bool differentDirs = (incoming != incoming2);
//if (ambiguousGeometry) {
// @todo: this warning would be helpful in many cases. However, if angle and angleFurther jump between 179 and -179 it is misleading
- // WRITE_WARNING("Ambigous angles at node '" + myNode.getID() + "' for edges '" + (*i)->getID() + "' and '" + (*j)->getID() + "'.");
+ // WRITE_WARNING("Ambigous angles at junction '" + myNode.getID() + "' for edges '" + (*i)->getID() + "' and '" + (*j)->getID() + "'.");
//}
- if (fabs(angleDiff) < 20) {
+ if (fabs(angleDiff) < DEG2RAD(20)) {
const bool isOpposite = differentDirs && foundOpposite.count(*i) == 0;
if (isOpposite) {
foundOpposite.insert(*i);
@@ -514,19 +501,16 @@ NBNodeShapeComputer::computeUniqueDirectionList(
std::map<NBEdge*, NBEdge*>& ccwBoundary,
std::map<NBEdge*, NBEdge*>& cwBoundary) {
EdgeVector newAll = myNode.myAllEdges;
- std::set<NBEdge*>::const_iterator j;
- EdgeVector::iterator i2;
- std::map<NBEdge*, EdgeVector >::iterator k;
bool changed = true;
while (changed) {
changed = false;
- for (i2 = newAll.begin(); !changed && i2 != newAll.end();) {
+ for (EdgeVector::iterator i2 = newAll.begin(); i2 != newAll.end(); ++i2) {
std::set<NBEdge*> other = same[*i2];
- for (j = other.begin(); j != other.end(); ++j) {
+ for (std::set<NBEdge*>::const_iterator j = other.begin(); j != other.end(); ++j) {
EdgeVector::iterator k = find(newAll.begin(), newAll.end(), *j);
if (k != newAll.end()) {
if (myNode.hasIncoming(*i2)) {
- if (myNode.hasIncoming(*j)) {} else {
+ if (!myNode.hasIncoming(*j)) {
geomsCW[*i2] = geomsCW[*j];
cwBoundary[*i2] = *j;
computeSameEnd(geomsCW[*i2], geomsCCW[*i2]);
@@ -536,14 +520,14 @@ NBNodeShapeComputer::computeUniqueDirectionList(
ccwBoundary[*i2] = *j;
geomsCCW[*i2] = geomsCCW[*j];
computeSameEnd(geomsCW[*i2], geomsCCW[*i2]);
- } else {}
+ }
}
newAll.erase(k);
changed = true;
}
}
- if (!changed) {
- ++i2;
+ if (changed) {
+ break;
}
}
}
@@ -572,34 +556,18 @@ NBNodeShapeComputer::initNeighbors(const EdgeVector& edges, const EdgeVector::co
ccwi--;
}
- const SUMOReal angleCurCCW = geomsCCW[*current].lineAt(0).atan2PositiveAngle();
- const SUMOReal angleCurCW = geomsCW[*current].lineAt(0).atan2PositiveAngle();
- const SUMOReal angleCCW = geomsCW[*ccwi].lineAt(0).atan2PositiveAngle();
- const SUMOReal angleCW = geomsCCW[*cwi].lineAt(0).atan2PositiveAngle();
- if (angleCurCCW > angleCCW) {
- ccad = angleCurCCW - angleCCW;
- } else {
- ccad = twoPI - (angleCCW - angleCurCCW);
- }
-
- if (angleCurCW > angleCW) {
- cad = twoPI - (angleCurCW - angleCW);
- } else {
- cad = angleCW - angleCurCW;
- }
-
- if (ccad < 0) {
+ const SUMOReal angleCurCCW = geomsCCW[*current].angleAt2D(0);
+ const SUMOReal angleCurCW = geomsCW[*current].angleAt2D(0);
+ const SUMOReal angleCCW = geomsCW[*ccwi].angleAt2D(0);
+ const SUMOReal angleCW = geomsCCW[*cwi].angleAt2D(0);
+ ccad = angleCCW - angleCurCCW;
+ while (ccad < 0.) {
ccad += twoPI;
}
- if (ccad > twoPI) {
- ccad -= twoPI;
- }
- if (cad < 0) {
+ cad = angleCurCW - angleCW;
+ while (cad < 0.) {
cad += twoPI;
}
- if (cad > twoPI) {
- cad -= twoPI;
- }
}
@@ -610,21 +578,21 @@ NBNodeShapeComputer::computeNodeShapeSmall() {
EdgeVector::const_iterator i;
for (i = myNode.myAllEdges.begin(); i != myNode.myAllEdges.end(); i++) {
// compute crossing with normal
- Line edgebound1 = (*i)->getCCWBoundaryLine(myNode).lineAt(0);
- Line edgebound2 = (*i)->getCWBoundaryLine(myNode).lineAt(0);
- Line cross(edgebound1);
- cross.rotateAtP1(M_PI / 2.);
- cross.add(myNode.getPosition() - cross.p1());
- cross.extrapolateBy2D(500);
- edgebound1.extrapolateBy2D(500);
- edgebound2.extrapolateBy2D(500);
+ PositionVector edgebound1 = (*i)->getCCWBoundaryLine(myNode).getSubpartByIndex(0, 2);
+ PositionVector edgebound2 = (*i)->getCWBoundaryLine(myNode).getSubpartByIndex(0, 2);
+ Position delta = edgebound1[1] - edgebound1[0];
+ delta.set(-delta.y(), delta.x()); // rotate 90 degrees
+ PositionVector cross(myNode.getPosition(), myNode.getPosition() + delta);
+ cross.extrapolate2D(500);
+ edgebound1.extrapolate2D(500);
+ edgebound2.extrapolate2D(500);
if (cross.intersects(edgebound1)) {
- Position np = cross.intersectsAt(edgebound1);
+ Position np = cross.intersectionPosition2D(edgebound1);
np.set(np.x(), np.y(), myNode.getPosition().z());
ret.push_back_noDoublePos(np);
}
if (cross.intersects(edgebound2)) {
- Position np = cross.intersectsAt(edgebound2);
+ Position np = cross.intersectionPosition2D(edgebound2);
np.set(np.x(), np.y(), myNode.getPosition().z());
ret.push_back_noDoublePos(np);
}
diff --git a/src/netbuild/NBOwnTLDef.cpp b/src/netbuild/NBOwnTLDef.cpp
index cccc2d9..5871f8e 100644
--- a/src/netbuild/NBOwnTLDef.cpp
+++ b/src/netbuild/NBOwnTLDef.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Tue, 29.05.2005
-/// @version $Id: NBOwnTLDef.cpp 18673 2015-08-20 19:22:23Z behrisch $
+/// @version $Id: NBOwnTLDef.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A traffic light logics which must be computed (only nodes/edges are given)
/****************************************************************************/
@@ -48,6 +48,8 @@
#include <foreign/nvwa/debug_new.h>
#endif // CHECK_MEMORY_LEAKS
+#define DUMMY_ID "dummy"
+#define MIN_GREEN_TIME 5
// ===========================================================================
// member method definitions
@@ -114,7 +116,7 @@ NBOwnTLDef::computeUnblockedWeightedStreamNumber(const NBEdge* const e1, const N
if (e2->getTurnDestination() == (*e2c).toEdge) {
continue;
}
- if (!foes(e1, (*e1c).toEdge, e2, (*e2c).toEdge)) {
+ if (!forbids(e1, (*e1c).toEdge, e2, (*e2c).toEdge, true)) {
val += getDirectionalWeight(e1->getToNode()->getDirection(e1, (*e1c).toEdge));
val += getDirectionalWeight(e2->getToNode()->getDirection(e2, (*e2c).toEdge));
}
@@ -189,8 +191,9 @@ NBOwnTLDef::myCompute(const NBEdgeCont&, unsigned int brakingTimeSeconds) {
NBTrafficLightLogic*
NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts) {
myNeedsContRelation.clear();
+ myRightOnRedConflicts.clear();
const SUMOTime brakingTime = TIME2STEPS(brakingTimeSeconds);
- const SUMOTime leftTurnTime = TIME2STEPS(6); // make configurable
+ const SUMOTime leftTurnTime = TIME2STEPS(OptionsCont::getOptions().getInt("tls.left-green.time"));
// build complete lists first
const EdgeVector& incoming = getIncomingEdges();
EdgeVector fromEdges, toEdges;
@@ -236,9 +239,12 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
}
NBTrafficLightLogic* logic = new NBTrafficLightLogic(getID(), getProgramID(), noLinksAll, myOffset, myType);
- EdgeVector toProc = incoming;
- const SUMOTime greenTime = TIME2STEPS(OptionsCont::getOptions().getInt("tls.green.time"));
+ EdgeVector toProc = getConnectedOuterEdges(incoming);
+ const int greenSeconds = OptionsCont::getOptions().getInt("tls.green.time");
+ const SUMOTime greenTime = TIME2STEPS(greenSeconds);
// build all phases
+ std::vector<int> greenPhases; // indices of green phases
+ std::vector<bool> hadGreenMajor(noLinksAll, false);
while (toProc.size() > 0) {
std::pair<NBEdge*, NBEdge*> chosen;
if (incoming.size() == 2) {
@@ -257,6 +263,7 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
}
unsigned int pos = 0;
std::string state((size_t) noLinksAll, 'r');
+ //std::cout << " computing " << getID() << " prog=" << getProgramID() << " cho1=" << Named::getIDSecure(chosen.first) << " cho2=" << Named::getIDSecure(chosen.second) << " toProc=" << toString(toProc) << "\n";
// plain straight movers
for (unsigned int i1 = 0; i1 < (unsigned int) incoming.size(); ++i1) {
NBEdge* fromEdge = incoming[i1];
@@ -277,7 +284,9 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
}
}
}
+ //std::cout << " state after plain straight movers=" << state << "\n";
// correct behaviour for those that are not in chosen, but may drive, though
+ state = allowFollowersOfChosen(state, fromEdges, toEdges);
for (unsigned int i1 = 0; i1 < pos; ++i1) {
if (state[i1] == 'G') {
continue;
@@ -291,32 +300,31 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
}
if (!isForbidden && !hasCrossing(fromEdges[i1], toEdges[i1], crossings)) {
state[i1] = 'G';
+ } else if (fromEdges[i1]->getToNode()->getType() == NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED &&
+ fromEdges[i1]->getToNode()->getDirection(fromEdges[i1], toEdges[i1]) == LINKDIR_RIGHT) {
+ // handle right-on-red conflicts
+ state[i1] = 's';
+ for (unsigned int i2 = 0; i2 < pos; ++i2) {
+ if (state[i2] == 'G' && !isTurnaround[i2] &&
+ (forbids(fromEdges[i2], toEdges[i2], fromEdges[i1], toEdges[i1], true) || forbids(fromEdges[i1], toEdges[i1], fromEdges[i2], toEdges[i2], true))) {
+ myRightOnRedConflicts.insert(std::make_pair(i1, i2));
+ }
+ }
}
}
+ //std::cout << " state after finding additional 'G's=" << state << "\n";
// correct behaviour for those that have to wait (mainly left-mover)
bool haveForbiddenLeftMover = false;
std::vector<bool> rightTurnConflicts(pos, false);
+ state = correctConflicting(state, fromEdges, toEdges, isTurnaround, fromLanes, hadGreenMajor, haveForbiddenLeftMover, rightTurnConflicts);
for (unsigned int i1 = 0; i1 < pos; ++i1) {
- if (state[i1] != 'G') {
- continue;
- }
- for (unsigned int i2 = 0; i2 < pos; ++i2) {
- if ((state[i2] == 'G' || state[i2] == 'g')) {
- if (NBNode::rightTurnConflict(
- fromEdges[i1], toEdges[i1], fromLanes[i1], fromEdges[i2], toEdges[i2], fromLanes[i2])) {
- rightTurnConflicts[i1] = true;
- }
- if (forbids(fromEdges[i2], toEdges[i2], fromEdges[i1], toEdges[i1], true) || rightTurnConflicts[i1]) {
- state[i1] = 'g';
- myNeedsContRelation.insert(StreamPair(fromEdges[i1], toEdges[i1], fromEdges[i2], toEdges[i2]));
- if (!isTurnaround[i1]) {
- haveForbiddenLeftMover = true;
- }
- }
- }
+ if (state[i1] == 'G') {
+ hadGreenMajor[i1] = true;
}
}
+ //std::cout << " state after correcting left movers=" << state << "\n";
const std::string vehicleState = state; // backup state before pedestrian modifications
+ greenPhases.push_back((int)logic->getPhases().size());
state = addPedestrianPhases(logic, greenTime, state, crossings, fromEdges, toEdges);
// pedestrians have 'r' from here on
for (unsigned int i1 = pos; i1 < pos + crossings.size(); ++i1) {
@@ -338,7 +346,7 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
logic->addStep(brakingTime, state);
}
- if (haveForbiddenLeftMover && !myHaveSinglePhase) {
+ if (haveForbiddenLeftMover && !myHaveSinglePhase && leftTurnTime > 0) {
// build left green
for (unsigned int i1 = 0; i1 < pos; ++i1) {
if (state[i1] == 'Y' || state[i1] == 'y') {
@@ -349,6 +357,9 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
state[i1] = 'G';
}
}
+ state = allowFollowersOfChosen(state, fromEdges, toEdges);
+ state = correctConflicting(state, fromEdges, toEdges, isTurnaround, fromLanes, hadGreenMajor, haveForbiddenLeftMover, rightTurnConflicts);
+
// add step
logic->addStep(leftTurnTime, state);
@@ -365,7 +376,55 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
}
}
}
- const SUMOTime totalDuration = logic->getDuration();
+ // fix pedestrian crossings that did not get the green light yet
+ if (crossings.size() > 0) {
+ const int vehLinks = noLinksAll - (int)crossings.size();
+ std::vector<bool> foundGreen(crossings.size(), false);
+ const std::vector<NBTrafficLightLogic::PhaseDefinition>& phases = logic->getPhases();
+ for (int i = 0; i < (int)phases.size(); ++i) {
+ const std::string state = phases[i].state;
+ for (int j = 0; j < (int)crossings.size(); ++j) {
+ LinkState ls = (LinkState)state[vehLinks + j];
+ if (ls == LINKSTATE_TL_GREEN_MAJOR || ls == LINKSTATE_TL_GREEN_MINOR) {
+ foundGreen[j] = true;
+ }
+ }
+ }
+ for (int j = 0; j < (int)foundGreen.size(); ++j) {
+ if (!foundGreen[j]) {
+ // add a phase where all pedestrians may walk, followed by a clearing phase
+ addPedestrianPhases(logic, TIME2STEPS(10), std::string(noLinksAll, 'r'), crossings, fromEdges, toEdges);
+ break;
+ }
+ }
+ }
+
+ SUMOTime totalDuration = logic->getDuration();
+ if (OptionsCont::getOptions().isDefault("tls.green.time") || !OptionsCont::getOptions().isDefault("tls.cycle.time")) {
+ // adapt to cycle time by changing the duration of the green phases
+ const SUMOTime cycleTime = TIME2STEPS(OptionsCont::getOptions().getInt("tls.cycle.time"));
+ SUMOTime greenPhaseTime = 0;
+ for (std::vector<int>::const_iterator it = greenPhases.begin(); it != greenPhases.end(); ++it) {
+ greenPhaseTime += logic->getPhases()[*it].duration;
+ }
+ const int patchSeconds = (int)(STEPS2TIME(cycleTime - totalDuration) / greenPhases.size());
+ const int patchSecondsRest = (int)(STEPS2TIME(cycleTime - totalDuration)) - patchSeconds * (int)greenPhases.size();
+ //std::cout << "cT=" << cycleTime << " td=" << totalDuration << " pS=" << patchSeconds << " pSR=" << patchSecondsRest << "\n";
+ if (greenSeconds + patchSeconds < MIN_GREEN_TIME || greenSeconds + patchSeconds + patchSecondsRest < MIN_GREEN_TIME) {
+ if (getID() != DUMMY_ID) {
+ WRITE_WARNING("The traffic light '" + getID() + "' cannot be adapted to a cycle time of " + time2string(cycleTime) + ".");
+ }
+ // @todo use a multiple of cycleTime ?
+ } else {
+ for (std::vector<int>::const_iterator it = greenPhases.begin(); it != greenPhases.end(); ++it) {
+ logic->setPhaseDuration(*it, logic->getPhases()[*it].duration + TIME2STEPS(patchSeconds));
+ }
+ logic->setPhaseDuration(greenPhases.front(), logic->getPhases()[greenPhases.front()].duration + TIME2STEPS(patchSecondsRest));
+ totalDuration = logic->getDuration();
+ }
+ }
+
+ myRightOnRedConflictsReady = true;
// this computation only makes sense for single nodes
myNeedsContRelationReady = (myControlledNodes.size() == 1);
if (totalDuration > 0) {
@@ -383,12 +442,11 @@ NBOwnTLDef::computeLogicAndConts(unsigned int brakingTimeSeconds, bool onlyConts
bool
NBOwnTLDef::hasCrossing(const NBEdge* from, const NBEdge* to, const std::vector<NBNode::Crossing>& crossings) {
- assert(from != 0);
assert(to != 0);
for (std::vector<NBNode::Crossing>::const_iterator it = crossings.begin(); it != crossings.end(); it++) {
const NBNode::Crossing& cross = *it;
// only check connections at this crossings node
- if (from->getToNode() == cross.node) {
+ if (to->getFromNode() == cross.node) {
for (EdgeVector::const_iterator it_e = cross.edges.begin(); it_e != cross.edges.end(); ++it_e) {
const NBEdge* edge = *it_e;
if (edge == from || edge == to) {
@@ -535,7 +593,7 @@ NBOwnTLDef::initNeedsContRelation() const {
myNeedsContRelation.clear();
for (std::vector<NBNode*>::const_iterator i = myControlledNodes.begin(); i != myControlledNodes.end(); i++) {
NBNode* n = *i;
- NBOwnTLDef dummy("dummy", n, 0, TLTYPE_STATIC);
+ NBOwnTLDef dummy(DUMMY_ID, n, 0, TLTYPE_STATIC);
dummy.setParticipantsInformation();
dummy.computeLogicAndConts(0, true);
myNeedsContRelation.insert(dummy.myNeedsContRelation.begin(), dummy.myNeedsContRelation.end());
@@ -546,4 +604,76 @@ NBOwnTLDef::initNeedsContRelation() const {
}
+
+EdgeVector
+NBOwnTLDef::getConnectedOuterEdges(const EdgeVector& incoming) {
+ EdgeVector result = incoming;
+ // do not sele
+ for (EdgeVector::iterator it = result.begin(); it != result.end();) {
+ if ((*it)->getConnections().size() == 0 || (*it)->isInnerEdge()) {
+ it = result.erase(it);
+ } else {
+ ++it;
+ }
+ }
+ return result;
+}
+
+
+std::string
+NBOwnTLDef::allowFollowersOfChosen(std::string state, const EdgeVector& fromEdges, const EdgeVector& toEdges) {
+ bool check = true;
+ while (check) {
+ check = false;
+ for (int i1 = 0; i1 < (int)fromEdges.size(); ++i1) {
+ if (state[i1] == 'G') {
+ continue;
+ }
+ bool followsChosen = false;
+ for (int i2 = 0; i2 < (int)fromEdges.size() && !followsChosen; ++i2) {
+ if (state[i2] == 'G' && fromEdges[i1] == toEdges[i2]) {
+ followsChosen = true;
+ }
+ }
+ if (followsChosen) {
+ state[i1] = 'G';
+ check = true;
+ }
+ }
+ }
+ return state;
+}
+
+
+std::string
+NBOwnTLDef::correctConflicting(std::string state, const EdgeVector& fromEdges, const EdgeVector& toEdges,
+ const std::vector<bool>& isTurnaround,
+ const std::vector<int>& fromLanes,
+ const std::vector<bool>& hadGreenMajor,
+ bool& haveForbiddenLeftMover,
+ std::vector<bool>& rightTurnConflicts) {
+ const bool controlledWithin = !OptionsCont::getOptions().getBool("tls.uncontrolled-within");
+ for (int i1 = 0; i1 < (int)fromEdges.size(); ++i1) {
+ if (state[i1] != 'G') {
+ continue;
+ }
+ for (int i2 = 0; i2 < (int)fromEdges.size(); ++i2) {
+ if ((state[i2] == 'G' || state[i2] == 'g')) {
+ if (NBNode::rightTurnConflict(
+ fromEdges[i1], toEdges[i1], fromLanes[i1], fromEdges[i2], toEdges[i2], fromLanes[i2])) {
+ rightTurnConflicts[i1] = true;
+ }
+ if (forbids(fromEdges[i2], toEdges[i2], fromEdges[i1], toEdges[i1], true, controlledWithin) || rightTurnConflicts[i1]) {
+ state[i1] = 'g';
+ myNeedsContRelation.insert(StreamPair(fromEdges[i1], toEdges[i1], fromEdges[i2], toEdges[i2]));
+ if (!isTurnaround[i1] && !hadGreenMajor[i1]) {
+ haveForbiddenLeftMover = true;
+ }
+ }
+ }
+ }
+ }
+ return state;
+}
+
/****************************************************************************/
diff --git a/src/netbuild/NBOwnTLDef.h b/src/netbuild/NBOwnTLDef.h
index 19ce9a3..d4b59aa 100644
--- a/src/netbuild/NBOwnTLDef.h
+++ b/src/netbuild/NBOwnTLDef.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Sascha Krieg
/// @date Tue, 29.05.2005
-/// @version $Id: NBOwnTLDef.h 18155 2015-03-26 09:57:55Z namdre $
+/// @version $Id: NBOwnTLDef.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A traffic light logics which must be computed (only nodes/edges are given)
/****************************************************************************/
@@ -221,6 +221,29 @@ protected:
/// @brief compute whether the given connection is crossed by pedestrians
static bool hasCrossing(const NBEdge* from, const NBEdge* to, const std::vector<NBNode::Crossing>& crossings);
+ /// @brief get edges that have connections
+ static EdgeVector getConnectedOuterEdges(const EdgeVector& incoming);
+
+
+ /// @brief allow connections that follow on of the chosen edges
+ std::string allowFollowersOfChosen(std::string state, const EdgeVector& fromEdges, const EdgeVector& toEdges);
+
+ /** @brief change 'G' to 'g' for conflicting connections
+ * @param[in] state
+ * @param[in] fromEdges
+ * @param[in] toEdges
+ * @param[in] isTurnaround
+ * @param[in] fromLanes
+ * @param[in] hadGreenMajor
+ * @param[out] haveForbiddenLeftMover
+ * @param[out] rightTurnConflicts
+ * @return The corrected state
+ */
+ std::string correctConflicting(std::string state, const EdgeVector& fromEdges, const EdgeVector& toEdges,
+ const std::vector<bool>& isTurnaround,
+ const std::vector<int>& fromLanes,
+ const std::vector<bool>& hadGreenMajor,
+ bool& haveForbiddenLeftMover, std::vector<bool>& rightTurnConflicts);
/** @class edge_by_incoming_priority_sorter
* @brief Sorts edges by their priority within the node they end at
diff --git a/src/netbuild/NBRequest.cpp b/src/netbuild/NBRequest.cpp
index 88ae287..ca90b3d 100644
--- a/src/netbuild/NBRequest.cpp
+++ b/src/netbuild/NBRequest.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBRequest.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NBRequest.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// This class computes the logic of a junction
/****************************************************************************/
@@ -477,8 +477,11 @@ NBRequest::writeLaneResponse(OutputDevice& od, NBEdge* from,
assert((*j).toEdge != 0);
od.openTag(SUMO_TAG_REQUEST);
od.writeAttr(SUMO_ATTR_INDEX, pos++);
- od.writeAttr(SUMO_ATTR_RESPONSE, getResponseString(from, (*j).toEdge, fromLane, (*j).toLane, (*j).mayDefinitelyPass, checkLaneFoes));
- od.writeAttr(SUMO_ATTR_FOES, getFoesString(from, (*j).toEdge, fromLane, (*j).toLane, checkLaneFoes));
+ const std::string foes = getFoesString(from, (*j).toEdge, fromLane, (*j).toLane, checkLaneFoes);
+ const std::string response = (myJunction->getType() == NODETYPE_ZIPPER ? foes
+ : getResponseString((*j).tlLinkNo, from, (*j).toEdge, fromLane, (*j).toLane, (*j).mayDefinitelyPass, checkLaneFoes));
+ od.writeAttr(SUMO_ATTR_RESPONSE, response);
+ od.writeAttr(SUMO_ATTR_FOES, foes);
if (!OptionsCont::getOptions().getBool("no-internal-links")) {
od.writeAttr(SUMO_ATTR_CONT, j->haveVia);
}
@@ -525,7 +528,7 @@ NBRequest::writeCrossingResponse(OutputDevice& od, const NBNode::Crossing& cross
std::string
-NBRequest::getResponseString(const NBEdge* const from, const NBEdge* const to,
+NBRequest::getResponseString(int tlIndex, const NBEdge* const from, const NBEdge* const to,
int fromLane, int toLane, bool mayDefinitelyPass, const bool checkLaneFoes) const {
const bool lefthand = OptionsCont::getOptions().getBool("lefthand");
int idx = 0;
@@ -537,6 +540,7 @@ NBRequest::getResponseString(const NBEdge* const from, const NBEdge* const to,
for (std::vector<NBNode::Crossing>::const_reverse_iterator i = myCrossings.rbegin(); i != myCrossings.rend(); i++) {
result += mustBrakeForCrossing(myJunction, from, to, *i) ? '1' : '0';
}
+ NBEdge::Connection queryCon = from->getConnection(fromLane, to, toLane);
// normal connections
for (EdgeVector::const_reverse_iterator i = myIncoming.rbegin(); i != myIncoming.rend(); i++) {
//const std::vector<NBEdge::Connection> &allConnections = (*i)->getConnections();
@@ -558,7 +562,10 @@ NBRequest::getResponseString(const NBEdge* const from, const NBEdge* const to,
// check whether the connection is prohibited by another one
if ((myForbids[getIndex(*i, connected[k].toEdge)][idx] &&
(!checkLaneFoes || laneConflict(from, to, toLane, *i, connected[k].toEdge, connected[k].toLane)))
- || NBNode::rightTurnConflict(from, to, fromLane, *i, connected[k].toEdge, connected[k].fromLane, lefthand)) {
+ || NBNode::rightTurnConflict(from, to, fromLane, *i, connected[k].toEdge, connected[k].fromLane, lefthand)
+ || mergeConflict(from, queryCon, *i, connected[k], false)
+ || myJunction->rightOnRedConflict(tlIndex, connected[k].tlLinkNo)
+ ) {
result += '1';
} else {
result += '0';
@@ -589,6 +596,7 @@ NBRequest::getFoesString(NBEdge* from, NBEdge* to, int fromLane, int toLane, con
}
result += foes ? '1' : '0';
}
+ NBEdge::Connection queryCon = from->getConnection(fromLane, to, toLane);
// normal connections
for (EdgeVector::const_reverse_iterator i = myIncoming.rbegin();
i != myIncoming.rend(); i++) {
@@ -599,7 +607,8 @@ NBRequest::getFoesString(NBEdge* from, NBEdge* to, int fromLane, int toLane, con
for (int k = size; k-- > 0;) {
if ((foes(from, to, (*i), connected[k].toEdge) &&
(!checkLaneFoes || laneConflict(from, to, toLane, *i, connected[k].toEdge, connected[k].toLane)))
- || NBNode::rightTurnConflict(from, to, fromLane, *i, connected[k].toEdge, connected[k].fromLane)) {
+ || NBNode::rightTurnConflict(from, to, fromLane, *i, connected[k].toEdge, connected[k].fromLane)
+ || mergeConflict(from, queryCon, *i, connected[k], true)) {
result += '1';
} else {
result += '0';
@@ -612,6 +621,19 @@ NBRequest::getFoesString(NBEdge* from, NBEdge* to, int fromLane, int toLane, con
bool
+NBRequest::mergeConflict(const NBEdge* from, const NBEdge::Connection& con,
+ const NBEdge* prohibitorFrom, const NBEdge::Connection& prohibitorCon, bool foes) {
+ return (from == prohibitorFrom
+ && con.toEdge == prohibitorCon.toEdge
+ && con.toLane == prohibitorCon.toLane
+ && con.fromLane != prohibitorCon.fromLane
+ && (foes ||
+ ((con.fromLane > prohibitorCon.fromLane && !con.mayDefinitelyPass)
+ || prohibitorCon.mayDefinitelyPass)));
+}
+
+
+bool
NBRequest::laneConflict(const NBEdge* from, const NBEdge* to, int toLane,
const NBEdge* prohibitorFrom, const NBEdge* prohibitorTo, int prohibitorToLane) const {
if (to != prohibitorTo) {
@@ -665,7 +687,7 @@ operator<<(std::ostream& os, const NBRequest& r) {
bool
-NBRequest::mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, bool includePedCrossings) const {
+NBRequest::mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, int toLane, bool includePedCrossings) const {
// vehicles which do not have a following lane must always decelerate to the end
if (to == 0) {
return true;
@@ -704,6 +726,22 @@ NBRequest::mustBrake(const NBEdge* const from, const NBEdge* const to, int fromL
}
}
}
+ // maybe we need to brake due to a merge conflict
+ NBEdge::Connection queryCon = from->getConnection(fromLane, to, toLane);
+ for (EdgeVector::const_reverse_iterator i = myIncoming.rbegin(); i != myIncoming.rend(); i++) {
+ unsigned int noLanes = (*i)->getNumLanes();
+ for (int j = noLanes; j-- > 0;) {
+ std::vector<NBEdge::Connection> connected = (*i)->getConnectionsFromLane(j);
+ const int size = (int) connected.size();
+ for (int k = size; k-- > 0;) {
+ if ((*i) == from && fromLane != j
+ && mergeConflict(from, queryCon, *i, connected[k], myJunction->getType() == NODETYPE_ZIPPER)) {
+ return true;
+ }
+ }
+ }
+ }
+
return false;
}
diff --git a/src/netbuild/NBRequest.h b/src/netbuild/NBRequest.h
index bd07033..283c37c 100644
--- a/src/netbuild/NBRequest.h
+++ b/src/netbuild/NBRequest.h
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NBRequest.h 18647 2015-08-18 07:09:50Z namdre $
+/// @version $Id: NBRequest.h 19488 2015-12-02 09:53:19Z namdre $
///
// This class computes the logic of a junction
/****************************************************************************/
@@ -105,7 +105,7 @@ public:
* @param[in] includePedCrossings Whether braking due to a pedestrian crossing counts
* @return Whether the described connection must brake (has higher priorised foes)
*/
- bool mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, bool includePedCrossings) const;
+ bool mustBrake(const NBEdge* const from, const NBEdge* const to, int fromLane, int toLane, bool includePedCrossings) const;
/** @brief Returns the information whether the described flow must brake for the given crossing
* @param[in] node The parent node of this request
@@ -149,6 +149,10 @@ public:
/// reports warnings if any occured
static void reportWarnings();
+ /// @brief whether multple connections from the same edge target the same lane
+ static bool mergeConflict(const NBEdge* from, const NBEdge::Connection& con,
+ const NBEdge* prohibitorFrom, const NBEdge::Connection& prohibitorCon, bool foes);
+
private:
/** sets the information that the edge from1->to1 blocks the edge
@@ -174,15 +178,16 @@ private:
* In the case "mayDefinitelyPass" is true, the link will not be disturbed by
* any other (special case for on-ramps).
*
- * @param[in] od The stream to write the information to
+ * @param[in] tlIndex The tl index of the connection for which the responses shall be written
* @param[in] from The link's starting edge
* @param[in] to The link's destination edge
* @param[in] fromLane The link's starting lane
* @param[in] toLane The link's destination lane
* @param[in] mayDefinitelyPass Whether this link is definitely not disturbed
+ * @return the response string
* @exception IOError not yet implemented
*/
- std::string getResponseString(const NBEdge* const from, const NBEdge* const to,
+ std::string getResponseString(int tlIndex, const NBEdge* const from, const NBEdge* const to,
int fromLane, int toLane, bool mayDefinitelyPass, const bool checkLaneFoes) const;
diff --git a/src/netbuild/NBTrafficLightDefinition.cpp b/src/netbuild/NBTrafficLightDefinition.cpp
index 71f742d..f2fbb3a 100644
--- a/src/netbuild/NBTrafficLightDefinition.cpp
+++ b/src/netbuild/NBTrafficLightDefinition.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NBTrafficLightDefinition.cpp 18155 2015-03-26 09:57:55Z namdre $
+/// @version $Id: NBTrafficLightDefinition.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The base class for traffic light logic definitions
/****************************************************************************/
@@ -63,7 +63,8 @@ NBTrafficLightDefinition::NBTrafficLightDefinition(const std::string& id,
myControlledNodes(junctions),
mySubID(programID), myOffset(offset),
myType(type),
- myNeedsContRelationReady(false) {
+ myNeedsContRelationReady(false),
+ myRightOnRedConflictsReady(false) {
std::vector<NBNode*>::iterator i = myControlledNodes.begin();
while (i != myControlledNodes.end()) {
for (std::vector<NBNode*>::iterator j = i + 1; j != myControlledNodes.end();) {
@@ -155,6 +156,7 @@ NBTrafficLightDefinition::setParticipantsInformation() {
void
NBTrafficLightDefinition::collectEdges() {
myIncomingEdges.clear();
+ myEdgesWithin.clear();
EdgeVector myOutgoing;
// collect the edges from the participating nodes
for (std::vector<NBNode*>::iterator i = myControlledNodes.begin(); i != myControlledNodes.end(); i++) {
@@ -163,22 +165,46 @@ NBTrafficLightDefinition::collectEdges() {
const EdgeVector& outgoing = (*i)->getOutgoingEdges();
copy(outgoing.begin(), outgoing.end(), back_inserter(myOutgoing));
}
+ EdgeVector outer;
// check which of the edges are completely within the junction
- // remove these edges from the list of incoming edges
// add them to the list of edges lying within the node
- for (EdgeVector::iterator j = myIncomingEdges.begin(); j != myIncomingEdges.end();) {
+ for (EdgeVector::iterator j = myIncomingEdges.begin(); j != myIncomingEdges.end(); ++j) {
NBEdge* edge = *j;
// an edge lies within the logic if it is outgoing as well as incoming
EdgeVector::iterator k = find(myOutgoing.begin(), myOutgoing.end(), edge);
if (k != myOutgoing.end()) {
- if (myControlledInnerEdges.count(edge->getID()) == 0) {
- myEdgesWithin.push_back(edge);
- (*j)->setIsInnerEdge();
- j = myIncomingEdges.erase(j);
- continue;
+ myEdgesWithin.push_back(edge);
+ } else {
+ outer.push_back(edge);
+ }
+ }
+ // collect edges that are reachable from the outside
+ std::set<NBEdge*> reachable;
+ while (outer.size() > 0) {
+ std::vector<NBEdge::Connection>& cons = outer.back()->getConnections();
+ outer.pop_back();
+ for (std::vector<NBEdge::Connection>::iterator k = cons.begin(); k != cons.end(); k++) {
+ NBEdge* to = (*k).toEdge;
+ if (reachable.count(to) == 0) {
+ reachable.insert(to);
+ outer.push_back(to);
+ }
+ }
+ }
+ const bool uncontrolledWithin = OptionsCont::getOptions().getBool("tls.uncontrolled-within");
+ for (EdgeVector::iterator j = myEdgesWithin.begin(); j != myEdgesWithin.end(); ++j) {
+ NBEdge* edge = *j;
+ // edges that are marked as 'inner' will not get their own phase when
+ // computing traffic light logics (unless they cannot be reached from the outside at all)
+ if (myControlledInnerEdges.count(edge->getID()) == 0 && reachable.count(edge) == 1) {
+ edge->setIsInnerEdge();
+ if (uncontrolledWithin) {
+ myIncomingEdges.erase(find(myIncomingEdges.begin(), myIncomingEdges.end(), edge));
}
}
- ++j;
+ if (reachable.count(edge) == 0 && edge->getFirstNonPedestrianLaneIndex(NBNode::FORWARD, true) >= 0) {
+ WRITE_WARNING("Unreachable edge '" + edge->getID() + "' within tlLogic '" + getID() + "'");
+ }
}
}
@@ -193,7 +219,8 @@ NBTrafficLightDefinition::mustBrake(const NBEdge* const from, const NBEdge* cons
if (!node->hasOutgoing(to)) {
return true; // !!!
}
- return node->mustBrake(from, to, -1, true);
+ // @todo recheck relevance of lane indices
+ return node->mustBrake(from, to, -1, -1, true);
}
@@ -224,7 +251,8 @@ NBTrafficLightDefinition::forbids(const NBEdge* const possProhibitorFrom,
const NBEdge* const possProhibitorTo,
const NBEdge* const possProhibitedFrom,
const NBEdge* const possProhibitedTo,
- bool regardNonSignalisedLowerPriority) const {
+ bool regardNonSignalisedLowerPriority,
+ bool sameNodeOnly) const {
if (possProhibitorFrom == 0 || possProhibitorTo == 0 || possProhibitedFrom == 0 || possProhibitedTo == 0) {
return false;
}
@@ -238,6 +266,9 @@ NBTrafficLightDefinition::forbids(const NBEdge* const possProhibitorFrom,
NBNode* outnode = *outgoing;
EdgeVector::const_iterator i;
if (incnode != outnode) {
+ if (sameNodeOnly) {
+ return false;
+ }
// the links are located at different nodes
const EdgeVector& ev1 = possProhibitedTo->getConnectedEdges();
// go through the following edge,
@@ -324,8 +355,8 @@ NBTrafficLightDefinition::addNode(NBNode* node) {
if (std::find(myControlledNodes.begin(), myControlledNodes.end(), node) == myControlledNodes.end()) {
myControlledNodes.push_back(node);
std::sort(myControlledNodes.begin(), myControlledNodes.end(), NBNode::nodes_by_id_sorter());
- node->addTrafficLight(this);
}
+ node->addTrafficLight(this);
}
@@ -405,5 +436,21 @@ NBTrafficLightDefinition::initNeedsContRelation() const {
myNeedsContRelationReady = true;
}
+
+bool
+NBTrafficLightDefinition::rightOnRedConflict(int index, int foeIndex) const {
+ if (!myRightOnRedConflictsReady) {
+ NBOwnTLDef dummy("dummy", myControlledNodes, 0, TLTYPE_STATIC);
+ dummy.setParticipantsInformation();
+ dummy.computeLogicAndConts(0, true);
+ myRightOnRedConflicts = dummy.myRightOnRedConflicts;
+ for (std::vector<NBNode*>::const_iterator i = myControlledNodes.begin(); i != myControlledNodes.end(); i++) {
+ (*i)->removeTrafficLight(&dummy);
+ }
+ myRightOnRedConflictsReady = true;
+ }
+ return std::find(myRightOnRedConflicts.begin(), myRightOnRedConflicts.end(), std::make_pair(index, foeIndex)) != myRightOnRedConflicts.end();
+}
+
/****************************************************************************/
diff --git a/src/netbuild/NBTrafficLightDefinition.h b/src/netbuild/NBTrafficLightDefinition.h
index e3c4d97..f77cc6a 100644
--- a/src/netbuild/NBTrafficLightDefinition.h
+++ b/src/netbuild/NBTrafficLightDefinition.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NBTrafficLightDefinition.h 18155 2015-03-26 09:57:55Z namdre $
+/// @version $Id: NBTrafficLightDefinition.h 19493 2015-12-02 11:29:28Z namdre $
///
// The base class for traffic light logic definitions
/****************************************************************************/
@@ -219,12 +219,14 @@ public:
* @param[in] possProhibitorFrom The maybe prohibiting connection's begin
* @param[in] possProhibitorTo The maybe prohibiting connection's end
* @param[in] regardNonSignalisedLowerPriority Whether the right of way rules without traffic lights shall be regarded
+ * @param[in] sameNodeOnly Whether the check shall only be performed if both edges are incoming to the same node
* @return Whether the second flow prohibits the first one
* @see forbids
*/
bool forbids(const NBEdge* const possProhibitorFrom, const NBEdge* const possProhibitorTo,
const NBEdge* const possProhibitedFrom, const NBEdge* const possProhibitedTo,
- bool regardNonSignalisedLowerPriority) const;
+ bool regardNonSignalisedLowerPriority,
+ bool sameNodeOnly = false) const;
/** @brief Returns the information whether the given flows cross
@@ -328,6 +330,9 @@ public:
*/
bool needsCont(const NBEdge* fromE, const NBEdge* toE, const NBEdge* otherFromE, const NBEdge* otherToE) const;
+ /// @brief whether the given index must yield to the foeIndex while turing right on a red light
+ bool rightOnRedConflict(int index, int foeIndex) const;
+
/* initialize myNeedsContRelation and set myNeedsContRelationReady to true
* This information is a byproduct of NBOwnTLDef::myCompute. All other
* subclasses instantiate a private instance of NBOwnTLDef to answer this query */
@@ -428,6 +433,9 @@ protected:
mutable NeedsContRelation myNeedsContRelation;
mutable bool myNeedsContRelationReady;
+ typedef std::set<std::pair<int, int> > RightOnRedConflicts;
+ mutable RightOnRedConflicts myRightOnRedConflicts;
+ mutable bool myRightOnRedConflictsReady;
};
diff --git a/src/netbuild/NBTrafficLightLogic.cpp b/src/netbuild/NBTrafficLightLogic.cpp
index 00d7672..d07e5e8 100644
--- a/src/netbuild/NBTrafficLightLogic.cpp
+++ b/src/netbuild/NBTrafficLightLogic.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NBTrafficLightLogic.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NBTrafficLightLogic.cpp 19488 2015-12-02 09:53:19Z namdre $
///
// A SUMO-compliant built logic for a traffic light
/****************************************************************************/
@@ -55,6 +55,7 @@
// ===========================================================================
const char NBTrafficLightLogic::allowedStatesInitializer[] = {LINKSTATE_TL_GREEN_MAJOR,
LINKSTATE_TL_GREEN_MINOR,
+ LINKSTATE_STOP, // used for NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED
LINKSTATE_TL_RED,
LINKSTATE_TL_REDYELLOW,
LINKSTATE_TL_YELLOW_MAJOR,
@@ -63,7 +64,7 @@ const char NBTrafficLightLogic::allowedStatesInitializer[] = {LINKSTATE_TL_GREEN
LINKSTATE_TL_OFF_NOSIGNAL
};
-const std::string NBTrafficLightLogic::ALLOWED_STATES(NBTrafficLightLogic::allowedStatesInitializer, 8);
+const std::string NBTrafficLightLogic::ALLOWED_STATES(NBTrafficLightLogic::allowedStatesInitializer, 9);
// ===========================================================================
// member method definitions
diff --git a/src/netedit/GNEApplicationWindow.cpp b/src/netedit/GNEApplicationWindow.cpp
new file mode 100644
index 0000000..dabcf55
--- /dev/null
+++ b/src/netedit/GNEApplicationWindow.cpp
@@ -0,0 +1,1253 @@
+/****************************************************************************/
+/// @file GNEApplicationWindow.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEApplicationWindow.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The main window of Netedit (adapted from GUIApplicationWindow)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <string>
+#include <sstream>
+#include <algorithm>
+
+#include <utils/common/TplConvert.h>
+#include <utils/common/ToString.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/foxtools/FXLinkLabel.h>
+#include <utils/xml/XMLSubSys.h>
+#include <utils/geom/GeoConvHelper.h>
+#include <utils/options/OptionsCont.h>
+#include <utils/gui/div/GUIMessageWindow.h>
+#include <utils/gui/div/GUIDialog_GLChosenEditor.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GUIIOGlobals.h>
+#include <utils/gui/div/GUIUserIO.h>
+#include <utils/gui/events/GUIEvent_Message.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/settings/GUICompleteSchemeStorage.h>
+#include <utils/gui/settings/GUISettingsHandler.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <netimport/NIFrame.h>
+
+#include "GNEApplicationWindow.h"
+#include "GNELoadThread.h"
+#include "GNEEvent_NetworkLoaded.h"
+#include "GNEViewParent.h"
+#include "GNEViewNet.h"
+#include "GNEDialog_About.h"
+#include "GNEDialog_Wizard.h"
+#include "GNENet.h"
+#include "GNEEdge.h"
+#include "GNEJunction.h"
+#include "GNEUndoList.h"
+#include "GNEPOI.h"
+
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXDEFMAP(GNEApplicationWindow) GNEApplicationWindowMap[] = {
+ //________Message_Type____________ID________________________Message_Handler________
+ FXMAPFUNC(SEL_COMMAND, MID_QUIT, GNEApplicationWindow::onCmdQuit),
+ FXMAPFUNC(SEL_SIGNAL, MID_QUIT, GNEApplicationWindow::onCmdQuit),
+ FXMAPFUNC(SEL_CLOSE, MID_WINDOW, GNEApplicationWindow::onCmdQuit),
+
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_NEW_NETWORK, GNEApplicationWindow::onCmdNewNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_OPEN_CONFIG, GNEApplicationWindow::onCmdOpenConfiguration),
+ FXMAPFUNC(SEL_COMMAND, MID_OPEN_NETWORK, GNEApplicationWindow::onCmdOpenNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_OPEN_FOREIGN, GNEApplicationWindow::onCmdOpenForeign),
+ FXMAPFUNC(SEL_COMMAND, MID_OPEN_SHAPES, GNEApplicationWindow::onCmdOpenShapes),
+ FXMAPFUNC(SEL_COMMAND, MID_RECENTFILE, GNEApplicationWindow::onCmdOpenRecent),
+ FXMAPFUNC(SEL_COMMAND, MID_RELOAD, GNEApplicationWindow::onCmdReload),
+ FXMAPFUNC(SEL_COMMAND, MID_CLOSE, GNEApplicationWindow::onCmdClose),
+ FXMAPFUNC(SEL_UPDATE, MID_CLOSE, GNEApplicationWindow::onUpdNeedsNetwork),
+
+ FXMAPFUNC(SEL_COMMAND, MID_ABOUT, GNEApplicationWindow::onCmdAbout),
+ FXMAPFUNC(SEL_COMMAND, MID_CLEARMESSAGEWINDOW, GNEApplicationWindow::onCmdClearMsgWindow),
+
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_NEW_NETWORK, GNEApplicationWindow::onUpdOpen),
+ FXMAPFUNC(SEL_UPDATE, MID_OPEN_CONFIG, GNEApplicationWindow::onUpdOpen),
+ FXMAPFUNC(SEL_UPDATE, MID_OPEN_NETWORK, GNEApplicationWindow::onUpdOpen),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_OPEN_FOREIGN, GNEApplicationWindow::onUpdOpen),
+ FXMAPFUNC(SEL_UPDATE, MID_OPEN_SHAPES, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_UPDATE, MID_RELOAD, GNEApplicationWindow::onUpdReload),
+ FXMAPFUNC(SEL_UPDATE, MID_RECENTFILE, GNEApplicationWindow::onUpdOpen),
+ FXMAPFUNC(SEL_CLIPBOARD_REQUEST, 0, GNEApplicationWindow::onClipboardRequest),
+
+ // forward requests to the active view
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATEJUNCTION, GNEApplicationWindow::onCmdLocate),
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATEEDGE, GNEApplicationWindow::onCmdLocate),
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATETLS, GNEApplicationWindow::onCmdLocate),
+ FXMAPFUNC(SEL_UPDATE, MID_LOCATEJUNCTION, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_UPDATE, MID_LOCATEEDGE, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_UPDATE, MID_LOCATETLS, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_KEYPRESS, 0, GNEApplicationWindow::onKeyPress),
+ FXMAPFUNC(SEL_KEYRELEASE, 0, GNEApplicationWindow::onKeyRelease),
+
+ FXMAPFUNC(FXEX::SEL_THREAD_EVENT, ID_LOADTHREAD_EVENT, GNEApplicationWindow::onLoadThreadEvent),
+ FXMAPFUNC(FXEX::SEL_THREAD, ID_LOADTHREAD_EVENT, GNEApplicationWindow::onLoadThreadEvent),
+
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_CREATE_EDGE, GNEApplicationWindow::onCmdSetMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_MOVE, GNEApplicationWindow::onCmdSetMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_DELETE, GNEApplicationWindow::onCmdSetMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_INSPECT, GNEApplicationWindow::onCmdSetMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_SELECT, GNEApplicationWindow::onCmdSetMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_CONNECT, GNEApplicationWindow::onCmdSetMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_TLS, GNEApplicationWindow::onCmdSetMode),
+
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SAVE_NETWORK, GNEApplicationWindow::onCmdSaveNetwork),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_SAVE_NETWORK, GNEApplicationWindow::onUpdSaveNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SAVE_AS_NETWORK, GNEApplicationWindow::onCmdSaveAsNetwork),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_SAVE_AS_NETWORK, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SAVE_PLAIN_XML, GNEApplicationWindow::onCmdSaveAsPlainXML),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_SAVE_PLAIN_XML, GNEApplicationWindow::onUpdNeedsNetwork), // same condition
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SAVE_JOINED, GNEApplicationWindow::onCmdSaveJoined),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_SAVE_JOINED, GNEApplicationWindow::onUpdNeedsNetwork), // same condition
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SAVE_POIS, GNEApplicationWindow::onCmdSavePois),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_SAVE_POIS, GNEApplicationWindow::onUpdNeedsNetwork), // same condition
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_ABORT, GNEApplicationWindow::onCmdAbort),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_HOTKEY_DEL, GNEApplicationWindow::onCmdDel),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_HOTKEY_ENTER, GNEApplicationWindow::onCmdEnter),
+ FXMAPFUNC(SEL_COMMAND, MID_HELP, GNEApplicationWindow::onCmdHelp),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_COMPUTE_JUNCTIONS, GNEApplicationWindow::onCmdComputeJunctions),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_COMPUTE_JUNCTIONS, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_CLEAN_JUNCTIONS, GNEApplicationWindow::onCmdCleanJunctions),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_CLEAN_JUNCTIONS, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_JOIN_JUNCTIONS, GNEApplicationWindow::onCmdJoinJunctions),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_JOIN_JUNCTIONS, GNEApplicationWindow::onUpdNeedsNetwork),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_OPTIONS, GNEApplicationWindow::onCmdOptions),
+};
+
+// Object implementation
+FXIMPLEMENT(GNEApplicationWindow, FXMainWindow, GNEApplicationWindowMap, ARRAYNUMBER(GNEApplicationWindowMap))
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+#ifdef _MSC_VER
+#pragma warning(disable: 4355)
+#endif
+GNEApplicationWindow::GNEApplicationWindow(FXApp* a,
+ const std::string& configPattern)
+ : GUIMainWindow(a),
+ myLoadThread(0),
+ myAmLoading(false),
+ myRecentNets(a, "nets"),
+ myConfigPattern(configPattern),
+ hadDependentBuild(false),
+ myNet(0),
+ myUndoList(new GNEUndoList(this)),
+ myTitlePrefix(("NETEDIT " + getBuildName(VERSION_STRING)).c_str()) {
+ GUIIconSubSys::init(a);
+}
+#ifdef _MSC_VER
+#pragma warning(default: 4355)
+#endif
+
+
+void
+GNEApplicationWindow::dependentBuild() {
+ // do this not twice
+ if (hadDependentBuild) {
+ WRITE_ERROR("DEBUG: GNEApplicationWindow::dependentBuild called twice");
+ return;
+ }
+ hadDependentBuild = true;
+
+ setTarget(this);
+ setSelector(MID_WINDOW);
+
+ // build menu bar
+ myMenuBarDrag = new FXToolBarShell(this, FRAME_NORMAL);
+ myMenuBar = new FXMenuBar(myTopDock, myMenuBarDrag,
+ LAYOUT_SIDE_TOP | LAYOUT_FILL_X | FRAME_RAISED);
+ new FXToolBarGrip(myMenuBar, myMenuBar, FXMenuBar::ID_TOOLBARGRIP,
+ TOOLBARGRIP_DOUBLE);
+ // build the thread - io
+ myLoadThreadEvent.setTarget(this),
+ myLoadThreadEvent.setSelector(ID_LOADTHREAD_EVENT);
+
+ // build the status bar
+ myStatusbar = new FXStatusBar(this, LAYOUT_SIDE_BOTTOM | LAYOUT_FILL_X | FRAME_RAISED);
+ {
+ myGeoFrame =
+ new FXHorizontalFrame(myStatusbar, LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y | LAYOUT_RIGHT | FRAME_SUNKEN,
+ 0, 0, 20, 0, 0, 0, 0, 0, 0, 0);
+ myGeoCoordinate = new FXLabel(myGeoFrame, "N/A\t\tOriginal coordinate (before coordinate transformation in NETCONVERT)", 0, LAYOUT_CENTER_Y);
+ myCartesianFrame =
+ new FXHorizontalFrame(myStatusbar, LAYOUT_FIX_WIDTH | LAYOUT_FILL_Y | LAYOUT_RIGHT | FRAME_SUNKEN,
+ 0, 0, 20, 0, 0, 0, 0, 0, 0, 0);
+ myCartesianCoordinate = new FXLabel(myCartesianFrame, "N/A\t\tNetwork coordinate", 0, LAYOUT_CENTER_Y);
+ }
+ // make the window a mdi-window
+ myMainSplitter = new FXSplitter(this,
+ SPLITTER_REVERSED | SPLITTER_VERTICAL | LAYOUT_FILL_X | LAYOUT_FILL_Y | SPLITTER_TRACKING | FRAME_RAISED | FRAME_THICK);
+ myMDIClient = new FXMDIClient(myMainSplitter,
+ LAYOUT_FILL_X | LAYOUT_FILL_Y | FRAME_SUNKEN | FRAME_THICK);
+ myMDIMenu = new FXMDIMenu(this, myMDIClient);
+ new FXMDIWindowButton(myMenuBar, myMDIMenu, myMDIClient,
+ FXMDIClient::ID_MDI_MENUWINDOW, LAYOUT_LEFT);
+ new FXMDIDeleteButton(myMenuBar, myMDIClient,
+ FXMDIClient::ID_MDI_MENUCLOSE, FRAME_RAISED | LAYOUT_RIGHT);
+ new FXMDIRestoreButton(myMenuBar, myMDIClient,
+ FXMDIClient::ID_MDI_MENURESTORE, FRAME_RAISED | LAYOUT_RIGHT);
+ new FXMDIMinimizeButton(myMenuBar, myMDIClient,
+ FXMDIClient::ID_MDI_MENUMINIMIZE, FRAME_RAISED | LAYOUT_RIGHT);
+
+ // build the message window
+ myMessageWindow = new GUIMessageWindow(myMainSplitter);
+ myMainSplitter->setSplit(1, 65);
+ // fill menu and tool bar
+ fillMenuBar();
+ // build additional threads
+ myLoadThread = new GNELoadThread(getApp(), this, myEvents, myLoadThreadEvent);
+ // set the status bar
+ myStatusbar->getStatusLine()->setText("Ready.");
+ // set the caption
+ setTitle(myTitlePrefix);
+
+ setIcon(GUIIconSubSys::getIcon(ICON_NETEDIT));
+
+ //initialize some hotkeys
+ getAccelTable()->addAccel(parseAccel("e"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_CREATE_EDGE));
+ getAccelTable()->addAccel(parseAccel("m"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_MOVE));
+ getAccelTable()->addAccel(parseAccel("d"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_DELETE));
+ getAccelTable()->addAccel(parseAccel("i"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_INSPECT));
+ getAccelTable()->addAccel(parseAccel("s"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_SELECT));
+ getAccelTable()->addAccel(parseAccel("c"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_CONNECT));
+ getAccelTable()->addAccel(parseAccel("t"), this, FXSEL(SEL_COMMAND, MID_GNE_MODE_TLS));
+ getAccelTable()->addAccel(parseAccel("Esc"), this, FXSEL(SEL_COMMAND, MID_GNE_ABORT));
+ getAccelTable()->addAccel(parseAccel("Del"), this, FXSEL(SEL_COMMAND, MID_GNE_HOTKEY_DEL));
+ getAccelTable()->addAccel(parseAccel("Enter"), this, FXSEL(SEL_COMMAND, MID_GNE_HOTKEY_ENTER));
+}
+
+void
+GNEApplicationWindow::create() {
+ if (getApp()->reg().readIntEntry("SETTINGS", "maximized", 0) == 0) {
+ setX(getApp()->reg().readIntEntry("SETTINGS", "x", 150));
+ setY(getApp()->reg().readIntEntry("SETTINGS", "y", 150));
+ setWidth(getApp()->reg().readIntEntry("SETTINGS", "width", 600));
+ setHeight(getApp()->reg().readIntEntry("SETTINGS", "height", 400));
+ }
+ gCurrentFolder = getApp()->reg().readStringEntry("SETTINGS", "basedir", "");
+ FXMainWindow::create();
+ myMenuBarDrag->create();
+ myFileMenu->create();
+ myEditMenu->create();
+ //mySettingsMenu->create();
+ myWindowsMenu->create();
+ myHelpMenu->create();
+
+ FXint width = getApp()->getNormalFont()->getTextWidth("8", 1) * 22;
+ myCartesianFrame->setWidth(width);
+ myGeoFrame->setWidth(width);
+
+ show(PLACEMENT_SCREEN);
+ if (getApp()->reg().readIntEntry("SETTINGS", "maximized", 0) == 1) {
+ maximize();
+ }
+}
+
+
+GNEApplicationWindow::~GNEApplicationWindow() {
+ closeAllWindows();
+ //
+ GUIIconSubSys::close();
+ delete myGLVisual;
+ // must delete menus to avoid segfault on removing accelerators
+ // (http://www.fox-toolkit.net/faq#TOC-What-happens-when-the-application-s)
+ delete myFileMenu;
+ delete myEditMenu;
+ delete myProcessingMenu;
+ delete myWindowsMenu;
+ delete myHelpMenu;
+
+ delete myLoadThread;
+
+ while (!myEvents.empty()) {
+ // get the next event
+ GUIEvent* e = myEvents.top();
+ myEvents.pop();
+ delete e;
+ }
+ delete myUndoList;
+}
+
+
+void
+GNEApplicationWindow::detach() {
+ FXMainWindow::detach();
+ myMenuBarDrag->detach();
+}
+
+
+void
+GNEApplicationWindow::fillMenuBar() {
+ // build file menu
+ myFileMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar, "&File", 0, myFileMenu);
+ new FXMenuCommand(myFileMenu,
+ "&New Network...\tCtrl+A\tCreate a new network.",
+ GUIIconSubSys::getIcon(ICON_OPEN_NET), this, MID_GNE_NEW_NETWORK);
+ new FXMenuCommand(myFileMenu,
+ "Open &Network...\tCtrl+N\tOpen a SUMO network.",
+ GUIIconSubSys::getIcon(ICON_OPEN_NET), this, MID_OPEN_NETWORK);
+ new FXMenuCommand(myFileMenu,
+ "&Open Configuration...\tCtrl+O\tOpen a NETCONVERT configuration file.",
+ GUIIconSubSys::getIcon(ICON_OPEN_CONFIG), this, MID_OPEN_CONFIG);
+ new FXMenuCommand(myFileMenu,
+ "Import &Foreign Network...\t\tImport a foreign network such as OSM.",
+ GUIIconSubSys::getIcon(ICON_OPEN_NET), this, MID_GNE_OPEN_FOREIGN);
+ new FXMenuCommand(myFileMenu,
+ "Load &Shapes...\tCtrl+P\tLoad shapes into the network view.",
+ GUIIconSubSys::getIcon(ICON_OPEN_SHAPES), this, MID_OPEN_SHAPES);
+ new FXMenuCommand(myFileMenu,
+ "&Reload\tCtrl+R\tReloads the network.",
+ GUIIconSubSys::getIcon(ICON_RELOAD), this, MID_RELOAD);
+ new FXMenuCommand(myFileMenu,
+ "&Save Network...\tCtrl+S\tSave the network.",
+ GUIIconSubSys::getIcon(ICON_SAVE), this, MID_GNE_SAVE_NETWORK);
+ new FXMenuCommand(myFileMenu,
+ "&Save Network As...\tCtrl+Shift-S\tSave the network.",
+ GUIIconSubSys::getIcon(ICON_SAVE), this, MID_GNE_SAVE_AS_NETWORK);
+ new FXMenuCommand(myFileMenu,
+ "&Save plain xml...\t\tSave plain xml representation the network.",
+ GUIIconSubSys::getIcon(ICON_SAVE), this, MID_GNE_SAVE_PLAIN_XML);
+ new FXMenuCommand(myFileMenu,
+ "&Save joined junctions...\t\tSave log of joined junctions (allows reproduction of joins).",
+ GUIIconSubSys::getIcon(ICON_SAVE), this, MID_GNE_SAVE_JOINED);
+ new FXMenuCommand(myFileMenu,
+ "&Save POIs As ...\t\tSave the POIs.",
+ GUIIconSubSys::getIcon(ICON_SAVE), this, MID_GNE_SAVE_POIS);
+ new FXMenuSeparator(myFileMenu);
+ new FXMenuCommand(myFileMenu,
+ "Close\tCtrl+W\tClose the network.",
+ GUIIconSubSys::getIcon(ICON_CLOSE), this, MID_CLOSE);
+ // Recent files
+ FXMenuSeparator* sep1 = new FXMenuSeparator(myFileMenu);
+ sep1->setTarget(&myRecentConfigs);
+ sep1->setSelector(FXRecentFiles::ID_ANYFILES);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_1);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_2);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_3);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_4);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_5);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_6);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_7);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_8);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_9);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentConfigs, FXRecentFiles::ID_FILE_10);
+ new FXMenuCommand(myFileMenu, "C&lear Recent Configurations", 0, &myRecentConfigs, FXRecentFiles::ID_CLEAR);
+ myRecentConfigs.setTarget(this);
+ myRecentConfigs.setSelector(MID_RECENTFILE);
+ FXMenuSeparator* sep2 = new FXMenuSeparator(myFileMenu);
+ sep2->setTarget(&myRecentNets);
+ sep2->setSelector(FXRecentFiles::ID_ANYFILES);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_1);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_2);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_3);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_4);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_5);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_6);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_7);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_8);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_9);
+ new FXMenuCommand(myFileMenu, "", 0, &myRecentNets, FXRecentFiles::ID_FILE_10);
+ new FXMenuCommand(myFileMenu, "Cl&ear Recent Networks", 0, &myRecentNets, FXRecentFiles::ID_CLEAR);
+ myRecentNets.setTarget(this);
+ myRecentNets.setSelector(MID_RECENTFILE);
+ new FXMenuSeparator(myFileMenu);
+ new FXMenuCommand(myFileMenu,
+ "&Quit\tCtrl+Q\tQuit the Application.",
+ 0, this, MID_QUIT, 0);
+
+ // build edit menu
+ myEditMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar, "&Edit", 0, myEditMenu);
+ new FXMenuCommand(myEditMenu,
+ "Undo\tCtrl+Z\tUndo the last change.",
+ GUIIconSubSys::getIcon(ICON_UNDO), myUndoList, FXUndoList::ID_UNDO);
+ new FXMenuCommand(myEditMenu,
+ "Redo\tCtrl+Y\tRedo the last change.",
+ GUIIconSubSys::getIcon(ICON_REDO), myUndoList, FXUndoList::ID_REDO);
+
+
+ /*
+ new FXMenuSeparator(myEditMenu);
+ new FXMenuCommand(myEditMenu,
+ "Edit Breakpoints...\t\tOpens a Dialog for editing breakpoints.",
+ 0, this, MID_EDIT_BREAKPOINTS);
+ */
+
+ // processing menu (trigger netbuild computations)
+ myProcessingMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar, "Processing", 0, myProcessingMenu);
+ new FXMenuCommand(myProcessingMenu,
+ "Compute Junctions\tF5\tComputes junction shape and logic.",
+ 0, this, MID_GNE_COMPUTE_JUNCTIONS);
+ new FXMenuCommand(myProcessingMenu,
+ "Clean Junctions\tF6\tRemoves solitary junctions.",
+ 0, this, MID_GNE_CLEAN_JUNCTIONS);
+ new FXMenuCommand(myProcessingMenu,
+ "Join Selected Junctions\tF7\tJoins selected junctions into a single junction.",
+ 0, this, MID_GNE_JOIN_JUNCTIONS);
+ new FXMenuCommand(myProcessingMenu,
+ "Options\t\tConfigure Processing Options.",
+ 0, this, MID_GNE_OPTIONS);
+
+ // build settings menu
+ /*
+ mySettingsMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar,"&Settings",0,mySettingsMenu);
+ new FXMenuCheck(mySettingsMenu,
+ "Gaming Mode\t\tToggle gaming mode on/off.",
+ this,MID_GAMING);
+ */
+ // build Locate menu
+ myLocatorMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar, "&Locate", NULL, myLocatorMenu);
+ new FXMenuCommand(myLocatorMenu,
+ "Locate &Junctions\t\tOpen a Dialog for Locating a Junction.",
+ GUIIconSubSys::getIcon(ICON_LOCATEJUNCTION), this, MID_LOCATEJUNCTION);
+ new FXMenuCommand(myLocatorMenu,
+ "Locate &Edges\t\tOpen a Dialog for Locating an Edge.",
+ GUIIconSubSys::getIcon(ICON_LOCATEEDGE), this, MID_LOCATEEDGE);
+ new FXMenuCommand(myLocatorMenu,
+ "Locate &TLS\t\tOpen a Dialog for Locating a Traffic Light.",
+ GUIIconSubSys::getIcon(ICON_LOCATETLS), this, MID_LOCATETLS);
+
+ // build windows menu
+ myWindowsMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar, "&Windows", 0, myWindowsMenu);
+ new FXMenuCheck(myWindowsMenu,
+ "Show Status Line\t\tToggle this Status Bar on/off.",
+ myStatusbar, FXWindow::ID_TOGGLESHOWN);
+ new FXMenuCheck(myWindowsMenu,
+ "Show Message Window\t\tToggle the Message Window on/off.",
+ myMessageWindow, FXWindow::ID_TOGGLESHOWN);
+ /*
+ new FXMenuSeparator(myWindowsMenu);
+ new FXMenuCommand(myWindowsMenu,"Tile &Horizontally",
+ GUIIconSubSys::getIcon(ICON_WINDOWS_TILE_HORI),
+ myMDIClient,FXMDIClient::ID_MDI_TILEHORIZONTAL);
+ new FXMenuCommand(myWindowsMenu,"Tile &Vertically",
+ GUIIconSubSys::getIcon(ICON_WINDOWS_TILE_VERT),
+ myMDIClient,FXMDIClient::ID_MDI_TILEVERTICAL);
+ new FXMenuCommand(myWindowsMenu,"C&ascade",
+ GUIIconSubSys::getIcon(ICON_WINDOWS_CASCADE),
+ myMDIClient,FXMDIClient::ID_MDI_CASCADE);
+ new FXMenuCommand(myWindowsMenu,"&Close",0,
+ myMDIClient,FXMDIClient::ID_MDI_CLOSE);
+ sep1=new FXMenuSeparator(myWindowsMenu);
+ sep1->setTarget(myMDIClient);
+ sep1->setSelector(FXMDIClient::ID_MDI_ANY);
+ new FXMenuCommand(myWindowsMenu,"",0,myMDIClient,FXMDIClient::ID_MDI_1);
+ new FXMenuCommand(myWindowsMenu,"",0,myMDIClient,FXMDIClient::ID_MDI_2);
+ new FXMenuCommand(myWindowsMenu,"",0,myMDIClient,FXMDIClient::ID_MDI_3);
+ new FXMenuCommand(myWindowsMenu,"",0,myMDIClient,FXMDIClient::ID_MDI_4);
+ new FXMenuCommand(myWindowsMenu,"&Others...",0,myMDIClient,FXMDIClient::ID_MDI_OVER_5);
+ new FXMenuSeparator(myWindowsMenu);
+ */
+ new FXMenuCommand(myWindowsMenu,
+ "Clear Message Window\t\tClear the message window.",
+ 0, this, MID_CLEARMESSAGEWINDOW);
+
+ // build help menu
+ myHelpMenu = new FXMenuPane(this);
+ new FXMenuTitle(myMenuBar, "&Help", 0, myHelpMenu);
+ new FXMenuCommand(myHelpMenu, "&Online Documentation", 0, this, MID_HELP);
+ new FXMenuCommand(myHelpMenu, "&About", 0, this, MID_ABOUT);
+}
+
+
+long
+GNEApplicationWindow::onCmdQuit(FXObject*, FXSelector, void*) {
+ if (continueWithUnsavedChanges()) {
+ getApp()->reg().writeIntEntry("SETTINGS", "x", getX());
+ getApp()->reg().writeIntEntry("SETTINGS", "y", getY());
+ getApp()->reg().writeIntEntry("SETTINGS", "width", getWidth());
+ getApp()->reg().writeIntEntry("SETTINGS", "height", getHeight());
+ getApp()->reg().writeStringEntry("SETTINGS", "basedir", gCurrentFolder.text());
+ if (isMaximized()) {
+ getApp()->reg().writeIntEntry("SETTINGS", "maximized", 1);
+ } else {
+ getApp()->reg().writeIntEntry("SETTINGS", "maximized", 0);
+ }
+ getApp()->exit(0);
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdEditChosen(FXObject*, FXSelector, void*) {
+ GUIDialog_GLChosenEditor* chooser =
+ new GUIDialog_GLChosenEditor(this, &gSelected);
+ chooser->create();
+ chooser->show();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdNewNetwork(FXObject*, FXSelector, void*) {
+ // ask before we clobber options
+ if (!continueWithUnsavedChanges()) {
+ return 1;
+ }
+ OptionsCont& oc = OptionsCont::getOptions();
+ GNELoadThread::fillOptions(oc);
+ GNELoadThread::setDefaultOptions(oc);
+ loadConfigOrNet("", true, false, true, true);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdOpenConfiguration(FXObject*, FXSelector, void*) {
+ // get the new file name
+ FXFileDialog opendialog(this, "Open Netconvert Configuration");
+ opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
+ opendialog.setSelectMode(SELECTFILE_EXISTING);
+ opendialog.setPatternList(myConfigPattern.c_str());
+ if (gCurrentFolder.length() != 0) {
+ opendialog.setDirectory(gCurrentFolder);
+ }
+ if (opendialog.execute()) {
+ gCurrentFolder = opendialog.getDirectory();
+ std::string file = opendialog.getFilename().text();
+ loadConfigOrNet(file, false);
+ myRecentConfigs.appendFile(file.c_str());
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdOpenNetwork(FXObject*, FXSelector, void*) {
+ // get the new file name
+ FXFileDialog opendialog(this, "Open Network");
+ opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
+ opendialog.setSelectMode(SELECTFILE_EXISTING);
+ opendialog.setPatternList("SUMO nets (*.net.xml)\nAll files (*)");
+ if (gCurrentFolder.length() != 0) {
+ opendialog.setDirectory(gCurrentFolder);
+ }
+ if (opendialog.execute()) {
+ gCurrentFolder = opendialog.getDirectory();
+ std::string file = opendialog.getFilename().text();
+ loadConfigOrNet(file, true);
+ myRecentNets.appendFile(file.c_str());
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdOpenForeign(FXObject*, FXSelector, void*) {
+ // ask before we clobber options
+ if (!continueWithUnsavedChanges()) {
+ return 1;
+ }
+ // get the new file name
+ FXFileDialog opendialog(this, "Import Foreign Network");
+ opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
+ opendialog.setSelectMode(SELECTFILE_EXISTING);
+ FXString osmPattern("OSM net (*.osm.xml,*.osm)");
+ opendialog.setPatternText(0, osmPattern);
+ if (gCurrentFolder.length() != 0) {
+ opendialog.setDirectory(gCurrentFolder);
+ }
+ if (opendialog.execute()) {
+ gCurrentFolder = opendialog.getDirectory();
+ std::string file = opendialog.getFilename().text();
+
+ OptionsCont& oc = OptionsCont::getOptions();
+ GNELoadThread::fillOptions(oc);
+ if (osmPattern.contains(opendialog.getPattern())) {
+ oc.set("osm-files", file);
+ oc.set("ramps.guess", "true");
+ oc.set("tls.guess", "true");
+ } else {
+ throw ProcessError("Attempted to import unknown file format '" + file + "'.");
+ }
+
+ GNEDialog_Wizard* wizard =
+ new GNEDialog_Wizard(this, "Select Import Options", getWidth(), getHeight());
+
+ if (wizard->execute()) {
+ NIFrame::checkOptions(); // needed to set projection parameters
+ loadConfigOrNet(file, false, false, true);
+ }
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdOpenShapes(FXObject*, FXSelector, void*) {
+ // get the shape file name
+ FXFileDialog opendialog(this, "Open Shapes");
+ opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
+ opendialog.setSelectMode(SELECTFILE_EXISTING);
+ opendialog.setPatternList("Additional files (*.xml)\nAll files (*)");
+ if (gCurrentFolder.length() != 0) {
+ opendialog.setDirectory(gCurrentFolder);
+ }
+ if (opendialog.execute()) {
+ gCurrentFolder = opendialog.getDirectory();
+ std::string file = opendialog.getFilename().text();
+ GNEShapeHandler handler(file, myNet, myNet->getShapeContainer());
+ if (!XMLSubSys::runParser(handler, file, false)) {
+ WRITE_MESSAGE("Loading of " + file + " failed.");
+ }
+ update();
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdOpenRecent(FXObject* sender, FXSelector, void* data) {
+ if (myAmLoading) {
+ myStatusbar->getStatusLine()->setText("Already loading!");
+ return 1;
+ }
+ std::string file((const char*)data);
+ loadConfigOrNet(file, sender == &myRecentNets);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdReload(FXObject*, FXSelector, void*) {
+ loadConfigOrNet(OptionsCont::getOptions().getString("sumo-net-file"), true, true);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdClose(FXObject*, FXSelector, void*) {
+ if (continueWithUnsavedChanges()) {
+ closeAllWindows();
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdLocate(FXObject*, FXSelector sel, void*) {
+ if (myMDIClient->numChildren() > 0) {
+ GNEViewParent* w = dynamic_cast<GNEViewParent*>(myMDIClient->getActiveChild());
+ if (w != 0) {
+ w->onCmdLocate(0, sel, 0);
+ }
+ }
+ return 1;
+}
+
+long
+GNEApplicationWindow::onUpdOpen(FXObject* sender, FXSelector, void*) {
+ sender->handle(this, myAmLoading ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), 0);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdClearMsgWindow(FXObject*, FXSelector, void*) {
+ myMessageWindow->clear();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdAbout(FXObject*, FXSelector, void*) {
+ GNEDialog_About* about =
+ new GNEDialog_About(this);
+ about->create();
+ about->show(PLACEMENT_OWNER);
+ return 1;
+}
+
+
+long GNEApplicationWindow::onClipboardRequest(FXObject*, FXSelector, void* ptr) {
+ FXEvent* event = (FXEvent*)ptr;
+ FXString string = GUIUserIO::clipped.c_str();
+ setDNDData(FROM_CLIPBOARD, event->target, string);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onLoadThreadEvent(FXObject*, FXSelector, void*) {
+ eventOccured();
+ return 1;
+}
+
+
+void
+GNEApplicationWindow::eventOccured() {
+ while (!myEvents.empty()) {
+ // get the next event
+ GUIEvent* e = myEvents.top();
+ myEvents.pop();
+ // process
+ switch (e->getOwnType()) {
+ case EVENT_SIMULATION_LOADED:
+ handleEvent_NetworkLoaded(e);
+ break;
+ case EVENT_MESSAGE_OCCURED:
+ case EVENT_WARNING_OCCURED:
+ case EVENT_ERROR_OCCURED:
+ handleEvent_Message(e);
+ break;
+ default:
+ break;
+ }
+ delete e;
+ }
+}
+
+
+void
+GNEApplicationWindow::handleEvent_NetworkLoaded(GUIEvent* e) {
+ myAmLoading = false;
+ GNEEvent_NetworkLoaded* ec = static_cast<GNEEvent_NetworkLoaded*>(e);
+ // check whether the loading was successfull
+ if (ec->myNet == 0) {
+ // report failure
+ setStatusBarText("Loading of '" + ec->myFile + "' failed!");
+ } else {
+ myNet = ec->myNet;
+ // report success
+ setStatusBarText("'" + ec->myFile + "' loaded.");
+ // initialise views
+ myViewNumber = 0;
+ GUISUMOAbstractView* view = openNewView();
+ if (view && ec->mySettingsFile != "") {
+ GUISettingsHandler settings(ec->mySettingsFile);
+ std::string settingsName = settings.addSettings(view);
+ view->addDecals(settings.getDecals());
+ settings.setViewport(view);
+ settings.setSnapshots(view);
+ }
+ // set network name on the caption
+ setTitle(MFXUtils::getTitleText(myTitlePrefix, ec->myFile.c_str()));
+ getView()->setEditModeFromHotkey(MID_GNE_MODE_INSPECT);
+ gSchemeStorage.setViewport(getView()); // refit the network to accomodate mode specific panel
+ if (ec->myViewportFromRegistry) {
+ Position off, p;
+ off.set(getApp()->reg().readIntEntry("viewport", "x"), getApp()->reg().readIntEntry("viewport", "y"), getApp()->reg().readIntEntry("viewport", "z"));
+ getView()->setViewport(off, p);
+ }
+ }
+ getApp()->endWaitCursor();
+ myMessageWindow->registerMsgHandlers();
+ update();
+}
+
+
+void
+GNEApplicationWindow::handleEvent_Message(GUIEvent* e) {
+ GUIEvent_Message* ec = static_cast<GUIEvent_Message*>(e);
+ myMessageWindow->appendMsg(ec->getOwnType(), ec->getMsg());
+}
+
+
+void
+GNEApplicationWindow::loadConfigOrNet(const std::string file, bool isNet, bool isReload, bool optionsReady, bool newNet) {
+ if (!continueWithUnsavedChanges()) {
+ return;
+ }
+ getApp()->beginWaitCursor();
+ myAmLoading = true;
+ closeAllWindows();
+ if (isReload) {
+ myLoadThread->start();
+ setStatusBarText("Reloading.");
+ } else {
+ gSchemeStorage.saveViewport(0, 0, -1); // recenter view
+ myLoadThread->loadConfigOrNet(file, isNet, optionsReady, newNet);
+ setStatusBarText("Loading '" + file + "'.");
+ }
+ update();
+}
+
+
+
+GUISUMOAbstractView*
+GNEApplicationWindow::openNewView() {
+ std::string caption = "View #" + toString(myViewNumber++);
+ FXuint opts = MDI_TRACKING;
+ GNEViewParent* w = new GNEViewParent(myMDIClient,
+ myMDIMenu, FXString(caption.c_str()), this,
+ getBuildGLCanvas(), myNet,
+ GUIIconSubSys::getIcon(ICON_EMPTY),
+ opts, 10, 10, 300, 200);
+ if (myMDIClient->numChildren() == 1) {
+ w->maximize();
+ } else {
+ myMDIClient->vertical(true);
+ }
+ myMDIClient->setActiveChild(w);
+ //v->grabKeyboard();
+ return w->getView();
+}
+
+
+FXGLCanvas*
+GNEApplicationWindow::getBuildGLCanvas() const {
+ if (myMDIClient->numChildren() == 0) {
+ return 0;
+ }
+ GNEViewParent* share_tmp1 =
+ static_cast<GNEViewParent*>(myMDIClient->childAtIndex(0));
+ return share_tmp1->getBuildGLCanvas();
+}
+
+
+void
+GNEApplicationWindow::closeAllWindows() {
+ myTrackerLock.lock();
+ // remove trackers and other external windows
+ size_t i;
+ for (i = 0; i < mySubWindows.size(); ++i) {
+ mySubWindows[i]->destroy();
+ }
+ for (i = 0; i < myTrackerWindows.size(); ++i) {
+ myTrackerWindows[i]->destroy();
+ }
+ // reset the caption
+ setTitle(myTitlePrefix);
+ // delete other children
+ while (myTrackerWindows.size() != 0) {
+ delete myTrackerWindows[0];
+ }
+ while (mySubWindows.size() != 0) {
+ delete mySubWindows[0];
+ }
+ mySubWindows.clear();
+ // clear selected items
+ gSelected.clear();
+ // add a separator to the log
+ myMessageWindow->addSeparator();
+ myTrackerLock.unlock();
+ // remove coordinate information
+ myGeoCoordinate->setText("N/A");
+ myCartesianCoordinate->setText("N/A");
+
+ myUndoList->p_clear();
+ if (myNet != 0) {
+ delete myNet;
+ myNet = 0;
+ GeoConvHelper::resetLoaded();
+ }
+ myMessageWindow->unregisterMsgHandlers();
+ GNEJunction::resetDecal();
+}
+
+
+FXCursor*
+GNEApplicationWindow::getDefaultCursor() {
+ return getApp()->getDefaultCursor(DEF_ARROW_CURSOR);
+}
+
+
+void
+GNEApplicationWindow::loadOnStartup() {
+ OptionsCont& oc = OptionsCont::getOptions();
+ if (oc.isSet("configuration-file")) {
+ loadConfigOrNet(oc.getString("configuration-file"), false, false, true);
+ } else {
+ loadConfigOrNet(oc.getString("sumo-net-file"), true, false, true);
+ oc.resetWritable();
+ oc.set("output-file", oc.getString("sumo-net-file"));
+ }
+}
+
+/*
+long
+GNEApplicationWindow::onCmdCutSwell(FXObject*, FXSelector, void*)
+{
+ /
+ GUIDialog_CutSwell *about =
+ new GUIDialog_CutSwell(this, "Simulating...", 0, 0);
+ about->create();
+ about->show(PLACEMENT_OWNER);
+ /
+ std::string prev = myStatusbar->getStatusLine()->getText().text();
+ std::string text = std::string("Computing strategies.");
+ myStatusbar->getStatusLine()->setText(text.c_str());
+ myStatusbar->getStatusLine()->setNormalText(text.c_str());
+ for(int i=0; i<100; ++i) {
+ fxsleep(3000);
+ myProgressBar->setProgress(i);
+ }
+// delete about;
+ myProgressBar->setProgress(0);
+ myStatusbar->getStatusLine()->setText(prev.c_str());
+ myStatusbar->getStatusLine()->setNormalText(prev.c_str());
+ return 1;
+}
+*/
+
+
+void
+GNEApplicationWindow::setStatusBarText(const std::string& text) {
+ myStatusbar->getStatusLine()->setText(text.c_str());
+ myStatusbar->getStatusLine()->setNormalText(text.c_str());
+}
+
+
+long
+GNEApplicationWindow::onCmdSetMode(FXObject*, FXSelector sel, void*) {
+ if (getView()) {
+ getView()->setEditModeFromHotkey(FXSELID(sel));
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdAbort(FXObject*, FXSelector, void*) {
+ if (getView()) {
+ getView()->abortOperation();
+ getView()->update();
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdDel(FXObject*, FXSelector, void*) {
+ if (getView()) {
+ getView()->hotkeyDel();
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdEnter(FXObject*, FXSelector, void*) {
+ if (getView()) {
+ getView()->hotkeyEnter();
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdHelp(FXObject*, FXSelector, void*) {
+ FXLinkLabel::fxexecute("http://sumo.dlr.de/wiki/NETEDIT");
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdComputeJunctions(FXObject*, FXSelector, void*) {
+ myNet->computeEverything(this, true);
+ updateControls();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdCleanJunctions(FXObject*, FXSelector, void*) {
+ myNet->removeSolitaryJunctions(myUndoList);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdJoinJunctions(FXObject*, FXSelector, void*) {
+ myNet->joinSelectedJunctions(myUndoList);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdOptions(FXObject*, FXSelector, void*) {
+ GNEDialog_Wizard* wizard =
+ new GNEDialog_Wizard(this, "Configure Options", getWidth(), getHeight());
+
+ if (wizard->execute()) {
+ NIFrame::checkOptions(); // needed to set projection parameters
+ }
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdSaveAsNetwork(FXObject*, FXSelector, void*) {
+ FXString file = MFXUtils::getFilename2Write(this,
+ "Save Network as", ".net.xml",
+ GUIIconSubSys::getIcon(ICON_EMPTY),
+ gCurrentFolder);
+ if (file == "") {
+ return 1;
+ }
+ OptionsCont& oc = OptionsCont::getOptions();
+ oc.resetWritable();
+ oc.set("output-file", file.text());
+ setTitle(MFXUtils::getTitleText(myTitlePrefix, file));
+ onCmdSaveNetwork(0, 0, 0);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdSaveAsPlainXML(FXObject*, FXSelector, void*) {
+ FXString file = MFXUtils::getFilename2Write(this,
+ "Select name of the plain-xml edge-file (other names will be deduced from this)", ".edg.xml",
+ GUIIconSubSys::getIcon(ICON_EMPTY),
+ gCurrentFolder);
+ if (file == "") {
+ return 1;
+ }
+ OptionsCont& oc = OptionsCont::getOptions();
+ bool wasSet = oc.isSet("plain-output-prefix");
+ std::string oldPrefix = oc.getString("plain-output-prefix");
+ oc.resetWritable();
+ std::string prefix = file.text();
+ prefix = prefix.substr(0, prefix.size() - 8);
+ oc.set("plain-output-prefix", prefix);
+ getApp()->beginWaitCursor();
+ try {
+ myNet->savePlain(oc);
+ myUndoList->unmark();
+ myUndoList->mark();
+ } catch (IOError& e) {
+ FXMessageBox::error(this, MBOX_OK, "Saving plain xml failed!", "%s", e.what());
+ }
+ myMessageWindow->appendMsg(EVENT_MESSAGE_OCCURED, "Plain XML saved with prefix '" + prefix + "'.\n");
+ myMessageWindow->addSeparator();
+ if (wasSet) {
+ oc.resetWritable();
+ oc.set("plain-output-prefix", oldPrefix);
+ } else {
+ oc.unSet("plain-output-prefix");
+ }
+ getApp()->endWaitCursor();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdSaveJoined(FXObject*, FXSelector, void*) {
+ FXString file = MFXUtils::getFilename2Write(this,
+ "Select name of the joined-junctions file", ".nod.xml",
+ GUIIconSubSys::getIcon(ICON_EMPTY),
+ gCurrentFolder);
+ if (file == "") {
+ return 1;
+ }
+ OptionsCont& oc = OptionsCont::getOptions();
+ bool wasSet = oc.isSet("junctions.join-output");
+ std::string oldFile = oc.getString("junctions.join-output");
+ oc.resetWritable();
+ std::string filename = file.text();
+ oc.set("junctions.join-output", filename);
+ getApp()->beginWaitCursor();
+ try {
+ myNet->saveJoined(oc);
+ } catch (IOError& e) {
+ FXMessageBox::error(this, MBOX_OK, "Saving joined junctions failed!", "%s", e.what());
+ }
+ myMessageWindow->appendMsg(EVENT_MESSAGE_OCCURED, "Joined junctions saved to '" + filename + "'.\n");
+ myMessageWindow->addSeparator();
+ if (wasSet) {
+ oc.resetWritable();
+ oc.set("junctions.join-output", oldFile);
+ } else {
+ oc.unSet("junctions.join-output");
+ }
+ getApp()->endWaitCursor();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdSavePois(FXObject*, FXSelector, void*) {
+ FXString file = MFXUtils::getFilename2Write(this,
+ "Select name of the POI file", ".xml",
+ GUIIconSubSys::getIcon(ICON_EMPTY),
+ gCurrentFolder);
+ if (file == "") {
+ return 1;
+ }
+ std::string filename = file.text();
+ // XXX Not yet implemented
+ getApp()->beginWaitCursor();
+ try {
+ GNEPOI::saveToFile(filename);
+ } catch (IOError& e) {
+ FXMessageBox::error(this, MBOX_OK, "Saving POIs failed!", "%s", e.what());
+ }
+ myMessageWindow->addSeparator();
+ getApp()->endWaitCursor();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onUpdNeedsNetwork(FXObject* sender, FXSelector, void*) {
+ sender->handle(this, myNet == 0 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), 0);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onUpdReload(FXObject* sender, FXSelector, void*) {
+ sender->handle(this, myNet == 0 || !OptionsCont::getOptions().isSet("sumo-net-file")
+ ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE), 0);
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onCmdSaveNetwork(FXObject*, FXSelector, void*) {
+ getApp()->beginWaitCursor();
+ try {
+ OptionsCont& oc = OptionsCont::getOptions();
+ myNet->save(oc);
+ myUndoList->unmark();
+ myUndoList->mark();
+ } catch (IOError& e) {
+ FXMessageBox::error(this, MBOX_OK, "Saving Network failed!", "%s", e.what());
+ }
+ myMessageWindow->appendMsg(EVENT_MESSAGE_OCCURED, "Network saved.\n");
+ myMessageWindow->addSeparator();
+ getApp()->endWaitCursor();
+ return 1;
+}
+
+
+long
+GNEApplicationWindow::onUpdSaveNetwork(FXObject* sender, FXSelector, void*) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ bool enable = myNet != 0 && oc.isSet("output-file");
+ sender->handle(this, FXSEL(SEL_COMMAND, enable ? ID_ENABLE : ID_DISABLE), 0);
+ if (enable) {
+ FXString caption = ("Save " + oc.getString("output-file")).c_str();
+ sender->handle(this, FXSEL(SEL_COMMAND, FXMenuCaption::ID_SETSTRINGVALUE), (void*)&caption);
+ }
+ return 1;
+}
+
+
+GNEViewNet*
+GNEApplicationWindow::getView() {
+ if (mySubWindows.size() != 0) {
+ return (GNEViewNet*)(((GUIGlChildWindow*)mySubWindows[0])->getView());
+ } else {
+ return 0;
+ }
+}
+
+
+bool
+GNEApplicationWindow::continueWithUnsavedChanges() {
+ if (myUndoList->canUndo() && !myUndoList->marked()) {
+ FXuint answer = FXMessageBox::question(this, MBOX_YES_NO,
+ "Confirm Closing Network", "%s",
+ "You have unsaved changes. Do you wish to close the network and discard all changes?");
+ if (answer == 1) { //1:yes, 2:no, 4:esc
+ myUndoList->p_clear(); // only ask once
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return true;
+ }
+}
+
+
+Position
+GNEApplicationWindow::GNEShapeHandler::getLanePos(const std::string& poiID, const std::string& laneID, SUMOReal lanePos) {
+ std::string edgeID = laneID;
+ unsigned int lane = 0;
+ size_t underscore = laneID.rfind('_');
+
+ if (underscore != std::string::npos) {
+ edgeID = laneID.substr(0, underscore);
+ lane = static_cast<unsigned int>(TplConvert::_2intSec(laneID.substr(underscore).c_str(), 0));
+ }
+ NBEdge* edge = myNet->retrieveEdge(edgeID)->getNBEdge();
+ if (edge == 0 || edge->getNumLanes() <= lane) {
+ WRITE_ERROR("Lane '" + laneID + "' to place poi '" + poiID + "' on is not known.");
+ return Position::INVALID;
+ }
+ if (lanePos < 0) {
+ lanePos = edge->getLength() + lanePos;
+ }
+ return edge->getLanes()[lane].shape.positionAtOffset(lanePos);
+}
+
+
+void
+GNEApplicationWindow::updateControls() {
+ GNEViewNet* view = getView();
+ if (view != 0) {
+ view->updateControls();
+ }
+}
+
+
+long
+GNEApplicationWindow::onKeyPress(FXObject* o, FXSelector sel, void* data) {
+ const long handled = FXMainWindow::onKeyPress(o, sel, data);
+ if (handled == 0 && myMDIClient->numChildren() > 0) {
+ GNEViewParent* w = dynamic_cast<GNEViewParent*>(myMDIClient->getActiveChild());
+ if (w != 0) {
+ w->onKeyPress(0, sel, data);
+ }
+ }
+ return 0;
+}
+
+
+long
+GNEApplicationWindow::onKeyRelease(FXObject* o, FXSelector sel, void* data) {
+ const long handled = FXMainWindow::onKeyRelease(o, sel, data);
+ if (handled == 0 && myMDIClient->numChildren() > 0) {
+ GNEViewParent* w = dynamic_cast<GNEViewParent*>(myMDIClient->getActiveChild());
+ if (w != 0) {
+ w->onKeyRelease(0, sel, data);
+ }
+ }
+ return 0;
+}
+
+/****************************************************************************/
diff --git a/src/netedit/GNEApplicationWindow.h b/src/netedit/GNEApplicationWindow.h
new file mode 100644
index 0000000..a8b4dca
--- /dev/null
+++ b/src/netedit/GNEApplicationWindow.h
@@ -0,0 +1,325 @@
+/****************************************************************************/
+/// @file GNEApplicationWindow.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEApplicationWindow.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The main window of Netedit (adapted from GUIApplicationWindow)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEApplicationWindow_h
+#define GNEApplicationWindow_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <vector>
+#include <iostream>
+#include <fx.h>
+#include <utils/foxtools/MFXEventQue.h>
+#include <utils/foxtools/FXThreadEvent.h>
+#include <utils/foxtools/MFXInterThreadEventClient.h>
+#include <utils/shapes/ShapeHandler.h>
+#include <utils/gui/windows/GUIMainWindow.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/div/GUIMessageWindow.h>
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNELoadThread;
+class GNEUndoList;
+class GNENet;
+class GNEViewNet;
+class GUIEvent;
+class GUIParameterTracker;
+class GUIParameterTableWindow;
+
+
+// ===========================================================================
+// class definition
+// ===========================================================================
+/**
+ * @class GNEApplicationWindow
+ * @brief The main window of the Netedit.
+ *
+ * Contains the file opening support and a canvas to display the network in.
+ *
+ * Beside views on the simulation, shown within a MDI-window, the main window
+ * may also have some further views (children) assigned which are stored
+ * within a separate list.
+ */
+class GNEApplicationWindow :
+ public GUIMainWindow, public MFXInterThreadEventClient {
+ // FOX-declarations
+ FXDECLARE(GNEApplicationWindow)
+
+public:
+
+ /** @brief Constructor
+ * @param[in] a The FOX application
+ * @param[in] configPattern The pattern used for loading configurations
+ */
+ GNEApplicationWindow(FXApp* a, const std::string& configPattern);
+
+
+ /// @brief Destructor
+ virtual ~GNEApplicationWindow();
+
+
+ /// @brief Creates the main window (required by FOX)
+ virtual void create();
+
+
+ /// Detaches the tool/menu bar
+ virtual void detach();
+
+
+ void loadOnStartup();
+
+
+ void dependentBuild();
+
+ void setStatusBarText(const std::string&);
+
+
+ /// @name Inter-thread event handling
+ /// @{
+
+ virtual void eventOccured();
+ void handleEvent_NetworkLoaded(GUIEvent* e);
+ void handleEvent_Message(GUIEvent* e);
+ /// @}
+
+
+
+ /// @name FOX-callbacks
+ /// @{
+ long onCmdNewNetwork(FXObject*, FXSelector, void*);
+ long onCmdOpenConfiguration(FXObject*, FXSelector, void*);
+ long onCmdOpenNetwork(FXObject*, FXSelector, void*);
+ long onCmdOpenForeign(FXObject*, FXSelector, void*);
+ long onCmdOpenShapes(FXObject*, FXSelector, void*);
+ long onCmdReload(FXObject*, FXSelector, void*);
+ long onCmdOpenRecent(FXObject*, FXSelector, void*);
+ long onCmdClose(FXObject*, FXSelector, void*);
+
+ /// @brief Called on menu commands from the Locator menu
+ long onCmdLocate(FXObject*, FXSelector, void*);
+
+ long onCmdSaveNetwork(FXObject*, FXSelector, void*);
+ long onUpdSaveNetwork(FXObject*, FXSelector, void*);
+ long onCmdSaveAsNetwork(FXObject*, FXSelector, void*);
+ long onUpdNeedsNetwork(FXObject*, FXSelector, void*);
+ long onUpdReload(FXObject*, FXSelector, void*);
+ long onCmdSaveAsPlainXML(FXObject*, FXSelector, void*);
+ long onCmdSaveJoined(FXObject*, FXSelector, void*);
+ long onCmdSavePois(FXObject*, FXSelector, void*);
+
+ /// @brief handle keys
+ long onKeyPress(FXObject* o, FXSelector sel, void* data);
+ long onKeyRelease(FXObject* o, FXSelector sel, void* data);
+
+ /** @brief Called by FOX if the application shall be closed
+ Called either by FileMenu->Quit, the normal close-menu or SIGINT */
+ long onCmdQuit(FXObject*, FXSelector, void*);
+
+ long onCmdEditChosen(FXObject*, FXSelector, void*);
+
+ /// Opens the application settings menu
+ long onCmdAppSettings(FXObject*, FXSelector, void*);
+ /// Toggle gaming mode
+ long onCmdGaming(FXObject*, FXSelector, void*);
+
+ /// Shows the about dialog
+ long onCmdAbout(FXObject*, FXSelector, void*);
+
+ long onCmdNewView(FXObject*, FXSelector, void*);
+
+ long onUpdOpen(FXObject*, FXSelector, void*);
+ long onCmdClearMsgWindow(FXObject*, FXSelector, void*);
+
+ long onLoadThreadEvent(FXObject*, FXSelector, void*);
+ /// Somebody wants our clipped text
+ long onClipboardRequest(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief called if the user hits an edit-mode hotkey
+ long onCmdSetMode(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief called if the user hits esc
+ long onCmdAbort(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief called if the user hits del
+ long onCmdDel(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief called if the user hits enter
+ long onCmdEnter(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief called if the user selects help->Documentation
+ long onCmdHelp(FXObject* sender, FXSelector sel, void* ptr);
+
+ /// @brief called if the user selects Processing->compute junctions
+ long onCmdComputeJunctions(FXObject*, FXSelector, void*);
+
+ /// @brief called if the user selects Processing->clean junctions
+ long onCmdCleanJunctions(FXObject*, FXSelector, void*);
+
+ /// @brief called if the user selects Processing->join junctions
+ long onCmdJoinJunctions(FXObject*, FXSelector, void*);
+
+ /// @brief called if the user selects Processing->Configure Options
+ long onCmdOptions(FXObject*, FXSelector, void*);
+ /// @}
+
+ FXGLCanvas* getBuildGLCanvas() const;
+
+ /// pure virtual but we don't need it
+ SUMOTime getCurrentSimTime() const {
+ return 0;
+ }
+
+ FXCursor* getDefaultCursor();
+
+ GNEUndoList* getUndoList() {
+ return myUndoList;
+ }
+
+ /// @brief update control contents after undo/redo or recompute
+ void updateControls();
+
+
+protected:
+ /// FOX needs this for static members
+ GNEApplicationWindow() { }
+
+ /// Builds the menu bar
+ virtual void fillMenuBar();
+
+ /** the name of the simulation */
+ std::string myName;
+
+ /** the thread that loads the network */
+ GNELoadThread* myLoadThread;
+
+ /// The current view number
+ size_t myViewNumber;
+
+ /// information whether the gui is currently loading and the load-options shall be greyed out
+ bool myAmLoading;
+
+ /// the submenus
+ FXMenuPane* myFileMenu,
+ *myEditMenu,
+ *myLocatorMenu,
+ *myProcessingMenu,
+ *myWindowsMenu,
+ *myHelpMenu;
+
+ /// A window to display messages, warnings and error in
+ GUIMessageWindow* myMessageWindow;
+
+ /// The splitter that divides the main window into vies and the log window
+ FXSplitter* myMainSplitter;
+
+ /// for some menu detaching fun
+ FXToolBarShell* myToolBarDrag1, *myToolBarDrag2, *myToolBarDrag3,
+ *myToolBarDrag4, *myToolBarDrag5,
+ *myMenuBarDrag;
+
+ /// List of got requests
+ MFXEventQue<GUIEvent*> myEvents;
+
+ /// The menu used for the MDI-windows
+ FXMDIMenu* myMDIMenu;
+
+ /// The application menu bar
+ FXMenuBar* myMenuBar;
+
+ /// The application tool bar
+ FXToolBar* myToolBar1, *myToolBar2, *myToolBar3, *myToolBar4, *myToolBar5;
+
+ /// io-event with the load-thread
+ FXEX::FXThreadEvent myLoadThreadEvent;
+
+ /// List of recent config files
+ FXRecentFiles myRecentConfigs;
+
+ /// List of recent nets
+ FXRecentFiles myRecentNets;
+
+ /// Input file pattern
+ std::string myConfigPattern;
+
+ bool hadDependentBuild;
+
+ /// we are responsible for the net
+ GNENet* myNet;
+
+ /// the one and only undo list
+ GNEUndoList* myUndoList;
+
+ /// the prefix for the window title
+ const FXString myTitlePrefix;
+
+ /**
+ * @class GNEShapeHandler
+ * @brief The XML-Handler for shapes loading network loading
+ *
+ * This subclasses ShapeHandler with netbuild specific function
+ */
+ class GNEShapeHandler : public ShapeHandler {
+ public:
+ GNEShapeHandler(const std::string& file, GNENet* net, ShapeContainer& sc) :
+ ShapeHandler(file, sc),
+ myNet(net) {}
+
+ /// @brief Destructor
+ virtual ~GNEShapeHandler() {}
+
+ Position getLanePos(const std::string& poiID, const std::string& laneID, SUMOReal lanePos);
+
+ private:
+ GNENet* myNet;
+ };
+
+private:
+ /** starts to load a netimport configuration or a network */
+ void loadConfigOrNet(const std::string file, bool isNet, bool isReload = false, bool optionsReady = false, bool newNet = false);
+
+ /** this method closes all windows and deletes the current simulation */
+ void closeAllWindows();
+
+ /** opens a new simulation display */
+ GUISUMOAbstractView* openNewView();
+
+ // @brief convenience method
+ GNEViewNet* getView();
+
+ /* @brief warns about unsaved changes and gives the user the option to abort
+ */
+ bool continueWithUnsavedChanges();
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEAttributeCarrier.cpp b/src/netedit/GNEAttributeCarrier.cpp
new file mode 100644
index 0000000..8609f8d
--- /dev/null
+++ b/src/netedit/GNEAttributeCarrier.cpp
@@ -0,0 +1,229 @@
+/****************************************************************************/
+/// @file GNEAttributeCarrier.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEAttributeCarrier.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// Abstract Base class for gui objects which carry attributes
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <algorithm>
+#include <utils/common/MsgHandler.h>
+#include "GNEAttributeCarrier.h"
+#include "GNEUndoList.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+// ===========================================================================
+// static members
+// ===========================================================================
+std::map<SumoXMLTag, std::vector<SumoXMLAttr> > GNEAttributeCarrier::_allowedAttributes;
+std::vector<SumoXMLTag> GNEAttributeCarrier::_allowedTags;
+std::set<SumoXMLAttr> GNEAttributeCarrier::_numericalAttrs;
+std::set<SumoXMLAttr> GNEAttributeCarrier::_uniqueAttrs;
+std::map<SumoXMLTag, std::map<SumoXMLAttr, std::vector<std::string> > > GNEAttributeCarrier::_discreteChoices;
+
+const std::string GNEAttributeCarrier::LOADED = "loaded";
+const std::string GNEAttributeCarrier::GUESSED = "guessed";
+const std::string GNEAttributeCarrier::MODIFIED = "modified";
+const std::string GNEAttributeCarrier::APPROVED = "approved";
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEAttributeCarrier::GNEAttributeCarrier(SumoXMLTag tag) :
+ myTag(tag) {
+}
+
+
+bool
+GNEAttributeCarrier::isValid(SumoXMLAttr key, const std::string& value) {
+ UNUSED_PARAMETER(value);
+ return std::find(getAttrs().begin(), getAttrs().end(), key) != getAttrs().end();
+}
+
+
+bool
+GNEAttributeCarrier::isValidID(const std::string& value) {
+ return value.find_first_of(" \t\n\r@$%^&/|\\{}*'\";:<>") == std::string::npos;
+}
+
+// ===========================================================================
+// static methods
+// ===========================================================================
+
+const std::vector<SumoXMLAttr>&
+GNEAttributeCarrier::allowedAttributes(SumoXMLTag tag) {
+ // define on first access
+ if (!_allowedAttributes.count(tag)) {
+ std::vector<SumoXMLAttr>& attrs = _allowedAttributes[tag];
+ switch (tag) {
+ case SUMO_TAG_EDGE:
+ attrs.push_back(SUMO_ATTR_ID);
+ attrs.push_back(SUMO_ATTR_FROM);
+ attrs.push_back(SUMO_ATTR_TO);
+ attrs.push_back(SUMO_ATTR_SPEED);
+ attrs.push_back(SUMO_ATTR_PRIORITY);
+ attrs.push_back(SUMO_ATTR_NUMLANES);
+ attrs.push_back(SUMO_ATTR_TYPE);
+ attrs.push_back(SUMO_ATTR_ALLOW);
+ attrs.push_back(SUMO_ATTR_DISALLOW);
+ //attrs.push_back(SUMO_ATTR_PREFER);
+ attrs.push_back(SUMO_ATTR_SHAPE);
+ attrs.push_back(SUMO_ATTR_LENGTH);
+ attrs.push_back(SUMO_ATTR_SPREADTYPE);
+ attrs.push_back(SUMO_ATTR_NAME);
+ attrs.push_back(SUMO_ATTR_WIDTH);
+ attrs.push_back(SUMO_ATTR_ENDOFFSET);
+ break;
+ case SUMO_TAG_JUNCTION:
+ attrs.push_back(SUMO_ATTR_ID);
+ /* virtual attribute from the combination of the actuall
+ * attributes SUMO_ATTR_X, SUMO_ATTR_Y */
+ attrs.push_back(SUMO_ATTR_POSITION);
+ attrs.push_back(SUMO_ATTR_TYPE);
+ attrs.push_back(SUMO_ATTR_SHAPE);
+ attrs.push_back(SUMO_ATTR_RADIUS);
+ attrs.push_back(SUMO_ATTR_KEEP_CLEAR);
+ break;
+ case SUMO_TAG_LANE:
+ attrs.push_back(SUMO_ATTR_ID);
+ attrs.push_back(SUMO_ATTR_SPEED);
+ attrs.push_back(SUMO_ATTR_ALLOW);
+ attrs.push_back(SUMO_ATTR_DISALLOW);
+ //attrs.push_back(SUMO_ATTR_PREFER);
+ attrs.push_back(SUMO_ATTR_WIDTH);
+ attrs.push_back(SUMO_ATTR_ENDOFFSET);
+ attrs.push_back(SUMO_ATTR_INDEX); // read-only attribute
+ break;
+ case SUMO_TAG_POI:
+ attrs.push_back(SUMO_ATTR_ID);
+ /* virtual attribute from the combination of the actuall
+ * attributes SUMO_ATTR_X, SUMO_ATTR_Y */
+ attrs.push_back(SUMO_ATTR_POSITION);
+ attrs.push_back(SUMO_ATTR_TYPE);
+ break;
+ case SUMO_TAG_CROSSING:
+ attrs.push_back(SUMO_ATTR_ID);
+ attrs.push_back(SUMO_ATTR_PRIORITY);
+ attrs.push_back(SUMO_ATTR_WIDTH);
+ attrs.push_back(SUMO_ATTR_EDGES);
+ break;
+ default:
+ WRITE_WARNING("allowed attributes for tag '" +
+ toString(tag) + "' not defined");
+ }
+ }
+ return _allowedAttributes[tag];
+}
+
+
+const std::vector<SumoXMLTag>&
+GNEAttributeCarrier::allowedTags() {
+ // define on first access
+ if (_allowedTags.empty()) {
+ _allowedTags.push_back(SUMO_TAG_JUNCTION);
+ _allowedTags.push_back(SUMO_TAG_EDGE);
+ _allowedTags.push_back(SUMO_TAG_LANE);
+ }
+ return _allowedTags;
+}
+
+
+bool
+GNEAttributeCarrier::isNumerical(SumoXMLAttr attr) {
+ // define on first access
+ if (_numericalAttrs.empty()) {
+ _numericalAttrs.insert(SUMO_ATTR_SPEED);
+ _numericalAttrs.insert(SUMO_ATTR_PRIORITY);
+ _numericalAttrs.insert(SUMO_ATTR_NUMLANES);
+ _numericalAttrs.insert(SUMO_ATTR_LENGTH);
+ _numericalAttrs.insert(SUMO_ATTR_WIDTH);
+ _numericalAttrs.insert(SUMO_ATTR_ENDOFFSET);
+ _numericalAttrs.insert(SUMO_ATTR_INDEX);
+ _numericalAttrs.insert(SUMO_ATTR_RADIUS);
+ }
+ return _numericalAttrs.count(attr) == 1;
+}
+
+
+bool
+GNEAttributeCarrier::isUnique(SumoXMLAttr attr) {
+ // define on first access
+ if (_uniqueAttrs.empty()) {
+ _uniqueAttrs.insert(SUMO_ATTR_ID);
+ _uniqueAttrs.insert(SUMO_ATTR_FROM);
+ _uniqueAttrs.insert(SUMO_ATTR_TO);
+ _uniqueAttrs.insert(SUMO_ATTR_SHAPE);
+ _uniqueAttrs.insert(SUMO_ATTR_POSITION);
+ _uniqueAttrs.insert(SUMO_ATTR_EDGES);
+ }
+ return _uniqueAttrs.count(attr) == 1;
+}
+
+
+const std::vector<std::string>&
+GNEAttributeCarrier::discreteChoices(SumoXMLTag tag, SumoXMLAttr attr) {
+ // define on first access
+ if (_discreteChoices.empty()) {
+ std::vector<std::string> choices;
+ choices = SUMOXMLDefinitions::NodeTypes.getStrings();
+ for (std::vector<std::string>::const_iterator it = choices.begin(); it != choices.end(); ++it) {
+ if (*it != toString(NODETYPE_DEAD_END_DEPRECATED)) {
+ _discreteChoices[SUMO_TAG_JUNCTION][SUMO_ATTR_TYPE].push_back(*it);
+ }
+ }
+
+ _discreteChoices[SUMO_TAG_JUNCTION][SUMO_ATTR_KEEP_CLEAR].push_back("true");
+ _discreteChoices[SUMO_TAG_JUNCTION][SUMO_ATTR_KEEP_CLEAR].push_back("false");
+
+ choices = SUMOXMLDefinitions::LaneSpreadFunctions.getStrings();
+ for (std::vector<std::string>::const_iterator it = choices.begin(); it != choices.end(); ++it) {
+ _discreteChoices[SUMO_TAG_EDGE][SUMO_ATTR_SPREADTYPE].push_back(*it);
+ }
+
+ choices = SumoVehicleClassStrings.getStrings();
+ for (std::vector<std::string>::const_iterator it = choices.begin(); it != choices.end(); ++it) {
+ _discreteChoices[SUMO_TAG_EDGE][SUMO_ATTR_ALLOW].push_back(*it);
+ _discreteChoices[SUMO_TAG_EDGE][SUMO_ATTR_DISALLOW].push_back(*it);
+ _discreteChoices[SUMO_TAG_LANE][SUMO_ATTR_ALLOW].push_back(*it);
+ _discreteChoices[SUMO_TAG_LANE][SUMO_ATTR_DISALLOW].push_back(*it);
+ }
+
+ _discreteChoices[SUMO_TAG_CROSSING][SUMO_ATTR_PRIORITY].push_back("true");
+ _discreteChoices[SUMO_TAG_CROSSING][SUMO_ATTR_PRIORITY].push_back("false");
+ }
+ return _discreteChoices[tag][attr];
+}
+
+
+bool
+GNEAttributeCarrier::discreteCombinableChoices(SumoXMLTag, SumoXMLAttr attr) {
+ return (attr == SUMO_ATTR_ALLOW || attr == SUMO_ATTR_DISALLOW);
+}
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEAttributeCarrier.h b/src/netedit/GNEAttributeCarrier.h
new file mode 100644
index 0000000..8365b92
--- /dev/null
+++ b/src/netedit/GNEAttributeCarrier.h
@@ -0,0 +1,183 @@
+/****************************************************************************/
+/// @file GNEAttributeCarrier.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEAttributeCarrier.h 18856 2015-09-18 02:13:59Z namdre $
+///
+// Abstract Base class for gui objects which carry attributes
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEAttributeCarrier_h
+#define GNEAttributeCarrier_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <vector>
+#include <map>
+#include <utils/xml/SUMOXMLDefinitions.h>
+#include <utils/common/ToString.h>
+#include "GNEReferenceCounter.h"
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNENet;
+class GNEUndoList;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEAttributeCarrier
+ *
+ * Abstract Base class for gui objects which carry attributes
+ * inherits from GNEReferenceCounter for convenience
+ */
+class GNEAttributeCarrier : public GNEReferenceCounter {
+
+ friend class GNEChange_Attribute;
+
+public:
+
+ /** @brief Constructor
+ */
+ GNEAttributeCarrier(SumoXMLTag tag);
+
+
+ /// @brief Destructor
+ virtual ~GNEAttributeCarrier() {};
+
+ virtual std::string getAttribute(SumoXMLAttr key) const = 0;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ * @param[in] net optionally the GNENet to inform about gui updates
+ */
+ virtual void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) = 0;
+
+ virtual bool isValid(SumoXMLAttr key, const std::string& value);
+
+ /// @brief how should this attribute carrier be called
+ virtual std::string getDescription() {
+ return toString(myTag);
+ }
+
+ SumoXMLTag getTag() const {
+ return myTag;
+ }
+
+ const std::vector<SumoXMLAttr>& getAttrs() const {
+ return GNEAttributeCarrier::allowedAttributes(myTag);
+ }
+
+ /// @brief function to support debugging
+ const std::string getID() const {
+ return getAttribute(SUMO_ATTR_ID);
+ }
+
+ /// @brief get all editable attributes for tag.
+ static const std::vector<SumoXMLAttr>& allowedAttributes(SumoXMLTag tag);
+
+ /// @brief get all editable attributes for tag.
+ static const std::vector<SumoXMLTag>& allowedTags();
+
+ /// @brief whether an attribute is numerical
+ static bool isNumerical(SumoXMLAttr attr);
+
+ /// @brief whether an attribute is unique (may not be edited for a multi-selection)
+ static bool isUnique(SumoXMLAttr attr);
+
+ /// @brief return a list of discrete choices for this attribute or an empty vector
+ static const std::vector<std::string>& discreteChoices(SumoXMLTag tag, SumoXMLAttr attr);
+
+ /// @brief return whether the given attribute allows for a combination of discrete values
+ static bool discreteCombinableChoices(SumoXMLTag tag, SumoXMLAttr attr);
+
+ /// @brief true if an object of type T can be parsed from string
+ template <class T>
+ static bool canParse(const std::string& string) {
+ T tmp;
+ std::istringstream buf(string);
+ buf >> tmp;
+ return !buf.fail() && (size_t)buf.tellg() == string.size();
+ }
+
+ /// @brief parses an object of type T from from string
+ template <class T>
+ static T parse(const std::string& string) {
+ T result;
+ std::istringstream buf(string);
+ buf >> result;
+ return result;
+ }
+
+ /// @brief true if a positive number of type T can be parsed from string
+ template <class T>
+ static bool isPositive(const std::string& string) {
+ if (canParse<T>(string)) {
+ return parse<T>(string) > 0;
+ } else {
+ return false;
+ }
+ }
+
+ /// @brief true if value is a valid sumo ID
+ static bool isValidID(const std::string& value);
+
+ /// @brief feature is still unchanged after being loaded (implies approval)
+ static const std::string LOADED;
+ /// @brief feature has been reguessed (may still be unchanged be we can't tell (yet)
+ static const std::string GUESSED;
+ /// @brief feature has been manually modified (implies approval)
+ static const std::string MODIFIED;
+ /// @brief feature has been approved but not changed (i.e. after being reguessed)
+ static const std::string APPROVED;
+
+
+private:
+ /* @brief method for setting the attribute and nothing else
+ * (used in GNEChange_Attribute)
+ * */
+ virtual void setAttribute(SumoXMLAttr key, const std::string& value) = 0;
+
+ /// @brief the xml tag to which this carrier corresponds
+ const SumoXMLTag myTag;
+
+ static std::map<SumoXMLTag, std::vector<SumoXMLAttr> > _allowedAttributes;
+ static std::vector<SumoXMLTag> _allowedTags;
+ static std::set<SumoXMLAttr> _numericalAttrs;
+ static std::set<SumoXMLAttr> _uniqueAttrs;
+ static std::map<SumoXMLTag, std::map<SumoXMLAttr, std::vector<std::string> > > _discreteChoices;
+
+private:
+ /// @brief Invalidated assignment operator
+ GNEAttributeCarrier& operator=(const GNEAttributeCarrier& src);
+
+};
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netbuild/NBLinkPossibilityMatrix.h b/src/netedit/GNEChange.cpp
similarity index 63%
copy from src/netbuild/NBLinkPossibilityMatrix.h
copy to src/netedit/GNEChange.cpp
index b867b28..96fecbd 100644
--- a/src/netbuild/NBLinkPossibilityMatrix.h
+++ b/src/netedit/GNEChange.cpp
@@ -1,12 +1,11 @@
/****************************************************************************/
-/// @file NBLinkPossibilityMatrix.h
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
-/// @date Sept 2002
-/// @version $Id: NBLinkPossibilityMatrix.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @file GNEChange.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange.cpp 18830 2015-09-11 08:57:34Z behrisch $
///
-// A matric to describe whether two links are foes to each other
+// The reification of a NETEDIT editing operation (see command pattern)
+// inherits from FXCommand and is used to for undo/redo
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -19,9 +18,6 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef NBLinkPossibilityMatrix_h
-#define NBLinkPossibilityMatrix_h
-
// ===========================================================================
// included modules
@@ -32,21 +28,25 @@
#include <config.h>
#endif
-#include <bitset>
-#include <vector>
+#include "GNEChange.h"
+#include "GNENet.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
// ===========================================================================
-// class definitions
+// FOX-declarations
// ===========================================================================
-/**
- * @class NBLinkPossibilityMatrix
- * Storing the information which links may be used simultanously, this matrix
- * is simply made by a vector of bitsets
- */
-typedef std::vector<std::bitset<64> > NBLinkPossibilityMatrix;
+FXIMPLEMENT_ABSTRACT(GNEChange, FXCommand, NULL, 0)
+// ===========================================================================
+// member method definitions
+// ===========================================================================
-#endif
+GNEChange::GNEChange(GNENet* net, bool forward) :
+ myNet(net),
+ myForward(forward) {}
/****************************************************************************/
diff --git a/src/microsim/MSJunctionControl.h b/src/netedit/GNEChange.h
similarity index 52%
copy from src/microsim/MSJunctionControl.h
copy to src/netedit/GNEChange.h
index bfbbe87..f962396 100644
--- a/src/microsim/MSJunctionControl.h
+++ b/src/netedit/GNEChange.h
@@ -1,13 +1,11 @@
/****************************************************************************/
-/// @file MSJunctionControl.h
-/// @author Christian Roessel
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
-/// @date Mon, 12 Mar 2001
-/// @version $Id: MSJunctionControl.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @file GNEChange.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange.h 18830 2015-09-11 08:57:34Z behrisch $
///
-// Container for junctions; performs operations on all stored junctions
+// The reification of a NETEDIT editing operation (see command pattern)
+// inherits from FXCommand and is used to for undo/redo
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -20,9 +18,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef MSJunctionControl_h
-#define MSJunctionControl_h
-
+#ifndef GNEChange_h
+#define GNEChange_h
// ===========================================================================
// included modules
@@ -33,57 +30,61 @@
#include <config.h>
#endif
-#include <vector>
-#include <map>
-#include <string>
-
-#include <utils/common/NamedObjectCont.h>
-#include <utils/common/UtilExceptions.h>
-
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
// ===========================================================================
// class declarations
// ===========================================================================
-class MSJunction;
-
+class GNENet;
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class MSJunctionControl
- * @brief Container for junctions; performs operations on all stored junctions
+ * @class GNEChange
+ * @brief the function-object for an editing operation (abstract base)
*/
-class MSJunctionControl : public NamedObjectCont<MSJunction*> {
+class GNEChange : public FXCommand {
+ FXDECLARE_ABSTRACT(GNEChange)
+
public:
- /// @brief Constructor
- MSJunctionControl();
+ /** @brief Constructor
+ * @param[in] net The net on which to apply changes
+ * @param[in] forward The direction of this change
+ */
+ GNEChange(GNENet* net, bool forward);
/// @brief Destructor
- ~MSJunctionControl();
-
-
- /** @brief Closes building of junctions
- *
- * Calls "postloadInit" on all stored junctions.
- * @exception ProcessError From the called "postloadInit"
- * @see MSJunction::postloadInit
+ ~GNEChange() {};
+
+ virtual FXuint size() const {
+ return 1;
+ }
+
+ virtual FXString undoName() const {
+ return "Undo";
+ }
+ virtual FXString redoName() const {
+ return "Redo";
+ }
+ virtual void undo() {};
+ virtual void redo() {};
+
+
+protected:
+ /** @brief the net to which operations shall be applied or which shall be
+ * informed about gui updates
+ * (we are not responsible for the pointer)
*/
- void postloadInitContainer();
-
-
-private:
- /// @brief Invalidated copy constructor.
- MSJunctionControl(const MSJunctionControl&);
-
- /// @brief Invalidated assignment operator.
- MSJunctionControl& operator=(const MSJunctionControl&);
+ GNENet* myNet;
+ /** @brief we group antagonistic commands (create junction/delete
+ * junction) and keep them apart by this flag
+ */
+ bool myForward;
};
-
#endif
-
/****************************************************************************/
-
diff --git a/src/netedit/GNEChange_Attribute.cpp b/src/netedit/GNEChange_Attribute.cpp
new file mode 100644
index 0000000..7a34692
--- /dev/null
+++ b/src/netedit/GNEChange_Attribute.cpp
@@ -0,0 +1,88 @@
+/****************************************************************************/
+/// @file GNEChange_Attribute.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange_Attribute.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which something is moved (for undo/redo)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <cassert>
+#include "GNEChange_Attribute.h"
+#include "GNEAttributeCarrier.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_Attribute, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+GNEChange_Attribute::GNEChange_Attribute(GNEAttributeCarrier* ac,
+ SumoXMLAttr key,
+ const std::string& value,
+ bool customOrigValue,
+ const std::string& origValue) :
+ GNEChange(0, true),
+ myAC(ac),
+ myKey(key),
+ myOrigValue(customOrigValue ? origValue : ac->getAttribute(key)),
+ myNewValue(value) {
+ myAC->incRef("GNEChange_Attribute " + toString(myKey));
+}
+
+
+GNEChange_Attribute::~GNEChange_Attribute() {
+ assert(myAC);
+ myAC->decRef("GNEChange_Attribute " + toString(myKey));
+ if (myAC->unreferenced()) {
+ delete myAC;
+ }
+}
+
+
+void GNEChange_Attribute::undo() {
+ myAC->setAttribute(myKey, myOrigValue);
+}
+
+
+void GNEChange_Attribute::redo() {
+ myAC->setAttribute(myKey, myNewValue);
+}
+
+
+FXString GNEChange_Attribute::undoName() const {
+ return ("Undo change " + myAC->getDescription() + " attribute").c_str();
+}
+
+
+FXString GNEChange_Attribute::redoName() const {
+ return ("Redo change " + myAC->getDescription() + " attribute").c_str();
+}
diff --git a/src/netedit/GNEChange_Attribute.h b/src/netedit/GNEChange_Attribute.h
new file mode 100644
index 0000000..6453b51
--- /dev/null
+++ b/src/netedit/GNEChange_Attribute.h
@@ -0,0 +1,98 @@
+/****************************************************************************/
+/// @file GNEChange_Attribute.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange_Attribute.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which the attribute of some object is modified
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEChange_Attribute_h
+#define GNEChange_Attribute_h
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
+#include <utils/xml/SUMOXMLDefinitions.h>
+#include "GNEChange.h"
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEAttributeCarrier;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEChange_Attribute
+ * @brief the function-object for an editing operation (abstract base)
+ */
+class GNEChange_Attribute : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_Attribute)
+
+public:
+ /** @brief Constructor
+ * @param[in] ac The attribute-carrier to be modified
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] net Optionally the net on which to apply changes
+ */
+ GNEChange_Attribute(GNEAttributeCarrier* ac,
+ const SumoXMLAttr key,
+ const std::string& value,
+ bool customOrigValue = false,
+ const std::string& origValue = "");
+
+
+ /// @brief Destructor
+ ~GNEChange_Attribute();
+
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
+
+ /// @brief wether original and new value differ
+ bool trueChange() {
+ return myOrigValue != myNewValue;
+ }
+
+
+private:
+ /** @brief the net to which all operations shall be applied
+ * (we are not responsible for the pointer)
+ */
+ GNEAttributeCarrier* myAC;
+
+ /// @brief The attribute name
+ SumoXMLAttr myKey;
+
+ /// @brief the original value
+ std::string myOrigValue;
+
+ /// @brief the original value
+ std::string myNewValue;
+
+};
+
+#endif
+/****************************************************************************/
diff --git a/src/netedit/GNEChange_Connection.cpp b/src/netedit/GNEChange_Connection.cpp
new file mode 100644
index 0000000..b3ccd5e
--- /dev/null
+++ b/src/netedit/GNEChange_Connection.cpp
@@ -0,0 +1,105 @@
+/****************************************************************************/
+/// @file GNEChange_Connection.cpp
+/// @author Jakob Erdmann
+/// @date May 2011
+/// @version $Id: GNEChange_Connection.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a single connection is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <cassert>
+#include "GNEChange_Connection.h"
+#include "GNEEdge.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_Connection, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+
+// Constructor for creating an edge
+GNEChange_Connection::GNEChange_Connection(GNEEdge* edge, unsigned int fromLane,
+ const std::string& toEdgeID, unsigned int toLane,
+ bool mayDefinitelyPass, bool forward):
+ GNEChange(0, forward),
+ myEdge(edge),
+ myFromLane(fromLane),
+ myToEdgeID(toEdgeID),
+ myToLane(toLane),
+ myPass(mayDefinitelyPass) {
+ myEdge->incRef("GNEChange_Connection");
+}
+
+
+GNEChange_Connection::~GNEChange_Connection() {
+ assert(myEdge);
+ myEdge->decRef("GNEChange_Connection");
+ if (myEdge->unreferenced()) {
+ delete myEdge;
+ }
+}
+
+
+void GNEChange_Connection::undo() {
+ if (myForward) {
+ myEdge->removeConnection(myFromLane, myToEdgeID, myToLane);
+ } else {
+ myEdge->addConnection(myFromLane, myToEdgeID, myToLane, myPass);
+ }
+}
+
+
+void GNEChange_Connection::redo() {
+ if (myForward) {
+ myEdge->addConnection(myFromLane, myToEdgeID, myToLane, myPass);
+ } else {
+ myEdge->removeConnection(myFromLane, myToEdgeID, myToLane);
+ }
+}
+
+
+FXString GNEChange_Connection::undoName() const {
+ if (myForward) {
+ return ("Undo create connection");
+ } else {
+ return ("Undo delete connection");
+ }
+}
+
+
+FXString GNEChange_Connection::redoName() const {
+ if (myForward) {
+ return ("Redo create connection");
+ } else {
+ return ("Redo delete connection");
+ }
+}
diff --git a/src/netedit/GNEChange_Connection.h b/src/netedit/GNEChange_Connection.h
new file mode 100644
index 0000000..2a03041
--- /dev/null
+++ b/src/netedit/GNEChange_Connection.h
@@ -0,0 +1,95 @@
+/****************************************************************************/
+/// @file GNEChange_Connection.h
+/// @author Jakob Erdmann
+/// @date May 2011
+/// @version $Id: GNEChange_Connection.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a single connection is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEChange_Connection_h
+#define GNEChange_Connection_h
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <string>
+#include <utils/foxtools/fxexdefs.h>
+#include "GNEChange.h"
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEEdge;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEChange_Connection
+ * A network change in which a single lane is created or deleted
+ */
+class GNEChange_Connection : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_Connection)
+
+public:
+ /** @brief Constructor for creating/deleting an edge
+ * @param[in] edge The edge on which to apply changes
+ * @param[in] lane The lane to be deleted or 0 if a lane should be created
+ * @param[in] laneAttrs The attributes of the lane to be created/deleted
+ * @param[in] forward Whether to create/delete (true/false)
+ */
+ GNEChange_Connection(GNEEdge* edge, unsigned int fromLane,
+ const std::string& toEdgeID, unsigned int toLane,
+ bool mayDefinitelyPass, bool forward);
+
+ /// @brief Destructor
+ ~GNEChange_Connection();
+
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
+
+
+private:
+ /** @brief full information regarding the lane that is to be created/deleted
+ * we assume shared responsibility for the pointers (via reference counting)
+ */
+
+ // we need the edge because it is the target of our change commands
+ GNEEdge* myEdge;
+
+ // @brief the lane from which the connection originates
+ unsigned int myFromLane;
+
+ // @brief the id of the target edge
+ const std::string myToEdgeID;
+
+ // @brief the target lane of the connection
+ unsigned int myToLane;
+
+ // @brief whether this connection never yields
+ bool myPass;
+
+};
+
+#endif
+/****************************************************************************/
diff --git a/src/netedit/GNEChange_Edge.cpp b/src/netedit/GNEChange_Edge.cpp
new file mode 100644
index 0000000..2433ae5
--- /dev/null
+++ b/src/netedit/GNEChange_Edge.cpp
@@ -0,0 +1,100 @@
+/****************************************************************************/
+/// @file GNEChange_Edge.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange_Edge.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a single junction is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include "GNEChange_Edge.h"
+#include "GNENet.h"
+#include "GNEEdge.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_Edge, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+
+// Constructor for creating an edge
+GNEChange_Edge::GNEChange_Edge(GNENet* net, GNEEdge* edge, bool forward):
+ GNEChange(net, forward),
+ myEdge(edge) {
+ assert(myNet);
+ edge->incRef("GNEChange_Edge");
+}
+
+
+GNEChange_Edge::~GNEChange_Edge() {
+ assert(myEdge);
+ myEdge->decRef("GNEChange_Edge");
+ if (myEdge->unreferenced()) {
+ delete myEdge;
+ }
+}
+
+
+void GNEChange_Edge::undo() {
+ if (myForward) {
+ myNet->deleteSingleEdge(myEdge);
+ } else {
+ myNet->insertEdge(myEdge);
+ }
+}
+
+
+void GNEChange_Edge::redo() {
+ if (myForward) {
+ myNet->insertEdge(myEdge);
+ } else {
+ myNet->deleteSingleEdge(myEdge);
+ }
+}
+
+
+FXString GNEChange_Edge::undoName() const {
+ if (myForward) {
+ return ("Undo create edge");
+ } else {
+ return ("Undo delete edge");
+ }
+}
+
+
+FXString GNEChange_Edge::redoName() const {
+ if (myForward) {
+ return ("Redo create edge");
+ } else {
+ return ("Redo delete edge");
+ }
+}
diff --git a/src/netbuild/NBHelpers.h b/src/netedit/GNEChange_Edge.h
similarity index 56%
copy from src/netbuild/NBHelpers.h
copy to src/netedit/GNEChange_Edge.h
index c3337e8..9f77461 100644
--- a/src/netbuild/NBHelpers.h
+++ b/src/netedit/GNEChange_Edge.h
@@ -1,13 +1,10 @@
/****************************************************************************/
-/// @file NBHelpers.h
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
+/// @file GNEChange_Edge.h
/// @author Jakob Erdmann
-/// @date Tue, 20 Nov 2001
-/// @version $Id: NBHelpers.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @date Mar 2011
+/// @version $Id: GNEChange_Edge.h 18830 2015-09-11 08:57:34Z behrisch $
///
-// Some mathematical helper methods
+// A network change in which a single edge is created or deleted
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -20,9 +17,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef NBHelpers_h
-#define NBHelpers_h
-
+#ifndef GNEChange_Edge_h
+#define GNEChange_Edge_h
// ===========================================================================
// included modules
@@ -33,45 +29,49 @@
#include <config.h>
#endif
-#include <string>
-
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
+#include "GNEChange.h"
// ===========================================================================
// class declarations
// ===========================================================================
-class NBNode;
-class Position;
-
+class GNENet;
+class GNEEdge;
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class NBHelpers
- * Some mathmatical methods for the computation of angles
+ * @class GNEChange_Edge
+ * A network change in which a single edge is created or deleted
*/
-class NBHelpers {
-public:
- /** computes the angle of the straight which is described by the two
- coordinates */
- static SUMOReal angle(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2);
-
- /** computes the relative angle between the two angles */
- static SUMOReal relAngle(SUMOReal angle1, SUMOReal angle2);
-
- ///@brief ensure that reverse relAngles (>=179.999) always count as turnarounds (-180)
- static SUMOReal normRelAngle(SUMOReal angle1, SUMOReal angle2);
-
- /** converts the numerical id to its "normal" string representation */
- static std::string normalIDRepresentation(const std::string& id);
-
- /** returns the distance between both nodes */
- static SUMOReal distance(NBNode* node1, NBNode* node2);
+class GNEChange_Edge : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_Edge)
+public:
+ /** @brief Constructor for creating/deleting an edge
+ * @param[in] net The net on which to apply changes
+ * @param[in] edge The edge to be created/deleted
+ * @param[in] forward Whether to create/delete (true/false)
+ */
+ GNEChange_Edge(GNENet* net, GNEEdge* edge, bool forward);
+
+ /// @brief Destructor
+ ~GNEChange_Edge();
+
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
+
+
+private:
+ /** @brief full information regarding the edge that is to be created/deleted
+ * we assume shared responsibility for the pointer (via reference counting)
+ */
+ GNEEdge* myEdge;
};
-
#endif
-
/****************************************************************************/
-
diff --git a/src/netedit/GNEChange_Junction.cpp b/src/netedit/GNEChange_Junction.cpp
new file mode 100644
index 0000000..3cd1c10
--- /dev/null
+++ b/src/netedit/GNEChange_Junction.cpp
@@ -0,0 +1,103 @@
+/****************************************************************************/
+/// @file GNEChange_Junction.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange_Junction.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a single junction is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/
+// Copyright (C) 2001-2014 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include "GNEChange_Junction.h"
+#include "GNENet.h"
+#include "GNEJunction.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_Junction, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+
+// Constructor for creating a junction
+GNEChange_Junction::GNEChange_Junction(GNENet* net, GNEJunction* junction, bool forward):
+ GNEChange(net, forward),
+ myJunction(junction) {
+ assert(myNet);
+ junction->incRef("GNEChange_Junction");
+}
+
+
+GNEChange_Junction::~GNEChange_Junction() {
+ assert(myJunction);
+ myJunction->decRef("GNEChange_Junction");
+ if (myJunction->unreferenced()) {
+ delete myJunction;
+ }
+}
+
+
+void GNEChange_Junction::undo() {
+ if (myForward) {
+ myNet->deleteSingleJunction(myJunction);
+ } else {
+ myNet->insertJunction(myJunction);
+ }
+}
+
+
+void GNEChange_Junction::redo() {
+ if (myForward) {
+ myNet->insertJunction(myJunction);
+ } else {
+ myNet->deleteSingleJunction(myJunction);
+ }
+}
+
+
+FXString GNEChange_Junction::undoName() const {
+ if (myForward) {
+ return ("Undo create junction");
+ } else {
+ return ("Undo delete junction");
+ }
+}
+
+
+FXString GNEChange_Junction::redoName() const {
+ if (myForward) {
+ return ("Redo create junction");
+ } else {
+ return ("Redo delete junction");
+ }
+}
diff --git a/src/microsim/MSJunctionControl.h b/src/netedit/GNEChange_Junction.h
similarity index 55%
copy from src/microsim/MSJunctionControl.h
copy to src/netedit/GNEChange_Junction.h
index bfbbe87..67f0218 100644
--- a/src/microsim/MSJunctionControl.h
+++ b/src/netedit/GNEChange_Junction.h
@@ -1,13 +1,10 @@
/****************************************************************************/
-/// @file MSJunctionControl.h
-/// @author Christian Roessel
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
-/// @date Mon, 12 Mar 2001
-/// @version $Id: MSJunctionControl.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @file GNEChange_Junction.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEChange_Junction.h 18830 2015-09-11 08:57:34Z behrisch $
///
-// Container for junctions; performs operations on all stored junctions
+// A network change in which a single junction is created or deleted
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -20,9 +17,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef MSJunctionControl_h
-#define MSJunctionControl_h
-
+#ifndef GNEChange_Junction_h
+#define GNEChange_Junction_h
// ===========================================================================
// included modules
@@ -33,57 +29,50 @@
#include <config.h>
#endif
-#include <vector>
-#include <map>
-#include <string>
-
-#include <utils/common/NamedObjectCont.h>
-#include <utils/common/UtilExceptions.h>
-
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
+#include "GNEChange.h"
// ===========================================================================
// class declarations
// ===========================================================================
-class MSJunction;
-
+class GNENet;
+class GNEJunction;
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class MSJunctionControl
- * @brief Container for junctions; performs operations on all stored junctions
+ * @class GNEChange_Junction
+ * A network change in which a single junction is created or deleted
*/
-class MSJunctionControl : public NamedObjectCont<MSJunction*> {
-public:
- /// @brief Constructor
- MSJunctionControl();
+class GNEChange_Junction : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_Junction)
+public:
+ /** @brief Constructor for creating/deleting a junction
+ * @param[in] net The net on which to apply changes
+ * @param[in] junction The junction to be created/deleted
+ * @param[in] forward Whether to create/delete (true/false)
+ */
+ GNEChange_Junction(GNENet* net, GNEJunction* junction, bool forward);
/// @brief Destructor
- ~MSJunctionControl();
+ ~GNEChange_Junction();
-
- /** @brief Closes building of junctions
- *
- * Calls "postloadInit" on all stored junctions.
- * @exception ProcessError From the called "postloadInit"
- * @see MSJunction::postloadInit
- */
- void postloadInitContainer();
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
private:
- /// @brief Invalidated copy constructor.
- MSJunctionControl(const MSJunctionControl&);
-
- /// @brief Invalidated assignment operator.
- MSJunctionControl& operator=(const MSJunctionControl&);
+ /** @brief full information regarding the junction that is to be created/deleted
+ * we assume shared responsibility for the pointer (via reference counting)
+ */
+ GNEJunction* myJunction;
};
-
#endif
-
/****************************************************************************/
-
diff --git a/src/netedit/GNEChange_Lane.cpp b/src/netedit/GNEChange_Lane.cpp
new file mode 100644
index 0000000..2971de8
--- /dev/null
+++ b/src/netedit/GNEChange_Lane.cpp
@@ -0,0 +1,114 @@
+/****************************************************************************/
+/// @file GNEChange_Lane.cpp
+/// @author Jakob Erdmann
+/// @date April 2011
+/// @version $Id: GNEChange_Lane.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a single lane is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <cassert>
+#include "GNEChange_Lane.h"
+#include "GNEEdge.h"
+#include "GNELane.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_Lane, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+
+// Constructor for creating an edge
+GNEChange_Lane::GNEChange_Lane(GNEEdge* edge, GNELane* lane, const NBEdge::Lane& laneAttrs, bool forward):
+ GNEChange(0, forward),
+ myEdge(edge),
+ myLane(lane),
+ myLaneAttrs(laneAttrs) {
+ myEdge->incRef("GNEChange_Lane");
+ if (myLane) { // non-zero pointer is only passsed in case of removal
+ assert(!forward);
+ myLane->incRef("GNEChange_Lane");
+ } else {
+ assert(forward);
+ }
+}
+
+
+GNEChange_Lane::~GNEChange_Lane() {
+ assert(myEdge);
+ myEdge->decRef("GNEChange_Lane");
+ if (myEdge->unreferenced()) {
+ delete myEdge;
+ }
+ if (myLane) {
+ myLane->decRef("GNEChange_Lane");
+ if (myLane->unreferenced()) {
+ delete myLane;
+ }
+ }
+}
+
+
+void GNEChange_Lane::undo() {
+ if (myForward) {
+ myEdge->removeLane(myLane);
+ } else {
+ myEdge->addLane(myLane, myLaneAttrs);
+ }
+}
+
+
+void GNEChange_Lane::redo() {
+ if (myForward) {
+ myEdge->addLane(myLane, myLaneAttrs);
+ } else {
+ myEdge->removeLane(myLane);
+ }
+}
+
+
+FXString GNEChange_Lane::undoName() const {
+ if (myForward) {
+ return ("Undo create lane");
+ } else {
+ return ("Undo delete lane");
+ }
+}
+
+
+FXString GNEChange_Lane::redoName() const {
+ if (myForward) {
+ return ("Redo create lane");
+ } else {
+ return ("Redo delete lane");
+ }
+}
diff --git a/src/netedit/GNEChange_Lane.h b/src/netedit/GNEChange_Lane.h
new file mode 100644
index 0000000..0b510a9
--- /dev/null
+++ b/src/netedit/GNEChange_Lane.h
@@ -0,0 +1,89 @@
+/****************************************************************************/
+/// @file GNEChange_Lane.h
+/// @author Jakob Erdmann
+/// @date April 2011
+/// @version $Id: GNEChange_Lane.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a single lane is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEChange_Lane_h
+#define GNEChange_Lane_h
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
+#include <netbuild/NBEdge.h>
+#include "GNEChange.h"
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEEdge;
+class GNELane;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEChange_Lane
+ * A network change in which a single lane is created or deleted
+ */
+class GNEChange_Lane : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_Lane)
+
+public:
+ /** @brief Constructor for creating/deleting an edge
+ * @param[in] edge The edge on which to apply changes
+ * @param[in] lane The lane to be deleted or 0 if a lane should be created
+ * @param[in] laneAttrs The attributes of the lane to be created/deleted
+ * @param[in] forward Whether to create/delete (true/false)
+ */
+ GNEChange_Lane(GNEEdge* edge, GNELane* lane, const NBEdge::Lane& laneAttrs, bool forward);
+
+ /// @brief Destructor
+ ~GNEChange_Lane();
+
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
+
+
+private:
+ /** @brief full information regarding the lane that is to be created/deleted
+ * we assume shared responsibility for the pointers (via reference counting)
+ */
+
+ // we need the edge because it is the target of our change commands
+ GNEEdge* myEdge;
+
+ // we need to preserve the lane because it maybe the target of
+ // GNEChange_Attribute commands
+ GNELane* myLane;
+
+ // we need to preserve the attributes explicitly because they are not
+ // contained withing GNELane itself
+ const NBEdge::Lane myLaneAttrs;
+};
+
+#endif
+/****************************************************************************/
diff --git a/src/netedit/GNEChange_Selection.cpp b/src/netedit/GNEChange_Selection.cpp
new file mode 100644
index 0000000..e7990df
--- /dev/null
+++ b/src/netedit/GNEChange_Selection.cpp
@@ -0,0 +1,113 @@
+/****************************************************************************/
+/// @file GNEChange_Selection.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2015
+/// @version $Id: GNEChange_Selection.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A change to the network selection
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include "GNEChange_Selection.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_Selection, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+
+// Constructor for changing selection
+GNEChange_Selection::GNEChange_Selection(const std::set<GUIGlID>& selected, const std::set<GUIGlID>& deselected, bool forward):
+ GNEChange(0, forward),
+ mySelectedIDs(selected),
+ myDeselectedIDs(deselected) {
+}
+
+
+GNEChange_Selection::~GNEChange_Selection() {
+}
+
+
+void GNEChange_Selection::undo() {
+ if (myForward) {
+ for (std::set<GUIGlID>::const_iterator it = mySelectedIDs.begin(); it != mySelectedIDs.end(); it++) {
+ gSelected.deselect(*it);
+ }
+ for (std::set<GUIGlID>::const_iterator it = myDeselectedIDs.begin(); it != myDeselectedIDs.end(); it++) {
+ gSelected.select(*it);
+ }
+ } else {
+ for (std::set<GUIGlID>::const_iterator it = mySelectedIDs.begin(); it != mySelectedIDs.end(); it++) {
+ gSelected.select(*it);
+ }
+ for (std::set<GUIGlID>::const_iterator it = myDeselectedIDs.begin(); it != myDeselectedIDs.end(); it++) {
+ gSelected.deselect(*it);
+ }
+ }
+}
+
+
+void GNEChange_Selection::redo() {
+ if (myForward) {
+ for (std::set<GUIGlID>::const_iterator it = mySelectedIDs.begin(); it != mySelectedIDs.end(); it++) {
+ gSelected.select(*it);
+ }
+ for (std::set<GUIGlID>::const_iterator it = myDeselectedIDs.begin(); it != myDeselectedIDs.end(); it++) {
+ gSelected.deselect(*it);
+ }
+ } else {
+ for (std::set<GUIGlID>::const_iterator it = mySelectedIDs.begin(); it != mySelectedIDs.end(); it++) {
+ gSelected.deselect(*it);
+ }
+ for (std::set<GUIGlID>::const_iterator it = myDeselectedIDs.begin(); it != myDeselectedIDs.end(); it++) {
+ gSelected.select(*it);
+ }
+ }
+}
+
+
+FXString GNEChange_Selection::undoName() const {
+ if (myForward) {
+ return ("Undo change selection");
+ } else {
+ return ("Undo change selection");
+ }
+}
+
+
+FXString GNEChange_Selection::redoName() const {
+ if (myForward) {
+ return ("Redo change selection");
+ } else {
+ return ("Redo change selection");
+ }
+}
diff --git a/src/netbuild/NBHelpers.h b/src/netedit/GNEChange_Selection.h
similarity index 55%
copy from src/netbuild/NBHelpers.h
copy to src/netedit/GNEChange_Selection.h
index c3337e8..2313258 100644
--- a/src/netbuild/NBHelpers.h
+++ b/src/netedit/GNEChange_Selection.h
@@ -1,13 +1,10 @@
/****************************************************************************/
-/// @file NBHelpers.h
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
+/// @file GNEChange_Selection.h
/// @author Jakob Erdmann
-/// @date Tue, 20 Nov 2001
-/// @version $Id: NBHelpers.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @date Mar 2015
+/// @version $Id: GNEChange_Selection.h 18830 2015-09-11 08:57:34Z behrisch $
///
-// Some mathematical helper methods
+// A change to the network selection
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -20,9 +17,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef NBHelpers_h
-#define NBHelpers_h
-
+#ifndef GNEChange_Selection_h
+#define GNEChange_Selection_h
// ===========================================================================
// included modules
@@ -33,45 +29,48 @@
#include <config.h>
#endif
-#include <string>
-
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include "GNEChange.h"
// ===========================================================================
// class declarations
// ===========================================================================
-class NBNode;
-class Position;
-
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class NBHelpers
- * Some mathmatical methods for the computation of angles
+ * @class GNEChange_Selection
+ * A change to the network selection
*/
-class NBHelpers {
-public:
- /** computes the angle of the straight which is described by the two
- coordinates */
- static SUMOReal angle(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2);
-
- /** computes the relative angle between the two angles */
- static SUMOReal relAngle(SUMOReal angle1, SUMOReal angle2);
-
- ///@brief ensure that reverse relAngles (>=179.999) always count as turnarounds (-180)
- static SUMOReal normRelAngle(SUMOReal angle1, SUMOReal angle2);
-
- /** converts the numerical id to its "normal" string representation */
- static std::string normalIDRepresentation(const std::string& id);
-
- /** returns the distance between both nodes */
- static SUMOReal distance(NBNode* node1, NBNode* node2);
+class GNEChange_Selection : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_Selection)
+public:
+ /** @brief Constructor for modifying selection
+ * @param[in] selected The ids to select
+ * @param[in] deselected The ids to deselect
+ * @param[in] forward Whether to select or deselect the selected ids
+ */
+ GNEChange_Selection(const std::set<GUIGlID>& selected, const std::set<GUIGlID>& deselected, bool forward);
+
+ /// @brief Destructor
+ ~GNEChange_Selection();
+
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
+
+
+private:
+ /// @brief all ids that were selected in this change
+ std::set<GUIGlID> mySelectedIDs;
+ /// @brief all ids that were deselected in this change
+ std::set<GUIGlID> myDeselectedIDs;
};
-
#endif
-
/****************************************************************************/
-
diff --git a/src/netedit/GNEChange_TLS.cpp b/src/netedit/GNEChange_TLS.cpp
new file mode 100644
index 0000000..8e14710
--- /dev/null
+++ b/src/netedit/GNEChange_TLS.cpp
@@ -0,0 +1,111 @@
+/****************************************************************************/
+/// @file GNEChange_TLS.cpp
+/// @author Jakob Erdmann
+/// @date July 2011
+/// @version $Id: GNEChange_TLS.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a traffic light is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <cassert>
+#include <utils/options/OptionsCont.h>
+#include <netbuild/NBTrafficLightDefinition.h>
+#include <netbuild/NBOwnTLDef.h>
+#include "GNEChange_TLS.h"
+#include "GNEJunction.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEChange_TLS, GNEChange, NULL, 0)
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+
+
+// Constructor for creating an edge
+GNEChange_TLS::GNEChange_TLS(
+ GNEJunction* junction, NBTrafficLightDefinition* tlDef, bool forward, bool forceInsert, const std::string tlID):
+ GNEChange(0, forward),
+ myJunction(junction),
+ myTlDef(tlDef),
+ myForceInsert(forceInsert) {
+ myJunction->incRef("GNEChange_TLS");
+ if (myTlDef == 0) {
+ assert(forward);
+ // potential memory leak if this change is never executed
+ TrafficLightType type = SUMOXMLDefinitions::TrafficLightTypes.get(OptionsCont::getOptions().getString("tls.default-type"));
+ myTlDef = new NBOwnTLDef(tlID == "" ? myJunction->getMicrosimID() : tlID, 0, type);
+ }
+}
+
+
+GNEChange_TLS::~GNEChange_TLS() {
+ assert(myJunction);
+ myJunction->decRef("GNEChange_TLS");
+ if (myJunction->unreferenced()) {
+ delete myJunction;
+ }
+}
+
+
+void GNEChange_TLS::undo() {
+ if (myForward) {
+ myJunction->removeTrafficLight(myTlDef);
+ } else {
+ myJunction->addTrafficLight(myTlDef, myForceInsert);
+ }
+}
+
+
+void GNEChange_TLS::redo() {
+ if (myForward) {
+ myJunction->addTrafficLight(myTlDef, myForceInsert);
+ } else {
+ myJunction->removeTrafficLight(myTlDef);
+ }
+}
+
+
+FXString GNEChange_TLS::undoName() const {
+ if (myForward) {
+ return ("Undo create traffic light");
+ } else {
+ return ("Undo delete traffic light");
+ }
+}
+
+
+FXString GNEChange_TLS::redoName() const {
+ if (myForward) {
+ return ("Redo create traffic light");
+ } else {
+ return ("Redo delete traffic light");
+ }
+}
diff --git a/src/netedit/GNEChange_TLS.h b/src/netedit/GNEChange_TLS.h
new file mode 100644
index 0000000..03558d5
--- /dev/null
+++ b/src/netedit/GNEChange_TLS.h
@@ -0,0 +1,83 @@
+/****************************************************************************/
+/// @file GNEChange_TLS.h
+/// @author Jakob Erdmann
+/// @date July 2011
+/// @version $Id: GNEChange_TLS.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A network change in which a traffic light is created or deleted
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEChange_TLS_h
+#define GNEChange_TLS_h
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <utils/foxtools/fxexdefs.h>
+#include "GNEChange.h"
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class NBTrafficLightDefinition;
+class GNEJunction;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEChange_TLS
+ * A network change in which a traffic light is created or deleted
+ */
+class GNEChange_TLS : public GNEChange {
+ FXDECLARE_ABSTRACT(GNEChange_TLS)
+
+public:
+ /** @brief Constructor for creating/deleting an edge
+ * @param[in] junction The junction to which the traffic light belong
+ * @param[in] tlDef The traffic light definition (may be 0 on creation)
+ * @param[in] forward Whether to create/delete (true/false)
+ * @param[in] tlID The id for the newly created tlDef (set to junction id if * "" is given)
+ */
+ GNEChange_TLS(GNEJunction* junction, NBTrafficLightDefinition* tlDef, bool forward, bool forceInsert = false, const std::string tlID = "");
+
+ /// @brief Destructor
+ ~GNEChange_TLS();
+
+ FXString undoName() const;
+ FXString redoName() const;
+ void undo();
+ void redo();
+
+
+private:
+ /* we need the junction because it is the target of our change commands
+ * we assume shared responsiblity for the junction via reference counting */
+ GNEJunction* myJunction;
+
+ /* the traffic light to be created/deleted. We assume no responsiblity for the pointer
+ * since it is hard to track by which NBnodes a tlDef is used (may be more than one). */
+ NBTrafficLightDefinition* myTlDef;
+
+ bool myForceInsert;
+};
+
+#endif
+/****************************************************************************/
diff --git a/src/netedit/GNEConnector.cpp b/src/netedit/GNEConnector.cpp
new file mode 100644
index 0000000..d78ed59
--- /dev/null
+++ b/src/netedit/GNEConnector.cpp
@@ -0,0 +1,568 @@
+/****************************************************************************/
+/// @file GNEConnector.cpp
+/// @author Jakob Erdmann
+/// @date May 2011
+/// @version $Id: GNEConnector.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The Widget for modifying lane-to-lane connections
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <iostream>
+#include <utils/foxtools/fxexdefs.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/div/GUIIOGlobals.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include "GNEConnector.h"
+#include "GNESelector.h"
+#include "GNEViewNet.h"
+#include "GNEChange_Connection.h"
+#include "GNEUndoList.h"
+#include "GNENet.h"
+#include "GNELane.h"
+#include "GNEInternalLane.h"
+#include "GNEEdge.h"
+#include "GNEJunction.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNEConnector) GNEConnectorMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_CANCEL, GNEConnector::onCmdCancel),
+ FXMAPFUNC(SEL_COMMAND, MID_OK, GNEConnector::onCmdOK),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELECT_DEAD_ENDS, GNEConnector::onCmdSelectDeadEnds),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELECT_DEAD_STARTS, GNEConnector::onCmdSelectDeadStarts),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELECT_CONFLICTS, GNEConnector::onCmdSelectConflicts),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELECT_PASS, GNEConnector::onCmdSelectPass),
+ FXMAPFUNC(SEL_COMMAND, MID_CHOOSEN_CLEAR, GNEConnector::onCmdClearSelectedConnections),
+ FXMAPFUNC(SEL_COMMAND, MID_CHOOSEN_RESET, GNEConnector::onCmdResetSelectedConnections),
+};
+
+// Object implementation
+FXIMPLEMENT(GNEConnector, FXScrollWindow, GNEConnectorMap, ARRAYNUMBER(GNEConnectorMap))
+
+// ===========================================================================
+// static members
+// ===========================================================================
+const int GNEConnector::WIDTH = 140;
+RGBColor GNEConnector::sourceColor;
+RGBColor GNEConnector::potentialTargetColor;
+RGBColor GNEConnector::targetColor;
+RGBColor GNEConnector::targetPassColor;
+RGBColor GNEConnector::conflictColor;
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEConnector::GNEConnector(FXComposite* parent, GNEViewNet* updateTarget, GNEUndoList* undoList):
+ FXScrollWindow(parent, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0),
+ myHeaderFont(new FXFont(getApp(), "Arial", 11, FXFont::Bold)),
+ myCurrentLane(0),
+ myUndoList(undoList),
+ myUpdateTarget(updateTarget) {
+ // heading
+ myContentFrame = new FXVerticalFrame(this, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0);
+ FXLabel* heading = new FXLabel(myContentFrame, "Edit Connections", 0, JUSTIFY_LEFT);
+ heading->setFont(myHeaderFont);
+ myDescription = new FXLabel(myContentFrame, "", 0, JUSTIFY_LEFT);
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ updateDescription();
+
+ // buttons
+ // "Cancel"
+ new FXButton(myContentFrame, "Cancel\t\tDiscard connection modifications (Esc)", 0, this, MID_CANCEL,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "OK"
+ new FXButton(myContentFrame, "OK\t\tSave connection modifications (Enter)", 0, this, MID_OK,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ // "Select Dead Ends"
+ new FXButton(myContentFrame,
+ "Select Dead Ends\t\tSelects all lanes that have no outgoing connection (clears previous selection)",
+ 0, this, MID_GNE_SELECT_DEAD_ENDS,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Select Dead Starts"
+ new FXButton(myContentFrame,
+ "Select Dead Starts\t\tSelects all lanes that have no incoming connection (clears previous selection)",
+ 0, this, MID_GNE_SELECT_DEAD_STARTS,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Select Conflicts"
+ new FXButton(myContentFrame,
+ "Select Conflicts\t\tSelects all lanes with more than one incoming connection from the same edge (clears previous selection)",
+ 0, this, MID_GNE_SELECT_CONFLICTS,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Select Edges which may always pass"
+ new FXButton(myContentFrame,
+ "Select Passing\t\tSelects all lanes with a connection that has has the 'pass' attribute set",
+ 0, this, MID_GNE_SELECT_PASS,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Clear Selected"
+ new FXButton(myContentFrame,
+ "Clear Selected\t\tClears all connections of all selected objects",
+ 0, this, MID_CHOOSEN_CLEAR,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Reset Selected"
+ new FXButton(myContentFrame,
+ "Reset Selected\nJunctions\t\tRecomputes connections at all selected junctions",
+ 0, this, MID_CHOOSEN_RESET,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ new FXHorizontalSeparator(this, SEPARATOR_GROOVE | LAYOUT_FILL_X);
+ // Selection Hint
+ new FXLabel(myContentFrame, "Hold <SHIFT> while\nclicking to create\nunyielding conn's.\n", 0, JUSTIFY_LEFT);
+ new FXLabel(myContentFrame, "Hold <CTRL> while\nclicking to create\nconflicting conn's.\n", 0, JUSTIFY_LEFT);
+ // Legend
+ // init colors here to avoid static order fiasco (https://isocpp.org/wiki/faq/ctors#static-init-order)
+ sourceColor = RGBColor::CYAN;
+ potentialTargetColor = RGBColor(0, 64, 0, 255);
+ targetColor = RGBColor::GREEN;
+ targetPassColor = RGBColor::MAGENTA;
+ conflictColor = RGBColor::YELLOW;
+
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ FXLabel* l;
+ new FXLabel(myContentFrame, "Color Legend:", 0, JUSTIFY_LEFT);
+ l = new FXLabel(myContentFrame, "Source", 0, JUSTIFY_LEFT);
+ l->setBackColor(MFXUtils::getFXColor(sourceColor));
+ l = new FXLabel(myContentFrame, "Target", 0, JUSTIFY_LEFT);
+ l->setBackColor(MFXUtils::getFXColor(targetColor));
+ l = new FXLabel(myContentFrame, "Possible Target", 0, JUSTIFY_LEFT);
+ l->setBackColor(MFXUtils::getFXColor(potentialTargetColor));
+ l = new FXLabel(myContentFrame, "Target (pass)", 0, JUSTIFY_LEFT);
+ l->setBackColor(MFXUtils::getFXColor(targetPassColor));
+ l = new FXLabel(myContentFrame, "Conflict", 0, JUSTIFY_LEFT);
+ l->setBackColor(MFXUtils::getFXColor(conflictColor));
+}
+
+
+GNEConnector::~GNEConnector() {
+ delete myHeaderFont;
+}
+
+
+void
+GNEConnector::handleLaneClick(GNELane* lane, bool mayDefinitelyPass, bool allowConflict, bool toggle) {
+ if (myCurrentLane == 0) {
+ myCurrentLane = lane;
+ myCurrentLane->setSpecialColor(&sourceColor);
+ initTargets();
+ buildIinternalLanes(lane->getParentEdge().getNBEdge()->getToNode());
+ myNumChanges = 0;
+ myUndoList->p_begin("modify connections");
+ } else if (myPotentialTargets.count(lane) || allowConflict) {
+ const unsigned int fromIndex = myCurrentLane->getIndex();
+ GNEEdge& srcEdge = myCurrentLane->getParentEdge();
+ GNEEdge& destEdge = lane->getParentEdge();
+ const std::string& destEdgeID = destEdge.getMicrosimID();
+ std::vector<NBEdge::Connection> connections = srcEdge.getNBEdge()->getConnectionsFromLane(fromIndex);
+ bool changed = false;
+ NBConnection deletedConnection = NBConnection::InvalidConnection;
+ LaneStatus status = getLaneStatus(connections, lane);
+ if (status == CONFLICTED && allowConflict) {
+ status = UNCONNECTED;
+ }
+ switch (status) {
+ case UNCONNECTED:
+ if (toggle) {
+ myUndoList->add(new GNEChange_Connection(&srcEdge, fromIndex,
+ destEdgeID, lane->getIndex(), mayDefinitelyPass, true), true);
+ lane->setSpecialColor(mayDefinitelyPass ? &targetPassColor : &targetColor);
+ changed = true;
+ }
+ break;
+ case CONNECTED:
+ case CONNECTED_PASS:
+ myUndoList->add(new GNEChange_Connection(&srcEdge, fromIndex, destEdgeID, lane->getIndex(),
+ status == CONNECTED_PASS, false), true);
+ lane->setSpecialColor(&potentialTargetColor);
+ changed = true;
+ deletedConnection = NBConnection(srcEdge.getNBEdge(), fromIndex,
+ destEdge.getNBEdge(), lane->getIndex(),
+ (int)getTLLLinkNumber(connections, lane));
+ break;
+ case CONFLICTED:
+ myUpdateTarget->setStatusBarText("Another lane from the same edge already connects to that lane");
+ break;
+ }
+ if (changed) {
+ myNumChanges += 1;
+ GNEJunction* affected = myUpdateTarget->getNet()->retrieveJunction(srcEdge.getDest()->getMicrosimID());
+ affected->invalidateTLS(myUndoList, deletedConnection);
+ buildIinternalLanes(myCurrentLane->getParentEdge().getNBEdge()->getToNode());
+ }
+ } else {
+ myUpdateTarget->setStatusBarText("Invalid target for connection");
+ }
+ updateDescription();
+}
+
+
+
+long
+GNEConnector::onCmdCancel(FXObject*, FXSelector, void*) {
+ if (myCurrentLane != 0) {
+ myUndoList->p_abort();
+ if (myNumChanges) {
+ myUpdateTarget->setStatusBarText("Changes reverted");
+ }
+ cleanup();
+ myUpdateTarget->update();
+ }
+ return 1;
+}
+
+
+long
+GNEConnector::onCmdOK(FXObject*, FXSelector, void*) {
+ if (myCurrentLane != 0) {
+ myUndoList->p_end();
+ if (myNumChanges) {
+ myUpdateTarget->setStatusBarText("Changes accepted");
+ }
+ cleanup();
+ myUpdateTarget->update();
+ }
+ return 1;
+}
+
+
+long
+GNEConnector::onCmdSelectDeadEnds(FXObject*, FXSelector, void*) {
+ std::vector<GUIGlID> selectIDs;
+ // every edge knows its outgoing connections so we can look at each edge in isolation
+ const std::vector<GNEEdge*> edges = myUpdateTarget->getNet()->retrieveEdges();
+ for (std::vector<GNEEdge*>::const_iterator edge_it = edges.begin(); edge_it != edges.end(); edge_it++) {
+ const GNEEdge::LaneVector& lanes = (*edge_it)->getLanes();
+ for (GNEEdge::LaneVector::const_iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
+ if ((*edge_it)->getNBEdge()->getConnectionsFromLane((*it_lane)->getIndex()).size() == 0) {
+ selectIDs.push_back((*it_lane)->getGlID());
+ }
+ }
+ }
+ myUpdateTarget->getSelector()->handleIDs(selectIDs, false, GNESelector::SET_REPLACE);
+ return 1;
+}
+
+
+long
+GNEConnector::onCmdSelectDeadStarts(FXObject*, FXSelector, void*) {
+ GNENet* net = myUpdateTarget->getNet();
+ std::set<GUIGlID> selectIDs;
+ // every edge knows only its outgoing connections so we look at whole junctions
+ const std::vector<GNEJunction*> junctions = net->retrieveJunctions();
+ for (std::vector<GNEJunction*>::const_iterator junction_it = junctions.begin(); junction_it != junctions.end(); junction_it++) {
+ // first collect all outgoing lanes
+ const EdgeVector& outgoing = (*junction_it)->getNBNode()->getOutgoingEdges();
+ for (EdgeVector::const_iterator it = outgoing.begin(); it != outgoing.end(); it++) {
+ GNEEdge* edge = net->retrieveEdge((*it)->getID());
+ const std::set<GUIGlID> laneIDs = edge->getLaneGlIDs();
+ for (std::set<GUIGlID>::const_iterator lid_it = laneIDs.begin(); lid_it != laneIDs.end(); lid_it++) {
+ selectIDs.insert(*lid_it);
+ }
+ }
+ // then remove all approached lanes
+ const EdgeVector& incoming = (*junction_it)->getNBNode()->getIncomingEdges();
+ for (EdgeVector::const_iterator it = incoming.begin(); it != incoming.end(); it++) {
+ GNEEdge* edge = net->retrieveEdge((*it)->getID());
+ NBEdge* nbe = edge->getNBEdge();
+ const std::vector<NBEdge::Connection>& connections = nbe->getConnections();
+ for (std::vector<NBEdge::Connection>::const_iterator con_it = connections.begin(); con_it != connections.end(); con_it++) {
+ GNEEdge* approachedEdge = net->retrieveEdge(con_it->toEdge->getID());
+ GNELane* approachedLane = approachedEdge->getLanes()[con_it->toLane];
+ selectIDs.erase(approachedLane->getGlID());
+ }
+ }
+ }
+ myUpdateTarget->getSelector()->handleIDs(
+ std::vector<GUIGlID>(selectIDs.begin(), selectIDs.end()),
+ false, GNESelector::SET_REPLACE);
+ return 1;
+}
+
+
+long
+GNEConnector::onCmdSelectConflicts(FXObject*, FXSelector, void*) {
+ std::vector<GUIGlID> selectIDs;
+ // conflicts happen per edge so we can look at each edge in isolation
+ const std::vector<GNEEdge*> edges = myUpdateTarget->getNet()->retrieveEdges();
+ for (std::vector<GNEEdge*>::const_iterator edge_it = edges.begin(); edge_it != edges.end(); edge_it++) {
+ NBEdge* nbe = (*edge_it)->getNBEdge();
+ const EdgeVector destinations = nbe->getConnectedEdges();
+ const std::vector<NBEdge::Connection>& connections = nbe->getConnections();
+ for (EdgeVector::const_iterator dest_it = destinations.begin(); dest_it != destinations.end(); dest_it++) {
+ GNEEdge* dest = myUpdateTarget->getNet()->retrieveEdge((*dest_it)->getID());
+ const GNEEdge::LaneVector& destLanes = dest->getLanes();
+ for (GNEEdge::LaneVector::const_iterator it_lane = destLanes.begin(); it_lane != destLanes.end(); it_lane++) {
+ const bool isConflicted = count_if(
+ connections.begin(), connections.end(),
+ NBEdge::connections_toedgelane_finder(*dest_it, (int)(*it_lane)->getIndex(), -1)) > 1;
+ if (isConflicted) {
+ selectIDs.push_back((*it_lane)->getGlID());
+ }
+ }
+ }
+
+ }
+ myUpdateTarget->getSelector()->handleIDs(selectIDs, false, GNESelector::SET_REPLACE);
+ return 1;
+}
+
+
+long
+GNEConnector::onCmdSelectPass(FXObject*, FXSelector, void*) {
+ std::vector<GUIGlID> selectIDs;
+ const std::vector<GNEEdge*> edges = myUpdateTarget->getNet()->retrieveEdges();
+ for (std::vector<GNEEdge*>::const_iterator edge_it = edges.begin(); edge_it != edges.end(); edge_it++) {
+ GNEEdge* edge = *edge_it;
+ NBEdge* nbe = edge->getNBEdge();
+ const std::vector<NBEdge::Connection>& connections = nbe->getConnections();
+ for (std::vector<NBEdge::Connection>::const_iterator it = connections.begin(); it != connections.end(); ++it) {
+ if (it->mayDefinitelyPass) {
+ GNELane* lane = edge->getLanes()[it->fromLane];
+ selectIDs.push_back(lane->getGlID());
+ }
+ }
+ }
+ myUpdateTarget->getSelector()->handleIDs(selectIDs, false, GNESelector::SET_REPLACE);
+ return 1;
+}
+
+
+long
+GNEConnector::onCmdClearSelectedConnections(FXObject*, FXSelector, void*) {
+ onCmdCancel(0, 0, 0);
+ myUndoList->p_begin("clear connections from selected lanes, edges and junctions");
+ const std::set<GUIGlID> ids = gSelected.getSelected();
+ for (std::set<GUIGlID>::const_iterator it = ids.begin(); it != ids.end(); it++) {
+ GUIGlID id = *it;
+ GUIGlObject* object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ if (object) {
+ switch (object->getType()) {
+ case GLO_JUNCTION: {
+ GNEJunction* junction = dynamic_cast<GNEJunction*>(object);
+ junction->setLogicValid(false, myUndoList); // clear connections
+ junction->setLogicValid(false, myUndoList, GNEAttributeCarrier::MODIFIED); // prevent re-guessing
+ break;
+ }
+ case GLO_EDGE: {
+ const GNEEdge::LaneVector& lanes = dynamic_cast<GNEEdge*>(object)->getLanes();
+ for (GNEEdge::LaneVector::const_iterator l_it = lanes.begin(); l_it != lanes.end(); ++l_it) {
+ removeConnections(*l_it);
+ }
+ break;
+ }
+ case GLO_LANE:
+ removeConnections(dynamic_cast<GNELane*>(object));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ myUndoList->p_end();
+ return 1;
+}
+
+
+void
+GNEConnector::removeConnections(GNELane* lane) {
+ handleLaneClick(lane, false, false, true); // select as current lane
+ for (std::set<GNELane*>::iterator it = myPotentialTargets.begin(); it != myPotentialTargets.end(); it++) {
+ handleLaneClick(*it, false, false, false); // deselect
+ }
+ onCmdOK(0, 0, 0); // save
+}
+
+
+long
+GNEConnector::onCmdResetSelectedConnections(FXObject*, FXSelector, void*) {
+ onCmdCancel(0, 0, 0);
+ myUndoList->p_begin("reset connections from selected lanes");
+ const std::set<GUIGlID> nodeIDs = gSelected.getSelected(GLO_JUNCTION);
+ for (std::set<GUIGlID>::const_iterator nid_it = nodeIDs.begin(); nid_it != nodeIDs.end(); nid_it++) {
+ GUIGlObject* object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(*nid_it);
+ if (object) {
+ GNEJunction* junction = dynamic_cast<GNEJunction*>(object);
+ if (junction) {
+ junction->setLogicValid(false, myUndoList);
+ } else {
+ throw ProcessError("Wrong object type returned from gIDStorage");
+ }
+ }
+ }
+ myUndoList->p_end();
+ return 1;
+}
+
+
+void
+GNEConnector::updateDescription() const {
+ if (myCurrentLane == 0) {
+ myDescription->setText("No Lane Selected\n");
+ } else {
+ myDescription->setText((
+ myCurrentLane->getMicrosimID() + "\n(" +
+ toString(myNumChanges) + " changes)").c_str());
+ }
+}
+
+
+void
+GNEConnector::initTargets() {
+ // gather potential targets
+ NBNode* nbn = myCurrentLane->getParentEdge().getDest()->getNBNode();
+
+ const EdgeVector& outgoing = nbn->getOutgoingEdges();
+ for (EdgeVector::const_iterator it = outgoing.begin(); it != outgoing.end(); it++) {
+ GNEEdge* edge = myUpdateTarget->getNet()->retrieveEdge((*it)->getID());
+ const GNEEdge::LaneVector& lanes = edge->getLanes();
+ for (GNEEdge::LaneVector::const_iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
+ myPotentialTargets.insert(*it_lane);
+ }
+ }
+ // set color for existing connections
+ const unsigned int fromIndex = myCurrentLane->getIndex();
+ NBEdge* srcEdge = myCurrentLane->getParentEdge().getNBEdge();
+ std::vector<NBEdge::Connection> connections = srcEdge->getConnectionsFromLane(fromIndex);
+ for (std::set<GNELane*>::iterator it = myPotentialTargets.begin(); it != myPotentialTargets.end(); it++) {
+ switch (getLaneStatus(connections, *it)) {
+ case CONNECTED:
+ (*it)->setSpecialColor(&targetColor);
+ break;
+ case CONNECTED_PASS:
+ (*it)->setSpecialColor(&targetPassColor);
+ break;
+ case CONFLICTED:
+ (*it)->setSpecialColor(&conflictColor);
+ break;
+ case UNCONNECTED:
+ (*it)->setSpecialColor(&potentialTargetColor);
+ break;
+ }
+ }
+}
+
+
+void
+GNEConnector::cleanup() {
+ // clean up
+ for (std::set<GNELane*>::iterator it = myPotentialTargets.begin(); it != myPotentialTargets.end(); it++) {
+ (*it)->setSpecialColor(0);
+ }
+ myPotentialTargets.clear();
+ myNumChanges = 0;
+ myCurrentLane->setSpecialColor(0);
+ myCurrentLane = 0;
+ buildIinternalLanes(0); // only clears
+ updateDescription();
+}
+
+
+GNEConnector::LaneStatus
+GNEConnector::getLaneStatus(const std::vector<NBEdge::Connection>& connections, GNELane* targetLane) {
+ NBEdge* srcEdge = myCurrentLane->getParentEdge().getNBEdge();
+ const unsigned int fromIndex = myCurrentLane->getIndex();
+ NBEdge* destEdge = targetLane->getParentEdge().getNBEdge();
+ const unsigned int toIndex = targetLane->getIndex();
+ std::vector<NBEdge::Connection>::const_iterator con_it = find_if(
+ connections.begin(), connections.end(),
+ NBEdge::connections_finder(fromIndex, destEdge, toIndex));
+ const bool isConnected = con_it != connections.end();
+ if (isConnected) {
+ if (con_it->mayDefinitelyPass) {
+ return CONNECTED_PASS;
+ } else {
+ return CONNECTED;
+ }
+ } else if (srcEdge->hasConnectionTo(destEdge, toIndex)) {
+ return CONFLICTED;
+ } else {
+ return UNCONNECTED;
+ }
+}
+
+
+unsigned int
+GNEConnector::getTLLLinkNumber(const std::vector<NBEdge::Connection>& connections, GNELane* targetLane) {
+ const unsigned int fromIndex = myCurrentLane->getIndex();
+ NBEdge* destEdge = targetLane->getParentEdge().getNBEdge();
+ const unsigned int toIndex = targetLane->getIndex();
+ std::vector<NBEdge::Connection>::const_iterator it = find_if(
+ connections.begin(), connections.end(),
+ NBEdge::connections_finder(fromIndex, destEdge, toIndex));
+ assert(it != connections.end());
+ return it->tlLinkNo;
+}
+
+
+void
+GNEConnector::buildIinternalLanes(NBNode* node) {
+ // clean up previous objects
+ SUMORTree& rtree = myUpdateTarget->getNet()->getVisualisationSpeedUp();
+ for (std::map<int, GNEInternalLane*>::iterator it = myInternalLanes.begin(); it != myInternalLanes.end(); it++) {
+ rtree.removeAdditionalGLObject(it->second);
+ delete it->second;
+ }
+ myInternalLanes.clear();
+ if (node != 0) {
+ const int NUM_POINTS = 5;
+ SUMORTree& rtree = myUpdateTarget->getNet()->getVisualisationSpeedUp();
+ std::string innerID = ":" + node->getID(); // see NWWriter_SUMO::writeInternalEdges
+
+ int index = 0;
+ const EdgeVector& incoming = node->getIncomingEdges();
+ for (EdgeVector::const_iterator it_edg = incoming.begin(); it_edg != incoming.end(); it_edg++) {
+ const std::vector<NBEdge::Connection>& conns = (*it_edg)->getConnections();
+ for (std::vector<NBEdge::Connection>::const_iterator it_con = conns.begin(); it_con != conns.end(); ++it_con) {
+ const PositionVector shape = node->computeInternalLaneShape(*it_edg, *it_con, NUM_POINTS);
+ LinkState state = node->getLinkState(*it_edg, it_con->toEdge, it_con->fromLane, it_con->toLane, it_con->mayDefinitelyPass, it_con->tlID);
+ GNEInternalLane* ilane = new GNEInternalLane(0, innerID + '_' + toString(index) , shape, -1, state);
+ rtree.addAdditionalGLObject(ilane);
+ myInternalLanes[index] = ilane;
+ index++;
+ }
+ }
+ }
+}
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNEConnector.h b/src/netedit/GNEConnector.h
new file mode 100644
index 0000000..ad62ab9
--- /dev/null
+++ b/src/netedit/GNEConnector.h
@@ -0,0 +1,182 @@
+/****************************************************************************/
+/// @file GNEConnector.h
+/// @author Jakob Erdmann
+/// @date May 2011
+/// @version $Id: GNEConnector.h 18966 2015-09-30 06:12:04Z namdre $
+///
+// The Widget for modifying lane-to-lane connections
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEConnector_h
+#define GNEConnector_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <utils/xml/SUMOXMLDefinitions.h>
+#include <netbuild/NBEdge.h>
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEViewNet;
+class GNELane;
+class GNEInternalLane;
+class GNEUndoList;
+
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEConnector
+ * The Widget for modifying selections of network-elements
+ */
+class GNEConnector : public FXScrollWindow {
+ // FOX-declarations
+ FXDECLARE(GNEConnector)
+
+public:
+ /** @brief Constructor
+ * @param[in] parent The parent window
+ */
+ GNEConnector(FXComposite* parent, GNEViewNet* updateTarget, GNEUndoList* undoList);
+
+
+ /// @brief Destructor
+ ~GNEConnector();
+
+
+ FXFont* getHeaderFont() {
+ return myHeaderFont;
+ }
+
+ /** @brief either sets the current lane or toggles the connection of the
+ * current lane to this lane (if they share a junction)
+ * @param[in] lane Either the lane to set as current lane, or the destination from current lane
+ * @param[in] mayDefinitelyPass Whether new connections shall have the pass attribute set
+ * @param[in] toggle Whether non-existing connections shall be created
+ */
+ void handleLaneClick(GNELane* lane, bool mayDefinitelyPass, bool allowConflict, bool toggle);
+
+ /// @name FOX-callbacks
+ /// @{
+ /** @brief Called when the user presses the OK-Button
+ * saves any connection modifications
+ */
+ long onCmdOK(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Cancel-button
+ * discards any connection modifications
+ */
+ long onCmdCancel(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Corresponding-button */
+ long onCmdSelectDeadEnds(FXObject*, FXSelector, void*);
+ long onCmdSelectDeadStarts(FXObject*, FXSelector, void*);
+ long onCmdSelectConflicts(FXObject*, FXSelector, void*);
+ long onCmdSelectPass(FXObject*, FXSelector, void*);
+ long onCmdClearSelectedConnections(FXObject*, FXSelector, void*);
+ long onCmdResetSelectedConnections(FXObject*, FXSelector, void*);
+ /// @}
+
+protected:
+ /// @brief FOX needs this
+ GNEConnector() {}
+
+private:
+
+ /// @brief the status of a target lane
+ enum LaneStatus {
+ UNCONNECTED,
+ CONNECTED,
+ CONNECTED_PASS,
+ CONFLICTED
+ };
+
+ /// @brief the panel to hold all member widgets
+ FXVerticalFrame* myContentFrame;
+
+ /// @brief Font for the widget
+ FXFont* myHeaderFont;
+
+ /// @brief the label that shows the current editing state
+ FXLabel* myDescription;
+
+ /// @brief the lane of which connections are to be modified
+ GNELane* myCurrentLane;
+
+ /// @brief the set of lanes to which the current lane may be connected
+ std::set<GNELane*> myPotentialTargets;
+
+ GNEUndoList* myUndoList;
+
+ unsigned int myNumChanges;
+
+ /* @brief the window to inform when connections are modified */
+ GNEViewNet* myUpdateTarget;
+
+ /// @brief the internal lanes belonging the the current junction indexed by their tl-index
+ std::map<int, GNEInternalLane*> myInternalLanes;
+
+ static const int WIDTH;
+
+ /// @brief color for the from-lane of a connection
+ static RGBColor sourceColor;
+ /// @brief color for the to-lane of a connection
+ static RGBColor targetColor;
+ /// @brief color for a to-lane that cannot be used because another connection conflicts
+ static RGBColor conflictColor;
+ /// @brief color for the to-lane of a connection with pass attribute
+ static RGBColor targetPassColor;
+ /// @brief color for potential to-lane targets (currently unconnected)
+ static RGBColor potentialTargetColor;
+
+private:
+ void updateDescription() const;
+
+ void initTargets();
+
+ // @brief clean up when deselecting current lane
+ void cleanup();
+
+ // @brief remove connections
+ void removeConnections(GNELane* lane);
+
+ // @brief return the status of toLane
+ LaneStatus getLaneStatus(const std::vector<NBEdge::Connection>& connections, GNELane* targetLane);
+
+ /* @brief return the link number (tlLinkNo) of an existing connection
+ * @param[in] connections All connections of the current edge from the given lane
+ * @param[in] targetLane The target lane of the connection
+ */
+ unsigned int getTLLLinkNumber(const std::vector<NBEdge::Connection>& connections, GNELane* targetLane);
+
+ /* @brief builds internal lanes for the given node */
+ void buildIinternalLanes(NBNode* node);
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNECrossing.cpp b/src/netedit/GNECrossing.cpp
new file mode 100644
index 0000000..3ecae27
--- /dev/null
+++ b/src/netedit/GNECrossing.cpp
@@ -0,0 +1,242 @@
+/****************************************************************************/
+/// @file GNECrossing.cpp
+/// @author Jakob Erdmann
+/// @date June 2011
+/// @version $Id: GNECrossing.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing Inner Lanes (used when editing traffic lights)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <iostream>
+#include <utility>
+#include <time.h>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/geom/PositionVector.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/common/ToString.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/gui/globjects/GLIncludes.h>
+
+#include "GNECrossing.h"
+#include "GNEJunction.h"
+#include "GNEUndoList.h"
+#include "GNEChange_Attribute.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+
+// ===========================================================================
+// static member definitions
+// ===========================================================================
+
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNECrossing::GNECrossing(GNEJunction& parentJunction, const std::string& id) :
+ GUIGlObject(GLO_CROSSING, id),
+ GNEAttributeCarrier(SUMO_TAG_CROSSING),
+ myParentJunction(parentJunction),
+ myCrossing(parentJunction.getNBNode()->getCrossing(id)),
+ myShape(myCrossing.shape) {
+ int segments = (int) myShape.size() - 1;
+ if (segments >= 0) {
+ myShapeRotations.reserve(segments);
+ myShapeLengths.reserve(segments);
+ for (int i = 0; i < segments; ++i) {
+ const Position& f = myShape[i];
+ const Position& s = myShape[i + 1];
+ myShapeLengths.push_back(f.distanceTo2D(s));
+ myShapeRotations.push_back((SUMOReal) atan2((s.x() - f.x()), (f.y() - s.y())) * (SUMOReal) 180.0 / (SUMOReal) PI);
+ }
+ }
+}
+
+
+GNECrossing::~GNECrossing() {}
+
+
+void
+GNECrossing::drawGL(const GUIVisualizationSettings& s) const {
+ if (!s.drawCrossingsAndWalkingareas) {
+ return;
+ }
+ glPushMatrix();
+ glPushName(getGlID());
+ glTranslated(0, 0, GLO_JUNCTION + 0.1); // must draw on top of junction
+
+ if (myCrossing.priority) {
+ glColor3d(0.9, 0.9, 0.9);
+ } else {
+ glColor3d(0.1, 0.1, 0.1);
+ }
+ glTranslated(0, 0, .2);
+ // @todo: duplicate eliminate duplicate code with GNELane::drawCrossties(0.5, 1.0, myCrossing.width * 0.5);
+ {
+ SUMOReal length = 0.5;
+ SUMOReal spacing = 1.0;
+ SUMOReal halfWidth = myCrossing.width * 0.5;
+ glPushMatrix();
+ // draw on top of of the white area between the rails
+ glTranslated(0, 0, 0.1);
+ int e = (int) myShape.size() - 1;
+ for (int i = 0; i < e; ++i) {
+ glPushMatrix();
+ glTranslated(myShape[i].x(), myShape[i].y(), 0.0);
+ glRotated(myShapeRotations[i], 0, 0, 1);
+ for (SUMOReal t = 0; t < myShapeLengths[i]; t += spacing) {
+ glBegin(GL_QUADS);
+ glVertex2d(-halfWidth, -t);
+ glVertex2d(-halfWidth, -t - length);
+ glVertex2d(halfWidth, -t - length);
+ glVertex2d(halfWidth, -t);
+ glEnd();
+ }
+ glPopMatrix();
+ }
+ glPopMatrix();
+ }
+
+
+ glTranslated(0, 0, -.2);
+ glPopName();
+ glPopMatrix();
+}
+
+
+GUIGLObjectPopupMenu*
+GNECrossing::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
+ myPopup = new GUIGLObjectPopupMenu(app, parent, *this);
+ buildPopupHeader(myPopup, app);
+ return myPopup;
+}
+
+
+GUIParameterTableWindow*
+GNECrossing::getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView&) {
+ GUIParameterTableWindow* ret =
+ new GUIParameterTableWindow(app, *this, 2);
+ // add items
+ // close building
+ ret->closeBuilding();
+ return ret;
+}
+
+
+Boundary
+GNECrossing::getCenteringBoundary() const {
+ Boundary b = myShape.getBoxBoundary();
+ b.grow(10);
+ return b;
+}
+
+
+std::string
+GNECrossing::getAttribute(SumoXMLAttr key) const {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return getMicrosimID();
+ break;
+ case SUMO_ATTR_WIDTH:
+ return toString(myCrossing.width);
+ break;
+ case SUMO_ATTR_PRIORITY:
+ return myCrossing.priority ? "true" : "false";
+ break;
+ case SUMO_ATTR_EDGES:
+ return toString(myCrossing.edges);
+ break;
+ default:
+ throw InvalidArgument("junction attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNECrossing::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) {
+ if (value == getAttribute(key)) {
+ return; //avoid needless changes, later logic relies on the fact that attributes have changed
+ }
+ switch (key) {
+ case SUMO_ATTR_ID:
+ case SUMO_ATTR_EDGES:
+ throw InvalidArgument("modifying crossing attribute '" + toString(key) + "' not allowed");
+ case SUMO_ATTR_WIDTH:
+ case SUMO_ATTR_PRIORITY:
+ undoList->add(new GNEChange_Attribute(this, key, value), true);
+ break;
+ default:
+ throw InvalidArgument("crossing attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+bool
+GNECrossing::isValid(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ case SUMO_ATTR_EDGES:
+ return false;
+ case SUMO_ATTR_WIDTH:
+ return isPositive<SUMOReal>(value);
+ case SUMO_ATTR_PRIORITY:
+ return value == "true" || value == "false";
+ default:
+ throw InvalidArgument("crossing attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+// ===========================================================================
+// private
+// ===========================================================================
+
+void
+GNECrossing::setAttribute(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ case SUMO_ATTR_EDGES:
+ throw InvalidArgument("modifying crossing attribute '" + toString(key) + "' not allowed");
+ case SUMO_ATTR_WIDTH:
+ myCrossing.width = parse<SUMOReal>(value);
+ myParentJunction.updateCrossingAttributes(myCrossing);
+ break;
+ case SUMO_ATTR_PRIORITY:
+ myCrossing.priority = value == "true";
+ myParentJunction.updateCrossingAttributes(myCrossing);
+ break;
+ default:
+ throw InvalidArgument("crossing attribute '" + toString(key) + "' not allowed");
+ }
+}
+/****************************************************************************/
diff --git a/src/netedit/GNECrossing.h b/src/netedit/GNECrossing.h
new file mode 100644
index 0000000..e193b7d
--- /dev/null
+++ b/src/netedit/GNECrossing.h
@@ -0,0 +1,163 @@
+/****************************************************************************/
+/// @file GNECrossing.h
+/// @author Jakob Erdmann
+/// @date June 2011
+/// @version $Id: GNECrossing.h 18929 2015-09-24 10:41:49Z behrisch $
+///
+// A class for visualizing Inner Lanes (used when editing traffic lights)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNECrossing_h
+#define GNECrossing_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include <utils/xml/SUMOXMLDefinitions.h>
+#include <netbuild/NBNode.h>
+#include "GNEAttributeCarrier.h"
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUIGLObjectPopupMenu;
+class PositionVector;
+class GNEJunction;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNECrossing
+ * @brief This object is responsible for drawing a shape and for supplying a
+ * a popup menu. Messages are routeted to an internal dataTarget and to the
+ * editor (hence inheritance from FXDelegator)
+ */
+class GNECrossing : public GUIGlObject, public GNEAttributeCarrier {
+
+public:
+
+ /** @brief Constructor
+ * @param[in] editor The editor to notify about changes
+ * @param[in] id The id of this internal lane
+ * @param[in] shape The shape of the lane
+ * @param[in] tlIndex The tl-index of the lane
+ */
+ GNECrossing(GNEJunction& parentJunction, const std::string& id);
+
+ /// @brief Destructor
+ virtual ~GNECrossing() ;
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+ /** @brief Returns the boundary to which the view shall be centered in order to show the object
+ *
+ * @return The boundary the object is within
+ * @see GUIGlObject::getCenteringBoundary
+ */
+ Boundary getCenteringBoundary() const ;
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+ //@name inherited from GNEAttributeCarrier
+ //@{
+ std::string getAttribute(SumoXMLAttr key) const;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ */
+ void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
+
+ bool isValid(SumoXMLAttr key, const std::string& value);
+ //@}
+
+
+private:
+ /// @brief the parent junction of this crossing
+ GNEJunction& myParentJunction;
+
+ /// @brief the data for this crossing
+ NBNode::Crossing myCrossing;
+
+ /// @brief the shape of the edge
+ const PositionVector myShape;
+
+ /// @name computed only once (for performance) in updateGeometry()
+ //@{
+ /// The rotations of the shape parts
+ std::vector<SUMOReal> myShapeRotations;
+
+ /// The lengths of the shape parts
+ std::vector<SUMOReal> myShapeLengths;
+ //@}
+
+ /// @brief the created popup
+ GUIGLObjectPopupMenu* myPopup;
+
+ /* @brief method for setting the attribute and nothing else
+ * (used in GNEChange_Attribute)
+ * */
+ void setAttribute(SumoXMLAttr key, const std::string& value);
+
+private:
+
+ /// @brief Invalidated copy constructor.
+ GNECrossing(const GNECrossing&);
+
+ /// @brief Invalidated assignment operator.
+ GNECrossing& operator=(const GNECrossing&);
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEDialog_About.cpp b/src/netedit/GNEDialog_About.cpp
new file mode 100644
index 0000000..ca5aebc
--- /dev/null
+++ b/src/netedit/GNEDialog_About.cpp
@@ -0,0 +1,142 @@
+/****************************************************************************/
+/// @file GNEDialog_About.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEDialog_About.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The "About" - dialog for NETEDIT, (adapted from GUIDialog_AboutSUMO)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <utils/common/StdDefs.h>
+#include <utils/foxtools/FXLinkLabel.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include "GNEDialog_About.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// bitmap definitions
+// ===========================================================================
+static const char* dlr_icon[] = {
+ "40 42 3 1",
+ "# c #000000",
+ "a c #333333",
+ ". c #ffffff",
+ "........................................",
+ "........................................",
+ "...........................#............",
+ "..........................##............",
+ ".........................###............",
+ "........................####............",
+ ".......................#####............",
+ "......................###.##............",
+ ".....................###..##............",
+ "....................###...##............",
+ "...................###....##............",
+ "..................###.....##............",
+ ".........##############################.",
+ "........##############################..",
+ ".......###.....###.......###......###...",
+ "......###.....###.......###......###....",
+ ".....###.....###.......###......###.....",
+ "....###.....###.......###......###......",
+ "...###.....###.......###......###.......",
+ "..##############################........",
+ ".##############################.........",
+ "...........##.....###...................",
+ "...........##....###....................",
+ "...........##...###.....................",
+ "...........##..###......................",
+ "...........##.###.......................",
+ "...........#####........................",
+ "...........####.........................",
+ "...........###..........................",
+ "...........##...........................",
+ "...........#...#####....##.....#####....",
+ "...............######...##.....######...",
+ "...............##..###..##.....##..##...",
+ "...............##...##..##.....##..##...",
+ "...............##...##..##.....#####....",
+ "...............##...##..##.....#####....",
+ "...............##..###..##.....##.###...",
+ "...............######...#####..##..##...",
+ "...............#####....#####..##..###..",
+ "........................................",
+ "........................................",
+ "........................................"
+};
+
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEDialog_About::GNEDialog_About(FXWindow* parent)
+ : FXDialogBox(parent, "About NETEDIT", DECOR_CLOSE | DECOR_TITLE) {
+ FXVerticalFrame* f1 = new FXVerticalFrame(this, LAYOUT_TOP | FRAME_NONE | LAYOUT_FILL_X, 0, 0, 0, 0, 0, 0, 1, 1);
+ // build icons
+ FXHorizontalFrame* f2 = new FXHorizontalFrame(f1, LAYOUT_TOP | LAYOUT_CENTER_X | FRAME_NONE, 0, 0, 0, 0, 0, 0, 1, 1);
+ myDLRIcon = new FXXPMIcon(getApp(), dlr_icon);
+ new FXButton(f2, "\tDLR\t.", myDLRIcon, 0, 0, LAYOUT_CENTER_Y | TEXT_OVER_ICON, 5, 0, 40 + 5, 0, 0, 0, 0, 0);
+ // "NETEDIT <VERSION>"
+ FXVerticalFrame* f4 = new FXVerticalFrame(f2, FRAME_NONE, 0, 0, 0, 0, 20, 0, 0, 0);
+ new FXButton(f2, "", GUIIconSubSys::getIcon(ICON_NETEDIT), 0, 0, LAYOUT_CENTER_Y | TEXT_OVER_ICON, 5, 0, 40 + 5, 0, 12, 0, 0, 0);
+ myHeadlineFont = new FXFont(getApp(), "Arial", 18, FXFont::Bold);
+ FXLabel* l = new FXLabel(f4, ("NETEDIT " + getBuildName(VERSION_STRING)).c_str(), 0, LAYOUT_CENTER_Y | LAYOUT_CENTER_X | JUSTIFY_CENTER_X | LABEL_NORMAL, 0, 0, 0, 0, 0, 0, 0, 0);
+ l->setFont(myHeadlineFont);
+ new FXLabel(f4, "Network editor for SUMO, the Simulation of Urban MObility", 0, LAYOUT_CENTER_Y | LAYOUT_CENTER_X | JUSTIFY_CENTER_X | LABEL_NORMAL, 0, 0, 0, 0, 0, 0, 0, 0);
+ //
+ // additional infos
+ FXVerticalFrame* f3 = new FXVerticalFrame(f1, FRAME_NONE, 0, 0, 0, 0, 0, 0, 0, 0);
+ // copyright notice
+ new FXLabel(f3, "Copyright (C) 2001-2015 DLR / Institute of Transportation Systems", 0, LAYOUT_CENTER_X | JUSTIFY_CENTER_X | LABEL_NORMAL, 0, 0, 0, 0, 0, 0, 0, 0);
+
+ FXLinkLabel* link = new FXLinkLabel(f3, "http://sumo.dlr.de", 0, LAYOUT_CENTER_X | JUSTIFY_CENTER_X | LABEL_NORMAL, 0, 0, 0, 0, 5, 5, 5, 5);
+ link->setTipText("http://sumo.dlr.de");
+ // ok-button
+ new FXButton(f1, "OK\t\t", 0, this, ID_ACCEPT, LAYOUT_FIX_WIDTH | LAYOUT_CENTER_X | JUSTIFY_CENTER_X | FRAME_THICK | FRAME_RAISED, 0, 0, 50, 30);
+ setIcon(GUIIconSubSys::getIcon(ICON_NETEDIT));
+}
+
+
+void
+GNEDialog_About::create() {
+ FXDialogBox::create();
+ myDLRIcon->create();
+}
+
+
+GNEDialog_About::~GNEDialog_About() {
+ delete myDLRIcon;
+ delete myHeadlineFont;
+}
+
+
+/****************************************************************************/
diff --git a/src/netbuild/NBLinkPossibilityMatrix.h b/src/netedit/GNEDialog_About.h
similarity index 61%
copy from src/netbuild/NBLinkPossibilityMatrix.h
copy to src/netedit/GNEDialog_About.h
index b867b28..c794b73 100644
--- a/src/netbuild/NBLinkPossibilityMatrix.h
+++ b/src/netedit/GNEDialog_About.h
@@ -1,12 +1,10 @@
/****************************************************************************/
-/// @file NBLinkPossibilityMatrix.h
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
-/// @date Sept 2002
-/// @version $Id: NBLinkPossibilityMatrix.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @file GNEDialog_About.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEDialog_About.h 18830 2015-09-11 08:57:34Z behrisch $
///
-// A matric to describe whether two links are foes to each other
+// The "About" - dialog for NETEDIT, (adapted from GUIDialog_AboutSUMO)
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -19,8 +17,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef NBLinkPossibilityMatrix_h
-#define NBLinkPossibilityMatrix_h
+#ifndef GNEDialog_About_h
+#define GNEDialog_About_h
// ===========================================================================
@@ -32,21 +30,44 @@
#include <config.h>
#endif
-#include <bitset>
-#include <vector>
+#include <fx.h>
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class NBLinkPossibilityMatrix
- * Storing the information which links may be used simultanously, this matrix
- * is simply made by a vector of bitsets
+ * @class GNEDialog_About
+ * @brief The application's "About" - dialog
*/
-typedef std::vector<std::bitset<64> > NBLinkPossibilityMatrix;
+class GNEDialog_About : public FXDialogBox {
+public:
+ /** @brief Constructor
+ * @param[in] parent The parent window
+ */
+ GNEDialog_About(FXWindow* parent);
+
+
+ /// @brief Destructor
+ ~GNEDialog_About() ;
+
+
+ /** @brief Creates the widget (and the icons)
+ */
+ void create();
+
+
+private:
+ /// @brief Icons for the widget
+ FXIcon* myDLRIcon;
+
+ /// @brief Font for the widget
+ FXFont* myHeadlineFont;
+
+};
#endif
/****************************************************************************/
+
diff --git a/src/netedit/GNEDialog_Wizard.cpp b/src/netedit/GNEDialog_Wizard.cpp
new file mode 100644
index 0000000..54ca5c7
--- /dev/null
+++ b/src/netedit/GNEDialog_Wizard.cpp
@@ -0,0 +1,192 @@
+/****************************************************************************/
+/// @file GNEDialog_Wizard.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEDialog_Wizard.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// The "About" - dialog for NETEDIT, (adapted from GUIDialog_AboutSUMO)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <utils/foxtools/FXLinkLabel.h>
+#include <utils/options/OptionsCont.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/common/ToString.h>
+#include "GNEDialog_Wizard.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNEDialog_Wizard::InputString) InputStringMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_ATTRIBUTE, GNEDialog_Wizard::InputString::onCmdSetOption),
+};
+FXDEFMAP(GNEDialog_Wizard::InputBool) InputBoolMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_ATTRIBUTE, GNEDialog_Wizard::InputBool::onCmdSetOption),
+};
+FXDEFMAP(GNEDialog_Wizard::InputInt) InputIntMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_ATTRIBUTE, GNEDialog_Wizard::InputInt::onCmdSetOption),
+};
+FXDEFMAP(GNEDialog_Wizard::InputFloat) InputFloatMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_ATTRIBUTE, GNEDialog_Wizard::InputFloat::onCmdSetOption),
+};
+
+// Object implementation
+FXIMPLEMENT(GNEDialog_Wizard::InputString, FXHorizontalFrame, InputStringMap, ARRAYNUMBER(InputStringMap))
+FXIMPLEMENT(GNEDialog_Wizard::InputBool, FXHorizontalFrame, InputBoolMap, ARRAYNUMBER(InputBoolMap))
+FXIMPLEMENT(GNEDialog_Wizard::InputInt, FXHorizontalFrame, InputIntMap, ARRAYNUMBER(InputIntMap))
+FXIMPLEMENT(GNEDialog_Wizard::InputFloat, FXHorizontalFrame, InputFloatMap, ARRAYNUMBER(InputFloatMap))
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEDialog_Wizard::GNEDialog_Wizard(FXWindow* parent, const char* name, int width, int height)
+ : FXDialogBox(parent, name, DECOR_CLOSE | DECOR_TITLE, 0, 0, width, height) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ FXVerticalFrame* contentFrame = new FXVerticalFrame(this, LAYOUT_FILL_X | LAYOUT_FILL_Y);
+
+ FXTabBook* tabbook = new FXTabBook(
+ contentFrame, 0, 0, TABBOOK_LEFTTABS | PACK_UNIFORM_WIDTH | PACK_UNIFORM_HEIGHT | LAYOUT_FILL_X | LAYOUT_FILL_Y | LAYOUT_RIGHT);
+
+ const std::vector<std::string>& topics = oc.getSubTopics();
+ for (std::vector<std::string>::const_iterator it_topic = topics.begin(); it_topic != topics.end(); it_topic++) {
+ std::string topic = *it_topic;
+ if (topic == "Configuration") {
+ continue;
+ }
+ new FXTabItem(tabbook, topic.c_str(), NULL, TAB_LEFT_NORMAL);
+ FXScrollWindow* scrollTab = new FXScrollWindow(tabbook, LAYOUT_FILL_X | LAYOUT_FILL_Y);
+ FXVerticalFrame* tabContent = new FXVerticalFrame(scrollTab, FRAME_THICK | FRAME_RAISED | LAYOUT_FILL_X | LAYOUT_FILL_Y);
+ const std::vector<std::string> entries = oc.getSubTopicsEntries(topic);
+ for (std::vector<std::string>::const_iterator it_opt = entries.begin(); it_opt != entries.end(); it_opt++) {
+ std::string name = *it_opt;
+ std::string type = oc.getTypeName(name);
+ if (type == "STR" || type == "FILE") {
+ new InputString(tabContent, name);
+ } else if (type == "BOOL") {
+ new InputBool(tabContent, name);
+ } else if (type == "INT") {
+ new InputInt(tabContent, name);
+ } else if (type == "FLOAT") {
+ new InputFloat(tabContent, name);
+ }
+ // @todo missing types (type INT[] is only used in microsim)
+ }
+ }
+
+ // ok-button
+ new FXButton(contentFrame, "OK\t\tContine with the import.", 0, this, ID_ACCEPT, LAYOUT_FIX_WIDTH | LAYOUT_CENTER_X | JUSTIFY_CENTER_X | FRAME_THICK | FRAME_RAISED, 0, 0, 50, 30);
+}
+
+
+GNEDialog_Wizard::~GNEDialog_Wizard() { }
+
+// ===========================================================================
+// Option input classes method definitions
+// ===========================================================================
+GNEDialog_Wizard::InputString::InputString(FXComposite* parent, const std::string& name) :
+ FXHorizontalFrame(parent, LAYOUT_FILL_X),
+ myName(name) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ new FXLabel(this, name.c_str());
+ myTextField = new FXTextField(this, 100, this, MID_GNE_SET_ATTRIBUTE, TEXTFIELD_NORMAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
+ myTextField->setText(oc.getString(name).c_str());
+}
+
+
+long
+GNEDialog_Wizard::InputString::onCmdSetOption(FXObject*, FXSelector, void*) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ oc.resetWritable();
+ oc.set(myName, myTextField->getText().text());
+ return 1;
+}
+
+
+GNEDialog_Wizard::InputBool::InputBool(FXComposite* parent, const std::string& name) :
+ FXHorizontalFrame(parent, LAYOUT_FILL_X),
+ myName(name) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ new FXLabel(this, name.c_str());
+ myCheck = new FXMenuCheck(this, "", this, MID_GNE_SET_ATTRIBUTE);
+ myCheck->setCheck(oc.getBool(name));
+}
+
+
+long
+GNEDialog_Wizard::InputBool::onCmdSetOption(FXObject*, FXSelector, void*) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ oc.resetWritable();
+ oc.set(myName, myCheck->getCheck() ? "true" : "false");
+ return 1;
+}
+
+
+GNEDialog_Wizard::InputInt::InputInt(FXComposite* parent, const std::string& name) :
+ FXHorizontalFrame(parent, LAYOUT_FILL_X),
+ myName(name) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ new FXLabel(this, name.c_str());
+ myTextField = new FXTextField(this, 100, this, MID_GNE_SET_ATTRIBUTE, TEXTFIELD_INTEGER | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
+ myTextField->setText(toString(oc.getInt(name)).c_str());
+}
+
+
+long
+GNEDialog_Wizard::InputInt::onCmdSetOption(FXObject*, FXSelector, void*) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ oc.resetWritable();
+ oc.set(myName, myTextField->getText().text());
+ return 1;
+}
+
+
+GNEDialog_Wizard::InputFloat::InputFloat(FXComposite* parent, const std::string& name) :
+ FXHorizontalFrame(parent, LAYOUT_FILL_X),
+ myName(name) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ new FXLabel(this, name.c_str());
+ myTextField = new FXTextField(this, 100, this, MID_GNE_SET_ATTRIBUTE, TEXTFIELD_REAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
+ myTextField->setText(toString(oc.getFloat(name)).c_str());
+}
+
+
+long
+GNEDialog_Wizard::InputFloat::onCmdSetOption(FXObject*, FXSelector, void*) {
+ OptionsCont& oc = OptionsCont::getOptions();
+ oc.resetWritable();
+ oc.set(myName, myTextField->getText().text());
+ return 1;
+}
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNEDialog_Wizard.h b/src/netedit/GNEDialog_Wizard.h
new file mode 100644
index 0000000..75455ea
--- /dev/null
+++ b/src/netedit/GNEDialog_Wizard.h
@@ -0,0 +1,131 @@
+/****************************************************************************/
+/// @file GNEDialog_Wizard.h
+/// @author Jakob Erdmann
+/// @date July 2011
+/// @version $Id: GNEDialog_Wizard.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A Dialog for setting options (see OptionsCont)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEDialog_Wizard_h
+#define GNEDialog_Wizard_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEDialog_Wizard
+ * @briefA Dialog for setting options (see OptionsCont)
+ */
+class GNEDialog_Wizard : public FXDialogBox {
+public:
+ /** @brief Constructor
+ *
+ * @param[in] parent The parent window
+ * @param[in] name The title to show
+ * @param[in] width The initial width of the dialog
+ * @param[in] height The initial height of the dialog
+ */
+ GNEDialog_Wizard(FXWindow* parent, const char* name, int width, int height) ;
+
+
+ /// @brief Destructor
+ ~GNEDialog_Wizard() ;
+
+
+ // ===========================================================================
+ // Option input classes
+ // ===========================================================================
+ class InputString : public FXHorizontalFrame {
+ // FOX-declarations
+ FXDECLARE(GNEDialog_Wizard::InputString)
+ public:
+ InputString(FXComposite* parent, const std::string& name);
+ /// @brief try to set new attribute value
+ long onCmdSetOption(FXObject*, FXSelector, void*);
+ protected:
+ /// @brief FOX needs this
+ InputString() {}
+ private:
+ std::string myName;
+ FXTextField* myTextField;
+ };
+
+ class InputBool : public FXHorizontalFrame {
+ // FOX-declarations
+ FXDECLARE(GNEDialog_Wizard::InputBool)
+ public:
+ InputBool(FXComposite* parent, const std::string& name);
+ /// @brief try to set new attribute value
+ long onCmdSetOption(FXObject*, FXSelector, void*);
+ protected:
+ /// @brief FOX needs this
+ InputBool() {}
+ private:
+ std::string myName;
+ FXMenuCheck* myCheck;
+ };
+
+
+ class InputInt : public FXHorizontalFrame {
+ // FOX-declarations
+ FXDECLARE(GNEDialog_Wizard::InputInt)
+ public:
+ InputInt(FXComposite* parent, const std::string& name);
+ /// @brief try to set new attribute value
+ long onCmdSetOption(FXObject*, FXSelector, void*);
+ protected:
+ /// @brief FOX needs this
+ InputInt() {}
+ private:
+ std::string myName;
+ FXTextField* myTextField;
+ };
+
+
+ class InputFloat : public FXHorizontalFrame {
+ // FOX-declarations
+ FXDECLARE(GNEDialog_Wizard::InputFloat)
+ public:
+ InputFloat(FXComposite* parent, const std::string& name);
+ /// @brief try to set new attribute value
+ long onCmdSetOption(FXObject*, FXSelector, void*);
+ protected:
+ /// @brief FOX needs this
+ InputFloat() {}
+ private:
+ std::string myName;
+ FXTextField* myTextField;
+ };
+
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEEdge.cpp b/src/netedit/GNEEdge.cpp
new file mode 100644
index 0000000..59fb810
--- /dev/null
+++ b/src/netedit/GNEEdge.cpp
@@ -0,0 +1,778 @@
+/****************************************************************************/
+/// @file GNEEdge.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEEdge.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A road/street connecting two junctions (netedit-version, adapted from GUIEdge)
+// Basically a container for an NBEdge with drawing and editing capabilities
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <vector>
+#include <cmath>
+#include <string>
+#include <algorithm>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/settings/GUIVisualizationSettings.h>
+#include <utils/geom/GeomHelper.h>
+#include <utils/geom/GeomConvHelper.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/div/GLHelper.h>
+#include "GNEEdge.h"
+#include "GNENet.h"
+#include "GNEUndoList.h"
+#include "GNEChange_Attribute.h"
+#include "GNEChange_Lane.h"
+#include "GNEJunction.h"
+#include "GNELane.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+
+// ===========================================================================
+// static
+// ===========================================================================
+const SUMOReal GNEEdge::SNAP_RADIUS = SUMO_const_halfLaneWidth;
+
+// ===========================================================================
+// members methods
+// ===========================================================================
+GNEEdge::GNEEdge(NBEdge& nbe, GNENet* net, bool wasSplit, bool loaded):
+ GUIGlObject(GLO_EDGE, nbe.getID()),
+ GNEAttributeCarrier(SUMO_TAG_EDGE),
+ myNBEdge(nbe) ,
+ myOrigShape(nbe.getInnerGeometry()),
+ myLanes(0),
+ myNet(net),
+ myAmResponsible(false),
+ myWasSplit(wasSplit),
+ myConnectionStatus(loaded ? LOADED : GUESSED) {
+ int numLanes = myNBEdge.getNumLanes();
+ myLanes.reserve(numLanes);
+ for (int i = 0; i < numLanes; i++) {
+ myLanes.push_back(new GNELane(*this, i));
+ myLanes.back()->incRef("GNEEdge::GNEEdge");
+ }
+}
+
+
+GNEEdge::~GNEEdge() {
+ for (LaneVector::iterator i = myLanes.begin(); i != myLanes.end(); ++i) {
+ (*i)->decRef("GNEEdge::~GNEEdge");
+ if ((*i)->unreferenced()) {
+ delete *i;
+ }
+ }
+ if (myAmResponsible) {
+ delete &myNBEdge;
+ }
+}
+
+
+Boundary
+GNEEdge::getBoundary() const {
+ Boundary ret;
+ for (LaneVector::const_iterator i = myLanes.begin(); i != myLanes.end(); ++i) {
+ ret.add((*i)->getBoundary());
+ }
+ ret.grow(10); // !!! magic value
+ return ret;
+}
+
+
+GUIGLObjectPopupMenu*
+GNEEdge::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
+ GUIGLObjectPopupMenu* ret = new GUIGLObjectPopupMenu(app, parent, *this);
+ buildPopupHeader(ret, app);
+ buildCenterPopupEntry(ret);
+ buildNameCopyPopupEntry(ret);
+ buildSelectionPopupEntry(ret);
+ buildPositionCopyEntry(ret, false);
+ return ret;
+}
+
+
+Boundary
+GNEEdge::getCenteringBoundary() const {
+ Boundary b = getBoundary();
+ b.grow(20);
+ return b;
+}
+
+
+GNEJunction*
+GNEEdge::getSource() const {
+ return myNet->retrieveJunction(myNBEdge.getFromNode()->getID());
+}
+
+
+GNEJunction*
+GNEEdge::getDest() const {
+ return myNet->retrieveJunction(myNBEdge.getToNode()->getID());
+}
+
+
+void
+GNEEdge::drawGL(const GUIVisualizationSettings& s) const {
+ /* do something different for connectors?
+ if (myNBEdge.isMacroscopicConnector()) {
+ }
+ */
+
+ // draw the lanes
+ for (LaneVector::const_iterator i = myLanes.begin(); i != myLanes.end(); ++i) {
+ (*i)->drawGL(s);
+ }
+
+ // draw geometry hints
+ if (s.scale * SNAP_RADIUS > 1.) { // check whether it is not too small
+ GLHelper::setColor(s.junctionColorer.getSchemes()[0].getColor(2));
+ glPushName(getGlID());
+ PositionVector geom = myNBEdge.getGeometry();
+ for (int i = 1; i < (int)geom.size() - 1; i++) {
+ Position pos = geom[i];
+ glPushMatrix();
+ glTranslated(pos.x(), pos.y(), GLO_JUNCTION - 0.01);
+ GLHelper:: drawFilledCircle(SNAP_RADIUS, 32);
+ glPopMatrix();
+ }
+ glPopName();
+ }
+
+ // (optionally) draw the name and/or the street name
+ const bool drawStreetName = s.streetName.show && myNBEdge.getStreetName() != "";
+ if (s.edgeName.show || drawStreetName) {
+ glPushName(getGlID());
+ GNELane* lane1 = myLanes[0];
+ GNELane* lane2 = myLanes[myLanes.size() - 1];
+ Position p = lane1->getShape().positionAtOffset(lane1->getShape().length() / (SUMOReal) 2.);
+ p.add(lane2->getShape().positionAtOffset(lane2->getShape().length() / (SUMOReal) 2.));
+ p.mul(.5);
+ SUMOReal angle = lane1->getShape().rotationDegreeAtOffset(lane1->getShape().length() / (SUMOReal) 2.);
+ angle += 90;
+ if (angle > 90 && angle < 270) {
+ angle -= 180;
+ }
+ if (s.edgeName.show) {
+ drawName(p, s.scale, s.edgeName, angle);
+ }
+ if (drawStreetName) {
+ GLHelper::drawText(myNBEdge.getStreetName(), p, GLO_MAX,
+ s.streetName.size / s.scale, s.streetName.color, angle);
+ }
+ glPopName();
+ }
+}
+
+
+GUIParameterTableWindow*
+GNEEdge::getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView&) {
+ GUIParameterTableWindow* ret = 0;
+ UNUSED_PARAMETER(&app);
+ return ret;
+}
+
+
+void
+GNEEdge::updateJunctionPosition(GNEJunction* junction, const Position& origPos) {
+ Position delta = junction->getNBNode()->getPosition() - origPos;
+ PositionVector geom = myNBEdge.getGeometry();
+ // geometry endpoint need not equal junction position hence we modify it with delta
+ if (junction == getSource()) {
+ geom[0].add(delta);
+ } else {
+ geom[-1].add(delta);
+ }
+ setGeometry(geom, false);
+}
+
+
+Position
+GNEEdge::getSplitPos(const Position& clickPos) {
+ const PositionVector& geom = myNBEdge.getGeometry();
+ int index = geom.indexOfClosest(clickPos);
+ if (geom[index].distanceTo(clickPos) < SNAP_RADIUS) {
+ // split at existing geometry point
+ return geom[index];
+ } else {
+ // split straight between the next two points
+ return geom.positionAtOffset(geom.nearest_offset_to_point2D(clickPos));
+ }
+}
+
+
+Position
+GNEEdge::moveGeometry(const Position& oldPos, const Position& newPos, bool relative) {
+ PositionVector geom = myNBEdge.getGeometry();
+ bool changed = changeGeometry(geom, getMicrosimID(), oldPos, newPos, relative);
+ if (changed) {
+ setGeometry(geom, false);
+ return newPos;
+ } else {
+ return oldPos;
+ }
+}
+
+
+bool
+GNEEdge::changeGeometry(PositionVector& geom, const std::string& id, const Position& oldPos, const Position& newPos, bool relative, bool moveEndPoints) {
+ if (geom.size() < 2) {
+ throw ProcessError("Invalid geometry size in edge " + id);
+ } else {
+ int index = geom.indexOfClosest(oldPos);
+ const SUMOReal nearestOffset = geom.nearest_offset_to_point2D(oldPos, true);
+ if (nearestOffset != GeomHelper::INVALID_OFFSET
+ && (moveEndPoints || (nearestOffset >= SNAP_RADIUS
+ && nearestOffset <= geom.length2D() - SNAP_RADIUS))) {
+ const Position nearest = geom.positionAtOffset2D(nearestOffset);
+ const SUMOReal distance = geom[index].distanceTo2D(nearest);
+ if (distance < SNAP_RADIUS) { //move existing
+ if (moveEndPoints || (index != 0 && index != (int)geom.size() - 1)) {
+ const bool closed = geom.isClosed();
+ if (relative) {
+ geom[index] = geom[index] + newPos;
+ } else {
+ geom[index] = newPos;
+ }
+ if (closed && moveEndPoints && (index == 0 || index == (int)geom.size() - 1)) {
+ const int otherIndex = (int)geom.size() - 1 - index;
+ geom[otherIndex] = geom[index];
+ }
+ return true;
+ }
+ } else {
+ if (relative) {
+ int index = geom.insertAtClosest(nearest);
+ geom[index] = geom[index] + newPos;
+ return true;
+ } else {
+ geom.insertAtClosest(newPos); // insert new
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
+
+
+void
+GNEEdge::moveGeometry(const Position& delta) {
+ PositionVector geom = myNBEdge.getInnerGeometry();
+ if (geom.size() == 0) {
+ return;
+ }
+ geom.add(delta.x(), delta.y(), delta.z());
+ setGeometry(geom, true);
+}
+
+
+bool
+GNEEdge::deleteGeometry(const Position& pos, GNEUndoList* undoList) {
+ PositionVector geom = myNBEdge.getInnerGeometry();
+ if (geom.size() == 0) {
+ return false;
+ }
+ int index = geom.indexOfClosest(pos);
+ if (geom[index].distanceTo(pos) < SNAP_RADIUS) {
+ geom.erase(geom.begin() + index);
+ setAttribute(SUMO_ATTR_SHAPE, toString(geom), undoList);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+
+void
+GNEEdge::setEndpoint(Position pos, GNEUndoList* undoList) {
+ undoList->p_begin("set endpoint");
+ PositionVector geom = myNBEdge.getGeometry();
+ int index = geom.indexOfClosest(pos);
+ if (geom[index].distanceTo(pos) < SNAP_RADIUS) { // snap to existing geometry
+ pos = geom[index];
+ }
+ Position destPos = getDest()->getNBNode()->getPosition();
+ Position sourcePos = getSource()->getNBNode()->getPosition();
+ if (pos.distanceTo2D(destPos) < pos.distanceTo2D(sourcePos)) {
+ setAttribute(GNE_ATTR_SHAPE_END, toString(pos), undoList);
+ getDest()->invalidateShape();
+ } else {
+ setAttribute(GNE_ATTR_SHAPE_START, toString(pos), undoList);
+ getSource()->invalidateShape();
+ }
+ // possibly existing inner point is no longer needed
+ deleteGeometry(pos, undoList);
+ undoList->p_end();
+}
+
+
+void
+GNEEdge::resetEndpoint(const Position& pos, GNEUndoList* undoList) {
+ Position destPos = getDest()->getNBNode()->getPosition();
+ Position sourcePos = getSource()->getNBNode()->getPosition();
+ if (pos.distanceTo2D(destPos) < pos.distanceTo2D(sourcePos)) {
+ setAttribute(GNE_ATTR_SHAPE_END, toString(destPos), undoList);
+ getDest()->invalidateShape();
+ } else {
+ setAttribute(GNE_ATTR_SHAPE_START, toString(sourcePos), undoList);
+ getSource()->invalidateShape();
+ }
+}
+
+
+void
+GNEEdge::setGeometry(PositionVector geom, bool inner) {
+ myNBEdge.setGeometry(geom, inner);
+ updateLaneGeometries();
+ getSource()->invalidateShape();
+ getDest()->invalidateShape();
+ myNet->refreshElement(this);
+}
+
+
+void
+GNEEdge::updateLaneGeometries() {
+ for (LaneVector::iterator i = myLanes.begin(); i != myLanes.end(); ++i) {
+ (*i)->updateGeometry();
+ }
+}
+
+
+void
+GNEEdge::copyTemplate(GNEEdge* tpl, GNEUndoList* undoList) {
+ undoList->p_begin("copy template");
+ setAttribute(SUMO_ATTR_NUMLANES, tpl->getAttribute(SUMO_ATTR_NUMLANES), undoList);
+ setAttribute(SUMO_ATTR_TYPE, tpl->getAttribute(SUMO_ATTR_TYPE), undoList);
+ setAttribute(SUMO_ATTR_SPEED, tpl->getAttribute(SUMO_ATTR_SPEED), undoList);
+ setAttribute(SUMO_ATTR_PRIORITY, tpl->getAttribute(SUMO_ATTR_PRIORITY), undoList);
+ setAttribute(SUMO_ATTR_SPREADTYPE, tpl->getAttribute(SUMO_ATTR_SPREADTYPE), undoList);
+ setAttribute(SUMO_ATTR_WIDTH, tpl->getAttribute(SUMO_ATTR_WIDTH), undoList);
+ setAttribute(SUMO_ATTR_ENDOFFSET, tpl->getAttribute(SUMO_ATTR_ENDOFFSET), undoList);
+ // copy lane attributes as well
+ for (unsigned int i = 0; i < myLanes.size(); i++) {
+ myLanes[i]->setAttribute(SUMO_ATTR_ALLOW, tpl->myLanes[i]->getAttribute(SUMO_ATTR_ALLOW), undoList);
+ myLanes[i]->setAttribute(SUMO_ATTR_DISALLOW, tpl->myLanes[i]->getAttribute(SUMO_ATTR_DISALLOW), undoList);
+ myLanes[i]->setAttribute(SUMO_ATTR_SPEED, tpl->myLanes[i]->getAttribute(SUMO_ATTR_SPEED), undoList);
+ myLanes[i]->setAttribute(SUMO_ATTR_WIDTH, tpl->myLanes[i]->getAttribute(SUMO_ATTR_WIDTH), undoList);
+ myLanes[i]->setAttribute(SUMO_ATTR_ENDOFFSET, tpl->myLanes[i]->getAttribute(SUMO_ATTR_ENDOFFSET), undoList);
+ }
+ undoList->p_end();
+}
+
+
+std::set<GUIGlID>
+GNEEdge::getLaneGlIDs() {
+ std::set<GUIGlID> result;
+ for (size_t i = 0; i < myLanes.size(); i++) {
+ result.insert(myLanes[i]->getGlID());
+ }
+ return result;
+}
+
+
+std::string
+GNEEdge::getAttribute(SumoXMLAttr key) const {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return getMicrosimID();
+ case SUMO_ATTR_FROM:
+ return getSource()->getMicrosimID();
+ case SUMO_ATTR_TO:
+ return getDest()->getMicrosimID();
+ case SUMO_ATTR_NUMLANES:
+ return toString(myNBEdge.getNumLanes());
+ case SUMO_ATTR_PRIORITY:
+ return toString(myNBEdge.getPriority());
+ case SUMO_ATTR_LENGTH:
+ return toString(myNBEdge.getLoadedLength());
+ case SUMO_ATTR_TYPE:
+ return myNBEdge.getTypeID();
+ case SUMO_ATTR_SHAPE:
+ return toString(myNBEdge.getInnerGeometry());
+ case SUMO_ATTR_SPREADTYPE:
+ return toString(myNBEdge.getLaneSpreadFunction());
+ case SUMO_ATTR_NAME:
+ return myNBEdge.getStreetName();
+ case SUMO_ATTR_ALLOW:
+ // return all allowed classes (may differ from the written attributes)
+ return (getVehicleClassNames(myNBEdge.getPermissions()) +
+ (myNBEdge.hasLaneSpecificPermissions() ? " (combined!)" : ""));
+ case SUMO_ATTR_DISALLOW: {
+ // return classes disallowed on at least one lane (may differ from the written attributes)
+ SVCPermissions combinedDissallowed = 0;
+ for (int i = 0; i < (int)myNBEdge.getNumLanes(); ++i) {
+ combinedDissallowed |= ~myNBEdge.getPermissions(i);
+ }
+ return (getVehicleClassNames(combinedDissallowed) +
+ (myNBEdge.hasLaneSpecificPermissions() ? " (combined!)" : ""));
+ }
+ case SUMO_ATTR_SPEED:
+ if (myNBEdge.hasLaneSpecificSpeed()) {
+ return "lane specific";
+ } else {
+ return toString(myNBEdge.getSpeed());
+ }
+ case SUMO_ATTR_WIDTH:
+ if (myNBEdge.hasLaneSpecificWidth()) {
+ return "lane specific";
+ } else {
+ return toString(myNBEdge.getLaneWidth());
+ }
+ case SUMO_ATTR_ENDOFFSET:
+ if (myNBEdge.hasLaneSpecificEndOffset()) {
+ return "lane specific";
+ } else {
+ return toString(myNBEdge.getEndOffset());
+ }
+ case GNE_ATTR_MODIFICATION_STATUS:
+ return myConnectionStatus;
+ case GNE_ATTR_SHAPE_START:
+ return toString(myNBEdge.getGeometry()[0]);
+ case GNE_ATTR_SHAPE_END:
+ return toString(myNBEdge.getGeometry()[-1]);
+ default:
+ throw InvalidArgument("edge attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNEEdge::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) {
+ switch (key) {
+ case SUMO_ATTR_WIDTH:
+ case SUMO_ATTR_ENDOFFSET:
+ case SUMO_ATTR_SPEED:
+ case SUMO_ATTR_ALLOW:
+ case SUMO_ATTR_DISALLOW: {
+ undoList->p_begin("change edge attribute");
+ const std::string origValue = getAttribute(key); // will have intermediate value of "lane specific"
+ // lane specific attributes need to be changed via lanes to allow undo
+ for (LaneVector::iterator it = myLanes.begin(); it != myLanes.end(); it++) {
+ (*it)->setAttribute(key, value, undoList);
+ }
+ // ensure that the edge value is also changed. Actually this sets the lane attributes again but it does not matter
+ undoList->p_add(new GNEChange_Attribute(this, key, value, true, origValue));
+ undoList->p_end();
+ break;
+ }
+ case SUMO_ATTR_FROM: {
+ undoList->p_begin("change edge attribute");
+ undoList->p_add(new GNEChange_Attribute(this, key, value));
+ getSource()->setLogicValid(false, undoList);
+ myNet->retrieveJunction(value)->setLogicValid(false, undoList);
+ setAttribute(GNE_ATTR_SHAPE_START, toString(getSource()->getNBNode()->getPosition()), undoList);
+ getSource()->invalidateShape();
+ undoList->p_end();
+ break;
+ }
+ case SUMO_ATTR_TO: {
+ undoList->p_begin("change edge attribute");
+ undoList->p_add(new GNEChange_Attribute(this, key, value));
+ getDest()->setLogicValid(false, undoList);
+ myNet->retrieveJunction(value)->setLogicValid(false, undoList);
+ setAttribute(GNE_ATTR_SHAPE_END, toString(getDest()->getNBNode()->getPosition()), undoList);
+ getDest()->invalidateShape();
+ undoList->p_end();
+ break;
+ }
+ case SUMO_ATTR_ID:
+ case SUMO_ATTR_PRIORITY:
+ case SUMO_ATTR_LENGTH:
+ case SUMO_ATTR_TYPE:
+ case SUMO_ATTR_SPREADTYPE:
+ case GNE_ATTR_MODIFICATION_STATUS:
+ case GNE_ATTR_SHAPE_START:
+ case GNE_ATTR_SHAPE_END:
+ undoList->p_add(new GNEChange_Attribute(this, key, value));
+ break;
+ case SUMO_ATTR_NAME:
+ // user cares about street names. Make sure they appear in the output
+ OptionsCont::getOptions().resetWritable();
+ OptionsCont::getOptions().set("output.street-names", "true");
+ undoList->p_add(new GNEChange_Attribute(this, key, value));
+ break;
+ case SUMO_ATTR_NUMLANES:
+ if (value != getAttribute(key)) {
+ setNumLanes(parse<unsigned int>(value), undoList);
+ }
+ break;
+ case SUMO_ATTR_SHAPE:
+ // @note: assumes value of inner geometry!
+ // actually the geometry is already updated (incrementally
+ // during mouse movement). We set the restore point to the end
+ // of the last change-set
+ myNBEdge.setGeometry(myOrigShape, true);
+ undoList->p_add(new GNEChange_Attribute(this, key, value));
+ break;
+ default:
+ throw InvalidArgument("edge attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+bool
+GNEEdge::isValid(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return isValidID(value) && myNet->retrieveEdge(value, false) == 0;
+ break;
+ case SUMO_ATTR_FROM:
+ return isValidID(value) && myNet->retrieveJunction(value, false) != 0 && value != getDest()->getMicrosimID();
+ break;
+ case SUMO_ATTR_TO:
+ return isValidID(value) && myNet->retrieveJunction(value, false) != 0 && value != getSource()->getMicrosimID();
+ break;
+ case SUMO_ATTR_SPEED:
+ return isPositive<SUMOReal>(value);
+ break;
+ case SUMO_ATTR_NUMLANES:
+ return isPositive<int>(value);
+ break;
+ case SUMO_ATTR_PRIORITY:
+ return canParse<int>(value);
+ break;
+ case SUMO_ATTR_LENGTH:
+ return isPositive<SUMOReal>(value) || parse<SUMOReal>(value) == NBEdge::UNSPECIFIED_LOADED_LENGTH;
+ break;
+ case SUMO_ATTR_ALLOW:
+ case SUMO_ATTR_DISALLOW:
+ return canParseVehicleClasses(value);
+ break;
+ case SUMO_ATTR_TYPE:
+ return true;
+ break;
+ case SUMO_ATTR_SHAPE: {
+ bool ok = true;
+ PositionVector shape = GeomConvHelper::parseShapeReporting(
+ value, "user-supplied position", 0, ok, true);
+ return ok;
+ break;
+ }
+ case SUMO_ATTR_SPREADTYPE:
+ return SUMOXMLDefinitions::LaneSpreadFunctions.hasString(value);
+ break;
+ case SUMO_ATTR_NAME:
+ return true;
+ break;
+ case SUMO_ATTR_WIDTH:
+ return isPositive<SUMOReal>(value) || parse<SUMOReal>(value) == NBEdge::UNSPECIFIED_WIDTH;
+ break;
+ case SUMO_ATTR_ENDOFFSET:
+ return canParse<SUMOReal>(value);
+ break;
+ default:
+ throw InvalidArgument("edge attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+// ===========================================================================
+// private
+// ===========================================================================
+void
+GNEEdge::setAttribute(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ myNet->renameEdge(this, value);
+ break;
+ case SUMO_ATTR_FROM:
+ myNet->changeEdgeEndpoints(this, value, getDest()->getMicrosimID());
+ break;
+ case SUMO_ATTR_TO:
+ myNet->changeEdgeEndpoints(this, getSource()->getMicrosimID(), value);
+ break;
+ case SUMO_ATTR_NUMLANES:
+ throw InvalidArgument("GNEEdge::setAttribute (private) called for attr SUMO_ATTR_NUMLANES. This should never happen");
+ break;
+ case SUMO_ATTR_PRIORITY:
+ myNBEdge.myPriority = parse<int>(value);
+ break;
+ case SUMO_ATTR_LENGTH:
+ myNBEdge.setLoadedLength(parse<SUMOReal>(value));
+ break;
+ case SUMO_ATTR_TYPE:
+ myNBEdge.myType = value;
+ break;
+ case SUMO_ATTR_SHAPE:
+ bool ok;
+ myOrigShape = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, true);
+ setGeometry(myOrigShape, true);
+ break;
+ case SUMO_ATTR_SPREADTYPE:
+ myNBEdge.setLaneSpreadFunction(SUMOXMLDefinitions::LaneSpreadFunctions.get(value));
+ break;
+ case SUMO_ATTR_NAME:
+ myNBEdge.setStreetName(value);
+ break;
+ case SUMO_ATTR_SPEED:
+ myNBEdge.setSpeed(-1, parse<SUMOReal>(value));
+ break;
+ case SUMO_ATTR_WIDTH:
+ myNBEdge.setLaneWidth(-1, parse<SUMOReal>(value));
+ break;
+ case SUMO_ATTR_ENDOFFSET:
+ myNBEdge.setEndOffset(-1, parse<unsigned int>(value));
+ break;
+ case SUMO_ATTR_ALLOW:
+ break; // no edge value
+ case SUMO_ATTR_DISALLOW:
+ break; // no edge value
+ case GNE_ATTR_MODIFICATION_STATUS:
+ myConnectionStatus = value;
+ if (value == GUESSED) {
+ myNBEdge.invalidateConnections(true);
+ } else if (value == MODIFIED) {
+ myNBEdge.declareConnectionsAsLoaded();
+ }
+ break;
+ case GNE_ATTR_SHAPE_START: {
+ PositionVector geom = myNBEdge.getGeometry();
+ geom[0] = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, false)[0];
+ setGeometry(geom, false);
+ break;
+ }
+ case GNE_ATTR_SHAPE_END: {
+ PositionVector geom = myNBEdge.getGeometry();
+ geom[-1] = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, false)[0];
+ setGeometry(geom, false);
+ break;
+ }
+ default:
+ throw InvalidArgument("edge attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNEEdge::setNumLanes(unsigned int numLanes, GNEUndoList* undoList) {
+ undoList->p_begin("change number of lanes");
+ getSource()->setLogicValid(false, undoList);
+ getDest()->setLogicValid(false, undoList);
+
+ const unsigned int oldNumLanes = (unsigned int)myLanes.size();
+ for (unsigned int i = oldNumLanes; i < numLanes; i++) {
+ // since the GNELane does not exist yet, it cannot have yet been referenced so we only pass a zero-pointer
+ undoList->add(new GNEChange_Lane(this, 0,
+ myNBEdge.getLaneStruct(oldNumLanes - 1), true), true);
+ }
+ for (unsigned int i = oldNumLanes - 1; i > numLanes - 1; i--) {
+ // delete leftmost lane
+ undoList->add(new GNEChange_Lane(this, myLanes[i], myNBEdge.getLaneStruct(i), false), true);
+ }
+ undoList->p_end();
+}
+
+
+void
+GNEEdge::addLane(GNELane* lane, const NBEdge::Lane& laneAttrs) {
+ const int index = lane ? lane->getIndex() : myNBEdge.getNumLanes();
+ // the laneStruct must be created first to ensure we have some geometry
+ myNBEdge.addLane(index);
+ if (lane) {
+ // restore a previously deleted lane
+ myLanes.insert(myLanes.begin() + index, lane);
+
+ } else {
+ // create a new lane by copying leftmost lane
+ lane = new GNELane(*this, index);
+ myLanes.push_back(lane);
+ }
+ lane->incRef("GNEEdge::addLane");
+ // we copy all attributes except shape since this is recomputed from edge shape
+ myNBEdge.setSpeed(lane->getIndex(), laneAttrs.speed);
+ myNBEdge.setPermissions(laneAttrs.permissions, lane->getIndex());
+ myNBEdge.setPreferredVehicleClass(laneAttrs.preferred, lane->getIndex());
+ myNBEdge.setEndOffset(lane->getIndex(), laneAttrs.endOffset);
+ myNBEdge.setLaneWidth(lane->getIndex(), laneAttrs.width);
+ // udate indices
+ for (int i = 0; i < (int)myLanes.size(); ++i) {
+ myLanes[i]->setIndex(i);
+ }
+ /* while technically correct, this looks ugly
+ getSource()->invalidateShape();
+ getDest()->invalidateShape();
+ */
+ myNet->refreshElement(this);
+}
+
+
+void
+GNEEdge::removeLane(GNELane* lane) {
+ if (lane == 0) {
+ lane = myLanes.back();
+ }
+ myNBEdge.deleteLane(lane->getIndex());
+ lane->decRef("GNEEdge::removeLane");
+ myLanes.erase(myLanes.begin() + lane->getIndex());
+ if (myLanes.back()->unreferenced()) {
+ delete lane;
+ }
+ // udate indices
+ for (int i = 0; i < (int)myLanes.size(); ++i) {
+ myLanes[i]->setIndex(i);
+ }
+ /* while technically correct, this looks ugly
+ getSource()->invalidateShape();
+ getDest()->invalidateShape();
+ */
+
+ myNet->refreshElement(this);
+}
+
+
+void
+GNEEdge::addConnection(unsigned int fromLane, const std::string& toEdgeID, unsigned int toLane, bool mayPass) {
+ NBEdge* destEdge = myNet->retrieveEdge(toEdgeID)->getNBEdge();
+ myNBEdge.setConnection(fromLane, destEdge, toLane, NBEdge::L2L_USER, true, mayPass);
+ myNet->refreshElement(this); // actually we only do this to force a redraw
+}
+
+
+void
+GNEEdge::removeConnection(unsigned int fromLane, const std::string& toEdgeID, unsigned int toLane) {
+ NBEdge* destEdge = myNet->retrieveEdge(toEdgeID)->getNBEdge();
+ if (destEdge == myNBEdge.getTurnDestination()) {
+ myNet->removeExplicitTurnaround(getMicrosimID());
+ }
+ myNBEdge.removeFromConnections(destEdge, fromLane, toLane);
+ myNet->refreshElement(this); // actually we only do this to force a redraw
+}
+
+
+void
+GNEEdge::setMicrosimID(const std::string& newID) {
+ GUIGlObject::setMicrosimID(newID);
+ for (LaneVector::iterator i = myLanes.begin(); i != myLanes.end(); ++i) {
+ (*i)->setMicrosimID(getNBEdge()->getLaneID((*i)->getIndex()));
+ }
+}
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNEEdge.h b/src/netedit/GNEEdge.h
new file mode 100644
index 0000000..941abb1
--- /dev/null
+++ b/src/netedit/GNEEdge.h
@@ -0,0 +1,296 @@
+/****************************************************************************/
+/// @file GNEEdge.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEEdge.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A road/street connecting two junctions (netedit-version, adapted from GUIEdge)
+// Basically a container for an NBEdge with drawing and editing capabilities
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEEdge_h
+#define GNEEdge_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <vector>
+#include <string>
+#include <utils/gui/globjects/GLIncludes.h>
+#include <utils/geom/Position.h>
+#include <utils/geom/Boundary.h>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <netbuild/NBEdge.h>
+#include "GNEAttributeCarrier.h"
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNENet;
+class GNEJunction;
+class GNELane;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEEdge
+ * @brief A road/street connecting two junctions (netedit-version)
+ *
+ * @see MSEdge
+ */
+class GNEEdge : public GUIGlObject, public GNEAttributeCarrier {
+
+ friend class GNEChange_Lane;
+ friend class GNEChange_Connection;
+
+public:
+ /// Definition of the lane's positions vector
+ typedef std::vector<GNELane*> LaneVector;
+
+ /** @brief Constructor.
+ * @param[in] nbe The represented edge
+ * @param[in] net The net to inform about gui updates
+ * @param[in] loaded Whether the edge was loaded from a file
+ */
+ GNEEdge(NBEdge& nbe, GNENet* net, bool wasSplit = false, bool loaded = false) ;
+
+
+ /// @brief Destructor.
+ ~GNEEdge() ;
+
+ /// Returns the street's geometry
+ Boundary getBoundary() const;
+
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ virtual GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ virtual GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns the boundary to which the view shall be centered in order to show the object
+ *
+ * @return The boundary the object is within
+ * @see GUIGlObject::getCenteringBoundary
+ */
+ Boundary getCenteringBoundary() const ;
+
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+
+ /** @brief update edge geometry after junction move */
+ void updateJunctionPosition(GNEJunction* junction, const Position& origPos);
+
+
+ /** @brief returns the internal NBEdge
+ */
+ NBEdge* getNBEdge() {
+ return &myNBEdge;
+ }
+
+
+ /** @brief returns the source-junction */
+ GNEJunction* getSource() const;
+
+ /** @brief returns the destination-junction */
+ GNEJunction* getDest() const;
+
+ /** @brief change the edge geometry without registering undo/redo
+ * It is up to the Edge to decide whether an new geometry node should be
+ * generated or an existing node should be moved
+ * @param[in] oldPos The origin of the mouse movement
+ * @param[in] newPos The destination of the mouse movenent
+ * @param[in] relative Whether newPos is absolute or relative
+ * @return newPos if something was moved, oldPos if nothing was moved
+ */
+ Position moveGeometry(const Position& oldPos, const Position& newPos, bool relative = false);
+
+ //// @brief manipulate the given geometry and return whether it was changed
+ static bool changeGeometry(PositionVector& geom, const std::string& id, const Position& oldPos, const Position& newPos, bool relative = false, bool moveEndPoints = false);
+
+ /** @brief change the edge geometry without registering undo/redo
+ * @param[in] delta All inner points are moved by adding delta
+ */
+ void moveGeometry(const Position& delta);
+
+
+ /** @brief deletes the closest geometry node within SNAP_RADIUS.
+ * @return true if a node was deleted
+ */
+ bool deleteGeometry(const Position& pos, GNEUndoList* undoList);
+
+
+ /** @brief makes pos the new geometry endpoint at the appropriate end
+ */
+ void setEndpoint(Position pos, GNEUndoList* undoList);
+
+
+ /** @brief restores the endpoint to the junction position at the appropriate end
+ */
+ void resetEndpoint(const Position& pos, GNEUndoList* undoList);
+
+
+ //@name inherited from GNEAttributeCarrier
+ //@{
+ std::string getAttribute(SumoXMLAttr key) const;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ */
+ void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
+
+ bool isValid(SumoXMLAttr key, const std::string& value);
+ //@}
+
+ /// @brief set responsibility for deleting internal strctures
+ void setResponsible(bool newVal) {
+ myAmResponsible = newVal;
+ }
+
+ /** @brief update edge geometry and inform the lanes
+ * @param[in] geom The new geometry
+ * @param[in] inner Whether geom is only the inner points
+ */
+ void setGeometry(PositionVector geom, bool inner);
+
+
+ /** @brief update edge geometry and inform the lanes
+ * let the lanes recompute their precomputed geometry information
+ * (needed after computing junction shapes)
+ */
+ void updateLaneGeometries();
+
+
+ /** @brief copy edge attributes from tpl */
+ void copyTemplate(GNEEdge* tpl, GNEUndoList* undolist);
+
+
+ /** returns GLIDs of all lanes */
+ std::set<GUIGlID> getLaneGlIDs();
+
+ /** returns a reference to the lane vector */
+ const LaneVector& getLanes() {
+ return myLanes;
+ }
+
+ /// @brief whether this edge was created from a split
+ bool wasSplit() {
+ return myWasSplit;
+ }
+
+ /* @brief compute a splitting position which keeps the resulting edges
+ * straight unless the user clicked near a geometry point */
+ Position getSplitPos(const Position& clickPos);
+
+ /// @brief override to also set lane ids
+ void setMicrosimID(const std::string& newID);
+
+ // the radius in which to register clicks for geometry nodes
+ static const SUMOReal SNAP_RADIUS;
+private:
+
+ /// the underlying NBEdge
+ NBEdge& myNBEdge;
+
+ ///@brief restore point for undo
+ PositionVector myOrigShape;
+
+ /// List of this edges lanes
+ LaneVector myLanes;
+
+ // the net to inform about updates
+ GNENet* myNet;
+
+ /// @brief whether we are responsible for deleting myNBNode
+ bool myAmResponsible;
+
+ /// @brief whether this edge was created from a split
+ bool myWasSplit;
+
+ /// @brief modification status of the connections
+ std::string myConnectionStatus;
+
+private:
+ void setAttribute(SumoXMLAttr key, const std::string& value);
+
+ /// @brief invalidated copy constructor
+ GNEEdge(const GNEEdge& s);
+
+ /// @brief invalidated assignment operator
+ GNEEdge& operator=(const GNEEdge& s);
+
+ /** @brief changes the number of lanes.
+ * When reducing the number of lanes, higher-numbered lanes are removed first.
+ * When increasing the number of lanes, the last known attributes for a lane
+ * with this number are restored. If none are found the attributes for the
+ * leftmost lane are copied
+ */
+ void setNumLanes(unsigned int numLanes, GNEUndoList* undoList);
+
+ /** @brief increase number of lanes by one use the given attributes and
+ * restore the GNELane*/
+ void addLane(GNELane* lane, const NBEdge::Lane& laneAttrs);
+
+ /* decrease the number of lanes by one. argument is only used to increase
+ * robustness (assertions) */
+ void removeLane(GNELane* lane);
+
+ /** @brief adds a connection */
+ void addConnection(unsigned int fromLane, const std::string& toEdgeID, unsigned int toLane, bool mayPass);
+
+ /** @brief removes a connection */
+ void removeConnection(unsigned int fromLane, const std::string& toEdgeID, unsigned int toLane);
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netbuild/NBHelpers.h b/src/netedit/GNEEvent_NetworkLoaded.h
similarity index 53%
copy from src/netbuild/NBHelpers.h
copy to src/netedit/GNEEvent_NetworkLoaded.h
index c3337e8..09b6c94 100644
--- a/src/netbuild/NBHelpers.h
+++ b/src/netedit/GNEEvent_NetworkLoaded.h
@@ -1,13 +1,10 @@
/****************************************************************************/
-/// @file NBHelpers.h
-/// @author Daniel Krajzewicz
-/// @author Sascha Krieg
-/// @author Michael Behrisch
+/// @file GNEEvent_NetworkLoaded.h
/// @author Jakob Erdmann
-/// @date Tue, 20 Nov 2001
-/// @version $Id: NBHelpers.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @date Feb 2011
+/// @version $Id: GNEEvent_NetworkLoaded.h 18845 2015-09-17 12:50:55Z behrisch $
///
-// Some mathematical helper methods
+// Event to send when the network has been loaded by GNELoadThread
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
@@ -20,8 +17,8 @@
// (at your option) any later version.
//
/****************************************************************************/
-#ifndef NBHelpers_h
-#define NBHelpers_h
+#ifndef GNEEvent_NetworkLoaded_h
+#define GNEEvent_NetworkLoaded_h
// ===========================================================================
@@ -34,40 +31,51 @@
#endif
#include <string>
+#include <iostream>
+#include <utils/gui/events/GUIEvent.h>
+#include <utils/common/SUMOTime.h>
// ===========================================================================
// class declarations
// ===========================================================================
-class NBNode;
-class Position;
+class GNENet;
// ===========================================================================
// class definitions
// ===========================================================================
/**
- * @class NBHelpers
- * Some mathmatical methods for the computation of angles
+ * @class GNEEvent_NetworkLoaded
+ *
+ * Throw to GUIApplicationWindow from GUILoadThread after a simulation has
+ * been loaded or the loading process failed
*/
-class NBHelpers {
+class GNEEvent_NetworkLoaded : public GUIEvent {
public:
- /** computes the angle of the straight which is described by the two
- coordinates */
- static SUMOReal angle(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2);
+ /// constructor
+ GNEEvent_NetworkLoaded(GNENet* net,
+ const std::string& file,
+ const std::string& settingsFile,
+ const bool viewportFromRegistry)
+ : GUIEvent(EVENT_SIMULATION_LOADED),
+ myNet(net), myFile(file), mySettingsFile(settingsFile), myViewportFromRegistry(viewportFromRegistry) { }
- /** computes the relative angle between the two angles */
- static SUMOReal relAngle(SUMOReal angle1, SUMOReal angle2);
+ /// destructor
+ ~GNEEvent_NetworkLoaded() { }
- ///@brief ensure that reverse relAngles (>=179.999) always count as turnarounds (-180)
- static SUMOReal normRelAngle(SUMOReal angle1, SUMOReal angle2);
+public:
+ /// the loaded net
+ GNENet* myNet;
- /** converts the numerical id to its "normal" string representation */
- static std::string normalIDRepresentation(const std::string& id);
+ /// the name of the loaded file
+ std::string myFile;
- /** returns the distance between both nodes */
- static SUMOReal distance(NBNode* node1, NBNode* node2);
+ /// the name of the settings file to load
+ std::string mySettingsFile;
+ /// whether loading viewport from registry
+ bool myViewportFromRegistry;
};
diff --git a/src/netedit/GNEInspector.cpp b/src/netedit/GNEInspector.cpp
new file mode 100644
index 0000000..428dbc0
--- /dev/null
+++ b/src/netedit/GNEInspector.cpp
@@ -0,0 +1,353 @@
+/****************************************************************************/
+/// @file GNEInspector.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEInspector.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The Widget for modifying network-element attributes (i.e. lane speed)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <cmath>
+#include <cassert>
+#include <iostream>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include "GNEInspector.h"
+#include "GNEUndoList.h"
+#include "GNEEdge.h"
+#include "GNEAttributeCarrier.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNEInspector) GNEInspectorMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_COPY_TEMPLATE, GNEInspector::onCmdCopyTemplate),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_TEMPLATE, GNEInspector::onCmdSetTemplate),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_COPY_TEMPLATE, GNEInspector::onUpdCopyTemplate)
+};
+
+/*
+FXDEFMAP(GNEInspector::AttrPanel) AttrPanelMap[]= {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_COPY_TEMPLATE, GNEInspector::AttrPanelMap::onCmdCopyTemplate),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_TEMPLATE, GNEInspector::AttrPanelMap::onCmdSetTemplate)
+};
+*/
+
+FXDEFMAP(GNEInspector::AttrInput) AttrInputMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_ATTRIBUTE, GNEInspector::AttrInput::onCmdSetAttribute),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_OPEN_ATTRIBUTE_EDITOR, GNEInspector::AttrInput::onCmdOpenAttributeEditor)
+};
+
+// Object implementation
+FXIMPLEMENT(GNEInspector, FXScrollWindow, GNEInspectorMap, ARRAYNUMBER(GNEInspectorMap))
+// FXIMPLEMENT(GNEInspector::AttrPanel, FXVerticalFrame, AttrPanelMap, ARRAYNUMBER(AttrPanelMap))
+FXIMPLEMENT(GNEInspector::AttrInput, FXHorizontalFrame, AttrInputMap, ARRAYNUMBER(AttrInputMap))
+
+// ===========================================================================
+// static members
+// ===========================================================================
+const int GNEInspector::WIDTH = 140;
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEInspector::GNEInspector(FXComposite* parent, GNEUndoList* undoList):
+ FXScrollWindow(parent, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0),
+ myUndoList(undoList),
+ myHeaderFont(new FXFont(getApp(), "Arial", 18, FXFont::Bold)),
+ myPanel(0),
+ myEdgeTemplate(0) {
+ myPanel = new AttrPanel(this, myACs, undoList);
+}
+
+
+void
+GNEInspector::create() {
+ FXScrollWindow::create();
+ myHeaderFont->create();
+ myPanel->create();
+}
+
+
+GNEInspector::~GNEInspector() {
+ delete myPanel;
+ delete myHeaderFont;
+ if (myEdgeTemplate) {
+ myEdgeTemplate->decRef("GNEInspector::~GNEInspector");
+ if (myEdgeTemplate->unreferenced()) {
+ delete myEdgeTemplate;
+ }
+ }
+}
+
+
+void
+GNEInspector::inspect(const std::vector<GNEAttributeCarrier*>& ACs) {
+ delete myPanel;
+ myACs = ACs;
+ myPanel = new AttrPanel(this, myACs, myUndoList);
+ myPanel->create();
+ recalc();
+}
+
+
+void
+GNEInspector::update() {
+ inspect(myACs);
+}
+
+void
+GNEInspector::setEdgeTemplate(GNEEdge* tpl) {
+ if (myEdgeTemplate) {
+ myEdgeTemplate->decRef("GNEInspector::setEdgeTemplate");
+ if (myEdgeTemplate->unreferenced()) {
+ delete myEdgeTemplate;
+ }
+ }
+ myEdgeTemplate = tpl;
+ myEdgeTemplate->incRef("GNEInspector::setEdgeTemplate");
+}
+
+
+long
+GNEInspector::onCmdCopyTemplate(FXObject*, FXSelector, void*) {
+ for (std::vector<GNEAttributeCarrier*>::iterator it = myACs.begin(); it != myACs.end(); it++) {
+ GNEEdge* edge = dynamic_cast<GNEEdge*>(*it);
+ assert(edge);
+ edge->copyTemplate(myEdgeTemplate, myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEInspector::onCmdSetTemplate(FXObject*, FXSelector, void*) {
+ assert(myACs.size() == 1);
+ GNEEdge* edge = dynamic_cast<GNEEdge*>(myACs[0]);
+ assert(edge);
+ setEdgeTemplate(edge);
+ myPanel->update();
+ return 1;
+}
+
+
+long
+GNEInspector::onUpdCopyTemplate(FXObject* sender, FXSelector, void*) {
+ FXString caption;
+ if (myEdgeTemplate) {
+ caption = ("Copy '" + myEdgeTemplate->getMicrosimID() + "'").c_str();
+ sender->handle(this, FXSEL(SEL_COMMAND, ID_ENABLE), NULL);
+ } else {
+ caption = "No Template Set";
+ sender->handle(this, FXSEL(SEL_COMMAND, ID_DISABLE), NULL);
+ }
+ sender->handle(this, FXSEL(SEL_COMMAND, FXLabel::ID_SETSTRINGVALUE), (void*)&caption);
+ return 1;
+}
+
+
+// ===========================================================================
+// AttrPanel method definitions
+// ===========================================================================
+
+GNEInspector::AttrPanel::AttrPanel(GNEInspector* parent, const std::vector<GNEAttributeCarrier*>& ACs, GNEUndoList* undoList) :
+ FXVerticalFrame(parent, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0, 2, 0, 0, 0, 0, 0) {
+ FXLabel* header;
+ if (ACs.size() > 0) {
+ std::string headerString = toString(ACs[0]->getTag());
+ if (ACs.size() > 1) {
+ headerString = toString(ACs.size()) + " " + headerString + "s";
+ }
+ header = new FXLabel(this, headerString.c_str());
+ new FXHorizontalSeparator(this, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+
+ const std::vector<SumoXMLAttr>& attrs = ACs[0]->getAttrs();
+ for (std::vector<SumoXMLAttr>::const_iterator it = attrs.begin(); it != attrs.end(); it++) {
+ if (ACs.size() > 1 && GNEAttributeCarrier::isUnique(*it)) {
+ // disable editing for some attributes in case of multi-selection
+ // even displaying is problematic because of string rendering restrictions
+ continue;
+ }
+ std::set<std::string> occuringValues;
+ for (std::vector<GNEAttributeCarrier*>::const_iterator it_ac = ACs.begin(); it_ac != ACs.end(); it_ac++) {
+ occuringValues.insert((*it_ac)->getAttribute(*it));
+ }
+ std::ostringstream oss;
+ for (std::set<std::string>::iterator it_val = occuringValues.begin(); it_val != occuringValues.end(); it_val++) {
+ if (it_val != occuringValues.begin()) {
+ oss << " ";
+ }
+ oss << *it_val;
+ }
+ new AttrInput(this, ACs, *it, oss.str(), undoList);
+ }
+
+ if (dynamic_cast<GNEEdge*>(ACs[0])) {
+ new FXHorizontalSeparator(this, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ // "Copy Template" (caption supplied via onUpdate)
+ new FXButton(this, "", 0, parent, MID_GNE_COPY_TEMPLATE,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ if (ACs.size() == 1) {
+ // "Set As Template"
+ new FXButton(this, "Set as Template\t\t", 0, parent, MID_GNE_SET_TEMPLATE,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ }
+ };
+ } else {
+ header = new FXLabel(this, "No Object\nselected", 0, JUSTIFY_LEFT);
+ }
+ header->setFont(parent->getHeaderFont());
+
+}
+
+
+// ===========================================================================
+// AttrInput method definitions
+//
+// ===========================================================================
+GNEInspector::AttrInput::AttrInput(
+ FXComposite* parent,
+ const std::vector<GNEAttributeCarrier*>& ACs, SumoXMLAttr attr, std::string initialValue,
+ GNEUndoList* undoList) :
+ FXHorizontalFrame(parent, LAYOUT_FILL_X, 0, 0, WIDTH, 0, 0, 0, 0, 2),
+ myTag(ACs[0]->getTag()),
+ myAttr(attr),
+ myACs(&ACs),
+ myUndoList(undoList),
+ myTextField(0),
+ myChoicesCombo(0) {
+ const std::vector<std::string>& choices = GNEAttributeCarrier::discreteChoices(myTag, myAttr);
+ const bool combinableChoices = choices.size() > 0 && GNEAttributeCarrier::discreteCombinableChoices(myTag, myAttr);
+ FXuint opts;
+ std::string label;
+ if (combinableChoices) {
+ opts = BUTTON_NORMAL;
+ label = toString(attr) + "\t\tOpen edit dialog for attribute '" + toString(attr) + "'";
+ } else {
+ opts = 0;
+ label = toString(attr);
+ }
+ FXButton* but = new FXButton(this, label.c_str(), 0, this, MID_GNE_OPEN_ATTRIBUTE_EDITOR,
+ opts, 0, 0, 0, 0, DEFAULT_PAD, DEFAULT_PAD, 1, 1);
+ int cols = (WIDTH - but->getDefaultWidth() - 6) / 9;
+ if (choices.size() == 0 || combinableChoices) {
+ // rudimentary input restriction
+ unsigned int numerical = GNEAttributeCarrier::isNumerical(attr) ? TEXTFIELD_REAL : 0;
+ myTextField = new FXTextField(this, cols,
+ this, MID_GNE_SET_ATTRIBUTE, TEXTFIELD_NORMAL | LAYOUT_RIGHT | numerical, 0, 0, 0, 0, 4, 2, 0, 2);
+ myTextField->setText(initialValue.c_str());
+ } else {
+ myChoicesCombo = new FXComboBox(this, 12, this, MID_GNE_SET_ATTRIBUTE,
+ FRAME_SUNKEN | LAYOUT_LEFT | LAYOUT_TOP | COMBOBOX_STATIC | LAYOUT_CENTER_Y);
+ for (std::vector<std::string>::const_iterator it = choices.begin(); it != choices.end(); ++it) {
+ myChoicesCombo->appendItem(it->c_str());
+ }
+ myChoicesCombo->setNumVisible((int)choices.size());
+ myChoicesCombo->setCurrentItem(myChoicesCombo->findItem(initialValue.c_str()));
+ }
+}
+
+
+long
+GNEInspector::AttrInput::onCmdOpenAttributeEditor(FXObject*, FXSelector, void*) {
+ FXDialogBox* editor = new FXDialogBox(getApp(),
+ ("Select " + toString(myAttr) + "ed").c_str(),
+ DECOR_CLOSE | DECOR_TITLE);
+ FXMatrix* m1 = new FXMatrix(editor, 2, MATRIX_BY_COLUMNS);
+ const std::vector<std::string>& choices = GNEAttributeCarrier::discreteChoices(myTag, myAttr);
+ std::vector<FXCheckButton*> vClassButtons;
+ const std::string oldValue(myTextField->getText().text());
+ for (std::vector<std::string>::const_iterator it = choices.begin(); it != choices.end(); ++it) {
+ vClassButtons.push_back(new FXCheckButton(m1, (*it).c_str()));
+ if (oldValue.find(*it) != std::string::npos) {
+ vClassButtons.back()->setCheck(true);
+ }
+ }
+ // buttons
+ new FXHorizontalSeparator(m1, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ new FXHorizontalSeparator(m1, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ // "Cancel"
+ new FXButton(m1, "Cancel\t\tDiscard modifications", 0, editor, FXDialogBox::ID_CANCEL,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "OK"
+ new FXButton(m1, "OK\t\tSave modifications", 0, editor, FXDialogBox::ID_ACCEPT,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ editor->create();
+ if (editor->execute()) {
+ std::vector<std::string> vClasses;
+ for (std::vector<FXCheckButton*>::const_iterator it = vClassButtons.begin(); it != vClassButtons.end(); ++it) {
+ if ((*it)->getCheck()) {
+ vClasses.push_back(std::string((*it)->getText().text()));
+ }
+ }
+ myTextField->setText(joinToString(vClasses, " ").c_str());
+ onCmdSetAttribute(0, 0, 0);
+ }
+ return 1;
+}
+
+
+long
+GNEInspector::AttrInput::onCmdSetAttribute(FXObject*, FXSelector, void* data) {
+ std::string newVal(myTextField != 0 ? myTextField->getText().text() : (char*) data);
+ const std::vector<GNEAttributeCarrier*>& ACs = *myACs;
+ if (ACs[0]->isValid(myAttr, newVal)) {
+ // if its valid for the first AC than its valid for all (of the same type)
+ if (ACs.size() > 1) {
+ myUndoList->p_begin("Change multiple attributes");
+ }
+ for (std::vector<GNEAttributeCarrier*>::const_iterator it_ac = ACs.begin(); it_ac != ACs.end(); it_ac++) {
+ (*it_ac)->setAttribute(myAttr, newVal, myUndoList);
+ }
+ if (ACs.size() > 1) {
+ myUndoList->p_end();
+ }
+ if (myTextField != 0) {
+ myTextField->setTextColor(FXRGB(0, 0, 0));
+ myTextField->killFocus();
+ }
+ } else {
+ if (myTextField != 0) {
+ myTextField->setTextColor(FXRGB(255, 0, 0));
+ }
+ }
+ return 1;
+}
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNEInspector.h b/src/netedit/GNEInspector.h
new file mode 100644
index 0000000..0835394
--- /dev/null
+++ b/src/netedit/GNEInspector.h
@@ -0,0 +1,169 @@
+/****************************************************************************/
+/// @file GNEInspector.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEInspector.h 18856 2015-09-18 02:13:59Z namdre $
+///
+// The Widget for modifying network-element attributes (i.e. lane speed)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEInspector_h
+#define GNEInspector_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+
+#include <utils/xml/SUMOXMLDefinitions.h>
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNENet;
+class GNEEdge;
+class GNEAttributeCarrier;
+class GNEUndoList;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEInspector
+ * The Widget for modifying network-element attributes (i.e. lane speed)
+ */
+class GNEInspector : public FXScrollWindow {
+ // FOX-declarations
+ FXDECLARE(GNEInspector)
+
+public:
+ // ===========================================================================
+ // class AttrPanel
+ // ===========================================================================
+ class AttrPanel : public FXVerticalFrame {
+ // FOX-declarations
+ // FXDECLARE(GNEInspector::AttrPanel)
+ public:
+ AttrPanel(GNEInspector* parent, const std::vector<GNEAttributeCarrier*>& ACs, GNEUndoList* undoList);
+
+ protected:
+ /// @brief FOX needs this
+ AttrPanel() {}
+ };
+
+ // ===========================================================================
+ // class AttrInput
+ // ===========================================================================
+ class AttrInput : public FXHorizontalFrame {
+ // FOX-declarations
+ FXDECLARE(GNEInspector::AttrInput)
+ public:
+ AttrInput(
+ FXComposite* parent,
+ const std::vector<GNEAttributeCarrier*>& ACs, SumoXMLAttr attr, std::string initialValue,
+ GNEUndoList* undoList);
+
+ /// @brief try to set new attribute value
+ long onCmdSetAttribute(FXObject*, FXSelector, void*);
+ /// @brief open model dialog for more comfortable attribute editing
+ long onCmdOpenAttributeEditor(FXObject*, FXSelector, void*);
+
+ protected:
+ /// @brief FOX needs this
+ AttrInput() {}
+
+ private:
+ SumoXMLTag myTag;
+ SumoXMLAttr myAttr;
+ const std::vector<GNEAttributeCarrier*>* myACs;
+ GNEUndoList* myUndoList;
+ FXTextField* myTextField;
+ FXComboBox* myChoicesCombo;
+ };
+
+
+public:
+ /** @brief Constructor
+ * @param[in] parent The parent window
+ * @param[in] undoList The undoList to record changes facilitated by this
+ * @param[in] tpl The initial edge template (we assume shared responsibility via reference counting)
+ */
+ GNEInspector(FXComposite* parent, GNEUndoList* undoList);
+
+
+ /// @brief Destructor
+ ~GNEInspector();
+
+ /// @brief Inspect the given multi-selection
+ void inspect(const std::vector<GNEAttributeCarrier*>& ACs);
+
+ /** @brief Creates the widget */
+ void create();
+
+ /** @brief update the widget */
+ void update();
+
+ FXFont* getHeaderFont() {
+ return myHeaderFont;
+ }
+
+ // @brief the template edge (to copy attributes from)
+ GNEEdge* getEdgeTemplate() {
+ return myEdgeTemplate;
+ }
+
+ // @brief seh the template edge (we assume shared responsibility via reference counting)
+ void setEdgeTemplate(GNEEdge* tpl);
+
+ /// @brief copy edge attributes from edge template
+ long onCmdCopyTemplate(FXObject*, FXSelector, void*);
+ /// @brief set current edge as new template
+ long onCmdSetTemplate(FXObject*, FXSelector, void*);
+
+ /// @brief update the copy button with the name of the template
+ long onUpdCopyTemplate(FXObject*, FXSelector, void*);
+
+protected:
+ /// @brief FOX needs this
+ GNEInspector() {}
+
+
+private:
+ GNEUndoList* myUndoList;
+
+ /// @brief Font for the widget
+ FXFont* myHeaderFont;
+
+ AttrPanel* myPanel;
+
+ /// @brief the edge template
+ GNEEdge* myEdgeTemplate;
+
+ /// @brief the multi-selection currently being inspected
+ std::vector<GNEAttributeCarrier*> myACs;
+
+ static const int WIDTH;
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEInternalLane.cpp b/src/netedit/GNEInternalLane.cpp
new file mode 100644
index 0000000..0d11ca9
--- /dev/null
+++ b/src/netedit/GNEInternalLane.cpp
@@ -0,0 +1,215 @@
+/****************************************************************************/
+/// @file GNEInternalLane.cpp
+/// @author Jakob Erdmann
+/// @date June 2011
+/// @version $Id: GNEInternalLane.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing Inner Lanes (used when editing traffic lights)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <iostream>
+#include <utility>
+#include <time.h>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/geom/PositionVector.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/common/ToString.h>
+#include <utils/geom/GeomHelper.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/common/RandHelper.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/common/SUMOVehicleClass.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+
+#include "GNENet.h"
+#include "GNEChange_Attribute.h"
+#include "GNEViewNet.h"
+#include "GNEInternalLane.h"
+#include "GNETLSEditor.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+/// @note: msvc10 does not approve of allocating empty arrays
+/*
+FXDEFMAP(GNEInternalLane) GNEInternalLaneMap[]= {
+ //FXMAPFUNC(SEL_COMMAND, MID_GNE_PHASE_DURATION, GNETLSEditor::onDefault),
+};
+*/
+
+// Object implementation
+//FXIMPLEMENT(GNEInternalLane, FXDelegator, GNEInternalLaneMap, ARRAYNUMBER(GNEInternalLaneMap))
+FXIMPLEMENT(GNEInternalLane, FXDelegator, 0, 0)
+
+// ===========================================================================
+// static member definitions
+// ===========================================================================
+
+StringBijection<FXuint>::Entry GNEInternalLane::linkStateNamesValues[] = {
+ { "Green-Major", LINKSTATE_TL_GREEN_MAJOR },
+ { "Green-Minor", LINKSTATE_TL_GREEN_MINOR },
+ { "Yellow-Major", LINKSTATE_TL_YELLOW_MAJOR },
+ { "Yellow-Minor", LINKSTATE_TL_YELLOW_MINOR },
+ { "Red", LINKSTATE_TL_RED },
+ { "Red-Yellow", LINKSTATE_TL_REDYELLOW },
+ { "Stop", LINKSTATE_STOP },
+ { "Off", LINKSTATE_TL_OFF_NOSIGNAL },
+ { "Off-Blinking", LINKSTATE_TL_OFF_BLINKING },
+};
+
+const StringBijection<FXuint> GNEInternalLane::LinkStateNames(
+ GNEInternalLane::linkStateNamesValues, LINKSTATE_TL_OFF_BLINKING);
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEInternalLane::GNEInternalLane(GNETLSEditor* editor, const std::string& id, const PositionVector& shape, int tlIndex, LinkState state) :
+ GUIGlObject(editor == 0 ? GLO_JUNCTION : GLO_TLLOGIC, id),
+ myShape(shape),
+ myState(state),
+ myStateTarget(myState),
+ myEditor(editor),
+ myTlIndex(tlIndex),
+ myPopup(0) {
+ int segments = (int) myShape.size() - 1;
+ if (segments >= 0) {
+ myShapeRotations.reserve(segments);
+ myShapeLengths.reserve(segments);
+ for (int i = 0; i < segments; ++i) {
+ const Position& f = myShape[i];
+ const Position& s = myShape[i + 1];
+ myShapeLengths.push_back(f.distanceTo2D(s));
+ myShapeRotations.push_back((SUMOReal) atan2((s.x() - f.x()), (f.y() - s.y())) * (SUMOReal) 180.0 / (SUMOReal) PI);
+ }
+ }
+}
+
+
+GNEInternalLane::GNEInternalLane() :
+ GUIGlObject(GLO_TLLOGIC, "dummyInternalLane") {
+ assert(false);
+}
+
+
+GNEInternalLane::~GNEInternalLane() {}
+
+
+long
+GNEInternalLane::onDefault(FXObject* obj, FXSelector sel, void* data) {
+ if (myEditor != 0) {
+ FXuint before = myState;
+ myStateTarget.handle(obj, sel, data);
+ if (myState != before) {
+ myEditor->handleChange(this);
+ }
+ // let GUISUMOAbstractView know about clicks so that the popup is properly destroyed
+ if (FXSELTYPE(sel) == SEL_COMMAND) {
+ if (myPopup != 0) {
+ myPopup->getParentView()->destroyPopup();
+ myPopup = 0;
+ }
+ }
+ }
+ return 1;
+}
+
+
+void
+GNEInternalLane::drawGL(const GUIVisualizationSettings& s) const {
+ glPushMatrix();
+ glPushName(getGlID());
+ glTranslated(0, 0, GLO_JUNCTION + 0.1); // must draw on top of junction
+ GLHelper::setColor(colorForLinksState(myState));
+ // draw lane
+ // check whether it is not too small
+ if (s.scale < 1.) {
+ GLHelper::drawLine(myShape);
+ } else {
+ GLHelper::drawBoxLines(myShape, myShapeRotations, myShapeLengths, 0.2);
+ }
+ glPopName();
+ glPopMatrix();
+}
+
+
+GUIGLObjectPopupMenu*
+GNEInternalLane::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
+ myPopup = new GUIGLObjectPopupMenu(app, parent, *this);
+ buildPopupHeader(myPopup, app);
+ if (myEditor != 0) {
+ const std::vector<std::string> names = LinkStateNames.getStrings();
+ for (std::vector<std::string>::const_iterator it = names.begin(); it != names.end(); it++) {
+ FXuint state = LinkStateNames.get(*it);
+ std::string origHint = ((LinkState)state == myOrigState ? " (original)" : "");
+ FXMenuRadio* mc = new FXMenuRadio(myPopup, (*it + origHint).c_str(), this, FXDataTarget::ID_OPTION + state);
+ mc->setSelBackColor(MFXUtils::getFXColor(colorForLinksState(state)));
+ mc->setBackColor(MFXUtils::getFXColor(colorForLinksState(state)));
+ }
+ }
+ return myPopup;
+}
+
+
+GUIParameterTableWindow*
+GNEInternalLane::getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView&) {
+ GUIParameterTableWindow* ret =
+ new GUIParameterTableWindow(app, *this, 2);
+ // add items
+ // close building
+ ret->closeBuilding();
+ return ret;
+}
+
+
+Boundary
+GNEInternalLane::getCenteringBoundary() const {
+ Boundary b = myShape.getBoxBoundary();
+ b.grow(10);
+ return b;
+}
+
+
+RGBColor
+GNEInternalLane::colorForLinksState(FXuint state) {
+ if (state == LINKSTATE_TL_YELLOW_MINOR) {
+ // special case (default gui does not distinguish between yellow major/minor
+ return RGBColor(179, 179, 0, 255);
+ } else {
+ return getLinkColor((LinkState)state);
+ }
+}
+
+/****************************************************************************/
diff --git a/src/netedit/GNEInternalLane.h b/src/netedit/GNEInternalLane.h
new file mode 100644
index 0000000..b8ac436
--- /dev/null
+++ b/src/netedit/GNEInternalLane.h
@@ -0,0 +1,189 @@
+/****************************************************************************/
+/// @file GNEInternalLane.h
+/// @author Jakob Erdmann
+/// @date June 2011
+/// @version $Id: GNEInternalLane.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing Inner Lanes (used when editing traffic lights)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEInternalLane_h
+#define GNEInternalLane_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include <utils/xml/SUMOXMLDefinitions.h>
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUIGLObjectPopupMenu;
+class GNETLSEditor;
+class PositionVector;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEInternalLane
+ * @brief This object is responsible for drawing a shape and for supplying a
+ * a popup menu. Messages are routeted to an internal dataTarget and to the
+ * editor (hence inheritance from FXDelegator)
+ */
+class GNEInternalLane : public GUIGlObject, public FXDelegator {
+ // FOX-declarations
+ FXDECLARE(GNEInternalLane)
+
+public:
+
+ /** @brief Constructor
+ * @param[in] editor The editor to notify about changes
+ * @param[in] id The id of this internal lane
+ * @param[in] shape The shape of the lane
+ * @param[in] tlIndex The tl-index of the lane
+ */
+ GNEInternalLane(GNETLSEditor* editor, const std::string& id, const PositionVector& shape, int tlIndex, LinkState state = LINKSTATE_DEADEND);
+
+ /// @brief Destructor
+ virtual ~GNEInternalLane() ;
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+ /** @brief Returns the boundary to which the view shall be centered in order to show the object
+ *
+ * @return The boundary the object is within
+ * @see GUIGlObject::getCenteringBoundary
+ */
+ Boundary getCenteringBoundary() const ;
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+ /// @brief set the linkState (controls drawing color)
+ void setLinkState(LinkState state) {
+ myState = state;
+ myOrigState = state;
+ }
+
+ /// @brief whether link state has been modfied
+ inline LinkState getLinkState() {
+ return (LinkState)myState;
+ }
+
+
+ /// @brief multiplexes message to two targets
+ long onDefault(FXObject*, FXSelector, void*);
+
+
+ inline int getTLIndex() const {
+ return myTlIndex;
+ }
+
+ /// @brief long names for link states
+ static const StringBijection<FXuint> LinkStateNames;
+
+ // @brief return the color for each linkstate
+ static RGBColor colorForLinksState(FXuint state);
+
+protected:
+ /// @brief FOX needs this
+ GNEInternalLane();
+
+private:
+
+ /// @brief the shape of the edge
+ const PositionVector myShape;
+
+ /// @name computed only once (for performance) in updateGeometry()
+ //@{
+ /// The rotations of the shape parts
+ std::vector<SUMOReal> myShapeRotations;
+
+ /// The lengths of the shape parts
+ std::vector<SUMOReal> myShapeLengths;
+ //@}
+
+ /// @brief the state of the link (used for visualization)
+ FXuint myState;
+ FXDataTarget myStateTarget;
+
+ /// @brief the original state of the link (used for tracking modification)
+ LinkState myOrigState;
+
+ /// @brief data target for selection state
+ FXDataTarget stateTarget;
+
+ /// @brief the editor to inform about changes
+ GNETLSEditor* myEditor;
+
+ /// @brief the tl-index of this lane
+ int myTlIndex;
+
+ /// @brief the created popup
+ GUIGLObjectPopupMenu* myPopup;
+
+ static StringBijection<FXuint>::Entry linkStateNamesValues[];
+
+private:
+
+ // @brief return the color for each linkstate
+ static const std::string& longNameForLinkState(FXuint state);
+
+ /// @brief Invalidated copy constructor.
+ GNEInternalLane(const GNEInternalLane&);
+
+ /// @brief Invalidated assignment operator.
+ GNEInternalLane& operator=(const GNEInternalLane&);
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEJunction.cpp b/src/netedit/GNEJunction.cpp
new file mode 100644
index 0000000..0d6dbf0
--- /dev/null
+++ b/src/netedit/GNEJunction.cpp
@@ -0,0 +1,596 @@
+/****************************************************************************/
+/// @file GNEJunction.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEJunction.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing and editing junctions in netedit (adapted from
+// GUIJunctionWrapper)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/foxtools/MFXImageHelper.h>
+#include <utils/geom/Position.h>
+#include <utils/geom/GeomConvHelper.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <netbuild/NBOwnTLDef.h>
+#include <netbuild/NBLoadedSUMOTLDef.h>
+#include <netbuild/NBAlgorithms.h>
+#include "tlslogo.cpp"
+#include "GNENet.h"
+#include "GNEEdge.h"
+#include "GNECrossing.h"
+#include "GNEUndoList.h"
+#include "GNEViewNet.h"
+#include "GNEChange_Attribute.h"
+#include "GNEChange_Connection.h"
+#include "GNEChange_TLS.h"
+#include "GNEJunction.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// static members
+// ===========================================================================
+int GNEJunction::TLSDecalGlID = 0;
+bool GNEJunction::TLSDecalInitialized = false;
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEJunction::GNEJunction(NBNode& nbn, GNENet* net, bool loaded) :
+ GUIGlObject(GLO_JUNCTION, nbn.getID()),
+ GNEAttributeCarrier(SUMO_TAG_JUNCTION),
+ myNBNode(nbn),
+ myOrigPos(nbn.getPosition()),
+ myAmCreateEdgeSource(false),
+ myNet(net),
+ myLogicStatus(loaded ? LOADED : GUESSED),
+ myAmResponsible(false),
+ myHasValidLogic(loaded),
+ myAmTLSSelected(false) {
+ const double EXTENT = 2;
+ myBoundary = Boundary(
+ myOrigPos.x() - EXTENT, myOrigPos.y() - EXTENT,
+ myOrigPos.x() + EXTENT, myOrigPos.y() + EXTENT);
+ myMaxSize = 2 * EXTENT;
+ rebuildCrossings(false);
+}
+
+
+GNEJunction::~GNEJunction() {
+ if (myAmResponsible) {
+ delete &myNBNode;
+ }
+ rebuildCrossings(true);
+}
+
+
+void
+GNEJunction::rebuildCrossings(bool deleteOnly) {
+ for (std::vector<GNECrossing*>::const_iterator it = myCrossings.begin(); it != myCrossings.end(); it++) {
+ (*it)->decRef();
+ if ((*it)->unreferenced()) {
+ delete *it;
+ }
+ }
+ myCrossings.clear();
+ if (!deleteOnly) {
+ const std::vector<NBNode::Crossing>& crossings = myNBNode.getCrossings();
+ for (std::vector<NBNode::Crossing>::const_iterator it = crossings.begin(); it != crossings.end(); it++) {
+ myCrossings.push_back(new GNECrossing(*this, (*it).id));
+ myCrossings.back()->incRef();
+ }
+ }
+}
+
+
+GUIGLObjectPopupMenu*
+GNEJunction::getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) {
+ GUIGLObjectPopupMenu* ret = new GUIGLObjectPopupMenu(app, parent, *this);
+ buildPopupHeader(ret, app);
+ buildCenterPopupEntry(ret);
+ buildNameCopyPopupEntry(ret);
+ buildSelectionPopupEntry(ret);
+ buildPositionCopyEntry(ret, false);
+ //if (parent.getVisualisationSettings()->editMode != GNE_MODE_CONNECT) {
+ // // XXX if joinable
+ // new FXMenuCommand(ret, "Join adjacent edges", 0, &parent, MID_GNE_JOIN_EDGES);
+ //}
+ FXMenuCommand* mcCustomShape = new FXMenuCommand(ret, "Set custom shape", 0, &parent, MID_GNE_NODE_SHAPE);
+ FXMenuCommand* mcReplace = new FXMenuCommand(ret, "Replace by geometry node", 0, &parent, MID_GNE_NODE_REPLACE);
+ const int editMode = parent.getVisualisationSettings()->editMode;
+ const bool wrongMode = (editMode == GNE_MODE_CONNECT || editMode == GNE_MODE_TLS || editMode == GNE_MODE_CREATE_EDGE);
+ if (wrongMode) {
+ mcCustomShape->handle(&parent, FXSEL(SEL_COMMAND, FXWindow::ID_DISABLE), 0);
+ }
+ // checkIsRemovable requiers turnarounds to be computed. This is ugly
+ if (myNBNode.getIncomingEdges().size() == 2 && myNBNode.getOutgoingEdges().size() == 2) {
+ NBTurningDirectionsComputer::computeTurnDirectionsForNode(&myNBNode, false);
+ }
+ if (wrongMode || !myNBNode.checkIsRemovable()) {
+ mcReplace->handle(&parent, FXSEL(SEL_COMMAND, FXWindow::ID_DISABLE), 0);
+ }
+ // let the GNEViewNet store the popup position
+ (dynamic_cast<GNEViewNet&>(parent)).markPopupPosition();
+ return ret;
+}
+
+
+GUIParameterTableWindow*
+GNEJunction::getParameterWindow(GUIMainWindow& /*app*/,
+ GUISUMOAbstractView&) {
+ return 0;
+}
+
+
+Boundary
+GNEJunction::getCenteringBoundary() const {
+ Boundary b = myBoundary;
+ b.grow(20);
+ return b;
+}
+
+
+void
+GNEJunction::drawGL(const GUIVisualizationSettings& s) const {
+ glPushName(getGlID());
+ SUMOReal selectionScale = gSelected.isSelected(getType(), getGlID()) ? s.selectionScale : 1;
+ if (s.scale * selectionScale * myMaxSize < 1.) {
+ // draw something simple so that selection still works
+ GLHelper::drawBoxLine(myNBNode.getPosition(), 0, 1, 1);
+ } else {
+ // node shape has been computed and is valid for drawing
+ const bool drawShape = myNBNode.getShape().size() > 0 && s.drawJunctionShape;
+ const bool drawBubble = (!drawShape || myNBNode.getShape().area() < 4) && s.drawJunctionShape; // magic threshold
+
+ if (drawShape) {
+ glPushMatrix();
+ setColor(s, false);
+ glTranslated(0, 0, getType());
+ PositionVector shape = myNBNode.getShape();
+ shape.closePolygon();
+ if (selectionScale > 1) {
+ shape.scaleRelative(selectionScale);
+ }
+ if (s.scale * selectionScale * myMaxSize < 40.) {
+ GLHelper::drawFilledPoly(shape, true);
+ } else {
+ GLHelper::drawFilledPolyTesselated(shape, true);
+ }
+ glPopMatrix();
+ }
+ if (drawBubble) {
+ glPushMatrix();
+ setColor(s, true);
+ Position pos = myNBNode.getPosition();
+ glTranslated(pos.x(), pos.y(), getType() - 0.05);
+ GLHelper::drawFilledCircle(myMaxSize * selectionScale, 32);
+ glPopMatrix();
+ }
+
+ if (s.editMode == GNE_MODE_TLS && myNBNode.isTLControlled() && !myAmTLSSelected) {
+ // decorate in tls mode
+ if (!TLSDecalInitialized) {
+ FXImage* i = new FXGIFImage(myNet->getApp(), tlslogo, IMAGE_KEEP | IMAGE_SHMI | IMAGE_SHMP);
+ TLSDecalGlID = GUITexturesHelper::add(i);
+ TLSDecalInitialized = true;
+ delete i;
+ }
+ glPushMatrix();
+ Position pos = myNBNode.getPosition();
+ glTranslated(pos.x(), pos.y(), getType() + 0.1);
+ glColor3d(1, 1, 1);
+ const SUMOReal halfWidth = 32 / s.scale;
+ const SUMOReal halfHeight = 64 / s.scale;
+ GUITexturesHelper::drawTexturedBox(TLSDecalGlID, -halfWidth, -halfHeight, halfWidth, halfHeight);
+ glPopMatrix();
+ }
+ // draw crossings
+ if (s.editMode != GNE_MODE_TLS) {
+ for (std::vector<GNECrossing*>::const_iterator it = myCrossings.begin(); it != myCrossings.end(); it++) {
+ (*it)->drawGL(s);
+ }
+ }
+ // (optional) draw name @todo expose this setting
+ drawName(myNBNode.getPosition(), s.scale, s.junctionName);
+ }
+ glPopName();
+}
+
+
+void
+GNEJunction::move(Position pos) {
+ const Position orig = myNBNode.getPosition();
+ setPosition(pos);
+ myNet->refreshElement(this);
+ const EdgeVector& incident = getNBNode()->getEdges();
+ for (EdgeVector::const_iterator it = incident.begin(); it != incident.end(); it++) {
+ GNEEdge* edge = myNet->retrieveEdge((*it)->getID());
+ edge->updateJunctionPosition(this, orig);
+ }
+}
+
+
+void
+GNEJunction::registerMove(GNEUndoList* undoList) {
+ Position newPos = myNBNode.getPosition();
+ std::string newPosValue = getAttribute(SUMO_ATTR_POSITION);
+ // actually the geometry is already up to date
+ // set the restore point to the end of the last change-set
+ setPosition(myOrigPos);
+ // do not execute the command to avoid changing the edge geometry twice
+ undoList->add(new GNEChange_Attribute(this, SUMO_ATTR_POSITION, newPosValue), false);
+ setPosition(newPos);
+}
+
+
+void
+GNEJunction::invalidateShape() {
+ if (!myNBNode.hasCustomShape()) {
+ myNBNode.myPoly.clear();
+ myNet->requireRecompute();
+ }
+}
+
+
+void
+GNEJunction::setLogicValid(bool valid, GNEUndoList* undoList, const std::string& status) {
+ myHasValidLogic = valid;
+ if (!valid) {
+ assert(undoList != 0);
+ assert(undoList->hasCommandGroup());
+ undoList->add(new GNEChange_Attribute(this, GNE_ATTR_MODIFICATION_STATUS, status));
+ // allow edges to recompute their connections
+ NBTurningDirectionsComputer::computeTurnDirectionsForNode(&myNBNode, false);
+ EdgeVector incoming = EdgeVector(myNBNode.getIncomingEdges());
+ for (EdgeVector::iterator it = incoming.begin(); it != incoming.end(); it++) {
+ NBEdge* srcNBE = *it;
+ NBEdge* turnEdge = srcNBE->getTurnDestination();
+ GNEEdge* srcEdge = myNet->retrieveEdge(srcNBE->getID());
+ std::vector<NBEdge::Connection> connections = srcNBE->getConnections(); // make a copy!
+ // delete in reverse so that undoing will add connections in the original order
+ for (std::vector<NBEdge::Connection>::reverse_iterator con_it = connections.rbegin(); con_it != connections.rend(); con_it++) {
+ bool hasTurn = con_it->toEdge == turnEdge;
+ undoList->add(new GNEChange_Connection(
+ srcEdge, con_it->fromLane, con_it->toEdge->getID(),
+ con_it->toLane, con_it->mayDefinitelyPass, false), true);
+ // needs to come after GNEChange_Connection
+ // XXX bug: this code path will not be used on a redo!
+ if (hasTurn) {
+ myNet->addExplicitTurnaround(srcNBE->getID());
+ }
+ }
+ undoList->add(new GNEChange_Attribute(srcEdge, GNE_ATTR_MODIFICATION_STATUS, status), true);
+ }
+ invalidateTLS(undoList);
+ } else {
+ rebuildCrossings(false);
+ }
+}
+
+
+void
+GNEJunction::invalidateTLS(GNEUndoList* undoList, const NBConnection& deletedConnection) {
+ assert(undoList->hasCommandGroup());
+ // NBLoadedSUMOTLDef becomes invalid, replace with NBOwnTLDef which will be dynamically recomputed
+ const std::set<NBTrafficLightDefinition*> tls = myNBNode.getControllingTLS(); // make a copy!
+ for (std::set<NBTrafficLightDefinition*>::iterator it = tls.begin(); it != tls.end(); it++) {
+ NBLoadedSUMOTLDef* tlDef = dynamic_cast<NBLoadedSUMOTLDef*>(*it);
+ if (tlDef != 0) {
+ NBTrafficLightDefinition* replacementDef = 0;
+ std::string newID = tlDef->getID(); // + "_reguessed"; // changes due to reguessing will be visible in diff
+ if (deletedConnection != NBConnection::InvalidConnection) {
+ // create replacement before deleting the original because deletion will mess up saving original nodes
+ NBLoadedSUMOTLDef* repl = new NBLoadedSUMOTLDef(tlDef, tlDef->getLogic());
+ repl->removeConnection(deletedConnection);
+ replacementDef = repl;
+ } else {
+ replacementDef = new NBOwnTLDef(newID, tlDef->getOffset(), tlDef->getType());
+ }
+ undoList->add(new GNEChange_TLS(this, tlDef, false), true);
+ undoList->add(new GNEChange_TLS(this, replacementDef, true, false, newID), true);
+ // the removed traffic light may have controlled more than one junction. These too have become invalid now
+ const std::vector<NBNode*> coNodes = tlDef->getNodes(); // make a copy!
+ for (std::vector<NBNode*>::const_iterator it_node = coNodes.begin(); it_node != coNodes.end(); it_node++) {
+ GNEJunction* sharing = myNet->retrieveJunction((*it_node)->getID());
+ undoList->add(new GNEChange_TLS(sharing, tlDef, false), true);
+ undoList->add(new GNEChange_TLS(sharing, replacementDef, true, false, newID), true);
+ }
+ }
+ }
+}
+
+void
+GNEJunction::removeFromCrossings(GNEEdge* edge, GNEUndoList* undoList) {
+ // @todo implement GNEChange_Crossing
+ UNUSED_PARAMETER(undoList);
+ // make a copy because the original will be modified
+ const std::vector<NBNode::Crossing> crossings = myNBNode.getCrossings();
+ for (std::vector<NBNode::Crossing>::const_iterator it = crossings.begin(); it != crossings.end(); it++) {
+ EdgeSet edgeSet((*it).edges.begin(), (*it).edges.end());
+ if (edgeSet.count(edge->getNBEdge()) == 1) {
+ myNBNode.removeCrossing((*it).edges);
+ }
+ }
+}
+
+
+std::string
+GNEJunction::getAttribute(SumoXMLAttr key) const {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return getMicrosimID();
+ break;
+ case SUMO_ATTR_POSITION:
+ return toString(myNBNode.getPosition());
+ break;
+ case SUMO_ATTR_TYPE:
+ return toString(myNBNode.getType());
+ break;
+ case GNE_ATTR_MODIFICATION_STATUS:
+ return myLogicStatus;
+ break;
+ case SUMO_ATTR_SHAPE:
+ return toString(myNBNode.getShape());
+ case SUMO_ATTR_RADIUS:
+ return toString(myNBNode.getRadius());
+ case SUMO_ATTR_KEEP_CLEAR:
+ return myNBNode.getKeepClear() ? "true" : "false";
+ default:
+ throw InvalidArgument("junction attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNEJunction::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) {
+ if (value == getAttribute(key)) {
+ return; //avoid needless changes, later logic relies on the fact that attributes have changed
+ }
+ switch (key) {
+ case SUMO_ATTR_ID:
+ case SUMO_ATTR_POSITION:
+ case GNE_ATTR_MODIFICATION_STATUS:
+ case SUMO_ATTR_SHAPE:
+ case SUMO_ATTR_RADIUS:
+ case SUMO_ATTR_KEEP_CLEAR:
+ undoList->add(new GNEChange_Attribute(this, key, value), true);
+ break;
+ case SUMO_ATTR_TYPE: {
+ undoList->p_begin("change junction type");
+ if (NBNode::isTrafficLight(SUMOXMLDefinitions::NodeTypes.get(value))) {
+ if (!getNBNode()->isTLControlled()) {
+ // create new traffic light
+ undoList->add(new GNEChange_TLS(this, 0, true), true);
+ }
+ } else if (getNBNode()->isTLControlled()) {
+ // delete old traffic light
+ // make a copy because we will modify the original
+ const std::set<NBTrafficLightDefinition*> tls = myNBNode.getControllingTLS();
+ for (std::set<NBTrafficLightDefinition*>::iterator it = tls.begin(); it != tls.end(); it++) {
+ undoList->add(new GNEChange_TLS(this, *it, false), true);
+ }
+ }
+ // must be the final step, otherwise we do not know which traffic lights to remove via GNEChange_TLS
+ undoList->add(new GNEChange_Attribute(this, key, value), true);
+ undoList->p_end();
+ break;
+ }
+ default:
+ throw InvalidArgument("junction attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+bool
+GNEJunction::isValid(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return isValidID(value) && myNet->retrieveJunction(value, false) == 0;
+ break;
+ case SUMO_ATTR_TYPE:
+ return SUMOXMLDefinitions::NodeTypes.hasString(value);
+ break;
+ case SUMO_ATTR_POSITION:
+ bool ok;
+ return GeomConvHelper::parseShapeReporting(value, "user-supplied position", 0, ok, false).size() == 1;
+ break;
+ case SUMO_ATTR_SHAPE: {
+ bool ok = true;
+ PositionVector shape = GeomConvHelper::parseShapeReporting(
+ value, "user-supplied position", 0, ok, true);
+ return ok;
+ break;
+ }
+ case SUMO_ATTR_RADIUS:
+ return canParse<SUMOReal>(value);
+ break;
+ case SUMO_ATTR_KEEP_CLEAR:
+ return value == "true" || value == "false";
+ break;
+ default:
+ throw InvalidArgument("junction attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+// ===========================================================================
+// private
+// ===========================================================================
+
+void
+GNEJunction::setAttribute(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ myNet->renameJunction(this, value);
+ break;
+ case SUMO_ATTR_TYPE: {
+ myNBNode.reinit(myNBNode.getPosition(), SUMOXMLDefinitions::NodeTypes.get(value));
+ break;
+ }
+ case SUMO_ATTR_POSITION:
+ bool ok;
+ myOrigPos = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, false)[0];
+ move(myOrigPos);
+ break;
+ case GNE_ATTR_MODIFICATION_STATUS:
+ myLogicStatus = value;
+ break;
+ case SUMO_ATTR_SHAPE: {
+ bool ok;
+ const PositionVector shape = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, true);
+ myNBNode.setCustomShape(shape);
+ break;
+ }
+ case SUMO_ATTR_RADIUS:
+ myNBNode.setRadius(parse<SUMOReal>(value));
+ break;
+ case SUMO_ATTR_KEEP_CLEAR:
+ myNBNode.setKeepClear(value == "true");
+ break;
+ default:
+ throw InvalidArgument("junction attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNEJunction::setPosition(Position pos) {
+ const Position& orig = myNBNode.getPosition();
+ myBoundary.moveby(pos.x() - orig.x(), pos.y() - orig.y());
+ myNBNode.reinit(pos, myNBNode.getType());
+ /* //reshift also shifts the junction shape. this is not needed because shape is not yet computed
+ * const Position& orig = myNBNode.getPosition();
+ * myNBNode.reshiftPosition(pos.x() - orig.x(), pos.y() - orig.y());
+ */
+}
+
+
+SUMOReal
+GNEJunction::getColorValue(const GUIVisualizationSettings& s, bool bubble) const {
+ switch (s.junctionColorer.getActive()) {
+ case 0:
+ if (bubble) {
+ return 1;
+ } else {
+ return 0;
+ }
+ case 1:
+ return gSelected.isSelected(getType(), getGlID()) ? 1 : 0;
+ case 2:
+ switch (myNBNode.getType()) {
+ case NODETYPE_TRAFFIC_LIGHT:
+ return 0;
+ case NODETYPE_TRAFFIC_LIGHT_NOJUNCTION:
+ return 1;
+ case NODETYPE_PRIORITY:
+ return 2;
+ case NODETYPE_PRIORITY_STOP:
+ return 3;
+ case NODETYPE_RIGHT_BEFORE_LEFT:
+ return 4;
+ case NODETYPE_ALLWAY_STOP:
+ return 5;
+ case NODETYPE_DISTRICT:
+ return 6;
+ case NODETYPE_NOJUNCTION:
+ return 7;
+ case NODETYPE_DEAD_END:
+ case NODETYPE_DEAD_END_DEPRECATED:
+ return 8;
+ case NODETYPE_UNKNOWN:
+ case NODETYPE_INTERNAL:
+ assert(false);
+ return 8;
+ case NODETYPE_RAIL_SIGNAL:
+ return 9;
+ case NODETYPE_ZIPPER:
+ return 10;
+ case NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED:
+ return 11;
+ }
+ default:
+ assert(false);
+ return 0;
+ }
+}
+
+
+void
+GNEJunction::setColor(const GUIVisualizationSettings& s, bool bubble) const {
+ GLHelper::setColor(s.junctionColorer.getScheme().getColor(getColorValue(s, bubble)));
+ // override with special colors
+ if (gSelected.isSelected(getType(), getGlID())) {
+ GLHelper::setColor(GNENet::selectionColor);
+ }
+ if (myAmCreateEdgeSource) {
+ glColor3d(0, 1, 0);
+ }
+}
+
+void
+GNEJunction::addTrafficLight(NBTrafficLightDefinition* tlDef, bool forceInsert) {
+ NBTrafficLightLogicCont& tlCont = myNet->getTLLogicCont();
+ tlCont.insert(tlDef, forceInsert); // may return false for tlDef which controls multiple junctions
+ tlDef->addNode(&myNBNode);
+}
+
+
+void
+GNEJunction::removeTrafficLight(NBTrafficLightDefinition* tlDef) {
+ NBTrafficLightLogicCont& tlCont = myNet->getTLLogicCont();
+ tlCont.extract(tlDef);
+ myNBNode.removeTrafficLight(tlDef);
+}
+
+void
+GNEJunction::updateCrossingAttributes(NBNode::Crossing crossing) {
+ EdgeSet edgeSet(crossing.edges.begin(), crossing.edges.end());
+ for (std::vector<NBNode::Crossing>::iterator it = myNBNode.myCrossings.begin(); it != myNBNode.myCrossings.end(); ++it) {
+ EdgeSet edgeSet2((*it).edges.begin(), (*it).edges.end());
+ if (edgeSet == edgeSet2) {
+ (*it).width = crossing.width;
+ (*it).priority = crossing.priority;
+ myNet->refreshElement(this);
+ break;
+ }
+ }
+}
+
+/****************************************************************************/
diff --git a/src/netedit/GNEJunction.h b/src/netedit/GNEJunction.h
new file mode 100644
index 0000000..6dec594
--- /dev/null
+++ b/src/netedit/GNEJunction.h
@@ -0,0 +1,298 @@
+/****************************************************************************/
+/// @file GNEJunction.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEJunction.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing and editing junctions in netedit (adapted from
+// GUIJunctionWrapper)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEJunction_h
+#define GNEJunction_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include <netbuild/NBConnection.h>
+#include <netbuild/NBNode.h>
+
+#include "GNEAttributeCarrier.h"
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNENet;
+class GNEEdge;
+class GNECrossing;
+class NBTrafficLightDefinition;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEJunction
+ *
+ * In the case the represented junction's shape is empty, the boundary
+ * is computed using the junction's position to which an offset of 1m to each
+ * side is added.
+ */
+class GNEJunction : public GUIGlObject, public GNEAttributeCarrier {
+
+ friend class GNEChange_TLS;
+
+public:
+ /** @brief Constructor
+ * @param[in] nbn The represented node
+ * @param[in] net The net to inform about gui updates
+ * @param[in] loaded Whether the junction was loaded from a file
+ */
+ GNEJunction(NBNode& nbn, GNENet* net, bool loaded = false) ;
+
+
+ /// @brief Destructor
+ virtual ~GNEJunction() ;
+
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ GUIParameterTableWindow* getParameterWindow(
+ GUIMainWindow& app, GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns the boundary to which the view shall be centered in order to show the object
+ *
+ * @return The boundary the object is within
+ * @see GUIGlObject::getCenteringBoundary
+ */
+ Boundary getCenteringBoundary() const ;
+
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+
+
+ /** @brief Returns the boundary of the junction
+ * @return This junction's boundary
+ */
+ Boundary getBoundary() const {
+ return myBoundary;
+ }
+
+
+ /** @brief marks as first junction in createEdge-mode
+ */
+ void markAsCreateEdgeSource() {
+ myAmCreateEdgeSource = true;
+ }
+
+ /** @brief removes mark as first junction in createEdge-mode
+ */
+ void unMarkAsCreateEdgeSource() {
+ myAmCreateEdgeSource = false;
+ }
+
+
+ /** @brief notify the junction of being selected in tls-mode. (used to control drawing) */
+ void selectTLS(bool selected) {
+ myAmTLSSelected = selected;
+ }
+
+
+ /** @brief returns the internal NBNode
+ */
+ NBNode* getNBNode() {
+ return &myNBNode;
+ }
+
+
+ /** @brief reposition the node at pos and informs the edges
+ * @param[in] pos The new position
+ * @note: those operations are not added to the undoList. This is handled in
+ * registerMove to avoids merging lots of tiny movements
+ */
+ void move(Position pos);
+
+
+ /// @brief registers completed movement with the undoList
+ void registerMove(GNEUndoList* undoList);
+
+
+ //@name inherited from GNEAttributeCarrier
+ //@{
+ std::string getAttribute(SumoXMLAttr key) const;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ */
+ void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
+
+ bool isValid(SumoXMLAttr key, const std::string& value);
+ //@}
+
+ /// @brief set responsibility for deleting internal strctures
+ void setResponsible(bool newVal) {
+ myAmResponsible = newVal;
+ }
+
+
+ /* @brief notify junction that one of its edges has changed its shape, and
+ * therefore the junction shape is no longer valid */
+ void invalidateShape();
+
+ /* @brief update validity of this junctions logic
+ * if the logic is invalidated, existing connections are removed via undo-list
+ * so that the previous state can be restored
+ * also calls invalidateTLS
+ * @param[in] valid The new validity of the junction
+ * @note: this should always be called with an active command group */
+ void setLogicValid(bool valid, GNEUndoList* undoList = 0, const std::string& status = GUESSED);
+
+
+ /* @brief invalidates loaded or edited TLS
+ * @param[in] deletedConnection If a valid connection is given a replacement def with this connection removed
+ * but all other information intact will be computed instead of guessing a new tlDef
+ * @note: this should always be called with an active command group */
+ void invalidateTLS(GNEUndoList* undoList,
+ const NBConnection& deletedConnection = NBConnection::InvalidConnection);
+
+ /// @brief removes the given edge from all pedestrian crossings
+ void removeFromCrossings(GNEEdge* edge, GNEUndoList* undoList);
+
+ /* @brief whether this junction has a valid logic */
+ bool isLogicValid() {
+ return myHasValidLogic;
+ }
+
+ static void resetDecal() {
+ TLSDecalInitialized = false;
+ }
+
+ /// @brief modify the specified crossing (using friend privileges)
+ void updateCrossingAttributes(NBNode::Crossing crossing);
+
+private:
+ /// @brief A reference to the represented junction
+ NBNode& myNBNode;
+
+ ///@brief restore point for undo
+ Position myOrigPos;
+
+ /// @brief The maximum size (in either x-, or y-dimension) for determining whether to draw or not
+ SUMOReal myMaxSize;
+
+ /// @brief The represented junction's boundary
+ Boundary myBoundary;
+
+ /* @brief whether this junction is the first junction for a newly created
+ * edge. (see GNEApplicationWindow::createEdgeSource)
+ */
+ bool myAmCreateEdgeSource;
+
+ // the net to inform about updates
+ GNENet* myNet;
+
+ /// @brief modification status of the junction logic (all connections across this junction)
+ std::string myLogicStatus;
+
+ /// @brief whether we are responsible for deleting myNBNode
+ bool myAmResponsible;
+
+ /// @brief whether this junctions logic is valid
+ bool myHasValidLogic;
+
+ /// @brief whether this junction is selected in tls-mode
+ bool myAmTLSSelected;
+
+ /// @brief the built crossing objects
+ std::vector<GNECrossing*> myCrossings;
+
+ /// @brief gl-id of the tls-decal (drawn in tls-mode)
+ static int TLSDecalGlID;
+
+ /// @brief whether the tls-decal has been initialized
+ static bool TLSDecalInitialized;
+
+private:
+ /// @brief Invalidated copy constructor.
+ GNEJunction(const GNEJunction&);
+
+ /// @brief Invalidated assignment operator.
+ GNEJunction& operator=(const GNEJunction&);
+
+ /* @brief method for setting the attribute and nothing else
+ * (used in GNEChange_Attribute)
+ * */
+ void setAttribute(SumoXMLAttr key, const std::string& value);
+
+ /// @brief reposition the NBNnode and nothing else
+ void setPosition(Position pos);
+
+ /// @brief sets junction color depending on circumstances
+ void setColor(const GUIVisualizationSettings& s, bool bubble) const;
+
+ /// @brief determines color value
+ SUMOReal getColorValue(const GUIVisualizationSettings& s, bool bubble) const;
+
+ /// @brief adds a traffic light
+ void addTrafficLight(NBTrafficLightDefinition* tlDef, bool forceInsert);
+
+ /// @brief removes a traffic light
+ void removeTrafficLight(NBTrafficLightDefinition* tlDef);
+
+ /// @brief rebuilds crossing objects for this junction
+ void rebuildCrossings(bool deleteOnly);
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNELane.cpp b/src/netedit/GNELane.cpp
new file mode 100644
index 0000000..313869a
--- /dev/null
+++ b/src/netedit/GNELane.cpp
@@ -0,0 +1,718 @@
+/****************************************************************************/
+/// @file GNELane.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNELane.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing Lane geometry (adapted from GNELaneWrapper)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <iostream>
+#include <utility>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/geom/PositionVector.h>
+#include <utils/common/RandHelper.h>
+#include <utils/common/SUMOVehicleClass.h>
+#include <utils/common/ToString.h>
+#include <utils/geom/GeomHelper.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+
+#include "GNELane.h"
+#include "GNEEdge.h"
+#include "GNEJunction.h"
+#include "GNETLSEditor.h"
+#include "GNEInternalLane.h"
+#include "GNEUndoList.h"
+#include "GNENet.h"
+#include "GNEChange_Attribute.h"
+#include "GNEViewNet.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+// Object implementation
+FXIMPLEMENT(GNELane, FXDelegator, 0, 0)
+
+// ===========================================================================
+// static member definitions
+// ===========================================================================
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNELane::GNELane(GNEEdge& edge, const unsigned int index) :
+ GUIGlObject(GLO_LANE, edge.getNBEdge()->getLaneID(index)),
+ GNEAttributeCarrier(SUMO_TAG_LANE),
+ myParentEdge(edge),
+ myIndex(index),
+ mySpecialColor(0),
+ myTLSEditor(0) {
+ updateGeometry();
+}
+
+GNELane::GNELane() :
+ GUIGlObject(GLO_LANE, "dummyConstructorGNELane"),
+ GNEAttributeCarrier(SUMO_TAG_LANE),
+ myParentEdge(*static_cast<GNEEdge*>(0)),
+ myIndex(-1),
+ mySpecialColor(0),
+ myTLSEditor(0)
+{ }
+
+GNELane::~GNELane() {}
+
+
+void
+GNELane::drawLinkNo() const {
+}
+
+
+void
+GNELane::drawTLSLinkNo() const {
+}
+
+
+void
+GNELane::drawLinkRules() const {
+}
+
+
+void
+GNELane::drawArrows() const {
+ const Position& end = getShape().back();
+ const Position& f = getShape()[-2];
+ SUMOReal rot = (SUMOReal) atan2((end.x() - f.x()), (f.y() - end.y())) * (SUMOReal) 180.0 / (SUMOReal) PI;
+ glPushMatrix();
+ glPushName(0);
+ glTranslated(0, 0, GLO_JUNCTION + .1); // must draw on top of junction shape
+ glColor3d(1, 1, 1);
+ glTranslated(end.x(), end.y(), 0);
+ glRotated(rot, 0, 0, 1);
+
+ // draw all links
+ const std::vector<NBEdge::Connection>& edgeCons = myParentEdge.getNBEdge()->myConnections;
+ NBNode* dest = myParentEdge.getNBEdge()->myTo;
+ for (std::vector<NBEdge::Connection>::const_iterator i = edgeCons.begin(); i != edgeCons.end(); ++i) {
+ if ((*i).fromLane == (int)myIndex) {
+ LinkDirection dir = dest->getDirection(myParentEdge.getNBEdge(), i->toEdge, OptionsCont::getOptions().getBool("lefthand"));
+ switch (dir) {
+ case LINKDIR_STRAIGHT:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 2, .05);
+ GLHelper::drawTriangleAtEnd(Position(0, 4), Position(0, 1), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_LEFT:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
+ GLHelper::drawBoxLine(Position(0, 2.5), 90, 1, .05);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(1.5, 2.5), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_RIGHT:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
+ GLHelper::drawBoxLine(Position(0, 2.5), -90, 1, .05);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(-1.5, 2.5), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_TURN:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
+ GLHelper::drawBoxLine(Position(0, 2.5), 90, .5, .05);
+ GLHelper::drawBoxLine(Position(0.5, 2.5), 180, 1, .05);
+ GLHelper::drawTriangleAtEnd(Position(0.5, 2.5), Position(0.5, 4), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_TURN_LEFTHAND:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
+ GLHelper::drawBoxLine(Position(0, 2.5), -90, 1, .05);
+ GLHelper::drawBoxLine(Position(-0.5, 2.5), -180, 1, .05);
+ GLHelper::drawTriangleAtEnd(Position(-0.5, 2.5), Position(-0.5, 4), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_PARTLEFT:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
+ GLHelper::drawBoxLine(Position(0, 2.5), 45, .7, .05);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(1.2, 1.3), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_PARTRIGHT:
+ GLHelper::drawBoxLine(Position(0, 4), 0, 1.5, .05);
+ GLHelper::drawBoxLine(Position(0, 2.5), -45, .7, .05);
+ GLHelper::drawTriangleAtEnd(Position(0, 2.5), Position(-1.2, 1.3), (SUMOReal) 1, (SUMOReal) .25);
+ break;
+ case LINKDIR_NODIR:
+ GLHelper::drawBoxLine(Position(1, 5.8), 245, 2, .05);
+ GLHelper::drawBoxLine(Position(-1, 5.8), 115, 2, .05);
+ glTranslated(0, 5, 0);
+ GLHelper::drawOutlineCircle(0.9, 0.8, 32);
+ glTranslated(0, -5, 0);
+ break;
+ }
+ }
+ }
+ glPopName();
+ glPopMatrix();
+}
+
+
+void
+GNELane::drawLane2LaneConnections() const {
+ glPushMatrix();
+ glPushName(0);
+ glTranslated(0, 0, GLO_JUNCTION + .1); // must draw on top of junction shape
+ std::vector<NBEdge::Connection> connections = myParentEdge.getNBEdge()->getConnectionsFromLane(myIndex);
+ NBNode* node = myParentEdge.getNBEdge()->getToNode();
+ const Position& startPos = getShape()[-1];
+ for (std::vector<NBEdge::Connection>::iterator it = connections.begin(); it != connections.end(); it++) {
+ const LinkState state = node->getLinkState(
+ myParentEdge.getNBEdge(), it->toEdge, it->fromLane, it->toLane, it->mayDefinitelyPass, it->tlID);
+ switch (state) {
+ case LINKSTATE_TL_OFF_NOSIGNAL:
+ glColor3d(1, 1, 0);
+ break;
+ case LINKSTATE_TL_OFF_BLINKING:
+ glColor3d(0, 1, 1);
+ break;
+ case LINKSTATE_MAJOR:
+ glColor3d(1, 1, 1);
+ break;
+ case LINKSTATE_MINOR:
+ glColor3d(.4, .4, .4);
+ break;
+ case LINKSTATE_STOP:
+ glColor3d(.7, .4, .4);
+ break;
+ case LINKSTATE_EQUAL:
+ glColor3d(.7, .7, .7);
+ break;
+ case LINKSTATE_ALLWAY_STOP:
+ glColor3d(.7, .7, 1);
+ case LINKSTATE_ZIPPER:
+ glColor3d(.75, .5, 0.25);
+ break;
+ default:
+ throw ProcessError("Unexpected LinkState '" + toString(state) + "'");
+ }
+ const Position& endPos = it->toEdge->getLaneShape(it->toLane)[0];
+ glBegin(GL_LINES);
+ glVertex2f(startPos.x(), startPos.y());
+ glVertex2f(endPos.x(), endPos.y());
+ glEnd();
+ GLHelper::drawTriangleAtEnd(startPos, endPos, (SUMOReal) 1.5, (SUMOReal) .2);
+ }
+ glPopName();
+ glPopMatrix();
+}
+
+
+void
+GNELane::drawGL(const GUIVisualizationSettings& s) const {
+ glPushMatrix();
+ glPushName(getGlID());
+ glTranslated(0, 0, getType());
+ const bool selectedEdge = gSelected.isSelected(myParentEdge.getType(), myParentEdge.getGlID());
+ const bool selected = gSelected.isSelected(getType(), getGlID());
+ if (mySpecialColor != 0) {
+ GLHelper::setColor(*mySpecialColor);
+ } else if (selected) {
+ GLHelper::setColor(GNENet::selectedLaneColor);
+ } else if (selectedEdge) {
+ GLHelper::setColor(GNENet::selectionColor);
+ } else {
+ const GUIColorer& c = s.laneColorer;
+ if (!setFunctionalColor(c.getActive()) && !setMultiColor(c)) {
+ GLHelper::setColor(c.getScheme().getColor(getColorValue(c.getActive())));
+ }
+ };
+
+ // draw lane
+ // check whether it is not too small
+ const SUMOReal selectionScale = selected || selectedEdge ? s.selectionScale : 1;
+ const SUMOReal exaggeration = selectionScale * s.laneWidthExaggeration; // * s.laneScaler.getScheme().getColor(getScaleValue(s.laneScaler.getActive()));
+ if (s.scale * exaggeration < 1.) {
+ if (myShapeColors.size() > 0) {
+ GLHelper::drawLine(getShape(), myShapeColors);
+ } else {
+ GLHelper::drawLine(getShape());
+ }
+ glPopMatrix();
+ } else {
+ if (drawAsRailway(s)) {
+ // draw as railway
+ const SUMOReal halfRailWidth = 0.725 * exaggeration;
+ if (myShapeColors.size() > 0) {
+ GLHelper::drawBoxLines(getShape(), myShapeRotations, myShapeLengths, myShapeColors, halfRailWidth);
+ } else {
+ GLHelper::drawBoxLines(getShape(), myShapeRotations, myShapeLengths, halfRailWidth);
+ }
+ RGBColor current = GLHelper::getColor();
+ glColor3d(1, 1, 1);
+ glTranslated(0, 0, .1);
+ GLHelper::drawBoxLines(getShape(), myShapeRotations, myShapeLengths, halfRailWidth - 0.2);
+ GLHelper::setColor(current);
+ drawCrossties(0.3 * exaggeration, 1 * exaggeration, 1 * exaggeration);
+ } else {
+ // the actual lane
+ // reduce lane width to make sure that a selected edge can still be seen
+ const SUMOReal halfWidth = selectionScale * (myParentEdge.getNBEdge()->getLaneWidth(myIndex) / 2 - (selectedEdge ? .3 : 0));
+ if (myShapeColors.size() > 0) {
+ GLHelper::drawBoxLines(getShape(), myShapeRotations, myShapeLengths, myShapeColors, halfWidth);
+ } else {
+ GLHelper::drawBoxLines(getShape(), myShapeRotations, myShapeLengths, halfWidth);
+ }
+ }
+ glPopMatrix();
+ if (exaggeration == 1) {
+ drawMarkings(selectedEdge, exaggeration);
+ }
+
+ // draw ROWs only if target junction has a valid logic)
+ if (myParentEdge.getDest()->isLogicValid() && s.scale > 3) {
+ drawArrows();
+ }
+
+ }
+ glPopName();
+}
+
+
+void
+GNELane::drawMarkings(const bool& selectedEdge, SUMOReal scale) const {
+ glPushMatrix();
+ glTranslated(0, 0, GLO_EDGE);
+
+ const SUMOReal halfWidth = myParentEdge.getNBEdge()->getLaneWidth(myIndex) * 0.5;
+ // optionally draw inverse markings
+ if (myIndex > 0 && (myParentEdge.getNBEdge()->getPermissions(myIndex - 1) & myParentEdge.getNBEdge()->getPermissions(myIndex)) != 0) {
+ SUMOReal mw = (halfWidth + SUMO_const_laneOffset + .01) * scale;
+ int e = (int) getShape().size() - 1;
+ for (int i = 0; i < e; ++i) {
+ glPushMatrix();
+ glTranslated(getShape()[i].x(), getShape()[i].y(), 0.1);
+ glRotated(myShapeRotations[i], 0, 0, 1);
+ for (SUMOReal t = 0; t < myShapeLengths[i]; t += 6) {
+ const SUMOReal length = MIN2((SUMOReal)3, myShapeLengths[i] - t);
+ glBegin(GL_QUADS);
+ glVertex2d(-mw, -t);
+ glVertex2d(-mw, -t - length);
+ glVertex2d(halfWidth * 0.5 * scale, -t - length);
+ glVertex2d(halfWidth * 0.5 * scale, -t);
+ glEnd();
+ }
+ glPopMatrix();
+ }
+ }
+
+ // draw white boundings (and white markings) depending on selection
+ if (selectedEdge) {
+ glTranslated(0, 0, 0.2); // draw selection on top of regular markings
+ GLHelper::setColor(GNENet::selectionColor);
+ } else {
+ glColor3d(1, 1, 1);
+ }
+
+ GLHelper::drawBoxLines(
+ getShape(),
+ getShapeRotations(),
+ getShapeLengths(),
+ (halfWidth + SUMO_const_laneOffset) * scale);
+ glPopMatrix();
+
+}
+
+
+GUIGLObjectPopupMenu*
+GNELane::getPopUpMenu(GUIMainWindow& app, GUISUMOAbstractView& parent) {
+ GUIGLObjectPopupMenu* ret = new GUIGLObjectPopupMenu(app, parent, *this);
+ buildPopupHeader(ret, app);
+ buildCenterPopupEntry(ret);
+ new FXMenuCommand(ret, "Copy edge name to clipboard", 0, ret, MID_COPY_EDGE_NAME);
+ buildNameCopyPopupEntry(ret);
+ buildSelectionPopupEntry(ret);
+ buildPositionCopyEntry(ret, false);
+ const int editMode = parent.getVisualisationSettings()->editMode;
+ myTLSEditor = 0;
+ if (editMode != GNE_MODE_CONNECT && editMode != GNE_MODE_TLS && editMode != GNE_MODE_CREATE_EDGE) {
+ new FXMenuCommand(ret, "Split edge here", 0, &parent, MID_GNE_SPLIT_EDGE);
+ new FXMenuCommand(ret, "Split edges in both direction here", 0, &parent, MID_GNE_SPLIT_EDGE_BIDI);
+ new FXMenuCommand(ret, "Reverse edge", 0, &parent, MID_GNE_REVERSE_EDGE);
+ new FXMenuCommand(ret, "Add reverse direction", 0, &parent, MID_GNE_ADD_REVERSE_EDGE);
+ new FXMenuCommand(ret, "Set geometry endpoint here", 0, &parent, MID_GNE_SET_EDGE_ENDPOINT);
+ new FXMenuCommand(ret, "Restore geometry endpoint", 0, &parent, MID_GNE_RESET_EDGE_ENDPOINT);
+ if (gSelected.isSelected(GLO_LANE, getGlID())) {
+ new FXMenuCommand(ret, "Straighten selected Edges", 0, &parent, MID_GNE_STRAIGHTEN);
+ } else {
+ new FXMenuCommand(ret, "Straighten edge", 0, &parent, MID_GNE_STRAIGHTEN);
+ }
+ if (gSelected.isSelected(GLO_LANE, getGlID())) {
+ new FXMenuCommand(ret, "Duplicate selected lanes", 0, &parent, MID_GNE_DUPLICATE_LANE);
+ } else {
+ new FXMenuCommand(ret, "Duplicate lane", 0, &parent, MID_GNE_DUPLICATE_LANE);
+ }
+ } else if (editMode == GNE_MODE_TLS) {
+ myTLSEditor = static_cast<GNEViewNet&>(parent).getTLSEditor();
+ if (myTLSEditor->controlsEdge(myParentEdge)) {
+ FXMenuCommand* mc = new FXMenuCommand(ret, "Select state for all links from this edge:", 0, 0, 0);
+ const std::vector<std::string> names = GNEInternalLane::LinkStateNames.getStrings();
+ for (std::vector<std::string>::const_iterator it = names.begin(); it != names.end(); it++) {
+ FXuint state = GNEInternalLane::LinkStateNames.get(*it);
+ FXMenuRadio* mc = new FXMenuRadio(ret, (*it).c_str(), this, FXDataTarget::ID_OPTION + state);
+ mc->setSelBackColor(MFXUtils::getFXColor(GNEInternalLane::colorForLinksState(state)));
+ mc->setBackColor(MFXUtils::getFXColor(GNEInternalLane::colorForLinksState(state)));
+ }
+ }
+ } else {
+ FXMenuCommand* mc = new FXMenuCommand(ret, "Additional options available in 'Inspect Mode'", 0, 0, 0);
+ mc->handle(&parent, FXSEL(SEL_COMMAND, FXWindow::ID_DISABLE), 0);
+ }
+ // buildShowParamsPopupEntry(ret, false);
+ const SUMOReal pos = getShape().nearest_offset_to_point2D(parent.getPositionInformation());
+ const SUMOReal height = getShape().positionAtOffset2D(getShape().nearest_offset_to_point2D(parent.getPositionInformation())).z();
+ new FXMenuCommand(ret, ("pos: " + toString(pos) + " height: " + toString(height)).c_str(), 0, 0, 0);
+ // new FXMenuSeparator(ret);
+ // buildPositionCopyEntry(ret, false);
+
+ // let the GNEViewNet store the popup position
+ (dynamic_cast<GNEViewNet&>(parent)).markPopupPosition();
+ return ret;
+}
+
+
+GUIParameterTableWindow*
+GNELane::getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView&) {
+ GUIParameterTableWindow* ret =
+ new GUIParameterTableWindow(app, *this, 2);
+ // add items
+ ret->mkItem("length [m]", false, myParentEdge.getNBEdge()->getLength());
+ // close building
+ ret->closeBuilding();
+ return ret;
+}
+
+
+Boundary
+GNELane::getCenteringBoundary() const {
+ Boundary b = getShape().getBoxBoundary();
+ b.grow(10);
+ return b;
+}
+
+
+const PositionVector&
+GNELane::getShape() const {
+ return myParentEdge.getNBEdge()->getLaneShape(myIndex);
+}
+
+
+const std::vector<SUMOReal>&
+GNELane::getShapeRotations() const {
+ return myShapeRotations;
+}
+
+
+const std::vector<SUMOReal>&
+GNELane::getShapeLengths() const {
+ return myShapeLengths;
+}
+
+
+Boundary
+GNELane::getBoundary() const {
+ return myParentEdge.getNBEdge()->getLaneStruct(myIndex).shape.getBoxBoundary();
+}
+
+
+void
+GNELane::updateGeometry() {
+ myShapeRotations.clear();
+ myShapeLengths.clear();
+ //SUMOReal length = myParentEdge.getLength(); // @todo see ticket #448
+ // may be different from length
+ int segments = (int) getShape().size() - 1;
+ if (segments >= 0) {
+ myShapeRotations.reserve(segments);
+ myShapeLengths.reserve(segments);
+ for (int i = 0; i < segments; ++i) {
+ const Position& f = getShape()[i];
+ const Position& s = getShape()[i + 1];
+ myShapeLengths.push_back(f.distanceTo2D(s));
+ myShapeRotations.push_back((SUMOReal) atan2((s.x() - f.x()), (f.y() - s.y())) * (SUMOReal) 180.0 / (SUMOReal) PI);
+ }
+ }
+}
+
+void
+GNELane::setIndex(unsigned int index) {
+ myIndex = index;
+ setMicrosimID(myParentEdge.getNBEdge()->getLaneID(index));
+}
+
+
+std::string
+GNELane::getAttribute(SumoXMLAttr key) const {
+ const NBEdge* edge = myParentEdge.getNBEdge();
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return getMicrosimID();
+ case SUMO_ATTR_SPEED:
+ return toString(edge->getLaneSpeed(myIndex));
+ case SUMO_ATTR_ALLOW:
+ // return all allowed classes (may differ from the written attributes)
+ return getVehicleClassNames(edge->getPermissions(myIndex));
+ case SUMO_ATTR_DISALLOW:
+ // return all disallowed classes (may differ from the written attributes)
+ return getVehicleClassNames(~(edge->getPermissions(myIndex)));
+ case SUMO_ATTR_WIDTH:
+ return toString(edge->getLaneStruct(myIndex).width);
+ case SUMO_ATTR_ENDOFFSET:
+ return toString(edge->getLaneStruct(myIndex).endOffset);
+ case SUMO_ATTR_INDEX:
+ return toString(myIndex);
+ default:
+ throw InvalidArgument("lane attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNELane::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ throw InvalidArgument("modifying lane attribute '" + toString(key) + "' not allowed");
+ case SUMO_ATTR_SPEED:
+ case SUMO_ATTR_ALLOW:
+ case SUMO_ATTR_DISALLOW:
+ case SUMO_ATTR_WIDTH:
+ case SUMO_ATTR_ENDOFFSET:
+ case SUMO_ATTR_INDEX:
+ // no special handling
+ undoList->p_add(new GNEChange_Attribute(this, key, value));
+ break;
+ default:
+ throw InvalidArgument("lane attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+bool
+GNELane::isValid(SumoXMLAttr key, const std::string& value) {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return false;
+ case SUMO_ATTR_SPEED:
+ return canParse<SUMOReal>(value);
+ case SUMO_ATTR_ALLOW:
+ case SUMO_ATTR_DISALLOW:
+ return canParseVehicleClasses(value);
+ case SUMO_ATTR_WIDTH:
+ return isPositive<SUMOReal>(value) || parse<SUMOReal>(value) == NBEdge::UNSPECIFIED_WIDTH;
+ case SUMO_ATTR_ENDOFFSET:
+ return canParse<SUMOReal>(value);
+ case SUMO_ATTR_INDEX:
+ return value == toString(myIndex);
+ default:
+ throw InvalidArgument("lane attribute '" + toString(key) + "' not allowed");
+
+ }
+}
+
+// ===========================================================================
+// private
+// ===========================================================================
+
+void
+GNELane::setAttribute(SumoXMLAttr key, const std::string& value) {
+ NBEdge* edge = myParentEdge.getNBEdge();
+ switch (key) {
+ case SUMO_ATTR_ID:
+ throw InvalidArgument("modifying lane attribute '" + toString(key) + "' not allowed");
+ case SUMO_ATTR_SPEED:
+ edge->setSpeed(myIndex, parse<SUMOReal>(value));
+ break;
+ case SUMO_ATTR_ALLOW:
+ edge->setPermissions(parseVehicleClasses(value), myIndex);
+ break;
+ case SUMO_ATTR_DISALLOW:
+ edge->setPermissions(~parseVehicleClasses(value), myIndex); // negation yields allowed
+ break;
+ case SUMO_ATTR_WIDTH:
+ edge->setLaneWidth(myIndex, parse<SUMOReal>(value));
+ break;
+ case SUMO_ATTR_ENDOFFSET:
+ edge->setEndOffset(myIndex, parse<SUMOReal>(value));
+ break;
+ default:
+ throw InvalidArgument("lane attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+bool
+GNELane::setFunctionalColor(size_t activeScheme) const {
+ switch (activeScheme) {
+ case 6: {
+ SUMOReal hue = GeomHelper::naviDegree(getShape().beginEndAngle()); // [0-360]
+ GLHelper::setColor(RGBColor::fromHSV(hue, 1., 1.));
+ return true;
+ }
+ default:
+ return false;
+ }
+}
+
+
+bool
+GNELane::setMultiColor(const GUIColorer& c) const {
+ const size_t activeScheme = c.getActive();
+ myShapeColors.clear();
+ switch (activeScheme) {
+ case 9: // color by height at segment start
+ for (PositionVector::const_iterator ii = getShape().begin(); ii != getShape().end() - 1; ++ii) {
+ myShapeColors.push_back(c.getScheme().getColor(ii->z()));
+ }
+ return true;
+ case 11: // color by inclination at segment start
+ for (int ii = 1; ii < (int)getShape().size(); ++ii) {
+ const SUMOReal inc = (getShape()[ii].z() - getShape()[ii - 1].z()) / MAX2(POSITION_EPS, getShape()[ii].distanceTo2D(getShape()[ii - 1]));
+ myShapeColors.push_back(c.getScheme().getColor(inc));
+ }
+ return true;
+ default:
+ return false;
+ }
+}
+
+
+SUMOReal
+GNELane::getColorValue(size_t activeScheme) const {
+ const SVCPermissions myPermissions = myParentEdge.getNBEdge()->getPermissions(myIndex);
+ switch (activeScheme) {
+ case 0:
+ switch (myPermissions) {
+ case SVC_PEDESTRIAN:
+ return 1;
+ case SVC_BICYCLE:
+ return 2;
+ case 0:
+ return 3;
+ case SVC_SHIP:
+ return 4;
+ default:
+ break;
+ }
+ if ((myPermissions & SVC_PASSENGER) != 0 || isRailway(myPermissions)) {
+ return 0;
+ } else {
+ return 5;
+ }
+ case 1:
+ return gSelected.isSelected(getType(), getGlID()) ||
+ gSelected.isSelected(GLO_EDGE, dynamic_cast<GNEEdge*>(&myParentEdge)->getGlID());
+ case 2:
+ return (SUMOReal)myPermissions;
+ case 3:
+ return myParentEdge.getNBEdge()->getLaneSpeed(myIndex);
+ case 4:
+ return myParentEdge.getNBEdge()->getNumLanes();
+ case 5: {
+ return myParentEdge.getNBEdge()->getLoadedLength() / myParentEdge.getNBEdge()->getLength();
+ }
+ // case 6: by angle (functional)
+ case 7: {
+ return myParentEdge.getNBEdge()->getPriority();
+ }
+ case 8: {
+ // color by z of first shape point
+ return getShape()[0].z();
+ }
+ // case 9: by segment height
+ case 10: {
+ // color by incline
+ return (getShape()[-1].z() - getShape()[0].z()) / myParentEdge.getNBEdge()->getLength();
+ }
+ }
+ return 0;
+}
+
+
+bool
+GNELane::drawAsRailway(const GUIVisualizationSettings& s) const {
+ return isRailway(myParentEdge.getNBEdge()->getPermissions(myIndex)) && s.showRails;
+}
+
+
+bool
+GNELane::drawAsWaterway(const GUIVisualizationSettings& s) const {
+ return isWaterway(myParentEdge.getNBEdge()->getPermissions(myIndex)) && s.showRails; // reusing the showRails setting
+}
+
+
+void
+GNELane::drawCrossties(SUMOReal length, SUMOReal spacing, SUMOReal halfWidth) const {
+ glPushMatrix();
+ // draw on top of of the white area between the rails
+ glTranslated(0, 0, 0.1);
+ int e = (int) getShape().size() - 1;
+ for (int i = 0; i < e; ++i) {
+ glPushMatrix();
+ glTranslated(getShape()[i].x(), getShape()[i].y(), 0.0);
+ glRotated(myShapeRotations[i], 0, 0, 1);
+ for (SUMOReal t = 0; t < myShapeLengths[i]; t += spacing) {
+ glBegin(GL_QUADS);
+ glVertex2d(-halfWidth, -t);
+ glVertex2d(-halfWidth, -t - length);
+ glVertex2d(halfWidth, -t - length);
+ glVertex2d(halfWidth, -t);
+ glEnd();
+ }
+ glPopMatrix();
+ }
+ glPopMatrix();
+}
+
+
+const std::string&
+GNELane::getParentName() const {
+ return myParentEdge.getMicrosimID();
+}
+
+
+long
+GNELane::onDefault(FXObject* obj, FXSelector sel, void* data) {
+ if (myTLSEditor != 0) {
+ myTLSEditor->handleMultiChange(this, obj, sel, data);
+ }
+ return 1;
+}
+
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNELane.h b/src/netedit/GNELane.h
new file mode 100644
index 0000000..5452255
--- /dev/null
+++ b/src/netedit/GNELane.h
@@ -0,0 +1,237 @@
+/****************************************************************************/
+/// @file GNELane.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNELane.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing Lane geometry (adapted from GUILaneWrapper)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNELane_h
+#define GNELane_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <vector>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include <utils/gui/settings/GUIPropertySchemeStorage.h>
+#include "GNEAttributeCarrier.h"
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUIGLObjectPopupMenu;
+class PositionVector;
+class GNETLSEditor;
+class GNEEdge;
+class GNENet;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNELane
+ * @brief This lane is powered by an underlying GNEEdge and basically knows how
+ * to draw itself
+ */
+class GNELane : public GUIGlObject, public GNEAttributeCarrier, public FXDelegator {
+ // FOX-declarations
+ FXDECLARE(GNELane)
+
+public:
+ /** @brief Constructor
+ * @param[in] idStorage The storage of gl-ids to get the one for this lane representation from
+ * @param[in] the edge this lane belongs to
+ * @param[in] the index of this lane
+ */
+ GNELane(GNEEdge& edge, const unsigned int index);
+
+
+ /// @brief Destructor
+ virtual ~GNELane() ;
+
+
+ /// @name inherited from GUIGlObject
+ //@{
+ /** @brief Returns the name of the parent object (if any)
+ * @return This object's parent id
+ */
+ const std::string& getParentName() const;
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ GUIParameterTableWindow* getParameterWindow(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+ /// @brief multiplexes message to two targets
+ long onDefault(FXObject*, FXSelector, void*);
+
+ /** @brief Returns underlying parent edge
+ *
+ * @return The underlying GNEEdge
+ */
+ GNEEdge& getParentEdge() {
+ return myParentEdge;
+ };
+
+
+ /** @brief Returns the boundary to which the view shall be centered in order to show the object
+ *
+ * @return The boundary the object is within
+ * @see GUIGlObject::getCenteringBoundary
+ */
+ Boundary getCenteringBoundary() const ;
+
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+ const PositionVector& getShape() const;
+ const std::vector<SUMOReal>& getShapeRotations() const;
+ const std::vector<SUMOReal>& getShapeLengths() const;
+
+ ///@brief returns the boundry (including lanes)
+ Boundary getBoundary() const;
+
+ ///@brief update pre-computed geometry information
+ // @note: must be called when geometry changes (i.e. junction moved)
+ void updateGeometry();
+
+ unsigned int getIndex() const {
+ return myIndex;
+ }
+
+ void setIndex(unsigned int index);
+
+ //@name inherited from GNEAttributeCarrier
+ //@{
+ std::string getAttribute(SumoXMLAttr key) const;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ */
+ void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
+
+ bool isValid(SumoXMLAttr key, const std::string& value);
+ //@}
+
+ void setSpecialColor(const RGBColor* color) {
+ mySpecialColor = color;
+ }
+
+protected:
+ /// @brief FOX needs this
+ GNELane();
+
+private:
+ /// The Edge that to which this lane belongs
+ GNEEdge& myParentEdge;
+
+ /// The index of this lane
+ unsigned int myIndex;
+
+ /// @name computed only once (for performance) in updateGeometry()
+ //@{
+ /// The rotations of the shape parts
+ std::vector<SUMOReal> myShapeRotations;
+
+ /// The lengths of the shape parts
+ std::vector<SUMOReal> myShapeLengths;
+ //@}
+
+ /// @brief optional special color
+ const RGBColor* mySpecialColor;
+
+private:
+ void setAttribute(SumoXMLAttr key, const std::string& value);
+
+ /// @brief Invalidated copy constructor.
+ GNELane(const GNELane&);
+
+ /// @brief Invalidated assignment operator.
+ GNELane& operator=(const GNELane&);
+
+ //@brief draw lane markings
+ void drawMarkings(const bool& selectedEdge, SUMOReal scale) const;
+
+ // drawing methods
+ void drawLinkNo() const;
+ void drawTLSLinkNo() const;
+ void drawLinkRules() const;
+ void drawArrows() const;
+ void drawLane2LaneConnections() const;
+
+ // @brief return value for lane coloring according to the given scheme
+ SUMOReal getColorValue(size_t activeScheme) const;
+
+ /// @brief sets the color according to the current scheme index and some lane function
+ bool setFunctionalColor(size_t activeScheme) const;
+
+ /// @brief sets multiple colors according to the current scheme index and some lane function
+ bool setMultiColor(const GUIColorer& c) const;
+
+ /// @brief whether to draw this lane as a railway
+ bool drawAsRailway(const GUIVisualizationSettings& s) const;
+
+ /// @brief whether to draw this lane as a waterways
+ bool drawAsWaterway(const GUIVisualizationSettings& s) const;
+
+ /* @brief draw crossties for railroads
+ * @todo: XXX This duplicates the code of GUILane::drawCrossties and needs to be */
+ void drawCrossties(SUMOReal length, SUMOReal spacing, SUMOReal halfWidth) const;
+
+
+ /// The color of the shape parts (cached)
+ mutable std::vector<RGBColor> myShapeColors;
+
+ /// @brief the tls-editor for setting multiple links in TLS-mode
+ GNETLSEditor* myTLSEditor;
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNELoadThread.cpp b/src/netedit/GNELoadThread.cpp
new file mode 100644
index 0000000..2bc6c54
--- /dev/null
+++ b/src/netedit/GNELoadThread.cpp
@@ -0,0 +1,282 @@
+/****************************************************************************/
+/// @file GNELoadThread.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNELoadThread.cpp 18845 2015-09-17 12:50:55Z behrisch $
+///
+// The thread that performs the loading of a Netedit-net (adapted from
+// GUILoadThread)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <iostream>
+#include <ctime>
+#include <utils/gui/events/GUIEvent_Message.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/common/RandHelper.h>
+#include <utils/common/UtilExceptions.h>
+#include <utils/common/MsgHandler.h>
+#include <utils/common/MsgRetrievingFunction.h>
+#include <utils/common/SystemFrame.h>
+#include <utils/options/OptionsCont.h>
+#include <utils/options/Option.h>
+#include <utils/options/OptionsIO.h>
+#include <utils/geom/GeoConvHelper.h>
+#include <netbuild/NBFrame.h>
+#include <netimport/NILoader.h>
+#include <netimport/NIFrame.h>
+#include <netwrite/NWFrame.h>
+#include <netbuild/NBFrame.h>
+
+#include "GNELoadThread.h"
+#include "GNENet.h"
+#include "GNEEvent_NetworkLoaded.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+GNELoadThread::GNELoadThread(FXApp* app, MFXInterThreadEventClient* mw,
+ MFXEventQue<GUIEvent*>& eq, FXEX::FXThreadEvent& ev)
+ : FXSingleEventThread(app, mw), myParent(mw), myEventQue(eq),
+ myEventThrow(ev) {
+ myErrorRetriever = new MsgRetrievingFunction<GNELoadThread>(this,
+ &GNELoadThread::retrieveMessage, MsgHandler::MT_ERROR);
+ myMessageRetriever = new MsgRetrievingFunction<GNELoadThread>(this,
+ &GNELoadThread::retrieveMessage, MsgHandler::MT_MESSAGE);
+ myWarningRetriever = new MsgRetrievingFunction<GNELoadThread>(this,
+ &GNELoadThread::retrieveMessage, MsgHandler::MT_WARNING);
+ MsgHandler::getErrorInstance()->addRetriever(myErrorRetriever);
+}
+
+
+GNELoadThread::~GNELoadThread() {
+ delete myErrorRetriever;
+ delete myMessageRetriever;
+ delete myWarningRetriever;
+}
+
+
+FXint
+GNELoadThread::run() {
+ GNENet* net = 0;
+ OptionsCont& oc = OptionsCont::getOptions();
+
+ // within gui-based applications, nothing is reported to the console
+ /*
+ MsgHandler::getErrorInstance()->report2cout(false);
+ MsgHandler::getErrorInstance()->report2cerr(false);
+ MsgHandler::getWarningInstance()->report2cout(false);
+ MsgHandler::getWarningInstance()->report2cerr(false);
+ MsgHandler::getMessageInstance()->report2cout(false);
+ MsgHandler::getMessageInstance()->report2cerr(false);
+ */
+ // register message callbacks
+ MsgHandler::getMessageInstance()->addRetriever(myMessageRetriever);
+ MsgHandler::getErrorInstance()->addRetriever(myErrorRetriever);
+ MsgHandler::getWarningInstance()->addRetriever(myWarningRetriever);
+
+ // try to load the given configuration
+ if (!myOptionsReady && !initOptions()) {
+ // the options are not valid
+ submitEndAndCleanup(net);
+ return 0;
+ }
+ MsgHandler::initOutputOptions();
+ if (!(NIFrame::checkOptions() &&
+ NBFrame::checkOptions() &&
+ NWFrame::checkOptions())) {
+ // options are not valid
+ WRITE_ERROR("Invalid Options. Nothing loaded");
+ submitEndAndCleanup(net);
+ return 0;
+ }
+ MsgHandler::getErrorInstance()->clear();
+ MsgHandler::getWarningInstance()->clear();
+ MsgHandler::getMessageInstance()->clear();
+
+ RandHelper::initRandGlobal();
+ if (!GeoConvHelper::init(oc)) {
+ WRITE_ERROR("Could not build projection!");
+ submitEndAndCleanup(net);
+ return 0;
+ }
+ // this netbuilder instance becomes the responsibility of the GNENet
+ NBNetBuilder* netBuilder = new NBNetBuilder();
+ netBuilder->applyOptions(oc);
+
+ if (myNewNet) {
+ // create new network
+ net = new GNENet(netBuilder);
+ } else {
+ NILoader nl(*netBuilder);
+ try {
+ nl.load(oc);
+ if (!myLoadNet) {
+ WRITE_MESSAGE("Performing initial computatation ...\n");
+ // perform one-time processing (i.e. edge removal)
+ netBuilder->compute(oc);
+ // @todo remove one-time processing options!
+ } else {
+ // make coordinate conversion usable before first netBuilder->compute()
+ GeoConvHelper::computeFinal();
+ }
+
+ if (oc.getBool("ignore-errors")) {
+ MsgHandler::getErrorInstance()->clear();
+ }
+ // check whether any errors occured
+ if (MsgHandler::getErrorInstance()->wasInformed()) {
+ throw ProcessError();
+ } else {
+ net = new GNENet(netBuilder);
+ }
+ } catch (ProcessError& e) {
+ if (std::string(e.what()) != std::string("Process Error") && std::string(e.what()) != std::string("")) {
+ WRITE_ERROR(e.what());
+ }
+ WRITE_ERROR("Failed to build network.");
+ delete net;
+ delete netBuilder;
+ net = 0;
+#ifndef _DEBUG
+ } catch (std::exception& e) {
+ WRITE_ERROR(e.what());
+ delete net;
+ delete netBuilder;
+ net = 0;
+#endif
+ }
+ }
+ // only a single setting file is supported
+ submitEndAndCleanup(net, oc.getString("gui-settings-file"), oc.getBool("registry-viewport"));
+ return 0;
+}
+
+
+
+void
+GNELoadThread::submitEndAndCleanup(GNENet* net, const std::string& guiSettingsFile, const bool viewportFromRegistry) {
+ // remove message callbacks
+ MsgHandler::getErrorInstance()->removeRetriever(myErrorRetriever);
+ MsgHandler::getWarningInstance()->removeRetriever(myWarningRetriever);
+ MsgHandler::getMessageInstance()->removeRetriever(myMessageRetriever);
+ // inform parent about the process
+ GUIEvent* e = new GNEEvent_NetworkLoaded(net, myFile, guiSettingsFile, viewportFromRegistry);
+ myEventQue.add(e);
+ myEventThrow.signal();
+}
+
+
+void
+GNELoadThread::fillOptions(OptionsCont& oc) {
+ oc.clear();
+ oc.addCallExample("", "start plain GUI with empty net");
+ oc.addCallExample("-c <CONFIGURATION>", "edit net with options read from file");
+
+ SystemFrame::addConfigurationOptions(oc); // this subtopic is filled here, too
+ oc.addOptionSubTopic("Input");
+ oc.addOptionSubTopic("Output");
+ GeoConvHelper::addProjectionOptions(oc);
+ oc.addOptionSubTopic("TLS Building");
+ oc.addOptionSubTopic("Ramp Guessing");
+ oc.addOptionSubTopic("Edge Removal");
+ oc.addOptionSubTopic("Unregulated Nodes");
+ oc.addOptionSubTopic("Processing");
+ oc.addOptionSubTopic("Building Defaults");
+ oc.addOptionSubTopic("Visualisation");
+
+ oc.doRegister("disable-textures", 'T', new Option_Bool(false)); // !!!
+ oc.addDescription("disable-textures", "Visualisation", "");
+ oc.doRegister("gui-settings-file", new Option_FileName());
+ oc.addDescription("gui-settings-file", "Visualisation", "Load visualisation settings from FILE");
+ oc.doRegister("registry-viewport", new Option_Bool(false));
+ oc.addDescription("registry-viewport", "Visualisation", "Load current viewport from registry");
+
+ SystemFrame::addReportOptions(oc); // this subtopic is filled here, too
+
+ NIFrame::fillOptions();
+ NBFrame::fillOptions(false);
+ NWFrame::fillOptions(false);
+ RandHelper::insertRandOptions();
+}
+
+
+void
+GNELoadThread::setDefaultOptions(OptionsCont& oc) {
+ oc.set("offset.disable-normalization", "true"); // preserve the given network as far as possible
+ oc.set("no-turnarounds", "true"); // otherwise it is impossible to manually removed turn-arounds
+}
+
+
+bool
+GNELoadThread::initOptions() {
+ OptionsCont& oc = OptionsCont::getOptions();
+ fillOptions(oc);
+ if (myLoadNet) {
+ oc.set("sumo-net-file", myFile);
+ } else {
+ oc.set("configuration-file", myFile);
+ }
+ setDefaultOptions(oc);
+ OptionsIO::setArgs(0, 0);
+ try {
+ OptionsIO::getOptions();
+ if (!oc.isSet("output-file")) {
+ oc.set("output-file", oc.getString("sumo-net-file"));
+ }
+ return true;
+ } catch (ProcessError& e) {
+ if (std::string(e.what()) != std::string("Process Error") && std::string(e.what()) != std::string("")) {
+ WRITE_ERROR(e.what());
+ }
+ WRITE_ERROR("Failed to parse options.");
+ }
+ return false;
+}
+
+
+void
+GNELoadThread::loadConfigOrNet(const std::string& file, bool isNet, bool optionsReady, bool newNet) {
+ myFile = file;
+ myLoadNet = isNet;
+ myOptionsReady = optionsReady;
+ myNewNet = newNet;
+ start();
+}
+
+
+void
+GNELoadThread::retrieveMessage(const MsgHandler::MsgType type, const std::string& msg) {
+ GUIEvent* e = new GUIEvent_Message(type, msg);
+ myEventQue.add(e);
+ myEventThrow.signal();
+}
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNELoadThread.h b/src/netedit/GNELoadThread.h
new file mode 100644
index 0000000..7be609f
--- /dev/null
+++ b/src/netedit/GNELoadThread.h
@@ -0,0 +1,123 @@
+/****************************************************************************/
+/// @file GNELoadThread.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNELoadThread.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The thread that performs the loading of a Netedit-net (adapted from
+// GUILoadThread)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNELoadThread_h
+#define GNELoadThread_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <utils/common/SUMOTime.h>
+#include <utils/foxtools/FXSingleEventThread.h>
+#include <utils/foxtools/FXThreadEvent.h>
+#include <utils/foxtools/MFXEventQue.h>
+#include <utils/common/MsgHandler.h>
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class MFXInterThreadEventClient;
+class GNENet;
+class GUIEvent;
+
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNELoadThread
+ */
+class GNELoadThread : public FXSingleEventThread {
+public:
+ /// constructor
+ GNELoadThread(FXApp* app, MFXInterThreadEventClient* mw, MFXEventQue<GUIEvent*>& eq,
+ FXEX::FXThreadEvent& ev);
+
+ /// destructor
+ virtual ~GNELoadThread();
+
+ /** starts the thread
+ the thread ends after the net has been loaded */
+ FXint run();
+
+ /** @brief begins the loading of a netconvert configuration or a a network
+ * @param[in] file The network or configuration-file to be loaded
+ * @param[in] isNet whether file is a network file
+ * @param[in] optionsReady whether options are already initialized
+ */
+ void loadConfigOrNet(const std::string& file, bool isNet, bool optionsReady = false, bool newNet = false);
+
+ /// Retrieves messages from the loading module
+ void retrieveMessage(const MsgHandler::MsgType type, const std::string& msg);
+
+ /// @brief clears and initializes the OptionsCont
+ static void fillOptions(OptionsCont& oc);
+
+ /// @brief sets required options for proper functioning
+ static void setDefaultOptions(OptionsCont& oc);
+
+protected:
+ bool initOptions();
+
+
+ /** @brief Closes the loading process
+ *
+ * This method is called both on success and failure.
+ * All message callbacks to this instance are removed and the parent
+ * application is informed about the loading */
+ void submitEndAndCleanup(GNENet* net, const std::string& guiSettingsFile = "", const bool viewportFromRegistry = false);
+
+protected:
+ /// the parent window to inform about the loading
+ MFXInterThreadEventClient* myParent;
+
+ /// the path to load the simulation from
+ std::string myFile;
+
+ /** @brief The instances of message retriever encapsulations
+ Needed to be deleted from the handler later on */
+ OutputDevice* myErrorRetriever, *myMessageRetriever, *myWarningRetriever;
+
+ MFXEventQue<GUIEvent*>& myEventQue;
+
+ FXEX::FXThreadEvent& myEventThrow;
+
+ /// Information whether only the network shall be loaded
+ bool myLoadNet;
+
+ /// @brief if true, options will not be read from myFile
+ bool myOptionsReady;
+
+ /// @brief if true, a new net is created
+ bool myNewNet;
+};
+
+
+#endif
+
+/****************************************************************************/
diff --git a/src/netedit/GNENet.cpp b/src/netedit/GNENet.cpp
new file mode 100644
index 0000000..986a3eb
--- /dev/null
+++ b/src/netedit/GNENet.cpp
@@ -0,0 +1,1023 @@
+/****************************************************************************/
+/// @file GNENet.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNENet.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A visual container for GNE-network-components such as GNEEdge and GNEJunction.
+// GNE components wrap netbuild-components and supply visualisation and editing
+// capabilities (adapted from GUINet)
+//
+// Workflow (rough draft)
+// use NILoader to fill
+// do netedit stuff
+// call compute to save results
+//
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <utility>
+#include <set>
+#include <vector>
+#include <map>
+
+#include <utils/shapes/ShapeContainer.h>
+#include <utils/common/RGBColor.h>
+#include <utils/common/TplConvert.h>
+#include <utils/common/MsgHandler.h>
+#include <utils/gui/windows/GUIMainWindow.h>
+#include <utils/gui/globjects/GUIGlObject_AbstractAdd.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/common/StringUtils.h>
+#include <netbuild/NBEdgeCont.h>
+#include <netbuild/NBNodeCont.h>
+#include <netbuild/NBAlgorithms.h>
+#include <netwrite/NWFrame.h>
+#include <netwrite/NWWriter_XML.h>
+#include "GNENet.h"
+#include "GNEApplicationWindow.h"
+#include "GNEJunction.h"
+#include "GNEEdge.h"
+#include "GNELane.h"
+#include "GNEUndoList.h"
+#include "GNEChange_Junction.h"
+#include "GNEChange_Edge.h"
+#include "GNEChange_Lane.h"
+#include "GNEChange_Connection.h"
+#include "GNEChange_Selection.h"
+
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// static members
+// ===========================================================================
+const RGBColor GNENet::selectionColor(0, 0, 204, 255);
+const RGBColor GNENet::selectedLaneColor(0, 0, 128, 255);
+const SUMOReal GNENet::Z_INITIALIZED = 1;
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+GNENet::GNENet(NBNetBuilder* netBuilder) :
+ GUIGlObject(GLO_NETWORK, ""),
+ myUpdateTarget(0),
+ myNetBuilder(netBuilder),
+ myEdges(),
+ myJunctions(),
+ myEdgeIDSupplier("gneE", netBuilder->getEdgeCont().getAllNames()),
+ myJunctionIDSupplier("gneJ", netBuilder->getNodeCont().getAllNames()),
+ myShapeContainer(myGrid),
+ myNeedRecompute(true) {
+ GUIGlObjectStorage::gIDStorage.setNetObject(this);
+
+ // init edges
+ NBEdgeCont& ec = myNetBuilder->getEdgeCont();
+ const std::vector<std::string>& edgeNames = ec.getAllNames();
+ for (std::vector<std::string>::const_iterator name_it = edgeNames.begin(); name_it != edgeNames.end(); ++name_it) {
+ NBEdge* nbe = ec.retrieve(*name_it);
+ registerEdge(new GNEEdge(*nbe, this, false, true));
+ if (myGrid.getWidth() > 10e16 || myGrid.getHeight() > 10e16) {
+ throw ProcessError("Network size exceeds 1 Lightyear. Please reconsider your inputs.\n");
+ }
+ }
+
+ // init junctions
+ NBNodeCont& nc = myNetBuilder->getNodeCont();
+ const std::vector<std::string>& nodeNames = nc.getAllNames();
+ for (std::vector<std::string>::const_iterator name_it = nodeNames.begin(); name_it != nodeNames.end(); ++name_it) {
+ NBNode* nbn = nc.retrieve(*name_it);
+ registerJunction(new GNEJunction(*nbn, this, true));
+ }
+ // make sure myGrid is initialized even for an empty net
+ if (myEdges.size() == 0) {
+ myGrid.add(Boundary(0, 0, 100, 100));
+ }
+
+ // sort nodes edges so that arrows can be drawn correctly
+ NBNodesEdgesSorter::sortNodesEdges(nc);
+
+ /*
+ // initialise detector storage for gui
+ initDetectors();
+ // initialise the tl-map
+ initTLMap();
+ // initialise edge storage for gui
+ GUIEdge::fill(myEdgeWrapper);
+ */
+ //if (myGrid.count() == 0) // myGrid methods will return garbage
+
+ if (myZBoundary.ymin() != Z_INITIALIZED) {
+ myZBoundary.add(0, 0);
+ }
+}
+
+
+GNENet::~GNENet() {
+ /*
+ // delete allocated wrappers
+ // of junctions
+ for (std::vector<GUIJunctionWrapper*>::iterator i1=myJunctionWrapper.begin(); i1!=myJunctionWrapper.end(); i1++) {
+ delete(*i1);
+ }
+ // of additional structures
+ GUIGlObject_AbstractAdd::clearDictionary();
+ // of tl-logics
+ for (Logics2WrapperMap::iterator i3=myLogics2Wrapper.begin(); i3!=myLogics2Wrapper.end(); i3++) {
+ delete(*i3).second;
+ }
+ // of detectors
+ for (std::map<std::string, GUIDetectorWrapper*>::iterator i=myDetectorDict.begin(); i!=myDetectorDict.end(); ++i) {
+ delete(*i).second;
+ }
+ */
+ for (GNEEdges::iterator it = myEdges.begin(); it != myEdges.end(); it++) {
+ it->second->decRef("GNENet::~GNENet");
+ delete it->second;
+ }
+ for (GNEJunctions::iterator it = myJunctions.begin(); it != myJunctions.end(); it++) {
+ it->second->decRef("GNENet::~GNENet");
+ delete it->second;
+ }
+ delete myNetBuilder;
+}
+
+
+const Boundary&
+GNENet::getBoundary() const {
+ // SUMORTree is also a Boundary
+ return myGrid;
+}
+
+
+GUIGLObjectPopupMenu*
+GNENet::getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) {
+ GUIGLObjectPopupMenu* ret = new GUIGLObjectPopupMenu(app, parent, *this);
+ buildPopupHeader(ret, app);
+ buildCenterPopupEntry(ret);
+ buildPositionCopyEntry(ret, false);
+ return ret;
+}
+
+
+GUIParameterTableWindow*
+GNENet::getParameterWindow(GUIMainWindow&, GUISUMOAbstractView&) {
+ return 0;
+}
+
+
+void
+GNENet::drawGL(const GUIVisualizationSettings& /*s*/) const {
+}
+
+
+Boundary
+GNENet::getCenteringBoundary() const {
+ return getBoundary();
+}
+
+
+GNEJunction*
+GNENet::createJunction(const Position& pos, GNEUndoList* undoList) {
+ std::string id = myJunctionIDSupplier.getNext();
+ NBNode* nbn = new NBNode(id, pos);
+ GNEJunction* junction = new GNEJunction(*nbn, this);
+ undoList->add(new GNEChange_Junction(this, junction, true), true);
+ assert(myJunctions[id]);
+ return junction;
+}
+
+
+GNEEdge*
+GNENet::createEdge(
+ GNEJunction* src, GNEJunction* dest, GNEEdge* tpl, GNEUndoList* undoList,
+ const std::string& suggestedName,
+ bool wasSplit,
+ bool allowDuplicateGeom) {
+ // prevent duplicate edge (same geometry)
+ const EdgeVector& outgoing = src->getNBNode()->getOutgoingEdges();
+ for (EdgeVector::const_iterator it = outgoing.begin(); it != outgoing.end(); it++) {
+ if ((*it)->getToNode() == dest->getNBNode() && (*it)->getGeometry().size() == 2) {
+ if (!allowDuplicateGeom) {
+ return 0;
+ }
+ }
+ }
+
+ std::string id;
+ if (suggestedName != "" && !retrieveEdge(suggestedName, false)) {
+ id = suggestedName;
+ reserveEdgeID(id);
+ } else {
+ id = myEdgeIDSupplier.getNext();
+ }
+
+ GNEEdge* edge;
+ if (tpl) {
+ NBEdge* nbeTpl = tpl->getNBEdge();
+ NBEdge* nbe = new NBEdge(id, src->getNBNode(), dest->getNBNode(), nbeTpl);
+ edge = new GNEEdge(*nbe, this, wasSplit);
+ } else {
+ // default if no template is given
+ SUMOReal defaultSpeed = 50 / 3.6;
+ std::string defaultType = "";
+ int defaultNrLanes = 1;
+ int defaultPriority = 1;
+ SUMOReal defaultWidth = NBEdge::UNSPECIFIED_WIDTH;
+ SUMOReal defaultOffset = NBEdge::UNSPECIFIED_OFFSET;
+ NBEdge* nbe = new NBEdge(id, src->getNBNode(), dest->getNBNode(),
+ defaultType, defaultSpeed,
+ defaultNrLanes, defaultPriority,
+ defaultWidth,
+ defaultOffset);
+ edge = new GNEEdge(*nbe, this, wasSplit);
+ }
+ undoList->p_begin("create edge");
+ undoList->add(new GNEChange_Edge(this, edge, true), true);
+ src->setLogicValid(false, undoList);
+ dest->setLogicValid(false, undoList);
+ requireRecompute();
+ undoList->p_end();
+ assert(myEdges[id]);
+ return edge;
+}
+
+
+void
+GNENet::deleteJunction(GNEJunction* junction, GNEUndoList* undoList) {
+ // we have to delete all incident edges because they cannot exist without that junction
+ // all deletions must be undone/redone together so we start a new command group
+ // @todo if any of those edges are dead-ends should we remove their orphan junctions as well?
+ undoList->p_begin("delete junction");
+
+ // deleting edges changes in the underlying EdgeVector so we have to make a copy
+ const EdgeVector incident = junction->getNBNode()->getEdges();
+ for (EdgeVector::const_iterator it = incident.begin(); it != incident.end(); it++) {
+ deleteEdge(myEdges[(*it)->getID()], undoList);
+ }
+
+ // remove any traffic lights from the traffic light container (avoids lots of warnings)
+ junction->setAttribute(SUMO_ATTR_TYPE, toString(NODETYPE_PRIORITY), undoList);
+ undoList->add(new GNEChange_Junction(this, junction, false), true);
+ if (gSelected.isSelected(GLO_JUNCTION, junction->getGlID())) {
+ std::set<GUIGlID> deselected;
+ deselected.insert(junction->getGlID());
+ undoList->add(new GNEChange_Selection(std::set<GUIGlID>(), deselected, true), true);
+ }
+ undoList->p_end();
+}
+
+
+void
+GNENet::deleteEdge(GNEEdge* edge, GNEUndoList* undoList) {
+ undoList->p_begin("delete edge");
+ undoList->add(new GNEChange_Edge(this, edge, false), true);
+ if (gSelected.isSelected(GLO_EDGE, edge->getGlID())) {
+ std::set<GUIGlID> deselected;
+ deselected.insert(edge->getGlID());
+ undoList->add(new GNEChange_Selection(std::set<GUIGlID>(), deselected, true), true);
+ }
+ edge->getSource()->removeFromCrossings(edge, undoList);
+ edge->getDest()->removeFromCrossings(edge, undoList);
+ edge->getSource()->setLogicValid(false, undoList);
+ edge->getDest()->setLogicValid(false, undoList);
+ requireRecompute();
+ undoList->p_end();
+}
+
+
+void
+GNENet::deleteLane(GNELane* lane, GNEUndoList* undoList) {
+ undoList->p_begin("delete lane");
+ GNEEdge* edge = &lane->getParentEdge();
+ const NBEdge::Lane& laneAttrs = edge->getNBEdge()->getLaneStruct(lane->getIndex());
+ const bool sidewalk = laneAttrs.permissions == SVC_PEDESTRIAN;
+ undoList->add(new GNEChange_Lane(edge, lane, laneAttrs, false), true);
+ if (gSelected.isSelected(GLO_LANE, lane->getGlID())) {
+ std::set<GUIGlID> deselected;
+ deselected.insert(lane->getGlID());
+ undoList->add(new GNEChange_Selection(std::set<GUIGlID>(), deselected, true), true);
+ }
+ if (sidewalk) {
+ edge->getSource()->removeFromCrossings(edge, undoList);
+ edge->getDest()->removeFromCrossings(edge, undoList);
+ edge->getSource()->setLogicValid(false, undoList);
+ edge->getDest()->setLogicValid(false, undoList);
+ }
+ requireRecompute();
+ undoList->p_end();
+}
+
+
+void
+GNENet::duplicateLane(GNELane* lane, GNEUndoList* undoList) {
+ undoList->p_begin("duplicate lane");
+ GNEEdge* edge = &lane->getParentEdge();
+ const NBEdge::Lane& laneAttrs = edge->getNBEdge()->getLaneStruct(lane->getIndex());
+ GNELane* newLane = new GNELane(*edge, lane->getIndex());
+ undoList->add(new GNEChange_Lane(edge, newLane, laneAttrs, true), true);
+ requireRecompute();
+ undoList->p_end();
+}
+
+
+void
+GNENet::deleteGeometryOrEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList) {
+ if (!edge->deleteGeometry(pos, undoList)) {
+ deleteEdge(edge, undoList);
+ }
+}
+
+
+GNEJunction*
+GNENet::splitEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList, GNEJunction* newJunction) {
+ undoList->p_begin("split edge");
+ deleteEdge(edge, undoList); // still exists. we delete it so we can reuse the name in case of resplit
+ // compute geometry
+ const PositionVector& oldGeom = edge->getNBEdge()->getGeometry();
+ const SUMOReal linePos = oldGeom.nearest_offset_to_point2D(pos, false);
+ std::pair<PositionVector, PositionVector> newGeoms = oldGeom.splitAt(linePos);
+ // figure out the new name
+ int posBase = 0;
+ std::string baseName = edge->getMicrosimID();
+ if (edge->wasSplit()) {
+ size_t sep_index = baseName.rfind('.');
+ if (sep_index != std::string::npos) { // edge may have been renamed in between
+ std::string posString = baseName.substr(sep_index + 1);
+ try {
+ posBase = TplConvert::_2int(posString.c_str());
+ baseName = baseName.substr(0, sep_index); // includes the .
+ } catch (NumberFormatException) {
+ }
+ }
+ }
+ baseName += '.';
+ // create edges
+ if (newJunction == 0) {
+ newJunction = createJunction(pos, undoList);
+ }
+ GNEEdge* firstPart = createEdge(edge->getSource(), newJunction, edge,
+ undoList, baseName + toString(posBase), true);
+ GNEEdge* secondPart = createEdge(newJunction, edge->getDest(), edge,
+ undoList, baseName + toString(posBase + (int)linePos), true);
+ // fix geometry
+ firstPart->setAttribute(GNE_ATTR_SHAPE_START, toString(newGeoms.first[0]), undoList);
+ firstPart->setAttribute(GNE_ATTR_SHAPE_END, toString(newGeoms.first[-1]), undoList);
+ newGeoms.first.pop_back();
+ newGeoms.first.erase(newGeoms.first.begin());
+ firstPart->setAttribute(SUMO_ATTR_SHAPE, toString(newGeoms.first), undoList);
+
+ secondPart->setAttribute(GNE_ATTR_SHAPE_START, toString(newGeoms.second[0]), undoList);
+ secondPart->setAttribute(GNE_ATTR_SHAPE_END, toString(newGeoms.second[-1]), undoList);
+ newGeoms.second.pop_back();
+ newGeoms.second.erase(newGeoms.second.begin());
+ secondPart->setAttribute(SUMO_ATTR_SHAPE, toString(newGeoms.second), undoList);
+ // fix connections
+ std::vector<NBEdge::Connection>& connections = edge->getNBEdge()->getConnections();
+ for (std::vector<NBEdge::Connection>::iterator con_it = connections.begin(); con_it != connections.end(); con_it++) {
+ undoList->add(new GNEChange_Connection(
+ secondPart, con_it->fromLane, con_it->toEdge->getID(), con_it->toLane, false, true), true);
+ }
+ undoList->p_end();
+ return newJunction;
+}
+
+
+void
+GNENet::splitEdgesBidi(const std::set<GNEEdge*>& edges, const Position& pos, GNEUndoList* undoList) {
+ GNEJunction* newJunction = 0;
+ undoList->p_begin("split edges");
+ for (std::set<GNEEdge*>::const_iterator it = edges.begin(); it != edges.end(); ++it) {
+ newJunction = splitEdge(*it, pos, undoList, newJunction);
+ }
+ undoList->p_end();
+}
+
+
+void
+GNENet::reverseEdge(GNEEdge* edge, GNEUndoList* undoList) {
+ undoList->p_begin("reverse edge");
+ deleteEdge(edge, undoList); // still exists. we delete it so we can reuse the name in case of resplit
+ GNEEdge* reversed = createEdge(edge->getDest(), edge->getSource(), edge, undoList, edge->getID(), false, true);
+ assert(reversed != 0);
+ reversed->setAttribute(SUMO_ATTR_SHAPE, toString(edge->getNBEdge()->getInnerGeometry().reverse()), undoList);
+ undoList->p_end();
+}
+
+
+GNEEdge*
+GNENet::addReversedEdge(GNEEdge* edge, GNEUndoList* undoList) {
+ undoList->p_begin("add reversed edge");
+ GNEEdge* reversed = 0;
+ if (edge->getNBEdge()->getLaneSpreadFunction() == LANESPREAD_RIGHT) {
+ GNEEdge* reversed = createEdge(edge->getDest(), edge->getSource(), edge, undoList, "-" + edge->getID(), false, true);
+ assert(reversed != 0);
+ reversed->setAttribute(SUMO_ATTR_SHAPE, toString(edge->getNBEdge()->getInnerGeometry().reverse()), undoList);
+ } else {
+ // if the edge is centered it should probably connect somewhere else
+ // make it easy to move and reconnect it
+ PositionVector orig = edge->getNBEdge()->getGeometry();
+ PositionVector origInner = edge->getNBEdge()->getInnerGeometry();
+ const SUMOReal tentativeShift = edge->getNBEdge()->getTotalWidth() + 2;
+ orig.move2side(-tentativeShift);
+ origInner.move2side(-tentativeShift);
+ GNEJunction* src = createJunction(orig.back(), undoList);
+ GNEJunction* dest = createJunction(orig.front(), undoList);
+ GNEEdge* reversed = createEdge(src, dest, edge, undoList, "-" + edge->getID(), false, true);
+ assert(reversed != 0);
+ reversed->setAttribute(SUMO_ATTR_SHAPE, toString(origInner.reverse()), undoList);
+ // select the new edge and its nodes
+ std::set<GUIGlID> toSelect;
+ toSelect.insert(reversed->getGlID());
+ toSelect.insert(src->getGlID());
+ toSelect.insert(dest->getGlID());
+ undoList->add(new GNEChange_Selection(toSelect, gSelected.getSelected(), true), true);
+ }
+ undoList->p_end();
+ return reversed;
+}
+
+
+void
+GNENet::mergeJunctions(GNEJunction* moved, GNEJunction* target, GNEUndoList* undoList) {
+ undoList->p_begin("merge junctions");
+ // position of moved and target are probably a bit different (snap radius)
+ moved->move(target->getNBNode()->getPosition());
+ // register the move with undolist (must happend within the undo group)
+ moved->registerMove(undoList);
+ // deleting edges changes in the underlying EdgeVector so we have to make a copy
+ const EdgeVector incoming = moved->getNBNode()->getIncomingEdges();
+ for (EdgeVector::const_iterator it = incoming.begin(); it != incoming.end(); it++) {
+ GNEEdge* oldEdge = myEdges[(*it)->getID()];
+ remapEdge(oldEdge, oldEdge->getSource(), target, undoList);
+ }
+ // deleting edges changes in the underlying EdgeVector so we have to make a copy
+ const EdgeVector outgoing = moved->getNBNode()->getOutgoingEdges();
+ for (EdgeVector::const_iterator it = outgoing.begin(); it != outgoing.end(); it++) {
+ GNEEdge* oldEdge = myEdges[(*it)->getID()];
+ remapEdge(oldEdge, target, oldEdge->getDest(), undoList);
+ }
+ deleteJunction(moved, undoList);
+ undoList->p_end();
+}
+
+
+void
+GNENet::remapEdge(GNEEdge* oldEdge, GNEJunction* from, GNEJunction* to, GNEUndoList* undoList, bool keepEndpoints) {
+ deleteEdge(oldEdge, undoList); // delete first so we can reuse the name, reference stays valid
+ if (from != to) {
+ GNEEdge* newEdge = createEdge(from, to, oldEdge, undoList, oldEdge->getMicrosimID(), false, true);
+ newEdge->setAttribute(SUMO_ATTR_SHAPE, oldEdge->getAttribute(SUMO_ATTR_SHAPE), undoList);
+ if (keepEndpoints) {
+ newEdge->setAttribute(GNE_ATTR_SHAPE_START, oldEdge->getAttribute(GNE_ATTR_SHAPE_START), undoList);
+ newEdge->setAttribute(GNE_ATTR_SHAPE_END, oldEdge->getAttribute(GNE_ATTR_SHAPE_END), undoList);
+ }
+ }
+ // @todo remap connectivity as well
+}
+
+
+void
+GNENet::save(OptionsCont& oc) {
+ computeAndUpdate(oc);
+ NWFrame::writeNetwork(oc, *myNetBuilder);
+}
+
+
+void
+GNENet::savePlain(OptionsCont& oc) {
+ computeAndUpdate(oc);
+ NWWriter_XML::writeNetwork(oc, *myNetBuilder);
+}
+
+
+void
+GNENet::saveJoined(OptionsCont& oc) {
+ computeAndUpdate(oc);
+ NWWriter_XML::writeJoinedJunctions(oc, myNetBuilder->getNodeCont());
+}
+
+
+GNEJunction*
+GNENet::retrieveJunction(const std::string& id, bool failHard) {
+ if (myJunctions.count(id)) {
+ return myJunctions[id];
+ } else if (failHard) {
+ throw UnknownElement("Junction " + id);
+ } else {
+ return 0;
+ }
+}
+
+
+GNEEdge*
+GNENet::retrieveEdge(const std::string& id, bool failHard) {
+ if (myEdges.count(id)) {
+ return myEdges[id];
+ } else if (failHard) {
+ throw UnknownElement("Edge " + id);
+ } else {
+ return 0;
+ }
+}
+
+
+std::vector<GNEEdge*>
+GNENet::retrieveEdges(bool onlySelected) {
+ std::vector<GNEEdge*> result;
+ for (GNEEdges::const_iterator it = myEdges.begin(); it != myEdges.end(); ++it) {
+ if (!onlySelected || gSelected.isSelected(GLO_EDGE, it->second->getGlID())) {
+ result.push_back(it->second);
+ }
+ }
+ return result;
+}
+
+
+std::vector<GNELane*>
+GNENet::retrieveLanes(bool onlySelected) {
+ std::vector<GNELane*> result;
+ for (GNEEdges::const_iterator it = myEdges.begin(); it != myEdges.end(); ++it) {
+ const GNEEdge::LaneVector& lanes = it->second->getLanes();
+ for (GNEEdge::LaneVector::const_iterator it_lane = lanes.begin(); it_lane != lanes.end(); ++it_lane) {
+ if (!onlySelected || gSelected.isSelected(GLO_LANE, (*it_lane)->getGlID())) {
+ result.push_back(*it_lane);
+ }
+ }
+ }
+ return result;
+}
+
+
+std::vector<GNEJunction*>
+GNENet::retrieveJunctions(bool onlySelected) {
+ std::vector<GNEJunction*> result;
+ for (GNEJunctions::const_iterator it = myJunctions.begin(); it != myJunctions.end(); it++) {
+ if (!onlySelected || gSelected.isSelected(GLO_JUNCTION, it->second->getGlID())) {
+ result.push_back(it->second);
+ }
+ }
+ return result;
+}
+
+
+void
+GNENet::refreshElement(GUIGlObject* o) {
+ myGrid.removeAdditionalGLObject(o);
+ myGrid.addAdditionalGLObject(o);
+ update();
+}
+
+
+std::vector<GNEAttributeCarrier*>
+GNENet::retrieveAttributeCarriers(const std::set<GUIGlID>& ids, GUIGlObjectType type) {
+ std::vector<GNEAttributeCarrier*> result;
+ for (std::set<GUIGlID>::iterator it = ids.begin(); it != ids.end(); it++) {
+ GUIGlObject* object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(*it);
+ if (object != 0) {
+ std::string id = object->getMicrosimID();
+ GUIGlObjectStorage::gIDStorage.unblockObject(*it);
+ GNEAttributeCarrier* ac = 0;
+ switch (type) {
+ case GLO_JUNCTION:
+ ac = dynamic_cast<GNEJunction*>(object);
+ break;
+ case GLO_EDGE:
+ ac = dynamic_cast<GNEEdge*>(object);
+ break;
+ case GLO_LANE:
+ ac = dynamic_cast<GNELane*>(object);
+ break;
+ default:
+ break;
+ }
+ if (ac == 0) {
+ throw ProcessError("GUIGlObject does not match the declared type");
+ } else {
+ result.push_back(ac);
+ }
+ } else {
+ throw ProcessError("Attempted to retrieve non-existant GUIGlObject");
+ }
+ }
+ return result;
+}
+
+
+std::set<GUIGlID>
+GNENet::getGlIDs(GUIGlObjectType type) {
+ std::set<GUIGlID> result;
+ switch (type) {
+ case GLO_MAX: {
+ std::set<GUIGlObjectType> knownTypes;
+ knownTypes.insert(GLO_JUNCTION);
+ knownTypes.insert(GLO_EDGE);
+ knownTypes.insert(GLO_LANE);
+ // knownTypes.insert(GLO_TLLOGIC); makes no sense to include them
+ for (std::set<GUIGlObjectType>::const_iterator it = knownTypes.begin(); it != knownTypes.end(); it++) {
+ const std::set<GUIGlID> tmp = getGlIDs(*it);
+ result.insert(tmp.begin(), tmp.end());
+ }
+ break;
+ }
+ case GLO_JUNCTION:
+ for (GNEJunctions::const_iterator it = myJunctions.begin(); it != myJunctions.end(); it++) {
+ result.insert(it->second->getGlID());
+ }
+ break;
+ case GLO_EDGE:
+ for (GNEEdges::const_iterator it = myEdges.begin(); it != myEdges.end(); it++) {
+ result.insert(it->second->getGlID());
+ }
+ break;
+ case GLO_LANE: {
+ for (GNEEdges::const_iterator it = myEdges.begin(); it != myEdges.end(); it++) {
+ const std::set<GUIGlID> laneIDs = it->second->getLaneGlIDs();
+ for (std::set<GUIGlID>::const_iterator lid_it = laneIDs.begin(); lid_it != laneIDs.end(); lid_it++) {
+ result.insert(*lid_it);
+ }
+ }
+ break;
+ }
+ case GLO_TLLOGIC: {
+ // return all junctions which have a traffic light (we do not
+ // have a GUIGlObject for each traffic light)
+ for (GNEJunctions::const_iterator it = myJunctions.begin(); it != myJunctions.end(); it++) {
+ if (it->second->getNBNode()->isTLControlled()) {
+ result.insert(it->second->getGlID());
+ }
+ }
+ break;
+ }
+ default: // add other types once we know them
+ break;
+ }
+ return result;
+}
+
+
+void
+GNENet::computeEverything(GNEApplicationWindow* window, bool force) {
+ if (!myNeedRecompute) {
+ if (force) {
+ window->setStatusBarText("Forced computing junctions ...");
+ } else {
+ return;
+ }
+ } else {
+ window->setStatusBarText("Computing junctions ...");
+ }
+ // compute
+ OptionsCont& oc = OptionsCont::getOptions();
+ computeAndUpdate(oc);
+ WRITE_MESSAGE("\nFinished computing junctions.");
+
+ window->getApp()->endWaitCursor();
+ window->setStatusBarText("Finished computing junctions.");
+ update();
+}
+
+
+void
+GNENet::computeJunction(GNEJunction* junction) {
+ // recompute tl-logics
+ OptionsCont& oc = OptionsCont::getOptions();
+ NBEdgeCont& ec = myNetBuilder->getEdgeCont();
+ NBTrafficLightLogicCont& tllCont = getTLLogicCont();
+
+ NBNode* nbn = junction->getNBNode();
+ std::set<NBTrafficLightDefinition*> tldefs = nbn->getControllingTLS();
+ for (std::set<NBTrafficLightDefinition*>::iterator it = tldefs.begin(); it != tldefs.end(); it++) {
+ NBTrafficLightDefinition* def = *it;
+ def->setParticipantsInformation();
+ def->setTLControllingInformation(ec);
+ tllCont.computeSingleLogic(ec, oc, def);
+ }
+
+ // @todo compute connections etc...
+}
+
+
+void
+GNENet::joinSelectedJunctions(GNEUndoList* undoList) {
+ std::vector<GNEJunction*> selected = retrieveJunctions(true);
+ if (selected.size() < 2) {
+ return;
+ }
+ undoList->p_begin("Join selected junctions");
+
+ EdgeVector allIncoming;
+ EdgeVector allOutgoing;
+ std::set<NBNode*> cluster;
+ for (std::vector<GNEJunction*>::iterator it = selected.begin(); it != selected.end(); it++) {
+ cluster.insert((*it)->getNBNode());
+ const EdgeVector& incoming = (*it)->getNBNode()->getIncomingEdges();
+ allIncoming.insert(allIncoming.end(), incoming.begin(), incoming.end());
+ const EdgeVector& outgoing = (*it)->getNBNode()->getOutgoingEdges();
+ allOutgoing.insert(allOutgoing.end(), outgoing.begin(), outgoing.end());
+ }
+ // create new junction
+ Position pos;
+ bool setTL;
+ std::string id;
+ TrafficLightType type;
+ myNetBuilder->getNodeCont().analyzeCluster(cluster, id, pos, setTL, type);
+ // XXX this is not undone when calling 'undo'
+ myNetBuilder->getNodeCont().registerJoinedCluster(cluster);
+ GNEJunction* joined = createJunction(pos, undoList);
+ if (setTL) {
+ joined->setAttribute(SUMO_ATTR_TYPE, toString(NODETYPE_TRAFFIC_LIGHT), undoList);
+ // XXX ticket831
+ //joined-><getTrafficLight>->setAttribute(SUMO_ATTR_TYPE, toString(type), undoList);
+ }
+ // remap edges
+ for (EdgeVector::const_iterator it = allIncoming.begin(); it != allIncoming.end(); it++) {
+ GNEEdge* oldEdge = myEdges[(*it)->getID()];
+ remapEdge(oldEdge, oldEdge->getSource(), joined, undoList, true);
+ }
+ for (EdgeVector::const_iterator it = allOutgoing.begin(); it != allOutgoing.end(); it++) {
+ GNEEdge* oldEdge = myEdges[(*it)->getID()];
+ remapEdge(oldEdge, joined, oldEdge->getDest(), undoList, true);
+ }
+ // delete original junctions
+ for (std::vector<GNEJunction*>::iterator it = selected.begin(); it != selected.end(); it++) {
+ deleteJunction(*it, undoList);
+ }
+ joined->setAttribute(SUMO_ATTR_ID, id, undoList);
+ undoList->p_end();
+}
+
+
+void
+GNENet::removeSolitaryJunctions(GNEUndoList* undoList) {
+ undoList->p_begin("Clean junctions");
+ std::vector<GNEJunction*> toRemove;
+ for (GNEJunctions::const_iterator it = myJunctions.begin(); it != myJunctions.end(); it++) {
+ GNEJunction* junction = it->second;
+ if (junction->getNBNode()->getEdges().size() == 0) {
+ toRemove.push_back(junction);
+ }
+ }
+ for (std::vector<GNEJunction*>::iterator it = toRemove.begin(); it != toRemove.end(); ++it) {
+ deleteJunction(*it, undoList);
+ }
+ undoList->p_end();
+}
+
+
+void
+GNENet::replaceJunctionByGeometry(GNEJunction* junction, GNEUndoList* undoList) {
+ undoList->p_begin("Replace junction by geometry");
+ assert(junction->getNBNode()->checkIsRemovable());
+ std::vector<std::pair<NBEdge*, NBEdge*> > toJoin = junction->getNBNode()->getEdgesToJoin();
+ for (std::vector<std::pair<NBEdge*, NBEdge*> >::iterator j = toJoin.begin(); j != toJoin.end(); j++) {
+ GNEEdge* begin = myEdges[(*j).first->getID()];
+ GNEEdge* continuation = myEdges[(*j).second->getID()];
+ deleteEdge(begin, undoList);
+ deleteEdge(continuation, undoList);
+ GNEEdge* newEdge = createEdge(begin->getSource(), continuation->getDest(), begin, undoList, begin->getMicrosimID(), false, true);
+ PositionVector newShape = begin->getNBEdge()->getInnerGeometry();
+ newShape.push_back(junction->getNBNode()->getPosition());
+ newShape.append(continuation->getNBEdge()->getInnerGeometry());
+ newEdge->setAttribute(SUMO_ATTR_SHAPE, toString(newShape), undoList);
+ // @todo what about trafficlights at the end of oontinuation?
+ }
+ deleteJunction(junction, undoList);
+ undoList->p_end();
+}
+
+void
+GNENet::renameEdge(GNEEdge* edge, const std::string& newID) {
+ myEdges.erase(edge->getNBEdge()->getID());
+ myNetBuilder->getEdgeCont().rename(edge->getNBEdge(), newID);
+ edge->setMicrosimID(newID);
+ myEdges[newID] = edge;
+}
+
+
+void
+GNENet::changeEdgeEndpoints(GNEEdge* edge, const std::string& newSource, const std::string& newDest) {
+ NBNode* from = retrieveJunction(newSource)->getNBNode();
+ NBNode* to = retrieveJunction(newDest)->getNBNode();
+ edge->getNBEdge()->reinitNodes(from, to);
+ requireRecompute();
+ update();
+}
+
+
+void
+GNENet::renameJunction(GNEJunction* junction, const std::string& newID) {
+ myJunctions.erase(junction->getNBNode()->getID());
+ myNetBuilder->getNodeCont().rename(junction->getNBNode(), newID);
+ junction->setMicrosimID(newID);
+ myJunctions[newID] = junction;
+}
+
+
+void
+GNENet::addExplicitTurnaround(std::string id) {
+ myExplicitTurnarounds.insert(id);
+}
+
+
+void
+GNENet::removeExplicitTurnaround(std::string id) {
+ myExplicitTurnarounds.erase(id);
+}
+
+
+void
+GNENet::moveSelection(const Position& moveSrc, const Position& moveDest) {
+ Position delta = moveDest - moveSrc;
+ // move junctions
+ std::set<GNEJunction*> junctionSet;
+ std::vector<GNEJunction*> junctions = retrieveJunctions(true);
+ for (std::vector<GNEJunction*>::iterator it = junctions.begin(); it != junctions.end(); it++) {
+ Position newPos = (*it)->getNBNode()->getPosition() + delta;
+ (*it)->move(newPos);
+ junctionSet.insert(*it);
+ }
+
+ // move edge geometry (endpoints are already moved)
+ std::vector<GNEEdge*> edges = retrieveEdges(true);
+ for (std::vector<GNEEdge*>::iterator it = edges.begin(); it != edges.end(); it++) {
+ GNEEdge* edge = *it;
+ if (edge) {
+ if (junctionSet.count(edge->getSource()) > 0 &&
+ junctionSet.count(edge->getDest()) > 0) {
+ // edge and its endpoints are selected, move all the inner points as well
+ edge->moveGeometry(delta);
+ } else {
+ // move only geometry near mouse
+ edge->moveGeometry(moveSrc, delta, true);
+ }
+ }
+ }
+}
+
+
+void
+GNENet::finishMoveSelection(GNEUndoList* undoList) {
+ undoList->p_begin("move selection");
+ // register moved junctions
+ std::set<GNEJunction*> junctionSet;
+ std::vector<GNEJunction*> junctions = retrieveJunctions(true);
+ for (std::vector<GNEJunction*>::iterator it = junctions.begin(); it != junctions.end(); it++) {
+ (*it)->registerMove(undoList);
+ junctionSet.insert(*it);
+ }
+
+ // register moved edge geometry (endpoints are already moved)
+ std::vector<GNEEdge*> edges = retrieveEdges(true);
+ for (std::vector<GNEEdge*>::iterator it = edges.begin(); it != edges.end(); it++) {
+ GNEEdge* edge = *it;
+ if (edge) {
+ const std::string& newShape = edge->getAttribute(SUMO_ATTR_SHAPE);
+ edge->setAttribute(SUMO_ATTR_SHAPE, newShape, undoList);
+ }
+ }
+ undoList->p_end();
+}
+
+// ===========================================================================
+// private
+// ===========================================================================
+void
+GNENet::insertJunction(GNEJunction* junction) {
+ myNetBuilder->getNodeCont().insert(junction->getNBNode());
+ registerJunction(junction);
+}
+
+
+void
+GNENet::insertEdge(GNEEdge* edge) {
+ NBEdge* nbe = edge->getNBEdge();
+ myNetBuilder->getEdgeCont().insert(nbe); // should we ignore pruning double edges?
+ // if this edge was previouls extracted from the edgeContainer we have to
+ // rewire the nodes
+ nbe->getFromNode()->addOutgoingEdge(nbe);
+ nbe->getToNode()->addIncomingEdge(nbe);
+ registerEdge(edge);
+}
+
+
+GNEJunction*
+GNENet::registerJunction(GNEJunction* junction) {
+ junction->incRef("GNENet::registerJunction");
+ junction->setResponsible(false);
+ myJunctions[junction->getMicrosimID()] = junction;
+ myGrid.add(junction->getBoundary());
+ myGrid.addAdditionalGLObject(junction);
+ // @todo let Boundary class track z-coordinate natively
+ const SUMOReal z = junction->getNBNode()->getPosition().z();
+ if (z != 0) {
+ myZBoundary.add(z, Z_INITIALIZED);
+ }
+ update();
+ return junction;
+}
+
+
+GNEEdge*
+GNENet::registerEdge(GNEEdge* edge) {
+ edge->incRef("GNENet::registerEdge");
+ edge->setResponsible(false);
+ myEdges[edge->getMicrosimID()] = edge;
+ myGrid.add(edge->getBoundary());
+ myGrid.addAdditionalGLObject(edge);
+ update();
+ return edge;
+}
+
+
+void
+GNENet::deleteSingleJunction(GNEJunction* junction) {
+ myGrid.removeAdditionalGLObject(junction);
+ myJunctions.erase(junction->getMicrosimID());
+ myNetBuilder->getNodeCont().extract(junction->getNBNode());
+ junction->decRef("GNENet::deleteSingleJunction");
+ junction->setResponsible(true);
+ update();
+}
+
+
+void
+GNENet::deleteSingleEdge(GNEEdge* edge) {
+ myGrid.removeAdditionalGLObject(edge);
+ myEdges.erase(edge->getMicrosimID());
+ myNetBuilder->getEdgeCont().extract(
+ myNetBuilder->getDistrictCont(), edge->getNBEdge());
+ edge->decRef("GNENet::deleteSingleEdge");
+ edge->setResponsible(true);
+ // invalidate junction logic
+ update();
+}
+
+
+void
+GNENet::update() {
+ if (myUpdateTarget) {
+ myUpdateTarget->update();
+ }
+}
+
+
+void
+GNENet::reserveEdgeID(const std::string& id) {
+ myEdgeIDSupplier.avoid(id);
+}
+
+
+void
+GNENet::reserveJunctionID(const std::string& id) {
+ myJunctionIDSupplier.avoid(id);
+}
+
+
+void
+GNENet::computeAndUpdate(OptionsCont& oc) {
+ // make sure we only add turn arounds to edges which currently exist within the network
+ std::set<std::string> liveExplicitTurnarounds;
+ for (std::set<std::string>::const_iterator it = myExplicitTurnarounds.begin(); it != myExplicitTurnarounds.end(); it++) {
+ if (myEdges.count(*it) > 0) {
+ liveExplicitTurnarounds.insert(*it);
+ }
+ }
+ myNetBuilder->compute(oc, liveExplicitTurnarounds, false);
+ // update precomputed lane geometries
+ for (GNEEdges::const_iterator it = myEdges.begin(); it != myEdges.end(); it++) {
+ it->second->updateLaneGeometries();
+ }
+ for (GNEJunctions::const_iterator it = myJunctions.begin(); it != myJunctions.end(); it++) {
+ it->second->setLogicValid(true);
+ }
+ myNeedRecompute = false;
+}
+/****************************************************************************/
diff --git a/src/netedit/GNENet.h b/src/netedit/GNENet.h
new file mode 100644
index 0000000..0d14e25
--- /dev/null
+++ b/src/netedit/GNENet.h
@@ -0,0 +1,492 @@
+/****************************************************************************/
+/// @file GNENet.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNENet.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The lop level container for GNE-network-components such as GNEEdge and
+// GNEJunction. Contains an internal instances of NBNetBuilder GNE components
+// wrap netbuild-components of this underlying NBNetBuilder and supply
+// visualisation and editing capabilities (adapted from GUINet)
+//
+// Workflow (rough draft)
+// wrap NB-components
+// do netedit stuff
+// call NBNetBuilder::buildLoaded to save results
+//
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNENet_h
+#define GNENet_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <utils/gui/globjects/GLIncludes.h>
+#include <netbuild/NBNetBuilder.h>
+#include <utils/geom/Boundary.h>
+#include <utils/geom/Position.h>
+#include <foreign/rtree/SUMORTree.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/globjects/GUIGlObject.h>
+#include <utils/gui/globjects/GUIShapeContainer.h>
+#include <utils/common/StringUtils.h>
+#include <utils/common/RGBColor.h>
+#include <utils/common/IDSupplier.h>
+#include <utils/options/OptionsCont.h>
+#include <utils/iodevices/OutputDevice.h>
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEApplicationWindow;
+class GNEAttributeCarrier;
+class GNEEdge;
+class GNELane;
+class GNEJunction;
+class GNEUndoList;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNENet
+ * @brief A NBNetBuilder extended by visualisation and editing capabilities
+ */
+class GNENet : public GUIGlObject {
+
+ friend class GNEChange_Junction;
+ friend class GNEChange_Edge;
+
+public:
+ static const RGBColor selectionColor;
+ static const RGBColor selectedLaneColor;
+
+ /** @brief Constructor
+ * @param[in] netbuilder the netbuilder which may already have been filled
+ * GNENet becomes responsible for cleaning this up
+ **/
+ GNENet(NBNetBuilder* netBuilder);
+
+
+ /// @brief Destructor
+ ~GNENet() ;
+
+
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns an own parameter window
+ *
+ * @param[in] app The application needed to build the parameter window
+ * @param[in] parent The parent window needed to build the parameter window
+ * @return The built parameter window
+ * @see GUIGlObject::getParameterWindow
+ */
+ GUIParameterTableWindow* getParameterWindow(
+ GUIMainWindow& app, GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Returns the boundary to which the view shall be centered in order to show the object
+ *
+ * @return The boundary the object is within
+ * @see GUIGlObject::getCenteringBoundary
+ */
+ Boundary getCenteringBoundary() const ;
+
+
+ /** @brief Returns the Z boundary (stored in the x() coordinate)
+ * values of 0 do not affect the boundary
+ */
+ const Boundary& getZBoundary() const {
+ return myZBoundary;
+ }
+
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+
+ /// returns the bounder of the network
+ const Boundary& getBoundary() const;
+
+
+ /** @brief Returns the RTree used for visualisation speed-up
+ * @return The visualisation speed-up
+ */
+ SUMORTree& getVisualisationSpeedUp() {
+ return myGrid;
+ }
+
+
+ /** @brief Returns the RTree used for visualisation speed-up
+ * @return The visualisation speed-up
+ */
+ const SUMORTree& getVisualisationSpeedUp() const {
+ return myGrid;
+ }
+
+
+ /** @brief creates a new junction
+ * @param[in] position The position of the new junction
+ * @param[in] undoList The undolist in which to mark changes
+ * @return the new junction
+ */
+ GNEJunction* createJunction(const Position& pos, GNEUndoList* undoList);
+
+ /** @brief creates a new edge (unless an edge with the same geometry already
+ * exists)
+ * @param[in] src The starting junction
+ * @param[in] dest The ending junction
+ * @param[in] tpl The template edge from which to copy attributes (including lane attrs)
+ * @param[in] undoList The undoList in which to mark changes
+ * @param[in] suggestedName
+ * @param[in] wasSplit Whether the edge was created from a split
+ * @param[in] allowDuplicateGeom Whether to create the edge even though another edge with the same geometry exists
+ * @return The newly created edge or 0 if no edge was created
+ */
+ GNEEdge* createEdge(
+ GNEJunction* src,
+ GNEJunction* dest,
+ GNEEdge* tpl,
+ GNEUndoList* undoList,
+ const std::string& suggestedName = "",
+ bool wasSplit = false,
+ bool allowDuplicateGeom = false);
+
+
+ /** @brief removes junction and all incident edges
+ * @param[in] junction The junction to be removed
+ * @param[in] undoList The undolist in which to mark changes
+ */
+ void deleteJunction(GNEJunction* junction, GNEUndoList* undoList);
+
+
+ /** @brief removes edge
+ * @param[in] edge The edge to be removed
+ * @param[in] undoList The undolist in which to mark changes
+ */
+ void deleteEdge(GNEEdge* edge, GNEUndoList* undoList);
+
+ /** @brief removes lane
+ * @param[in] lane The lane to be removed
+ * @param[in] undoList The undolist in which to mark changes
+ */
+ void deleteLane(GNELane* lane, GNEUndoList* undoList);
+
+ /** @brief duplicates lane
+ * @param[in] lane The lane to be duplicated
+ * @param[in] undoList The undolist in which to mark changes
+ */
+ void duplicateLane(GNELane* lane, GNEUndoList* undoList);
+
+ /** @brief removes geometry when pos is close to a geometry node, deletes
+ * the whole edge otherwise
+ * @param[in] edge The edge to be removed
+ * @param[in] pos The position that was clicked upon
+ * @param[in] undoList The undolist in which to mark changes
+ */
+ void deleteGeometryOrEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList);
+
+
+ /** @brief split edge at position by inserting a new junction
+ * @param[in] edge The edge to be split
+ * @param[in] pos The position on which to insert the new junction
+ * @return The new junction
+ */
+ GNEJunction* splitEdge(GNEEdge* edge, const Position& pos, GNEUndoList* undoList, GNEJunction* newJunction = 0);
+
+
+ /** @brief split all edges at position by inserting one new junction
+ * @param[in] edges The edges to be split
+ * @param[in] pos The position on which to insert the new junction
+ */
+ void splitEdgesBidi(const std::set<GNEEdge*>& edges, const Position& pos, GNEUndoList* undoList);
+
+ /** @brief reverse edge
+ * @param[in] edge The edge to be reversed
+ */
+ void reverseEdge(GNEEdge* edge, GNEUndoList* undoList);
+
+ /** @brief add reversed edge
+ * @param[in] edge The edge of which to add the reverse
+ * @return Return the new edge or 0
+ */
+ GNEEdge* addReversedEdge(GNEEdge* edge, GNEUndoList* undoList);
+
+ /** @brief merge the given junctions
+ * edges between the given junctions will be deleted
+ * @param[in] moved The junction that will be eliminated
+ * @param[in] target The junction that will be enlarged
+ * @param[in] undoList The undo list with which to register changes
+ */
+ void mergeJunctions(GNEJunction* moved, GNEJunction* target, GNEUndoList* undoList);
+
+
+ /** @brief get junction by id
+ * @param[in] id The id of the desired junction
+ * @param[in] failHard Whether attempts to retrieve a nonexisting junction
+ * should result in an exception
+ * @throws UnknownElement
+ */
+ GNEJunction* retrieveJunction(const std::string& id, bool failHard = true);
+
+
+ /** @brief get edge by id
+ * @param[in] id The id of the desired edge
+ * @param[in] failHard Whether attempts to retrieve a nonexisting junction
+ * should result in an exception
+ * @throws UnknownElement
+ */
+ GNEEdge* retrieveEdge(const std::string& id, bool failHard = true);
+
+
+ /** @brief get the attribute carriers based on GlIDs
+ * @param[in] ids The set of ids for which to retrive the ACs
+ * @param[in] type The GUI-type of the objects with the given ids
+ * @throws InvalidArgument if any given id does not match the declared type
+ */
+ std::vector<GNEAttributeCarrier*> retrieveAttributeCarriers(
+ const std::set<GUIGlID>& ids, GUIGlObjectType type);
+
+ /** @brief return all edges
+ * @param[in] onlySelected Whether to return only selected edges
+ * */
+ std::vector<GNEEdge*> retrieveEdges(bool onlySelected = false);
+
+ /** @brief return all lanes
+ * @param[in] onlySelected Whether to return only selected lanes
+ * */
+ std::vector<GNELane*> retrieveLanes(bool onlySelected = false);
+
+ /** @brief return all junctions
+ * @param[in] onlySelected Whether to return only selected junctions
+ * */
+ std::vector<GNEJunction*> retrieveJunctions(bool onlySelected = false);
+
+ /** @brief save the network
+ * @param[in] oc The OptionsCont which knows how and where to save
+ */
+ void save(OptionsCont& oc);
+
+ /** @brief save plain xml representation of the network (and nothing else)
+ * @param[in] oc The OptionsCont which knows how and where to save
+ */
+ void savePlain(OptionsCont& oc);
+
+ /** @brief save log of joined junctions (and nothing else)
+ * @param[in] oc The OptionsCont which knows how and where to save
+ */
+ void saveJoined(OptionsCont& oc);
+
+ /// @brief Set the target to be notified of network changes
+ void setUpdateTarget(FXWindow* updateTarget) {
+ myUpdateTarget = updateTarget;
+ }
+
+ /// @brief refreshes boundary information for o and update
+ void refreshElement(GUIGlObject* o);
+
+ /// @brief updates the map and reserves new id
+ void renameEdge(GNEEdge* edge, const std::string& newID);
+
+ /// @brief updates the map and reserves new id
+ void renameJunction(GNEJunction* junction, const std::string& newID);
+
+ /// @brief modifies endpoins of the given edge
+ void changeEdgeEndpoints(GNEEdge* edge, const std::string& newSourceID, const std::string& newDestID);
+
+ /// @brief returns the tllcont of the underlying netbuilder
+ NBTrafficLightLogicCont& getTLLogicCont() {
+ return myNetBuilder->getTLLogicCont();
+ };
+
+ /* @brief get ids of currently active objects
+ * param[in] type If type != GLO_MAX, get active ids of that type, otherwise get all active ids
+ */
+ std::set<GUIGlID> getGlIDs(GUIGlObjectType type = GLO_MAX);
+
+ /// @brief recompute the network and update lane geometries
+ void computeAndUpdate(OptionsCont& oc);
+
+ /* @brief trigger full netbuild computation
+ * param[in] window The window to inform about delay
+ * param[in] force Whether to force recomputation even if not needed
+ */
+ void computeEverything(GNEApplicationWindow* window, bool force = false);
+
+ /* @brief join selected junctions
+ * @note difference to mergeJunctions:
+ * - can join more than 2
+ * - connected edges will keep their geometry (big junction shape is created)
+ * - no hirarchy: if any junction has a traffic light than the resuling junction will
+ */
+ void joinSelectedJunctions(GNEUndoList* undoList);
+
+ /* @brief removes junctions that have no edges
+ */
+ void removeSolitaryJunctions(GNEUndoList* undoList);
+
+ /* @brief replace the selected junction by geometry node(s)
+ * and merge the edges
+ */
+ void replaceJunctionByGeometry(GNEJunction* junction, GNEUndoList* undoList);
+
+ /* @brief trigger recomputation of junction shape and logic
+ * param[in] window The window to inform about delay
+ */
+ void computeJunction(GNEJunction* junction);
+
+
+ /// @brief inform the net about the need for recomputation
+ inline void requireRecompute() {
+ myNeedRecompute = true;
+ }
+
+
+ FXApp* getApp() {
+ return myUpdateTarget->getApp();
+ }
+
+ /// @brief add edge id to the list of explicit turnarounds
+ void addExplicitTurnaround(std::string id);
+
+ /// @brief remove edge id from the list of explicit turnarounds
+ void removeExplicitTurnaround(std::string id);
+
+ /* @brief move all selected junctions and edges
+ * @note: inner points of an edge will only be modified if the edge and its endpoints are selected
+ */
+ void moveSelection(const Position& moveSrc, const Position& moveDest);
+
+ /// @brief register changes to junction and edge positions with the undoList
+ void finishMoveSelection(GNEUndoList* undoList);
+
+ ShapeContainer& getShapeContainer() {
+ return myShapeContainer;
+ }
+
+private:
+ /// the rtree which contains all GUIGlObjects (so named for historical reasons)
+ SUMORTree myGrid;
+
+ /// @brief The window to be notofied of about changes
+ FXWindow* myUpdateTarget;
+
+ /// @brief The internal netbuilder
+ NBNetBuilder* myNetBuilder;
+
+ /// @name internal GNE components
+ //@{
+
+ typedef std::map<std::string, GNEEdge*> GNEEdges;
+ typedef std::map<std::string, GNEJunction*> GNEJunctions;
+
+ GNEEdges myEdges;
+ GNEJunctions myJunctions;
+
+ /// @name ID Suppliers for newly created edges and junctions
+ // @{
+ IDSupplier myEdgeIDSupplier;
+ IDSupplier myJunctionIDSupplier;
+ // @}
+
+ /// the container for additional pois and polygons
+ GUIShapeContainer myShapeContainer;
+
+ /// @brief list of edge ids for which turn-arounds must be added explicitly
+ std::set<std::string> myExplicitTurnarounds;
+
+ /// @brief whether the net needs recomputation
+ bool myNeedRecompute;
+
+
+private:
+
+ /// @brief Initialises the detector wrappers
+ void initDetectors();
+
+ /// @brief Initialises the tl-logic map and wrappers
+ void initTLMap();
+
+ /// @brief inserts a single junction into the net and into the underlying
+ //netbuild-container
+ void insertJunction(GNEJunction* junction);
+
+ /// @brief inserts a single edge into the net and into the underlying
+ //netbuild-container
+ void insertEdge(GNEEdge* edge);
+
+ /// @brief registers a junction with GNENet containers
+ GNEJunction* registerJunction(GNEJunction* junction);
+
+ /// @brief registers an edge with GNENet containers
+ GNEEdge* registerEdge(GNEEdge* edge);
+
+ /// @brief deletes a single junction
+ void deleteSingleJunction(GNEJunction* junction);
+
+ /// @brief deletes a single edge
+ void deleteSingleEdge(GNEEdge* edge);
+
+ /// @brief notify myUpdateTarget
+ void update();
+
+ void reserveEdgeID(const std::string& id);
+
+ void reserveJunctionID(const std::string& id);
+
+ /* @brief helper function for changing the endpoints of a junction
+ * @param[in] keepEndpoints Whether to keep the original edge endpoints (influences junction shape)
+ */
+ void remapEdge(GNEEdge* oldEdge, GNEJunction* from, GNEJunction* to, GNEUndoList* undoList, bool keepEndpoints = false);
+
+ /// @brief the z boundary (stored in the x-coordinate), values of 0 are ignored
+ Boundary myZBoundary;
+
+ /// @brief marker for whether the z-boundary is initialized
+ static const SUMOReal Z_INITIALIZED;
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEPOI.cpp b/src/netedit/GNEPOI.cpp
new file mode 100644
index 0000000..3bfce7d
--- /dev/null
+++ b/src/netedit/GNEPOI.cpp
@@ -0,0 +1,222 @@
+/****************************************************************************/
+/// @file GNEPOI.cpp
+/// @author Jakob Erdmann
+/// @date Sept 2012
+/// @version $Id: GNEPOI.cpp 19234 2015-11-02 11:26:19Z behrisch $
+///
+// A class for visualizing and editing POIS in netedit (adapted from
+// GUIPointOfInterest and NLHandler)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/foxtools/MFXImageHelper.h>
+#include <utils/geom/Position.h>
+#include <utils/geom/GeomConvHelper.h>
+#include <utils/geom/GeoConvHelper.h>
+#include <utils/common/MsgHandler.h>
+#include <utils/common/TplConvert.h>
+#include <utils/xml/XMLSubSys.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <netimport/NIImporter_SUMO.h>
+#include <netwrite/NWWriter_SUMO.h>
+#include "GNENet.h"
+#include "GNEEdge.h"
+#include "GNEUndoList.h"
+#include "GNEViewNet.h"
+#include "GNEChange_Attribute.h"
+#include "GNEPOI.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// static members
+// ===========================================================================
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEPOI::GNEPOI(const std::string& id, const std::string& type,
+ const RGBColor& color, SUMOReal layer, SUMOReal angle, const std::string& imgFile,
+ const Position& pos, SUMOReal width, SUMOReal height) :
+ GUIPointOfInterest(id, type, color, pos, layer, angle, imgFile, width, height),
+ GNEAttributeCarrier(SUMO_TAG_POI)
+{}
+
+
+GNEPOI::~GNEPOI() { }
+
+
+//void
+//GNEPOI::move(Position pos) {
+// const Position orig = myNBNode.getPosition();
+// setPosition(pos);
+// myNet->refreshElement(this);
+// const EdgeVector& incident = getNBNode()->getEdges();
+// for (EdgeVector::const_iterator it = incident.begin(); it != incident.end(); it++) {
+// GNEEdge *edge = myNet->retrieveEdge((*it)->getID());
+// edge->updateJunctionPosition(this, orig);
+// }
+//}
+//
+//
+//void
+//GNEPOI::registerMove(GNEUndoList *undoList) {
+// Position newPos = myNBNode.getPosition();
+// std::string newPosValue = getAttribute(SUMO_ATTR_POSITION);
+// // actually the geometry is already up to date
+// // set the restore point to the end of the last change-set
+// setPosition(myOrigPos);
+// // do not execute the command to avoid changing the edge geometry twice
+// undoList->add(new GNEChange_Attribute(this, SUMO_ATTR_POSITION, newPosValue), false);
+// setPosition(newPos);
+//}
+
+
+std::string
+GNEPOI::getAttribute(SumoXMLAttr key) const {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return getMicrosimID();
+ break;
+ case SUMO_ATTR_POSITION:
+ return toString((Position&) * this);
+ break;
+ case SUMO_ATTR_TYPE:
+ return toString(PointOfInterest::getType());
+ break;
+ default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNEPOI::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* /* undoList */) {
+ if (value == getAttribute(key)) {
+ return; //avoid needless changes, later logic relies on the fact that attributes have changed
+ }
+ //switch (key) {
+ //case SUMO_ATTR_ID:
+ //case SUMO_ATTR_POSITION:
+ //case GNE_ATTR_MODIFICATION_STATUS:
+ // undoList->add(new GNEChange_Attribute(this, key, value), true);
+ // break;
+ //case SUMO_ATTR_TYPE: {
+ // undoList->p_begin("change junction type");
+ // bool resetConnections = false;
+ // if (SUMOXMLDefinitions::NodeTypes.get(value) == NODETYPE_TRAFFIC_LIGHT) {
+ // // create new traffic light
+ // undoList->add(new GNEChange_TLS(this, 0, true), true);
+ // } else if (myNBNode.getType() == NODETYPE_TRAFFIC_LIGHT) {
+ // // delete old traffic light
+ // // make a copy because we will modify the original
+ // const std::set<NBTrafficLightDefinition*> tls = myNBNode.getControllingTLS();
+ // for (std::set<NBTrafficLightDefinition*>::iterator it=tls.begin(); it!=tls.end(); it++) {
+ // undoList->add(new GNEChange_TLS(this, *it, false), true);
+ // }
+ // }
+ // // must be the final step, otherwise we do not know which traffic lights to remove via GNEChange_TLS
+ // undoList->add(new GNEChange_Attribute(this, key, value), true);
+ // undoList->p_end();
+ // break;
+ //}
+ //default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ //}
+}
+
+
+bool
+GNEPOI::isValid(SumoXMLAttr key, const std::string& /* value */) {
+ //switch (key) {
+ //case SUMO_ATTR_ID:
+ // return isValidID(value) && myNet->retrieveJunction(value, false) == 0;
+ // break;
+ //case SUMO_ATTR_TYPE:
+ // return SUMOXMLDefinitions::NodeTypes.hasString(value);
+ // break;
+ //case SUMO_ATTR_POSITION:
+ // bool ok;
+ // return GeomConvHelper::parseShapeReporting(value, "user-supplied position", 0, ok, false).size() == 1;
+ // break;
+ //default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ //}
+}
+
+void
+GNEPOI::saveToFile(const std::string& file) {
+ OutputDevice& out = OutputDevice::getDevice(file);
+ out.writeXMLHeader("pois");
+ GeoConvHelper::writeLocation(out);
+ const std::vector<GUIGlObject_AbstractAdd*>& additionals = GUIGlObject_AbstractAdd::getObjectList();
+ for (std::vector<GUIGlObject_AbstractAdd*>::const_iterator it = additionals.begin(); it != additionals.end(); ++it) {
+ PointOfInterest* poi = dynamic_cast<PointOfInterest*>(*it);
+ if (poi != 0) {
+ poi->writeXML(out);
+ }
+ }
+ out.close();
+ WRITE_MESSAGE(" " + toString(additionals.size()) + " POIs saved to '" + file + "'.");
+}
+
+// ===========================================================================
+// private
+// ===========================================================================
+
+void
+GNEPOI::setAttribute(SumoXMLAttr key, const std::string& /* value */) {
+ //switch (key) {
+ //case SUMO_ATTR_ID:
+ // myNet->renameJunction(this, value);
+ // break;
+ //case SUMO_ATTR_TYPE: {
+ // myNBNode.reinit(myNBNode.getPosition(), SUMOXMLDefinitions::NodeTypes.get(value));
+ // break;
+ //}
+ //case SUMO_ATTR_POSITION:
+ // bool ok;
+ // myOrigPos = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, false)[0];
+ // move(myOrigPos);
+ // break;
+ //default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ //}
+}
+
+/****************************************************************************/
diff --git a/src/netedit/GNEPOI.h b/src/netedit/GNEPOI.h
new file mode 100644
index 0000000..6111d0f
--- /dev/null
+++ b/src/netedit/GNEPOI.h
@@ -0,0 +1,117 @@
+/****************************************************************************/
+/// @file GNEPOI.h
+/// @author Jakob Erdmann
+/// @date Sept 2012
+/// @version $Id: GNEPOI.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A class for visualizing and editing POIS in netedit (adapted from
+// GUIPointOfInterest and NLHandler)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEPOI_h
+#define GNEPOI_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <utils/gui/globjects/GUIPointOfInterest.h>
+#include <utils/xml/SUMOSAXHandler.h>
+
+#include "GNEAttributeCarrier.h"
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GeoConvHelper;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEPOI
+ *
+ * In the case the represented junction's shape is empty, the boundary
+ * is computed using the junction's position to which an offset of 1m to each
+ * side is added.
+ */
+class GNEPOI : public GUIPointOfInterest, public GNEAttributeCarrier {
+
+ //friend class GNEChange_POI;
+
+public:
+ /** @brief Constructor
+ */
+ GNEPOI(const std::string& id, const std::string& type,
+ const RGBColor& color, SUMOReal layer, SUMOReal angle, const std::string& imgFile,
+ const Position& pos, SUMOReal width, SUMOReal height);
+
+
+ /// @brief Destructor
+ virtual ~GNEPOI() ;
+
+
+ /** @brief reposition the node at pos and informs the edges
+ * @param[in] pos The new position
+ * @note: those operations are not added to the undoList. This is handled in
+ * registerMove to avoids merging lots of tiny movements
+ */
+ //void move(Position pos);
+
+
+ /// @brief registers completed movement with the undoList
+ //void registerMove(GNEUndoList *undoList);
+
+
+ //@name inherited from GNEAttributeCarrier
+ //@{
+ std::string getAttribute(SumoXMLAttr key) const;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ */
+ void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
+
+ bool isValid(SumoXMLAttr key, const std::string& value);
+ //@}
+
+ /// @brief save POIs to file
+ static void saveToFile(const std::string& file);
+
+private:
+ /// @brief Invalidated copy constructor.
+ GNEPOI(const GNEPOI&);
+
+ /// @brief Invalidated assignment operator.
+ GNEPOI& operator=(const GNEPOI&);
+
+ void setAttribute(SumoXMLAttr key, const std::string& value);
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEPoly.cpp b/src/netedit/GNEPoly.cpp
new file mode 100644
index 0000000..780492e
--- /dev/null
+++ b/src/netedit/GNEPoly.cpp
@@ -0,0 +1,267 @@
+/****************************************************************************/
+/// @file GNEPoly.cpp
+/// @author Jakob Erdmann
+/// @date Sept 2012
+/// @version $Id: GNEPoly.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing and editing POIS in netedit (adapted from
+// GUIPolygon and NLHandler)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/foxtools/MFXImageHelper.h>
+#include <utils/geom/Position.h>
+#include <utils/geom/GeomConvHelper.h>
+#include <utils/geom/GeoConvHelper.h>
+#include <utils/common/MsgHandler.h>
+#include <utils/common/TplConvert.h>
+#include <utils/xml/XMLSubSys.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/windows/GUIMainWindow.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/div/GUIParameterTableWindow.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/globjects/GUIGLObjectPopupMenu.h>
+#include <netimport/NIImporter_SUMO.h>
+#include <netwrite/NWWriter_SUMO.h>
+#include "GNENet.h"
+#include "GNEEdge.h"
+#include "GNEUndoList.h"
+#include "GNEViewNet.h"
+#include "GNEChange_Attribute.h"
+#include "GNEPoly.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// static members
+// ===========================================================================
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNEPoly::GNEPoly(GNENet* net, GNEJunction* junction, const std::string& id, const std::string& type, const PositionVector& shape, bool fill,
+ const RGBColor& color, SUMOReal layer,
+ SUMOReal angle, const std::string& imgFile) :
+ GUIPolygon(id, type, color, shape, fill, layer, angle, imgFile),
+ GNEAttributeCarrier(SUMO_TAG_POLY),
+ myNet(net),
+ myJunction(junction)
+{}
+
+
+GNEPoly::~GNEPoly() { }
+
+
+void
+GNEPoly::drawGL(const GUIVisualizationSettings& s) const {
+ const SUMOReal hintSize = 0.8;
+ GUIPolygon::drawGL(s);
+ // draw geometry hints
+ if (s.scale * hintSize > 1.) { // check whether it is not too small
+ RGBColor current = GLHelper::getColor();
+ RGBColor darker = current.changedBrightness(-32);
+ GLHelper::setColor(darker);
+ glPushName(getGlID());
+ for (int i = 0; i < (int)myShape.size() - 1; i++) {
+ Position pos = myShape[i];
+ glPushMatrix();
+ glTranslated(pos.x(), pos.y(), GLO_POLYGON + 0.01);
+ GLHelper:: drawFilledCircle(hintSize, 32);
+ glPopMatrix();
+ }
+ glPopName();
+ }
+
+}
+
+
+GUIGLObjectPopupMenu*
+GNEPoly::getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) {
+ GUIGLObjectPopupMenu* ret = GUIPolygon::getPopUpMenu(app, parent);
+ new FXMenuSeparator(ret);
+ new FXMenuCommand(ret, "Set custom shape (ENTER)", 0, &app, MID_GNE_HOTKEY_ENTER);
+ new FXMenuCommand(ret, "Discard custom shape (ESC)", 0, &app, MID_GNE_ABORT);
+ new FXMenuCommand(ret, "Simplify Shape\t\tReplace shape with a rectangle", 0, &parent, MID_GNE_SIMPLIFY_SHAPE);
+ new FXMenuCommand(ret, "Remove geometry point\t\tRemove the closest geometry point", 0, &parent, MID_GNE_DELETE_GEOMETRY);
+ // let the GNEViewNet store the popup position
+ (dynamic_cast<GNEViewNet&>(parent)).markPopupPosition();
+ return ret;
+}
+
+
+Position
+GNEPoly::moveGeometry(const Position& oldPos, const Position& newPos, bool relative) {
+ PositionVector geom = myShape;
+ bool changed = GNEEdge::changeGeometry(geom, getMicrosimID(), oldPos, newPos, relative, true);
+ if (changed) {
+ myShape = geom;
+ myNet->refreshElement(this);
+ return newPos;
+ } else {
+ return oldPos;
+ }
+}
+
+
+void
+GNEPoly::simplifyShape() {
+ const Boundary b = myShape.getBoxBoundary();
+ myShape.clear();
+ myShape.push_back(Position(b.xmin(), b.ymin()));
+ myShape.push_back(Position(b.xmin(), b.ymax()));
+ myShape.push_back(Position(b.xmax(), b.ymax()));
+ myShape.push_back(Position(b.xmax(), b.ymin()));
+ myShape.push_back(myShape[0]);
+}
+
+
+void
+GNEPoly::deleteGeometryNear(const Position& pos) {
+ if (myShape.size() <= 3) {
+ return;
+ }
+ int index = myShape.indexOfClosest(pos);
+ if ((index == 0 || index == (int)myShape.size() - 1) && myShape.front() == myShape.back()) {
+ myShape.erase(myShape.begin());
+ myShape.erase(myShape.end() - 1);
+ myShape.push_back(myShape.front());
+ } else {
+ myShape.erase(myShape.begin() + index);
+ }
+}
+
+
+std::string
+GNEPoly::getAttribute(SumoXMLAttr key) const {
+ switch (key) {
+ case SUMO_ATTR_ID:
+ return getMicrosimID();
+ break;
+ case SUMO_ATTR_TYPE:
+ return toString(Polygon::getType());
+ break;
+ default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ }
+}
+
+
+void
+GNEPoly::setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* /* undoList */) {
+ if (value == getAttribute(key)) {
+ return; //avoid needless changes, later logic relies on the fact that attributes have changed
+ }
+ //switch (key) {
+ //case SUMO_ATTR_ID:
+ //case SUMO_ATTR_POSITION:
+ //case GNE_ATTR_MODIFICATION_STATUS:
+ // undoList->add(new GNEChange_Attribute(this, key, value), true);
+ // break;
+ //case SUMO_ATTR_TYPE: {
+ // undoList->p_begin("change junction type");
+ // bool resetConnections = false;
+ // if (SUMOXMLDefinitions::NodeTypes.get(value) == NODETYPE_TRAFFIC_LIGHT) {
+ // // create new traffic light
+ // undoList->add(new GNEChange_TLS(this, 0, true), true);
+ // } else if (myNBNode.getType() == NODETYPE_TRAFFIC_LIGHT) {
+ // // delete old traffic light
+ // // make a copy because we will modify the original
+ // const std::set<NBTrafficLightDefinition*> tls = myNBNode.getControllingTLS();
+ // for (std::set<NBTrafficLightDefinition*>::iterator it=tls.begin(); it!=tls.end(); it++) {
+ // undoList->add(new GNEChange_TLS(this, *it, false), true);
+ // }
+ // }
+ // // must be the final step, otherwise we do not know which traffic lights to remove via GNEChange_TLS
+ // undoList->add(new GNEChange_Attribute(this, key, value), true);
+ // undoList->p_end();
+ // break;
+ //}
+ //default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ //}
+}
+
+
+bool
+GNEPoly::isValid(SumoXMLAttr key, const std::string& /* value */) {
+ //switch (key) {
+ //case SUMO_ATTR_ID:
+ // return isValidID(value) && myNet->retrieveJunction(value, false) == 0;
+ // break;
+ //case SUMO_ATTR_TYPE:
+ // return SUMOXMLDefinitions::NodeTypes.hasString(value);
+ // break;
+ //case SUMO_ATTR_POSITION:
+ // bool ok;
+ // return GeomConvHelper::parseShapeReporting(value, "user-supplied position", 0, ok, false).size() == 1;
+ // break;
+ //default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ //}
+}
+
+
+// ===========================================================================
+// private
+// ===========================================================================
+
+void
+GNEPoly::setAttribute(SumoXMLAttr key, const std::string& /* value */) {
+ //switch (key) {
+ //case SUMO_ATTR_ID:
+ // myNet->renameJunction(this, value);
+ // break;
+ //case SUMO_ATTR_TYPE: {
+ // myNBNode.reinit(myNBNode.getPosition(), SUMOXMLDefinitions::NodeTypes.get(value));
+ // break;
+ //}
+ //case SUMO_ATTR_POSITION:
+ // bool ok;
+ // myOrigPos = GeomConvHelper::parseShapeReporting(value, "netedit-given", 0, ok, false)[0];
+ // move(myOrigPos);
+ // break;
+ //default:
+ throw InvalidArgument("POI attribute '" + toString(key) + "' not allowed");
+ //}
+}
+
+
+// ===========================================================================
+// GNEPolyHandler methods
+// ===========================================================================
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNEPoly.h b/src/netedit/GNEPoly.h
new file mode 100644
index 0000000..9f52f07
--- /dev/null
+++ b/src/netedit/GNEPoly.h
@@ -0,0 +1,208 @@
+/****************************************************************************/
+/// @file GNEPoly.h
+/// @author Jakob Erdmann
+/// @date Sept 2012
+/// @version $Id: GNEPoly.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A class for visualizing and editing POIS in netedit (adapted from
+// GUIPolygon and NLHandler)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEPoly_h
+#define GNEPoly_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utility>
+#include <utils/gui/globjects/GUIPolygon.h>
+#include <utils/xml/SUMOSAXHandler.h>
+
+#include "GNEAttributeCarrier.h"
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GeoConvHelper;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEPoly
+ *
+ * In the case the represented junction's shape is empty, the boundary
+ * is computed using the junction's position to which an offset of 1m to each
+ * side is added.
+ */
+class GNEPoly : public GUIPolygon, public GNEAttributeCarrier {
+
+ //friend class GNEChange_POI;
+public:
+ class GNEPolyHandler : public SUMOSAXHandler {
+ public:
+
+ GNEPolyHandler(GNENet* net);
+ virtual ~GNEPolyHandler();
+ /// @name inherited from GenericSAXHandler
+ //@{
+
+ /** @brief Called on the opening of a tag;
+ *
+ * @param[in] element ID of the currently opened element
+ * @param[in] attrs Attributes within the currently opened element
+ * @exception ProcessError If something fails
+ * @see GenericSAXHandler::myStartElement
+ */
+ virtual void myStartElement(int element,
+ const SUMOSAXAttributes& attrs);
+
+
+ /** @brief Called when a closing tag occurs
+ *
+ * @param[in] element ID of the currently opened element
+ * @exception ProcessError If something fails
+ * @see GenericSAXHandler::myEndElement
+ */
+ virtual void myEndElement(int element);
+ //@}
+
+ int getNumLoaded() {
+ return myNumLoaded;
+ }
+
+ private:
+ GNENet* myNet;
+
+ /// @brief The coordinate transformation which was used compute the POI coordinates
+ GeoConvHelper* myLocation;
+
+ /// @brief number of loaded pois
+ int myNumLoaded;
+
+ private:
+ void loadPOI(const SUMOSAXAttributes& attrs);
+ };
+
+public:
+ /** @brief Constructor
+ */
+ GNEPoly(GNENet* net, GNEJunction* junction, const std::string& id, const std::string& type, const PositionVector& shape, bool fill,
+ const RGBColor& color, SUMOReal layer,
+ SUMOReal angle = 0, const std::string& imgFile = "");
+
+ /// @brief Destructor
+ virtual ~GNEPoly() ;
+
+ /// @name inherited from GUIGlObject
+ //@{
+
+ /** @brief Returns an own popup-menu
+ *
+ * @param[in] app The application needed to build the popup-menu
+ * @param[in] parent The parent window needed to build the popup-menu
+ * @return The built popup-menu
+ * @see GUIGlObject::getPopUpMenu
+ */
+ GUIGLObjectPopupMenu* getPopUpMenu(GUIMainWindow& app,
+ GUISUMOAbstractView& parent) ;
+
+
+ /** @brief Draws the object
+ * @param[in] s The settings for the current view (may influence drawing)
+ * @see GUIGlObject::drawGL
+ */
+ void drawGL(const GUIVisualizationSettings& s) const ;
+ //@}
+
+
+ /// @brief draw the polygon and also little movement handles
+
+ /** @brief change the polygon geometry without registering undo/redo
+ * It is up to the Polygon to decide whether an new geometry node should be
+ * generated or an existing node should be moved
+ * @param[in] oldPos The origin of the mouse movement
+ * @param[in] newPos The destination of the mouse movenent
+ * @param[in] relative Whether newPos is absolute or relative
+ * @return newPos if something was moved, oldPos if nothing was moved
+ */
+ Position moveGeometry(const Position& oldPos, const Position& newPos, bool relative = false);
+
+ /// @brief replace the current shape with a rectangle
+ void simplifyShape();
+
+ /// @brief delete the geometry point closest to the given pos
+ void deleteGeometryNear(const Position& pos);
+
+ /// @brief retrieve the junction of which the shape is being edited
+ GNEJunction* getEditedJunction() const {
+ return myJunction;
+ }
+
+
+ /// @brief registers completed movement with the undoList
+ //void registerMove(GNEUndoList *undoList);
+
+
+ //@name inherited from GNEAttributeCarrier
+ //@{
+ std::string getAttribute(SumoXMLAttr key) const;
+
+ /* @brief method for setting the attribute and letting the object perform additional changes
+ * @param[in] key The attribute key
+ * @param[in] value The new value
+ * @param[in] undoList The undoList on which to register changes
+ */
+ void setAttribute(SumoXMLAttr key, const std::string& value, GNEUndoList* undoList);
+
+ bool isValid(SumoXMLAttr key, const std::string& value);
+ //@}
+
+ /// @brief load POIs from file
+ static void loadFromFile(const std::string& file, GNENet* net);
+
+ /// @brief save POIs to file
+ static void saveToFile(const std::string& file);
+
+protected:
+ /// @brief the net for querying updates
+ GNENet* myNet;
+
+ /// @brief junction of which the shape is being edited (optional)
+ GNEJunction* myJunction;
+
+private:
+ /// @brief Invalidated copy constructor.
+ GNEPoly(const GNEPoly&);
+
+ /// @brief Invalidated assignment operator.
+ GNEPoly& operator=(const GNEPoly&);
+
+ void setAttribute(SumoXMLAttr key, const std::string& value);
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEReferenceCounter.h b/src/netedit/GNEReferenceCounter.h
new file mode 100644
index 0000000..807720a
--- /dev/null
+++ b/src/netedit/GNEReferenceCounter.h
@@ -0,0 +1,99 @@
+/****************************************************************************/
+/// @file GNEReferenceCounter.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEReferenceCounter.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A class that counts references to itself
+// We may wish to keep references to junctions/nodes either in the network or in the undoList
+// to clean up properly we have to resort to reference counting
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEReferenceCounter_h
+#define GNEReferenceCounter_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <utils/common/UtilExceptions.h>
+#include <utils/common/ToString.h>
+
+
+// #define _DEBUG_REFERENCECOUNTER
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEReferenceCounter
+ */
+class GNEReferenceCounter {
+public:
+ /// constructor
+ GNEReferenceCounter(): myCount(0) {}
+
+ /// destructor
+ ~GNEReferenceCounter() {
+ if (myCount) {
+ // cannot print id here, it already got destructed
+ throw ProcessError("Attempt to delete instance of GNEReferenceCounter with count " + toString(myCount));
+ }
+ }
+
+
+ void decRef(const std::string& debugMsg = "") {
+#ifdef _DEBUG_REFERENCECOUNTER
+ std::cout << "decRef (" + toString(myCount) + ") for " + getID() + ": " << debugMsg << "\n";
+#endif
+ UNUSED_PARAMETER(debugMsg); // only used for print debugging
+ if (myCount < 1) {
+ throw ProcessError("Attempt to decrement references below zero for instance of GNEReferenceCounter");
+ }
+ myCount--;
+ }
+
+
+ void incRef(const std::string& debugMsg = "") {
+#ifdef _DEBUG_REFERENCECOUNTER
+ std::cout << "incRef (" + toString(myCount) + ") for " + getID() + ": " << debugMsg << "\n";
+#endif
+ UNUSED_PARAMETER(debugMsg); // only used for print debugging
+ myCount++;
+ }
+
+
+ bool unreferenced() {
+ return myCount == 0;
+ }
+
+
+ virtual const std::string getID() const = 0;
+
+
+private:
+ size_t myCount;
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNESelector.cpp b/src/netedit/GNESelector.cpp
new file mode 100644
index 0000000..ee2fc14
--- /dev/null
+++ b/src/netedit/GNESelector.cpp
@@ -0,0 +1,530 @@
+/****************************************************************************/
+/// @file GNESelector.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNESelector.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The Widget for modifying selections of network-elements
+// (some elements adapted from GUIDialog_GLChosenEditor)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <iostream>
+#include <utils/foxtools/fxexdefs.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/common/MsgHandler.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/div/GUIIOGlobals.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include "GNESelector.h"
+#include "GNEViewNet.h"
+#include "GNENet.h"
+#include "GNEJunction.h"
+#include "GNEEdge.h"
+#include "GNELane.h"
+#include "GNEUndoList.h"
+#include "GNEChange_Selection.h"
+#include "GNEAttributeCarrier.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNESelector) GNESelectorMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_CHOOSEN_LOAD, GNESelector::onCmdLoad),
+ FXMAPFUNC(SEL_COMMAND, MID_CHOOSEN_SAVE, GNESelector::onCmdSave),
+ FXMAPFUNC(SEL_COMMAND, MID_CHOOSEN_INVERT, GNESelector::onCmdInvert),
+ FXMAPFUNC(SEL_COMMAND, MID_CHOOSEN_CLEAR, GNESelector::onCmdClear),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELMB_TAG, GNESelector::onCmdSelMBTag),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELMB_STRING, GNESelector::onCmdSelMBString),
+ FXMAPFUNC(SEL_COMMAND, MID_HELP, GNESelector::onCmdHelp),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SELECT_SCALE, GNESelector::onCmdScaleSelection)
+};
+
+// Object implementation
+FXIMPLEMENT(GNESelector, FXScrollWindow, GNESelectorMap, ARRAYNUMBER(GNESelectorMap))
+
+// ===========================================================================
+// static members
+// ===========================================================================
+const int GNESelector::WIDTH = 140;
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNESelector::GNESelector(FXComposite* parent, GNEViewNet* updateTarget, GNEUndoList* undoList):
+ FXScrollWindow(parent, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0),
+ myHeaderFont(new FXFont(getApp(), "Arial", 14, FXFont::Bold)),
+ myUpdateTarget(updateTarget),
+ mySetOperation(SET_ADD),
+ mySetOperationTarget(mySetOperation),
+ myUndoList(undoList),
+ ALL_VCLASS_NAMES_MATCH_STRING("all " + joinToString(SumoVehicleClassStrings.getStrings(), " ")) {
+ // stats
+ myContentFrame = new FXVerticalFrame(this, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0);
+ myStats = new FXLabel(myContentFrame, getStats().c_str(), 0, JUSTIFY_LEFT);
+ myStats->setFont(myHeaderFont);
+
+ // selection modification mode
+ FXGroupBox* selBox = new FXGroupBox(myContentFrame, "Modification Mode",
+ GROUPBOX_NORMAL | FRAME_GROOVE | LAYOUT_FILL_X, 2, 0, 0, 0, 4, 2, 2, 2);
+ new FXRadioButton(selBox, "add\t\tSelected objects are added to the previous selection",
+ &mySetOperationTarget, FXDataTarget::ID_OPTION + SET_ADD);
+ new FXRadioButton(selBox, "remove\t\tSelected objects are removed from the previous selection",
+ &mySetOperationTarget, FXDataTarget::ID_OPTION + SET_SUB);
+ new FXRadioButton(selBox, "keep\t\tRestrict previous selection by the current selection",
+ &mySetOperationTarget, FXDataTarget::ID_OPTION + SET_RESTRICT);
+ new FXRadioButton(selBox, "replace\t\tReplace previous selection by the current selection",
+ &mySetOperationTarget, FXDataTarget::ID_OPTION + SET_REPLACE);
+
+ // selection by expression matching (match box)
+ FXGroupBox* matchBox = new FXGroupBox(myContentFrame, "Match Attribute",
+ GROUPBOX_NORMAL | FRAME_GROOVE | LAYOUT_FILL_X, 2, 0, 0, 0, 4, 2, 2, 2);
+ myMatchTagBox = new FXListBox(matchBox, this, MID_GNE_SELMB_TAG);
+ const std::vector<SumoXMLTag>& tags = GNEAttributeCarrier::allowedTags();
+ for (std::vector<SumoXMLTag>::const_iterator it = tags.begin(); it != tags.end(); it++) {
+ myMatchTagBox->appendItem(toString(*it).c_str());
+ }
+ myMatchTagBox->setCurrentItem(1); // edges
+ myMatchTagBox->setNumVisible(myMatchTagBox->getNumItems());
+ myMatchAttrBox = new FXListBox(matchBox);
+ onCmdSelMBTag(0, 0, 0);
+ myMatchAttrBox->setCurrentItem(3); // speed
+ myMatchString = new FXTextField(matchBox, 12, this, MID_GNE_SELMB_STRING, TEXTFIELD_NORMAL, 0, 0, 0, 0, 4, 2, 0, 2);
+ myMatchString->setText(">10.0");
+ new FXButton(matchBox, "Help", 0, this, MID_HELP);
+
+ FXGroupBox* selSizeBox = new FXGroupBox(myContentFrame, "Visual Scaling",
+ GROUPBOX_NORMAL | FRAME_GROOVE | LAYOUT_FILL_X, 2, 0, 0, 0, 4, 2, 2, 2);
+ mySelectionScaling =
+ new FXRealSpinDial(selSizeBox, 7, this, MID_GNE_SELECT_SCALE,
+ LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK | LAYOUT_FILL_Y);
+ mySelectionScaling->setNumberFormat(1);
+ mySelectionScaling->setIncrements(0.1, .5, 1);
+ mySelectionScaling->setRange(1, 100);
+ mySelectionScaling->setValue(1);
+ mySelectionScaling->setHelpText("Enlarge selected objects");
+
+ // additional buttons
+ // new FXHorizontalSeparator(this,SEPARATOR_GROOVE|LAYOUT_FILL_X);
+ // "Clear List"
+ new FXButton(myContentFrame, "Clear\t\t", 0, this, MID_CHOOSEN_CLEAR,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Invert"
+ new FXButton(myContentFrame, "Invert\t\t", 0, this, MID_CHOOSEN_INVERT,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "Save"
+ new FXButton(myContentFrame, "Save\t\tSave ids of currently selected objects to a file.", 0, this, MID_CHOOSEN_SAVE,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ // "Load"
+ new FXButton(myContentFrame, "Load\t\tLoad ids from a file according to the current modfication mode.", 0, this, MID_CHOOSEN_LOAD,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+
+ // Selection Hint
+ new FXLabel(myContentFrame, "Hold <SHIFT> for\nrectangle selection.\nPress <DEL> to\ndelete selected items.", 0, JUSTIFY_LEFT);
+}
+
+
+GNESelector::~GNESelector() {
+ delete myHeaderFont;
+ gSelected.remove2Update();
+}
+
+
+long
+GNESelector::onCmdLoad(FXObject*, FXSelector, void*) {
+ // get the new file name
+ FXFileDialog opendialog(this, "Open List of Selected Items");
+ opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
+ opendialog.setSelectMode(SELECTFILE_EXISTING);
+ opendialog.setPatternList("Selection files (*.txt)\nAll files (*)");
+ if (gCurrentFolder.length() != 0) {
+ opendialog.setDirectory(gCurrentFolder);
+ }
+ if (opendialog.execute()) {
+ gCurrentFolder = opendialog.getDirectory();
+ std::string file = opendialog.getFilename().text();
+ // @todo maybe rewrite so that mySetOperation also applies to loaded items?
+ std::string errors;
+ std::set<GUIGlID> ids = gSelected.loadIDs(file, errors);
+ handleIDs(std::vector<GUIGlID>(ids.begin(), ids.end()), false);
+ if (errors != "") {
+ FXMessageBox::error(this, MBOX_OK, "Errors while loading Selection", "%s", errors.c_str());
+ }
+ }
+ myUpdateTarget->update();
+ return 1;
+}
+
+
+long
+GNESelector::onCmdSave(FXObject*, FXSelector, void*) {
+ FXString file = MFXUtils::getFilename2Write(
+ this, "Save List of selected Items", ".txt", GUIIconSubSys::getIcon(ICON_EMPTY), gCurrentFolder);
+ if (file == "") {
+ return 1;
+ }
+ try {
+ gSelected.save(file.text());
+ } catch (IOError& e) {
+ FXMessageBox::error(this, MBOX_OK, "Storing Selection failed", "%s", e.what());
+ }
+ return 1;
+}
+
+
+long
+GNESelector::onCmdClear(FXObject*, FXSelector, void*) {
+ myUndoList->add(new GNEChange_Selection(std::set<GUIGlID>(), gSelected.getSelected(), true), true);
+ myUpdateTarget->update();
+ return 1;
+}
+
+
+long
+GNESelector::onCmdInvert(FXObject*, FXSelector, void*) {
+ std::set<GUIGlID> ids = myUpdateTarget->getNet()->getGlIDs(GLO_JUNCTION);
+ for (std::set<GUIGlID>::const_iterator it = ids.begin(); it != ids.end(); it++) {
+ gSelected.toggleSelection(*it);
+ }
+ ids = myUpdateTarget->getNet()->getGlIDs(myUpdateTarget->selectEdges() ? GLO_EDGE : GLO_LANE);
+ for (std::set<GUIGlID>::const_iterator it = ids.begin(); it != ids.end(); it++) {
+ gSelected.toggleSelection(*it);
+ }
+ myUpdateTarget->update();
+ return 1;
+}
+
+
+long
+GNESelector::onCmdSelMBTag(FXObject*, FXSelector, void*) {
+ const std::vector<SumoXMLTag>& tags = GNEAttributeCarrier::allowedTags();
+ SumoXMLTag tag = tags[myMatchTagBox->getCurrentItem()];
+ myMatchAttrBox->clearItems();
+ const std::vector<SumoXMLAttr>& attrs = GNEAttributeCarrier::allowedAttributes(tag);
+ for (std::vector<SumoXMLAttr>::const_iterator it = attrs.begin(); it != attrs.end(); it++) {
+ myMatchAttrBox->appendItem(toString(*it).c_str());
+ }
+ myMatchAttrBox->setNumVisible(myMatchAttrBox->getNumItems());
+ update();
+ return 1;
+}
+
+
+long
+GNESelector::onCmdSelMBString(FXObject*, FXSelector, void*) {
+ const std::vector<SumoXMLTag>& tags = GNEAttributeCarrier::allowedTags();
+ SumoXMLTag tag = tags[myMatchTagBox->getCurrentItem()];
+ const std::vector<SumoXMLAttr>& attrs = GNEAttributeCarrier::allowedAttributes(tag);
+ SumoXMLAttr attr = attrs[myMatchAttrBox->getCurrentItem()];
+ std::string expr(myMatchString->getText().text());
+ bool valid = true;
+
+ if (expr == "") {
+ // the empty expression matches all objects
+ handleIDs(getMatches(tag, attr, '@', 0, expr), false);
+ } else if (GNEAttributeCarrier::isNumerical(attr)) {
+ // The expression must have the form
+ // <val matches if attr < val
+ // >val matches if attr > val
+ // =val matches if attr = val
+ // val matches if attr = val
+ char compOp = expr[0];
+ if (compOp == '<' || compOp == '>' || compOp == '=') {
+ expr = expr.substr(1);
+ } else {
+ compOp = '=';
+ }
+ SUMOReal val;
+ std::istringstream buf(expr);
+ buf >> val;
+ if (!buf.fail() && (size_t)buf.tellg() == expr.size()) {
+ handleIDs(getMatches(tag, attr, compOp, val, expr), false);
+ } else {
+ valid = false;
+ }
+ } else {
+ // The expression must have the form
+ // =str: matches if <str> is an exact match
+ // !str: matches if <str> is not a substring
+ // ^str: matches if <str> is not an exact match
+ // str: matches if <str> is a substring (sends compOp '@')
+ // Alternatively, if the expression is empty it matches all objects
+ char compOp = expr[0];
+ if (compOp == '=' || compOp == '!' || compOp == '^') {
+ expr = expr.substr(1);
+ } else {
+ compOp = '@';
+ }
+ handleIDs(getMatches(tag, attr, compOp, 0, expr), false);
+ }
+ if (valid) {
+ myMatchString->setTextColor(FXRGB(0, 0, 0));
+ myMatchString->killFocus();
+ } else {
+ myMatchString->setTextColor(FXRGB(255, 0, 0));
+ }
+
+ return 1;
+}
+
+
+long
+GNESelector::onCmdHelp(FXObject*, FXSelector, void*) {
+ FXDialogBox* helpDialog = new FXDialogBox(this, "Match Attribute Help", DECOR_CLOSE | DECOR_TITLE);
+ std::ostringstream help;
+ help
+ << "The 'Match Attribute' controls allow to specify a set of objects which are then applied to the current selection "
+ << "according to the current 'Modification Mode'.\n"
+ << "1. Select an object type from the first input box\n"
+ << "2. Select an attribute from the second input box\n"
+ << "3. Enter a 'match expression' in the third input box and press <return>\n"
+ << "\n"
+ << "The empty expression matches all objects\n"
+ << "For numerical attributes the match expression must consist of a comparison operator ('<', '>', '=') and a number.\n"
+ << "An object matches if the comparison between its attribute and the given number by the given operator evaluates to 'true'\n"
+ << "\n"
+ << "For string attributes the match expression must consist of a comparison operator ('', '=', '!', '^') and a string.\n"
+ << " '' (no operator) matches if string is a substring of that object'ts attribute.\n"
+ << " '=' matches if string is an exact match.\n"
+ << " '!' matches if string is not a substring.\n"
+ << " '^' matches if string is not an exact match.\n"
+ << "\n"
+ << "Examples:\n"
+ << "junction; id; 'foo' -> match all junctions that have 'foo' in their id\n"
+ << "junction; type; '=priority' -> match all junctions of type 'priority', but not of type 'priority_stop'\n" // PABLO #1985
+ << "edge; speed; '>10' -> match all edges with a speed above 10\n";
+ new FXLabel(helpDialog, help.str().c_str(), 0, JUSTIFY_LEFT);
+ // "OK"
+ new FXButton(helpDialog, "OK\t\tSave modifications", 0, helpDialog, FXDialogBox::ID_ACCEPT,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ helpDialog->create();
+ helpDialog->show();
+ return 1;
+}
+
+
+long
+GNESelector::onCmdScaleSelection(FXObject*, FXSelector, void*) {
+ myUpdateTarget->setSelectionScaling(mySelectionScaling->getValue());
+ myUpdateTarget->update();
+ return 1;
+}
+
+
+void
+GNESelector::show() {
+ gSelected.add2Update(this);
+ selectionUpdated(); // selection may have changed due to deletions
+ FXScrollWindow::show();
+}
+
+
+void
+GNESelector::hide() {
+ gSelected.remove2Update();
+ FXScrollWindow::hide();
+}
+
+
+std::string
+GNESelector::getStats() const {
+ return "Selection:\n" +
+ toString(gSelected.getSelected(GLO_JUNCTION).size()) + " Junctions\n" +
+ toString(gSelected.getSelected(GLO_EDGE).size()) + " Edges\n" +
+ toString(gSelected.getSelected(GLO_LANE).size()) + " Lanes\n";
+}
+
+
+void
+GNESelector::selectionUpdated() {
+ myStats->setText(getStats().c_str());
+ update();
+}
+
+
+void
+GNESelector::handleIDs(std::vector<GUIGlID> ids, bool selectEdges, SetOperation setop) {
+ const SetOperation setOperation = (setop == SET_DEFAULT ? (SetOperation)mySetOperation : setop);
+ std::set<GUIGlID> previousSelection;
+ myUndoList->p_begin("change selection");
+ if (setOperation == SET_REPLACE) {
+ myUndoList->add(new GNEChange_Selection(std::set<GUIGlID>(), gSelected.getSelected(), true), true);
+ } else if (setOperation == SET_RESTRICT) {
+ previousSelection = gSelected.getSelected(); // have to make a copy
+ myUndoList->add(new GNEChange_Selection(std::set<GUIGlID>(), gSelected.getSelected(), true), true);
+ }
+ // handle ids
+ GUIGlObject* object;
+ GUIGlObjectType type;
+ std::set<GUIGlID> idsSet(ids.begin(), ids.end());
+ std::set<GUIGlID> selected;
+ std::set<GUIGlID> deselected;
+ if (myUpdateTarget->autoSelectNodes()) {
+ for (std::vector<GUIGlID>::const_iterator it = ids.begin(); it != ids.end(); it++) {
+ GUIGlID id = *it;
+ if (id > 0) { // net object?
+ object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ if (object->getType() == GLO_LANE && selectEdges) {
+ const GNEEdge& edge = (static_cast<GNELane*>(object))->getParentEdge();
+ idsSet.insert(edge.getSource()->getGlID());
+ idsSet.insert(edge.getDest()->getGlID());
+ }
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ }
+ }
+ }
+ for (std::set<GUIGlID>::const_iterator it = idsSet.begin(); it != idsSet.end(); it++) {
+ GUIGlID id = *it;
+ if (id > 0) { // net object?
+ object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ if (object == 0) {
+ // in debug mode we would like to know about this.
+ // It might be caused by a corrupted gl-name stack.
+ // However, most cases of uninitizliaed values would go hidden since 0 is assumed to be the net object anyway
+ assert(false);
+ continue;
+ }
+ type = object->getType();
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ if (type == GLO_LANE && selectEdges) {
+ // @note edge may be selected/deselected multiple times but this shouldn't
+ // hurt unless we add SET_TOGGLE
+ id = (static_cast<GNELane*>(object))->getParentEdge().getGlID();
+ }
+ // doing the switch outside the loop requires functional techniques. this was deemed to ugly
+ switch (setOperation) {
+ case GNESelector::SET_ADD:
+ case GNESelector::SET_REPLACE:
+ selected.insert(id);
+ break;
+ case GNESelector::SET_SUB:
+ deselected.insert(id);
+ break;
+ case GNESelector::SET_RESTRICT:
+ if (previousSelection.count(id)) {
+ selected.insert(id);
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ myUndoList->add(new GNEChange_Selection(selected, deselected, true), true);
+ myUndoList->p_end();
+ myUpdateTarget->update();
+}
+
+
+std::vector<GUIGlID>
+GNESelector::getMatches(SumoXMLTag tag, SumoXMLAttr attr, char compOp, SUMOReal val, const std::string& expr) {
+ GUIGlObject* object;
+ GNEAttributeCarrier* ac;
+ std::vector<GUIGlID> result;
+ const std::set<GUIGlID> allIDs = myUpdateTarget->getNet()->getGlIDs();
+ const bool numerical = GNEAttributeCarrier::isNumerical(attr);
+ for (std::set<GUIGlID>::const_iterator it = allIDs.begin(); it != allIDs.end(); it++) {
+ GUIGlID id = *it;
+ object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ if (!object) {
+ throw ProcessError("Unkown object passed to GNESelector::getMatches (id=" + toString(id) + ").");
+ }
+ ac = dynamic_cast<GNEAttributeCarrier*>(object);
+ if (ac && ac->getTag() == tag) { // not all objects need to be attribute carriers
+ if (expr == "") {
+ result.push_back(id);
+ } else if (numerical) {
+ SUMOReal acVal;
+ std::istringstream buf(ac->getAttribute(attr));
+ buf >> acVal;
+ switch (compOp) {
+ case '<':
+ if (acVal < val) {
+ result.push_back(id);
+ }
+ break;
+ case '>':
+ if (acVal > val) {
+ result.push_back(id);
+ }
+ break;
+ case '=':
+ if (acVal == val) {
+ result.push_back(id);
+ }
+ break;
+ }
+ } else {
+ // string match
+ std::string acVal = ac->getAttribute(attr);
+ if ((attr == SUMO_ATTR_ALLOW || attr == SUMO_ATTR_DISALLOW) && acVal == "all") {
+ acVal = ALL_VCLASS_NAMES_MATCH_STRING;
+ }
+ switch (compOp) {
+ case '@':
+ if (acVal.find(expr) != std::string::npos) {
+ result.push_back(id);
+ }
+ break;
+ case '!':
+ if (acVal.find(expr) == std::string::npos) {
+ result.push_back(id);
+ }
+ break;
+ case '=':
+ if (acVal == expr) {
+ result.push_back(id);
+ }
+ break;
+ case '^':
+ if (acVal != expr) {
+ result.push_back(id);
+ }
+ break;
+ }
+ }
+ }
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ }
+ return result;
+}
+
+/****************************************************************************/
diff --git a/src/netedit/GNESelector.h b/src/netedit/GNESelector.h
new file mode 100644
index 0000000..cba6867
--- /dev/null
+++ b/src/netedit/GNESelector.h
@@ -0,0 +1,200 @@
+/****************************************************************************/
+/// @file GNESelector.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNESelector.h 18871 2015-09-19 20:22:07Z namdre $
+///
+// The Widget for modifying selections of network-elements
+// (some elements adapted from GUIDialog_GLChosenEditor)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNESelector_h
+#define GNESelector_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <GL/gl.h>
+#include <utils/foxtools/FXRealSpinDial.h>
+#include <utils/xml/SUMOXMLDefinitions.h>
+#include <utils/gui/div/GUISelectedStorage.h>
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEViewNet;
+class GNEAttributeCarrier;
+class GNEUndoList;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNESelector
+ * The Widget for modifying selections of network-elements
+ */
+class GNESelector : public FXScrollWindow, public GUISelectedStorage::UpdateTarget {
+ // FOX-declarations
+ FXDECLARE(GNESelector)
+
+public:
+
+ enum SetOperation {
+ SET_ADD = 1,
+ SET_SUB = 2,
+ SET_RESTRICT = 3,
+ SET_REPLACE = 4,
+ SET_DEFAULT = 5 // use mySetOperation instead of override
+ };
+
+ /** @brief Constructor
+ * @param[in] parent The parent window
+ */
+ GNESelector(FXComposite* parent, GNEViewNet* updateTarget, GNEUndoList* undoList);
+
+
+ /// @brief Destructor
+ ~GNESelector();
+
+
+ FXFont* getHeaderFont() {
+ return myHeaderFont;
+ }
+
+ /// @name FOX-callbacks
+ /// @{
+ /** @brief Called when the user presses the Load-button
+ *
+ * Opens a file dialog and forces the parent to load the list of selected
+ * objects when a file was chosen. Rebuilds the list, then, and redraws
+ * itself.
+ */
+ long onCmdLoad(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Save-button
+ *
+ * Opens a file dialog and forces the selection container to save the list
+ * of selected objects when a file was chosen.
+ *
+ * If the saveing failed, a message window is shown.
+ */
+ long onCmdSave(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Clear-button
+ *
+ * Clear the internal list and calls GUISelectedStorage::clear.
+ * Repaints itself
+ */
+ long onCmdClear(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Invert-button
+ * invert the selection
+ * Repaints itself
+ */
+ long onCmdInvert(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user selectes a tag in the match box
+ * updates the attr listbox
+ * Repaints itself
+ */
+ long onCmdSelMBTag(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user enters a new selection expression
+ * validates expression and modifies current selection
+ */
+ long onCmdSelMBString(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user clicks the help button
+ * pop up help window
+ */
+ long onCmdHelp(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user changes visual scaling
+ */
+ long onCmdScaleSelection(FXObject*, FXSelector, void*);
+
+ /// @}
+
+ void show();
+
+ void hide();
+
+ /* apply list of ids to the current selection according to SetOperation,
+ * if setop==SET_DEFAULT than the currently set mode (mySetOperation) is used */
+ void handleIDs(std::vector<GUIGlID> ids, bool selectEdges, SetOperation setop = SET_DEFAULT);
+
+ /* @brief called if currently registered for updates for changes of global selection */
+ void selectionUpdated();
+
+protected:
+ /// @brief FOX needs this
+ GNESelector() {}
+
+private:
+ /// @brief the panel to hold all member widgets
+ FXVerticalFrame* myContentFrame;
+
+ /// @brief Font for the widget
+ FXFont* myHeaderFont;
+
+ /// @brief the label for selection statistics
+ FXLabel* myStats;
+
+ /* @brief the window to inform when selection changes
+ * we also need this to query for existing elements when inverting selection
+ */
+ GNEViewNet* myUpdateTarget;
+
+ /// @brief how to modify selection
+ FXuint mySetOperation;
+ FXDataTarget mySetOperationTarget;
+
+ /// @brief state variables for the match box
+ FXListBox* myMatchTagBox;
+ FXListBox* myMatchAttrBox;
+ FXTextField* myMatchString;
+
+ FXRealSpinDial* mySelectionScaling;
+
+ static const int WIDTH;
+
+ GNEUndoList* myUndoList;
+private:
+
+ std::string getStats() const;
+
+ /** @brief return objects of the given type with matching attrs
+ * @param[in] compOp One of {<,>,=} for matching against val or '@' for
+ * matching against expr
+ */
+ std::vector<GUIGlID> getMatches(
+ SumoXMLTag tag, SumoXMLAttr attr, char compOp, SUMOReal val, const std::string& expr);
+
+ // the string that should be matched against if attr 'allowed' or 'disalloed' are set to "all"
+ const std::string ALL_VCLASS_NAMES_MATCH_STRING;
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNETLSEditor.cpp b/src/netedit/GNETLSEditor.cpp
new file mode 100644
index 0000000..7016dc9
--- /dev/null
+++ b/src/netedit/GNETLSEditor.cpp
@@ -0,0 +1,682 @@
+/****************************************************************************/
+/// @file GNETLSEditor.cpp
+/// @author Jakob Erdmann
+/// @date May 2011
+/// @version $Id: GNETLSEditor.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The Widget for modifying traffic lights
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <iostream>
+#include <utils/foxtools/fxexdefs.h>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/common/TplConvert.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/div/GUIIOGlobals.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <netbuild/NBTrafficLightDefinition.h>
+#include <netbuild/NBLoadedSUMOTLDef.h>
+#include "GNETLSEditor.h"
+#include "GNEViewNet.h"
+#include "GNENet.h"
+#include "GNEJunction.h"
+#include "GNEEdge.h"
+#include "GNELane.h"
+#include "GNEUndoList.h"
+#include "GNEInternalLane.h"
+#include "GNEChange_TLS.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNETLSEditor) GNETLSEditorMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_CANCEL, GNETLSEditor::onCmdCancel),
+ FXMAPFUNC(SEL_COMMAND, MID_OK, GNETLSEditor::onCmdOK),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_CREATE, GNETLSEditor::onCmdDefCreate),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_DELETE, GNETLSEditor::onCmdDefDelete),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_SWITCH, GNETLSEditor::onCmdDefSwitch),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_OFFSET, GNETLSEditor::onCmdDefOffset),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_RENAME, GNETLSEditor::onCmdDefRename),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_SUBRENAME, GNETLSEditor::onCmdDefSubRename),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DEF_ADDOFF, GNETLSEditor::onCmdDefAddOff),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_GUESS_PROGRAM, GNETLSEditor::onCmdGuess),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_PHASE_CREATE, GNETLSEditor::onCmdPhaseCreate),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_PHASE_DELETE, GNETLSEditor::onCmdPhaseDelete),
+ FXMAPFUNC(SEL_SELECTED, MID_GNE_PHASE_TABLE, GNETLSEditor::onCmdPhaseSwitch),
+ FXMAPFUNC(SEL_DESELECTED, MID_GNE_PHASE_TABLE, GNETLSEditor::onCmdPhaseSwitch),
+ FXMAPFUNC(SEL_CHANGED, MID_GNE_PHASE_TABLE, GNETLSEditor::onCmdPhaseSwitch),
+ FXMAPFUNC(SEL_REPLACED, MID_GNE_PHASE_TABLE, GNETLSEditor::onCmdPhaseEdit),
+
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_DEF_CREATE, GNETLSEditor::onUpdDefCreate),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_DEF_DELETE, GNETLSEditor::onUpdDefSwitch),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_DEF_SWITCH, GNETLSEditor::onUpdDefSwitch),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_DEF_OFFSET, GNETLSEditor::onUpdNeedsDef),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_PHASE_CREATE, GNETLSEditor::onUpdNeedsDef),
+ FXMAPFUNC(SEL_UPDATE, MID_GNE_PHASE_DELETE, GNETLSEditor::onUpdNeedsDefAndPhase),
+ FXMAPFUNC(SEL_UPDATE, MID_CANCEL, GNETLSEditor::onUpdModified),
+ FXMAPFUNC(SEL_UPDATE, MID_OK, GNETLSEditor::onUpdModified),
+};
+
+
+// Object implementation
+FXIMPLEMENT(GNETLSEditor, FXScrollWindow, GNETLSEditorMap, ARRAYNUMBER(GNETLSEditorMap))
+
+// ===========================================================================
+// static members
+// ===========================================================================
+const int GNETLSEditor::WIDTH = 140;
+
+// ===========================================================================
+// method definitions
+// ===========================================================================
+GNETLSEditor::GNETLSEditor(FXComposite* parent, GNEViewNet* updateTarget, GNEUndoList* undoList):
+ FXScrollWindow(parent, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0),
+ myHeaderFont(new FXFont(getApp(), "Arial", 11, FXFont::Bold)),
+ myTableFont(new FXFont(getApp(), "Courier New", 9)),
+ myCurrentJunction(0),
+ myUndoList(undoList),
+ myUpdateTarget(updateTarget),
+ myHaveModifications(false),
+ myEditedDef(0) {
+ // heading
+ myContentFrame = new FXVerticalFrame(this, LAYOUT_FILL_Y | LAYOUT_FIX_WIDTH, 0, 0, WIDTH, 0);
+ FXLabel* heading = new FXLabel(myContentFrame, "Edit Traffic Light", 0, JUSTIFY_LEFT);
+ heading->setFont(myHeaderFont);
+ myDescription = new FXLabel(myContentFrame, "", 0, JUSTIFY_LEFT);
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+
+ // create tlDef button
+ new FXButton(myContentFrame, "Create TLS\t\tCreate a new traffic light program", 0, this, MID_GNE_DEF_CREATE,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ // delete tlDef button
+ new FXButton(myContentFrame,
+ "Delete TLS\t\tDelete a traffic light program. If all programs are deleted the junction turns into a priority junction.",
+ 0, this, MID_GNE_DEF_DELETE, ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ // definitions list
+ new FXLabel(myContentFrame, "Name, Program");
+ myDefBox = new FXListBox(myContentFrame, this, MID_GNE_DEF_SWITCH,
+ FRAME_SUNKEN | FRAME_THICK | LISTBOX_NORMAL | LAYOUT_FIX_WIDTH, 0, 0, WIDTH - 4);
+
+ // offset control
+ new FXLabel(myContentFrame, "Offset");
+ myOffset = new FXTextField(myContentFrame, 6,
+ this, MID_GNE_DEF_OFFSET, TEXTFIELD_NORMAL | TEXTFIELD_REAL, 0, 0, 0, 0, 4, 2, 0, 2);
+
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+
+ // phase table
+ new FXLabel(myContentFrame, "Phases");
+ myPhaseTable = new FXTable(myContentFrame, this, MID_GNE_PHASE_TABLE, LAYOUT_FIX_HEIGHT | LAYOUT_FIX_WIDTH);
+ myPhaseTable->setColumnHeaderMode(LAYOUT_FIX_HEIGHT);
+ myPhaseTable->setColumnHeaderHeight(0);
+ myPhaseTable->setRowHeaderMode(LAYOUT_FIX_WIDTH);
+ myPhaseTable->setRowHeaderWidth(0);
+ myPhaseTable->hide();
+ myPhaseTable->setFont(myTableFont);
+ myPhaseTable->setHelpText("phase duration in seconds | phase state");
+
+ // total duration info
+ myCycleDuration = new FXLabel(myContentFrame, "");
+
+ // insert new phase button
+ new FXButton(myContentFrame, "Copy Phase\t\tInsert duplicate phase after selected phase", 0, this, MID_GNE_PHASE_CREATE,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ // delete phase button
+ new FXButton(myContentFrame, "Delete Phase\t\tDelete selected phase", 0, this, MID_GNE_PHASE_DELETE,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ // buttons
+ // "Cancel"
+ new FXButton(myContentFrame, "Cancel\t\tDiscard program modifications (Esc)", 0, this, MID_CANCEL,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ // "OK"
+ new FXButton(myContentFrame, "Save\t\tSave program modifications (Enter)", 0, this, MID_OK,
+ ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ new FXHorizontalSeparator(myContentFrame, SEPARATOR_GROOVE | LAYOUT_FILL_X, 0, 0, 0, 2, 2, 2, 4, 4);
+ // "Add 'off' program"
+ /*
+ new FXButton(myContentFrame, "Add \"Off\"-Program\t\tAdds a program for switching off this traffic light",
+ 0, this, MID_GNE_DEF_ADDOFF,
+ ICON_BEFORE_TEXT|LAYOUT_FILL_X|FRAME_THICK|FRAME_RAISED,
+ 0, 0, 0, 0, 4, 4, 3, 3);
+ */
+}
+
+
+GNETLSEditor::~GNETLSEditor() {
+ delete myHeaderFont;
+ delete myTableFont;
+ cleanup();
+}
+
+
+void
+GNETLSEditor::editJunction(GNEJunction* junction) {
+ if (myCurrentJunction == 0 || (!myHaveModifications && (junction != myCurrentJunction))) {
+ onCmdCancel(0, 0, 0);
+ myUndoList->p_begin("modifying traffic light definition");
+ myCurrentJunction = junction;
+ myCurrentJunction->selectTLS(true);
+ initDefinitions();
+ } else {
+ myUpdateTarget->setStatusBarText("Unsaved modifications. Abort or Save");
+ }
+}
+
+
+long
+GNETLSEditor::onCmdCancel(FXObject*, FXSelector, void*) {
+ if (myCurrentJunction != 0) {
+ myUndoList->p_abort();
+ cleanup();
+ myUpdateTarget->update();
+ }
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdOK(FXObject*, FXSelector, void*) {
+ if (myCurrentJunction != 0) {
+ if (myHaveModifications) {
+ NBTrafficLightDefinition* old = myDefinitions[myDefBox->getCurrentItem()];
+ myUndoList->add(new GNEChange_TLS(myCurrentJunction, old, false), true);
+ myUndoList->add(new GNEChange_TLS(myCurrentJunction, myEditedDef, true), true);
+ myEditedDef = 0;
+ myUndoList->p_end();
+ cleanup();
+ myUpdateTarget->update();
+ } else {
+ onCmdCancel(0, 0, 0);
+ }
+ }
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdDefCreate(FXObject*, FXSelector, void*) {
+ GNEJunction* junction = myCurrentJunction;
+ onCmdCancel(0, 0, 0); // abort because we onCmdOk assumes we wish to save an edited definition
+ if (junction->getAttribute(SUMO_ATTR_TYPE) != toString(NODETYPE_TRAFFIC_LIGHT)) {
+ junction->setAttribute(SUMO_ATTR_TYPE, toString(NODETYPE_TRAFFIC_LIGHT), myUndoList);
+ } else {
+ myUndoList->add(new GNEChange_TLS(junction, 0, true, true), true);
+ }
+ editJunction(junction);
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdDefDelete(FXObject*, FXSelector, void*) {
+ GNEJunction* junction = myCurrentJunction;
+ const bool changeType = myDefinitions.size() == 1;
+ onCmdCancel(0, 0, 0); // abort because onCmdOk assumes we wish to save an edited definition
+ if (changeType) {
+ junction->setAttribute(SUMO_ATTR_TYPE, toString(NODETYPE_PRIORITY), myUndoList);
+ } else {
+ NBTrafficLightDefinition* tlDef = myDefinitions[myDefBox->getCurrentItem()];
+ myUndoList->add(new GNEChange_TLS(junction, tlDef, false), true);
+ }
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdDefSwitch(FXObject*, FXSelector, void*) {
+ assert(myCurrentJunction != 0);
+ assert((int)myDefinitions.size() == myDefBox->getNumItems());
+ NBTrafficLightDefinition* tlDef = myDefinitions[myDefBox->getCurrentItem()];
+ // logic may not have been recomputed yet. recompute to be sure
+ NBTrafficLightLogicCont& tllCont = myUpdateTarget->getNet()->getTLLogicCont();
+ myUpdateTarget->getNet()->computeJunction(myCurrentJunction);
+ NBTrafficLightLogic* tllogic = tllCont.getLogic(tlDef->getID(), tlDef->getProgramID());
+ if (tllogic != 0) {
+ // now we can be sure that the tlDef is up to date (i.e. re-guessed)
+ buildIinternalLanes(tlDef);
+ // create working copy from original def
+ delete myEditedDef;
+ myEditedDef = new NBLoadedSUMOTLDef(tlDef, tllogic);
+ myOffset->setText(toString(STEPS2TIME(myEditedDef->getLogic()->getOffset())).c_str());
+ initPhaseTable();
+ updateCycleDuration();
+ } else {
+ // tlDef has no valid logic (probably because id does not control any links
+ onCmdCancel(0, 0, 0);
+ myUpdateTarget->setStatusBarText("Traffic light does not control any links");
+ }
+ return 1;
+}
+
+
+long
+GNETLSEditor::onUpdDefSwitch(FXObject* o, FXSelector, void*) {
+ const bool enable = myDefinitions.size() > 0 && !myHaveModifications;
+ o->handle(this, FXSEL(SEL_COMMAND, enable ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE), 0);
+ return 1;
+}
+
+
+long
+GNETLSEditor::onUpdNeedsDef(FXObject* o, FXSelector, void*) {
+ const bool enable = myDefinitions.size() > 0;
+ o->handle(this, FXSEL(SEL_COMMAND, enable ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE), 0);
+ return 1;
+}
+
+
+long
+GNETLSEditor::onUpdNeedsDefAndPhase(FXObject* o, FXSelector, void*) {
+ // do not delete the last phase
+ const bool enable = myDefinitions.size() > 0 && myPhaseTable->getNumRows() > 1;
+ o->handle(this, FXSEL(SEL_COMMAND, enable ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE), 0);
+ return 1;
+}
+
+
+long
+GNETLSEditor::onUpdDefCreate(FXObject* o, FXSelector, void*) {
+ const bool enable = myCurrentJunction != 0 && !myHaveModifications;
+ o->handle(this, FXSEL(SEL_COMMAND, enable ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE), 0);
+ return 1;
+}
+
+
+long
+GNETLSEditor::onUpdModified(FXObject* o, FXSelector, void*) {
+ bool enable = myHaveModifications;
+ o->handle(this, FXSEL(SEL_COMMAND, enable ? FXWindow::ID_ENABLE : FXWindow::ID_DISABLE), 0);
+ return 1;
+}
+
+
+
+long
+GNETLSEditor::onCmdDefOffset(FXObject*, FXSelector, void*) {
+ myHaveModifications = true;
+ myEditedDef->setOffset(getSUMOTime(myOffset->getText()));
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdDefRename(FXObject*, FXSelector, void*) {
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdDefSubRename(FXObject*, FXSelector, void*) {
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdDefAddOff(FXObject*, FXSelector, void*) {
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdGuess(FXObject*, FXSelector, void*) {
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdPhaseSwitch(FXObject*, FXSelector, void*) {
+ const unsigned int index = myPhaseTable->getCurrentRow();
+ const NBTrafficLightLogic::PhaseDefinition& phase = getPhases()[index];
+ myPhaseTable->selectRow(index);
+ // need not hold since links could have been deleted somewhere else and indices may be reused
+ // assert(phase.state.size() == myInternalLanes.size());
+ for (TLIndexMap::iterator it = myInternalLanes.begin(); it != myInternalLanes.end(); it++) {
+ int tlIndex = it->first;
+ std::vector<GNEInternalLane*> lanes = it->second;
+ assert(tlIndex >= 0);
+ assert(tlIndex < (int)phase.state.size());
+ for (std::vector<GNEInternalLane*>::iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
+ (*it_lane)->setLinkState((LinkState)phase.state[tlIndex]);
+ }
+ }
+ myUpdateTarget->update();
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdPhaseCreate(FXObject*, FXSelector, void*) {
+ myHaveModifications = true;
+ const unsigned int numLinks = myEditedDef->getLogic()->getNumLinks();
+ // allows insertion at first position by deselecting via arrow keys
+ unsigned int newIndex = myPhaseTable->getSelStartRow() + 1;
+ unsigned int oldIndex = MAX2(0, myPhaseTable->getSelStartRow());
+ // copy current row
+ const SUMOTime duration = getSUMOTime(myPhaseTable->getItemText(oldIndex, 0));
+ const std::string state = myPhaseTable->getItemText(oldIndex, 1).text();
+ myEditedDef->getLogic()->addStep(duration, state, newIndex);
+ myPhaseTable->setCurrentItem(newIndex, 0);
+ initPhaseTable(newIndex);
+ myPhaseTable->setFocus();
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdPhaseDelete(FXObject*, FXSelector, void*) {
+ myHaveModifications = true;
+ myEditedDef->getLogic()->deletePhase(myPhaseTable->getCurrentRow());
+ initPhaseTable(0);
+ myPhaseTable->setFocus();
+ return 1;
+}
+
+
+long
+GNETLSEditor::onCmdPhaseEdit(FXObject*, FXSelector, void* ptr) {
+ /* @note: there is a bug when copying/pasting rows: when this handler is
+ * called the value of the cell is not yet updated. This means you have to
+ * click inside the cell and hit enter to actually update the value */
+ FXTablePos* tp = (FXTablePos*)ptr;
+ FXString value = myPhaseTable->getItemText(tp->row, tp->col);
+ if (tp->col == 0) {
+ // duration edited
+ if (GNEAttributeCarrier::canParse<SUMOReal>(value.text())) {
+ SUMOTime duration = getSUMOTime(value);
+ if (duration > 0) {
+ myEditedDef->getLogic()->setPhaseDuration(tp->row, duration);
+ myHaveModifications = true;
+ updateCycleDuration();
+ return 1;
+ }
+ }
+ // input error, reset value
+ myPhaseTable->setItemText(tp->row, 0, toString(STEPS2TIME(getPhases()[tp->row].duration)).c_str());
+ } else {
+ // state edited
+ try {
+ // insert phase with new step and delete the old phase
+ myEditedDef->getLogic()->addStep(getPhases()[tp->row].duration, value.text(), tp->row);
+ myEditedDef->getLogic()->deletePhase(tp->row + 1);
+ myHaveModifications = true;
+ onCmdPhaseSwitch(0, 0, 0);
+ } catch (ProcessError) {
+ // input error, reset value
+ myPhaseTable->setItemText(tp->row, 1, getPhases()[tp->row].state.c_str());
+ }
+ }
+ return 1;
+}
+
+
+void
+GNETLSEditor::updateDescription() const {
+ std::string description;
+ if (myCurrentJunction == 0) {
+ description = "No Junction Selected\n";
+ } else {
+ NBNode* nbn = myCurrentJunction->getNBNode();
+ description = "Junction '" + nbn->getID() + "'\n(";
+ if (!nbn->isTLControlled()) {
+ description += "uncontrolled, ";
+ }
+ description += (myHaveModifications ? "modified)" : "unmodified)");
+ }
+ myDescription->setText(description.c_str());
+}
+
+
+void
+GNETLSEditor::cleanup() {
+ if (myCurrentJunction) {
+ myCurrentJunction->selectTLS(false);
+ }
+ // clean data structures
+ myCurrentJunction = 0;
+ myHaveModifications = false;
+ delete myEditedDef;
+ myEditedDef = 0;
+ buildIinternalLanes(0); // only clears
+ // clean up controls
+ myOffset->setText("");
+ myDefinitions.clear();
+ myDefBox->hide();
+ initPhaseTable(); // only clears when there are no definitions
+ myCycleDuration->hide();
+ updateDescription();
+}
+
+
+void
+GNETLSEditor::buildIinternalLanes(NBTrafficLightDefinition* tlDef) {
+ // clean up previous objects
+ SUMORTree& rtree = myUpdateTarget->getNet()->getVisualisationSpeedUp();
+ for (TLIndexMap::iterator it = myInternalLanes.begin(); it != myInternalLanes.end(); it++) {
+ std::vector<GNEInternalLane*> lanes = it->second;
+ for (std::vector<GNEInternalLane*>::iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
+ rtree.removeAdditionalGLObject(*it_lane);
+ delete *it_lane;
+ }
+ }
+ myInternalLanes.clear();
+ if (tlDef != 0) {
+ const int NUM_POINTS = 10;
+ assert(myCurrentJunction);
+ SUMORTree& rtree = myUpdateTarget->getNet()->getVisualisationSpeedUp();
+ NBNode* nbn = myCurrentJunction->getNBNode();
+ std::string innerID = ":" + nbn->getID(); // see NWWriter_SUMO::writeInternalEdges
+ const NBConnectionVector& links = tlDef->getControlledLinks();
+ for (NBConnectionVector::const_iterator it = links.begin(); it != links.end(); it++) {
+ int tlIndex = it->getTLIndex();
+ PositionVector shape = nbn->computeInternalLaneShape(it->getFrom(), NBEdge::Connection(it->getFromLane(),
+ it->getTo(), it->getToLane()), NUM_POINTS);
+ GNEInternalLane* ilane = new GNEInternalLane(this, innerID + '_' + toString(tlIndex), shape, tlIndex);
+ rtree.addAdditionalGLObject(ilane);
+ myInternalLanes[tlIndex].push_back(ilane);
+ }
+ const std::vector<NBNode::Crossing>& crossings = nbn->getCrossings();
+ for (std::vector<NBNode::Crossing>::const_iterator it = crossings.begin(); it != crossings.end(); it++) {
+ const NBNode::Crossing& c = *it;
+ GNEInternalLane* ilane = new GNEInternalLane(this, c.id, c.shape, c.tlLinkNo);
+ rtree.addAdditionalGLObject(ilane);
+ myInternalLanes[c.tlLinkNo].push_back(ilane);
+ }
+ }
+}
+
+
+void
+GNETLSEditor::initDefinitions() {
+ myDefinitions.clear();
+ myDefBox->clearItems();
+ assert(myCurrentJunction);
+ NBNode* nbn = myCurrentJunction->getNBNode();
+ std::set<NBTrafficLightDefinition*> tldefs = nbn->getControllingTLS();
+ for (std::set<NBTrafficLightDefinition*>::iterator it = tldefs.begin(); it != tldefs.end(); it++) {
+ myDefinitions.push_back(*it);
+ std::string item = (*it)->getID() + ", " + (*it)->getProgramID();
+ myDefBox->appendItem(item.c_str());
+ }
+ if (myDefinitions.size() > 0) {
+ myDefBox->setCurrentItem(0);
+ myDefBox->setNumVisible(myDefBox->getNumItems());
+ myDefBox->show();
+ onCmdDefSwitch(0, 0, 0);
+ }
+ updateDescription();
+}
+
+
+void
+GNETLSEditor::initPhaseTable(unsigned int index) {
+ myPhaseTable->setVisibleRows(1);
+ myPhaseTable->setVisibleColumns(2);
+ myPhaseTable->hide();
+ if (myDefinitions.size() > 0) {
+ const std::vector<NBTrafficLightLogic::PhaseDefinition>& phases = getPhases();
+ myPhaseTable->setTableSize((int)phases.size(), 2);
+ myPhaseTable->setVisibleRows((int)phases.size());
+ myPhaseTable->setVisibleColumns(2);
+ for (unsigned int row = 0; row < phases.size(); row++) {
+ myPhaseTable->setItemText(row, 0, toString(STEPS2TIME(phases[row].duration)).c_str());
+ myPhaseTable->setItemText(row, 1, phases[row].state.c_str());
+ myPhaseTable->getItem(row, 1)->setJustify(FXTableItem::LEFT);
+ }
+ myPhaseTable->fitColumnsToContents(0, 2);
+ const int maxWidth = WIDTH - 4;
+ int desiredWidth = myPhaseTable->getColumnWidth(0) +
+ myPhaseTable->getColumnWidth(1) + 3;
+ int spaceForScrollBar = desiredWidth > maxWidth ? 15 : 0;
+ myPhaseTable->setHeight((int)phases.size() * 21 + spaceForScrollBar); // experimental
+ myPhaseTable->setWidth(MIN2(desiredWidth, maxWidth));
+ myPhaseTable->setCurrentItem(index, 0);
+ myPhaseTable->selectRow(index, true);
+ myPhaseTable->show();
+ myPhaseTable->setFocus();
+ }
+ update();
+}
+
+
+const std::vector<NBTrafficLightLogic::PhaseDefinition>&
+GNETLSEditor::getPhases() {
+ return myEditedDef->getLogic()->getPhases();
+}
+
+
+void
+GNETLSEditor::handleChange(GNEInternalLane* lane) {
+ myHaveModifications = true;
+ if (myUpdateTarget->changeAllPhases()) {
+ const std::vector<NBTrafficLightLogic::PhaseDefinition>& phases = getPhases();
+ for (unsigned int row = 0; row < phases.size(); row++) {
+ myEditedDef->getLogic()->setPhaseState(row, lane->getTLIndex(), lane->getLinkState());
+ }
+ } else {
+ myEditedDef->getLogic()->setPhaseState(myPhaseTable->getCurrentRow(), lane->getTLIndex(), lane->getLinkState());
+ }
+ initPhaseTable(myPhaseTable->getCurrentRow());
+ myPhaseTable->setFocus();
+}
+
+
+void
+GNETLSEditor::handleMultiChange(GNELane* lane, FXObject* obj, FXSelector sel, void* data) {
+ if (myEditedDef != 0) {
+ myHaveModifications = true;
+ const NBConnectionVector& links = myEditedDef->getControlledLinks();
+ std::set<std::string> fromIDs;
+ fromIDs.insert(lane->getMicrosimID());
+ GNEEdge& edge = lane->getParentEdge();
+ // if neither the lane nor its edge are selected, apply changes to the whole edge
+ if (!gSelected.isSelected(GLO_EDGE, edge.getGlID()) && !gSelected.isSelected(GLO_LANE, lane->getGlID())) {
+ for (GNEEdge::LaneVector::const_iterator it_lane = edge.getLanes().begin(); it_lane != edge.getLanes().end(); it_lane++) {
+ fromIDs.insert((*it_lane)->getMicrosimID());
+ }
+ } else {
+ // if the edge is selected, apply changes to all lanes of all selected edges
+ if (gSelected.isSelected(GLO_EDGE, edge.getGlID())) {
+ std::vector<GNEEdge*> edges = myUpdateTarget->getNet()->retrieveEdges(true);
+ for (std::vector<GNEEdge*>::iterator it = edges.begin(); it != edges.end(); it++) {
+ for (GNEEdge::LaneVector::const_iterator it_lane = (*it)->getLanes().begin(); it_lane != (*it)->getLanes().end(); it_lane++) {
+ fromIDs.insert((*it_lane)->getMicrosimID());
+ }
+ }
+ }
+ // if the lane is selected, apply changes to all selected lanes
+ if (gSelected.isSelected(GLO_LANE, lane->getGlID())) {
+ std::vector<GNELane*> lanes = myUpdateTarget->getNet()->retrieveLanes(true);
+ for (std::vector<GNELane*>::iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
+ fromIDs.insert((*it_lane)->getMicrosimID());
+ }
+ }
+
+ }
+ // set new state for all connections from the chosen lane IDs
+ for (NBConnectionVector::const_iterator it = links.begin(); it != links.end(); it++) {
+ const NBConnection& c = *it;
+ if (fromIDs.count(c.getFrom()->getLaneID(c.getFromLane())) > 0) {
+ std::vector<GNEInternalLane*> lanes = myInternalLanes[c.getTLIndex()];
+ for (std::vector<GNEInternalLane*>::iterator it_lane = lanes.begin(); it_lane != lanes.end(); it_lane++) {
+ (*it_lane)->onDefault(obj, sel, data);
+ }
+ }
+ }
+ }
+}
+
+
+bool
+GNETLSEditor::controlsEdge(GNEEdge& edge) const {
+ if (myEditedDef != 0) {
+ const NBConnectionVector& links = myEditedDef->getControlledLinks();
+ for (NBConnectionVector::const_iterator it = links.begin(); it != links.end(); it++) {
+ if ((*it).getFrom()->getID() == edge.getMicrosimID()) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+
+SUMOTime
+GNETLSEditor::getSUMOTime(const FXString& string) {
+ assert(GNEAttributeCarrier::canParse<SUMOReal>(string.text()));
+ return TIME2STEPS(GNEAttributeCarrier::parse<SUMOReal>(string.text()));
+}
+
+
+void
+GNETLSEditor::updateCycleDuration() {
+ SUMOTime cycleDuration = 0;
+ for (std::vector<NBTrafficLightLogic::PhaseDefinition>::const_iterator it = getPhases().begin(); it != getPhases().end(); it++) {
+ cycleDuration += it->duration;
+ }
+ std::string text = "Cycle time: " + toString(STEPS2TIME(cycleDuration));
+ myCycleDuration->setText(text.c_str());
+}
+
+
+/****************************************************************************/
diff --git a/src/netedit/GNETLSEditor.h b/src/netedit/GNETLSEditor.h
new file mode 100644
index 0000000..1e3f561
--- /dev/null
+++ b/src/netedit/GNETLSEditor.h
@@ -0,0 +1,216 @@
+/****************************************************************************/
+/// @file GNETLSEditor.h
+/// @author Jakob Erdmann
+/// @date May 2011
+/// @version $Id: GNETLSEditor.h 19535 2015-12-05 13:47:18Z behrisch $
+///
+// The Widget for modifying traffic lights
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNETLSEditor_h
+#define GNETLSEditor_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <fx.h>
+#include <utils/xml/SUMOXMLDefinitions.h>
+#include <utils/gui/div/GUISelectedStorage.h>
+#include <netbuild/NBTrafficLightLogic.h>
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class NBTrafficLightDefinition;
+class NBLoadedSUMOTLDef;
+class GNEViewNet;
+class GNEEdge;
+class GNELane;
+class GNEUndoList;
+class GNEInternalLane;
+class GNEJunction;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNETLSEditor
+ * The Widget for modifying selections of network-elements
+ */
+class GNETLSEditor : public FXScrollWindow {
+ // FOX-declarations
+ FXDECLARE(GNETLSEditor)
+
+public:
+ /** @brief Constructor
+ * @param[in] parent The parent window
+ */
+ GNETLSEditor(FXComposite* parent, GNEViewNet* updateTarget, GNEUndoList* undoList);
+
+
+ /// @brief Destructor
+ ~GNETLSEditor();
+
+
+ FXFont* getHeaderFont() {
+ return myHeaderFont;
+ }
+
+ /** @brief edits the traffic light for the given junction
+ * @param[in] junction The junction of which the traffic light shall be edited
+ */
+ void editJunction(GNEJunction* junction);
+
+ /// @name FOX-callbacks
+ /// @{
+ /** @brief Called when the user presses the OK-Button
+ * saves any modifications
+ */
+ long onCmdOK(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Cancel-button
+ * discards any modifications
+ */
+ long onCmdCancel(FXObject*, FXSelector, void*);
+
+ /** @brief Called when the user presses the Corresponding-button */
+ long onCmdToggle(FXObject*, FXSelector, void*);
+ long onCmdGuess(FXObject*, FXSelector, void*);
+
+ long onCmdDefCreate(FXObject*, FXSelector, void*);
+ long onCmdDefDelete(FXObject*, FXSelector, void*);
+ long onCmdDefOffset(FXObject*, FXSelector, void*);
+ long onCmdDefSwitch(FXObject*, FXSelector, void*);
+ long onCmdDefRename(FXObject*, FXSelector, void*);
+ long onCmdDefSubRename(FXObject*, FXSelector, void*);
+ long onCmdDefAddOff(FXObject*, FXSelector, void*);
+
+ long onCmdPhaseSwitch(FXObject*, FXSelector, void*);
+ long onCmdPhaseCreate(FXObject*, FXSelector, void*);
+ long onCmdPhaseDelete(FXObject*, FXSelector, void*);
+ long onCmdPhaseEdit(FXObject*, FXSelector, void*);
+
+ long onCmdMakeRILSAConforming(FXObject*, FXSelector, void*);
+
+ long onUpdDefSwitch(FXObject*, FXSelector, void*);
+ long onUpdNeedsDef(FXObject*, FXSelector, void*);
+ long onUpdNeedsDefAndPhase(FXObject*, FXSelector, void*);
+ long onUpdDefCreate(FXObject*, FXSelector, void*);
+ long onUpdModified(FXObject*, FXSelector, void*);
+ /// @}
+
+ /// @brief update phase definition for the current traffic light and phase
+ void handleChange(GNEInternalLane* lane);
+
+ /// @brief update phase definition for the current traffic light and phase
+ void handleMultiChange(GNELane* lane, FXObject* obj, FXSelector sel, void* data);
+
+ /// @brief whether the given edge is controlled by the currently edited tlDef
+ bool controlsEdge(GNEEdge& edge) const;
+
+protected:
+ /// @brief FOX needs this
+ GNETLSEditor() {}
+
+private:
+ /// @brief the panel to hold all member widgets
+ FXVerticalFrame* myContentFrame;
+
+ /// @brief Font for the widget
+ FXFont* myHeaderFont;
+
+ /// @brief font for the phase table
+ FXFont* myTableFont;
+
+ /// @brief the label that shows the current editing state
+ FXLabel* myDescription;
+
+ /// @brief the junction of the tls is being modified
+ GNEJunction* myCurrentJunction;
+
+ /// @brief the undolist with wich to register changes
+ GNEUndoList* myUndoList;
+
+ /* @brief the window to inform when the tls is modfied */
+ GNEViewNet* myUpdateTarget;
+
+ /// @brief whether the current tls was modified
+ bool myHaveModifications;
+
+ /// @brief the internal lanes belonging the the current junction indexed by their tl-index
+ typedef std::map<int, std::vector<GNEInternalLane*> > TLIndexMap;
+ TLIndexMap myInternalLanes;
+
+ /// @brief the list of Definitions for the current junction
+ std::vector<NBTrafficLightDefinition*> myDefinitions;
+
+ /// @brief the traffic light definition being edited
+ NBLoadedSUMOTLDef* myEditedDef;
+
+ /// @brief the listbox for selecting the tl-definition to edit
+ FXListBox* myDefBox;
+
+ /// @brief the control for modifying offset
+ FXTextField* myOffset;
+
+ FXLabel* myCycleDuration;
+
+ /// @brief table for selecting and rearranging phases and for changing duration
+ FXTable* myPhaseTable;
+
+ /// @brief index of the phase being shown
+ unsigned int myPhaseIndex;
+
+ /// @brief the width of the widget
+ static const int WIDTH;
+
+private:
+ void updateDescription() const;
+
+ /// @brief cleans up previous lanes
+ void cleanup();
+
+ /* @brief builds internal lanes for the given tlDef */
+ void buildIinternalLanes(NBTrafficLightDefinition* tlDef);
+
+ /* @brief initializes the definitions and corresponding listbox */
+ void initDefinitions();
+
+ /* @brief initialies the phase table
+ * @param[in] index The index to select
+ */
+ void initPhaseTable(unsigned int index = 0);
+
+ /// @brief the phase of the current traffic light
+ const std::vector<NBTrafficLightLogic::PhaseDefinition>& getPhases();
+
+ /// @brief recomputes cycle duration and updates label
+ void updateCycleDuration();
+
+ /// @brief converts to SUMOTime
+ static SUMOTime getSUMOTime(const FXString& string);
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEUndoList.cpp b/src/netedit/GNEUndoList.cpp
new file mode 100644
index 0000000..445cd8b
--- /dev/null
+++ b/src/netedit/GNEUndoList.cpp
@@ -0,0 +1,162 @@
+/****************************************************************************/
+/// @file GNEUndoList.cpp
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEUndoList.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// FXUndoList is pretty dandy but some features are missing:
+// - we cannot find out wether we have currently begun an undo-group and
+// thus abort() is hard to use.
+// - onUpd-methods do not disable undo/redo while in an undo-group
+//
+// GNEUndoList inherits from FXUndoList and patches some methods. these are
+// prefixed with p_
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <iostream>
+#include <utils/common/UtilExceptions.h>
+#include "GNEUndoList.h"
+#include "GNEChange_Attribute.h"
+#include "GNEApplicationWindow.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNEUndoList) GNEUndoListMap[] = {
+ //FXMAPFUNC(SEL_COMMAND, FXUndoList::ID_REVERT, FXUndoList::onCmdRevert),
+ //FXMAPFUNC(SEL_COMMAND, FXUndoList::ID_UNDO, FXUndoList::onCmdUndo),
+ //FXMAPFUNC(SEL_COMMAND, FXUndoList::ID_REDO, FXUndoList::onCmdRedo),
+ //FXMAPFUNC(SEL_COMMAND, FXUndoList::ID_UNDO_ALL, FXUndoList::onCmdUndoAll),
+ //FXMAPFUNC(SEL_COMMAND, FXUndoList::ID_REDO_ALL, FXUndoList::onCmdRedoAll),
+ //
+ //FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_UNDO_COUNT, FXUndoList::onUpdUndoCount),
+ //FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_REDO_COUNT, FXUndoList::onUpdRedoCount),
+ //FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_CLEAR, FXUndoList::onUpdClear),
+ //FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_REVERT, FXUndoList::onUpdRevert),
+ FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_UNDO_ALL, GNEUndoList::p_onUpdUndo),
+ FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_REDO_ALL, GNEUndoList::p_onUpdRedo),
+ FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_UNDO, GNEUndoList::p_onUpdUndo),
+ FXMAPFUNC(SEL_UPDATE, FXUndoList::ID_REDO, GNEUndoList::p_onUpdRedo)
+};
+
+// ===========================================================================
+// FOX-declarations
+// ===========================================================================
+FXIMPLEMENT_ABSTRACT(GNEUndoList, FXUndoList, GNEUndoListMap, ARRAYNUMBER(GNEUndoListMap))
+
+
+void
+GNEUndoList::p_begin(const std::string& description) {
+ myCommandGroups.push(new CommandGroup(description));
+ begin(myCommandGroups.top());
+}
+
+
+void
+GNEUndoList::p_end() {
+ myCommandGroups.pop();
+ end();
+}
+
+
+void
+GNEUndoList::p_clear() {
+ p_abort();
+ clear();
+}
+
+
+void
+GNEUndoList::p_abort() {
+ while (hasCommandGroup()) {
+ myCommandGroups.top()->undo();
+ myCommandGroups.pop();
+ abort();
+ }
+}
+
+
+void
+GNEUndoList::undo() {
+ FXUndoList::undo();
+ myParent->updateControls();
+}
+
+
+void
+GNEUndoList::redo() {
+ FXUndoList::redo();
+ myParent->updateControls();
+}
+
+
+void
+GNEUndoList::p_add(GNEChange_Attribute* cmd) {
+ if (cmd->trueChange()) {
+ add(cmd, true);
+ } else {
+ delete cmd;
+ }
+}
+
+long
+GNEUndoList::p_onUpdUndo(FXObject* sender, FXSelector, void*) {
+ bool enable = canUndo() && !hasCommandGroup();
+ sender->handle(this, enable ? FXSEL(SEL_COMMAND, FXWindow::ID_ENABLE) : FXSEL(SEL_COMMAND, FXWindow::ID_DISABLE), 0);
+ FXString caption = undoName();
+ if (hasCommandGroup()) {
+ caption = ("Cannot Undo in the middle of " + myCommandGroups.top()->getDescription()).c_str();
+ } else if (!canUndo()) {
+ caption = "Undo";
+ }
+ // only set caption on menu item
+ if (dynamic_cast<FXMenuCommand*>(sender)) {
+ sender->handle(this, FXSEL(SEL_COMMAND, FXMenuCaption::ID_SETSTRINGVALUE), (void*)&caption);
+ }
+ return 1;
+}
+
+
+long
+GNEUndoList::p_onUpdRedo(FXObject* sender, FXSelector, void*) {
+ bool enable = canRedo() && !hasCommandGroup();
+ sender->handle(this, enable ? FXSEL(SEL_COMMAND, FXWindow::ID_ENABLE) : FXSEL(SEL_COMMAND, FXWindow::ID_DISABLE), 0);
+ FXString caption = redoName();
+ if (hasCommandGroup()) {
+ caption = ("Cannot Redo in the middle of " + myCommandGroups.top()->getDescription()).c_str();
+ } else if (!canRedo()) {
+ caption = "Redo";
+ }
+ // only set caption on menu item
+ if (dynamic_cast<FXMenuCommand*>(sender)) {
+ sender->handle(this, FXSEL(SEL_COMMAND, FXMenuCaption::ID_SETSTRINGVALUE), (void*)&caption);
+ }
+ return 1;
+}
+
diff --git a/src/netedit/GNEUndoList.h b/src/netedit/GNEUndoList.h
new file mode 100644
index 0000000..9806190
--- /dev/null
+++ b/src/netedit/GNEUndoList.h
@@ -0,0 +1,146 @@
+/****************************************************************************/
+/// @file GNEUndoList.h
+/// @author Jakob Erdmann
+/// @date Mar 2011
+/// @version $Id: GNEUndoList.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// FXUndoList is pretty dandy but some features are missing:
+// - we cannot find out wether we have currently begun an undo-group and
+// thus abort() is hard to use.
+// - onUpd-methods do not disable undo/redo while in an undo-group
+//
+// GNEUndoList inherits from FXUndoList and patches some methods. these are
+// prefixed with p_
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEUndoList_h
+#define GNEUndoList_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <stack>
+#include <fx.h>
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNEChange_Attribute;
+class GNEApplicationWindow;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEUndoList
+ */
+class GNEUndoList : public FXUndoList {
+ FXDECLARE_ABSTRACT(GNEUndoList)
+
+
+public:
+ /// constructor
+ /* be aware that "parent" may be not fully initialized when stored here,
+ so don't call any methods on it. */
+ GNEUndoList(GNEApplicationWindow* parent) : FXUndoList(), myParent(parent) {}
+
+ /**
+ * Begin undo command sub-group. This begins a new group of commands that
+ * are treated as a single command. Must eventually be followed by a
+ * matching end() after recording the sub-commands. The new sub-group
+ * will be appended to its parent group's undo list when end() is called.
+ */
+ void p_begin(const std::string& description);
+
+ /**
+ * End undo command sub-group. If the sub-group is still empty, it will
+ * be deleted; otherwise, the sub-group will be added as a new command
+ * into parent group.
+ * A matching begin() must have been called previously.
+ */
+ void p_end();
+
+ /**
+ * clears the undo list (implies abort)
+ */
+ void p_clear();
+
+ /**
+ * @brief reverts and discards ALL active command groups
+ */
+ void p_abort();
+
+ /**
+ * @brief undo the last command group
+ */
+ void undo();
+
+ /**
+ * @brief redo the last command group
+ */
+ void redo();
+
+ /**
+ * @brief special method, avoid empty changes, always execute
+ */
+ void p_add(GNEChange_Attribute* cmd);
+
+
+ long p_onUpdUndo(FXObject*, FXSelector, void*);
+ long p_onUpdRedo(FXObject*, FXSelector, void*);
+
+
+ bool hasCommandGroup() const {
+ return myCommandGroups.size() != 0;
+ }
+
+private:
+
+ class CommandGroup : public FXCommandGroup {
+ public:
+ CommandGroup(std::string description) : myDescription(description) {}
+
+ const std::string& getDescription() {
+ return myDescription;
+ }
+ FXString undoName() const {
+ return ("Undo " + myDescription).c_str();
+ }
+ FXString redoName() const {
+ return ("Redo " + myDescription).c_str();
+ }
+
+ private:
+ const std::string myDescription;
+ };
+
+ // the stack of currently active command groups
+ std::stack<CommandGroup*> myCommandGroups;
+
+ // the parent application for this undolist
+ GNEApplicationWindow* const myParent;
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEViewNet.cpp b/src/netedit/GNEViewNet.cpp
new file mode 100644
index 0000000..c160e06
--- /dev/null
+++ b/src/netedit/GNEViewNet.cpp
@@ -0,0 +1,1263 @@
+/****************************************************************************/
+/// @file GNEViewNet.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEViewNet.cpp 19535 2015-12-05 13:47:18Z behrisch $
+///
+// A view on the network being edited (adapted from GUIViewTraffic)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <iostream>
+#include <utility>
+#include <cmath>
+#include <limits>
+#include <foreign/polyfonts/polyfonts.h>
+#include <utils/gui/globjects/GLIncludes.h>
+#include <utils/foxtools/MFXImageHelper.h>
+#include <utils/foxtools/MFXCheckableButton.h>
+#include <utils/common/RGBColor.h>
+#include <utils/geom/PositionVector.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/gui/windows/GUIDanielPerspectiveChanger.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/windows/GUIDialog_ViewSettings.h>
+#include <utils/gui/settings/GUICompleteSchemeStorage.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/div/GLHelper.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+
+#include "GNEViewNet.h"
+#include "GNEEdge.h"
+#include "GNELane.h"
+#include "GNEJunction.h"
+#include "GNEPOI.h"
+#include "GNEApplicationWindow.h"
+#include "GNEViewParent.h"
+#include "GNENet.h"
+#include "GNEUndoList.h"
+#include "GNEInspector.h"
+#include "GNESelector.h"
+#include "GNEConnector.h"
+#include "GNETLSEditor.h"
+#include "GNEPoly.h"
+#include "GNECrossing.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNEViewNet) GNEViewNetMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_MODE_CHANGE, GNEViewNet::onCmdChangeMode),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SPLIT_EDGE, GNEViewNet::onCmdSplitEdge),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SPLIT_EDGE_BIDI, GNEViewNet::onCmdSplitEdgeBidi),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_REVERSE_EDGE, GNEViewNet::onCmdReverseEdge),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_ADD_REVERSE_EDGE, GNEViewNet::onCmdAddReversedEdge),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SET_EDGE_ENDPOINT, GNEViewNet::onCmdSetEdgeEndpoint),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_RESET_EDGE_ENDPOINT, GNEViewNet::onCmdResetEdgeEndpoint),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_STRAIGHTEN, GNEViewNet::onCmdStraightenEdges),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_SIMPLIFY_SHAPE, GNEViewNet::onCmdSimplifyShape),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DELETE_GEOMETRY, GNEViewNet::onCmdDeleteGeometry),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_DUPLICATE_LANE, GNEViewNet::onCmdDuplicateLane),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_NODE_SHAPE, GNEViewNet::onCmdNodeShape),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_NODE_REPLACE, GNEViewNet::onCmdNodeReplace),
+ FXMAPFUNC(SEL_COMMAND, MID_GNE_VIS_HEIGHT, GNEViewNet::onCmdVisualizeHeight)
+};
+
+// Object implementation
+FXIMPLEMENT(GNEViewNet, GUISUMOAbstractView, GNEViewNetMap, ARRAYNUMBER(GNEViewNetMap))
+
+// ===========================================================================
+// static member definitions
+// ===========================================================================
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+GNEViewNet::GNEViewNet(
+ FXComposite* tmpParent,
+ FXComposite* actualParent,
+ GUIMainWindow& app,
+ GNEViewParent* viewParent,
+ GNENet* net, FXGLVisual* glVis,
+ FXGLCanvas* share,
+ FXToolBar* toolBar) :
+ GUISUMOAbstractView(tmpParent, app, viewParent, net->getVisualisationSpeedUp(), glVis, share),
+ myNet(net),
+ myEditMode(GNE_MODE_MOVE),
+ myPreviousEditMode(GNE_MODE_MOVE),
+ myCreateEdgeSource(0),
+ myJunctionToMove(0),
+ myEdgeToMove(0),
+ myPolyToMove(0),
+ myMoveSelection(false),
+ myAmInRectSelect(false),
+ myToolbar(toolBar),
+ myEditModesCombo(0),
+ myEditModeNames(),
+ myUndoList(((GNEApplicationWindow*)myApp)->getUndoList()),
+ myInspector(0),
+ mySelector(0),
+ myCurrentPoly(0) {
+ // adding order is important
+ myInspector = new GNEInspector(actualParent, myUndoList);
+ myInspector->hide();
+ mySelector = new GNESelector(actualParent, this, myUndoList);
+ mySelector->hide();
+ myConnector = new GNEConnector(actualParent, this, myUndoList);
+ myConnector->hide();
+ myTLSEditor = new GNETLSEditor(actualParent, this, myUndoList);
+ myTLSEditor->hide();
+ // view must be the final member of actualParent
+ reparent(actualParent);
+
+ buildEditModeControls();
+ myUndoList->mark();
+ myNet->setUpdateTarget(this);
+ ((GUIDanielPerspectiveChanger*)myChanger)->setDragDelay(100000000); // 100 milliseconds
+
+ // init color schemes
+ GUIColorer laneColorer;
+ GUIColorScheme scheme = GUIColorScheme("uniform", RGBColor::BLACK, "road", true);
+ scheme.addColor(RGBColor::GREY, 1, "sidewalk");
+ scheme.addColor(RGBColor(192, 66, 44), 2, "bike lane");
+ scheme.addColor(RGBColor(200, 255, 200), 3, "green verge");
+ scheme.addColor(RGBColor(150, 200, 200), 4, "waterway");
+ scheme.addColor(RGBColor(92, 92, 92), 5, "no passenger"); // paths, service roads etc
+ laneColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by selection (lane-/streetwise)", RGBColor(128, 128, 128, 255), "unselected", true);
+ scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
+ laneColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by permission code", RGBColor(240, 240, 240), "nobody");
+ scheme.addColor(RGBColor(10, 10, 10), (SUMOReal)SVC_PASSENGER, "passenger");
+ scheme.addColor(RGBColor(128, 128, 128), (SUMOReal)SVC_PEDESTRIAN, "pedestrian");
+ scheme.addColor(RGBColor(80, 80, 80), (SUMOReal)(SVC_PEDESTRIAN | SVC_DELIVERY), "pedestrian_delivery");
+ scheme.addColor(RGBColor(192, 66, 44), (SUMOReal)SVC_BICYCLE, "bicycle");
+ scheme.addColor(RGBColor(40, 100, 40), (SUMOReal)SVC_BUS, "bus");
+ scheme.addColor(RGBColor(166, 147, 26), (SUMOReal)SVC_TAXI, "taxi");
+ scheme.addColor(RGBColor::BLACK, (SUMOReal)(SVCAll & ~SVC_NON_ROAD), "normal_road");
+ scheme.addColor(RGBColor::BLACK, (SUMOReal)(SVCAll & ~(SVC_PEDESTRIAN | SVC_NON_ROAD)), "disallow_pedestrian");
+ scheme.addColor(RGBColor(255, 206, 0), (SUMOReal)(SVCAll & ~(SVC_PEDESTRIAN | SVC_BICYCLE | SVC_MOPED | SVC_NON_ROAD)), "motorway");
+ scheme.addColor(RGBColor(150, 200, 200), (SUMOReal)SVC_SHIP, "waterway");
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)SVCAll, "all");
+ laneColorer.addScheme(scheme);
+
+ scheme = GUIColorScheme("by allowed speed (lanewise)", RGBColor::RED);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
+ scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
+ scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
+ scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
+ laneColorer.addScheme(scheme);
+
+ scheme = GUIColorScheme("by lane number (streetwise)", RGBColor::RED);
+ scheme.addColor(RGBColor::BLUE, (SUMOReal)5);
+ laneColorer.addScheme(scheme);
+
+ scheme = GUIColorScheme("by given length/geometrical length", RGBColor::BLACK);
+ scheme.addColor(RGBColor::RED, (SUMOReal)0.25);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)0.5);
+ scheme.addColor(RGBColor(179, 179, 179, 255), (SUMOReal)1.0);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)2.0);
+ scheme.addColor(RGBColor::BLUE, (SUMOReal)4.0);
+ laneColorer.addScheme(scheme);
+ laneColorer.addScheme(GUIColorScheme("by angle", RGBColor::YELLOW, "", true));
+
+ scheme = GUIColorScheme("by priority", RGBColor::YELLOW);
+ scheme.addColor(RGBColor::RED, (SUMOReal) - 20);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)20);
+ scheme.setAllowsNegativeValues(true);
+ laneColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by height at start", RGBColor::RED);
+ scheme.addColor(RGBColor::BLUE, (SUMOReal) - 10);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
+ scheme.addColor(RGBColor::MAGENTA, (SUMOReal)200);
+ scheme.setAllowsNegativeValues(true);
+ laneColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by height at segment start", RGBColor::RED);
+ scheme.addColor(RGBColor::BLUE, (SUMOReal) - 10);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)50);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
+ scheme.addColor(RGBColor::MAGENTA, (SUMOReal)200);
+ scheme.setAllowsNegativeValues(true);
+ laneColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by inclination", RGBColor::GREY);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal) .1);
+ scheme.addColor(RGBColor::RED, (SUMOReal) .3);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal) - .1);
+ scheme.addColor(RGBColor::BLUE, (SUMOReal) - .3);
+ scheme.setAllowsNegativeValues(true);
+ laneColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by segment inclination", RGBColor::GREY);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal) .1);
+ scheme.addColor(RGBColor::RED, (SUMOReal) .3);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal) - .1);
+ scheme.addColor(RGBColor::BLUE, (SUMOReal) - .3);
+ scheme.setAllowsNegativeValues(true);
+ laneColorer.addScheme(scheme);
+
+ myVisualizationSettings->laneColorer = laneColorer;
+
+ GUIColorer junctionColorer;
+ scheme = GUIColorScheme("uniform", RGBColor(102, 0, 0), "", true);
+ scheme.addColor(RGBColor(204, 0, 0), 1, "shape not computed");
+ scheme.addColor(RGBColor(153, 0, 0), 2, "geometry points");
+ junctionColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by selection", RGBColor(128, 128, 128, 255), "unselected", true);
+ scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
+ junctionColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by type", RGBColor::GREEN, "traffic_light", true);
+ scheme.addColor(RGBColor(0, 128, 0), 1, "traffic_light_unregulated");
+ scheme.addColor(RGBColor::YELLOW, 2, "priority");
+ scheme.addColor(RGBColor::RED, 3, "priority_stop");
+ scheme.addColor(RGBColor::BLUE, 4, "right_before_left");
+ scheme.addColor(RGBColor::CYAN, 5, "allway_stop");
+ scheme.addColor(RGBColor::GREY, 6, "district");
+ scheme.addColor(RGBColor::MAGENTA, 7, "unregulated");
+ scheme.addColor(RGBColor::BLACK, 8, "dead_end");
+ scheme.addColor(RGBColor::ORANGE, 9, "rail_signal");
+ scheme.addColor(RGBColor(192, 128, 64), 10, "zipper");
+ scheme.addColor(RGBColor(192, 255, 192), 11, "traffic_light_right_on_red");
+ junctionColorer.addScheme(scheme);
+ myVisualizationSettings->junctionColorer = junctionColorer;
+}
+
+
+GNEViewNet::~GNEViewNet() { }
+
+
+void
+GNEViewNet::doInit() {}
+
+
+void
+GNEViewNet::buildViewToolBars(GUIGlChildWindow& cw) {
+ /*
+ // build coloring tools
+ {
+ const std::vector<std::string> &names = gSchemeStorage.getNames();
+ for (std::vector<std::string>::const_iterator i=names.begin(); i!=names.end(); ++i) {
+ v.getColoringSchemesCombo().appendItem((*i).c_str());
+ if ((*i) == myVisualizationSettings->name) {
+ v.getColoringSchemesCombo().setCurrentItem(v.getColoringSchemesCombo().getNumItems()-1);
+ }
+ }
+ v.getColoringSchemesCombo().setNumVisible(5);
+ }
+ */
+
+ // locator button for junctions
+ new FXButton(cw.getLocatorPopup(),
+ "\tLocate Junction\tLocate a junction within the network.",
+ GUIIconSubSys::getIcon(ICON_LOCATEJUNCTION), &cw, MID_LOCATEJUNCTION,
+ ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
+ // locator button for edges
+ new FXButton(cw.getLocatorPopup(),
+ "\tLocate Street\tLocate a street within the network.",
+ GUIIconSubSys::getIcon(ICON_LOCATEEDGE), &cw, MID_LOCATEEDGE,
+ ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
+ // locator button for tls
+ new FXButton(cw.getLocatorPopup(),
+ "\tLocate TLS\tLocate a traffic light within the network.",
+ GUIIconSubSys::getIcon(ICON_LOCATETLS), &cw, MID_LOCATETLS,
+ ICON_ABOVE_TEXT | FRAME_THICK | FRAME_RAISED);
+}
+
+
+bool
+GNEViewNet::setColorScheme(const std::string& name) {
+ if (!gSchemeStorage.contains(name)) {
+ return false;
+ }
+ if (myVisualizationChanger != 0) {
+ if (myVisualizationChanger->getCurrentScheme() != name) {
+ myVisualizationChanger->setCurrentScheme(name);
+ }
+ }
+ myVisualizationSettings = &gSchemeStorage.get(name.c_str());
+ update();
+ return true;
+}
+
+
+void
+GNEViewNet::setStatusBarText(const std::string& text) {
+ myApp->setStatusBarText(text);
+}
+
+
+int
+GNEViewNet::doPaintGL(int mode, const Boundary& bound) {
+ // init view settings
+ glRenderMode(mode);
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+ glDisable(GL_TEXTURE_2D);
+ glDisable(GL_ALPHA_TEST);
+ glDisable(GL_BLEND);
+ glEnable(GL_DEPTH_TEST);
+
+ // visualize rectangular selection
+ if (myAmInRectSelect) {
+ glPushMatrix();
+ glTranslated(0, 0, GLO_MAX - 1);
+ GLHelper::setColor(GNENet::selectionColor);
+ glLineWidth(2);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
+ glBegin(GL_QUADS);
+ glVertex2d(mySelCorner1.x(), mySelCorner1.y());
+ glVertex2d(mySelCorner1.x(), mySelCorner2.y());
+ glVertex2d(mySelCorner2.x(), mySelCorner2.y());
+ glVertex2d(mySelCorner2.x(), mySelCorner1.y());
+ glEnd();
+ glPopMatrix();
+ }
+
+ // compute lane width
+ SUMOReal lw = m2p(SUMO_const_laneWidth);
+ // draw decals (if not in grabbing mode)
+ if (!myUseToolTips) {
+ drawDecals();
+ if (myVisualizationSettings->showGrid) {
+ paintGLGrid();
+ }
+ }
+ glLineWidth(1);
+ glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
+ float minB[2];
+ float maxB[2];
+ minB[0] = bound.xmin();
+ minB[1] = bound.ymin();
+ maxB[0] = bound.xmax();
+ maxB[1] = bound.ymax();
+ myVisualizationSettings->scale = lw;
+ glEnable(GL_POLYGON_OFFSET_FILL);
+ glEnable(GL_POLYGON_OFFSET_LINE);
+ myVisualizationSettings->editMode = myEditMode;
+ int hits2 = myGrid->Search(minB, maxB, *myVisualizationSettings);
+
+ glTranslated(0, 0, GLO_ADDITIONAL);
+ for (std::map<GUIGlObject*, int>::iterator i = myAdditionallyDrawn.begin(); i != myAdditionallyDrawn.end(); ++i) {
+ (i->first)->drawGLAdditional(this, *myVisualizationSettings);
+ }
+ glPopMatrix();
+ return hits2;
+}
+
+
+long
+GNEViewNet::onLeftBtnPress(FXObject* obj, FXSelector sel, void* data) {
+ FXEvent* e = (FXEvent*) data;
+ setFocus();
+ // interpret object under curser
+ if (makeCurrent()) {
+ unsigned int id = getObjectUnderCursor();
+ GUIGlObject* pointed = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ GNEJunction* pointed_junction = 0;
+ GNELane* pointed_lane = 0;
+ GNEEdge* pointed_edge = 0;
+ GNEPOI* pointed_poi = 0;
+ GNEPoly* pointed_poly = 0;
+ GNECrossing* pointed_crossing = 0;
+ if (pointed) {
+ switch (pointed->getType()) {
+ case GLO_JUNCTION:
+ pointed_junction = (GNEJunction*)pointed;
+ break;
+ case GLO_EDGE:
+ pointed_edge = (GNEEdge*)pointed;
+ break;
+ case GLO_LANE:
+ pointed_lane = (GNELane*)pointed;
+ pointed_edge = &(pointed_lane->getParentEdge());
+ break;
+ case GLO_POI:
+ pointed_poi = (GNEPOI*)pointed;
+ break;
+ case GLO_POLYGON:
+ pointed_poly = (GNEPoly*)pointed;
+ break;
+ case GLO_CROSSING:
+ pointed_crossing = (GNECrossing*)pointed;
+ break;
+ default:
+ pointed = 0;
+ break;
+ }
+ }
+
+ // decide what to do based on mode
+ switch (myEditMode) {
+ case GNE_MODE_CREATE_EDGE:
+ if ((e->state & CONTROLMASK) == 0) {
+ // allow moving when control is held down
+ if (!myUndoList->hasCommandGroup()) {
+ myUndoList->p_begin("create new edge");
+ }
+ if (!pointed_junction) {
+ pointed_junction = myNet->createJunction(getPositionInformation(), myUndoList);
+ }
+ if (myCreateEdgeSource == 0) {
+ myCreateEdgeSource = pointed_junction;
+ myCreateEdgeSource->markAsCreateEdgeSource();
+ update();
+ } else {
+ if (myCreateEdgeSource != pointed_junction) {
+ // may fail to prevent double edges
+ GNEEdge* newEdge = myNet->createEdge(
+ myCreateEdgeSource, pointed_junction, myInspector->getEdgeTemplate(), myUndoList);
+ if (newEdge) {
+ if (myAutoCreateOppositeEdge->getCheck()) {
+ myNet->createEdge(
+ pointed_junction, myCreateEdgeSource, myInspector->getEdgeTemplate(), myUndoList);
+ }
+ myCreateEdgeSource->unMarkAsCreateEdgeSource();
+ if (myUndoList->hasCommandGroup()) {
+ myUndoList->p_end();
+ } else {
+ std::cout << "edge created without an open CommandGroup )-:\n";
+ }
+ if (myChainCreateEdge->getCheck()) {
+ myCreateEdgeSource = pointed_junction;
+ myCreateEdgeSource->markAsCreateEdgeSource();
+ myUndoList->p_begin("create new edge");
+ } else {
+ myCreateEdgeSource = 0;
+ }
+ } else {
+ setStatusBarText("An edge with the same geometry already exists!");
+ }
+ } else {
+ setStatusBarText("Start- and endpoint for an edge must be distinct!");
+ }
+ update();
+ }
+ }
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ break;
+
+ case GNE_MODE_MOVE:
+ if (pointed_poly) {
+ myMoveSrc = getPositionInformation();
+ myPolyToMove = pointed_poly;
+ } else if (pointed_junction) {
+ if (gSelected.isSelected(GLO_JUNCTION, pointed_junction->getGlID())) {
+ myMoveSelection = true;
+ myMoveSrc = getPositionInformation();
+ } else {
+ myJunctionToMove = pointed_junction;
+ }
+ } else if (pointed_edge) {
+ if (gSelected.isSelected(GLO_EDGE, pointed_edge->getGlID())) {
+ myMoveSelection = true;
+ } else {
+ myEdgeToMove = pointed_edge;
+ }
+ myMoveSrc = getPositionInformation();
+ } else {
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ }
+ update();
+ break;
+
+ case GNE_MODE_DELETE:
+ if (pointed_junction) {
+ /*
+ if (gSelected.isSelected(GLO_JUNCTION, pointed_junction->getGlID())) {
+ deleteSelectedJunctions();
+ }
+ */
+ myNet->deleteJunction(pointed_junction, myUndoList);
+ } else if (pointed_lane && !mySelectEdges->getCheck()) {
+ myNet->deleteLane(pointed_lane, myUndoList);
+ } else if (pointed_edge) {
+ /*
+ if (gSelected.isSelected(GLO_EDGE, pointed_edge->getGlID())) {
+ deleteSelectedEdges();
+ }
+ */
+ myNet->deleteGeometryOrEdge(pointed_edge, getPositionInformation(), myUndoList);
+ } else if (pointed_poi) {
+ // XXX this is a dirty dirty hack! implemente GNEChange_POI
+ myNet->getShapeContainer().removePOI(pointed_poi->getMicrosimID());
+ update();
+ } else {
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ }
+ break;
+
+ case GNE_MODE_INSPECT: {
+ GNEAttributeCarrier* pointedAC = 0;
+ GUIGlObject* pointedO = 0;
+ if (pointed_junction) {
+ pointedAC = pointed_junction;
+ pointedO = pointed_junction;
+ } else if (pointed_lane) { // implies pointed_edge
+ if (selectEdges()) {
+ pointedAC = pointed_edge;
+ pointedO = pointed_edge;
+ } else {
+ pointedAC = pointed_lane;
+ pointedO = pointed_lane;
+ }
+ } else if (pointed_edge) {
+ pointedAC = pointed_edge;
+ pointedO = pointed_edge;
+ } else if (pointed_crossing) {
+ pointedAC = pointed_crossing;
+ pointedO = pointed_crossing;
+ }
+ std::vector<GNEAttributeCarrier*> selected;
+ if (pointedO && gSelected.isSelected(pointedO->getType(), pointedO->getGlID())) {
+ std::set<GUIGlID> selectedIDs = gSelected.getSelected(pointedO->getType());
+ selected = myNet->retrieveAttributeCarriers(selectedIDs, pointedO->getType());
+ } else if (pointedAC != 0) {
+ selected.push_back(pointedAC);
+ }
+ myInspector->inspect(selected);
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ update();
+ break;
+ }
+
+ case GNE_MODE_SELECT:
+ if (pointed_lane && selectEdges()) {
+ gSelected.toggleSelection(pointed_edge->getGlID());
+ } else if (pointed) {
+ gSelected.toggleSelection(pointed->getGlID());
+ }
+
+ myAmInRectSelect = (((FXEvent*)data)->state & SHIFTMASK) != 0;
+ if (myAmInRectSelect) {
+ mySelCorner1 = getPositionInformation();
+ mySelCorner2 = getPositionInformation();
+ } else {
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ }
+ update();
+ break;
+
+ case GNE_MODE_CONNECT:
+ if (pointed_lane) {
+ const bool mayPass = (((FXEvent*)data)->state & SHIFTMASK) != 0;
+ const bool allowConflict = (((FXEvent*)data)->state & CONTROLMASK) != 0;
+ myConnector->handleLaneClick(pointed_lane, mayPass, allowConflict, true);
+ update();
+ }
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ break;
+
+ case GNE_MODE_TLS:
+ if (pointed_junction) {
+ myTLSEditor->editJunction(pointed_junction);
+ update();
+ }
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ break;
+
+ default:
+ GUISUMOAbstractView::onLeftBtnPress(obj, sel, data);
+ }
+ makeNonCurrent();
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onLeftBtnRelease(FXObject* obj, FXSelector sel, void* data) {
+ GUISUMOAbstractView::onLeftBtnRelease(obj, sel, data);
+ if (myPolyToMove) {
+ myPolyToMove = 0;
+ } else if (myJunctionToMove) {
+ // position is already up to date but we must register with myUndoList
+ if (!mergeJunctions(myJunctionToMove)) {
+ myJunctionToMove->registerMove(myUndoList);
+ }
+ myJunctionToMove = 0;
+ } else if (myEdgeToMove) {
+ // shape is already up to date but we must register with myUndoList
+ const std::string& newShape = myEdgeToMove->getAttribute(SUMO_ATTR_SHAPE);
+ myEdgeToMove->setAttribute(SUMO_ATTR_SHAPE, newShape, myUndoList);
+ myEdgeToMove = 0;
+ } else if (myMoveSelection) {
+ // positions and shapes are already up to date but we must register with myUndoList
+ myNet->finishMoveSelection(myUndoList);
+ myMoveSelection = false;
+ } else if (myAmInRectSelect) {
+ myAmInRectSelect = false;
+ // shift held down on mouse-down and mouse-up
+ if (((FXEvent*)data)->state & SHIFTMASK) {
+ if (makeCurrent()) {
+ Boundary b;
+ b.add(mySelCorner1);
+ b.add(mySelCorner2);
+ mySelector->handleIDs(getObjectsInBoundary(b), selectEdges());
+ makeNonCurrent();
+ }
+ }
+ update();
+ }
+ return 1;
+}
+
+long
+GNEViewNet::onMouseMove(FXObject* obj, FXSelector sel, void* data) {
+ GUISUMOAbstractView::onMouseMove(obj, sel, data);
+ if (myPolyToMove) {
+ myMoveSrc = myPolyToMove->moveGeometry(myMoveSrc, getPositionInformation());
+ } else if (myJunctionToMove) {
+ myJunctionToMove->move(getPositionInformation());
+ } else if (myEdgeToMove) {
+ myMoveSrc = myEdgeToMove->moveGeometry(myMoveSrc, getPositionInformation());
+ } else if (myMoveSelection) {
+ Position moveTarget = getPositionInformation();
+ myNet->moveSelection(myMoveSrc, moveTarget);
+ myMoveSrc = moveTarget;
+ } else if (myAmInRectSelect) {
+ mySelCorner2 = getPositionInformation();
+ update();
+ }
+ return 1;
+}
+
+
+void
+GNEViewNet::abortOperation(bool clearSelection) {
+ setFocus(); // steal focus from any text fields
+ if (myCreateEdgeSource) {
+ myCreateEdgeSource->unMarkAsCreateEdgeSource();
+ myCreateEdgeSource = 0;
+ } else if (myEditMode == GNE_MODE_SELECT) {
+ myAmInRectSelect = false;
+ if (clearSelection) {
+ gSelected.clear();
+ }
+ } else if (myEditMode == GNE_MODE_CONNECT) {
+ myConnector->onCmdCancel(0, 0, 0);
+ } else if (myEditMode == GNE_MODE_TLS) {
+ myTLSEditor->onCmdCancel(0, 0, 0);
+ } else if (myEditMode == GNE_MODE_MOVE) {
+ removeCurrentPoly();
+ }
+ myUndoList->p_abort();
+}
+
+
+void
+GNEViewNet::hotkeyDel() {
+ if (myEditMode == GNE_MODE_CONNECT || myEditMode == GNE_MODE_TLS) {
+ setStatusBarText("Cannot delete in this mode");
+ } else {
+ myUndoList->p_begin("delete selection");
+ deleteSelectedJunctions();
+ deleteSelectedEdges();
+ myUndoList->p_end();
+ }
+}
+
+
+void
+GNEViewNet::hotkeyEnter() {
+ if (myEditMode == GNE_MODE_CONNECT) {
+ myConnector->onCmdOK(0, 0, 0);
+ } else if (myEditMode == GNE_MODE_TLS) {
+ myTLSEditor->onCmdOK(0, 0, 0);
+ } else if (myEditMode == GNE_MODE_MOVE && myCurrentPoly != 0) {
+ if (myCurrentPoly->getEditedJunction() != 0) {
+ myCurrentPoly->getEditedJunction()->setAttribute(SUMO_ATTR_SHAPE, toString(myCurrentPoly->getShape()), myUndoList);
+ removeCurrentPoly();
+ update();
+ }
+ }
+}
+
+
+long
+GNEViewNet::onCmdChangeMode(FXObject*, FXSelector, void* data) {
+ setEditMode(myEditModeNames.get((char*) data));
+ return 1;
+}
+
+
+void
+GNEViewNet::setEditModeFromHotkey(FXushort selid) {
+ switch (selid) {
+ case MID_GNE_MODE_CREATE_EDGE:
+ setEditMode(GNE_MODE_CREATE_EDGE);
+ break;
+ case MID_GNE_MODE_MOVE:
+ setEditMode(GNE_MODE_MOVE);
+ break;
+ case MID_GNE_MODE_DELETE:
+ setEditMode(GNE_MODE_DELETE);
+ break;
+ case MID_GNE_MODE_INSPECT:
+ setEditMode(GNE_MODE_INSPECT);
+ break;
+ case MID_GNE_MODE_SELECT:
+ setEditMode(GNE_MODE_SELECT);
+ break;
+ case MID_GNE_MODE_CONNECT:
+ setEditMode(GNE_MODE_CONNECT);
+ break;
+ case MID_GNE_MODE_TLS:
+ setEditMode(GNE_MODE_TLS);
+ break;
+ default:
+ FXMessageBox::error(this, MBOX_OK, "invalid edit mode", "%s", "...");
+ break;
+ }
+ myEditModesCombo->setCurrentItem(myEditModesCombo->findItem(myEditModeNames.getString(myEditMode).c_str()));
+}
+
+
+void
+GNEViewNet::markPopupPosition() {
+ myPopupSpot = getPositionInformation();
+}
+
+
+GNEJunction*
+GNEViewNet::getJunctionAtCursorPosition(Position& /* pos */) {
+ GNEJunction* junction = 0;
+ if (makeCurrent()) {
+ unsigned int id = getObjectAtPosition(myPopupSpot);
+ GUIGlObject* pointed = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ if (pointed) {
+ switch (pointed->getType()) {
+ case GLO_JUNCTION:
+ junction = (GNEJunction*)pointed;
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ return junction;
+}
+
+
+
+
+GNEEdge*
+GNEViewNet::getEdgeAtCursorPosition(Position& /* pos */) {
+ GNEEdge* edge = 0;
+ if (makeCurrent()) {
+ unsigned int id = getObjectAtPosition(myPopupSpot);
+ GUIGlObject* pointed = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ if (pointed) {
+ switch (pointed->getType()) {
+ case GLO_EDGE:
+ edge = (GNEEdge*)pointed;
+ break;
+ case GLO_LANE:
+ edge = &(((GNELane*)pointed)->getParentEdge());
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ return edge;
+}
+
+
+GNELane*
+GNEViewNet::getLaneAtCurserPosition(Position& /* pos */) {
+ GNELane* lane = 0;
+ if (makeCurrent()) {
+ unsigned int id = getObjectAtPosition(myPopupSpot);
+ GUIGlObject* pointed = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ if (pointed) {
+ if (pointed->getType() == GLO_LANE) {
+ lane = (GNELane*)pointed;
+ }
+ }
+ }
+ return lane;
+}
+
+
+std::set<GNEEdge*>
+GNEViewNet::getEdgesAtCursorPosition(Position& /* pos */) {
+ std::set<GNEEdge*> result;
+ if (makeCurrent()) {
+ const std::vector<GUIGlID> ids = getObjectsAtPosition(myPopupSpot, 1.0);
+ for (std::vector<GUIGlID>::const_iterator it = ids.begin(); it != ids.end(); ++it) {
+ GUIGlObject* pointed = GUIGlObjectStorage::gIDStorage.getObjectBlocking(*it);
+ GUIGlObjectStorage::gIDStorage.unblockObject(*it);
+ if (pointed) {
+ switch (pointed->getType()) {
+ case GLO_EDGE:
+ result.insert((GNEEdge*)pointed);
+ break;
+ case GLO_LANE:
+ result.insert(&(((GNELane*)pointed)->getParentEdge()));
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ }
+ return result;
+}
+
+
+long
+GNEViewNet::onCmdSplitEdge(FXObject*, FXSelector, void*) {
+ GNEEdge* edge = getEdgeAtCursorPosition(myPopupSpot);
+ if (edge != 0) {
+ myNet->splitEdge(edge, edge->getSplitPos(myPopupSpot), myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdSplitEdgeBidi(FXObject*, FXSelector, void*) {
+ std::set<GNEEdge*> edges = getEdgesAtCursorPosition(myPopupSpot);
+ if (edges.size() != 0) {
+ myNet->splitEdgesBidi(edges, (*edges.begin())->getSplitPos(myPopupSpot), myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdReverseEdge(FXObject*, FXSelector, void*) {
+ GNEEdge* edge = getEdgeAtCursorPosition(myPopupSpot);
+ if (edge != 0) {
+ myNet->reverseEdge(edge, myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdAddReversedEdge(FXObject*, FXSelector, void*) {
+ GNEEdge* edge = getEdgeAtCursorPosition(myPopupSpot);
+ if (edge != 0) {
+ myNet->addReversedEdge(edge, myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdSetEdgeEndpoint(FXObject*, FXSelector, void*) {
+ GNEEdge* edge = getEdgeAtCursorPosition(myPopupSpot);
+ if (edge != 0) {
+ edge->setEndpoint(myPopupSpot, myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdResetEdgeEndpoint(FXObject*, FXSelector, void*) {
+ GNEEdge* edge = getEdgeAtCursorPosition(myPopupSpot);
+ if (edge != 0) {
+ edge->resetEndpoint(myPopupSpot, myUndoList);
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdStraightenEdges(FXObject*, FXSelector, void*) {
+ GNEEdge* edge = getEdgeAtCursorPosition(myPopupSpot);
+ if (edge != 0) {
+ if (gSelected.isSelected(GLO_EDGE, edge->getGlID())) {
+ myUndoList->p_begin("straighten selected edges");
+ std::vector<GNEEdge*> edges = myNet->retrieveEdges(true);
+ for (std::vector<GNEEdge*>::iterator it = edges.begin(); it != edges.end(); it++) {
+ (*it)->setAttribute(SUMO_ATTR_SHAPE, "", myUndoList);
+ }
+ myUndoList->p_end();
+ } else {
+ myUndoList->p_begin("straighten edge");
+ edge->setAttribute(SUMO_ATTR_SHAPE, "", myUndoList);
+ myUndoList->p_end();
+ }
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdSimplifyShape(FXObject*, FXSelector, void*) {
+ if (myCurrentPoly != 0) {
+ myCurrentPoly->simplifyShape();
+ update();
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdDeleteGeometry(FXObject*, FXSelector, void*) {
+ if (myCurrentPoly != 0) {
+ myCurrentPoly->deleteGeometryNear(myPopupSpot);
+ update();
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdDuplicateLane(FXObject*, FXSelector, void*) {
+ GNELane* lane = getLaneAtCurserPosition(myPopupSpot);
+ if (lane != 0) {
+ if (gSelected.isSelected(GLO_LANE, lane->getGlID())) {
+ myUndoList->p_begin("duplicate selected lanes");
+ std::vector<GNELane*> lanes = myNet->retrieveLanes(true);
+ for (std::vector<GNELane*>::iterator it = lanes.begin(); it != lanes.end(); it++) {
+ myNet->duplicateLane(*it, myUndoList);
+ }
+ myUndoList->p_end();
+ } else {
+ myUndoList->p_begin("duplicate lane");
+ myNet->duplicateLane(lane, myUndoList);
+ myUndoList->p_end();
+ }
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdNodeShape(FXObject*, FXSelector, void*) {
+ GNEJunction* junction = getJunctionAtCursorPosition(myPopupSpot);
+ if (junction != 0) {
+ if (myCurrentPoly == 0) {
+ if (junction->getNBNode()->getShape().size() > 1) {
+ setEditModeFromHotkey(MID_GNE_MODE_MOVE);
+ //std::cout << junction->getNBNode()->getShape() << "\n";
+ junction->getNBNode()->computeNodeShape(-1);
+ if (myCurrentPoly != 0) {
+ myNet->getVisualisationSpeedUp().removeAdditionalGLObject(myCurrentPoly);
+ delete myCurrentPoly;
+ myCurrentPoly = 0;
+ }
+ PositionVector shape = junction->getNBNode()->getShape();
+ shape.closePolygon();
+ myCurrentPoly = new GNEPoly(myNet, junction, "node_shape:" + junction->getMicrosimID(), "node shape",
+ shape, false, RGBColor::GREEN, GLO_POLYGON);
+ myCurrentPoly->setLineWidth(0.3);
+ myNet->getVisualisationSpeedUp().addAdditionalGLObject(myCurrentPoly);
+
+ update();
+ }
+ } else {
+ junction->setAttribute(SUMO_ATTR_SHAPE, toString(myCurrentPoly->getShape()), myUndoList);
+ removeCurrentPoly();
+ update();
+ }
+ }
+ return 1;
+}
+
+
+void
+GNEViewNet::removeCurrentPoly() {
+ if (myCurrentPoly != 0) {
+ myNet->getVisualisationSpeedUp().removeAdditionalGLObject(myCurrentPoly);
+ delete myCurrentPoly;
+ myCurrentPoly = 0;
+ }
+}
+
+
+long
+GNEViewNet::onCmdNodeReplace(FXObject*, FXSelector, void*) {
+ GNEJunction* junction = getJunctionAtCursorPosition(myPopupSpot);
+ if (junction != 0) {
+ myNet->replaceJunctionByGeometry(junction, myUndoList);
+ update();
+ }
+ return 1;
+}
+
+
+long
+GNEViewNet::onCmdVisualizeHeight(FXObject*, FXSelector, void* /* data */) {
+ if (myVisualizeHeight->getCheck()) {
+ myVisualizationSettings->laneColorer.setActive(1); // colorZ
+ } else {
+ myVisualizationSettings->laneColorer.setActive(0); // default
+ }
+ update();
+ return 1;
+}
+
+// ===========================================================================
+// private
+// ===========================================================================
+void
+GNEViewNet::setEditMode(EditMode mode) {
+ setStatusBarText("");
+ abortOperation(false);
+ if (mode == myEditMode) {
+ // when trying to switch to the existing mode, toggle with previous instead
+ // not quite sure whether this is useful
+ //myEditMode = myPreviousEditMode;
+ //myPreviousEditMode = mode;
+ setStatusBarText("Mode already selected");
+ } else {
+ myPreviousEditMode = myEditMode;
+ myEditMode = mode;
+ myVisualizationSettings->laneColorer.setActive(0); //default
+ switch (mode) {
+ case GNE_MODE_CONNECT:
+ case GNE_MODE_TLS:
+ // modes which depend on computed data
+ myNet->computeEverything((GNEApplicationWindow*)myApp);
+ break;
+ case GNE_MODE_INSPECT:
+ if (myVisualizeHeight->getCheck()) {
+ myVisualizationSettings->laneColorer.setActive(1); // colorZ
+ }
+ default:
+ break;
+ }
+ }
+ updateModeSpecificControls();
+}
+
+
+void
+GNEViewNet::buildEditModeControls() {
+ // initialize mappings
+ myEditModeNames.insert("(e) Create Edge", GNE_MODE_CREATE_EDGE);
+ myEditModeNames.insert("(m) Move", GNE_MODE_MOVE);
+ myEditModeNames.insert("(d) Delete", GNE_MODE_DELETE);
+ myEditModeNames.insert("(i) Inspect", GNE_MODE_INSPECT);
+ myEditModeNames.insert("(s) Select", GNE_MODE_SELECT);
+ myEditModeNames.insert("(c) Connect", GNE_MODE_CONNECT);
+ myEditModeNames.insert("(t) Traffic Lights", GNE_MODE_TLS);
+
+ // combo
+ myEditModesCombo =
+ new FXComboBox(myToolbar, 12, this, MID_GNE_MODE_CHANGE,
+ FRAME_SUNKEN | LAYOUT_LEFT | LAYOUT_TOP | COMBOBOX_STATIC | LAYOUT_CENTER_Y);
+
+ std::vector<std::string> names = myEditModeNames.getStrings();
+ for (std::vector<std::string>::const_iterator it = names.begin(); it != names.end(); it++) {
+ myEditModesCombo->appendItem(it->c_str());
+ }
+ myEditModesCombo->setNumVisible((int)myEditModeNames.size());
+
+ // initialize mode specific controls
+ myChainCreateEdge = new FXMenuCheck(myToolbar, "chain\t\tCreate consecutive edges with a single click (hit ESC to cancel chain).", this, 0);
+ myAutoCreateOppositeEdge = new FXMenuCheck(myToolbar,
+ "two-way\t\tAutomatically create an edge in the opposite direction", this, 0);
+ mySelectEdges = new FXMenuCheck(myToolbar, "select edges\t\tToggle whether clicking should select edges or lanes", this, 0);
+ mySelectEdges->setCheck();
+ myExtendToEdgeNodes = new FXMenuCheck(myToolbar, "auto-select nodes\t\tToggle whether selecting multiple edges should automatically select their nodes", this, 0);
+
+ myWarnAboutMerge = new FXMenuCheck(myToolbar, "ask for merge\t\tAsk for confirmation before merging junctions.", this, 0);
+ myWarnAboutMerge->setCheck();
+ myVisualizeHeight = new FXMenuCheck(myToolbar, "show height\t\tVisualize height by color (green is low, red is high).", this, MID_GNE_VIS_HEIGHT);
+
+ myChangeAllPhases = new FXMenuCheck(myToolbar, "apply change to all phases\t\tToggle whether clicking should apply state changes to all phases of the current traffic light plan", this, 0);
+ myChangeAllPhases->setCheck(false);
+}
+
+
+void
+GNEViewNet::updateModeSpecificControls() {
+ // MAGIC modifier to avoid flicker. at least it is consistent for move AND
+ // zoom. Probably has to do with spacing
+ const int addChange = 4;
+
+ // hide all controls
+ myChainCreateEdge->hide();
+ myAutoCreateOppositeEdge->hide();
+ mySelectEdges->hide();
+ myExtendToEdgeNodes->hide();
+ myChangeAllPhases->hide();
+ myWarnAboutMerge->hide();
+ myVisualizeHeight->hide();
+ int widthChange = 0;
+ if (myInspector->shown()) {
+ widthChange += myInspector->getWidth() + addChange;
+ myInspector->hide();
+ myInspector->inspect(std::vector<GNEAttributeCarrier*>());
+ }
+ if (mySelector->shown()) {
+ widthChange += mySelector->getWidth() + addChange;
+ mySelector->hide();
+ }
+ if (myConnector->shown()) {
+ widthChange += myConnector->getWidth() + addChange;
+ myConnector->hide();
+ }
+ if (myTLSEditor->shown()) {
+ widthChange += myTLSEditor->getWidth() + addChange;
+ myTLSEditor->hide();
+ }
+
+ // enable selected controls
+ switch (myEditMode) {
+ case GNE_MODE_CREATE_EDGE:
+ myChainCreateEdge->show();
+ myAutoCreateOppositeEdge->show();
+ break;
+ case GNE_MODE_DELETE:
+ mySelectEdges->show();
+ case GNE_MODE_INSPECT:
+ widthChange -= myInspector->getWidth() + addChange;
+ myInspector->show();
+ mySelectEdges->show();
+ myVisualizeHeight->show();
+ break;
+ case GNE_MODE_SELECT:
+ widthChange -= mySelector->getWidth() + addChange;
+ mySelector->show();
+ mySelectEdges->show();
+ myExtendToEdgeNodes->show();
+ break;
+ case GNE_MODE_MOVE:
+ myWarnAboutMerge->show();
+ break;
+ case GNE_MODE_CONNECT:
+ widthChange -= myConnector->getWidth() + addChange;
+ myConnector->show();
+ break;
+ case GNE_MODE_TLS:
+ widthChange -= myTLSEditor->getWidth() + addChange;
+ myTLSEditor->show();
+ myChangeAllPhases->show();
+ break;
+ default:
+ break;
+ }
+ myChanger->changeCanvassLeft(widthChange);
+ myToolbar->recalc();
+ recalc();
+ onPaint(0, 0, 0); // force repaint because different modes draw different things
+ //update();
+}
+
+
+void
+GNEViewNet::deleteSelectedJunctions() {
+ myUndoList->p_begin("delete selected junctions");
+ std::vector<GNEJunction*> junctions = myNet->retrieveJunctions(true);
+ for (std::vector<GNEJunction*>::iterator it = junctions.begin(); it != junctions.end(); it++) {
+ myNet->deleteJunction(*it, myUndoList);
+ }
+ myUndoList->p_end();
+}
+
+
+void
+GNEViewNet::deleteSelectedEdges() {
+ if (mySelectEdges->getCheck()) {
+ myUndoList->p_begin("delete selected edges");
+ std::vector<GNEEdge*> edges = myNet->retrieveEdges(true);
+ for (std::vector<GNEEdge*>::iterator it = edges.begin(); it != edges.end(); it++) {
+ myNet->deleteEdge(*it, myUndoList);
+ }
+ } else {
+ myUndoList->p_begin("delete selected lanes");
+ std::vector<GNELane*> lanes = myNet->retrieveLanes(true);
+ for (std::vector<GNELane*>::iterator it = lanes.begin(); it != lanes.end(); it++) {
+ myNet->deleteLane(*it, myUndoList);
+ }
+ }
+ myUndoList->p_end();
+}
+
+
+bool
+GNEViewNet::mergeJunctions(GNEJunction* moved) {
+ const Position& newPos = moved->getNBNode()->getPosition();
+ GNEJunction* mergeTarget = 0;
+ // try to find another junction to merge with
+ if (makeCurrent()) {
+ Boundary selection;
+ selection.add(newPos);
+ selection.grow(0.1);
+ const std::vector<GUIGlID> ids = getObjectsInBoundary(selection);
+ GUIGlObject* object = 0;
+ for (std::vector<GUIGlID>::const_iterator it = ids.begin(); it != ids.end(); it++) {
+ GUIGlID id = *it;
+ if (id == 0) {
+ continue;
+ }
+ object = GUIGlObjectStorage::gIDStorage.getObjectBlocking(id);
+ if (!object) {
+ throw ProcessError("Unkown object in selection (id=" + toString(id) + ").");
+ }
+ if (object->getType() == GLO_JUNCTION && id != moved->getGlID()) {
+ mergeTarget = dynamic_cast<GNEJunction*>(object);
+ }
+ GUIGlObjectStorage::gIDStorage.unblockObject(id);
+ }
+ }
+ if (mergeTarget) {
+ // optionally ask for confirmation
+ if (myWarnAboutMerge->getCheck()) {
+ FXuint answer = FXMessageBox::question(this, MBOX_YES_NO,
+ "Confirm Junction Merger", "%s",
+ ("Do you wish to merge junctions '" + moved->getMicrosimID() +
+ "' and '" + mergeTarget->getMicrosimID() + "'?\n" +
+ "('" + moved->getMicrosimID() +
+ "' will be eliminated and its roads added to '" +
+ mergeTarget->getMicrosimID() + "')").c_str());
+ if (answer != 1) { //1:yes, 2:no, 4:esc
+ return false;
+ }
+ }
+ myNet->mergeJunctions(moved, mergeTarget, myUndoList);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+
+void
+GNEViewNet::updateControls() {
+ switch (myEditMode) {
+ case GNE_MODE_INSPECT:
+ myInspector->update();
+ break;
+ default:
+ break;
+ }
+}
+/****************************************************************************/
diff --git a/src/netedit/GNEViewNet.h b/src/netedit/GNEViewNet.h
new file mode 100644
index 0000000..91ab590
--- /dev/null
+++ b/src/netedit/GNEViewNet.h
@@ -0,0 +1,363 @@
+/****************************************************************************/
+/// @file GNEViewNet.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEViewNet.h 19532 2015-12-05 09:27:48Z behrisch $
+///
+// A view on the network being edited (adapted from GUIViewTraffic)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEViewNet_h
+#define GNEViewNet_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <utils/gui/globjects/GLIncludes.h>
+#include <utils/geom/Boundary.h>
+#include <utils/geom/Position.h>
+#include <utils/common/RGBColor.h>
+#include <utils/geom/PositionVector.h>
+#include <utils/shapes/Polygon.h>
+#include <utils/gui/windows/GUISUMOAbstractView.h>
+#include <utils/common/StringBijection.h>
+
+// ===========================================================================
+// enum
+// ===========================================================================
+enum EditMode {
+ /** placeholder mode */
+ GNE_MODE_DUMMY,
+ /** mode for creating new edges */
+ GNE_MODE_CREATE_EDGE,
+ /** mode for moving things */
+ GNE_MODE_MOVE,
+ /** mode for deleting things */
+ GNE_MODE_DELETE,
+ /** mode for inspecting object attributes */
+ GNE_MODE_INSPECT,
+ /** mode for selecting objects */
+ GNE_MODE_SELECT,
+ /** mode for connecting lanes */
+ GNE_MODE_CONNECT,
+ /** mode for editing tls */
+ GNE_MODE_TLS
+};
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GNENet;
+class GNEJunction;
+class GNEEdge;
+class GNELane;
+class GNEViewParent;
+class GNEUndoList;
+class GNEInspector;
+class GNESelector;
+class GNEConnector;
+class GNETLSEditor;
+class GNEPoly;
+
+// ===========================================================================
+// class definitions
+// ===========================================================================
+/**
+ * @class GNEViewNet
+ * Microsocopic view at the simulation
+ */
+class GNEViewNet : public GUISUMOAbstractView {
+ // FOX-declarations
+ FXDECLARE(GNEViewNet)
+
+public:
+ /* @brief constructor
+ * @param[in] toolbar A reference to the parents toolbar
+ */
+ GNEViewNet(FXComposite* tmpParent, FXComposite* actualParent,
+ GUIMainWindow& app, GNEViewParent* viewParent, GNENet* net, FXGLVisual* glVis,
+ FXGLCanvas* share, FXToolBar* toolBar);
+
+ /// destructor
+ virtual ~GNEViewNet();
+
+ /// builds the view toolbars
+ virtual void buildViewToolBars(GUIGlChildWindow&);
+
+
+ bool setColorScheme(const std::string& name);
+
+
+ /// overloaded handlers
+ /// @{
+ long onLeftBtnPress(FXObject*, FXSelector, void*);
+ long onLeftBtnRelease(FXObject*, FXSelector, void*);
+ long onMouseMove(FXObject*, FXSelector, void*);
+ /// @}
+
+ /// @brief sets edit mode via combo box
+ long onCmdChangeMode(FXObject*, FXSelector, void*);
+
+ /// @brief split edge at cursor position
+ long onCmdSplitEdge(FXObject*, FXSelector, void*);
+
+ /// @brief split edge at cursor position
+ long onCmdSplitEdgeBidi(FXObject*, FXSelector, void*);
+
+ /// @brief reverse edge
+ long onCmdReverseEdge(FXObject*, FXSelector, void*);
+
+ /// @brief add reversed edge
+ long onCmdAddReversedEdge(FXObject*, FXSelector, void*);
+
+ /// @brief set non-default geometry endpoint
+ long onCmdSetEdgeEndpoint(FXObject*, FXSelector, void*);
+
+ /// @brief restore geometry endpoint to node position
+ long onCmdResetEdgeEndpoint(FXObject*, FXSelector, void*);
+
+ /// @brief makes selected edges straight
+ long onCmdStraightenEdges(FXObject*, FXSelector, void*);
+
+ /// @brief simply shape of current polygon
+ long onCmdSimplifyShape(FXObject*, FXSelector, void*);
+
+ /// @brief delete the closes geometry point
+ long onCmdDeleteGeometry(FXObject*, FXSelector, void*);
+
+ /// @brief duplicate selected lane
+ long onCmdDuplicateLane(FXObject*, FXSelector, void*);
+
+ /// @brief input custom node shape
+ long onCmdNodeShape(FXObject*, FXSelector, void*);
+
+ /// @brief replace node by geometry
+ long onCmdNodeReplace(FXObject*, FXSelector, void*);
+
+ /// @brief switch color scheme
+ long onCmdVisualizeHeight(FXObject*, FXSelector, void*);
+
+ /** @brief sets edit mode (from hotkey)
+ * @param[in] selid An id MID_GNE_MODE_<foo> as defined in GUIAppEnum
+ */
+ void setEditModeFromHotkey(FXushort selid);
+
+ // abort current edition operation
+ void abortOperation(bool clearSelection = true);
+
+ // handle del keypress
+ void hotkeyDel();
+
+ // handle enter keypress
+ void hotkeyEnter();
+
+ // store the position where a popup-menu was requested
+ void markPopupPosition();
+
+ // @brief get the net object
+ GNENet* getNet() {
+ return myNet;
+ };
+
+ void setStatusBarText(const std::string& text);
+
+ /* @brief whether inspection, selection and inversion should apply to edges
+ * or to lanes */
+ bool selectEdges() {
+ return mySelectEdges->getCheck() != 0;
+ }
+
+ /* @brief whether to autoselect nodes
+ * or to lanes */
+ bool autoSelectNodes() {
+ return myExtendToEdgeNodes->getCheck() != 0;
+ }
+
+ GNESelector* getSelector() {
+ return mySelector;
+ }
+
+
+ void setSelectionScaling(SUMOReal selectionScale) {
+ myVisualizationSettings->selectionScale = selectionScale;
+ }
+
+ /// @brief update control contents after undo/redo or recompute
+ void updateControls();
+
+ GNETLSEditor* getTLSEditor() {
+ return myTLSEditor;
+ }
+
+ bool changeAllPhases() const {
+ return myChangeAllPhases->getCheck() != FALSE;
+ }
+
+protected:
+ int doPaintGL(int mode, const Boundary& bound);
+
+ /// called after some features are already initialized
+ void doInit();
+
+ /// @brief FOX needs this
+ GNEViewNet() {}
+
+private:
+ // we are not responsible for deletion
+ GNENet* myNet;
+
+ // the current edit mode
+ EditMode myEditMode;
+
+ // the previous edit mode used for toggling
+ EditMode myPreviousEditMode;
+
+ FXMenuCheck* mySelectEdges;
+ FXMenuCheck* myExtendToEdgeNodes;
+ FXMenuCheck* myChangeAllPhases;
+
+ /// @name the state-variables of the create-edge state-machine
+ // @{
+ /* @brief source junction for new edge
+ * 0 if no edge source is selected
+ * an existing (or newly created) junction otherwise
+ */
+ GNEJunction* myCreateEdgeSource;
+
+ /* @brief whether the endpoint for a created edge should be set as the new
+ * source
+ */
+ FXMenuCheck* myChainCreateEdge;
+ FXMenuCheck* myAutoCreateOppositeEdge;
+ // @}
+
+ /// @name the state-variables of the move state-machine
+ // @{
+ /* @brief the Junction to be moved
+ * 0 if nothing is grabbed
+ * otherwise the junction being moved
+ */
+ GNEJunction* myJunctionToMove;
+
+ /// @brief the edge of which geometry is being moved
+ GNEEdge* myEdgeToMove;
+
+ /// @brief the poly of which geometry is being moved
+ GNEPoly* myPolyToMove;
+
+ /// @brief position from which to move edge geometry
+ Position myMoveSrc;
+
+ /// @brief whether a selection is being moved
+ bool myMoveSelection;
+
+ /// @brief whether we should warn about merging junctions
+ FXMenuCheck* myWarnAboutMerge;
+ // @}
+
+ /// @name state-variables of inspect-mode
+ // @{
+ FXMenuCheck* myVisualizeHeight;
+ // @}
+ //
+ /// @name state-variables of select-mode
+ // @{
+ // @brief whether we have started rectangle-selection
+ bool myAmInRectSelect;
+ // @brief corner of the rectangle-selection
+ Position mySelCorner1;
+ Position mySelCorner2;
+ // @}
+
+ //@name toolbar related stuff
+ //@{
+ /// @brief a reference to the toolbar in myParent
+ FXToolBar* myToolbar;
+ /// @brief combo box for selecting the edit mode
+ FXComboBox* myEditModesCombo;
+
+ /** @brief since we cannot switch on strings we map the mode names to an enum
+ */
+ StringBijection<EditMode> myEditModeNames;
+
+ //@}
+
+ /// @brief a reference to the undolist maintained in the application
+ GNEUndoList* myUndoList;
+
+ // @brief the panel for GNE_MODE_INSPECT
+ GNEInspector* myInspector;
+
+ // @brief the panel for GNE_MODE_SELECT
+ GNESelector* mySelector;
+
+ // @brief the panel for GNE_MODE_CONNECT
+ GNEConnector* myConnector;
+
+ // @brief the panel for GNE_MODE_TLS
+ GNETLSEditor* myTLSEditor;
+
+ Position myPopupSpot;
+
+ GNEPoly* myCurrentPoly;
+
+private:
+ // set edit mode
+ void setEditMode(EditMode mode);
+
+ /// @brief adds controls for setting the edit mode
+ void buildEditModeControls();
+
+ /// @brief updates mode specific controls
+ void updateModeSpecificControls();
+
+ /// @brief delete all currently selected junctions
+ void deleteSelectedJunctions();
+
+ /// @brief delete all currently selected edges
+ void deleteSelectedEdges();
+
+ /** @brief try to merge moved junction with another junction in that spot
+ * return true if merging did take place */
+ bool mergeJunctions(GNEJunction* moved);
+
+ /// @brief try to retrieve an edge at the given position
+ GNEEdge* getEdgeAtCursorPosition(Position& pos);
+
+ /// @brief try to retrieve a lane at the given position
+ GNELane* getLaneAtCurserPosition(Position& pos);
+
+ /// @brief try to retrieve a junction at the given position
+ GNEJunction* getJunctionAtCursorPosition(Position& pos);
+
+ /// @brief try to retrieve multiple edges at the given position
+ std::set<GNEEdge*> getEdgesAtCursorPosition(Position& pos);
+
+ /// @brief remove the currently edited polygon
+ void removeCurrentPoly();
+
+};
+
+
+#endif
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEViewParent.cpp b/src/netedit/GNEViewParent.cpp
new file mode 100644
index 0000000..e3a4b3f
--- /dev/null
+++ b/src/netedit/GNEViewParent.cpp
@@ -0,0 +1,241 @@
+/****************************************************************************/
+/// @file GNEViewParent.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEViewParent.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A single child window which contains a view of the edited network (adapted
+// from GUISUMOViewParent)
+// While we don't actually need MDI for netedit it is easier to adapt existing
+// structures than to write everything from scratch.
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <vector>
+#include <utils/foxtools/MFXUtils.h>
+#include <utils/foxtools/MFXCheckableButton.h>
+#include <utils/foxtools/MFXImageHelper.h>
+#include <utils/common/UtilExceptions.h>
+#include <utils/geom/Position.h>
+#include <utils/geom/Boundary.h>
+#include <utils/gui/globjects/GUIGlObjectTypes.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/images/GUIIcons.h>
+#include <utils/gui/images/GUIIconSubSys.h>
+#include <utils/gui/div/GUIGlobalSelection.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/div/GUIIOGlobals.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/windows/GUIDialog_GLObjChooser.h>
+
+#include "GNENet.h"
+#include "GNEEdge.h"
+#include "GNEViewNet.h"
+#include "GNEViewParent.h"
+#include "GNEUndoList.h"
+#include "GNEApplicationWindow.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif // CHECK_MEMORY_LEAKS
+
+
+// ===========================================================================
+// FOX callback mapping
+// ===========================================================================
+FXDEFMAP(GNEViewParent) GNEViewParentMap[] = {
+ FXMAPFUNC(SEL_COMMAND, MID_MAKESNAPSHOT, GNEViewParent::onCmdMakeSnapshot),
+ //FXMAPFUNC(SEL_COMMAND, MID_ALLOWROTATION, GNEViewParent::onCmdAllowRotation),
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATEJUNCTION, GNEViewParent::onCmdLocate),
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATEEDGE, GNEViewParent::onCmdLocate),
+ FXMAPFUNC(SEL_COMMAND, MID_LOCATETLS, GNEViewParent::onCmdLocate),
+ FXMAPFUNC(SEL_COMMAND, FXMDIChild::ID_MDI_MENUCLOSE, GNEViewParent::onCmdClose),
+};
+
+// Object implementation
+FXIMPLEMENT(GNEViewParent, GUIGlChildWindow, GNEViewParentMap, ARRAYNUMBER(GNEViewParentMap))
+
+// ===========================================================================
+// member method definitions
+// ===========================================================================
+GNEViewParent::GNEViewParent(
+ FXMDIClient* p, FXMDIMenu* mdimenu,
+ const FXString& name,
+ GNEApplicationWindow* parentWindow,
+ FXGLCanvas* share, GNENet* net,
+ FXIcon* ic, FXuint opts,
+ FXint x, FXint y, FXint w, FXint h):
+ GUIGlChildWindow(p, parentWindow, mdimenu, name, ic, opts, x, y, w, h) {
+ myParent->addChild(this, false);
+
+ // disable coloring and screenshot
+ //for (int i=5; i < myNavigationToolBar->numChildren(); i++) {
+ // myNavigationToolBar->childAtIndex(i)->hide();
+ //}
+
+ // add undo/redo buttons
+ new FXButton(myNavigationToolBar,
+ "\tUndo\tUndo the last Change.",
+ GUIIconSubSys::getIcon(ICON_UNDO), parentWindow->getUndoList(), FXUndoList::ID_UNDO,
+ ICON_BEFORE_TEXT | BUTTON_TOOLBAR | FRAME_RAISED | LAYOUT_TOP | LAYOUT_LEFT);
+ new FXButton(myNavigationToolBar,
+ "\tRedo\tRedo the last Change.",
+ GUIIconSubSys::getIcon(ICON_REDO), parentWindow->getUndoList(), FXUndoList::ID_REDO,
+ ICON_BEFORE_TEXT | BUTTON_TOOLBAR | FRAME_RAISED | LAYOUT_TOP | LAYOUT_LEFT);
+ new FXToolBarGrip(myNavigationToolBar, NULL, 0, TOOLBARGRIP_SINGLE | FRAME_SUNKEN);
+
+ myViewArea = new FXHorizontalFrame(myContentFrame,
+ FRAME_SUNKEN | LAYOUT_SIDE_TOP | LAYOUT_FILL_X | LAYOUT_FILL_Y,
+ 0, 0, 0, 0, 0, 0, 0, 0);
+ // we add the view to a temporary parent so that we can add items to
+ // myViewArea in the desired order
+ FXComposite* tmp = new FXComposite(this);
+ myView = new GNEViewNet(tmp, myViewArea,
+ *myParent, this, net,
+ myParent->getGLVisual(), share,
+ myNavigationToolBar);
+
+ myView->buildViewToolBars(*this);
+
+ // create
+ GUIGlChildWindow::create();
+}
+
+
+GNEViewParent::~GNEViewParent() {
+ myParent->removeChild(this);
+}
+
+
+long
+GNEViewParent::onCmdMakeSnapshot(FXObject*, FXSelector, void*) {
+ // get the new file name
+ FXFileDialog opendialog(this, "Save Snapshot");
+ opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
+ opendialog.setSelectMode(SELECTFILE_ANY);
+ opendialog.setPatternList("All Image Files (*.gif, *.bmp, *.xpm, *.pcx, *.ico, *.rgb, *.xbm, *.tga, *.png, *.jpg, *.jpeg, *.tif, *.tiff, *.ps, *.eps, *.pdf, *.svg, *.tex, *.pgf)\n"
+ "GIF Image (*.gif)\nBMP Image (*.bmp)\nXPM Image (*.xpm)\nPCX Image (*.pcx)\nICO Image (*.ico)\n"
+ "RGB Image (*.rgb)\nXBM Image (*.xbm)\nTARGA Image (*.tga)\nPNG Image (*.png)\n"
+ "JPEG Image (*.jpg, *.jpeg)\nTIFF Image (*.tif, *.tiff)\n"
+ "Postscript (*.ps)\nEncapsulated Postscript (*.eps)\nPortable Document Format (*.pdf)\n"
+ "Scalable Vector Graphics (*.svg)\nLATEX text strings (*.tex)\nPortable LaTeX Graphics (*.pgf)\n"
+ "All Files (*)");
+ if (gCurrentFolder.length() != 0) {
+ opendialog.setDirectory(gCurrentFolder);
+ }
+ if (!opendialog.execute() || !MFXUtils::userPermitsOverwritingWhenFileExists(this, opendialog.getFilename())) {
+ return 1;
+ }
+ gCurrentFolder = opendialog.getDirectory();
+ std::string file = opendialog.getFilename().text();
+ std::string error = myView->makeSnapshot(file);
+ if (error != "") {
+ FXMessageBox::error(this, MBOX_OK, "Saving failed.", "%s", error.c_str());
+ }
+ return 1;
+}
+
+
+long
+GNEViewParent::onCmdClose(FXObject*, FXSelector /* sel */, void*) {
+ myParent->handle(this, FXSEL(SEL_COMMAND, MID_CLOSE), 0);
+ return 1;
+}
+
+
+long
+GNEViewParent::onCmdLocate(FXObject*, FXSelector sel, void*) {
+ GNEViewNet* view = dynamic_cast<GNEViewNet*>(myView);
+ assert(view);
+ GUIGlObjectType type;
+ GUIIcon icon;
+ std::string title;
+ switch (FXSELID(sel)) {
+ case MID_LOCATEJUNCTION:
+ type = GLO_JUNCTION;
+ icon = ICON_LOCATEJUNCTION;
+ title = "Junction Chooser";
+ break;
+ case MID_LOCATEEDGE:
+ type = GLO_EDGE;
+ icon = ICON_LOCATEEDGE;
+ title = "Edge Chooser";
+ break;
+ case MID_LOCATETLS:
+ type = GLO_TLLOGIC;
+ icon = ICON_LOCATETLS;
+ title = "Traffic-Light-Junctions Chooser";
+ break;
+ default:
+ throw ProcessError("Unknown Message ID in onCmdLocate");
+ }
+ std::set<GUIGlID> idSet = view->getNet()->getGlIDs(type);
+ std::vector<GUIGlID> ids(idSet.begin(), idSet.end());
+ myLocatorPopup->popdown();
+ myLocatorButton->killFocus();
+ myLocatorPopup->update();
+ GUIDialog_GLObjChooser* chooser = new GUIDialog_GLObjChooser(
+ this, GUIIconSubSys::getIcon(icon), title.c_str(), ids, GUIGlObjectStorage::gIDStorage);
+ chooser->create();
+ chooser->show();
+ return 1;
+}
+
+
+bool
+GNEViewParent::isSelected(GUIGlObject* o) const {
+ GUIGlObjectType type = o->getType();
+ if (gSelected.isSelected(type, o->getGlID())) {
+ return true;
+ } else if (type == GLO_EDGE) {
+ GNEEdge* edge = dynamic_cast<GNEEdge*>(o);
+ assert(edge);
+ const std::set<GUIGlID> laneIDs = edge->getLaneGlIDs();
+ for (std::set<GUIGlID>::const_iterator it = laneIDs.begin(); it != laneIDs.end(); it++) {
+ if (gSelected.isSelected(GLO_LANE, *it)) {
+ return true;
+ }
+ }
+ return false;
+ } else {
+ return false;
+ }
+}
+
+
+long
+GNEViewParent::onKeyPress(FXObject* o, FXSelector sel, void* data) {
+ myView->onKeyPress(o, sel, data);
+ return 0;
+}
+
+
+long
+GNEViewParent::onKeyRelease(FXObject* o, FXSelector sel, void* data) {
+ myView->onKeyRelease(o, sel, data);
+ return 0;
+}
+
+/****************************************************************************/
+
diff --git a/src/netedit/GNEViewParent.h b/src/netedit/GNEViewParent.h
new file mode 100644
index 0000000..c578241
--- /dev/null
+++ b/src/netedit/GNEViewParent.h
@@ -0,0 +1,126 @@
+/****************************************************************************/
+/// @file GNEViewParent.h
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: GNEViewParent.h 18830 2015-09-11 08:57:34Z behrisch $
+///
+// A single child window which contains a view of the edited network (adapted
+// from GUISUMOViewParent)
+// While we don't actually need MDI for netedit it is easier to adapt existing
+// structures than to write everything from scratch.
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+#ifndef GNEViewParent_h
+#define GNEViewParent_h
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#include <string>
+#include <vector>
+#include <fx.h>
+#include <utils/geom/Position.h>
+#include <utils/geom/Boundary.h>
+#include <utils/gui/globjects/GUIGlObjectTypes.h>
+#include <utils/gui/windows/GUIGlChildWindow.h>
+
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUISUMOAbstractView;
+class GNENet;
+class GNEApplicationWindow;
+
+// ===========================================================================
+// class declarations
+// ===========================================================================
+/**
+ * @class GNEViewParent
+ * @brief A single child window which contains a view of the simulation area
+ *
+ * It is made of a tool-bar containing a field to change the type of display,
+ * buttons that allow to choose an artifact and some other view controlling
+ * options.
+ *
+ * The rest of the window is a canvas that contains the display itself
+ */
+class GNEViewParent : public GUIGlChildWindow {
+ // FOX-declarations
+ FXDECLARE(GNEViewParent)
+
+public:
+ /** @brief Constructor
+ * also builds the view and calls create()
+ *
+ * @param[in] p The MDI-pane this window is shown within
+ * @param[in] mdimenu The MDI-menu for alignment
+ * @param[in] name The name of the window
+ * @param[in] parentWindow The main window
+ * @param[in] ic The icon of this window
+ * @param[in] opts Window options
+ * @param[in] x Initial x-position
+ * @param[in] y Initial x-position
+ * @param[in] w Initial width
+ * @param[in] h Initial height
+ * @param[in] share A canvas tor get the shared context from
+ * @param[in] net The network to show
+ */
+ GNEViewParent(FXMDIClient* p, FXMDIMenu* mdimenu,
+ const FXString& name, GNEApplicationWindow* parentWindow,
+ FXGLCanvas* share, GNENet* net,
+ FXIcon* ic = NULL, FXuint opts = 0, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0);
+
+
+ /// @brief Destructor
+ ~GNEViewParent();
+
+
+ /// @brief Called if the user wants to make a snapshot (screenshot)
+ long onCmdMakeSnapshot(FXObject* sender, FXSelector, void*);
+
+ /// @brief Called when the user hits the close button (x)
+ long onCmdClose(FXObject*, FXSelector, void*);
+
+ /// @brief locator-callback
+ long onCmdLocate(FXObject*, FXSelector, void*);
+
+ /// @brief handle keys
+ long onKeyPress(FXObject* o, FXSelector sel, void* data);
+ long onKeyRelease(FXObject* o, FXSelector sel, void* data);
+
+ /// @brief true if the object is selected (may include extra logic besides calling gSelected)
+ bool isSelected(GUIGlObject* o) const;
+
+protected:
+ /// @brief FOX needs this
+ GNEViewParent() { }
+
+
+private:
+
+ // frame to hold myView and myAttributePanel
+ FXHorizontalFrame* myViewArea;
+};
+
+
+#endif
+
+/****************************************************************************/
diff --git a/src/netedit/Makefile.am b/src/netedit/Makefile.am
new file mode 100644
index 0000000..98f9fb1
--- /dev/null
+++ b/src/netedit/Makefile.am
@@ -0,0 +1,84 @@
+EXTRA_DIST = netedit64.ico tlslogo.cpp
+
+XERCES_LIBS = -l$(LIB_XERCES)
+
+if WITH_GUI
+GUI_APPS = netedit
+endif
+
+if CHECK_MEMORY_LEAKS
+MEM_LIBS = ../foreign/nvwa/libnvwa.a
+endif
+
+if TRACI
+TRACI_LIBS = ../traci-server/libtraciserver.a
+endif
+
+bin_PROGRAMS = $(GUI_APPS)
+
+if WITH_GUI
+netedit_SOURCES = netedit_main.cpp \
+GNEApplicationWindow.h GNEApplicationWindow.cpp \
+GNELoadThread.h GNELoadThread.cpp \
+GNENet.h GNENet.cpp \
+GNEEdge.h GNEEdge.cpp \
+GNELane.h GNELane.cpp \
+GNEInternalLane.h GNEInternalLane.cpp \
+GNECrossing.h GNECrossing.cpp \
+GNEJunction.h GNEJunction.cpp \
+GNEPOI.h GNEPOI.cpp \
+GNEPoly.h GNEPoly.cpp \
+GNEViewNet.h GNEViewNet.cpp \
+GNEViewParent.h GNEViewParent.cpp \
+GNEDialog_About.h GNEDialog_About.cpp \
+GNEDialog_Wizard.h GNEDialog_Wizard.cpp \
+GNEChange.h GNEChange.cpp \
+GNEChange_Junction.h GNEChange_Junction.cpp \
+GNEChange_Edge.h GNEChange_Edge.cpp \
+GNEChange_Lane.h GNEChange_Lane.cpp \
+GNEChange_Connection.h GNEChange_Connection.cpp \
+GNEChange_Attribute.h GNEChange_Attribute.cpp \
+GNEChange_TLS.h GNEChange_TLS.cpp \
+GNEChange_Selection.h GNEChange_Selection.cpp \
+GNEUndoList.h GNEUndoList.cpp \
+GNEAttributeCarrier.h GNEAttributeCarrier.cpp \
+GNEInspector.h GNEInspector.cpp \
+GNESelector.h GNESelector.cpp \
+GNEConnector.h GNEConnector.cpp \
+GNETLSEditor.h GNETLSEditor.cpp \
+GNEReferenceCounter.h \
+GNEEvent_NetworkLoaded.h
+
+
+netedit_LDADD = ../netimport/libnetimport.a \
+../netimport/vissim/libvissimimport.a \
+../netimport/vissim/typeloader/libvissimtypeload.a \
+../netimport/vissim/tempstructs/libvissimtmpstr.a \
+../netbuild/libnetbuild.a \
+../netwrite/libnetwrite.a \
+../utils/distribution/libdistribution.a \
+../foreign/eulerspiral/libeulerspiral.a \
+../utils/gui/windows/libguiutilsWindows.a \
+../utils/gui/globjects/libguiutilsglobjects.a \
+../utils/gui/div/libguiutilsdiv.a \
+../utils/gui/settings/libguiutilssettings.a \
+../utils/gui/images/libguiutilsimages.a \
+../utils/gui/tracker/libguiutilstracker.a \
+../utils/foxtools/libfoxtools.a \
+../utils/distribution/libdistribution.a \
+../foreign/gl2ps/libgl2ps.a \
+../foreign/polyfonts/libpolyfonts.a \
+../foreign/eulerspiral/libeulerspiral.a \
+../utils/geom/libgeom.a \
+../utils/shapes/libshapes.a \
+../utils/options/liboptions.a \
+../utils/common/libcommon.a \
+../utils/emissions/libemissions.a \
+../utils/xml/libxml.a \
+../utils/importio/libimportio.a \
+../utils/iodevices/libiodevices.a \
+../foreign/tcpip/libtcpip.a \
+$(MEM_LIBS) \
+$(XERCES_LIBS) \
+$(FOX_LDFLAGS) $(XERCES_LDFLAGS) $(PROJ_LDFLAGS) $(GDAL_LDFLAGS) $(X_LDFLAGS)
+endif
diff --git a/unittest/src/Makefile.in b/src/netedit/Makefile.in
similarity index 59%
copy from unittest/src/Makefile.in
copy to src/netedit/Makefile.in
index 6c87617..925ed42 100644
--- a/unittest/src/Makefile.in
+++ b/src/netedit/Makefile.in
@@ -79,8 +79,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
- at WITH_GTEST_TRUE@bin_PROGRAMS = sumo-unittest$(EXEEXT)
-subdir = unittest/src
+bin_PROGRAMS = $(am__EXEEXT_1)
+subdir = src/netedit
DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
$(top_srcdir)/depcomp
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -91,61 +91,86 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/src/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
+ at WITH_GUI_TRUE@am__EXEEXT_1 = netedit$(EXEEXT)
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
-am__sumo_unittest_SOURCES_DIST = unittest_main.cpp
- at WITH_GTEST_TRUE@am_sumo_unittest_OBJECTS = unittest_main.$(OBJEXT)
-sumo_unittest_OBJECTS = $(am_sumo_unittest_OBJECTS)
+am__netedit_SOURCES_DIST = netedit_main.cpp GNEApplicationWindow.h \
+ GNEApplicationWindow.cpp GNELoadThread.h GNELoadThread.cpp \
+ GNENet.h GNENet.cpp GNEEdge.h GNEEdge.cpp GNELane.h \
+ GNELane.cpp GNEInternalLane.h GNEInternalLane.cpp \
+ GNECrossing.h GNECrossing.cpp GNEJunction.h GNEJunction.cpp \
+ GNEPOI.h GNEPOI.cpp GNEPoly.h GNEPoly.cpp GNEViewNet.h \
+ GNEViewNet.cpp GNEViewParent.h GNEViewParent.cpp \
+ GNEDialog_About.h GNEDialog_About.cpp GNEDialog_Wizard.h \
+ GNEDialog_Wizard.cpp GNEChange.h GNEChange.cpp \
+ GNEChange_Junction.h GNEChange_Junction.cpp GNEChange_Edge.h \
+ GNEChange_Edge.cpp GNEChange_Lane.h GNEChange_Lane.cpp \
+ GNEChange_Connection.h GNEChange_Connection.cpp \
+ GNEChange_Attribute.h GNEChange_Attribute.cpp GNEChange_TLS.h \
+ GNEChange_TLS.cpp GNEChange_Selection.h \
+ GNEChange_Selection.cpp GNEUndoList.h GNEUndoList.cpp \
+ GNEAttributeCarrier.h GNEAttributeCarrier.cpp GNEInspector.h \
+ GNEInspector.cpp GNESelector.h GNESelector.cpp GNEConnector.h \
+ GNEConnector.cpp GNETLSEditor.h GNETLSEditor.cpp \
+ GNEReferenceCounter.h GNEEvent_NetworkLoaded.h
+ at WITH_GUI_TRUE@am_netedit_OBJECTS = netedit_main.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEApplicationWindow.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNELoadThread.$(OBJEXT) GNENet.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEEdge.$(OBJEXT) GNELane.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEInternalLane.$(OBJEXT) GNECrossing.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEJunction.$(OBJEXT) GNEPOI.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEPoly.$(OBJEXT) GNEViewNet.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEViewParent.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEDialog_About.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEDialog_Wizard.$(OBJEXT) GNEChange.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_Junction.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_Edge.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_Lane.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_Connection.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_Attribute.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_TLS.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEChange_Selection.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEUndoList.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEAttributeCarrier.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEInspector.$(OBJEXT) GNESelector.$(OBJEXT) \
+ at WITH_GUI_TRUE@ GNEConnector.$(OBJEXT) GNETLSEditor.$(OBJEXT)
+netedit_OBJECTS = $(am_netedit_OBJECTS)
am__DEPENDENCIES_1 =
- at WITH_GTEST_TRUE@sumo_unittest_DEPENDENCIES = \
- at WITH_GTEST_TRUE@ ./utils/common/StringUtilsTest.o \
- at WITH_GTEST_TRUE@ ./utils/common/StringTokenizerTest.o \
- at WITH_GTEST_TRUE@ ./utils/common/RGBColorTest.o \
- at WITH_GTEST_TRUE@ ./utils/common/TplConvertTest.o \
- at WITH_GTEST_TRUE@ ./utils/common/ValueTimeLineTest.o \
- at WITH_GTEST_TRUE@ ./utils/geom/BoundaryTest.o \
- at WITH_GTEST_TRUE@ ./utils/geom/PositionVectorTest.o \
- at WITH_GTEST_TRUE@ ./utils/geom/LineTest.o \
- at WITH_GTEST_TRUE@ ./utils/geom/GeomHelperTest.o \
- at WITH_GTEST_TRUE@ ./utils/geom/GeoConvHelperTest.o \
- at WITH_GTEST_TRUE@ ./netbuild/NBHeightMapperTest.o \
- at WITH_GTEST_TRUE@ ./netbuild/NBTrafficLightLogicTest.o \
- at WITH_GTEST_TRUE@ ./microsim/MSCFModelTest.o \
- at WITH_GTEST_TRUE@ ./microsim/MSEventControlTest.o $(GUI_TESTS) \
- at WITH_GTEST_TRUE@ ../../src/netbuild/libnetbuild.a \
- at WITH_GTEST_TRUE@ ../../src/traci-server/libtraciserver.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/libmicrosim.a \
- at WITH_GTEST_TRUE@ ../../src/traci-server/TraCIServer.o \
- at WITH_GTEST_TRUE@ ../../src/microsim/devices/libmicrosimdevs.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/trigger/libmicrosimtrigger.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/cfmodels/libmicrosimcfmodels.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/lcmodels/libmicrosimlcmodels.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/pedestrians/libmicrosimpeds.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/output/libmicrosimoutput.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/MSMoveReminder.o \
- at WITH_GTEST_TRUE@ ../../src/microsim/MSRouteHandler.o \
- at WITH_GTEST_TRUE@ ../../src/microsim/actions/libmsactions.a \
- at WITH_GTEST_TRUE@ ../../src/microsim/traffic_lights/libmicrosimtls.a \
- at WITH_GTEST_TRUE@ $(MESO_LIBS) ../../src/utils/geom/libgeom.a \
- at WITH_GTEST_TRUE@ ../../src/utils/shapes/libshapes.a \
- at WITH_GTEST_TRUE@ ../../src/utils/emissions/libemissions.a \
- at WITH_GTEST_TRUE@ ../../src/utils/xml/libxml.a \
- at WITH_GTEST_TRUE@ ../../src/utils/vehicle/libvehicle.a \
- at WITH_GTEST_TRUE@ ../../src/utils/common/libcommon.a \
- at WITH_GTEST_TRUE@ ../../src/utils/options/liboptions.a \
- at WITH_GTEST_TRUE@ ../../src/utils/iodevices/libiodevices.a \
- at WITH_GTEST_TRUE@ ../../src/utils/common/FileHelpers.o \
- at WITH_GTEST_TRUE@ ../../src/foreign/tcpip/libtcpip.a \
- at WITH_GTEST_TRUE@ $(MEM_LIBS) $(am__DEPENDENCIES_1) \
- at WITH_GTEST_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ at WITH_GUI_TRUE@netedit_DEPENDENCIES = ../netimport/libnetimport.a \
+ at WITH_GUI_TRUE@ ../netimport/vissim/libvissimimport.a \
+ at WITH_GUI_TRUE@ ../netimport/vissim/typeloader/libvissimtypeload.a \
+ at WITH_GUI_TRUE@ ../netimport/vissim/tempstructs/libvissimtmpstr.a \
+ at WITH_GUI_TRUE@ ../netbuild/libnetbuild.a \
+ at WITH_GUI_TRUE@ ../netwrite/libnetwrite.a \
+ at WITH_GUI_TRUE@ ../utils/distribution/libdistribution.a \
+ at WITH_GUI_TRUE@ ../foreign/eulerspiral/libeulerspiral.a \
+ at WITH_GUI_TRUE@ ../utils/gui/windows/libguiutilsWindows.a \
+ at WITH_GUI_TRUE@ ../utils/gui/globjects/libguiutilsglobjects.a \
+ at WITH_GUI_TRUE@ ../utils/gui/div/libguiutilsdiv.a \
+ at WITH_GUI_TRUE@ ../utils/gui/settings/libguiutilssettings.a \
+ at WITH_GUI_TRUE@ ../utils/gui/images/libguiutilsimages.a \
+ at WITH_GUI_TRUE@ ../utils/gui/tracker/libguiutilstracker.a \
+ at WITH_GUI_TRUE@ ../utils/foxtools/libfoxtools.a \
+ at WITH_GUI_TRUE@ ../utils/distribution/libdistribution.a \
+ at WITH_GUI_TRUE@ ../foreign/gl2ps/libgl2ps.a \
+ at WITH_GUI_TRUE@ ../foreign/polyfonts/libpolyfonts.a \
+ at WITH_GUI_TRUE@ ../foreign/eulerspiral/libeulerspiral.a \
+ at WITH_GUI_TRUE@ ../utils/geom/libgeom.a \
+ at WITH_GUI_TRUE@ ../utils/shapes/libshapes.a \
+ at WITH_GUI_TRUE@ ../utils/options/liboptions.a \
+ at WITH_GUI_TRUE@ ../utils/common/libcommon.a \
+ at WITH_GUI_TRUE@ ../utils/emissions/libemissions.a \
+ at WITH_GUI_TRUE@ ../utils/xml/libxml.a \
+ at WITH_GUI_TRUE@ ../utils/importio/libimportio.a \
+ at WITH_GUI_TRUE@ ../utils/iodevices/libiodevices.a \
+ at WITH_GUI_TRUE@ ../foreign/tcpip/libtcpip.a $(MEM_LIBS) \
+ at WITH_GUI_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ at WITH_GUI_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ at WITH_GUI_TRUE@ $(am__DEPENDENCIES_1)
AM_V_lt = $(am__v_lt_ at AM_V@)
am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
-sumo_unittest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
- $(AM_CXXFLAGS) $(CXXFLAGS) $(sumo_unittest_LDFLAGS) $(LDFLAGS) \
- -o $@
AM_V_P = $(am__v_P_ at AM_V@)
am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
am__v_P_0 = false
@@ -180,29 +205,31 @@ AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
-SOURCES = $(sumo_unittest_SOURCES)
-DIST_SOURCES = $(am__sumo_unittest_SOURCES_DIST)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
- ctags-recursive dvi-recursive html-recursive info-recursive \
- install-data-recursive install-dvi-recursive \
- install-exec-recursive install-html-recursive \
- install-info-recursive install-pdf-recursive \
- install-ps-recursive install-recursive installcheck-recursive \
- installdirs-recursive pdf-recursive ps-recursive \
- tags-recursive uninstall-recursive
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(netedit_SOURCES)
+DIST_SOURCES = $(am__netedit_SOURCES_DIST)
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
- distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
- $(RECURSIVE_TARGETS) \
- $(RECURSIVE_CLEAN_TARGETS) \
- $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
- distdir
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
@@ -222,33 +249,7 @@ am__define_uniq_tagged_files = \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
-DIST_SUBDIRS = utils microsim netbuild
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
- dir0=`pwd`; \
- sed_first='s,^\([^/]*\)/.*$$,\1,'; \
- sed_rest='s,^[^/]*/*,,'; \
- sed_last='s,^.*/\([^/]*\)$$,\1,'; \
- sed_butlast='s,/*[^/]*$$,,'; \
- while test -n "$$dir1"; do \
- first=`echo "$$dir1" | sed -e "$$sed_first"`; \
- if test "$$first" != "."; then \
- if test "$$first" = ".."; then \
- dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
- dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
- else \
- first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
- if test "$$first2" = "$$first"; then \
- dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
- else \
- dir2="../$$dir2"; \
- fi; \
- dir0="$$dir0"/"$$first"; \
- fi; \
- fi; \
- dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
- done; \
- reldir="$$dir2"
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMTAR = @AMTAR@
@@ -391,59 +392,75 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
- at INTERNAL_TRUE@MESO_LIBS = ../../src/mesosim/libmesosim.a
- at CHECK_MEMORY_LEAKS_TRUE@MEM_LIBS = ../../src/foreign/nvwa/libnvwa.a
- at WITH_GUI_TRUE@GUI_TESTS = ./utils/foxtools/FXWorkerThreadTest.o
- at WITH_GTEST_TRUE@sumo_unittest_SOURCES = unittest_main.cpp
- at WITH_GTEST_TRUE@sumo_unittest_LDFLAGS = $(GTEST_LDFLAGS) $(GDAL_LDFLAGS) $(PROJ_LDFLAGS)
- at WITH_GTEST_TRUE@sumo_unittest_LDADD = \
- at WITH_GTEST_TRUE@./utils/common/StringUtilsTest.o \
- at WITH_GTEST_TRUE@./utils/common/StringTokenizerTest.o \
- at WITH_GTEST_TRUE@./utils/common/RGBColorTest.o \
- at WITH_GTEST_TRUE@./utils/common/TplConvertTest.o \
- at WITH_GTEST_TRUE@./utils/common/ValueTimeLineTest.o \
- at WITH_GTEST_TRUE@./utils/geom/BoundaryTest.o \
- at WITH_GTEST_TRUE@./utils/geom/PositionVectorTest.o \
- at WITH_GTEST_TRUE@./utils/geom/LineTest.o \
- at WITH_GTEST_TRUE@./utils/geom/GeomHelperTest.o \
- at WITH_GTEST_TRUE@./utils/geom/GeoConvHelperTest.o \
- at WITH_GTEST_TRUE@./netbuild/NBHeightMapperTest.o \
- at WITH_GTEST_TRUE@./netbuild/NBTrafficLightLogicTest.o \
- at WITH_GTEST_TRUE@./microsim/MSCFModelTest.o \
- at WITH_GTEST_TRUE@./microsim/MSEventControlTest.o \
- at WITH_GTEST_TRUE@$(GUI_TESTS) \
- at WITH_GTEST_TRUE@../../src/netbuild/libnetbuild.a \
- at WITH_GTEST_TRUE@../../src/traci-server/libtraciserver.a \
- at WITH_GTEST_TRUE@../../src/microsim/libmicrosim.a \
- at WITH_GTEST_TRUE@../../src/traci-server/TraCIServer.o \
- at WITH_GTEST_TRUE@../../src/microsim/devices/libmicrosimdevs.a \
- at WITH_GTEST_TRUE@../../src/microsim/trigger/libmicrosimtrigger.a \
- at WITH_GTEST_TRUE@../../src/microsim/cfmodels/libmicrosimcfmodels.a \
- at WITH_GTEST_TRUE@../../src/microsim/lcmodels/libmicrosimlcmodels.a \
- at WITH_GTEST_TRUE@../../src/microsim/pedestrians/libmicrosimpeds.a \
- at WITH_GTEST_TRUE@../../src/microsim/output/libmicrosimoutput.a \
- at WITH_GTEST_TRUE@../../src/microsim/MSMoveReminder.o \
- at WITH_GTEST_TRUE@../../src/microsim/MSRouteHandler.o \
- at WITH_GTEST_TRUE@../../src/microsim/actions/libmsactions.a \
- at WITH_GTEST_TRUE@../../src/microsim/traffic_lights/libmicrosimtls.a \
- at WITH_GTEST_TRUE@$(MESO_LIBS) \
- at WITH_GTEST_TRUE@../../src/utils/geom/libgeom.a \
- at WITH_GTEST_TRUE@../../src/utils/shapes/libshapes.a \
- at WITH_GTEST_TRUE@../../src/utils/emissions/libemissions.a \
- at WITH_GTEST_TRUE@../../src/utils/xml/libxml.a \
- at WITH_GTEST_TRUE@../../src/utils/vehicle/libvehicle.a \
- at WITH_GTEST_TRUE@../../src/utils/common/libcommon.a \
- at WITH_GTEST_TRUE@../../src/utils/options/liboptions.a \
- at WITH_GTEST_TRUE@../../src/utils/iodevices/libiodevices.a \
- at WITH_GTEST_TRUE@../../src/utils/common/FileHelpers.o \
- at WITH_GTEST_TRUE@../../src/foreign/tcpip/libtcpip.a \
- at WITH_GTEST_TRUE@$(MEM_LIBS) \
- at WITH_GTEST_TRUE@$(PYTHON_LIBS) \
- at WITH_GTEST_TRUE@$(XERCES_LIBS) \
- at WITH_GTEST_TRUE@$(FOX_LDFLAGS)
-
- at WITH_GTEST_TRUE@SUBDIRS = utils microsim netbuild
-all: all-recursive
+EXTRA_DIST = netedit64.ico tlslogo.cpp
+ at WITH_GUI_TRUE@GUI_APPS = netedit
+ at CHECK_MEMORY_LEAKS_TRUE@MEM_LIBS = ../foreign/nvwa/libnvwa.a
+ at TRACI_TRUE@TRACI_LIBS = ../traci-server/libtraciserver.a
+ at WITH_GUI_TRUE@netedit_SOURCES = netedit_main.cpp \
+ at WITH_GUI_TRUE@GNEApplicationWindow.h GNEApplicationWindow.cpp \
+ at WITH_GUI_TRUE@GNELoadThread.h GNELoadThread.cpp \
+ at WITH_GUI_TRUE@GNENet.h GNENet.cpp \
+ at WITH_GUI_TRUE@GNEEdge.h GNEEdge.cpp \
+ at WITH_GUI_TRUE@GNELane.h GNELane.cpp \
+ at WITH_GUI_TRUE@GNEInternalLane.h GNEInternalLane.cpp \
+ at WITH_GUI_TRUE@GNECrossing.h GNECrossing.cpp \
+ at WITH_GUI_TRUE@GNEJunction.h GNEJunction.cpp \
+ at WITH_GUI_TRUE@GNEPOI.h GNEPOI.cpp \
+ at WITH_GUI_TRUE@GNEPoly.h GNEPoly.cpp \
+ at WITH_GUI_TRUE@GNEViewNet.h GNEViewNet.cpp \
+ at WITH_GUI_TRUE@GNEViewParent.h GNEViewParent.cpp \
+ at WITH_GUI_TRUE@GNEDialog_About.h GNEDialog_About.cpp \
+ at WITH_GUI_TRUE@GNEDialog_Wizard.h GNEDialog_Wizard.cpp \
+ at WITH_GUI_TRUE@GNEChange.h GNEChange.cpp \
+ at WITH_GUI_TRUE@GNEChange_Junction.h GNEChange_Junction.cpp \
+ at WITH_GUI_TRUE@GNEChange_Edge.h GNEChange_Edge.cpp \
+ at WITH_GUI_TRUE@GNEChange_Lane.h GNEChange_Lane.cpp \
+ at WITH_GUI_TRUE@GNEChange_Connection.h GNEChange_Connection.cpp \
+ at WITH_GUI_TRUE@GNEChange_Attribute.h GNEChange_Attribute.cpp \
+ at WITH_GUI_TRUE@GNEChange_TLS.h GNEChange_TLS.cpp \
+ at WITH_GUI_TRUE@GNEChange_Selection.h GNEChange_Selection.cpp \
+ at WITH_GUI_TRUE@GNEUndoList.h GNEUndoList.cpp \
+ at WITH_GUI_TRUE@GNEAttributeCarrier.h GNEAttributeCarrier.cpp \
+ at WITH_GUI_TRUE@GNEInspector.h GNEInspector.cpp \
+ at WITH_GUI_TRUE@GNESelector.h GNESelector.cpp \
+ at WITH_GUI_TRUE@GNEConnector.h GNEConnector.cpp \
+ at WITH_GUI_TRUE@GNETLSEditor.h GNETLSEditor.cpp \
+ at WITH_GUI_TRUE@GNEReferenceCounter.h \
+ at WITH_GUI_TRUE@GNEEvent_NetworkLoaded.h
+
+ at WITH_GUI_TRUE@netedit_LDADD = ../netimport/libnetimport.a \
+ at WITH_GUI_TRUE@../netimport/vissim/libvissimimport.a \
+ at WITH_GUI_TRUE@../netimport/vissim/typeloader/libvissimtypeload.a \
+ at WITH_GUI_TRUE@../netimport/vissim/tempstructs/libvissimtmpstr.a \
+ at WITH_GUI_TRUE@../netbuild/libnetbuild.a \
+ at WITH_GUI_TRUE@../netwrite/libnetwrite.a \
+ at WITH_GUI_TRUE@../utils/distribution/libdistribution.a \
+ at WITH_GUI_TRUE@../foreign/eulerspiral/libeulerspiral.a \
+ at WITH_GUI_TRUE@../utils/gui/windows/libguiutilsWindows.a \
+ at WITH_GUI_TRUE@../utils/gui/globjects/libguiutilsglobjects.a \
+ at WITH_GUI_TRUE@../utils/gui/div/libguiutilsdiv.a \
+ at WITH_GUI_TRUE@../utils/gui/settings/libguiutilssettings.a \
+ at WITH_GUI_TRUE@../utils/gui/images/libguiutilsimages.a \
+ at WITH_GUI_TRUE@../utils/gui/tracker/libguiutilstracker.a \
+ at WITH_GUI_TRUE@../utils/foxtools/libfoxtools.a \
+ at WITH_GUI_TRUE@../utils/distribution/libdistribution.a \
+ at WITH_GUI_TRUE@../foreign/gl2ps/libgl2ps.a \
+ at WITH_GUI_TRUE@../foreign/polyfonts/libpolyfonts.a \
+ at WITH_GUI_TRUE@../foreign/eulerspiral/libeulerspiral.a \
+ at WITH_GUI_TRUE@../utils/geom/libgeom.a \
+ at WITH_GUI_TRUE@../utils/shapes/libshapes.a \
+ at WITH_GUI_TRUE@../utils/options/liboptions.a \
+ at WITH_GUI_TRUE@../utils/common/libcommon.a \
+ at WITH_GUI_TRUE@../utils/emissions/libemissions.a \
+ at WITH_GUI_TRUE@../utils/xml/libxml.a \
+ at WITH_GUI_TRUE@../utils/importio/libimportio.a \
+ at WITH_GUI_TRUE@../utils/iodevices/libiodevices.a \
+ at WITH_GUI_TRUE@../foreign/tcpip/libtcpip.a \
+ at WITH_GUI_TRUE@$(MEM_LIBS) \
+ at WITH_GUI_TRUE@$(XERCES_LIBS) \
+ at WITH_GUI_TRUE@$(FOX_LDFLAGS) $(XERCES_LDFLAGS) $(PROJ_LDFLAGS) $(GDAL_LDFLAGS) $(X_LDFLAGS)
+
+all: all-am
.SUFFIXES:
.SUFFIXES: .cpp .lo .o .obj
@@ -456,9 +473,9 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu unittest/src/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/netedit/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu unittest/src/Makefile
+ $(AUTOMAKE) --gnu src/netedit/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -527,9 +544,9 @@ clean-binPROGRAMS:
echo " rm -f" $$list; \
rm -f $$list
-sumo-unittest$(EXEEXT): $(sumo_unittest_OBJECTS) $(sumo_unittest_DEPENDENCIES) $(EXTRA_sumo_unittest_DEPENDENCIES)
- @rm -f sumo-unittest$(EXEEXT)
- $(AM_V_CXXLD)$(sumo_unittest_LINK) $(sumo_unittest_OBJECTS) $(sumo_unittest_LDADD) $(LIBS)
+netedit$(EXEEXT): $(netedit_OBJECTS) $(netedit_DEPENDENCIES) $(EXTRA_netedit_DEPENDENCIES)
+ @rm -f netedit$(EXEEXT)
+ $(AM_V_CXXLD)$(CXXLINK) $(netedit_OBJECTS) $(netedit_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -537,7 +554,35 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unittest_main.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEApplicationWindow.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEAttributeCarrier.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_Attribute.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_Connection.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_Edge.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_Junction.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_Lane.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_Selection.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEChange_TLS.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEConnector.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNECrossing.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEDialog_About.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEDialog_Wizard.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEEdge.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEInspector.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEInternalLane.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEJunction.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNELane.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNELoadThread.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNENet.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEPOI.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEPoly.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNESelector.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNETLSEditor.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEUndoList.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEViewNet.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GNEViewParent.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/netedit_main.Po at am__quote@
.cpp.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -566,61 +611,14 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-# (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
- @fail=; \
- if $(am__make_keepgoing); then \
- failcom='fail=yes'; \
- else \
- failcom='exit 1'; \
- fi; \
- dot_seen=no; \
- target=`echo $@ | sed s/-recursive//`; \
- case "$@" in \
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
- *) list='$(SUBDIRS)' ;; \
- esac; \
- for subdir in $$list; do \
- echo "Making $$target in $$subdir"; \
- if test "$$subdir" = "."; then \
- dot_seen=yes; \
- local_target="$$target-am"; \
- else \
- local_target="$$target"; \
- fi; \
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
- || eval $$failcom; \
- done; \
- if test "$$dot_seen" = "no"; then \
- $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
- fi; test -z "$$fail"
-
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
+tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
- if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
- include_option=--etags-include; \
- empty_fix=.; \
- else \
- include_option=--include; \
- empty_fix=; \
- fi; \
- list='$(SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- test ! -f $$subdir/TAGS || \
- set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
- fi; \
- done; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
@@ -633,7 +631,7 @@ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$$unique; \
fi; \
fi
-ctags: ctags-recursive
+ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
@@ -646,7 +644,7 @@ GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
+cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
@@ -695,48 +693,22 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
- if test "$$subdir" = .; then :; else \
- $(am__make_dryrun) \
- || test -d "$(distdir)/$$subdir" \
- || $(MKDIR_P) "$(distdir)/$$subdir" \
- || exit 1; \
- dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
- $(am__relativize); \
- new_distdir=$$reldir; \
- dir1=$$subdir; dir2="$(top_distdir)"; \
- $(am__relativize); \
- new_top_distdir=$$reldir; \
- echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
- echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
- ($(am__cd) $$subdir && \
- $(MAKE) $(AM_MAKEFLAGS) \
- top_distdir="$$new_top_distdir" \
- distdir="$$new_distdir" \
- am__remove_distdir=: \
- am__skip_length_check=: \
- am__skip_mode_fix=: \
- distdir) \
- || exit 1; \
- fi; \
- done
check-am: all-am
-check: check-recursive
+check: check-am
all-am: Makefile $(PROGRAMS)
-installdirs: installdirs-recursive
-installdirs-am:
+installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-installcheck: installcheck-recursive
+installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
@@ -758,92 +730,91 @@ distclean-generic:
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
+clean: clean-am
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
-distclean: distclean-recursive
+distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
-dvi: dvi-recursive
+dvi: dvi-am
dvi-am:
-html: html-recursive
+html: html-am
html-am:
-info: info-recursive
+info: info-am
info-am:
install-data-am:
-install-dvi: install-dvi-recursive
+install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-binPROGRAMS
-install-html: install-html-recursive
+install-html: install-html-am
install-html-am:
-install-info: install-info-recursive
+install-info: install-info-am
install-info-am:
install-man:
-install-pdf: install-pdf-recursive
+install-pdf: install-pdf-am
install-pdf-am:
-install-ps: install-ps-recursive
+install-ps: install-ps-am
install-ps-am:
installcheck-am:
-maintainer-clean: maintainer-clean-recursive
+maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
-mostlyclean: mostlyclean-recursive
+mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-pdf: pdf-recursive
+pdf: pdf-am
pdf-am:
-ps: ps-recursive
+ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
- check-am clean clean-binPROGRAMS clean-generic clean-libtool \
- cscopelist-am ctags ctags-am distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-binPROGRAMS install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-pdf install-pdf-am install-ps install-ps-am \
- install-strip installcheck installcheck-am installdirs \
- installdirs-am maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
- uninstall-am uninstall-binPROGRAMS
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+ clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+ ctags ctags-am distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/src/netedit/netedit64.ico b/src/netedit/netedit64.ico
new file mode 100644
index 0000000..cd36db4
Binary files /dev/null and b/src/netedit/netedit64.ico differ
diff --git a/src/netedit/netedit_main.cpp b/src/netedit/netedit_main.cpp
new file mode 100644
index 0000000..280c1a8
--- /dev/null
+++ b/src/netedit/netedit_main.cpp
@@ -0,0 +1,153 @@
+/****************************************************************************/
+/// @file netedit_main.cpp
+/// @author Jakob Erdmann
+/// @date Feb 2011
+/// @version $Id: netedit_main.cpp 18830 2015-09-11 08:57:34Z behrisch $
+///
+// Main for NETEDIT (adapted from guisim_main)
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+// ===========================================================================
+// included modules
+// ===========================================================================
+#ifdef _MSC_VER
+#include <windows_config.h>
+#else
+#include <config.h>
+#endif
+
+#ifdef HAVE_VERSION_H
+#include <version.h>
+#endif
+
+#include <ctime>
+#include <signal.h>
+#include <iostream>
+#include <utils/options/Option.h>
+#include <utils/options/OptionsCont.h>
+#include <utils/options/OptionsIO.h>
+#include <utils/common/UtilExceptions.h>
+#include <utils/common/FileHelpers.h>
+#include <utils/common/MsgHandler.h>
+#include <utils/common/SystemFrame.h>
+#include <utils/common/RandHelper.h>
+#include <utils/xml/XMLSubSys.h>
+#include <utils/gui/windows/GUIAppEnum.h>
+#include <utils/gui/images/GUITexturesHelper.h>
+#include <utils/gui/settings/GUICompleteSchemeStorage.h>
+#include <utils/geom/GeoConvHelper.h>
+#include <netimport/NIFrame.h>
+#include <netbuild/NBFrame.h>
+#include <netwrite/NWFrame.h>
+
+#include "GNEApplicationWindow.h"
+#include "GNELoadThread.h"
+
+#ifdef CHECK_MEMORY_LEAKS
+#include <foreign/nvwa/debug_new.h>
+#endif
+
+
+// ===========================================================================
+// methods
+// ===========================================================================
+
+
+/* -------------------------------------------------------------------------
+ * main
+ * ----------------------------------------------------------------------- */
+int
+main(int argc, char** argv) {
+ // make the output aware of threading
+ MFXMutex lock;
+ MsgHandler::assignLock(&lock);
+ // get the options
+ OptionsCont& oc = OptionsCont::getOptions();
+ // give some application descriptions
+ oc.setApplicationDescription("Graphical editor for SUMO networks.");
+ oc.setApplicationName("netedit.exe", "Netedit Version " + getBuildName(VERSION_STRING));
+ int ret = 0;
+#ifndef _DEBUG
+ try {
+#else
+ {
+#endif
+ // initialise subsystems
+ XMLSubSys::init();
+ OptionsCont& oc = OptionsCont::getOptions();
+ GNELoadThread::fillOptions(oc);
+ OptionsIO::setArgs(argc, argv);
+ OptionsIO::getOptions();
+ if (oc.processMetaOptions(false)) {
+ SystemFrame::close();
+ return 0;
+ }
+ XMLSubSys::setValidation(oc.getString("xml-validation"), oc.getString("xml-validation.net"));
+ // within gui-based applications, nothing is reported to the console
+ /*
+ MsgHandler::getErrorInstance()->report2cout(false);
+ MsgHandler::getErrorInstance()->report2cerr(false);
+ MsgHandler::getWarningInstance()->report2cout(false);
+ MsgHandler::getWarningInstance()->report2cerr(false);
+ MsgHandler::getMessageInstance()->report2cout(false);
+ MsgHandler::getMessageInstance()->report2cerr(false);
+ */
+ // Make application
+ FXApp application("Netedit", "DLR");
+ // Open display
+ application.init(argc, argv);
+ int minor, major;
+ if (!FXGLVisual::supported(&application, major, minor)) {
+ throw ProcessError("This system has no OpenGL support. Exiting.");
+ }
+ // initialise global settings
+ GUITexturesHelper::allowTextures(!oc.getBool("disable-textures"));
+
+ // build the main window
+ GNEApplicationWindow* window =
+ new GNEApplicationWindow(&application, "*.netc.cfg,*.netccfg");
+ window->dependentBuild();
+ gSchemeStorage.init(&application);
+ // init simulation and visualization structures
+ // initGuiShapeNames();
+ // Create app
+ application.addSignal(SIGINT, window, MID_QUIT);
+ application.create();
+ // Load configuration given on command line
+ if (oc.isSet("configuration-file") || oc.isSet("sumo-net-file")) {
+ window->loadOnStartup();
+ }
+ // Run
+ ret = application.run();
+#ifndef _DEBUG
+ } catch (const std::exception& e) {
+ if (std::string(e.what()) != std::string("")) {
+ WRITE_ERROR(e.what());
+ }
+ MsgHandler::getErrorInstance()->inform("Quitting (on error).", false);
+ ret = 1;
+ } catch (...) {
+ MsgHandler::getErrorInstance()->inform("Quitting (on unknown error).", false);
+ ret = 1;
+#endif
+ }
+ SystemFrame::close();
+ return ret;
+}
+
+
+
+/****************************************************************************/
+
diff --git a/src/netedit/tlslogo.cpp b/src/netedit/tlslogo.cpp
new file mode 100644
index 0000000..0777c49
--- /dev/null
+++ b/src/netedit/tlslogo.cpp
@@ -0,0 +1,159 @@
+/****************************************************************************/
+/// @file tlslogo.cpp
+/// @author Jakob Erdmann
+/// @date 2014-11-23
+/// @version $Id: tlslogo.cpp 19538 2015-12-05 14:48:32Z behrisch $
+///
+// Generated by reswrap version 4.0.0
+// created by reswrap from file tlslogo.gif
+/****************************************************************************/
+// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
+/****************************************************************************/
+//
+// This file is part of SUMO.
+// SUMO is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+/****************************************************************************/
+
+
+const unsigned char tlslogo[] = {
+ 0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x20, 0x00, 0x40, 0x00, 0xe7, 0xff, 0x00, 0x31, 0x33, 0x30,
+ 0x3c, 0x3e, 0x3b, 0x45, 0x45, 0x43, 0xff, 0x00, 0x00, 0x4d, 0x4f, 0x4c, 0x53, 0x4f, 0x4e, 0xff,
+ 0x07, 0x0c, 0x51, 0x53, 0x50, 0x59, 0x54, 0x53, 0x57, 0x59, 0x56, 0x5c, 0x5d, 0x5a, 0xf1, 0x1d,
+ 0x1f, 0xff, 0x1c, 0x00, 0x61, 0x5d, 0x56, 0xff, 0x1e, 0x21, 0x66, 0x61, 0x60, 0x63, 0x65, 0x62,
+ 0xfe, 0x2a, 0x00, 0x72, 0x66, 0x56, 0xea, 0x30, 0x36, 0x68, 0x6a, 0x67, 0x6f, 0x6a, 0x58, 0x6f,
+ 0x6c, 0x4e, 0x88, 0x61, 0x4d, 0x7b, 0x67, 0x53, 0x70, 0x6c, 0x6a, 0xff, 0x38, 0x00, 0x92, 0x60,
+ 0x56, 0xce, 0x49, 0x35, 0x71, 0x74, 0x54, 0x6f, 0x71, 0x6e, 0x93, 0x63, 0x63, 0x6f, 0x76, 0x61,
+ 0x6d, 0x7c, 0x53, 0xff, 0x42, 0x01, 0x7e, 0x70, 0x6b, 0xca, 0x50, 0x4d, 0x79, 0x74, 0x73, 0x76,
+ 0x78, 0x75, 0x85, 0x79, 0x4b, 0xff, 0x4b, 0x00, 0xab, 0x6a, 0x41, 0x7e, 0x79, 0x78, 0x7a, 0x7c,
+ 0x79, 0xff, 0x53, 0x00, 0x82, 0x7f, 0x71, 0xf3, 0x4d, 0x4d, 0x6e, 0x91, 0x57, 0xfe, 0x59, 0x00,
+ 0x94, 0x80, 0x59, 0x8c, 0x80, 0x6f, 0x8f, 0x7d, 0x7f, 0x7e, 0x91, 0x47, 0x87, 0x82, 0x80, 0x82,
+ 0x85, 0x81, 0x84, 0x8e, 0x53, 0xc7, 0x77, 0x22, 0xab, 0x7f, 0x47, 0xff, 0x63, 0x00, 0x88, 0x8a,
+ 0x87, 0xc1, 0x7e, 0x30, 0x90, 0x8a, 0x89, 0x8d, 0x8f, 0x8c, 0xff, 0x6f, 0x02, 0x7d, 0xa1, 0x60,
+ 0xff, 0x60, 0x5e, 0x9f, 0x97, 0x4c, 0xf4, 0x67, 0x68, 0xff, 0x75, 0x00, 0xaf, 0x93, 0x48, 0x93,
+ 0x95, 0x91, 0x96, 0xa0, 0x51, 0xa8, 0x93, 0x6c, 0xff, 0x7b, 0x00, 0xef, 0x80, 0x11, 0xa5, 0x90,
+ 0x8d, 0xaa, 0x9d, 0x3f, 0x00, 0xfd, 0x0e, 0x97, 0x99, 0x96, 0xff, 0x82, 0x00, 0x9f, 0x9e, 0x71,
+ 0x0c, 0xff, 0x00, 0x48, 0xd6, 0x3a, 0xff, 0x71, 0x71, 0x9b, 0x9d, 0x9a, 0xff, 0x87, 0x00, 0xa0,
+ 0x9b, 0x99, 0xfe, 0x8c, 0x01, 0x1a, 0xfa, 0x21, 0x6d, 0xca, 0x44, 0x93, 0xa9, 0x8f, 0xd5, 0x8a,
+ 0x86, 0xff, 0x8e, 0x00, 0x5b, 0xd1, 0x58, 0xbb, 0x9d, 0x6b, 0xff, 0x8c, 0x1a, 0xfe, 0x91, 0x06,
+ 0xff, 0x92, 0x00, 0xa2, 0xa4, 0xa1, 0xbb, 0x9f, 0x79, 0xa8, 0xa3, 0xa2, 0xe2, 0x9d, 0x29, 0xff,
+ 0x97, 0x00, 0x35, 0xff, 0x00, 0xff, 0x98, 0x0e, 0xca, 0xb0, 0x22, 0xa8, 0xaa, 0xa7, 0xff, 0x9d,
+ 0x00, 0xd8, 0xa0, 0x5c, 0x56, 0xf4, 0x02, 0xaf, 0xa9, 0xa8, 0xff, 0x9a, 0x21, 0xf6, 0x9d, 0x32,
+ 0x35, 0xff, 0x36, 0xfd, 0x9e, 0x1d, 0xff, 0x99, 0x34, 0x4a, 0xff, 0x00, 0xff, 0xa3, 0x02, 0x82,
+ 0xca, 0x86, 0xe4, 0xa3, 0x51, 0xda, 0xb2, 0x1e, 0xff, 0xa5, 0x00, 0xad, 0xaf, 0xac, 0xef, 0xad,
+ 0x16, 0xff, 0xa9, 0x00, 0xc0, 0xaa, 0xa7, 0x8c, 0xde, 0x1e, 0xb4, 0xaf, 0xad, 0xf0, 0xa5, 0x44,
+ 0x58, 0xff, 0x00, 0xb0, 0xb2, 0xaf, 0x61, 0xe9, 0x64, 0xf7, 0xae, 0x08, 0xff, 0xa3, 0x30, 0xbb,
+ 0xb0, 0xa4, 0xff, 0xaf, 0x00, 0x9a, 0xc7, 0x95, 0x48, 0xff, 0x4d, 0xff, 0xa6, 0x3b, 0x66, 0xff,
+ 0x00, 0xfe, 0xb3, 0x00, 0xb5, 0xb7, 0xb4, 0xba, 0xb5, 0xb3, 0xff, 0x97, 0x98, 0xdf, 0xaf, 0x74,
+ 0xfe, 0xb8, 0x01, 0xff, 0xac, 0x43, 0x75, 0xff, 0x00, 0xff, 0xbb, 0x00, 0xbb, 0xbd, 0xba, 0xfe,
+ 0xad, 0x5c, 0x7f, 0xff, 0x00, 0xff, 0xbf, 0x00, 0xf5, 0xb2, 0x62, 0xc1, 0xbc, 0xbb, 0x5f, 0xff,
+ 0x5f, 0xfe, 0xb2, 0x51, 0xbe, 0xc0, 0xbd, 0x89, 0xff, 0x00, 0xe2, 0xca, 0x2a, 0xff, 0xc5, 0x00,
+ 0xc0, 0xdd, 0x2d, 0x9b, 0xdc, 0x98, 0x92, 0xff, 0x00, 0xfd, 0xca, 0x00, 0xff, 0xb8, 0x63, 0xc3,
+ 0xc5, 0xc1, 0x9b, 0xff, 0x00, 0xc9, 0xc4, 0xc2, 0xff, 0xb7, 0x76, 0xf9, 0xd0, 0x05, 0xff, 0xbb,
+ 0x6b, 0xff, 0xcf, 0x00, 0xd0, 0xc3, 0xc4, 0xcf, 0xd4, 0x6e, 0xa3, 0xff, 0x00, 0x78, 0xff, 0x78,
+ 0xc7, 0xc9, 0xc6, 0xab, 0xff, 0x00, 0xff, 0xd5, 0x00, 0xff, 0xbf, 0x7b, 0xd2, 0xd5, 0x84, 0xfe,
+ 0xc2, 0x7c, 0xfe, 0xb8, 0xb6, 0xd1, 0xcc, 0xca, 0xfe, 0xdb, 0x00, 0xfe, 0xc3, 0x84, 0xb7, 0xff,
+ 0x0a, 0xbc, 0xff, 0x00, 0xc2, 0xfd, 0x01, 0xff, 0xc5, 0x8c, 0xd0, 0xd2, 0xcf, 0xee, 0xcb, 0xab,
+ 0xff, 0xe1, 0x0b, 0xd7, 0xd2, 0xd1, 0xff, 0xc9, 0x95, 0xcb, 0xff, 0x07, 0xfd, 0xe4, 0x25, 0xd7,
+ 0xd9, 0xd5, 0xff, 0xc8, 0xc8, 0xd2, 0xff, 0x1d, 0xf5, 0xe3, 0x55, 0xff, 0xd0, 0xa4, 0xa4, 0xff,
+ 0xa1, 0xe3, 0xe4, 0x8b, 0xde, 0xd9, 0xd7, 0xb3, 0xfa, 0xad, 0xff, 0xea, 0x38, 0xd9, 0xff, 0x31,
+ 0xe2, 0xdc, 0xdb, 0xdf, 0xff, 0x32, 0xff, 0xec, 0x44, 0xdf, 0xe1, 0xde, 0xff, 0xed, 0x4f, 0xdb,
+ 0xe7, 0xd4, 0xe6, 0xff, 0x40, 0xff, 0xee, 0x58, 0xff, 0xef, 0x61, 0xea, 0xff, 0x4c, 0xff, 0xf1,
+ 0x6a, 0xe6, 0xe8, 0xe5, 0xfc, 0xf3, 0x72, 0xf1, 0xff, 0x57, 0xc8, 0xff, 0xc9, 0xf1, 0xff, 0x60,
+ 0xee, 0xe8, 0xe7, 0xfd, 0xf5, 0x7b, 0xf6, 0xff, 0x69, 0xfd, 0xf7, 0x83, 0xeb, 0xed, 0xea, 0xf9,
+ 0xff, 0x72, 0xf8, 0xeb, 0xec, 0xfb, 0xff, 0x7a, 0xff, 0xed, 0xdb, 0xfd, 0xff, 0x81, 0xfd, 0xfd,
+ 0x8f, 0xff, 0xff, 0x89, 0xdf, 0xff, 0xe1, 0xfc, 0xff, 0x97, 0xff, 0xfe, 0x9e, 0xf3, 0xf5, 0xf2,
+ 0xfe, 0xf2, 0xe5, 0xfe, 0xff, 0xac, 0xfc, 0xff, 0xb2, 0xff, 0xfe, 0xb3, 0xff, 0xfe, 0xb9, 0xff,
+ 0xff, 0xc0, 0xfd, 0xff, 0xc7, 0xff, 0xfe, 0xcd, 0xfd, 0xf8, 0xf6, 0xff, 0xf8, 0xf1, 0xf3, 0xfd,
+ 0xf8, 0xfe, 0xff, 0xd3, 0xfd, 0xff, 0xdb, 0xfa, 0xfc, 0xf8, 0xff, 0xff, 0xff, 0x21, 0xf9, 0x04,
+ 0x01, 0x0a, 0x00, 0xff, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x08,
+ 0xfe, 0x00, 0xff, 0xfd, 0xf3, 0x47, 0xb0, 0xa0, 0xc1, 0x83, 0x05, 0xe1, 0x09, 0x5c, 0xc8, 0x70,
+ 0x61, 0x39, 0x5c, 0x9a, 0x22, 0x4a, 0x9c, 0x48, 0x31, 0x22, 0x2a, 0x63, 0xb1, 0x1a, 0x32, 0xcc,
+ 0x67, 0xaa, 0x93, 0xc7, 0x8f, 0x20, 0x43, 0x7e, 0xd4, 0x84, 0xcb, 0x98, 0xc6, 0x85, 0xfe, 0x50,
+ 0x69, 0x52, 0xa9, 0x52, 0x93, 0x95, 0x1a, 0x3d, 0x62, 0xfe, 0x61, 0xb9, 0x52, 0x53, 0x27, 0x4d,
+ 0xe1, 0x4e, 0x0a, 0x84, 0xd7, 0xf1, 0xa3, 0x0f, 0x04, 0x12, 0x72, 0xf0, 0xc0, 0x91, 0x62, 0xc4,
+ 0x0a, 0x35, 0x1f, 0x51, 0xdd, 0xe4, 0xa6, 0xf3, 0x5f, 0xbe, 0x89, 0x25, 0x24, 0xb0, 0x59, 0xb5,
+ 0x8a, 0x53, 0xa1, 0x2a, 0x2c, 0x38, 0xcc, 0x70, 0x23, 0xd1, 0x63, 0x4e, 0x9d, 0xfe, 0x4c, 0x75,
+ 0x34, 0x21, 0x21, 0x93, 0xaf, 0x61, 0xbe, 0x68, 0x71, 0x9a, 0x43, 0x44, 0xc3, 0x82, 0x25, 0x8d,
+ 0x6e, 0x7a, 0x2c, 0xd7, 0xf4, 0xa9, 0xcb, 0x06, 0x80, 0x6c, 0x0d, 0x53, 0x36, 0x4c, 0x57, 0xa9,
+ 0xab, 0x30, 0x0c, 0x4c, 0xf8, 0x63, 0x53, 0xe5, 0xd7, 0x93, 0xfe, 0x6e, 0x96, 0xe0, 0xc1, 0x89,
+ 0xd6, 0x59, 0x5f, 0x7e, 0x25, 0x7d, 0xd1, 0x11, 0xc1, 0xc0, 0x16, 0x9b, 0x1e, 0x99, 0x82, 0xd5,
+ 0xd4, 0x08, 0x82, 0x92, 0x42, 0xa9, 0x74, 0xe9, 0xa2, 0x55, 0x55, 0x4e, 0x15, 0x1d, 0x0c, 0x06,
+ 0xb8, 0xf8, 0xa5, 0xb2, 0xd3, 0x61, 0x8d, 0xfe, 0x34, 0xfd, 0xd9, 0x40, 0x44, 0x8e, 0x24, 0xaa,
+ 0xa5, 0x38, 0x29, 0x7a, 0x93, 0x84, 0x05, 0x03, 0x03, 0x06, 0xa8, 0x75, 0x52, 0xaa, 0xf9, 0x64,
+ 0xbe, 0x4e, 0x7a, 0x36, 0xa0, 0x78, 0x22, 0x47, 0x91, 0x24, 0x49, 0x85, 0xde, 0x54, 0xf9, 0x21,
+ 0x62, 0xc0, 0x00, 0x03, 0x76, 0x71, 0x36, 0x4d, 0xac, 0xe7, 0x43, 0x04, 0x1d, 0x4f, 0xbe, 0xfe,
+ 0x7c, 0x79, 0x03, 0x66, 0xba, 0x6f, 0xeb, 0x0e, 0x78, 0x76, 0xaa, 0x44, 0xad, 0x6e, 0x44, 0x1b,
+ 0x0b, 0x22, 0xc0, 0x20, 0x92, 0x84, 0xc8, 0x0f, 0x1d, 0x28, 0x52, 0x5b, 0x9f, 0x52, 0x4e, 0x6e,
+ 0xb4, 0xed, 0x1e, 0x39, 0x41, 0x82, 0x01, 0x0c, 0x68, 0x80, 0x02, 0x0a, 0x22, 0x44, 0x10, 0x81,
+ 0x7e, 0x03, 0x1c, 0x13, 0x8d, 0x5c, 0x26, 0xe9, 0x74, 0x9c, 0x26, 0x8e, 0x88, 0xb1, 0xc0, 0x00,
+ 0xa9, 0x65, 0x68, 0xdd, 0x7e, 0x1c, 0x69, 0x62, 0x8a, 0x26, 0xcd, 0xd4, 0xd5, 0x53, 0x23, 0x7d,
+ 0x5c, 0xb8, 0xe1, 0x89, 0x41, 0xe4, 0x23, 0xcc, 0x4d, 0x1f, 0x0a, 0xb3, 0xdd, 0x44, 0x9d, 0xb4,
+ 0x32, 0x84, 0x01, 0x27, 0x3a, 0xf0, 0x48, 0x3e, 0xbf, 0xc8, 0x65, 0xd3, 0x2f, 0x00, 0x7a, 0xb4,
+ 0x52, 0x2c, 0xd4, 0xe8, 0x73, 0xcb, 0x23, 0x8f, 0x1c, 0x03, 0x0f, 0x37, 0xad, 0x29, 0xb5, 0x12,
+ 0x8f, 0x12, 0xb2, 0xa4, 0x23, 0x2a, 0xc2, 0x08, 0x63, 0x8c, 0x31, 0x3d, 0x7d, 0xb8, 0x92, 0x47,
+ 0xb8, 0x34, 0x05, 0x8f, 0x8f, 0x1f, 0x82, 0x64, 0x93, 0x45, 0x1e, 0xde, 0x24, 0x51, 0x46, 0x3a,
+ 0x95, 0xd3, 0x5a, 0x27, 0x56, 0x46, 0xc4, 0xa2, 0x8e, 0x1e, 0xf5, 0x84, 0x4a, 0x53, 0xe1, 0x88,
+ 0xe9, 0x61, 0x4f, 0x1e, 0x46, 0xf4, 0xe1, 0x9d, 0x16, 0xa1, 0xd9, 0x14, 0x37, 0x61, 0x8a, 0x69,
+ 0x85, 0x0a, 0x0f, 0x3c, 0x40, 0x81, 0x07, 0x3e, 0xe8, 0x51, 0x27, 0x9d, 0x9a, 0x34, 0x45, 0x4d,
+ 0x4d, 0xa6, 0xfc, 0x41, 0x81, 0x05, 0x4c, 0x7c, 0x92, 0x0b, 0x29, 0x78, 0x14, 0xd1, 0x82, 0x15,
+ 0x13, 0x75, 0x94, 0xa8, 0x4e, 0x0f, 0x7a, 0xf4, 0x87, 0x02, 0x42, 0x24, 0xb3, 0x4d, 0x36, 0xd5,
+ 0x14, 0x33, 0x0b, 0x28, 0x7b, 0x20, 0x41, 0x05, 0x9a, 0x56, 0x36, 0xd2, 0x94, 0x30, 0xfe, 0x35,
+ 0x3d, 0xc0, 0x04, 0x36, 0xe2, 0xac, 0x23, 0x4e, 0x36, 0xd3, 0xe4, 0xc2, 0x4a, 0x24, 0x79, 0x8c,
+ 0xc1, 0x95, 0x58, 0xa8, 0xb8, 0xaa, 0xd3, 0x8a, 0x9a, 0xd8, 0x70, 0x42, 0x31, 0xd9, 0x90, 0x43,
+ 0x8e, 0x38, 0xdd, 0x4c, 0x13, 0xcc, 0xa9, 0x8c, 0x14, 0x62, 0x88, 0x9c, 0x8e, 0xbc, 0xea, 0x11,
+ 0x05, 0x69, 0x20, 0x2b, 0x8e, 0x38, 0xdb, 0x6c, 0xe3, 0x2c, 0xb4, 0x6b, 0x40, 0xa2, 0x94, 0x47,
+ 0xc2, 0x9e, 0xa4, 0xd4, 0x1f, 0x12, 0x90, 0x92, 0xcb, 0x34, 0xd9, 0x8c, 0x3a, 0x4d, 0x31, 0xb9,
+ 0x40, 0x2b, 0x07, 0x1c, 0xc6, 0x7c, 0xe9, 0x46, 0x53, 0x4a, 0x09, 0x72, 0x02, 0x28, 0xb3, 0xe4,
+ 0xf2, 0xcc, 0xbf, 0xc5, 0x3c, 0x4b, 0x0a, 0x26, 0x87, 0x98, 0xf1, 0x05, 0x92, 0x1e, 0xe9, 0xd1,
+ 0x54, 0x44, 0x8e, 0xc4, 0x40, 0x09, 0x2b, 0xb9, 0x44, 0x1c, 0xf1, 0x2c, 0xa7, 0x46, 0xc2, 0x87,
+ 0x19, 0x55, 0x4c, 0x88, 0x0a, 0x19, 0x4d, 0x91, 0x2b, 0x03, 0x21, 0x98, 0x90, 0x42, 0x31, 0xc5,
+ 0xac, 0x80, 0x42, 0x70, 0x1d, 0x57, 0xcc, 0x71, 0x9c, 0x47, 0x6a, 0x2c, 0x1c, 0x91, 0x11, 0x65,
+ 0x30, 0x42, 0x09, 0x28, 0xa4, 0x90, 0x62, 0x72, 0x24, 0x87, 0xd4, 0x11, 0x46, 0x15, 0xbe, 0x20,
+ 0x19, 0x11, 0xc7, 0x3a, 0xc5, 0xa5, 0x09, 0x19, 0x63, 0xac, 0xc1, 0x07, 0x23, 0x32, 0xe3, 0x9c,
+ 0xb3, 0x19, 0x57, 0x7c, 0x11, 0x4f, 0x8e, 0x1f, 0x8a, 0xd1, 0x94, 0x23, 0x36, 0x55, 0xe2, 0xc6,
+ 0x1d, 0x68, 0x18, 0x9d, 0x47, 0x1d, 0x75, 0x98, 0xc1, 0xf4, 0x13, 0xca, 0x84, 0x53, 0x53, 0x27,
+ 0x40, 0x9f, 0x24, 0x88, 0x9a, 0x11, 0x65, 0xc2, 0x05, 0x17, 0x61, 0xb4, 0x7d, 0x45, 0x78, 0xca,
+ 0xf0, 0xf4, 0x65, 0x27, 0x54, 0x34, 0xe5, 0x46, 0x4f, 0x37, 0x09, 0x03, 0x4c, 0xfe, 0x29, 0x5f,
+ 0x3c, 0x91, 0xc4, 0x17, 0xa9, 0xc4, 0x13, 0x0e, 0x9e, 0x37, 0x59, 0xd1, 0x14, 0x19, 0x2d, 0xc9,
+ 0x25, 0x4c, 0x39, 0xfa, 0xc4, 0xa3, 0x4f, 0x3e, 0xe1, 0xb0, 0x96, 0x54, 0x80, 0x4d, 0x21, 0x85,
+ 0xf7, 0x97, 0x62, 0x8d, 0x34, 0x1c, 0xda, 0x2e, 0x1d, 0x9e, 0x27, 0x8b, 0x5f, 0xaa, 0xd4, 0x25,
+ 0x9a, 0x7d, 0xfa, 0xd0, 0xd4, 0xaa, 0x1e, 0x89, 0x5e, 0x67, 0x9b, 0x75, 0xb6, 0x56, 0x53, 0x0f,
+ 0x4d, 0x61, 0x8a, 0x59, 0x9d, 0x43, 0x93, 0x41, 0x86, 0xa1, 0x3a, 0x8e, 0x6e, 0xba, 0x4e, 0x46,
+ 0x88, 0xa5, 0xe6, 0x1f, 0x26, 0x28, 0xd0, 0xc1, 0x0d, 0x34, 0x80, 0x60, 0x02, 0xa6, 0xa8, 0x74,
+ 0xa9, 0x12, 0xec, 0x3a, 0xf5, 0x30, 0x27, 0x2a, 0x46, 0x20, 0x00, 0x05, 0x33, 0xeb, 0xa0, 0xa3,
+ 0x4d, 0x2f, 0x7e, 0x00, 0x61, 0x83, 0x23, 0x21, 0xed, 0xd0, 0x94, 0x0f, 0x56, 0x1a, 0xa1, 0x40,
+ 0x2d, 0xf5, 0xe0, 0x73, 0x8f, 0x3c, 0xea, 0x68, 0xc3, 0xcb, 0x24, 0x59, 0x18, 0x21, 0x91, 0x4a,
+ 0x35, 0x34, 0xd5, 0x83, 0x47, 0x6e, 0x20, 0xe0, 0x4a, 0xf9, 0xfc, 0xf0, 0x63, 0xcf, 0x3b, 0xe3,
+ 0x40, 0x73, 0x0a, 0x1d, 0x5d, 0xf8, 0x03, 0x48, 0xe2, 0xa7, 0x13, 0x1b, 0xac, 0x64, 0x05, 0x47,
+ 0x50, 0x47, 0x3d, 0xf8, 0xd1, 0x0f, 0x7c, 0xec, 0xcf, 0x1c, 0xd0, 0x90, 0xc5, 0x22, 0xce, 0x80,
+ 0x08, 0x30, 0xd9, 0xa0, 0x29, 0x35, 0xb8, 0x09, 0x05, 0x42, 0xa1, 0x8e, 0x79, 0xd8, 0xe3, 0x1e,
+ 0xf7, 0x98, 0xc7, 0x3a, 0xfa, 0xb7, 0x8b, 0x45, 0x34, 0x61, 0x10, 0x10, 0xb9, 0x89, 0x0a, 0x9a,
+ 0xb2, 0x02, 0x4d, 0xe8, 0x21, 0x04, 0xbd, 0x00, 0x87, 0x3b, 0xe4, 0x41, 0x0f, 0x79, 0xb8, 0x43,
+ 0x1d, 0xde, 0x40, 0xc6, 0x2b, 0x26, 0x71, 0x06, 0x2c, 0x50, 0xc9, 0x26, 0xfe, 0x26, 0x68, 0x8a,
+ 0x09, 0x3a, 0x21, 0x88, 0x17, 0xbc, 0x02, 0x1a, 0xe3, 0x50, 0x07, 0x3b, 0xd8, 0x61, 0x0e, 0x6f,
+ 0x5c, 0x83, 0x17, 0xa3, 0x08, 0x44, 0x13, 0x9a, 0xd0, 0x1f, 0x0f, 0x05, 0x51, 0x27, 0x25, 0x90,
+ 0xcd, 0x0b, 0x3c, 0xc1, 0x8b, 0x6b, 0x68, 0xc3, 0x1b, 0xde, 0xd0, 0x06, 0x34, 0x7a, 0xb1, 0xc3,
+ 0x33, 0x44, 0xa1, 0x09, 0xf9, 0x48, 0x9e, 0x26, 0x4a, 0xd0, 0x14, 0x0a, 0x98, 0xc2, 0x11, 0x36,
+ 0x68, 0x83, 0x27, 0x76, 0x81, 0x0c, 0x64, 0x8c, 0x91, 0x17, 0xaf, 0xf0, 0x44, 0x20, 0xcc, 0x98,
+ 0x08, 0x78, 0x60, 0xc6, 0x03, 0x4d, 0xc9, 0x80, 0x4d, 0x8c, 0x20, 0x05, 0x3a, 0x5c, 0x62, 0x14,
+ 0xaf, 0x48, 0xe4, 0x28, 0x2e, 0x41, 0x87, 0x26, 0x44, 0x21, 0x0a, 0xcb, 0x78, 0x90, 0x4a, 0x32,
+ 0xd0, 0x14, 0x08, 0xdc, 0xe4, 0x0f, 0x5a, 0x68, 0xc2, 0x19, 0xe8, 0x30, 0x89, 0x45, 0x2c, 0x22,
+ 0x10, 0x74, 0x30, 0x63, 0x14, 0xe2, 0xe0, 0x8f, 0x14, 0x6a, 0x82, 0x02, 0x4d, 0x41, 0xc0, 0x97,
+ 0xfe, 0x60, 0x07, 0x47, 0x46, 0xe1, 0x0c, 0x66, 0x74, 0x65, 0x1c, 0xda, 0x21, 0x9c, 0x3b, 0x3d,
+ 0xa0, 0x29, 0x09, 0x50, 0x4a, 0x25, 0x22, 0x22, 0x0a, 0x2c, 0xb8, 0xf2, 0x91, 0x51, 0x48, 0x44,
+ 0x3b, 0xa2, 0x81, 0x19, 0x8f, 0x40, 0xa0, 0x29, 0x05, 0x10, 0xd3, 0x70, 0x50, 0x61, 0x0d, 0x67,
+ 0x6c, 0x22, 0x11, 0x71, 0x80, 0xc5, 0x37, 0xf6, 0x11, 0x0d, 0xdf, 0xb5, 0xe4, 0x96, 0x3a, 0x49,
+ 0xe6, 0xe8, 0x34, 0x11, 0x8b, 0x68, 0x70, 0x23, 0x1c, 0xe5, 0x08, 0xc7, 0x8a, 0xe4, 0xd2, 0xa6,
+ 0x4e, 0x28, 0xa0, 0x29, 0x02, 0xb0, 0x13, 0xe7, 0x48, 0x97, 0xba, 0xc2, 0xbc, 0x0f, 0x01, 0xe8,
+ 0x64, 0x91, 0x29, 0xc6, 0xc5, 0xa2, 0x33, 0x61, 0xc6, 0x77, 0x9d, 0x38, 0x80, 0xa7, 0x4e, 0x00,
+ 0xe0, 0x06, 0x65, 0xae, 0xce, 0x26, 0x1f, 0x52, 0x63, 0x57, 0x04, 0x51, 0x80, 0xa6, 0xfc, 0x03,
+ 0x01, 0x7a, 0x00, 0xdd, 0x3c, 0xfd, 0x39, 0xa7, 0x9e, 0x38, 0xea, 0x9c, 0x06, 0x05, 0x40, 0x00,
+ 0x02, 0x20, 0x80, 0x8a, 0x0a, 0x80, 0x00, 0x05, 0xc8, 0x68, 0x01, 0x0e, 0xa0, 0x51, 0x8d, 0x42,
+ 0x54, 0x27, 0x01, 0x01, 0x00, 0x3b
+};
+
diff --git a/src/netgen/NGFrame.cpp b/src/netgen/NGFrame.cpp
index 6d771bb..e9ac453 100644
--- a/src/netgen/NGFrame.cpp
+++ b/src/netgen/NGFrame.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 06.05.2011
-/// @version $Id: NGFrame.cpp 18503 2015-06-25 10:33:47Z namdre $
+/// @version $Id: NGFrame.cpp 19488 2015-12-02 09:53:19Z namdre $
///
// Sets and checks options for netgen
/****************************************************************************/
@@ -216,18 +216,22 @@ NGFrame::checkOptions() {
std::string type = oc.getString("default-junction-type");
if (type != toString(NODETYPE_TRAFFIC_LIGHT) &&
type != toString(NODETYPE_TRAFFIC_LIGHT_NOJUNCTION) &&
+ type != toString(NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED) &&
type != toString(NODETYPE_PRIORITY) &&
type != toString(NODETYPE_PRIORITY_STOP) &&
type != toString(NODETYPE_ALLWAY_STOP) &&
+ type != toString(NODETYPE_ZIPPER) &&
type != toString(NODETYPE_NOJUNCTION) &&
type != toString(NODETYPE_RAIL_SIGNAL) &&
type != toString(NODETYPE_RIGHT_BEFORE_LEFT)) {
WRITE_ERROR("Only the following junction types are known: " +
toString(NODETYPE_TRAFFIC_LIGHT) + ", " +
toString(NODETYPE_TRAFFIC_LIGHT_NOJUNCTION) + ", " +
+ toString(NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED) + ", " +
toString(NODETYPE_PRIORITY) + ", " +
toString(NODETYPE_PRIORITY_STOP) + ", " +
toString(NODETYPE_ALLWAY_STOP) + ", " +
+ toString(NODETYPE_ZIPPER) + ", " +
toString(NODETYPE_NOJUNCTION) + ", " +
toString(NODETYPE_RAIL_SIGNAL) + ", " +
toString(NODETYPE_RIGHT_BEFORE_LEFT));
diff --git a/src/netgen/NGNode.cpp b/src/netgen/NGNode.cpp
index df734b0..de63141 100644
--- a/src/netgen/NGNode.cpp
+++ b/src/netgen/NGNode.cpp
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mar, 2003
-/// @version $Id: NGNode.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NGNode.cpp 19488 2015-12-02 09:53:19Z namdre $
///
// A netgen-representation of a node
/****************************************************************************/
@@ -92,7 +92,7 @@ NGNode::buildNBNode(NBNetBuilder& nb) const {
node = new NBNode(myID, pos, type);
// check whether it is a traffic light junction
- if (type == NODETYPE_TRAFFIC_LIGHT || type == NODETYPE_TRAFFIC_LIGHT_NOJUNCTION) {
+ if (NBNode::isTrafficLight(type)) {
TrafficLightType type = SUMOXMLDefinitions::TrafficLightTypes.get(
OptionsCont::getOptions().getString("tls.default-type"));
NBTrafficLightDefinition* tlDef = new NBOwnTLDef(myID, node, 0, type);
diff --git a/src/netgen/NGRandomNetBuilder.cpp b/src/netgen/NGRandomNetBuilder.cpp
index 7a7bd86..a064e53 100644
--- a/src/netgen/NGRandomNetBuilder.cpp
+++ b/src/netgen/NGRandomNetBuilder.cpp
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mar, 2003
-/// @version $Id: NGRandomNetBuilder.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NGRandomNetBuilder.cpp 19218 2015-10-29 13:08:18Z behrisch $
///
// Additional structures for building random nets
/****************************************************************************/
@@ -128,8 +128,7 @@ NGRandomNetBuilder::checkAngles(NGNode* node) {
Position v2(
ni->getPosition().x() - node->getPosition().x(),
ni->getPosition().y() - node->getPosition().y());
- SUMOReal angle = GeomHelper::Angle2D(v1.x(), v1.y(), v2.x(), v2.y());
- if (fabs((SUMOReal) angle) < myMinLinkAngle) {
+ if (fabs(GeomHelper::angle2D(v1, v2)) < myMinLinkAngle) {
check = false;
}
}
@@ -143,12 +142,11 @@ NGRandomNetBuilder::checkAngles(NGNode* node) {
bool
NGRandomNetBuilder::canConnect(NGNode* baseNode, NGNode* newNode) {
bool connectable = true;
- Position n1(baseNode->getPosition());
- Position n2(newNode->getPosition());
+ const PositionVector n(baseNode->getPosition(), newNode->getPosition());
// check for range between Basenode and Newnode
if (connectable) {
- SUMOReal dist = n1.distanceTo(n2);
+ SUMOReal dist = n.length();
if ((dist < myMinDistance) || (dist > myMaxDistance)) {
connectable = false;
}
@@ -166,21 +164,24 @@ NGRandomNetBuilder::canConnect(NGNode* baseNode, NGNode* newNode) {
if (connectable) {
NGEdgeList::iterator li;
li = myOuterLinks.begin();
- while ((connectable == true) && (li != myOuterLinks.end())) {
+ while (connectable && (li != myOuterLinks.end())) {
// check intersection only if links don't share a node
- Position p1((*li)->getStartNode()->getPosition());
- Position p2((*li)->getEndNode()->getPosition());
- if ((baseNode != (*li)->getStartNode()) && (baseNode != (*li)->getEndNode())
- && (newNode != (*li)->getStartNode()) && (newNode != (*li)->getEndNode())) {
- connectable = !GeomHelper::intersects(n1, n2, p1, p2);
-
+ const NGNode* const start = (*li)->getStartNode();
+ const NGNode* const end = (*li)->getEndNode();
+ const Position& p1 = start->getPosition();
+ const Position& p2 = end->getPosition();
+ if ((baseNode != start) && (baseNode != end) && (newNode != start) && (newNode != end)) {
+ connectable = !n.intersects(p1, p2);
}
// check NewNode-To-Links distance only, if NewNode isn't part of link
- if ((connectable) &&
- (newNode != (*li)->getStartNode()) && (newNode != (*li)->getEndNode())) {
- SUMOReal dist = GeomHelper::distancePointLine(n2, p1, p2);
- if ((dist < myMinDistance) && (dist > -1)) {
- connectable = false;
+ if (connectable && (newNode != start) && (newNode != end)) {
+ const SUMOReal offset = GeomHelper::nearest_offset_on_line_to_point2D(p1, p2, n[1]);
+ if (offset != GeomHelper::INVALID_OFFSET) {
+ const Position p = PositionVector(p1, p2).positionAtOffset2D(offset);
+ const SUMOReal dist = p.distanceTo2D(n[1]);
+ if (dist < myMinDistance) {
+ connectable = false;
+ }
}
}
++li;
diff --git a/src/netimport/NIImporter_ArcView.cpp b/src/netimport/NIImporter_ArcView.cpp
index 62d2aea..4afb7df 100644
--- a/src/netimport/NIImporter_ArcView.cpp
+++ b/src/netimport/NIImporter_ArcView.cpp
@@ -6,7 +6,7 @@
/// @author Thimor Bohn
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIImporter_ArcView.cpp 18752 2015-08-30 19:09:05Z namdre $
+/// @version $Id: NIImporter_ArcView.cpp 19523 2015-12-04 11:00:56Z behrisch $
///
// Importer for networks stored in ArcView-shape format
/****************************************************************************/
@@ -275,17 +275,16 @@ NIImporter_ArcView::load() {
if (dir == "B" || dir == "F" || dir == "" || myOptions.getBool("shapefile.all-bidirectional")) {
if (myEdgeCont.retrieve(id) == 0) {
LaneSpreadFunction spread = dir == "B" || dir == "FALSE" ? LANESPREAD_RIGHT : LANESPREAD_CENTER;
- NBEdge* edge = new NBEdge(id, from, to, type, speed, nolanes, priority, width, NBEdge::UNSPECIFIED_OFFSET, shape, "", spread);
+ NBEdge* edge = new NBEdge(id, from, to, type, speed, nolanes, priority, width, NBEdge::UNSPECIFIED_OFFSET, shape, name, id, spread);
myEdgeCont.insert(edge);
checkSpread(edge);
}
}
// add negative direction if wanted
if (dir == "B" || dir == "T" || myOptions.getBool("shapefile.all-bidirectional")) {
- id = "-" + id;
- if (myEdgeCont.retrieve(id) == 0) {
+ if (myEdgeCont.retrieve("-" + id) == 0) {
LaneSpreadFunction spread = dir == "B" || dir == "FALSE" ? LANESPREAD_RIGHT : LANESPREAD_CENTER;
- NBEdge* edge = new NBEdge(id, to, from, type, speed, nolanes, priority, width, NBEdge::UNSPECIFIED_OFFSET, shape.reverse(), "", spread);
+ NBEdge* edge = new NBEdge("-" + id, to, from, type, speed, nolanes, priority, width, NBEdge::UNSPECIFIED_OFFSET, shape.reverse(), name, id, spread);
myEdgeCont.insert(edge);
checkSpread(edge);
}
diff --git a/src/netimport/NIImporter_DlrNavteq.cpp b/src/netimport/NIImporter_DlrNavteq.cpp
index 0a8eb09..ee48d72 100644
--- a/src/netimport/NIImporter_DlrNavteq.cpp
+++ b/src/netimport/NIImporter_DlrNavteq.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 14.04.2008
-/// @version $Id: NIImporter_DlrNavteq.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIImporter_DlrNavteq.cpp 19523 2015-12-04 11:00:56Z behrisch $
///
// Importer for networks stored in Elmar's format
/****************************************************************************/
@@ -329,10 +329,10 @@ NIImporter_DlrNavteq::EdgesHandler::report(const std::string& result) {
if (getColumn(st, CONNECTION, "0") == "1") {
geoms = geoms.reverse();
}
- geoms.push_front(from->getPosition());
+ geoms.insert(geoms.begin(), from->getPosition());
geoms.push_back(to->getPosition());
e = new NBEdge(id, from, to, "", speed, numLanes, priority,
- NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET, geoms, streetName, LANESPREAD_CENTER);
+ NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET, geoms, streetName, "", LANESPREAD_CENTER);
}
// add vehicle type information to the edge
if (myVersion < 6.0) {
diff --git a/src/netimport/NIImporter_OpenDrive.cpp b/src/netimport/NIImporter_OpenDrive.cpp
index e457aa2..b9df4ec 100644
--- a/src/netimport/NIImporter_OpenDrive.cpp
+++ b/src/netimport/NIImporter_OpenDrive.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Mon, 14.04.2008
-/// @version $Id: NIImporter_OpenDrive.cpp 18747 2015-08-28 06:38:38Z namdre $
+/// @version $Id: NIImporter_OpenDrive.cpp 19523 2015-12-04 11:00:56Z behrisch $
///
// Importer for networks stored in openDrive format
/****************************************************************************/
@@ -67,7 +67,6 @@
// ===========================================================================
#define C_LENGTH 10.
-
// ===========================================================================
// static variables
// ===========================================================================
@@ -211,7 +210,15 @@ NIImporter_OpenDrive::loadNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
OpenDriveEdge* e = (*i).second;
for (std::vector<OpenDriveLink>::iterator j = e->links.begin(); j != e->links.end(); ++j) {
OpenDriveLink& l = *j;
+ const std::string& nid = l.elementID;
if (l.elementType != OPENDRIVE_ET_ROAD) {
+ if (nb.getNodeCont().retrieve(nid) == 0) {
+ // not yet seen, build (possibly a junction without connections)
+ Position pos = l.linkType == OPENDRIVE_LT_SUCCESSOR ? e->geom[-1] : e->geom[0];
+ if (!nb.getNodeCont().insert(nid, pos)) {
+ throw ProcessError("Could not build node '" + nid + "'.");
+ }
+ }
// set node information
setNodeSecure(nb.getNodeCont(), *e, l.elementID, l.linkType);
continue;
@@ -264,7 +271,7 @@ NIImporter_OpenDrive::loadNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
// build nodes#3
// assign further nodes generated from inner-edges
- // these nodes have not been assigned earlier, because the connectiosn are referenced in inner-edges
+ // these nodes have not been assigned earlier, because the connections are referenced in inner-edges
for (std::map<std::string, OpenDriveEdge*>::iterator i = outerEdges.begin(); i != outerEdges.end(); ++i) {
OpenDriveEdge* e = (*i).second;
if (e->to != 0 && e->from != 0) {
@@ -365,7 +372,7 @@ NIImporter_OpenDrive::loadNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
NBEdge* currRight = 0;
if ((*j).rightLaneNumber > 0) {
currRight = new NBEdge("-" + id, sFrom, sTo, "", defaultSpeed, (*j).rightLaneNumber, priorityR,
- NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET, geom, "", LANESPREAD_RIGHT, true);
+ NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET, geom, e->streetName, id, LANESPREAD_RIGHT, true);
if (!nb.getEdgeCont().insert(currRight)) {
throw ProcessError("Could not add edge '" + currRight->getID() + "'.");
}
@@ -398,7 +405,7 @@ NIImporter_OpenDrive::loadNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
NBEdge* currLeft = 0;
if ((*j).leftLaneNumber > 0) {
currLeft = new NBEdge(id, sTo, sFrom, "", defaultSpeed, (*j).leftLaneNumber, priorityL,
- NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET, geom.reverse(), "", LANESPREAD_RIGHT, true);
+ NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET, geom.reverse(), e->streetName, id, LANESPREAD_RIGHT, true);
if (!nb.getEdgeCont().insert(currLeft)) {
throw ProcessError("Could not add edge '" + currLeft->getID() + "'.");
}
@@ -789,7 +796,7 @@ NIImporter_OpenDrive::computeShapes(std::map<std::string, OpenDriveEdge*>& edges
OpenDriveEdge& e = *(*i).second;
for (std::vector<OpenDriveGeometry>::iterator j = e.geometries.begin(); j != e.geometries.end(); ++j) {
OpenDriveGeometry& g = *j;
- std::vector<Position> geom;
+ PositionVector geom;
switch (g.type) {
case OPENDRIVE_GT_UNKNOWN:
break;
@@ -808,7 +815,7 @@ NIImporter_OpenDrive::computeShapes(std::map<std::string, OpenDriveEdge*>& edges
default:
break;
}
- for (std::vector<Position>::iterator k = geom.begin(); k != geom.end(); ++k) {
+ for (PositionVector::iterator k = geom.begin(); k != geom.end(); ++k) {
e.geom.push_back_noDoublePos(*k);
}
}
@@ -873,37 +880,42 @@ NIImporter_OpenDrive::revisitLaneSections(const NBTypeCont& tc, std::map<std::st
}
-std::vector<Position>
+PositionVector
NIImporter_OpenDrive::geomFromLine(const OpenDriveEdge& e, const OpenDriveGeometry& g) {
UNUSED_PARAMETER(e);
- std::vector<Position> ret;
+ PositionVector ret;
ret.push_back(Position(g.x, g.y));
ret.push_back(calculateStraightEndPoint(g.hdg, g.length, Position(g.x, g.y)));
return ret;
}
-std::vector<Position>
+PositionVector
NIImporter_OpenDrive::geomFromSpiral(const OpenDriveEdge& e, const OpenDriveGeometry& g) {
UNUSED_PARAMETER(e);
- std::vector<Position> ret;
+ PositionVector ret;
SUMOReal curveStart = g.params[0];
SUMOReal curveEnd = g.params[1];
Point2D<double> end;
- EulerSpiral s(Point2D<double>(g.x, g.y), g.hdg, curveStart, (curveEnd - curveStart) / g.length, g.length);
- std::vector<Point2D<double> > into;
- s.computeSpiral(into, 1.);
- for (std::vector<Point2D<double> >::iterator i = into.begin(); i != into.end(); ++i) {
- ret.push_back(Position((*i).getX(), (*i).getY()));
+ try {
+ EulerSpiral s(Point2D<double>(g.x, g.y), g.hdg, curveStart, (curveEnd - curveStart) / g.length, g.length);
+ std::vector<Point2D<double> > into;
+ s.computeSpiral(into, 1.);
+ for (std::vector<Point2D<double> >::iterator i = into.begin(); i != into.end(); ++i) {
+ ret.push_back(Position((*i).getX(), (*i).getY()));
+ }
+ } catch (const std::runtime_error& error) {
+ WRITE_WARNING("Could not compute spiral geometry for edge '" + e.id + "' (" + error.what() + ").");
+ ret.push_back(Position(g.x, g.y));
}
- return ret;
+ return ret.getSubpart2D(0, g.length);
}
-std::vector<Position>
+PositionVector
NIImporter_OpenDrive::geomFromArc(const OpenDriveEdge& e, const OpenDriveGeometry& g) {
UNUSED_PARAMETER(e);
- std::vector<Position> ret;
+ PositionVector ret;
SUMOReal dist = 0.0;
SUMOReal centerX = g.x;
SUMOReal centerY = g.y;
@@ -941,14 +953,14 @@ NIImporter_OpenDrive::geomFromArc(const OpenDriveEdge& e, const OpenDriveGeometr
end = true;
}
} while (!end);
- return ret;
+ return ret.getSubpart2D(0, g.length);
}
-std::vector<Position>
+PositionVector
NIImporter_OpenDrive::geomFromPoly(const OpenDriveEdge& e, const OpenDriveGeometry& g) {
UNUSED_PARAMETER(e);
- std::vector<Position> ret;
+ PositionVector ret;
for (SUMOReal off = 0; off < g.length + 2.; off += 2.) {
SUMOReal x = off;
SUMOReal y = g.params[0] + g.params[1] * off + g.params[2] * pow(off, 2.) + g.params[3] * pow(off, 3.);
@@ -958,7 +970,7 @@ NIImporter_OpenDrive::geomFromPoly(const OpenDriveEdge& e, const OpenDriveGeomet
SUMOReal ynew = x * s + y * c;
ret.push_back(Position(g.x + xnew, g.y + ynew));
}
- return ret;
+ return ret.getSubpart2D(0, g.length);
}
@@ -1209,7 +1221,7 @@ NIImporter_OpenDrive::OpenDriveEdge::getPriority(OpenDriveXMLTag dir) const {
// ---------------------------------------------------------------------------
NIImporter_OpenDrive::NIImporter_OpenDrive(const NBTypeCont& tc, std::map<std::string, OpenDriveEdge*>& edges)
: GenericSAXHandler(openDriveTags, OPENDRIVE_TAG_NOTHING, openDriveAttrs, OPENDRIVE_ATTR_NOTHING, "opendrive"),
- myTypeContainer(tc), myCurrentEdge("", "", -1), myEdges(edges) {
+ myTypeContainer(tc), myCurrentEdge("", "", "", -1), myEdges(edges) {
}
@@ -1232,9 +1244,10 @@ NIImporter_OpenDrive::myStartElement(int element,
break;
case OPENDRIVE_TAG_ROAD: {
std::string id = attrs.get<std::string>(OPENDRIVE_ATTR_ID, 0, ok);
+ std::string streetName = attrs.getOpt<std::string>(OPENDRIVE_ATTR_NAME, 0, ok, "", false);
std::string junction = attrs.get<std::string>(OPENDRIVE_ATTR_JUNCTION, id.c_str(), ok);
SUMOReal length = attrs.get<SUMOReal>(OPENDRIVE_ATTR_LENGTH, id.c_str(), ok);
- myCurrentEdge = OpenDriveEdge(id, junction, length);
+ myCurrentEdge = OpenDriveEdge(id, streetName, junction, length);
}
break;
case OPENDRIVE_TAG_PREDECESSOR: {
diff --git a/src/netimport/NIImporter_OpenDrive.h b/src/netimport/NIImporter_OpenDrive.h
index e71ce67..516eef0 100644
--- a/src/netimport/NIImporter_OpenDrive.h
+++ b/src/netimport/NIImporter_OpenDrive.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 14.04.2008
-/// @version $Id: NIImporter_OpenDrive.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIImporter_OpenDrive.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Importer for networks stored in openDrive format
/****************************************************************************/
@@ -352,9 +352,13 @@ protected:
* @brief Representation of an openDrive "link"
*/
struct OpenDriveEdge {
- OpenDriveEdge(const std::string& idArg, const std::string& junctionArg, SUMOReal lengthArg)
- : id(idArg), junction(junctionArg), length(lengthArg),
- from(0), to(0) {
+ OpenDriveEdge(const std::string& idArg, const std::string& streetNameArg, const std::string& junctionArg, SUMOReal lengthArg) :
+ id(idArg),
+ streetName(streetNameArg),
+ junction(junctionArg),
+ length(lengthArg),
+ from(0),
+ to(0) {
isInner = junction != "" && junction != "-1";
}
@@ -370,6 +374,8 @@ protected:
/// @brief The id of the edge
std::string id;
+ /// @brief The road name of the edge
+ std::string streetName;
/// @brief The id of the junction the edge belongs to
std::string junction;
/// @brief The length of the edge
@@ -498,10 +504,10 @@ protected:
static NBNode* getOrBuildNode(const std::string& id, const Position& pos, NBNodeCont& nc);
- static std::vector<Position> geomFromLine(const OpenDriveEdge& e, const OpenDriveGeometry& g);
- static std::vector<Position> geomFromSpiral(const OpenDriveEdge& e, const OpenDriveGeometry& g);
- static std::vector<Position> geomFromArc(const OpenDriveEdge& e, const OpenDriveGeometry& g);
- static std::vector<Position> geomFromPoly(const OpenDriveEdge& e, const OpenDriveGeometry& g);
+ static PositionVector geomFromLine(const OpenDriveEdge& e, const OpenDriveGeometry& g);
+ static PositionVector geomFromSpiral(const OpenDriveEdge& e, const OpenDriveGeometry& g);
+ static PositionVector geomFromArc(const OpenDriveEdge& e, const OpenDriveGeometry& g);
+ static PositionVector geomFromPoly(const OpenDriveEdge& e, const OpenDriveGeometry& g);
static Position calculateStraightEndPoint(double hdg, double length, const Position& start);
static void calculateCurveCenter(SUMOReal* ad_x, SUMOReal* ad_y, SUMOReal ad_radius, SUMOReal ad_hdg);
static void calcPointOnCurve(SUMOReal* ad_x, SUMOReal* ad_y, SUMOReal ad_centerX, SUMOReal ad_centerY,
diff --git a/src/netimport/NIImporter_OpenStreetMap.cpp b/src/netimport/NIImporter_OpenStreetMap.cpp
index 8ad5f66..90e0b09 100644
--- a/src/netimport/NIImporter_OpenStreetMap.cpp
+++ b/src/netimport/NIImporter_OpenStreetMap.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date Mon, 14.04.2008
-/// @version $Id: NIImporter_OpenStreetMap.cpp 18611 2015-08-06 14:49:39Z namdre $
+/// @version $Id: NIImporter_OpenStreetMap.cpp 19530 2015-12-04 13:44:15Z behrisch $
///
// Importer for networks stored in OpenStreetMap format
/****************************************************************************/
@@ -258,12 +258,12 @@ NIImporter_OpenStreetMap::insertNodeChecking(long long int id, NBNodeCont& nc, N
NIOSMNode* n = myOSMNodes.find(id)->second;
Position pos(n->lon, n->lat, n->ele);
if (!NBNetBuilder::transformCoordinates(pos, true)) {
- WRITE_ERROR("Unable to project coordinates for node " + toString(id) + ".");
+ WRITE_ERROR("Unable to project coordinates for junction '" + toString(id) + "'.");
return 0;
}
node = new NBNode(toString(id), pos);
if (!nc.insert(node)) {
- WRITE_ERROR("Could not insert node '" + toString(id) + "').");
+ WRITE_ERROR("Could not insert junction '" + toString(id) + "'.");
delete node;
return 0;
}
@@ -295,7 +295,7 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
// patch the id
std::string id = toString(e->id);
if (from == 0 || to == 0) {
- WRITE_ERROR("Discarding edge " + id + " because the nodes could not be built.");
+ WRITE_ERROR("Discarding edge '" + id + "' because the nodes could not be built.");
return index;
}
if (index >= 0) {
@@ -322,7 +322,7 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
NIOSMNode* n = myOSMNodes.find(*i)->second;
Position pos(n->lon, n->lat, n->ele);
if (!NBNetBuilder::transformCoordinates(pos, true)) {
- WRITE_ERROR("Unable to project coordinates for edge " + id + ".");
+ WRITE_ERROR("Unable to project coordinates for edge '" + id + "'.");
}
shape.push_back_noDoublePos(pos);
}
@@ -345,11 +345,11 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
types.push_back(t);
}
} else if (tok.size() > 1) {
- WRITE_WARNING("Discarding unknown compound \"" + t + "\" in type \"" + type + "\" (first occurence for edge \"" + id + "\").");
+ WRITE_WARNING("Discarding unknown compound '" + t + "' in type '" + type + "' (first occurence for edge '" + id + "').");
}
}
if (types.size() == 0) {
- WRITE_WARNING("Discarding unusable type \"" + type + "\" (first occurence for edge \"" + id + "\").");
+ WRITE_WARNING("Discarding unusable type '" + type + "' (first occurence for edge '" + id + "').");
myUnusableTypes.insert(type);
return newIndex;
} else {
@@ -387,11 +387,11 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
width = MAX2(width, SUMO_const_laneWidth);
}
if (discard) {
- WRITE_WARNING("Discarding compound type \"" + newType + "\" (first occurence for edge \"" + id + "\").");
+ WRITE_WARNING("Discarding compound type '" + newType + "' (first occurence for edge '" + id + "').");
myUnusableTypes.insert(newType);
return newIndex;
} else {
- WRITE_MESSAGE("Adding new type \"" + type + "\" (first occurence for edge \"" + id + "\").");
+ WRITE_MESSAGE("Adding new type '" + type + "' (first occurence for edge '" + id + "').");
tc.insert(newType, numLanes, maxSpeed, prio, permissions, width, defaultIsOneWay, sidewalkWidth, bikelaneWidth);
for (std::vector<std::string>::iterator it = types.begin(); it != types.end(); it++) {
if (!tc.getShallBeDiscarded(*it)) {
@@ -497,10 +497,12 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
if (ok) {
LaneSpreadFunction lsf = addBackward ? LANESPREAD_RIGHT : LANESPREAD_CENTER;
+ id = StringUtils::escapeXML(id);
if (addForward) {
assert(numLanesForward > 0);
- NBEdge* nbe = new NBEdge(StringUtils::escapeXML(id), from, to, type, speed, numLanesForward, tc.getPriority(type),
- forwardWidth, NBEdge::UNSPECIFIED_OFFSET, shape, StringUtils::escapeXML(e->streetName), lsf, true);
+ NBEdge* nbe = new NBEdge(id, from, to, type, speed, numLanesForward, tc.getPriority(type),
+ forwardWidth, NBEdge::UNSPECIFIED_OFFSET, shape,
+ StringUtils::escapeXML(e->streetName), toString(e->id), lsf, true);
nbe->setPermissions(forwardPermissions);
if ((e->myBuswayType & WAY_FORWARD) != 0) {
nbe->setPermissions(SVC_BUS, 0);
@@ -515,12 +517,12 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
delete nbe;
throw ProcessError("Could not add edge '" + id + "'.");
}
- id = "-" + id;
}
if (addBackward) {
assert(numLanesBackward > 0);
- NBEdge* nbe = new NBEdge(StringUtils::escapeXML(id), to, from, type, speed, numLanesBackward, tc.getPriority(type),
- backwardWidth, NBEdge::UNSPECIFIED_OFFSET, shape.reverse(), StringUtils::escapeXML(e->streetName), lsf, true);
+ NBEdge* nbe = new NBEdge("-" + id, to, from, type, speed, numLanesBackward, tc.getPriority(type),
+ backwardWidth, NBEdge::UNSPECIFIED_OFFSET, shape.reverse(),
+ StringUtils::escapeXML(e->streetName), toString(e->id), lsf, true);
nbe->setPermissions(backwardPermissions);
if ((e->myBuswayType & WAY_BACKWARD) != 0) {
nbe->setPermissions(SVC_BUS, 0);
@@ -533,7 +535,7 @@ NIImporter_OpenStreetMap::insertEdge(Edge* e, int index, NBNode* from, NBNode* t
}
if (!ec.insert(nbe)) {
delete nbe;
- throw ProcessError("Could not add edge " + id + "'.");
+ throw ProcessError("Could not add edge '-" + id + "'.");
}
}
}
diff --git a/src/netimport/NIImporter_SUMO.cpp b/src/netimport/NIImporter_SUMO.cpp
index 5b44e06..18448fd 100644
--- a/src/netimport/NIImporter_SUMO.cpp
+++ b/src/netimport/NIImporter_SUMO.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 14.04.2008
-/// @version $Id: NIImporter_SUMO.cpp 18647 2015-08-18 07:09:50Z namdre $
+/// @version $Id: NIImporter_SUMO.cpp 19523 2015-12-04 11:00:56Z behrisch $
///
// Importer for networks stored in SUMO format
/****************************************************************************/
@@ -83,7 +83,10 @@ NIImporter_SUMO::NIImporter_SUMO(NBNetBuilder& nb)
myCurrentLane(0),
myCurrentTL(0),
myLocation(0),
- myHaveSeenInternalEdge(false)
+ myHaveSeenInternalEdge(false),
+ myAmLefthand(false),
+ myCornerDetail(0),
+ myLinkDetail(-1)
{}
@@ -149,7 +152,7 @@ NIImporter_SUMO::_loadNetwork(OptionsCont& oc) {
ed->type, ed->maxSpeed,
(unsigned int) ed->lanes.size(),
ed->priority, NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET,
- geom, ed->streetName, ed->lsf, true); // always use tryIgnoreNodePositions to keep original shape
+ geom, ed->streetName, "", ed->lsf, true); // always use tryIgnoreNodePositions to keep original shape
e->setLoadedLength(ed->length);
if (!myNetBuilder.getEdgeCont().insert(e)) {
WRITE_ERROR("Could not insert edge '" + ed->id + "'.");
@@ -184,7 +187,7 @@ NIImporter_SUMO::_loadNetwork(OptionsCont& oc) {
}
nbe->addLane2LaneConnection(
fromLaneIndex, toEdge, c.toLaneIdx, NBEdge::L2L_VALIDATED,
- true, c.mayDefinitelyPass, c.keepClear);
+ true, c.mayDefinitelyPass, c.keepClear, c.contPos);
// maybe we have a tls-controlled connection
if (c.tlID != "" && myRailSignals.count(c.tlID) == 0) {
@@ -222,37 +225,57 @@ NIImporter_SUMO::_loadNetwork(OptionsCont& oc) {
// insert loaded prohibitions
for (std::vector<Prohibition>::const_iterator it = myProhibitions.begin(); it != myProhibitions.end(); it++) {
NBEdge* prohibitedFrom = myEdges[it->prohibitedFrom]->builtEdge;
+ NBEdge* prohibitedTo = myEdges[it->prohibitedTo]->builtEdge;
+ NBEdge* prohibitorFrom = myEdges[it->prohibitorFrom]->builtEdge;
+ NBEdge* prohibitorTo = myEdges[it->prohibitorTo]->builtEdge;
if (prohibitedFrom == 0) {
- WRITE_ERROR("Edge '" + it->prohibitedFrom + "' in prohibition was not built");
+ WRITE_WARNING("Edge '" + it->prohibitedFrom + "' in prohibition was not built");
+ } else if (prohibitedTo == 0) {
+ WRITE_WARNING("Edge '" + it->prohibitedTo + "' in prohibition was not built");
+ } else if (prohibitorFrom == 0) {
+ WRITE_WARNING("Edge '" + it->prohibitorFrom + "' in prohibition was not built");
+ } else if (prohibitorTo == 0) {
+ WRITE_WARNING("Edge '" + it->prohibitorTo + "' in prohibition was not built");
} else {
NBNode* n = prohibitedFrom->getToNode();
n->addSortedLinkFoes(
- NBConnection(myEdges[it->prohibitorFrom]->builtEdge, myEdges[it->prohibitorTo]->builtEdge),
- NBConnection(prohibitedFrom, myEdges[it->prohibitedTo]->builtEdge));
+ NBConnection(prohibitorFrom, prohibitorTo),
+ NBConnection(prohibitedFrom, prohibitedTo));
}
}
if (!myHaveSeenInternalEdge) {
myNetBuilder.haveLoadedNetworkWithoutInternalEdges();
}
+ if (oc.isDefault("lefthand")) {
+ oc.set("lefthand", toString(myAmLefthand));
+ }
+ if (oc.isDefault("junctions.corner-detail")) {
+ oc.set("junctions.corner-detail", toString(myCornerDetail));
+ }
+ if (oc.isDefault("junctions.internal-link-detail") && myLinkDetail > 0) {
+ oc.set("junctions.internal-link-detail", toString(myLinkDetail));
+ }
if (!deprecatedVehicleClassesSeen.empty()) {
WRITE_WARNING("Deprecated vehicle class(es) '" + toString(deprecatedVehicleClassesSeen) + "' in input network.");
deprecatedVehicleClassesSeen.clear();
}
// add loaded crossings
- for (std::map<std::string, std::vector<Crossing> >::const_iterator it = myPedestrianCrossings.begin(); it != myPedestrianCrossings.end(); ++it) {
- NBNode* node = myNodeCont.retrieve((*it).first);
- for (std::vector<Crossing>::const_iterator it_c = (*it).second.begin(); it_c != (*it).second.end(); ++it_c) {
- const Crossing& crossing = (*it_c);
- EdgeVector edges;
- for (std::vector<std::string>::const_iterator it_e = crossing.crossingEdges.begin(); it_e != crossing.crossingEdges.end(); ++it_e) {
- NBEdge* edge = myNetBuilder.getEdgeCont().retrieve(*it_e);
- // edge might have been removed due to options
- if (edge != 0) {
- edges.push_back(edge);
+ if (!oc.getBool("no-internal-links")) {
+ for (std::map<std::string, std::vector<Crossing> >::const_iterator it = myPedestrianCrossings.begin(); it != myPedestrianCrossings.end(); ++it) {
+ NBNode* node = myNodeCont.retrieve((*it).first);
+ for (std::vector<Crossing>::const_iterator it_c = (*it).second.begin(); it_c != (*it).second.end(); ++it_c) {
+ const Crossing& crossing = (*it_c);
+ EdgeVector edges;
+ for (std::vector<std::string>::const_iterator it_e = crossing.crossingEdges.begin(); it_e != crossing.crossingEdges.end(); ++it_e) {
+ NBEdge* edge = myNetBuilder.getEdgeCont().retrieve(*it_e);
+ // edge might have been removed due to options
+ if (edge != 0) {
+ edges.push_back(edge);
+ }
+ }
+ if (edges.size() > 0) {
+ node->addCrossing(edges, crossing.width, crossing.priority, true);
}
- }
- if (edges.size() > 0) {
- node->addCrossing(edges, crossing.width, crossing.priority, true);
}
}
}
@@ -293,6 +316,13 @@ NIImporter_SUMO::myStartElement(int element,
* copy unknown by default
*/
switch (element) {
+ case SUMO_TAG_NET: {
+ bool ok;
+ myAmLefthand = attrs.getOpt<bool>(SUMO_ATTR_LEFTHAND, 0, ok, false);
+ myCornerDetail = attrs.getOpt<int>(SUMO_ATTR_CORNERDETAIL, 0, ok, 0);
+ myLinkDetail = attrs.getOpt<int>(SUMO_ATTR_LINKDETAIL, 0, ok, -1);
+ break;
+ }
case SUMO_TAG_EDGE:
addEdge(attrs);
break;
@@ -358,19 +388,6 @@ NIImporter_SUMO::myEndElement(int element) {
myCurrentTL = 0;
}
break;
- case SUMO_TAG_JUNCTION:
- // in a network without internal lanes, we do not need to check for crossings
- if (myCurrentJunction.node != 0 && myCurrentJunction.intLanes.size() > 0) {
- assert(myCurrentJunction.intLanes.size() == myCurrentJunction.response.size());
- std::vector<Crossing>& crossings = myPedestrianCrossings[myCurrentJunction.node->getID()];
- for (std::vector<Crossing>::iterator it = crossings.begin(); it != crossings.end(); ++it) {
- for (int i = 0; i < (int)myCurrentJunction.intLanes.size(); ++i) {
- if (myCurrentJunction.intLanes[i] == (*it).laneID) {
- (*it).priority = myCurrentJunction.response[i].find("1") == std::string::npos;
- }
- }
- }
- }
default:
break;
}
@@ -391,8 +408,9 @@ NIImporter_SUMO::addEdge(const SUMOSAXAttributes& attrs) {
// get the function
myCurrentEdge->func = attrs.getEdgeFunc(ok);
if (myCurrentEdge->func == EDGEFUNC_CROSSING) {
- // add the crossing crossing but don't do anything else
+ // add the crossing but don't do anything else
Crossing c;
+ c.edgeID = id;
SUMOSAXAttributes::parseStringVector(attrs.get<std::string>(SUMO_ATTR_CROSSING_EDGES, 0, ok), c.crossingEdges);
myPedestrianCrossings[SUMOXMLDefinitions::getJunctionIDFromInternalEdge(id)].push_back(c);
return;
@@ -445,7 +463,6 @@ NIImporter_SUMO::addLane(const SUMOSAXAttributes& attrs) {
// save the width and the lane id of the crossing but don't do anything else
std::vector<Crossing>& crossings = myPedestrianCrossings[SUMOXMLDefinitions::getJunctionIDFromInternalEdge(myCurrentEdge->id)];
assert(crossings.size() > 0);
- crossings.back().laneID = id;
crossings.back().width = attrs.get<SUMOReal>(SUMO_ATTR_WIDTH, id.c_str(), ok);
return;
} else if (myCurrentEdge->func == EDGEFUNC_INTERNAL || myCurrentEdge->func == EDGEFUNC_WALKINGAREA) {
@@ -552,6 +569,7 @@ NIImporter_SUMO::addConnection(const SUMOSAXAttributes& attrs) {
conn.tlID = attrs.getOpt<std::string>(SUMO_ATTR_TLID, 0, ok, "");
conn.mayDefinitelyPass = attrs.getOpt<bool>(SUMO_ATTR_PASS, 0, ok, false);
conn.keepClear = attrs.getOpt<bool>(SUMO_ATTR_KEEP_CLEAR, 0, ok, true);
+ conn.contPos = attrs.getOpt<SUMOReal>(SUMO_ATTR_CONTPOS, 0, ok, NBEdge::UNSPECIFIED_CONTPOS);
if (conn.tlID != "") {
conn.tlLinkNo = attrs.get<int>(SUMO_ATTR_TLLINKINDEX, 0, ok);
}
@@ -560,6 +578,23 @@ NIImporter_SUMO::addConnection(const SUMOSAXAttributes& attrs) {
return;
}
from->lanes[fromLaneIdx]->connections.push_back(conn);
+
+ // determine crossing priority
+ if (myPedestrianCrossings.size() > 0
+ && from->func == EDGEFUNC_WALKINGAREA
+ && myEdges[conn.toEdgeID]->func == EDGEFUNC_CROSSING) {
+ std::vector<Crossing>& crossings = myPedestrianCrossings[SUMOXMLDefinitions::getJunctionIDFromInternalEdge(fromID)];
+ for (std::vector<Crossing>::iterator it = crossings.begin(); it != crossings.end(); ++it) {
+ if (conn.toEdgeID == (*it).edgeID) {
+ if (conn.tlID != "") {
+ (*it).priority = true;
+ } else {
+ LinkState state = SUMOXMLDefinitions::LinkStates.get(attrs.get<std::string>(SUMO_ATTR_STATE, 0, ok));
+ (*it).priority = state == LINKSTATE_MAJOR;
+ }
+ }
+ }
+ }
}
@@ -679,22 +714,18 @@ NIImporter_SUMO::reconstructEdgeShape(const EdgeAttrs* edge, const Position& fro
offset = (SUMO_const_laneWidth) / 2. - (SUMO_const_laneWidth * (SUMOReal)noLanes - 1) / 2.; ///= -2.; // @todo: actually, when looking at the road networks, the center line is not in the center
}
for (unsigned int i = 1; i < firstLane.size() - 1; i++) {
- Position from = firstLane[i - 1];
- Position me = firstLane[i];
- Position to = firstLane[i + 1];
- std::pair<SUMOReal, SUMOReal> offsets = NBEdge::laneOffset(from, me, offset);
- std::pair<SUMOReal, SUMOReal> offsets2 = NBEdge::laneOffset(me, to, offset);
-
- Line l1(
- Position(from.x() + offsets.first, from.y() + offsets.second),
- Position(me.x() + offsets.first, me.y() + offsets.second));
- l1.extrapolateBy(100);
- Line l2(
- Position(me.x() + offsets2.first, me.y() + offsets2.second),
- Position(to.x() + offsets2.first, to.y() + offsets2.second));
- l2.extrapolateBy(100);
+ const Position& from = firstLane[i - 1];
+ const Position& me = firstLane[i];
+ const Position& to = firstLane[i + 1];
+ Position offsets = PositionVector::sideOffset(from, me, offset);
+ Position offsets2 = PositionVector::sideOffset(me, to, offset);
+
+ PositionVector l1(from - offsets, me - offsets);
+ l1.extrapolate(100);
+ PositionVector l2(me - offsets2, to - offsets2);
+ l2.extrapolate(100);
if (l1.intersects(l2)) {
- result.push_back(l1.intersectsAt(l2));
+ result.push_back(l1.intersectionPosition2D(l2));
} else {
WRITE_WARNING("Could not reconstruct shape for edge '" + edge->id + "'.");
}
diff --git a/src/netimport/NIImporter_SUMO.h b/src/netimport/NIImporter_SUMO.h
index a19c62c..7c21698 100644
--- a/src/netimport/NIImporter_SUMO.h
+++ b/src/netimport/NIImporter_SUMO.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 14.04.2008
-/// @version $Id: NIImporter_SUMO.h 18319 2015-04-29 06:49:01Z namdre $
+/// @version $Id: NIImporter_SUMO.h 19429 2015-11-25 13:35:27Z namdre $
///
// Importer for networks stored in SUMO format
/****************************************************************************/
@@ -191,6 +191,8 @@ private:
bool mayDefinitelyPass;
/// @brief Whether the junction must be kept clear coming from this connection
bool keepClear;
+ /// @brief custom position for internal junction on this connection
+ SUMOReal contPos;
};
@@ -262,7 +264,7 @@ private:
* @brief Describes a pedestrian crossing
*/
struct Crossing {
- std::string laneID;
+ std::string edgeID;
std::vector<std::string> crossingEdges;
SUMOReal width;
bool priority;
@@ -315,6 +317,15 @@ private:
/// @brief whether the loaded network contains internal lanes
bool myHaveSeenInternalEdge;
+ /// @brief whether the loaded network was built for lefthand traffic
+ bool myAmLefthand;
+
+ /// @brief the level of corner detail in the loaded network
+ int myCornerDetail;
+
+ /// @brief the level of geometry detail for internal lanes in the loaded network
+ int myLinkDetail;
+
/// @brief loaded roundabout edges
std::vector<std::vector<std::string> > myRoundabouts;
diff --git a/src/netimport/NIXMLConnectionsHandler.cpp b/src/netimport/NIXMLConnectionsHandler.cpp
index fcf2d8d..aff36ae 100644
--- a/src/netimport/NIXMLConnectionsHandler.cpp
+++ b/src/netimport/NIXMLConnectionsHandler.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Thu, 17 Oct 2002
-/// @version $Id: NIXMLConnectionsHandler.cpp 18495 2015-06-17 23:31:46Z namdre $
+/// @version $Id: NIXMLConnectionsHandler.cpp 19466 2015-11-30 08:18:55Z namdre $
///
// Importer for edge connections stored in XML
/****************************************************************************/
@@ -216,6 +216,7 @@ NIXMLConnectionsHandler::parseLaneBound(const SUMOSAXAttributes& attrs, NBEdge*
bool ok = true;
const bool mayDefinitelyPass = attrs.getOpt<bool>(SUMO_ATTR_PASS, 0, ok, false);
const bool keepClear = attrs.getOpt<bool>(SUMO_ATTR_KEEP_CLEAR, 0, ok, true);
+ const SUMOReal contPos = attrs.getOpt<SUMOReal>(SUMO_ATTR_CONTPOS, 0, ok, NBEdge::UNSPECIFIED_CONTPOS);
if (!ok) {
return;
}
@@ -238,10 +239,10 @@ NIXMLConnectionsHandler::parseLaneBound(const SUMOSAXAttributes& attrs, NBEdge*
from->getID() + "' to '" + to->getID() + "'.");
return;
}
- if (from->hasConnectionTo(to, toLane)) {
+ if (from->hasConnectionTo(to, toLane) && from->getToNode()->getType() != NODETYPE_ZIPPER) {
WRITE_WARNING("Target lane '" + to->getLaneID(toLane) + "' is already connected from '" + from->getID() + "'.");
}
- if (!from->addLane2LaneConnection(fromLane, to, toLane, NBEdge::L2L_USER, true, mayDefinitelyPass, keepClear)) {
+ if (!from->addLane2LaneConnection(fromLane, to, toLane, NBEdge::L2L_USER, true, mayDefinitelyPass, keepClear, contPos)) {
NBEdge* nFrom = from;
while (nFrom->getToNode()->getOutgoingEdges().size() == 1) {
NBEdge* t = nFrom->getToNode()->getOutgoingEdges()[0];
@@ -250,12 +251,12 @@ NIXMLConnectionsHandler::parseLaneBound(const SUMOSAXAttributes& attrs, NBEdge*
}
nFrom = t;
}
- if (nFrom == 0 || !nFrom->addLane2LaneConnection(fromLane, to, toLane, NBEdge::L2L_USER, false, mayDefinitelyPass, keepClear)) {
+ if (nFrom == 0 || !nFrom->addLane2LaneConnection(fromLane, to, toLane, NBEdge::L2L_USER, false, mayDefinitelyPass, keepClear, contPos)) {
if (OptionsCont::getOptions().getBool("show-errors.connections-first-try")) {
WRITE_WARNING("Could not set loaded connection from '" + from->getLaneID(fromLane) + "' to '" + to->getLaneID(toLane) + "'.");
}
// set as to be re-applied after network processing
- myEdgeCont.addPostProcessConnection(nFrom->getID(), fromLane, to->getID(), toLane, mayDefinitelyPass, keepClear);
+ myEdgeCont.addPostProcessConnection(nFrom->getID(), fromLane, to->getID(), toLane, mayDefinitelyPass, keepClear, contPos);
} else {
from = nFrom;
}
diff --git a/src/netimport/NIXMLEdgesHandler.cpp b/src/netimport/NIXMLEdgesHandler.cpp
index 873468c..2166bba 100644
--- a/src/netimport/NIXMLEdgesHandler.cpp
+++ b/src/netimport/NIXMLEdgesHandler.cpp
@@ -6,7 +6,7 @@
/// @author Walter Bamberger
/// @author Laura Bieker
/// @date Tue, 20 Nov 2001
-/// @version $Id: NIXMLEdgesHandler.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NIXMLEdgesHandler.cpp 19523 2015-12-04 11:00:56Z behrisch $
///
// Importer for network edges stored in XML
/****************************************************************************/
@@ -275,7 +275,7 @@ NIXMLEdgesHandler::addEdge(const SUMOSAXAttributes& attrs) {
} else {
myCurrentEdge = new NBEdge(myCurrentID, myFromNode, myToNode, myCurrentType, myCurrentSpeed,
myCurrentLaneNo, myCurrentPriority, myCurrentWidth, myCurrentEndOffset,
- myShape, myCurrentStreetName, myLanesSpread,
+ myShape, myCurrentStreetName, "", myLanesSpread,
myKeepEdgeShape);
}
}
diff --git a/src/netimport/NIXMLNodesHandler.cpp b/src/netimport/NIXMLNodesHandler.cpp
index b8089b7..a4f66c5 100644
--- a/src/netimport/NIXMLNodesHandler.cpp
+++ b/src/netimport/NIXMLNodesHandler.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NIXMLNodesHandler.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NIXMLNodesHandler.cpp 19488 2015-12-02 09:53:19Z namdre $
///
// Importer for network nodes stored in XML
/****************************************************************************/
@@ -169,6 +169,7 @@ NIXMLNodesHandler::processNodeType(const SUMOSAXAttributes& attrs, NBNode* node,
type = NODETYPE_UNKNOWN;
}
}
+ std::set<NBTrafficLightDefinition*> oldTLS;
// check whether a prior node shall be modified
if (node == 0) {
node = new NBNode(nodeID, position, type);
@@ -176,21 +177,21 @@ NIXMLNodesHandler::processNodeType(const SUMOSAXAttributes& attrs, NBNode* node,
throw ProcessError("Could not insert node though checked this before (id='" + nodeID + "').");
}
} else {
- // remove previously set tls if this node is not controlled by a tls
- std::set<NBTrafficLightDefinition*> tls = node->getControllingTLS();
- node->removeTrafficLights();
- for (std::set<NBTrafficLightDefinition*>::iterator i = tls.begin(); i != tls.end(); ++i) {
- if ((*i)->getNodes().size() == 0) {
- tlc.removeFully((*i)->getID());
- }
- }
// patch information
+ oldTLS = node->getControllingTLS();
node->reinit(position, type, updateEdgeGeometries);
}
// process traffic light definition
- if (type == NODETYPE_TRAFFIC_LIGHT || type == NODETYPE_TRAFFIC_LIGHT_NOJUNCTION) {
+ if (NBNode::isTrafficLight(type)) {
processTrafficLightDefinitions(attrs, node, tlc);
}
+ // remove previously set tls if this node is not controlled by them
+ for (std::set<NBTrafficLightDefinition*>::iterator i = oldTLS.begin(); i != oldTLS.end(); ++i) {
+ if ((*i)->getNodes().size() == 0) {
+ tlc.removeFully((*i)->getID());
+ }
+ }
+
// set optional shape
PositionVector shape;
if (attrs.hasAttribute(SUMO_ATTR_SHAPE)) {
@@ -261,9 +262,20 @@ NIXMLNodesHandler::processTrafficLightDefinitions(const SUMOSAXAttributes& attrs
// if no tl-id exists, we will build a tl with the node's id
std::set<NBTrafficLightDefinition*> tlDefs;
bool ok = true;
- std::string tlID = attrs.getOpt<std::string>(SUMO_ATTR_TLID, 0, ok, "");
- std::string typeS = attrs.getOpt<std::string>(SUMO_ATTR_TLTYPE, 0, ok,
- OptionsCont::getOptions().getString("tls.default-type"));
+
+ std::string oldTlID = "";
+ std::string oldTypeS = OptionsCont::getOptions().getString("tls.default-type");
+
+ if (currentNode->isTLControlled()) {
+ NBTrafficLightDefinition* oldDef = *(currentNode->getControllingTLS().begin());
+ oldTlID = oldDef->getID();
+ oldTypeS = toString(oldDef->getType());
+ }
+ std::string tlID = attrs.getOpt<std::string>(SUMO_ATTR_TLID, 0, ok, oldTlID);
+ std::string typeS = attrs.getOpt<std::string>(SUMO_ATTR_TLTYPE, 0, ok, oldTypeS);
+ if (tlID != oldTlID || typeS != oldTypeS) {
+ currentNode->removeTrafficLights();
+ }
TrafficLightType type;
if (SUMOXMLDefinitions::TrafficLightTypes.hasString(typeS)) {
type = SUMOXMLDefinitions::TrafficLightTypes.get(typeS);
diff --git a/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.cpp b/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.cpp
index 00c7415..fd43b2d 100644
--- a/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.cpp
+++ b/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIVissimAbstractEdge.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIVissimAbstractEdge.cpp 19210 2015-10-29 10:31:59Z behrisch $
///
// -------------------
/****************************************************************************/
@@ -36,7 +36,6 @@
#include <utils/common/MsgHandler.h>
#include <utils/common/ToString.h>
#include <utils/geom/GeomHelper.h>
-#include <utils/geom/Line.h>
#include <utils/geom/GeoConvHelper.h>
#include <netbuild/NBNetBuilder.h>
#include "NIVissimAbstractEdge.h"
@@ -97,11 +96,9 @@ NIVissimAbstractEdge::getGeomPosition(SUMOReal pos) const {
return myGeom[-1];
} else {
PositionVector g(myGeom);
- SUMOReal amount = pos - myGeom.length();
- Position ne = GeomHelper::extrapolate_second(g[-2], g[-1], amount * 2);
- g.pop_back();
- g.push_back(ne);
- return g.positionAtOffset(pos);
+ const SUMOReal amount = pos - myGeom.length();
+ g.extrapolate(amount * 2);
+ return g.positionAtOffset(pos + amount * 2);
}
}
@@ -129,22 +126,10 @@ NIVissimAbstractEdge::crossesEdge(NIVissimAbstractEdge* c) const {
Position
NIVissimAbstractEdge::crossesEdgeAtPoint(NIVissimAbstractEdge* c) const {
- return myGeom.intersectsAtPoint(c->myGeom);
+ return myGeom.intersectionPosition2D(c->myGeom);
}
-SUMOReal
-NIVissimAbstractEdge::crossesAtPoint(const Position& p1,
- const Position& p2) const {
- // !!! not needed
- Position p = GeomHelper::intersection_position2D(
- myGeom.front(), myGeom.back(), p1, p2);
- return GeomHelper::nearest_offset_on_line_to_point2D(
- myGeom.front(), myGeom.back(), p);
-}
-
-
-
std::vector<int>
NIVissimAbstractEdge::getWithin(const AbstractPoly& p, SUMOReal offset) {
std::vector<int> ret;
diff --git a/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.h b/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.h
index 8ef0250..0ea6ffe 100644
--- a/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.h
+++ b/src/netimport/vissim/tempstructs/NIVissimAbstractEdge.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIVissimAbstractEdge.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIVissimAbstractEdge.h 19210 2015-10-29 10:31:59Z behrisch $
///
// -------------------
/****************************************************************************/
@@ -52,8 +52,6 @@ public:
bool overlapsWith(const AbstractPoly& p, SUMOReal offset = 0.0) const;
virtual void setNodeCluster(int nodeid) = 0;
bool hasNodeCluster() const;
- SUMOReal crossesAtPoint(const Position& p1,
- const Position& p2) const;
virtual void buildGeom() = 0;
int getID() const;
diff --git a/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.cpp b/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.cpp
index c773d36..eb15dc6 100644
--- a/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.cpp
+++ b/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIVissimConnectionCluster.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIVissimConnectionCluster.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// -------------------
/****************************************************************************/
@@ -422,11 +422,7 @@ NIVissimConnectionCluster::isWeakDistrictConnRealisation(NIVissimConnectionClust
if (oe == 0 || ie == 0) {
return false;
}
- Line l1(oe->getGeometry().front(), oe->getGeometry().back());
- Line l2(ie->getGeometry().back(), ie->getGeometry().front());
- SUMOReal a1 = l1.atan2DegreeAngle();
- SUMOReal a2 = l2.atan2DegreeAngle();
- return fabs(a1 - a2) < 5;
+ return fabs(GeomHelper::angleDiff(oe->getGeometry().beginEndAngle(), ie->getGeometry().beginEndAngle())) < DEG2RAD(5);
}
diff --git a/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.h b/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.h
index 53347f2..54ae563 100644
--- a/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.h
+++ b/src/netimport/vissim/tempstructs/NIVissimConnectionCluster.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIVissimConnectionCluster.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIVissimConnectionCluster.h 19535 2015-12-05 13:47:18Z behrisch $
///
// -------------------
/****************************************************************************/
@@ -34,8 +34,8 @@
#include <iostream>
#include <vector>
-#include <utils/geom/Position.h>
#include <utils/geom/Boundary.h>
+#include <utils/geom/GeomHelper.h>
#include "NIVissimConnection.h"
@@ -140,10 +140,9 @@ private:
public:
/// comparing operation
int operator()(NIVissimConnection* c1, NIVissimConnection* c2) const {
- return
- fabs(c1->getGeometry().beginEndAngle() - myAngle)
- <
- fabs(c2->getGeometry().beginEndAngle() - myAngle);
+ return fabs(GeomHelper::angleDiff(c1->getGeometry().beginEndAngle(), myAngle))
+ <
+ fabs(GeomHelper::angleDiff(c2->getGeometry().beginEndAngle(), myAngle));
}
};
diff --git a/src/netimport/vissim/tempstructs/NIVissimEdge.cpp b/src/netimport/vissim/tempstructs/NIVissimEdge.cpp
index 6c4c5a6..ed96ea8 100644
--- a/src/netimport/vissim/tempstructs/NIVissimEdge.cpp
+++ b/src/netimport/vissim/tempstructs/NIVissimEdge.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIVissimEdge.cpp 18592 2015-08-03 17:39:39Z ait-mob-dts $
+/// @version $Id: NIVissimEdge.cpp 19523 2015-12-04 11:00:56Z behrisch $
///
// A temporary storage for edges imported from Vissim
/****************************************************************************/
@@ -506,7 +506,7 @@ NIVissimEdge::buildNBEdge(NBDistrictCont& dc, NBNodeCont& nc, NBEdgeCont& ec,
NBEdge* buildEdge = new NBEdge(toString<int>(myID), fromNode, toNode, myType,
avgSpeed / (SUMOReal) 3.6, myNoLanes, -1,
NBEdge::UNSPECIFIED_WIDTH, NBEdge::UNSPECIFIED_OFFSET,
- myGeom, myName, LANESPREAD_CENTER, true);
+ myGeom, myName, "", LANESPREAD_CENTER, true);
for (i = 0; i < (int) myNoLanes; i++) {
if ((int) myLaneSpeeds.size() <= i || myLaneSpeeds[i] == -1) {
buildEdge->setSpeed(i, OptionsCont::getOptions().getFloat("vissim.default-speed") / (SUMOReal) 3.6);
@@ -903,12 +903,9 @@ NIVissimEdge::dict_checkEdges2Join() {
}
// only parallel edges which do end at the same node
// should be joined
- // retrieve the "approximating" lines first
- Line l1 = Line(g1.front(), g1.back());
- Line l2 = Line(g2.front(), g2.back());
// check for parallelity
// !!! the usage of an explicit value is not very fine
- if (fabs(l1.atan2DegreeAngle() - l2.atan2DegreeAngle()) > 2.0) {
+ if (fabs(GeomHelper::angleDiff(g1.beginEndAngle(), g2.beginEndAngle())) > DEG2RAD(2.0)) {
// continue if the lines are not parallel
continue;
}
@@ -916,7 +913,7 @@ NIVissimEdge::dict_checkEdges2Join() {
// check whether the same node is approached
// (the distance between the ends should not be too large)
// !!! the usage of an explicit value is not very fine
- if (l1.p2().distanceTo(l2.p2()) > 10) {
+ if (g1.back().distanceTo(g2.back()) > 10) {
// continue if the lines do not end at the same length
continue;
}
diff --git a/src/netimport/vissim/tempstructs/NIVissimNodeDef_Poly.cpp b/src/netimport/vissim/tempstructs/NIVissimNodeDef_Poly.cpp
index cc02fc0..cf59b58 100644
--- a/src/netimport/vissim/tempstructs/NIVissimNodeDef_Poly.cpp
+++ b/src/netimport/vissim/tempstructs/NIVissimNodeDef_Poly.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NIVissimNodeDef_Poly.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NIVissimNodeDef_Poly.cpp 19210 2015-10-29 10:31:59Z behrisch $
///
// -------------------
/****************************************************************************/
@@ -72,54 +72,5 @@ NIVissimNodeDef_Poly::dictionary(int id, const std::string& name,
}
-/*
-void
-NIVissimNodeDef_Poly::computeBounding()
-{
- // !!! compute participating edges
- // !!! call this method after loading!
- myBoundary = new Boundary(myPoly.getBoxBoundary());
- assert(myBoundary!=0&&myBoundary->xmax()>=myBoundary->xmin());
-}
-
-SUMOReal
-NIVissimNodeDef_Poly::getEdgePosition(int edgeid) const
-{
- NIVissimEdge *edge = NIVissimEdge::dictionary(edgeid);
- return edge->crossesAtPoint(
- Position(myBoundary->xmin(), myBoundary->ymin()),
- Position(myBoundary->xmax(), myBoundary->ymax()));
-}
-
-
-void
-NIVissimNodeDef_Poly::searchAndSetConnections(SUMOReal offset) {
- std::vector<int> within = NIVissimAbstractEdge::getWithin(myPoly, offset);
- std::vector<int> connections;
- std::vector<int> edges;
- Boundary boundary(myPoly.getBoxBoundary());
- for (std::vector<int>::const_iterator i = within.begin(); i != within.end(); i++) {
- NIVissimConnection* c =
- NIVissimConnection::dictionary(*i);
- NIVissimEdge* e =
- NIVissimEdge::dictionary(*i);
- if (c != 0) {
- connections.push_back(*i);
- c->setNodeCluster(myID);
- }
- if (e != 0) {
- edges.push_back(*i);
- }
- }
- NIVissimConnectionCluster* c =
- new NIVissimConnectionCluster(connections, boundary, myID, edges);
- for (std::vector<int>::iterator j = edges.begin(); j != edges.end(); j++) {
- NIVissimEdge* edge = NIVissimEdge::dictionary(*j);
- edge->myConnectionClusters.push_back(c);
- }
-}
-*/
-
-
/****************************************************************************/
diff --git a/src/netload/NLBuilder.cpp b/src/netload/NLBuilder.cpp
index 54a05d5..3fe4d9c 100644
--- a/src/netload/NLBuilder.cpp
+++ b/src/netload/NLBuilder.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: NLBuilder.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: NLBuilder.cpp 19451 2015-11-27 13:39:24Z namdre $
///
// The main interface for loading a microsim
/****************************************************************************/
@@ -233,7 +233,9 @@ NLBuilder::buildNet() {
}
}
myNet.closeBuilding(edges, junctions, routeLoaders, tlc, stateDumpTimes, stateDumpFiles,
- myXMLHandler.haveSeenInternalEdge());
+ myXMLHandler.haveSeenInternalEdge(),
+ myXMLHandler.lefthand(),
+ myXMLHandler.networkVersion());
} catch (IOError& e) {
delete edges;
delete junctions;
diff --git a/src/netload/NLBuilder.h b/src/netload/NLBuilder.h
index aff1de1..39cb856 100644
--- a/src/netload/NLBuilder.h
+++ b/src/netload/NLBuilder.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: NLBuilder.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NLBuilder.h 19173 2015-10-27 08:47:27Z behrisch $
///
// The main interface for loading a microsim
/****************************************************************************/
@@ -35,7 +35,6 @@
#include <map>
#include <vector>
#include <utils/xml/SAXWeightsHandler.h>
-#include <microsim/MSNet.h>
// ===========================================================================
@@ -52,6 +51,7 @@ class NLJunctionControlBuilder;
class NLDetectorBuilder;
class NLTriggerBuilder;
class SUMORouteLoader;
+class SUMORouteLoaderControl;
// ===========================================================================
diff --git a/src/netload/NLDetectorBuilder.cpp b/src/netload/NLDetectorBuilder.cpp
index 0f3d39e..9dea9e3 100644
--- a/src/netload/NLDetectorBuilder.cpp
+++ b/src/netload/NLDetectorBuilder.cpp
@@ -7,7 +7,7 @@
/// @author Christian Roessel
/// @author Jakob Erdmann
/// @date Mon, 15 Apr 2002
-/// @version $Id: NLDetectorBuilder.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: NLDetectorBuilder.cpp 19497 2015-12-02 21:19:35Z behrisch $
///
// Builds detectors for microsim
/****************************************************************************/
@@ -105,39 +105,12 @@ NLDetectorBuilder::buildInductLoop(const std::string& id,
checkSampleInterval(splInterval, SUMO_TAG_E1DETECTOR, id);
// get and check the lane
MSLane* clane = getLaneChecking(lane, SUMO_TAG_E1DETECTOR, id);
- if (!MSGlobals::gUseMesoSim) {
- // get and check the position
- pos = getPositionChecking(pos, clane, friendlyPos, id);
- // build the loop
- MSDetectorFileOutput* loop = createInductLoop(id, clane, pos, splitByType);
- // add the file output
- myNet.getDetectorControl().add(SUMO_TAG_INDUCTION_LOOP, loop, device, splInterval);
- } else {
-#ifdef HAVE_INTERNAL
- if (pos < 0) {
- pos = clane->getLength() + pos;
- }
- MESegment* s = MSGlobals::gMesoNet->getSegmentForEdge(clane->getEdge());
- MESegment* prev = s;
- SUMOReal cpos = 0;
- while (cpos + prev->getLength() < pos && s != 0) {
- prev = s;
- cpos += s->getLength();
- s = s->getNextSegment();
- }
- SUMOReal rpos = pos - cpos; //-prev->getLength();
- if (rpos > prev->getLength() || rpos < 0) {
- if (friendlyPos) {
- rpos = prev->getLength() - (SUMOReal) 0.1;
- } else {
- throw InvalidArgument("The position of detector '" + id + "' lies beyond the lane's '" + lane + "' length.");
- }
- }
- MEInductLoop* loop =
- createMEInductLoop(id, prev, rpos);
- myNet.getDetectorControl().add(SUMO_TAG_INDUCTION_LOOP, loop, device, splInterval);
-#endif
- }
+ // get and check the position
+ pos = getPositionChecking(pos, clane, friendlyPos, id);
+ // build the loop
+ MSDetectorFileOutput* loop = createInductLoop(id, clane, pos, splitByType);
+ // add the file output
+ myNet.getDetectorControl().add(SUMO_TAG_INDUCTION_LOOP, loop, device, splInterval);
}
@@ -400,7 +373,12 @@ NLDetectorBuilder::buildMultiLaneE2Det(const std::string& id, DetectorUsage usag
MSDetectorFileOutput*
NLDetectorBuilder::createInductLoop(const std::string& id,
- MSLane* lane, SUMOReal pos, bool splitByType) {
+ MSLane* lane, SUMOReal pos, bool splitByType, bool) {
+#ifdef HAVE_INTERNAL
+ if (MSGlobals::gUseMesoSim) {
+ return new MEInductLoop(id, MSGlobals::gMesoNet->getSegmentForEdge(lane->getEdge(), pos), pos);
+ }
+#endif
return new MSInductLoop(id, lane, pos, splitByType);
}
@@ -412,15 +390,6 @@ NLDetectorBuilder::createInstantInductLoop(const std::string& id,
}
-#ifdef HAVE_INTERNAL
-MEInductLoop*
-NLDetectorBuilder::createMEInductLoop(const std::string& id,
- MESegment* s, SUMOReal pos) {
- return new MEInductLoop(id, s, pos);
-}
-#endif
-
-
MSDetectorFileOutput*
NLDetectorBuilder::createSingleLaneE2Detector(const std::string& id,
DetectorUsage usage, MSLane* lane, SUMOReal pos, SUMOReal length,
diff --git a/src/netload/NLDetectorBuilder.h b/src/netload/NLDetectorBuilder.h
index 3ae510e..a1b7869 100644
--- a/src/netload/NLDetectorBuilder.h
+++ b/src/netload/NLDetectorBuilder.h
@@ -5,7 +5,7 @@
/// @author Christian Roessel
/// @author Michael Behrisch
/// @date Mon, 15 Apr 2002
-/// @version $Id: NLDetectorBuilder.h 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: NLDetectorBuilder.h 19497 2015-12-02 21:19:35Z behrisch $
///
// Builds detectors for microsim
/****************************************************************************/
@@ -34,9 +34,8 @@
#endif
#include <string>
-#include <microsim/MSNet.h>
+#include <microsim/output/MSCrossSection.h>
#include <microsim/traffic_lights/MSTLLogicControl.h>
-#include <microsim/output/MSE3Collector.h>
// ===========================================================================
@@ -337,9 +336,10 @@ public:
* @param[in] lane The lane the detector is placed at
* @param[in] pos The position on the lane the detector is placed at
* @param[in] splitByType Whether additional information split by vehicle classes shall be generated
+ * @param[in] show Whether to show the detector in the gui if available
*/
virtual MSDetectorFileOutput* createInductLoop(const std::string& id,
- MSLane* lane, SUMOReal pos, bool splitByType);
+ MSLane* lane, SUMOReal pos, bool splitByType, bool show = true);
/** @brief Creates an instance of an e1 detector using the given values
@@ -354,21 +354,6 @@ public:
virtual MSDetectorFileOutput* createInstantInductLoop(const std::string& id,
MSLane* lane, SUMOReal pos, const std::string& od);
-#ifdef HAVE_INTERNAL
- /** @brief Creates an instance of a mesoscopic e1 detector using the given values
- *
- * Simply calls the MEInductLoop constructor
- *
- * @param[in] id The id the detector shall have
- * @param[in] s The segment the detector is placed at
- * @param[in] pos ?
- * @todo Position is not used, herein!?
- */
- virtual MEInductLoop* createMEInductLoop(const std::string& id,
- MESegment* s, SUMOReal pos);
-#endif
-
-
/** @brief Creates an instance of an e2 detector using the given values
*
* Simply calls the MSE2Collector constructor
diff --git a/src/netload/NLEdgeControlBuilder.cpp b/src/netload/NLEdgeControlBuilder.cpp
index 29db622..49981c1 100644
--- a/src/netload/NLEdgeControlBuilder.cpp
+++ b/src/netload/NLEdgeControlBuilder.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: NLEdgeControlBuilder.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NLEdgeControlBuilder.cpp 19497 2015-12-02 21:19:35Z behrisch $
///
// Interface for building edges
/****************************************************************************/
@@ -46,10 +46,6 @@
#include <utils/options/OptionsCont.h>
#include <utils/iodevices/OutputDevice.h>
-#ifdef HAVE_INTERNAL
-#include <mesosim/MELoop.h>
-#endif
-
#ifdef CHECK_MEMORY_LEAKS
#include <foreign/nvwa/debug_new.h>
#endif // CHECK_MEMORY_LEAKS
@@ -110,11 +106,6 @@ MSEdgeControl*
NLEdgeControlBuilder::build() {
for (MSEdgeVector::iterator i1 = myEdges.begin(); i1 != myEdges.end(); i1++) {
(*i1)->closeBuilding();
-#ifdef HAVE_INTERNAL
- if (MSGlobals::gUseMesoSim) {
- MSGlobals::gMesoNet->buildSegmentsFor(**i1, OptionsCont::getOptions());
- }
-#endif
}
// mark internal edges belonging to a roundabout (after all edges are build)
if (MSGlobals::gUsingInternalLanes) {
diff --git a/src/netload/NLHandler.cpp b/src/netload/NLHandler.cpp
index 1afec2c..0667f06 100644
--- a/src/netload/NLHandler.cpp
+++ b/src/netload/NLHandler.cpp
@@ -7,7 +7,7 @@
/// @author Michael Behrisch
/// @author Felix Brack
/// @date Mon, 9 Jul 2001
-/// @version $Id: NLHandler.cpp 18686 2015-08-21 14:52:03Z namdre $
+/// @version $Id: NLHandler.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// The XML-Handler for network loading
/****************************************************************************/
@@ -79,6 +79,8 @@ NLHandler::NLHandler(const std::string& file, MSNet& net,
myHaveWarnedAboutDeprecatedLanes(false),
myLastParameterised(0),
myHaveSeenInternalEdge(false),
+ myLefthand(false),
+ myNetworkVersion(0),
myNetIsLoaded(false)
{}
@@ -91,6 +93,12 @@ NLHandler::myStartElement(int element,
const SUMOSAXAttributes& attrs) {
try {
switch (element) {
+ case SUMO_TAG_NET: {
+ bool ok;
+ myLefthand = attrs.getOpt<bool>(SUMO_ATTR_LEFTHAND, 0, ok, false);
+ myNetworkVersion = attrs.get<SUMOReal>(SUMO_ATTR_VERSION, 0, ok, false);
+ break;
+ }
case SUMO_TAG_EDGE:
beginEdgeParsing(attrs);
break;
@@ -158,8 +166,8 @@ NLHandler::myStartElement(int element,
case SUMO_TAG_CONTAINER_STOP:
myTriggerBuilder.parseAndBuildContainerStop(myNet, attrs);
break;
- case SUMO_TAG_CHRG_STN:
- myTriggerBuilder.parseAndBuildChrgStn(myNet, attrs);
+ case SUMO_TAG_CHARGING_STATION:
+ myTriggerBuilder.parseAndBuildChargingStation(myNet, attrs);
break;
case SUMO_TAG_VTYPEPROBE:
addVTypeProbeDetector(attrs);
@@ -231,7 +239,7 @@ NLHandler::myEndElement(int element) {
if (!myCurrentIsBroken) {
try {
myJunctionControlBuilder.closeJunctionLogic();
- myJunctionControlBuilder.closeJunction();
+ myJunctionControlBuilder.closeJunction(getFileName());
} catch (InvalidArgument& e) {
WRITE_ERROR(e.what());
}
@@ -239,7 +247,7 @@ NLHandler::myEndElement(int element) {
break;
case SUMO_TAG_TLLOGIC:
try {
- myJunctionControlBuilder.closeTrafficLightLogic();
+ myJunctionControlBuilder.closeTrafficLightLogic(getFileName());
} catch (InvalidArgument& e) {
WRITE_ERROR(e.what());
}
@@ -619,20 +627,24 @@ NLHandler::initTrafficLightLogic(const SUMOSAXAttributes& attrs) {
myAmInTLLogicMode = true;
bool ok = true;
std::string id = attrs.get<std::string>(SUMO_ATTR_ID, 0, ok);
- TrafficLightType type;
- std::string typeS = attrs.get<std::string>(SUMO_ATTR_TYPE, 0, ok);
- if (SUMOXMLDefinitions::TrafficLightTypes.hasString(typeS)) {
- type = SUMOXMLDefinitions::TrafficLightTypes.get(typeS);
- } else {
- WRITE_ERROR("Traffic light '" + id + "' has unknown type '" + typeS + "'");
- return;
+ std::string programID = attrs.getOpt<std::string>(SUMO_ATTR_PROGRAMID, id.c_str(), ok, "<unknown>");
+ TrafficLightType type = TLTYPE_STATIC;
+ std::string typeS;
+ if (myJunctionControlBuilder.getTLLogicControlToUse().get(id, programID) == 0) {
+ // SUMO_ATTR_TYPE is not needed when only modifying the offst of an
+ // existing program
+ typeS = attrs.get<std::string>(SUMO_ATTR_TYPE, 0, ok);
+ if (SUMOXMLDefinitions::TrafficLightTypes.hasString(typeS)) {
+ type = SUMOXMLDefinitions::TrafficLightTypes.get(typeS);
+ } else {
+ WRITE_ERROR("Traffic light '" + id + "' has unknown type '" + typeS + "'");
+ }
}
//
SUMOTime offset = attrs.getOptSUMOTimeReporting(SUMO_ATTR_OFFSET, id.c_str(), ok, 0);
if (!ok) {
return;
}
- std::string programID = attrs.getOpt<std::string>(SUMO_ATTR_PROGRAMID, id.c_str(), ok, "<unknown>");
myJunctionControlBuilder.initTrafficLightLogic(id, programID, type, offset);
}
@@ -978,7 +990,7 @@ NLHandler::addConnection(const SUMOSAXAttributes& attrs) {
link = new MSLink(toLane, dir, state, length, keepClear);
toLane->addIncomingLane(fromLane, link);
#endif
- toLane->addApproachingLane(fromLane);
+ toLane->addApproachingLane(fromLane, myNetworkVersion < 0.25);
// if a traffic light is responsible for it, inform the traffic light
// check whether this link is controlled by a traffic light
diff --git a/src/netload/NLHandler.h b/src/netload/NLHandler.h
index e5574e3..4b3f63c 100644
--- a/src/netload/NLHandler.h
+++ b/src/netload/NLHandler.h
@@ -5,7 +5,7 @@
/// @author Clemens Honomichl
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: NLHandler.h 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: NLHandler.h 19451 2015-11-27 13:39:24Z namdre $
///
// The XML-Handler for network loading
/****************************************************************************/
@@ -33,28 +33,19 @@
#include <config.h>
#endif
-#include <xercesc/sax/HandlerBase.hpp>
-#include <xercesc/sax/SAXException.hpp>
-#include <xercesc/sax/AttributeList.hpp>
-#include <utils/common/SUMOTime.h>
-#include <utils/common/Parameterised.h>
-#include <utils/xml/SUMOXMLDefinitions.h>
+#include <utils/geom/Boundary.h>
#include <utils/shapes/ShapeHandler.h>
-#include <microsim/MSLink.h>
#include <microsim/MSRouteHandler.h>
-#include <microsim/traffic_lights/MSSimpleTrafficLightLogic.h>
-#include <microsim/traffic_lights/MSActuatedTrafficLightLogic.h>
-#include <microsim/MSBitSetLogic.h>
-#include "NLBuilder.h"
#include "NLDiscreteEventBuilder.h"
-
// ===========================================================================
// class declarations
// ===========================================================================
class NLContainer;
class NLDetectorBuilder;
+class NLEdgeControlBuilder;
+class NLJunctionControlBuilder;
class NLTriggerBuilder;
class MSTrafficLightLogic;
@@ -118,6 +109,14 @@ public:
return myHaveSeenInternalEdge;
}
+ bool lefthand() const {
+ return myLefthand;
+ }
+
+ SUMOReal networkVersion() const {
+ return myNetworkVersion;
+ }
+
protected:
/// @name inherited from GenericSAXHandler
//@{
@@ -333,6 +332,12 @@ protected:
/// @brief whether the loaded network contains internal lanes
bool myHaveSeenInternalEdge;
+ /// @brief whether the loaded network was built for left hand traffic
+ bool myLefthand;
+
+ /// @brief the loaded network version
+ SUMOReal myNetworkVersion;
+
/// @brief whether the location element was already loadee
bool myNetIsLoaded;
diff --git a/src/netload/NLJunctionControlBuilder.cpp b/src/netload/NLJunctionControlBuilder.cpp
index f418bb4..0a95105 100644
--- a/src/netload/NLJunctionControlBuilder.cpp
+++ b/src/netload/NLJunctionControlBuilder.cpp
@@ -5,7 +5,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: NLJunctionControlBuilder.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: NLJunctionControlBuilder.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Builder of microsim-junctions and tls
/****************************************************************************/
@@ -46,6 +46,7 @@
#include <microsim/traffic_lights/MSRailSignal.h>
#include <microsim/MSEventControl.h>
#include <microsim/MSGlobals.h>
+#include <microsim/MSNet.h>
#include <microsim/traffic_lights/MSOffTrafficLightLogic.h>
#include <microsim/traffic_lights/MSTLLogicControl.h>
#include <utils/xml/SUMOXMLDefinitions.h>
@@ -108,7 +109,7 @@ NLJunctionControlBuilder::openJunction(const std::string& id,
void
-NLJunctionControlBuilder::closeJunction() {
+NLJunctionControlBuilder::closeJunction(const std::string& basePath) {
if (myJunctions == 0) {
throw ProcessError("Information about the number of nodes was missing.");
}
@@ -122,10 +123,12 @@ NLJunctionControlBuilder::closeJunction() {
junction = buildNoLogicJunction();
break;
case NODETYPE_TRAFFIC_LIGHT:
+ case NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED:
case NODETYPE_RIGHT_BEFORE_LEFT:
case NODETYPE_PRIORITY:
case NODETYPE_PRIORITY_STOP:
case NODETYPE_ALLWAY_STOP:
+ case NODETYPE_ZIPPER:
junction = buildLogicJunction();
break;
case NODETYPE_INTERNAL:
@@ -140,7 +143,7 @@ NLJunctionControlBuilder::closeJunction() {
myActiveKey = myActiveID;
myActiveProgram = "0";
myLogicType = TLTYPE_RAIL;
- closeTrafficLightLogic();
+ closeTrafficLightLogic(basePath);
junction = buildLogicJunction();
break;
default:
@@ -211,7 +214,7 @@ NLJunctionControlBuilder::getTLLogic(const std::string& id) const {
void
-NLJunctionControlBuilder::closeTrafficLightLogic() {
+NLJunctionControlBuilder::closeTrafficLightLogic(const std::string& basePath) {
if (myActiveProgram == "off") {
if (myAbsDuration > 0) {
throw InvalidArgument("The off program for TLS '" + myActiveKey + "' has phases.");
@@ -224,10 +227,18 @@ NLJunctionControlBuilder::closeTrafficLightLogic() {
}
SUMOTime firstEventOffset = 0;
unsigned int step = 0;
+ MSTrafficLightLogic* existing = 0;
MSSimpleTrafficLightLogic::Phases::const_iterator i = myActivePhases.begin();
if (myLogicType != TLTYPE_RAIL) {
if (myAbsDuration == 0) {
- throw InvalidArgument("TLS program '" + myActiveProgram + "' for TLS '" + myActiveKey + "' has a duration of 0.");
+ existing = getTLLogicControlToUse().get(myActiveKey, myActiveProgram);
+ if (existing == 0) {
+ throw InvalidArgument("TLS program '" + myActiveProgram + "' for TLS '" + myActiveKey + "' has a duration of 0.");
+ } else {
+ // only modify the offset of an existing logic
+ myAbsDuration = existing->getDefaultCycleTime();
+ i = existing->getPhases().begin();
+ }
}
// compute the initial step and first switch time of the tls-logic
// a positive offset delays all phases by x (advance by absDuration - x) while a negative offset advances all phases by x seconds
@@ -244,6 +255,11 @@ NLJunctionControlBuilder::closeTrafficLightLogic() {
++i;
}
firstEventOffset = (*i)->duration - offset + myNet.getCurrentTimeStep();
+ if (existing != 0) {
+ existing->changeStepAndDuration(getTLLogicControlToUse(),
+ myNet.getCurrentTimeStep(), step, (*i)->duration - offset);
+ return;
+ }
}
if (myActiveProgram == "") {
@@ -258,7 +274,7 @@ NLJunctionControlBuilder::closeTrafficLightLogic() {
tlLogic = new MSActuatedTrafficLightLogic(getTLLogicControlToUse(),
myActiveKey, myActiveProgram,
myActivePhases, step, (*i)->minDuration + myNet.getCurrentTimeStep(),
- myAdditionalParameter);
+ myAdditionalParameter, basePath);
break;
case TLTYPE_STATIC:
tlLogic =
@@ -334,9 +350,9 @@ NLJunctionControlBuilder::addLogicItem(int request,
assert(myActiveLogic.size() == (size_t) request);
assert(myActiveFoes.size() == (size_t) request);
// add the read response for the given request index
- myActiveLogic.push_back(std::bitset<64>(response));
+ myActiveLogic.push_back(std::bitset<SUMO_MAX_CONNECTIONS>(response));
// add the read junction-internal foes for the given request index
- myActiveFoes.push_back(std::bitset<64>(foes));
+ myActiveFoes.push_back(std::bitset<SUMO_MAX_CONNECTIONS>(foes));
// add whether the vehicle may drive a little bit further
myActiveConts.set(request, cont);
// increse number of set information
diff --git a/src/netload/NLJunctionControlBuilder.h b/src/netload/NLJunctionControlBuilder.h
index a715866..85b4439 100644
--- a/src/netload/NLJunctionControlBuilder.h
+++ b/src/netload/NLJunctionControlBuilder.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 9 Jul 2001
-/// @version $Id: NLJunctionControlBuilder.h 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: NLJunctionControlBuilder.h 19506 2015-12-03 12:44:22Z behrisch $
///
// Builder of microsim-junctions and tls
/****************************************************************************/
@@ -123,7 +123,7 @@ public:
* @todo Throwing ProcessError would get unneeded if the container would be built by default (see prepare)
* @todo The type of the junctions shoould probably be checked when supprted (in openJunction)
*/
- void closeJunction();
+ void closeJunction(const std::string& basePath);
/** @brief Builds the MSJunctionControl which holds all of the simulations junctions
@@ -213,7 +213,7 @@ public:
*
* @exception InvalidArgument If another tls logic with the same name as the currently built was loaded before
*/
- virtual void closeTrafficLightLogic();
+ virtual void closeTrafficLightLogic(const std::string& basePath);
/** @brief Ends the building of a junction logic (row-logic)
@@ -341,7 +341,7 @@ protected:
MSBitsetLogic::Foes myActiveFoes;
/// @brief The description about which lanes have an internal follower
- std::bitset<64> myActiveConts;
+ std::bitset<SUMO_MAX_CONNECTIONS> myActiveConts;
/// @brief The current phase definitions for a simple traffic light
MSSimpleTrafficLightLogic::Phases myActivePhases;
diff --git a/src/netload/NLTriggerBuilder.cpp b/src/netload/NLTriggerBuilder.cpp
index 32c738c..c82902e 100644
--- a/src/netload/NLTriggerBuilder.cpp
+++ b/src/netload/NLTriggerBuilder.cpp
@@ -7,7 +7,7 @@
/// @author Sascha Krieg
/// @author Michael Behrisch
/// @date Thu, 17 Oct 2002
-/// @version $Id: NLTriggerBuilder.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NLTriggerBuilder.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Builds trigger objects for microsim
/****************************************************************************/
@@ -44,11 +44,12 @@
#include <microsim/trigger/MSTriggeredRerouter.h>
#include <microsim/trigger/MSCalibrator.h>
#include <microsim/MSStoppingPlace.h>
-#include <microsim/trigger/MSChrgStn.h>
+#include <microsim/trigger/MSChargingStation.h>
#include <utils/common/StringTokenizer.h>
#include <utils/common/FileHelpers.h>
#include <utils/common/UtilExceptions.h>
#include <utils/common/WrappingCommand.h>
+#include <utils/options/OptionsCont.h>
#include "NLHandler.h"
#include "NLTriggerBuilder.h"
#include <utils/xml/SUMOXMLDefinitions.h>
@@ -156,7 +157,7 @@ NLTriggerBuilder::parseAndBuildLaneSpeedTrigger(MSNet& net, const SUMOSAXAttribu
}
void
-NLTriggerBuilder::parseAndBuildChrgStn(MSNet& net, const SUMOSAXAttributes& attrs) {
+NLTriggerBuilder::parseAndBuildChargingStation(MSNet& net, const SUMOSAXAttributes& attrs) {
bool ok = true;
// get the id, throw if not given or empty...
@@ -172,10 +173,10 @@ NLTriggerBuilder::parseAndBuildChrgStn(MSNet& net, const SUMOSAXAttributes& attr
// get the positions
SUMOReal frompos = attrs.getOpt<SUMOReal>(SUMO_ATTR_STARTPOS, id.c_str(), ok, 0);
SUMOReal topos = attrs.getOpt<SUMOReal>(SUMO_ATTR_ENDPOS, id.c_str(), ok, lane->getLength());
- SUMOReal chrgpower = attrs.getOpt<SUMOReal>(SUMO_ATTR_CHRGPOWER, id.c_str(), ok, 0);
+ SUMOReal chrgpower = attrs.getOpt<SUMOReal>(SUMO_ATTR_CHARGINGPOWER, id.c_str(), ok, 0);
SUMOReal efficiency = attrs.getOpt<SUMOReal>(SUMO_ATTR_EFFICIENCY, id.c_str(), ok, 0);
- SUMOReal chargeInTransit = attrs.getOpt<SUMOReal>(SUMO_ATTR_CHRGINTRANSIT, id.c_str(), ok, 0);
- SUMOReal ChargeDelay = attrs.getOpt<SUMOReal>(SUMO_ATTR_CHRGDELAY, id.c_str(), ok, 0);
+ SUMOReal chargeInTransit = attrs.getOpt<SUMOReal>(SUMO_ATTR_CHARGEINTRANSIT, id.c_str(), ok, 0);
+ SUMOReal ChargeDelay = attrs.getOpt<SUMOReal>(SUMO_ATTR_CHARGEDELAY, id.c_str(), ok, 0);
const bool friendlyPos = attrs.getOpt<bool>(SUMO_ATTR_FRIENDLY_POS, id.c_str(), ok, false);
@@ -188,7 +189,7 @@ NLTriggerBuilder::parseAndBuildChrgStn(MSNet& net, const SUMOSAXAttributes& attr
SUMOSAXAttributes::parseStringVector(attrs.getOpt<std::string>(SUMO_ATTR_LINES, id.c_str(), ok, "", false), lines);
// build the Charging Station
- buildChrgStn(net, id, lines, lane, frompos, topos, chrgpower, efficiency, chargeInTransit, ChargeDelay);
+ buildChargingStation(net, id, lines, lane, frompos, topos, chrgpower, efficiency, chargeInTransit, ChargeDelay);
}
void
@@ -383,14 +384,14 @@ NLTriggerBuilder::buildContainerStop(MSNet& net, const std::string& id,
}
void
-NLTriggerBuilder::buildChrgStn(MSNet& net, const std::string& id,
- const std::vector<std::string>& lines,
- MSLane* lane, SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency, SUMOReal chargeInTransit, SUMOReal ChargeDelay) {
+NLTriggerBuilder::buildChargingStation(MSNet& net, const std::string& id,
+ const std::vector<std::string>& lines,
+ MSLane* lane, SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency, SUMOReal chargeInTransit, SUMOReal ChargeDelay) {
- MSChrgStn* chrgStn = new MSChrgStn(id, lines, *lane, frompos, topos, chrgpower, efficiency, chargeInTransit, ChargeDelay);
+ MSChargingStation* chargingStation = new MSChargingStation(id, lines, *lane, frompos, topos, chrgpower, efficiency, chargeInTransit, ChargeDelay);
- if (!net.addChrgStn(chrgStn)) {
- delete chrgStn;
+ if (!net.addChargingStation(chargingStation)) {
+ delete chargingStation;
throw InvalidArgument("Could not build Charging Station '" + id + "'; probably declared twice.");
}
}
diff --git a/src/netload/NLTriggerBuilder.h b/src/netload/NLTriggerBuilder.h
index 391b16d..bb8f4a9 100644
--- a/src/netload/NLTriggerBuilder.h
+++ b/src/netload/NLTriggerBuilder.h
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Thu, 17 Oct 2002
-/// @version $Id: NLTriggerBuilder.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: NLTriggerBuilder.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Builds trigger objects for microsim
/****************************************************************************/
@@ -156,7 +156,7 @@ public:
* @param[in] attrs SAXattributes which define the trigger
* @exception InvalidArgument If a parameter (lane/position) is not valid
*/
- void parseAndBuildChrgStn(MSNet& net, const SUMOSAXAttributes& attrs);
+ void parseAndBuildChargingStation(MSNet& net, const SUMOSAXAttributes& attrs);
/** @brief Parses his values and builds a mesoscopic or microscopic calibrator
*
@@ -225,9 +225,9 @@ protected:
* @param[in] topos End position of the charging Station on the lane
* @exception InvalidArgument If the charging Station can not be added to the net (is duplicate)
*/
- virtual void buildChrgStn(MSNet& net,
- const std::string& id, const std::vector<std::string>& lines,
- MSLane* lane, SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency, SUMOReal chargeInTransit, SUMOReal ChargeDelay);
+ virtual void buildChargingStation(MSNet& net,
+ const std::string& id, const std::vector<std::string>& lines,
+ MSLane* lane, SUMOReal frompos, SUMOReal topos, SUMOReal chrgpower, SUMOReal efficiency, SUMOReal chargeInTransit, SUMOReal ChargeDelay);
/** @brief Builds a container stop
*
diff --git a/src/netwrite/NWFrame.cpp b/src/netwrite/NWFrame.cpp
index f0601fe..89933b2 100644
--- a/src/netwrite/NWFrame.cpp
+++ b/src/netwrite/NWFrame.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: NWFrame.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NWFrame.cpp 19453 2015-11-27 13:52:24Z namdre $
///
// Sets and checks options for netwrite
/****************************************************************************/
@@ -52,7 +52,7 @@
// ===========================================================================
// static members
// ===========================================================================
-const std::string NWFrame::MAJOR_VERSION = "version=\"0.13\"";
+const std::string NWFrame::MAJOR_VERSION = "version=\"0.25\"";
// ===========================================================================
diff --git a/src/netwrite/NWWriter_Amitran.cpp b/src/netwrite/NWWriter_Amitran.cpp
index c89f626..13dd937 100644
--- a/src/netwrite/NWWriter_Amitran.cpp
+++ b/src/netwrite/NWWriter_Amitran.cpp
@@ -2,7 +2,7 @@
/// @file NWWriter_Amitran.cpp
/// @author Michael Behrisch
/// @date 13.03.2014
-/// @version $Id: NWWriter_Amitran.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NWWriter_Amitran.cpp 19488 2015-12-02 09:53:19Z namdre $
///
// Exporter writing networks using the Amitran format
/****************************************************************************/
@@ -91,6 +91,7 @@ NWWriter_Amitran::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
switch (i->second->getType()) {
case NODETYPE_TRAFFIC_LIGHT:
case NODETYPE_TRAFFIC_LIGHT_NOJUNCTION:
+ case NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED:
device << "\" type=\"trafficLight";
break;
case NODETYPE_PRIORITY:
@@ -105,6 +106,9 @@ NWWriter_Amitran::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
case NODETYPE_ALLWAY_STOP:
device << "\" type=\"allwayStop";
break;
+ case NODETYPE_ZIPPER:
+ device << "\" type=\"zipper";
+ break;
case NODETYPE_RAIL_SIGNAL:
device << "\" type=\"railSignal";
break;
diff --git a/src/netwrite/NWWriter_OpenDrive.cpp b/src/netwrite/NWWriter_OpenDrive.cpp
index e6c03bf..33ca17a 100644
--- a/src/netwrite/NWWriter_OpenDrive.cpp
+++ b/src/netwrite/NWWriter_OpenDrive.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date Tue, 04.05.2011
-/// @version $Id: NWWriter_OpenDrive.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NWWriter_OpenDrive.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Exporter writing networks using the openDRIVE format
/****************************************************************************/
@@ -48,6 +48,7 @@
#include <foreign/nvwa/debug_new.h>
#endif // CHECK_MEMORY_LEAKS
+#define MIN_TURN_DIAMETER 2.0
// ===========================================================================
@@ -62,23 +63,37 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
if (!oc.isSet("opendrive-output")) {
return;
}
+ const bool origNames = oc.getBool("output.original-names");
// some internal mapping containers
- int edgeID = 0;
- int nodeID = 0;
+ int edgeID = 1;
+ int nodeID = 1;
StringBijection<int> edgeMap;
StringBijection<int> nodeMap;
//
OutputDevice& device = OutputDevice::getDevice(oc.getString("opendrive-output"));
device << "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
- device << "<OpenDRIVE>\n";
+ device.openTag("OpenDRIVE");
time_t now = time(0);
std::string dstr(ctime(&now));
const NBNodeCont& nc = nb.getNodeCont();
const NBEdgeCont& ec = nb.getEdgeCont();
const Boundary& b = GeoConvHelper::getFinal().getConvBoundary();
- device << " <header revMajor=\"1\" revMinor=\"3\" name=\"\" version=\"1.00\" date=\"" << dstr.substr(0, dstr.length() - 1)
- << "\" north=\"" << b.ymax() << "\" south=\"" << b.ymin() << "\" east=\"" << b.xmax() << "\" west=\"" << b.xmin()
- << "\" maxRoad=\"" << ec.size() << "\" maxJunc=\"" << nc.size() << "\" maxPrg=\"0\"/>\n";
+ // write header
+ device.openTag("header");
+ device.writeAttr("revMajor", "1");
+ device.writeAttr("revMinor", "3");
+ device.writeAttr("name", "");
+ device.writeAttr("version", "1.00");
+ device.writeAttr("date", dstr.substr(0, dstr.length() - 1));
+ device.writeAttr("north", b.ymax());
+ device.writeAttr("south", b.ymin());
+ device.writeAttr("east", b.xmax());
+ device.writeAttr("west", b.xmin());
+ device.writeAttr("maxRoad", ec.size());
+ device.writeAttr("maxJunc", nc.size());
+ device.writeAttr("maxPrg", 0);
+ device.closeTag();
+
// write normal edges (road)
for (std::map<std::string, NBEdge*>::const_iterator i = ec.begin(); i != ec.end(); ++i) {
const NBEdge* e = (*i).second;
@@ -88,14 +103,9 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
device << " <successor elementType=\"junction\" elementId=\"" << getID(e->getToNode()->getID(), nodeMap, nodeID) << "\"/>\n";
device << " </link>\n";
device << " <type s=\"0\" type=\"town\"/>\n";
+ // for the shape we need to use the leftmost border of the leftmost lane
const std::vector<NBEdge::Lane>& lanes = e->getLanes();
- unsigned int li = (unsigned int)lanes.size() - 1;
- PositionVector ls = e->getLaneShape(li);
- try {
- ls.move2side(-e->getLaneWidth(li) / 2.);
- } catch (InvalidArgument&) {
- // we do not write anything, as this should have been reported, already
- }
+ PositionVector ls = getLeftBorder(e);
writePlanView(ls, device);
device << " <elevationProfile><elevation s=\"0\" a=\"0\" b=\"0\" c=\"0\" d=\"0\"/></elevationProfile>\n";
device << " <lateralProfile/>\n";
@@ -104,11 +114,15 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
writeEmptyCenterLane(device, "solid", 0.13);
device << " <right>\n";
for (int j = e->getNumLanes(); --j >= 0;) {
- device << " <lane id=\"-" << e->getNumLanes() - j << "\" type=\"driving\" level=\"0\">\n";
- device << " <link>\n";
- device << " <predecessor id=\"-1\"/>\n"; // internal roads have this
- device << " <successor id=\"-1\"/>\n"; // internal roads have this
- device << " </link>\n";
+ device << " <lane id=\"-" << e->getNumLanes() - j << "\" type=\"" << getLaneType(e->getPermissions(j)) << "\" level=\"0\">\n";
+ device << " <link/>\n";
+ // this could be used for geometry-link junctions without u-turn,
+ // predecessor and sucessors would be lane indices,
+ // road predecessor / succesfors would be of type 'road' rather than
+ // 'junction'
+ //device << " <predecessor id=\"-1\"/>\n";
+ //device << " <successor id=\"-1\"/>\n";
+ //device << " </link>\n";
device << " <width sOffset=\"0\" a=\"" << e->getLaneWidth(j) << "\" b=\"0\" c=\"0\" d=\"0\"/>\n";
std::string markType = "broken";
if (j == 0) {
@@ -123,6 +137,9 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
device << " </lanes>\n";
device << " <objects/>\n";
device << " <signals/>\n";
+ if (origNames) {
+ device << " <userData sumoId=\"" << e->getID() << "\"/>\n";
+ }
device << " </road>\n";
}
device << "\n";
@@ -131,28 +148,49 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
NBNode* n = (*i).second;
const std::vector<NBEdge*>& incoming = (*i).second->getIncomingEdges();
for (std::vector<NBEdge*>::const_iterator j = incoming.begin(); j != incoming.end(); ++j) {
- const std::vector<NBEdge::Connection>& elv = (*j)->getConnections();
+ const NBEdge* inEdge = *j;
+ const std::vector<NBEdge::Connection>& elv = inEdge->getConnections();
for (std::vector<NBEdge::Connection>::const_iterator k = elv.begin(); k != elv.end(); ++k) {
- if ((*k).toEdge == 0) {
+ const NBEdge::Connection& c = *k;
+ const NBEdge* outEdge = c.toEdge;
+ if (outEdge == 0) {
continue;
}
- const NBEdge::Connection& c = *k;
PositionVector shape = c.shape;
if (c.haveVia) {
shape.append(c.viaShape);
}
- const SUMOReal width = SUMO_const_laneWidth;
+ const SUMOReal width = c.toEdge->getLaneWidth(c.toLane);
// @todo: this if-clause is a hack which assures that the code also works with connections of zero length, what may be possible
// probably, it would make sense to mark such connections and connect the incoming/outgoing streets directly in such cases.
- try {
- shape.move2side(-width / 2.);
- } catch (InvalidArgument&) {
- // we do not write anything, maybe we should
+ if (shape.length() > POSITION_EPS) {
+ try {
+ shape.move2side(-width / 2.);
+ } catch (InvalidArgument&) {
+ shape.clear();
+ }
+ } else {
+ shape.clear();
+ }
+ if (inEdge->isTurningDirectionAt(outEdge)
+ && getLeftBorder(inEdge).back().distanceTo2D(getLeftBorder(outEdge).front()) < MIN_TURN_DIAMETER) {
+ shape.clear(); // simplified geometry for sharp turn-arounds
+ }
+ // we need to fix start and endpoints in case the start and
+ // end segments were not in line with the incoming and outgoing lanes
+ if (shape.size() > 1) {
+ shape[0] = getLeftBorder(inEdge).back();
+ shape[-1] = getLeftBorder(outEdge).front();
+ } else {
+ shape.clear();
+ shape.push_back(getLeftBorder(inEdge).back());
+ shape.push_back(getLeftBorder(outEdge).front());
}
+
device << " <road name=\"" << c.getInternalLaneID() << "\" length=\"" << shape.length() << "\" id=\"" << getID(c.getInternalLaneID(), edgeMap, edgeID) << "\" junction=\"" << getID(n->getID(), nodeMap, nodeID) << "\">\n";
device << " <link>\n";
- device << " <predecessor elementType=\"road\" elementId=\"" << getID((*j)->getID(), edgeMap, edgeID) << "\"/>\n";
- device << " <successor elementType=\"road\" elementId=\"" << getID((*k).toEdge->getID(), edgeMap, edgeID) << "\"/>\n";
+ device << " <predecessor elementType=\"road\" elementId=\"" << getID(inEdge->getID(), edgeMap, edgeID) << "\"/>\n";
+ device << " <successor elementType=\"road\" elementId=\"" << getID(outEdge->getID(), edgeMap, edgeID) << "\"/>\n";
device << " </link>\n";
device << " <type s=\"0\" type=\"town\"/>\n";
writePlanView(shape, device);
@@ -162,10 +200,10 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
device << " <laneSection s=\"0\">\n";
writeEmptyCenterLane(device, "none", 0);
device << " <right>\n";
- device << " <lane id=\"-1\" type=\"driving\" level=\"0\">\n";
+ device << " <lane id=\"-1\" type=\"" << getLaneType(outEdge->getPermissions(c.toLane)) << "\" level=\"0\">\n";
device << " <link>\n";
- device << " <predecessor id=\"-" << (*j)->getNumLanes() - c.fromLane << "\"/>\n";
- device << " <successor id=\"-" << c.toEdge->getNumLanes() - c.toLane << "\"/>\n";
+ device << " <predecessor id=\"-" << inEdge->getNumLanes() - c.fromLane << "\"/>\n";
+ device << " <successor id=\"-" << outEdge->getNumLanes() - c.toLane << "\"/>\n";
device << " </link>\n";
device << " <width sOffset=\"0\" a=\"" << width << "\" b=\"0\" c=\"0\" d=\"0\"/>\n";
device << " <roadMark sOffset=\"0\" type=\"none\" weight=\"standard\" color=\"standard\" width=\"0.13\"/>\n";
@@ -187,20 +225,30 @@ NWWriter_OpenDrive::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
unsigned int index = 0;
const std::vector<NBEdge*>& incoming = n->getIncomingEdges();
for (std::vector<NBEdge*>::const_iterator j = incoming.begin(); j != incoming.end(); ++j) {
- const std::vector<NBEdge::Connection>& elv = (*j)->getConnections();
+ const NBEdge* inEdge = *j;
+ const std::vector<NBEdge::Connection>& elv = inEdge->getConnections();
for (std::vector<NBEdge::Connection>::const_iterator k = elv.begin(); k != elv.end(); ++k) {
- if ((*k).toEdge == 0) {
+ const NBEdge::Connection& c = *k;
+ const NBEdge* outEdge = c.toEdge;
+ if (outEdge == 0) {
continue;
}
- device << " <connection id=\"" << index << "\" incomingRoad=\"" << getID((*j)->getID(), edgeMap, edgeID)
- << "\" connectingRoad=\"" << getID((*k).getInternalLaneID(), edgeMap, edgeID) << "\" contactPoint=\"start\"/>\n";
+ device << " <connection id=\""
+ << index << "\" incomingRoad=\"" << getID(inEdge->getID(), edgeMap, edgeID)
+ << "\" connectingRoad=\""
+ << getID(c.getInternalLaneID(), edgeMap, edgeID)
+ << "\" contactPoint=\"start\">\n";
+ device << " <laneLink from=\"-" << inEdge->getNumLanes() - c.fromLane
+ << "\" to=\"-1" // every connection has its own edge
+ << "\"/>\n";
+ device << " </connection>\n";
++index;
}
}
device << " </junction>\n";
}
- device << "</OpenDRIVE>\n";
+ device.closeTag();
device.close();
}
@@ -211,10 +259,12 @@ NWWriter_OpenDrive::writePlanView(const PositionVector& shape, OutputDevice& dev
SUMOReal offset = 0;
for (unsigned int j = 0; j < shape.size() - 1; ++j) {
const Position& p = shape[j];
- Line l = shape.lineAt(j);
- SUMOReal hdg = atan2(l.p2().y() - l.p1().y(), l.p2().x() - l.p1().x());
- device << " <geometry s=\"" << offset << "\" x=\"" << p.x() << "\" y=\"" << p.y() << "\" hdg=\"" << hdg << "\" length=\"" << l.length() << "\"><line/></geometry>\n";
- offset += l.length();
+ const SUMOReal hdg = shape.angleAt2D(j);
+ const SUMOReal length = p.distanceTo(shape[j + 1]);
+ device << std::setprecision(8); // hdg requires higher precision
+ device << " <geometry s=\"" << offset << "\" x=\"" << p.x() << "\" y=\"" << p.y() << "\" hdg=\"" << hdg << "\" length=\"" << length << "\"><line/></geometry>\n";
+ device << std::setprecision(OUTPUT_ACCURACY);
+ offset += length;
}
device << " </planView>\n";
}
@@ -242,5 +292,35 @@ NWWriter_OpenDrive::getID(const std::string& origID, StringBijection<int>& map,
}
+std::string
+NWWriter_OpenDrive::getLaneType(SVCPermissions permissions) {
+ switch (permissions) {
+ case SVC_PEDESTRIAN:
+ return "sidewalk";
+ //case (SVC_BICYCLE | SVC_PEDESTRIAN):
+ // WRITE_WARNING("Ambiguous lane type (biking+driving) for road '" + roadID + "'");
+ // return "sidewalk";
+ case SVC_BICYCLE:
+ return "biking";
+ case 0:
+ // ambiguous
+ return "none";
+ case SVC_TRAM:
+ return "tram";
+ default:
+ return "driving";
+ }
+}
+
+
+PositionVector
+NWWriter_OpenDrive::getLeftBorder(const NBEdge* edge) {
+ const int leftmost = (int)edge->getNumLanes() - 1;
+ PositionVector result = edge->getLaneShape(leftmost);
+ try {
+ result.move2side(-edge->getLaneWidth(leftmost) / 2);
+ } catch (InvalidArgument&) { }
+ return result;
+}
/****************************************************************************/
diff --git a/src/netwrite/NWWriter_OpenDrive.h b/src/netwrite/NWWriter_OpenDrive.h
index 56ae4cc..ac0ba7b 100644
--- a/src/netwrite/NWWriter_OpenDrive.h
+++ b/src/netwrite/NWWriter_OpenDrive.h
@@ -2,7 +2,7 @@
/// @file NWWriter_OpenDrive.h
/// @author Daniel Krajzewicz
/// @date Tue, 04.05.2011
-/// @version $Id: NWWriter_OpenDrive.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: NWWriter_OpenDrive.h 19443 2015-11-26 14:16:12Z namdre $
///
// Exporter writing networks using the openDRIVE format
/****************************************************************************/
@@ -31,12 +31,14 @@
#endif
#include <utils/common/StringBijection.h>
+#include <utils/common/SUMOVehicleClass.h>
// ===========================================================================
// class declarations
// ===========================================================================
class NBNetBuilder;
+class NBEdge;
class OptionsCont;
class PositionVector;
class OutputDevice;
@@ -64,6 +66,10 @@ protected:
static void writeEmptyCenterLane(OutputDevice& device, const std::string& mark, SUMOReal markWidth);
static int getID(const std::string& origID, StringBijection<int>& map, int& lastID);
+ static std::string getLaneType(SVCPermissions permissions);
+
+ /// @brief get the left border of the leftmost lane
+ static PositionVector getLeftBorder(const NBEdge* edge);
};
diff --git a/src/netwrite/NWWriter_SUMO.cpp b/src/netwrite/NWWriter_SUMO.cpp
index 6d358f7..79d5ecb 100644
--- a/src/netwrite/NWWriter_SUMO.cpp
+++ b/src/netwrite/NWWriter_SUMO.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 04.05.2011
-/// @version $Id: NWWriter_SUMO.cpp 18739 2015-08-27 06:48:48Z namdre $
+/// @version $Id: NWWriter_SUMO.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Exporter writing networks using the SUMO format
/****************************************************************************/
@@ -67,7 +67,15 @@ NWWriter_SUMO::writeNetwork(const OptionsCont& oc, NBNetBuilder& nb) {
return;
}
OutputDevice& device = OutputDevice::getDevice(oc.getString("output-file"));
- device.writeXMLHeader("net", NWFrame::MAJOR_VERSION + " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo.dlr.de/xsd/net_file.xsd\""); // street names may contain non-ascii chars
+ const std::string lefthand = oc.getBool("lefthand") ? " " + toString(SUMO_ATTR_LEFTHAND) + "=\"true\"" : "";
+ const int cornerDetail = oc.getInt("junctions.corner-detail");
+ const int linkDetail = oc.getInt("junctions.internal-link-detail");
+ const std::string junctionCornerDetail = (cornerDetail > 0
+ ? " " + toString(SUMO_ATTR_CORNERDETAIL) + "=\"" + toString(cornerDetail) + "\"" : "");
+ const std::string junctionLinkDetail = (oc.isDefault("junctions.internal-link-detail") ? "" :
+ " " + toString(SUMO_ATTR_LINKDETAIL) + "=\"" + toString(linkDetail) + "\"");
+ device.writeXMLHeader("net", NWFrame::MAJOR_VERSION + lefthand + junctionCornerDetail + junctionLinkDetail +
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"http://sumo.dlr.de/xsd/net_file.xsd\""); // street names may contain non-ascii chars
device.lf();
// get involved container
const NBNodeCont& nc = nb.getNodeCont();
@@ -549,6 +557,9 @@ NWWriter_SUMO::writeConnection(OutputDevice& into, const NBEdge& from, const NBE
if ((from.getToNode()->getKeepClear() == false || c.keepClear == false) && style != TLL) {
into.writeAttr<bool>(SUMO_ATTR_KEEP_CLEAR, false);
}
+ if (c.contPos != NBEdge::UNSPECIFIED_CONTPOS && style != TLL) {
+ into.writeAttr(SUMO_ATTR_CONTPOS, c.contPos);
+ }
if (style != PLAIN) {
if (includeInternal) {
into.writeAttr(SUMO_ATTR_VIA, c.getInternalLaneID());
@@ -565,7 +576,7 @@ NWWriter_SUMO::writeConnection(OutputDevice& into, const NBEdge& from, const NBE
into.writeAttr(SUMO_ATTR_DIR, toString(dir));
// write the state information
const LinkState linkState = from.getToNode()->getLinkState(
- &from, c.toEdge, c.fromLane, c.mayDefinitelyPass, c.tlID);
+ &from, c.toEdge, c.fromLane, c.toLane, c.mayDefinitelyPass, c.tlID);
into.writeAttr(SUMO_ATTR_STATE, linkState);
}
}
diff --git a/src/od/ODMatrix.cpp b/src/od/ODMatrix.cpp
index 1123b6b..506e12c 100644
--- a/src/od/ODMatrix.cpp
+++ b/src/od/ODMatrix.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Yun-Pang Floetteroed
/// @date 05 Apr. 2006
-/// @version $Id: ODMatrix.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: ODMatrix.cpp 19003 2015-10-02 14:41:41Z behrisch $
///
// An O/D (origin/destination) matrix
/****************************************************************************/
@@ -244,11 +244,13 @@ ODMatrix::write(SUMOTime begin, const SUMOTime end,
sort(vehicles.begin(), vehicles.end(), descending_departure_comperator());
}
for (std::vector<ODVehicle>::reverse_iterator i = vehicles.rbegin(); i != vehicles.rend() && (*i).depart == t; ++i) {
- myNoWritten++;
- dev.openTag(SUMO_TAG_TRIP).writeAttr(SUMO_ATTR_ID, (*i).id).writeAttr(SUMO_ATTR_DEPART, time2string(t));
- dev.writeAttr(SUMO_ATTR_FROM, (*i).from).writeAttr(SUMO_ATTR_TO, (*i).to);
- writeDefaultAttrs(dev, noVtype, i->cell);
- dev.closeTag();
+ if (t >= begin) {
+ myNoWritten++;
+ dev.openTag(SUMO_TAG_TRIP).writeAttr(SUMO_ATTR_ID, (*i).id).writeAttr(SUMO_ATTR_DEPART, time2string(t));
+ dev.writeAttr(SUMO_ATTR_FROM, (*i).from).writeAttr(SUMO_ATTR_TO, (*i).to);
+ writeDefaultAttrs(dev, noVtype, i->cell);
+ dev.closeTag();
+ }
}
while (vehicles.size() != 0 && vehicles.back().depart == t) {
vehicles.pop_back();
@@ -599,4 +601,11 @@ ODMatrix::parseTimeLine(const std::vector<std::string>& def, bool timelineDayInH
return Distribution_Points("N/A", points, interpolating);
}
+
+void
+ODMatrix::sortByBeginTime() {
+ std::sort(myContainer.begin(), myContainer.end(), by_begin_sorter());
+}
+
+
/****************************************************************************/
diff --git a/src/od/ODMatrix.h b/src/od/ODMatrix.h
index a51120c..ede3120 100644
--- a/src/od/ODMatrix.h
+++ b/src/od/ODMatrix.h
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Yun-Pang Floetteroed
/// @date 05. Apr. 2006
-/// @version $Id: ODMatrix.h 18586 2015-08-03 06:44:47Z namdre $
+/// @version $Id: ODMatrix.h 19003 2015-10-02 14:41:41Z behrisch $
///
// An O/D (origin/destination) matrix
/****************************************************************************/
@@ -243,6 +243,8 @@ public:
return myContainer;
}
+ void sortByBeginTime();
+
protected:
/**
* @struct ODVehicle
@@ -335,6 +337,21 @@ private:
SUMOReal readFactor(LineReader& lr, SUMOReal scale);
+ /** @class by_begin_sorter
+ * @brief Sorts cells by their start time
+ */
+ class by_begin_sorter {
+ public:
+ /// @brief constructor
+ explicit by_begin_sorter() { }
+
+ /// @brief comparing operator
+ int operator()(const ODCell* const c1, const ODCell* const c2) const {
+ return c1->begin < c2->begin;
+ }
+
+ };
+
protected:
/// @brief The loaded cells
std::vector<ODCell*> myContainer;
diff --git a/src/polyconvert/PCLoaderArcView.cpp b/src/polyconvert/PCLoaderArcView.cpp
index 5eeeaea..ceb2905 100644
--- a/src/polyconvert/PCLoaderArcView.cpp
+++ b/src/polyconvert/PCLoaderArcView.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: PCLoaderArcView.cpp 18752 2015-08-30 19:09:05Z namdre $
+/// @version $Id: PCLoaderArcView.cpp 18892 2015-09-21 13:29:52Z namdre $
///
// A reader of pois and polygons from shape files
/****************************************************************************/
@@ -84,6 +84,12 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
bool useRunningID = oc.getBool("shapefile.use-running-id");
// start parsing
std::string shpName = file + ".shp";
+ int fillType = -1;
+ if (oc.getString("shapefile.fill") == "true") {
+ fillType = 1;
+ } else if (oc.getString("shapefile.fill") == "false") {
+ fillType = 0;
+ }
#if GDAL_VERSION_MAJOR < 2
OGRRegisterAll();
OGRDataSource* poDS = OGRSFDriverRegistrar::Open(shpName.c_str(), FALSE);
@@ -152,6 +158,7 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
break;
case wkbLineString: {
+ bool fill = fillType < 0 ? false : (fillType == 1);
OGRLineString* cgeom = (OGRLineString*) poGeometry;
PositionVector shape;
for (int j = 0; j < cgeom->getNumPoints(); j++) {
@@ -161,13 +168,14 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
shape.push_back_noDoublePos(pos);
}
- Polygon* poly = new Polygon(id, type, color, shape, false, (SUMOReal)layer);
+ Polygon* poly = new Polygon(id, type, color, shape, fill, (SUMOReal)layer);
if (toFill.insert(id, poly, layer)) {
parCont.push_back(poly);
}
}
break;
case wkbPolygon: {
+ bool fill = fillType < 0 ? true : (fillType == 1);
OGRLinearRing* cgeom = ((OGRPolygon*) poGeometry)->getExteriorRing();
PositionVector shape;
for (int j = 0; j < cgeom->getNumPoints(); j++) {
@@ -177,7 +185,7 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
shape.push_back_noDoublePos(pos);
}
- Polygon* poly = new Polygon(id, type, color, shape, true, (SUMOReal)layer);
+ Polygon* poly = new Polygon(id, type, color, shape, fill, (SUMOReal)layer);
if (toFill.insert(id, poly, layer)) {
parCont.push_back(poly);
}
@@ -200,6 +208,7 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
break;
case wkbMultiLineString: {
+ bool fill = fillType < 0 ? false : (fillType == 1);
OGRMultiLineString* cgeom = (OGRMultiLineString*) poGeometry;
for (int i = 0; i < cgeom->getNumGeometries(); ++i) {
OGRLineString* cgeom2 = (OGRLineString*) cgeom->getGeometryRef(i);
@@ -212,7 +221,7 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
shape.push_back_noDoublePos(pos);
}
- Polygon* poly = new Polygon(tid, type, color, shape, false, (SUMOReal)layer);
+ Polygon* poly = new Polygon(tid, type, color, shape, fill, (SUMOReal)layer);
if (toFill.insert(tid, poly, layer)) {
parCont.push_back(poly);
}
@@ -220,6 +229,7 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
break;
case wkbMultiPolygon: {
+ bool fill = fillType < 0 ? true : (fillType == 1);
OGRMultiPolygon* cgeom = (OGRMultiPolygon*) poGeometry;
for (int i = 0; i < cgeom->getNumGeometries(); ++i) {
OGRLinearRing* cgeom2 = ((OGRPolygon*) cgeom->getGeometryRef(i))->getExteriorRing();
@@ -232,7 +242,7 @@ PCLoaderArcView::load(const std::string& file, OptionsCont& oc, PCPolyContainer&
}
shape.push_back_noDoublePos(pos);
}
- Polygon* poly = new Polygon(tid, type, color, shape, true, (SUMOReal)layer);
+ Polygon* poly = new Polygon(tid, type, color, shape, fill, (SUMOReal)layer);
if (toFill.insert(tid, poly, layer)) {
parCont.push_back(poly);
}
diff --git a/src/polyconvert/PCLoaderVisum.cpp b/src/polyconvert/PCLoaderVisum.cpp
index 9255a6a..2274cad 100644
--- a/src/polyconvert/PCLoaderVisum.cpp
+++ b/src/polyconvert/PCLoaderVisum.cpp
@@ -5,7 +5,7 @@
/// @author Christoph Sommer
/// @author Michael Behrisch
/// @date Thu, 02.11.2006
-/// @version $Id: PCLoaderVisum.cpp 18239 2015-04-20 11:37:12Z behrisch $
+/// @version $Id: PCLoaderVisum.cpp 19339 2015-11-12 14:12:09Z behrisch $
///
// A reader of pois and polygons stored in VISUM-format
/****************************************************************************/
@@ -131,7 +131,7 @@ PCLoaderVisum::load(const std::string& file, OptionsCont& oc, PCPolyContainer& t
if (!geoConvHelper.x2cartesian(pos)) {
WRITE_WARNING("Unable to project coordinates for edge '" + toString(id) + "'.");
}
- kanten[id].insertAt(index, pos);
+ kanten[id].insert(kanten[id].begin() + index, pos);
continue;
} else if (what == "$TEILFLAECHENELEMENT") {
lineParser.parseLine(line);
diff --git a/src/polyconvert/PCLoaderXML.cpp b/src/polyconvert/PCLoaderXML.cpp
index cd4f48a..c9a4abd 100644
--- a/src/polyconvert/PCLoaderXML.cpp
+++ b/src/polyconvert/PCLoaderXML.cpp
@@ -5,7 +5,7 @@
/// @author Christoph Sommer
/// @author Michael Behrisch
/// @date Thu, 02.11.2006
-/// @version $Id: PCLoaderXML.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: PCLoaderXML.cpp 18891 2015-09-21 12:38:39Z namdre $
///
// A reader for polygons and pois stored in XML-format
/****************************************************************************/
@@ -160,6 +160,7 @@ PCLoaderXML::myStartElement(int element,
bool ok = true;
std::string id = attrs.getOpt<std::string>(SUMO_ATTR_ID, myCurrentID.c_str(), ok, "");
std::string type = attrs.getOpt<std::string>(SUMO_ATTR_TYPE, myCurrentID.c_str(), ok, myOptions.getString("type"));
+ bool fill = myOptions.getBool("fill");
if (!ok) {
return;
}
@@ -171,6 +172,7 @@ PCLoaderXML::myStartElement(int element,
color = def.color;
discard = def.discard;
layer = (SUMOReal)def.layer;
+ fill = def.allowFill;
} else {
id = myOptions.getString("prefix") + id;
color = RGBColor::parseColor(myOptions.getString("color"));
@@ -184,7 +186,7 @@ PCLoaderXML::myStartElement(int element,
if (imgFile != "" && !FileHelpers::isAbsolute(imgFile)) {
imgFile = FileHelpers::getConfigurationRelative(getFileName(), imgFile);
}
- bool fill = attrs.getOpt<bool>(SUMO_ATTR_FILL, id.c_str(), ok, false);
+ fill = attrs.getOpt<bool>(SUMO_ATTR_FILL, id.c_str(), ok, fill);
if (!ok) {
return;
}
diff --git a/src/polyconvert/PCPolyContainer.cpp b/src/polyconvert/PCPolyContainer.cpp
index ee13e4c..31a78e4 100644
--- a/src/polyconvert/PCPolyContainer.cpp
+++ b/src/polyconvert/PCPolyContainer.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Melanie Knocke
/// @date Mon, 05 Dec 2005
-/// @version $Id: PCPolyContainer.cpp 18703 2015-08-24 07:29:42Z namdre $
+/// @version $Id: PCPolyContainer.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// A storage for loaded polygons and pois
/****************************************************************************/
@@ -175,40 +175,7 @@ PCPolyContainer::save(const std::string& file, bool useGeo) {
// write pois
const SUMOReal zOffset = OptionsCont::getOptions().getFloat("poi-layer-offset");
for (POICont::iterator i = myPOICont.begin(); i != myPOICont.end(); ++i) {
- PointOfInterest* p = i->second;
- out.openTag(SUMO_TAG_POI);
- out.writeAttr(SUMO_ATTR_ID, StringUtils::escapeXML(p->getID()));
- out.writeAttr(SUMO_ATTR_TYPE, StringUtils::escapeXML(p->getType()));
- out.writeAttr(SUMO_ATTR_COLOR, p->getColor());
- out.writeAttr(SUMO_ATTR_LAYER, p->getLayer() + zOffset);
- if (useGeo) {
- Position pos(*p);
- gch.cartesian2geo(pos);
- out.writeAttr(SUMO_ATTR_LON, pos.x());
- out.writeAttr(SUMO_ATTR_LAT, pos.y());
- } else {
- out.writeAttr(SUMO_ATTR_X, p->x());
- out.writeAttr(SUMO_ATTR_Y, p->y());
- }
- if (p->getAngle() != Shape::DEFAULT_ANGLE) {
- out.writeAttr(SUMO_ATTR_ANGLE, p->getAngle());
- }
- if (p->getImgFile() != Shape::DEFAULT_IMG_FILE) {
- out.writeAttr(SUMO_ATTR_IMGFILE, p->getImgFile());
- }
- if (p->getWidth() != Shape::DEFAULT_IMG_WIDTH) {
- out.writeAttr(SUMO_ATTR_WIDTH, p->getWidth());
- }
- if (p->getHeight() != Shape::DEFAULT_IMG_HEIGHT) {
- out.writeAttr(SUMO_ATTR_HEIGHT, p->getHeight());
- }
- for (std::map<std::string, std::string>::const_iterator j = p->getMap().begin(); j != p->getMap().end(); ++j) {
- out.openTag(SUMO_TAG_PARAM);
- out.writeAttr(SUMO_ATTR_KEY, (*j).first);
- out.writeAttr(SUMO_ATTR_VALUE, (*j).second);
- out.closeTag();
- }
- out.closeTag();
+ i->second->writeXML(out, useGeo, zOffset);
}
out.close();
}
diff --git a/src/polyconvert/PCTypeDefHandler.cpp b/src/polyconvert/PCTypeDefHandler.cpp
index b7b79c9..2392f1b 100644
--- a/src/polyconvert/PCTypeDefHandler.cpp
+++ b/src/polyconvert/PCTypeDefHandler.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Thu, 16.03.2006
-/// @version $Id: PCTypeDefHandler.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: PCTypeDefHandler.cpp 18891 2015-09-21 12:38:39Z namdre $
///
// A handler for loading polygon type maps
/****************************************************************************/
@@ -69,7 +69,7 @@ PCTypeDefHandler::myStartElement(int element,
}
int layer = attrs.getOpt<int>(SUMO_ATTR_LAYER, id.c_str(), ok, myOptions.getInt("layer"));
bool discard = attrs.getOpt<bool>(SUMO_ATTR_DISCARD, id.c_str(), ok, false);
- bool allowFill = attrs.getOpt<bool>(SUMO_ATTR_FILL, id.c_str(), ok, true);
+ bool allowFill = attrs.getOpt<bool>(SUMO_ATTR_FILL, id.c_str(), ok, myOptions.getBool("fill"));
std::string type = attrs.getOpt<std::string>(SUMO_ATTR_NAME, id.c_str(), ok, myOptions.getString("type"));
std::string prefix = attrs.getOpt<std::string>(SUMO_ATTR_PREFIX, id.c_str(), ok, myOptions.getString("prefix"));
std::string color = attrs.getOpt<std::string>(SUMO_ATTR_COLOR, id.c_str(), ok, myOptions.getString("color"));
diff --git a/src/polyconvert/PCTypeMap.cpp b/src/polyconvert/PCTypeMap.cpp
index 75c57d9..7f59121 100644
--- a/src/polyconvert/PCTypeMap.cpp
+++ b/src/polyconvert/PCTypeMap.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 05 Dec 2005
-/// @version $Id: PCTypeMap.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: PCTypeMap.cpp 18891 2015-09-21 12:38:39Z namdre $
///
// A storage for type mappings
/****************************************************************************/
@@ -48,7 +48,7 @@ PCTypeMap::PCTypeMap(const OptionsCont& oc) {
myDefaultType.color = RGBColor::parseColor(oc.getString("color"));
myDefaultType.layer = oc.getInt("layer");
myDefaultType.discard = oc.getBool("discard");
- myDefaultType.allowFill = true;
+ myDefaultType.allowFill = oc.getBool("fill");
myDefaultType.prefix = oc.getString("prefix");
}
diff --git a/src/polyconvert/polyconvert_main.cpp b/src/polyconvert/polyconvert_main.cpp
index 21e7b5b..0b706e3 100644
--- a/src/polyconvert/polyconvert_main.cpp
+++ b/src/polyconvert/polyconvert_main.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Melanie Knocke
/// @date Mon, 05 Dec 2005
-/// @version $Id: polyconvert_main.cpp 18703 2015-08-24 07:29:42Z namdre $
+/// @version $Id: polyconvert_main.cpp 18892 2015-09-21 13:29:52Z namdre $
///
// Main for POLYCONVERT
/****************************************************************************/
@@ -139,6 +139,9 @@ fillOptions() {
oc.doRegister("shapefile.add-param", new Option_Bool());
oc.addDescription("shapefile.add-param", "Input", "Extract all additonal columns as params");
+ oc.doRegister("shapefile.fill", new Option_String());
+ oc.addDescription("shapefile.fill", "Input", "[auto|true|false]. Forces the 'fill' status to the given value. Default 'auto' tries to determine it from the data type");
+
// typemap reading
oc.doRegister("type-file", new Option_FileName());
oc.addSynonyme("type-file", "typemap", true);
@@ -200,6 +203,9 @@ fillOptions() {
oc.doRegister("type", new Option_String("unknown"));
oc.addDescription("type", "Building Defaults", "Sets STR as default type");
+ oc.doRegister("fill", new Option_Bool("false"));
+ oc.addDescription("fill", "Building Defaults", "Fills polygons by default");
+
oc.doRegister("layer", new Option_Integer(-1));
oc.addDescription("layer", "Building Defaults", "Sets INT as default layer");
diff --git a/src/router/ROEdge.cpp b/src/router/ROEdge.cpp
index 534798c..ab2dd61 100644
--- a/src/router/ROEdge.cpp
+++ b/src/router/ROEdge.cpp
@@ -7,7 +7,7 @@
/// @author Melanie Knocke
/// @author Yun-Pang Floetteroed
/// @date Sept 2002
-/// @version $Id: ROEdge.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: ROEdge.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// A basic edge for routing applications
/****************************************************************************/
@@ -54,8 +54,6 @@
// ===========================================================================
// static member definitions
// ===========================================================================
-bool ROEdge::myUseBoundariesOnOverrideTT = false;
-bool ROEdge::myUseBoundariesOnOverrideE = false;
bool ROEdge::myInterpolate = false;
bool ROEdge::myAmParallel = false;
bool ROEdge::myHaveTTWarned = false;
@@ -152,6 +150,12 @@ ROEdge::getDistanceTo(const ROEdge* other) const {
}
+bool
+ROEdge::hasLoadedTravelTime(SUMOReal time) const {
+ return myUsingTTTimeLine && myTravelTimes.describesTime(time);
+}
+
+
SUMOReal
ROEdge::getTravelTime(const ROVehicle* const veh, SUMOReal time) const {
if (myUsingTTTimeLine) {
@@ -231,7 +235,7 @@ ROEdge::getNumPredecessors() const {
void
-ROEdge::buildTimeLines(const std::string& measure) {
+ROEdge::buildTimeLines(const std::string& measure, const bool boundariesOverride) {
if (myUsingETimeLine) {
SUMOReal value = myLength / mySpeed;
const SUMOEmissionClass c = PollutantsInterface::getClassByName("unknown");
@@ -253,10 +257,10 @@ ROEdge::buildTimeLines(const std::string& measure) {
if (measure == "fuel") {
value = PollutantsInterface::compute(c, PollutantsInterface::FUEL, mySpeed, 0, 0) * value; // @todo: give correct slope
}
- myEfforts.fillGaps(value, myUseBoundariesOnOverrideE);
+ myEfforts.fillGaps(value, boundariesOverride);
}
if (myUsingTTTimeLine) {
- myTravelTimes.fillGaps(myLength / mySpeed, myUseBoundariesOnOverrideTT);
+ myTravelTimes.fillGaps(myLength / mySpeed, boundariesOverride);
}
}
diff --git a/src/router/ROEdge.h b/src/router/ROEdge.h
index d735e62..26b6db4 100644
--- a/src/router/ROEdge.h
+++ b/src/router/ROEdge.h
@@ -7,7 +7,7 @@
/// @author Melanie Knocke
/// @author Yun-Pang Floetteroed
/// @date Sept 2002
-/// @version $Id: ROEdge.h 18627 2015-08-13 08:58:59Z namdre $
+/// @version $Id: ROEdge.h 19003 2015-10-02 14:41:41Z behrisch $
///
// A basic edge for routing applications
/****************************************************************************/
@@ -171,7 +171,7 @@ public:
*
* @param[in] measure The name of the measure to use.
*/
- void buildTimeLines(const std::string& measure);
+ void buildTimeLines(const std::string& measure, const bool boundariesOverride);
//@}
@@ -325,6 +325,14 @@ public:
SUMOReal getEffort(const ROVehicle* const veh, SUMOReal time) const;
+ /** @brief Returns whether a travel time for this edge was loaded
+ *
+ * @param[in] time The time for which the travel time shall be returned [s]
+ * @return whether a value was loaded
+ */
+ bool hasLoadedTravelTime(SUMOReal time) const;
+
+
/** @brief Returns the travel time for this edge
*
* @param[in] veh The vehicle for which the travel time on this edge shall be retrieved
@@ -399,12 +407,8 @@ public:
};
static void setGlobalOptions(
- bool useBoundariesOnOverrideTT,
- bool useBoundariesOnOverrideE,
bool interpolate,
bool isParallel) {
- myUseBoundariesOnOverrideTT = useBoundariesOnOverrideTT;
- myUseBoundariesOnOverrideE = useBoundariesOnOverrideE;
myInterpolate = interpolate;
myAmParallel = isParallel;
}
@@ -463,15 +467,11 @@ protected:
mutable ValueTimeLine<SUMOReal> myTravelTimes;
/// @brief Information whether the time line shall be used instead of the length value
bool myUsingTTTimeLine;
- /// @brief Whether overriding weight boundaries shall be reported
- static bool myUseBoundariesOnOverrideTT;
/// @brief Container storing passing time varying over time for the edge
mutable ValueTimeLine<SUMOReal> myEfforts;
/// @brief Information whether the time line shall be used instead of the length value
bool myUsingETimeLine;
- /// @brief Whether overriding weight boundaries shall be reported
- static bool myUseBoundariesOnOverrideE;
/// @brief Information whether to interpolate at interval boundaries
static bool myInterpolate;
diff --git a/src/router/ROFrame.cpp b/src/router/ROFrame.cpp
index cbd78b6..b8b1b86 100644
--- a/src/router/ROFrame.cpp
+++ b/src/router/ROFrame.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: ROFrame.cpp 18620 2015-08-11 08:28:58Z namdre $
+/// @version $Id: ROFrame.cpp 19021 2015-10-05 21:05:20Z behrisch $
///
// Sets and checks options for routing
/****************************************************************************/
@@ -153,10 +153,8 @@ ROFrame::fillOptions(OptionsCont& oc, bool forDuarouter) {
oc.doRegister("bulk-routing", new Option_Bool(false));
oc.addDescription("bulk-routing", "Processing", "Aggregate routing queries with the same origin");
-#ifdef HAVE_FOX
oc.doRegister("routing-threads", new Option_Integer(0));
oc.addDescription("routing-threads", "Processing", "The number of parallel execution threads used for routing");
-#endif
// register defaults options
oc.doRegister("departlane", new Option_String());
@@ -199,9 +197,15 @@ ROFrame::checkOptions(OptionsCont& oc) {
}
//
if (oc.getInt("max-alternatives") < 2) {
- WRITE_ERROR("At least two alternatives should be enabled");
+ WRITE_ERROR("At least two alternatives should be enabled.");
+ return false;
+ }
+#ifndef HAVE_FOX
+ if (oc.getInt("routing-threads") > 1) {
+ WRITE_ERROR("Parallel routing is only possible when compiled with Fox.");
return false;
}
+#endif
return true;
}
diff --git a/src/router/ROLoader.cpp b/src/router/ROLoader.cpp
index acf282c..7464348 100644
--- a/src/router/ROLoader.cpp
+++ b/src/router/ROLoader.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Christian Roessel
/// @date Sept 2002
-/// @version $Id: ROLoader.cpp 18397 2015-05-18 14:04:14Z behrisch $
+/// @version $Id: ROLoader.cpp 19003 2015-10-02 14:41:41Z behrisch $
///
// Loader for networks and route imports
/****************************************************************************/
@@ -266,7 +266,7 @@ ROLoader::openTypedRoutes(const std::string& optionName,
bool
ROLoader::loadWeights(RONet& net, const std::string& optionName,
- const std::string& measure, bool useLanes) {
+ const std::string& measure, const bool useLanes, const bool boundariesOverride) {
// check whether the file exists
if (!myOptions.isUsableFileList(optionName)) {
return false;
@@ -301,7 +301,7 @@ ROLoader::loadWeights(RONet& net, const std::string& optionName,
// build edge-internal time lines
const std::map<std::string, ROEdge*>& edges = net.getEdgeMap();
for (std::map<std::string, ROEdge*>::const_iterator i = edges.begin(); i != edges.end(); ++i) {
- (*i).second->buildTimeLines(measure);
+ (*i).second->buildTimeLines(measure, boundariesOverride);
}
return true;
}
diff --git a/src/router/ROLoader.h b/src/router/ROLoader.h
index df69ffb..aa9fe91 100644
--- a/src/router/ROLoader.h
+++ b/src/router/ROLoader.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Sept 2002
-/// @version $Id: ROLoader.h 18397 2015-05-18 14:04:14Z behrisch $
+/// @version $Id: ROLoader.h 19003 2015-10-02 14:41:41Z behrisch $
///
// Loader for networks and route imports
/****************************************************************************/
@@ -79,7 +79,7 @@ public:
/// Loads the net weights
bool loadWeights(RONet& net, const std::string& optionName,
- const std::string& measure, bool useLanes);
+ const std::string& measure, const bool useLanes, const bool boundariesOverride);
/** @brief Builds and opens all route loaders */
void openRoutes(RONet& net);
diff --git a/src/router/RONet.cpp b/src/router/RONet.cpp
index 94dbfdd..efc2112 100644
--- a/src/router/RONet.cpp
+++ b/src/router/RONet.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: RONet.cpp 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: RONet.cpp 18774 2015-09-03 14:06:40Z behrisch $
///
// The router's network representation
/****************************************************************************/
@@ -457,13 +457,13 @@ RONet::checkFlows(SUMOTime time) {
void
RONet::createBulkRouteRequests(SUMOAbstractRouter<ROEdge, ROVehicle>& router, const SUMOTime time, const bool removeLoops, const std::map<std::string, ROVehicle*>& mmap) {
- std::map<const ROEdge*, std::vector<ROVehicle*> > bulkVehs;
+ std::map<const unsigned int, std::vector<ROVehicle*> > bulkVehs;
for (std::map<std::string, ROVehicle*>::const_iterator i = mmap.begin(); i != mmap.end(); ++i) {
ROVehicle* const vehicle = i->second;
if (vehicle->getDepart() < time) {
const RORoute* const stub = vehicle->getRouteDefinition()->getFirstRoute();
- bulkVehs[stub->getFirst()].push_back(vehicle);
- ROVehicle* const first = bulkVehs[stub->getFirst()].front();
+ bulkVehs[stub->getFirst()->getNumericalID()].push_back(vehicle);
+ ROVehicle* const first = bulkVehs[stub->getFirst()->getNumericalID()].front();
if (first->getMaxSpeed() != vehicle->getMaxSpeed()) {
WRITE_WARNING("Bulking different maximum speeds ('" + first->getID() + "' and '" + vehicle->getID() + "') may lead to suboptimal routes.");
}
@@ -473,7 +473,7 @@ RONet::createBulkRouteRequests(SUMOAbstractRouter<ROEdge, ROVehicle>& router, co
}
}
int workerIndex = 0;
- for (std::map<const ROEdge*, std::vector<ROVehicle*> >::const_iterator i = bulkVehs.begin(); i != bulkVehs.end(); ++i) {
+ for (std::map<const unsigned int, std::vector<ROVehicle*> >::const_iterator i = bulkVehs.begin(); i != bulkVehs.end(); ++i) {
#ifdef HAVE_FOX
if (myThreadPool.size() > 0) {
ROVehicle* const first = i->second.front();
diff --git a/src/router/RORouteDef.cpp b/src/router/RORouteDef.cpp
index 72442ef..6ae65b9 100644
--- a/src/router/RORouteDef.cpp
+++ b/src/router/RORouteDef.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Sept 2002
-/// @version $Id: RORouteDef.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: RORouteDef.cpp 18842 2015-09-17 10:43:51Z behrisch $
///
// Base class for a vehicle's route definition
/****************************************************************************/
@@ -204,7 +204,7 @@ RORouteDef::repairCurrentRoute(SUMOAbstractRouter<ROEdge, ROVehicle>& router,
} else {
WRITE_MESSAGE("Changing invalid destination edge '"
+ myAlternatives[0]->getEdgeVector().back()->getID()
- + "' to '" + (*i)->getID() + "' for vehicle '" + veh.getID() + "'.");
+ + "' to edge '" + (*i)->getID() + "' for vehicle '" + veh.getID() + "'.");
break;
}
}
@@ -236,7 +236,7 @@ RORouteDef::repairCurrentRoute(SUMOAbstractRouter<ROEdge, ROVehicle>& router,
} else {
if (myAlternatives[0]->getEdgeVector().size() > 2) {
// only inform if the input is (probably) not a trip
- WRITE_MESSAGE("Edge '" + (*(i - 1))->getID() + "' not connected to '" + (*i)->getID() + " for vehicle '" + veh.getID() + "'.");
+ WRITE_MESSAGE("Edge '" + (*(i - 1))->getID() + "' not connected to edge '" + (*i)->getID() + "' for vehicle '" + veh.getID() + "'.");
}
ConstROEdgeVector edges;
router.compute(newEdges.back(), *i, &veh, begin, edges);
diff --git a/src/sumo_main.cpp b/src/sumo_main.cpp
index 26574f5..a1686e8 100644
--- a/src/sumo_main.cpp
+++ b/src/sumo_main.cpp
@@ -6,7 +6,7 @@
/// @author Thimor Bohn
/// @author Michael Behrisch
/// @date Tue, 20 Nov 2001
-/// @version $Id: sumo_main.cpp 18486 2015-06-11 11:10:09Z behrisch $
+/// @version $Id: sumo_main.cpp 19315 2015-11-11 06:51:47Z namdre $
///
// Main for SUMO
/****************************************************************************/
@@ -141,10 +141,10 @@ main(int argc, char** argv) {
return 0;
}
XMLSubSys::setValidation(oc.getString("xml-validation"), oc.getString("xml-validation.net"));
- MsgHandler::initOutputOptions();
if (!MSFrame::checkOptions()) {
throw ProcessError();
}
+ MsgHandler::initOutputOptions();
RandHelper::initRandGlobal();
RandHelper::initRandGlobal(MSRouteHandler::getParsingRNG());
// load the net
diff --git a/src/traci-server/TraCIServerAPI_ArealDetector.cpp b/src/traci-server/TraCIServerAPI_ArealDetector.cpp
index 3a8045d..1c96cda 100644
--- a/src/traci-server/TraCIServerAPI_ArealDetector.cpp
+++ b/src/traci-server/TraCIServerAPI_ArealDetector.cpp
@@ -5,7 +5,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 03.02.2014
-/// @version $Id: TraCIServerAPI_ArealDetector.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: TraCIServerAPI_ArealDetector.cpp 18773 2015-09-03 13:28:21Z behrisch $
///
// APIs for getting/setting areal detector values via TraCI
/****************************************************************************/
@@ -85,7 +85,7 @@ TraCIServerAPI_ArealDetector::processGet(TraCIServer& server, tcpip::Storage& in
tempMsg.writeUnsignedByte(TYPE_INTEGER);
tempMsg.writeInt((int) ids.size());
} else {
- MSE2Collector* e2 = static_cast<MSE2Collector*>(MSNet::getInstance()->getDetectorControl().getTypedDetectors(SUMO_TAG_LANE_AREA_DETECTOR).get(id));
+ MSE2Collector* e2 = dynamic_cast<MSE2Collector*>(MSNet::getInstance()->getDetectorControl().getTypedDetectors(SUMO_TAG_LANE_AREA_DETECTOR).get(id));
if (e2 == 0) {
return server.writeErrorStatusCmd(CMD_GET_AREAL_DETECTOR_VARIABLE, "Areal detector '" + id + "' is not known", outputStorage);
}
diff --git a/src/traci-server/TraCIServerAPI_Edge.cpp b/src/traci-server/TraCIServerAPI_Edge.cpp
index fcf08bc..790db16 100644
--- a/src/traci-server/TraCIServerAPI_Edge.cpp
+++ b/src/traci-server/TraCIServerAPI_Edge.cpp
@@ -7,7 +7,7 @@
/// @author Laura Bieker
/// @author Mario Krumnow
/// @date Sept 2002
-/// @version $Id: TraCIServerAPI_Edge.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: TraCIServerAPI_Edge.cpp 19339 2015-11-12 14:12:09Z behrisch $
///
// APIs for getting/setting edge values via TraCI
/****************************************************************************/
@@ -474,9 +474,9 @@ TraCIServerAPI_Edge::getShape(const std::string& id, PositionVector& shape) {
return false;
}
const std::vector<MSLane*>& lanes = e->getLanes();
- shape.push_back(lanes.front()->getShape());
+ shape = lanes.front()->getShape();
if (lanes.size() > 1) {
- shape.push_back(lanes.back()->getShape().reverse());
+ copy(lanes.back()->getShape().begin(), lanes.back()->getShape().end(), back_inserter(shape));
}
return true;
}
diff --git a/src/traci-server/TraCIServerAPI_Lane.cpp b/src/traci-server/TraCIServerAPI_Lane.cpp
index 4cf763e..5401cf3 100644
--- a/src/traci-server/TraCIServerAPI_Lane.cpp
+++ b/src/traci-server/TraCIServerAPI_Lane.cpp
@@ -6,7 +6,7 @@
/// @author Laura Bieker
/// @author Mario Krumnow
/// @date 07.05.2009
-/// @version $Id: TraCIServerAPI_Lane.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: TraCIServerAPI_Lane.cpp 19339 2015-11-12 14:12:09Z behrisch $
///
// APIs for getting/setting lane values via TraCI
/****************************************************************************/
@@ -382,7 +382,7 @@ TraCIServerAPI_Lane::getShape(const std::string& id, PositionVector& shape) {
if (l == 0) {
return false;
}
- shape.push_back(l->getShape());
+ shape = l->getShape();
return true;
}
diff --git a/src/traci-server/TraCIServerAPI_Person.cpp b/src/traci-server/TraCIServerAPI_Person.cpp
index ce17dee..970b826 100644
--- a/src/traci-server/TraCIServerAPI_Person.cpp
+++ b/src/traci-server/TraCIServerAPI_Person.cpp
@@ -2,7 +2,7 @@
/// @file TraCIServerAPI_Person.cpp
/// @author Daniel Krajzewicz
/// @date 26.05.2014
-/// @version $Id: TraCIServerAPI_Person.cpp 18274 2015-04-22 15:00:44Z behrisch $
+/// @version $Id: TraCIServerAPI_Person.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// APIs for getting/setting person values via TraCI
/****************************************************************************/
@@ -103,7 +103,7 @@ TraCIServerAPI_Person::processGet(TraCIServer& server, tcpip::Storage& inputStor
break;
case VAR_ANGLE:
tempMsg.writeUnsignedByte(TYPE_DOUBLE);
- tempMsg.writeDouble(p->getAngle());
+ tempMsg.writeDouble(GeomHelper::naviDegree(p->getAngle()));
break;
case VAR_SPEED:
tempMsg.writeUnsignedByte(TYPE_DOUBLE);
diff --git a/src/traci-server/TraCIServerAPI_Polygon.cpp b/src/traci-server/TraCIServerAPI_Polygon.cpp
index 3bef495..97ba4cb 100644
--- a/src/traci-server/TraCIServerAPI_Polygon.cpp
+++ b/src/traci-server/TraCIServerAPI_Polygon.cpp
@@ -6,7 +6,7 @@
/// @author Jakob Erdmann
/// @author Christoph Sommer
/// @date Sept 2002
-/// @version $Id: TraCIServerAPI_Polygon.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: TraCIServerAPI_Polygon.cpp 19339 2015-11-12 14:12:09Z behrisch $
///
// APIs for getting/setting polygon values via TraCI
/****************************************************************************/
@@ -256,7 +256,7 @@ TraCIServerAPI_Polygon::getShape(const std::string& id, PositionVector& shape) {
if (poly == 0) {
return false;
}
- shape.push_back(poly->getShape());
+ shape = poly->getShape();
return true;
}
diff --git a/src/traci-server/TraCIServerAPI_TLS.cpp b/src/traci-server/TraCIServerAPI_TLS.cpp
index 501de97..61416d0 100644
--- a/src/traci-server/TraCIServerAPI_TLS.cpp
+++ b/src/traci-server/TraCIServerAPI_TLS.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 07.05.2009
-/// @version $Id: TraCIServerAPI_TLS.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: TraCIServerAPI_TLS.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// APIs for getting/setting traffic light values via TraCI
/****************************************************************************/
@@ -34,9 +34,10 @@
#ifndef NO_TRACI
#include "TraCIConstants.h"
-#include <microsim/traffic_lights/MSTLLogicControl.h>
#include <microsim/MSLane.h>
#include <microsim/MSEdge.h>
+#include <microsim/traffic_lights/MSTLLogicControl.h>
+#include <microsim/traffic_lights/MSSimpleTrafficLightLogic.h>
#include "TraCIServerAPI_TLS.h"
#ifdef CHECK_MEMORY_LEAKS
@@ -314,7 +315,8 @@ TraCIServerAPI_TLS::processSet(TraCIServer& server, tcpip::Storage& inputStorage
return server.writeErrorStatusCmd(CMD_SET_TL_VARIABLE, "The phase index must be given as an integer.", outputStorage);
}
if (index < 0 || vars.getActive()->getPhaseNumber() <= (unsigned int)index) {
- return server.writeErrorStatusCmd(CMD_SET_TL_VARIABLE, "The phase index is not in the allowed range.", outputStorage);
+ return server.writeErrorStatusCmd(CMD_SET_TL_VARIABLE, "The phase index " + toString(index) + " is not in the allowed range [0,"
+ + toString((int)vars.getActive()->getPhaseNumber() - 1) + "].", outputStorage);
}
const SUMOTime duration = vars.getActive()->getPhase(index).duration;
vars.getActive()->changeStepAndDuration(tlsControl, cTime, index, duration);
diff --git a/src/traci-server/TraCIServerAPI_Vehicle.cpp b/src/traci-server/TraCIServerAPI_Vehicle.cpp
index 4b55963..e0dfda9 100644
--- a/src/traci-server/TraCIServerAPI_Vehicle.cpp
+++ b/src/traci-server/TraCIServerAPI_Vehicle.cpp
@@ -8,7 +8,7 @@
/// @author Mario Krumnow
/// @author Jakob Erdmann
/// @date 07.05.2009
-/// @version $Id: TraCIServerAPI_Vehicle.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: TraCIServerAPI_Vehicle.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// APIs for getting/setting vehicle values via TraCI
/****************************************************************************/
@@ -157,7 +157,7 @@ TraCIServerAPI_Vehicle::processGet(TraCIServer& server, tcpip::Storage& inputSto
break;
case VAR_ANGLE:
tempMsg.writeUnsignedByte(TYPE_DOUBLE);
- tempMsg.writeDouble(visible ? v->getAngle() : INVALID_DOUBLE_VALUE);
+ tempMsg.writeDouble(visible ? GeomHelper::naviDegree(v->getAngle()) : INVALID_DOUBLE_VALUE);
break;
case VAR_ROAD_ID:
tempMsg.writeUnsignedByte(TYPE_STRING);
diff --git a/src/traci_testclient/TraCITestClient.cpp b/src/traci_testclient/TraCITestClient.cpp
index 2282a9a..77f2a8f 100644
--- a/src/traci_testclient/TraCITestClient.cpp
+++ b/src/traci_testclient/TraCITestClient.cpp
@@ -7,7 +7,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 2008/04/07
-/// @version $Id: TraCITestClient.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: TraCITestClient.cpp 19362 2015-11-17 10:21:50Z namdre $
///
/// A test execution class
/****************************************************************************/
@@ -45,6 +45,7 @@
#include <traci-server/TraCIConstants.h>
#include <utils/common/SUMOTime.h>
+#include <utils/common/ToString.h>
#include "TraCITestClient.h"
#ifdef CHECK_MEMORY_LEAKS
@@ -159,6 +160,9 @@ TraCITestClient::run(std::string fileName, int port, std::string host) {
std::string objID;
defFile >> domID >> varID >> objID;
commandSetValue(domID, varID, objID, defFile);
+ } else if (lineCommand.compare("testAPI") == 0) {
+ // call all native API methods
+ testAPI();
} else {
msg << "Error in definition file: " << lineCommand << " is not a valid command";
errorMsg(msg);
@@ -667,3 +671,15 @@ TraCITestClient::readAndReportTypeDependent(tcpip::Storage& inMsg, int valueData
}
+void
+TraCITestClient::testAPI() {
+ answerLog << "testAPI:\n";
+ answerLog << " edge:\n";
+ answerLog << " getIDList: " << joinToString(edge.getIDList(), " ") << "\n";
+ answerLog << " getIDCount: " << edge.getIDCount() << "\n";
+ //answerLog << " vehicle:\n";
+ //answerLog << " getIDList: " << joinToString(vehicle.getIDList(), " ") << "\n";
+ //answerLog << " getIDCount: " << vehicle.getIDCount() << "\n";
+ answerLog << " simulation:\n";
+ answerLog << " getCurrentTime: " << simulation.getCurrentTime() << "\n";
+}
diff --git a/src/traci_testclient/TraCITestClient.h b/src/traci_testclient/TraCITestClient.h
index 0d8fae1..93e7485 100644
--- a/src/traci_testclient/TraCITestClient.h
+++ b/src/traci_testclient/TraCITestClient.h
@@ -5,7 +5,7 @@
/// @author Axel Wegener
/// @author Michael Behrisch
/// @date 2008/04/07
-/// @version $Id: TraCITestClient.h 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: TraCITestClient.h 19362 2015-11-17 10:21:50Z namdre $
///
/// A test execution class
/****************************************************************************/
@@ -180,6 +180,9 @@ private:
/// @}
+ /// @brief call all API methods once
+ void testAPI();
+
private:
/// @brief The name of the file to write the results log into
std::string outputFileName;
diff --git a/src/utils/common/FileHelpers.cpp b/src/utils/common/FileHelpers.cpp
index a82ff40..0ed3cb2 100644
--- a/src/utils/common/FileHelpers.cpp
+++ b/src/utils/common/FileHelpers.cpp
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date Mon, 17 Dec 2001
-/// @version $Id: FileHelpers.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: FileHelpers.cpp 19506 2015-12-03 12:44:22Z behrisch $
///
// Functions for an easier usage of files
/****************************************************************************/
@@ -129,6 +129,9 @@ FileHelpers::checkForRelativity(const std::string& filename,
if (filename == "stderr" || filename == "STDERR") {
return "stderr";
}
+ if (filename == "nul" || filename == "NUL") {
+ return "/dev/null";
+ }
if (!isSocket(filename) && !isAbsolute(filename)) {
return getConfigurationRelative(basePath, filename);
}
diff --git a/src/utils/common/Named.h b/src/utils/common/Named.h
index c2d0f68..7860ef5 100644
--- a/src/utils/common/Named.h
+++ b/src/utils/common/Named.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date Sept 2002
-/// @version $Id: Named.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: Named.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Base class for objects which have an id.
/****************************************************************************/
@@ -53,6 +53,11 @@ public:
/// @brief Destructor
virtual ~Named() { }
+ /// @brief get an identifier for Named-like object which may be Null
+ template<class T>
+ static std::string getIDSecure(const T* obj, const std::string& fallBack = "NULL") {
+ return obj == 0 ? fallBack : obj->getID();
+ }
/** @brief Returns the id
* @return The stored id
diff --git a/src/utils/common/SUMOVehicleClass.cpp b/src/utils/common/SUMOVehicleClass.cpp
index bebdb28..4713483 100644
--- a/src/utils/common/SUMOVehicleClass.cpp
+++ b/src/utils/common/SUMOVehicleClass.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date 2006-01-24
-/// @version $Id: SUMOVehicleClass.cpp 18432 2015-05-21 13:04:55Z behrisch $
+/// @version $Id: SUMOVehicleClass.cpp 19079 2015-10-12 19:30:19Z namdre $
///
// Definitions of SUMO vehicle classes and helper functions
/****************************************************************************/
@@ -126,6 +126,7 @@ StringBijection<SUMOVehicleShape>::Entry sumoVehicleShapeStringInitializer[] = {
{"evehicle", SVS_E_VEHICLE},
{"ant", SVS_ANT},
{"ship", SVS_SHIP},
+ {"emergency", SVS_EMERGENCY},
{"", SVS_UNKNOWN}
};
diff --git a/src/utils/common/SUMOVehicleClass.h b/src/utils/common/SUMOVehicleClass.h
index e66239c..b6672dd 100644
--- a/src/utils/common/SUMOVehicleClass.h
+++ b/src/utils/common/SUMOVehicleClass.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date 2006-01-24
-/// @version $Id: SUMOVehicleClass.h 18610 2015-08-06 14:15:04Z namdre $
+/// @version $Id: SUMOVehicleClass.h 19079 2015-10-12 19:30:19Z namdre $
///
// Definitions of SUMO vehicle classes and helper functions
/****************************************************************************/
@@ -102,7 +102,9 @@ enum SUMOVehicleShape {
/// @brief render as a giant ant
SVS_ANT,
/// @brief render as a arbitrary ship
- SVS_SHIP
+ SVS_SHIP,
+ /// @brief render as an emergency vehicle
+ SVS_EMERGENCY
};
diff --git a/src/utils/common/StdDefs.cpp b/src/utils/common/StdDefs.cpp
index 0f0afb5..6fde561 100644
--- a/src/utils/common/StdDefs.cpp
+++ b/src/utils/common/StdDefs.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date 2014-01-07
-/// @version $Id: StdDefs.cpp 18403 2015-05-19 10:41:09Z namdre $
+/// @version $Id: StdDefs.cpp 19450 2015-11-27 13:20:08Z namdre $
///
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
@@ -47,6 +47,7 @@ const RGBColor SUMO_color_MINOR(51, 51, 51);
const RGBColor SUMO_color_EQUAL(128, 128, 128);
const RGBColor SUMO_color_STOP(128, 0, 128);
const RGBColor SUMO_color_ALLWAY_STOP(0, 0, 192);
+const RGBColor SUMO_color_ZIPPER(192, 128, 64);
const RGBColor SUMO_color_DEADEND(0, 0, 0);
const RGBColor& getLinkColor(const LinkState& ls) {
@@ -77,6 +78,8 @@ const RGBColor& getLinkColor(const LinkState& ls) {
return SUMO_color_STOP;
case LINKSTATE_ALLWAY_STOP:
return SUMO_color_ALLWAY_STOP;
+ case LINKSTATE_ZIPPER:
+ return SUMO_color_ZIPPER;
case LINKSTATE_DEADEND:
return SUMO_color_DEADEND;
default:
diff --git a/src/utils/common/StdDefs.h b/src/utils/common/StdDefs.h
index 15531d8..91d8f14 100644
--- a/src/utils/common/StdDefs.h
+++ b/src/utils/common/StdDefs.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Fri, 29.04.2005
-/// @version $Id: StdDefs.h 18403 2015-05-19 10:41:09Z namdre $
+/// @version $Id: StdDefs.h 19395 2015-11-20 12:22:20Z namdre $
///
//
/****************************************************************************/
@@ -38,6 +38,9 @@
/* avoiding compiler warning unreferenced parameter */
#define UNUSED_PARAMETER(x) ((void)(x))
+/// @brief the maximum number of connections across an intersection
+#define SUMO_MAX_CONNECTIONS 256
+
class RGBColor;
/* -------------------------------------------------------------------------
@@ -60,6 +63,8 @@ const RGBColor& getLinkColor(const LinkState& ls);
/// @brief attach some build flags to the version string
const std::string getBuildName(const std::string& version);
+
+
/* -------------------------------------------------------------------------
* templates for mathematical functions missing in some c++-implementations
* ----------------------------------------------------------------------- */
diff --git a/src/utils/foxtools/FXLinkLabel.cpp b/src/utils/foxtools/FXLinkLabel.cpp
index ad1ba50..8732ad6 100644
--- a/src/utils/foxtools/FXLinkLabel.cpp
+++ b/src/utils/foxtools/FXLinkLabel.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 2006-03-08
-/// @version $Id: FXLinkLabel.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: FXLinkLabel.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
//
/****************************************************************************/
@@ -42,7 +42,8 @@
#endif // CHECK_MEMORY_LEAKS
-FXint fxexecute(FXString link) {
+FXint
+FXLinkLabel::fxexecute(FXString link) {
#ifdef WIN32
FXString quoted = FXPath::enquote(link);
return (size_t)ShellExecute(NULL, "open", quoted.text(), NULL, NULL, SW_SHOW) > 32;
diff --git a/src/utils/foxtools/FXLinkLabel.h b/src/utils/foxtools/FXLinkLabel.h
index 4b02285..8334224 100644
--- a/src/utils/foxtools/FXLinkLabel.h
+++ b/src/utils/foxtools/FXLinkLabel.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date 2006-03-08
-/// @version $Id: FXLinkLabel.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: FXLinkLabel.h 19535 2015-12-05 13:47:18Z behrisch $
///
//
/****************************************************************************/
@@ -61,6 +61,9 @@ public:
// FOX messages
long onLeftBtnPress(FXObject*, FXSelector, void*);
long onTimer(FXObject*, FXSelector, void*);
+
+ // open the given link in a browser or pdf viewer
+ static FXint fxexecute(FXString link);
};
diff --git a/src/utils/foxtools/FXWorkerThread.h b/src/utils/foxtools/FXWorkerThread.h
index 72b303a..f0c57b9 100644
--- a/src/utils/foxtools/FXWorkerThread.h
+++ b/src/utils/foxtools/FXWorkerThread.h
@@ -2,7 +2,7 @@
/// @file FXWorkerThread.h
/// @author Michael Behrisch
/// @date 2014-07-13
-/// @version $Id: FXWorkerThread.h 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: FXWorkerThread.h 18913 2015-09-23 21:10:49Z behrisch $
///
// A thread class together with a pool and a task for parallelized computation
/****************************************************************************/
@@ -92,7 +92,7 @@ public:
*
* @param[in] numThreads the number of threads to create
*/
- Pool(int numThreads = 0) : myRunningIndex(0), myNumFinished(0) {
+ Pool(int numThreads = 0) : myPoolMutex(true), myRunningIndex(0), myNumFinished(0) {
while (numThreads > 0) {
new FXWorkerThread(*this);
numThreads--;
diff --git a/src/utils/geom/Boundary.cpp b/src/utils/geom/Boundary.cpp
index 7823649..f83c0fa 100644
--- a/src/utils/geom/Boundary.cpp
+++ b/src/utils/geom/Boundary.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: Boundary.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: Boundary.cpp 19218 2015-10-29 13:08:18Z behrisch $
///
// A class that stores the 2D geometrical boundary
/****************************************************************************/
@@ -175,14 +175,15 @@ Boundary::overlapsWith(const AbstractPoly& p, SUMOReal offset) const {
bool
Boundary::crosses(const Position& p1, const Position& p2) const {
+ const PositionVector line(p1, p2);
return
- GeomHelper::intersects(p1, p2, Position(myXmax, myYmax), Position(myXmin, myYmax))
+ line.intersects(Position(myXmax, myYmax), Position(myXmin, myYmax))
||
- GeomHelper::intersects(p1, p2, Position(myXmin, myYmax), Position(myXmin, myYmin))
+ line.intersects(Position(myXmin, myYmax), Position(myXmin, myYmin))
||
- GeomHelper::intersects(p1, p2, Position(myXmin, myYmin), Position(myXmax, myYmin))
+ line.intersects(Position(myXmin, myYmin), Position(myXmax, myYmin))
||
- GeomHelper::intersects(p1, p2, Position(myXmax, myYmin), Position(myXmax, myYmax));
+ line.intersects(Position(myXmax, myYmin), Position(myXmax, myYmax));
}
diff --git a/src/utils/geom/GeoConvHelper.cpp b/src/utils/geom/GeoConvHelper.cpp
index 83d2bc6..1e7e9c6 100644
--- a/src/utils/geom/GeoConvHelper.cpp
+++ b/src/utils/geom/GeoConvHelper.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 2006-08-01
-/// @version $Id: GeoConvHelper.cpp 18171 2015-03-27 14:50:44Z behrisch $
+/// @version $Id: GeoConvHelper.cpp 19403 2015-11-21 22:35:45Z namdre $
///
// static methods for processing the coordinates conversion for the current net
/****************************************************************************/
@@ -412,7 +412,7 @@ GeoConvHelper::getProjString() const {
void
-GeoConvHelper::computeFinal() {
+GeoConvHelper::computeFinal(bool lefthand) {
if (myNumLoaded == 0) {
myFinal = myProcessing;
} else {
@@ -425,6 +425,10 @@ GeoConvHelper::computeFinal() {
// the new boundary (updated during loading)
myProcessing.getConvBoundary());
}
+ if (lefthand) {
+ myFinal.myOffset.mul(1, -1);
+ myFinal.myConvBoundary.flipY();
+ }
}
diff --git a/src/utils/geom/GeoConvHelper.h b/src/utils/geom/GeoConvHelper.h
index b449bc6..1a4713a 100644
--- a/src/utils/geom/GeoConvHelper.h
+++ b/src/utils/geom/GeoConvHelper.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 2006-08-01
-/// @version $Id: GeoConvHelper.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GeoConvHelper.h 19403 2015-11-21 22:35:45Z namdre $
///
// static methods for processing the coordinates conversion for the current net
/****************************************************************************/
@@ -108,7 +108,7 @@ public:
/** @brief compute the location attributes which will be used for output
* based on the loaded location data, the given options and the transformations applied during processing
*/
- static void computeFinal();
+ static void computeFinal(bool lefthand = false);
/** @brief the coordinate transformation for writing the location element
diff --git a/src/utils/geom/GeomHelper.cpp b/src/utils/geom/GeomHelper.cpp
index 6f9f313..3031df3 100644
--- a/src/utils/geom/GeomHelper.cpp
+++ b/src/utils/geom/GeomHelper.cpp
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GeomHelper.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: GeomHelper.cpp 19250 2015-11-03 17:59:08Z behrisch $
///
// Some static methods performing geometrical operations
/****************************************************************************/
@@ -37,7 +37,6 @@
#include <iostream>
#include <utils/common/StdDefs.h>
#include <utils/common/ToString.h>
-#include <utils/geom/Line.h>
#include "Boundary.h"
#include "GeomHelper.h"
@@ -54,225 +53,65 @@ const SUMOReal GeomHelper::INVALID_OFFSET = -1;
// ===========================================================================
// method definitions
// ===========================================================================
-bool
-GeomHelper::intersects(const SUMOReal x1, const SUMOReal y1,
- const SUMOReal x2, const SUMOReal y2,
- const SUMOReal x3, const SUMOReal y3,
- const SUMOReal x4, const SUMOReal y4,
- SUMOReal* x, SUMOReal* y, SUMOReal* mu) {
- const SUMOReal eps = std::numeric_limits<SUMOReal>::epsilon();
- const double denominator = (y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1);
- const double numera = (x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3);
- const double numerb = (x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3);
- /* Are the lines coincident? */
- if (fabs(numera) < eps && fabs(numerb) < eps && fabs(denominator) < eps) {
- SUMOReal a1;
- SUMOReal a2;
- SUMOReal a3;
- SUMOReal a4;
- SUMOReal a = -1e12;
- if (x1 != x2) {
- a1 = x1 < x2 ? x1 : x2;
- a2 = x1 < x2 ? x2 : x1;
- a3 = x3 < x4 ? x3 : x4;
- a4 = x3 < x4 ? x4 : x3;
- } else {
- a1 = y1 < y2 ? y1 : y2;
- a2 = y1 < y2 ? y2 : y1;
- a3 = y3 < y4 ? y3 : y4;
- a4 = y3 < y4 ? y4 : y3;
- }
- if (a1 <= a3 && a3 <= a2) {
- if (a4 < a2) {
- a = (a3 + a4) / 2;
- } else {
- a = (a2 + a3) / 2;
- }
- }
- if (a3 <= a1 && a1 <= a4) {
- if (a2 < a4) {
- a = (a1 + a2) / 2;
- } else {
- a = (a1 + a4) / 2;
- }
- }
- if (a != -1e12) {
- if (x != 0) {
- if (x1 != x2) {
- *mu = (a - x1) / (x2 - x1);
- *x = a;
- *y = y1 + (*mu) * (y2 - y1);
- } else {
- *x = x1;
- *y = a;
- if (y2 == y1) {
- *mu = 0;
- } else {
- *mu = (a - y1) / (y2 - y1);
- }
- }
- }
- return true;
- }
- return false;
- }
- /* Are the lines parallel */
- if (fabs(denominator) < eps) {
- return false;
- }
- /* Is the intersection along the segments */
- double mua = numera / denominator;
- /* reduce rounding errors for lines ending in the same point */
- if (fabs(x2 - x4) < eps && fabs(y2 - y4) < eps) {
- mua = 1.;
- } else {
- const double mub = numerb / denominator;
- if (mua < 0 || mua > 1 || mub < 0 || mub > 1) {
- return false;
- }
- }
- if (x != 0) {
- *x = x1 + mua * (x2 - x1);
- *y = y1 + mua * (y2 - y1);
- *mu = mua;
- }
- return true;
-}
-
-
-
-bool
-GeomHelper::intersects(const Position& p11, const Position& p12,
- const Position& p21, const Position& p22) {
- return intersects(p11.x(), p11.y(), p12.x(), p12.y(),
- p21.x(), p21.y(), p22.x(), p22.y(), 0, 0, 0);
-}
-
-
-bool
-GeomHelper::pointOnLine(const Position& p, const Position& from, const Position& to) {
- if (p.x() >= MIN2(from.x(), to.x()) && p.x() <= MAX2(from.x(), to.x()) &&
- p.y() >= MIN2(from.y(), to.y()) && p.y() <= MAX2(from.y(), to.y())) {
- return true;
- }
- return false;
-}
-
void
-GeomHelper::FindLineCircleIntersections(const Position& c, SUMOReal radius, const Position& p1, const Position& p2,
+GeomHelper::findLineCircleIntersections(const Position& c, SUMOReal radius, const Position& p1, const Position& p2,
std::vector<SUMOReal>& into) {
- SUMOReal dx = p2.x() - p1.x();
- SUMOReal dy = p2.y() - p1.y();
+ const SUMOReal dx = p2.x() - p1.x();
+ const SUMOReal dy = p2.y() - p1.y();
- SUMOReal A = dx * dx + dy * dy;
- SUMOReal B = 2 * (dx * (p1.x() - c.x()) + dy * (p1.y() - c.y()));
- SUMOReal C = (p1.x() - c.x()) * (p1.x() - c.x()) + (p1.y() - c.y()) * (p1.y() - c.y()) - radius * radius;
+ const SUMOReal A = dx * dx + dy * dy;
+ const SUMOReal B = 2 * (dx * (p1.x() - c.x()) + dy * (p1.y() - c.y()));
+ const SUMOReal C = (p1.x() - c.x()) * (p1.x() - c.x()) + (p1.y() - c.y()) * (p1.y() - c.y()) - radius * radius;
- SUMOReal det = B * B - 4 * A * C;
+ const SUMOReal det = B * B - 4 * A * C;
if ((A <= 0.0000001) || (det < 0)) {
// No real solutions.
return;
- } else if (det == 0) {
+ }
+ if (det == 0) {
// One solution.
- SUMOReal t = -B / (2 * A);
- Position intersection(p1.x() + t * dx, p1.y() + t * dy);
- if (GeomHelper::pointOnLine(intersection, p1, p2)) {
+ const SUMOReal t = -B / (2 * A);
+ if (t >= 0. && t <= 1.) {
into.push_back(t);
}
- return;
} else {
// Two solutions.
- SUMOReal t = (float)((-B + sqrt(det)) / (2 * A));
+ const SUMOReal t = (SUMOReal)((-B + sqrt(det)) / (2 * A));
Position intersection(p1.x() + t * dx, p1.y() + t * dy);
- if (GeomHelper::pointOnLine(intersection, p1, p2)) {
+ if (t >= 0. && t <= 1.) {
into.push_back(t);
}
- t = (float)((-B - sqrt(det)) / (2 * A));
- intersection.set(p1.x() + t * dx, p1.y() + t * dy);
- if (GeomHelper::pointOnLine(intersection, p1, p2)) {
- into.push_back(t);
+ const SUMOReal t2 = (SUMOReal)((-B - sqrt(det)) / (2 * A));
+ if (t2 >= 0. && t2 <= 1.) {
+ into.push_back(t2);
}
- return;
}
}
-
-Position
-GeomHelper::intersection_position2D(const Position& p11,
- const Position& p12,
- const Position& p21,
- const Position& p22) {
- SUMOReal x, y, m;
- if (intersects(p11.x(), p11.y(), p12.x(), p12.y(),
- p21.x(), p21.y(), p22.x(), p22.y(), &x, &y, &m)) {
- // @todo calculate better "average" z value
- return Position(x, y, p11.z() + m * (p12.z() - p11.z()));
- }
- return Position::INVALID;
-}
-
-
-
-/*
- Return the angle between two vectors on a plane
- The angle is from vector 1 to vector 2, positive anticlockwise
- The result is between -pi -> pi
-*/
SUMOReal
-GeomHelper::Angle2D(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2) {
- SUMOReal dtheta = atan2(y2, x2) - atan2(y1, x1);
- while (dtheta > (SUMOReal) M_PI) {
- dtheta -= (SUMOReal)(2.0 * M_PI);
- }
- while (dtheta < (SUMOReal) - M_PI) {
- dtheta += (SUMOReal)(2.0 * M_PI);
- }
- return dtheta;
-}
-
-
-Position
-GeomHelper::interpolate(const Position& p1,
- const Position& p2, SUMOReal length) {
- const SUMOReal factor = length / p1.distanceTo(p2);
- return p1 + (p2 - p1) * factor;
-}
-
-
-Position
-GeomHelper::extrapolate_first(const Position& p1,
- const Position& p2, SUMOReal length) {
- const SUMOReal factor = length / p1.distanceTo(p2);
- return p1 - (p2 - p1) * factor;
-}
-
-
-Position
-GeomHelper::extrapolate_second(const Position& p1,
- const Position& p2, SUMOReal length) {
- const SUMOReal factor = length / p1.distanceTo(p2);
- return p2 - (p1 - p2) * factor;
+GeomHelper::angle2D(const Position& p1, const Position& p2) {
+ return angleDiff(atan2(p1.y(), p1.x()), atan2(p2.y(), p2.x()));
}
SUMOReal
-GeomHelper::nearest_offset_on_line_to_point2D(const Position& LineStart,
- const Position& LineEnd,
- const Position& Point, bool perpendicular) {
- const SUMOReal lineLength2D = LineStart.distanceTo2D(LineEnd);
+GeomHelper::nearest_offset_on_line_to_point2D(const Position& lineStart,
+ const Position& lineEnd,
+ const Position& p, bool perpendicular) {
+ const SUMOReal lineLength2D = lineStart.distanceTo2D(lineEnd);
if (lineLength2D == 0.0f) {
return 0.0f;
} else {
// scalar product equals length of orthogonal projection times length of vector being projected onto
// dividing the scalar product by the square of the distance gives the relative position
- const SUMOReal u = (((Point.x() - LineStart.x()) * (LineEnd.x() - LineStart.x())) +
- ((Point.y() - LineStart.y()) * (LineEnd.y() - LineStart.y()))
+ const SUMOReal u = (((p.x() - lineStart.x()) * (lineEnd.x() - lineStart.x())) +
+ ((p.y() - lineStart.y()) * (lineEnd.y() - lineStart.y()))
) / (lineLength2D * lineLength2D);
if (u < 0.0f || u > 1.0f) { // closest point does not fall within the line segment
if (perpendicular) {
- return -1;
+ return INVALID_OFFSET;
}
if (u < 0.0f) {
return 0.0f;
@@ -284,103 +123,31 @@ GeomHelper::nearest_offset_on_line_to_point2D(const Position& LineStart,
}
-SUMOReal
-GeomHelper::distancePointLine(const Position& point,
- const Position& lineStart,
- const Position& lineEnd) {
- const SUMOReal lineLengthSquared = lineStart.distanceSquaredTo(lineEnd);
- if (lineLengthSquared == 0.0f) {
- return point.distanceTo(lineStart);
- } else {
- // scalar product equals length of orthogonal projection times length of vector being projected onto
- // dividing the scalar product by the square of the distance gives the relative position
- SUMOReal u = (((point.x() - lineStart.x()) * (lineEnd.x() - lineStart.x())) +
- ((point.y() - lineStart.y()) * (lineEnd.y() - lineStart.y()))
- ) / lineLengthSquared;
- if (u < 0.0f || u > 1.0f) {
- return -1; // closest point does not fall within the line segment
- }
- Position intersection(
- lineStart.x() + u * (lineEnd.x() - lineStart.x()),
- lineStart.y() + u * (lineEnd.y() - lineStart.y()));
- return point.distanceTo(intersection);
- }
-}
-
-
-SUMOReal
-GeomHelper::closestDistancePointLine2D(const Position& point,
- const Position& lineStart,
- const Position& lineEnd,
- Position& outIntersection) {
- const SUMOReal length = nearest_offset_on_line_to_point2D(lineStart, lineEnd, point, false);
- outIntersection.set(Line(lineStart, lineEnd).getPositionAtDistance2D(length));
- return point.distanceTo2D(outIntersection);
-}
-
-
-
-Position
-GeomHelper::transfer_to_side(Position& p,
- const Position& lineBeg,
- const Position& lineEnd,
- SUMOReal amount) {
- const SUMOReal dx = lineBeg.x() - lineEnd.x();
- const SUMOReal dy = lineBeg.y() - lineEnd.y();
- const SUMOReal length = sqrt(dx * dx + dy * dy);
- if (length > 0) {
- p.add(dy * amount / length, -dx * amount / length);
- }
- return p;
-}
-
-
-
Position
GeomHelper::crossPoint(const Boundary& b, const PositionVector& v) {
if (v.intersects(Position(b.xmin(), b.ymin()), Position(b.xmin(), b.ymax()))) {
- return v.intersectsAtPoint(
+ return v.intersectionPosition2D(
Position(b.xmin(), b.ymin()),
Position(b.xmin(), b.ymax()));
}
if (v.intersects(Position(b.xmax(), b.ymin()), Position(b.xmax(), b.ymax()))) {
- return v.intersectsAtPoint(
+ return v.intersectionPosition2D(
Position(b.xmax(), b.ymin()),
Position(b.xmax(), b.ymax()));
}
if (v.intersects(Position(b.xmin(), b.ymin()), Position(b.xmax(), b.ymin()))) {
- return v.intersectsAtPoint(
+ return v.intersectionPosition2D(
Position(b.xmin(), b.ymin()),
Position(b.xmax(), b.ymin()));
}
if (v.intersects(Position(b.xmin(), b.ymax()), Position(b.xmax(), b.ymax()))) {
- return v.intersectsAtPoint(
+ return v.intersectionPosition2D(
Position(b.xmin(), b.ymax()),
Position(b.xmax(), b.ymax()));
}
throw 1;
}
-std::pair<SUMOReal, SUMOReal>
-GeomHelper::getNormal90D_CW(const Position& beg,
- const Position& end,
- SUMOReal wanted_offset) {
- return getNormal90D_CW(beg, end, beg.distanceTo2D(end), wanted_offset);
-}
-
-
-std::pair<SUMOReal, SUMOReal>
-GeomHelper::getNormal90D_CW(const Position& beg,
- const Position& end,
- SUMOReal length, SUMOReal wanted_offset) {
- if (beg == end) {
- throw InvalidArgument("same points at " + toString(beg));
- }
- return std::pair<SUMOReal, SUMOReal>
- ((beg.y() - end.y()) * wanted_offset / length, (end.x() - beg.x()) * wanted_offset / length);
-}
-
-
SUMOReal
GeomHelper::getCCWAngleDiff(SUMOReal angle1, SUMOReal angle2) {
SUMOReal v = angle2 - angle1;
@@ -408,11 +175,52 @@ GeomHelper::getMinAngleDiff(SUMOReal angle1, SUMOReal angle2) {
SUMOReal
-GeomHelper::getMaxAngleDiff(SUMOReal angle1, SUMOReal angle2) {
- return MAX2(getCWAngleDiff(angle1, angle2), getCCWAngleDiff(angle1, angle2));
+GeomHelper::angleDiff(const SUMOReal angle1, const SUMOReal angle2) {
+ SUMOReal dtheta = angle2 - angle1;
+ while (dtheta > (SUMOReal) M_PI) {
+ dtheta -= (SUMOReal)(2.0 * M_PI);
+ }
+ while (dtheta < (SUMOReal) - M_PI) {
+ dtheta += (SUMOReal)(2.0 * M_PI);
+ }
+ return dtheta;
}
+SUMOReal
+GeomHelper::naviDegree(const SUMOReal angle) {
+ SUMOReal degree = RAD2DEG(M_PI / 2. - angle);
+ while (degree >= 360.) {
+ degree -= 360.;
+ }
+ while (degree < 0.) {
+ degree += 360.;
+ }
+ return degree;
+}
+
+
+SUMOReal
+GeomHelper::legacyDegree(const SUMOReal angle, const bool positive) {
+ SUMOReal degree = -RAD2DEG(M_PI / 2. + angle);
+ if (positive) {
+ while (degree >= 360.) {
+ degree -= 360.;
+ }
+ while (degree < 0.) {
+ degree += 360.;
+ }
+ } else {
+ while (degree >= 180.) {
+ degree -= 360.;
+ }
+ while (degree < -180.) {
+ degree += 360.;
+ }
+ }
+ return degree;
+}
+
/****************************************************************************/
diff --git a/src/utils/geom/GeomHelper.h b/src/utils/geom/GeomHelper.h
index dc48396..d7e27ff 100644
--- a/src/utils/geom/GeomHelper.h
+++ b/src/utils/geom/GeomHelper.h
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GeomHelper.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GeomHelper.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Some static methods performing geometrical operations
/****************************************************************************/
@@ -58,26 +58,6 @@ public:
/// @brief a value to signify offsets outside the range of [0, Line.length()]
static const SUMOReal INVALID_OFFSET;
- /** @brief return whether given lines intersect
- * @param[in] p11 The begin position of the first line
- * @param[in] p12 The end position of the first line
- * @param[in] p21 The begin position of the second line
- * @param[in] p22 The end position of the second line
- * @return Whether both lines intersect
- */
- static bool intersects(const Position& p11, const Position& p12,
- const Position& p21, const Position& p22);
-
-
- /** @brief Returns whether the given point lies on the given line
- * @param[in] p The position
- * @param[in] from The begin position of the line
- * @param[in] to The end position of the line
- * @return Whether the point lies on the line
- */
- static bool pointOnLine(const Position& p, const Position& from, const Position& to);
-
-
/** @brief Returns the positions the given circle is crossed by the given line
* @param[in] c The center position of the circle
* @param[in] radius The radius of the circle
@@ -87,59 +67,23 @@ public:
* @see http://blog.csharphelper.com/2010/03/28/determine-where-a-line-intersects-a-circle-in-c.aspx
* @see http://gamedev.stackexchange.com/questions/18333/circle-line-collision-detection-problem (jazzdawg)
*/
- static void FindLineCircleIntersections(const Position& c, SUMOReal radius, const Position& p1, const Position& p2,
+ static void findLineCircleIntersections(const Position& c, SUMOReal radius, const Position& p1, const Position& p2,
std::vector<SUMOReal>& into);
- /** @brief returns the intersection point
- * of the (infinite) lines p11,p12 and p21,p22.
- * If the given lines are parallel the result will contain NAN-values
- */
- static Position intersection_position2D(
- const Position& p11, const Position& p12,
- const Position& p21, const Position& p22);
-
- static SUMOReal Angle2D(SUMOReal x1, SUMOReal y1, SUMOReal x2, SUMOReal y2);
-
- static Position interpolate(const Position& p1,
- const Position& p2, SUMOReal length);
-
- static Position extrapolate_first(const Position& p1,
- const Position& p2, SUMOReal length);
-
- static Position extrapolate_second(const Position& p1,
- const Position& p2, SUMOReal length);
+ /** @brief Returns the angle between two vectors on a plane
+ The angle is from vector 1 to vector 2, positive anticlockwise
+ The result is between -pi and pi
+ */
+ static SUMOReal angle2D(const Position& p1, const Position& p2);
static SUMOReal nearest_offset_on_line_to_point2D(
- const Position& l1, const Position& l2,
+ const Position& lineStart, const Position& lineEnd,
const Position& p, bool perpendicular = true);
- /** by Damian Coventry */
- static SUMOReal distancePointLine(const Position& point,
- const Position& lineStart, const Position& lineEnd);
-
- /**
- * Return the distance from point to line as well as the intersection point.
- * If intersection does not lie within the line segment, the start or end point of the segment is returned
- */
- static SUMOReal closestDistancePointLine2D(const Position& point,
- const Position& lineStart, const Position& lineEnd,
- Position& outIntersection);
-
- static Position transfer_to_side(Position& p,
- const Position& lineBeg, const Position& lineEnd,
- SUMOReal amount);
-
-
static Position crossPoint(const Boundary& b,
const PositionVector& v);
- static std::pair<SUMOReal, SUMOReal> getNormal90D_CW(const Position& beg,
- const Position& end, SUMOReal length, SUMOReal wanted_offset);
-
- static std::pair<SUMOReal, SUMOReal> getNormal90D_CW(const Position& beg,
- const Position& end, SUMOReal wanted_offset);
-
/** @brief Returns the distance of second angle from first angle counter-clockwise
* @param[in] angle1 The first angle
* @param[in] angle2 The second angle
@@ -164,22 +108,33 @@ public:
static SUMOReal getMinAngleDiff(SUMOReal angle1, SUMOReal angle2);
- /** @brief Returns the maximum distance (clockwise/counter-clockwise) between both angles
+ /** @brief Returns the difference of the second angle to the first angle in radiants
+ *
+ * The results are always between -pi and pi.
+ * Positive values denote that the second angle is counter clockwise closer, negative values mean
+ * it is clockwise closer.
* @param[in] angle1 The first angle
* @param[in] angle2 The second angle
- * @return The maximum distance between both angles
+ * @return angle starting from first to second angle
*/
- static SUMOReal getMaxAngleDiff(SUMOReal angle1, SUMOReal angle2);
+ static SUMOReal angleDiff(const SUMOReal angle1, const SUMOReal angle2);
-private:
- /** @brief return whether the line segments defined by Line (x1,y1),(x2,y2)
- * and Line (x3,y3),(x4,y4) intersect
+ /** Converts an angle from mathematical radians where 0 is to the right and positive angles
+ * are counterclockwise to navigational degrees where 0 is up and positive means clockwise.
+ * The result is always in the range [0, 360).
+ * @param[in] angle The angle in radians to convert
+ * @return the angle in degrees
+ */
+ static SUMOReal naviDegree(const SUMOReal angle);
+
+ /** Converts an angle from mathematical radians where 0 is to the right and positive angles
+ * are counterclockwise to the legacy degrees used in sumo where 0 is down and positive means clockwise.
+ * If positive is true the result is in the range [0, 360), otherwise in the range [-180, 180).
+ * @param[in] angle The angle in radians to convert
+ * @return the angle in degrees
*/
- static bool intersects(
- const SUMOReal x1, const SUMOReal y1, const SUMOReal x2, const SUMOReal y2,
- const SUMOReal x3, const SUMOReal y3, const SUMOReal x4, const SUMOReal y4,
- SUMOReal* x, SUMOReal* y, SUMOReal* mu);
+ static SUMOReal legacyDegree(const SUMOReal angle, const bool positive = false);
};
diff --git a/src/utils/geom/Line.cpp b/src/utils/geom/Line.cpp
deleted file mode 100644
index 07bf0ab..0000000
--- a/src/utils/geom/Line.cpp
+++ /dev/null
@@ -1,254 +0,0 @@
-/****************************************************************************/
-/// @file Line.cpp
-/// @author Daniel Krajzewicz
-/// @author Jakob Erdmann
-/// @author Michael Behrisch
-/// @author Laura Bieker
-/// @date 2003-08-14
-/// @version $Id: Line.cpp 18095 2015-03-17 09:39:00Z behrisch $
-///
-// }
-/****************************************************************************/
-// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
-// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
-/****************************************************************************/
-//
-// This file is part of SUMO.
-// SUMO is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-/****************************************************************************/
-
-
-// ===========================================================================
-// included modules
-// ===========================================================================
-
-#ifdef _MSC_VER
-#include <windows_config.h>
-#else
-#include <config.h>
-#endif
-
-#include "Position.h"
-#include "Line.h"
-#include "GeomHelper.h"
-#include <utils/common/ToString.h>
-
-#ifdef CHECK_MEMORY_LEAKS
-#include <foreign/nvwa/debug_new.h>
-#endif // CHECK_MEMORY_LEAKS
-
-
-// ===========================================================================
-// member method definitions
-// ===========================================================================
-
-Line::Line() {}
-
-
-Line::Line(const Position& p1, const Position& p2)
- : myP1(p1), myP2(p2) {}
-
-
-Line::~Line() {}
-
-
-void
-Line::extrapolateBy(SUMOReal length) {
- SUMOReal factor = length / myP1.distanceTo(myP2);
- Position offset = (myP2 - myP1) * factor;
- myP1.sub(offset);
- myP2.add(offset);
-}
-
-
-void
-Line::extrapolateBy2D(SUMOReal length) {
- SUMOReal factor = length / myP1.distanceTo2D(myP2);
- Position offset = (myP2 - myP1) * factor;
- myP1.sub(offset);
- myP2.add(offset);
-}
-
-
-void
-Line::extrapolateFirstBy(SUMOReal length) {
- myP1 = GeomHelper::extrapolate_first(myP1, myP2, length);
-}
-
-
-void
-Line::extrapolateSecondBy(SUMOReal length) {
- myP2 = GeomHelper::extrapolate_second(myP1, myP2, length);
-}
-
-const Position&
-Line::p1() const {
- return myP1;
-}
-
-
-const Position&
-Line::p2() const {
- return myP2;
-}
-
-
-Position
-Line::getPositionAtDistance(SUMOReal offset) const {
- const SUMOReal length = myP1.distanceTo(myP2);
- if (length == 0) {
- if (offset != 0) {
- throw InvalidArgument("Invalid offset " + toString(offset) + " for Line with length " + toString(length));;
- }
- return myP1;
- }
- return myP1 + (myP2 - myP1) * (offset / length);
-}
-
-
-Position
-Line::getPositionAtDistance2D(SUMOReal offset) const {
- const SUMOReal length = myP1.distanceTo2D(myP2);
- if (length == 0) {
- if (offset != 0) {
- throw InvalidArgument("Invalid offset " + toString(offset) + " for Line with length " + toString(length));;
- }
- return myP1;
- }
- return myP1 + (myP2 - myP1) * (offset / length);
-}
-
-
-void
-Line::move2side(SUMOReal amount) {
- std::pair<SUMOReal, SUMOReal> p = GeomHelper::getNormal90D_CW(myP1, myP2, amount);
- myP1.add(p.first, p.second);
- myP2.add(p.first, p.second);
-}
-
-
-std::vector<SUMOReal>
-Line::intersectsAtLengths2D(const PositionVector& v) {
- PositionVector p = v.intersectionPoints2D(*this);
- std::vector<SUMOReal> ret;
- for (size_t i = 0; i < p.size(); i++) {
- ret.push_back(myP1.distanceTo2D(p[int(i)]));
- }
- return ret;
-}
-
-
-SUMOReal
-Line::atan2Angle() const {
- return atan2(myP1.x() - myP2.x(), myP1.y() - myP2.y());
-}
-
-
-SUMOReal
-Line::atan2DegreeAngle() const {
- return RAD2DEG(atan2(myP1.x() - myP2.x(), myP1.y() - myP2.y()));
-}
-
-
-SUMOReal
-Line::atan2PositiveAngle() const {
- SUMOReal angle = atan2Angle();
- if (angle < 0) {
- angle = (SUMOReal) M_PI * (SUMOReal) 2.0 + angle;
- }
- return angle;
-}
-
-
-SUMOReal
-Line::atan2DegreeSlope() const {
- return RAD2DEG(atan2(myP2.z() - myP1.z(), myP1.distanceTo2D(myP2)));
-}
-
-
-Position
-Line::intersectsAt(const Line& l) const {
- return GeomHelper::intersection_position2D(myP1, myP2, l.myP1, l.myP2);
-}
-
-
-bool
-Line::intersects(const Line& l) const {
- return GeomHelper::intersects(myP1, myP2, l.myP1, l.myP2);
-}
-
-
-SUMOReal
-Line::length2D() const {
- return myP1.distanceTo2D(myP2);
-}
-
-
-SUMOReal
-Line::length() const {
- return myP1.distanceTo(myP2);
-}
-
-
-void
-Line::add(SUMOReal x, SUMOReal y) {
- myP1.add(x, y);
- myP2.add(x, y);
-}
-
-
-void
-Line::add(const Position& p) {
- myP1.add(p.x(), p.y(), p.z());
- myP2.add(p.x(), p.y(), p.z());
-}
-
-
-void
-Line::sub(SUMOReal x, SUMOReal y) {
- myP1.sub(x, y);
- myP2.sub(x, y);
-}
-
-
-
-Line&
-Line::reverse() {
- Position tmp(myP1);
- myP1 = myP2;
- myP2 = tmp;
- return *this;
-}
-
-
-SUMOReal
-Line::intersectsAtLength2D(const Line& v) {
- Position pos =
- GeomHelper::intersection_position2D(myP1, myP2, v.myP1, v.myP2);
- return GeomHelper::nearest_offset_on_line_to_point2D(myP1, myP2, pos);
-}
-
-
-void
-Line::rotateAtP1(SUMOReal rot) {
- Position p = myP2;
- p.sub(myP1);
- p.reshiftRotate(0, 0, rot);
- p.add(myP1);
- myP2 = p;
-}
-
-
-std::ostream&
-operator<<(std::ostream& os, const Line& line) {
- os << line.myP1 << " " << line.myP2;
- return os;
-}
-
-
-
-/****************************************************************************/
diff --git a/src/utils/geom/Line.h b/src/utils/geom/Line.h
deleted file mode 100644
index aefccaf..0000000
--- a/src/utils/geom/Line.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************/
-/// @file Line.h
-/// @author Daniel Krajzewicz
-/// @author Jakob Erdmann
-/// @author Michael Behrisch
-/// @date Fri, 29.04.2005
-/// @version $Id: Line.h 18095 2015-03-17 09:39:00Z behrisch $
-///
-//
-/****************************************************************************/
-// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
-// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
-/****************************************************************************/
-//
-// This file is part of SUMO.
-// SUMO is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-/****************************************************************************/
-#ifndef Line_h
-#define Line_h
-
-
-// ===========================================================================
-// included modules
-// ===========================================================================
-#ifdef _MSC_VER
-#include <windows_config.h>
-#else
-#include <config.h>
-#endif
-
-#include "Position.h"
-#include <utils/common/VectorHelper.h>
-
-
-// ===========================================================================
-// class declarations
-// ===========================================================================
-class PositionVector;
-
-
-// ===========================================================================
-// class definitions
-// ===========================================================================
-/**
- * Class for line segments
- */
-class Line {
-public:
- Line();
- Line(const Position& p1, const Position& p2);
- ~Line();
- void extrapolateBy(SUMOReal length);
- void extrapolateBy2D(SUMOReal length);
- void extrapolateFirstBy(SUMOReal length);
- void extrapolateSecondBy(SUMOReal length);
- const Position& p1() const;
- const Position& p2() const;
- Position getPositionAtDistance(SUMOReal offset) const;
- Position getPositionAtDistance2D(SUMOReal offset) const;
- void move2side(SUMOReal amount);
- std::vector<SUMOReal> intersectsAtLengths2D(const PositionVector& v);
-
- /// @brief returns distance between myP1 and intersection or -1 if line segments do not intersect
- SUMOReal intersectsAtLength2D(const Line& v);
-
- SUMOReal atan2Angle() const;
- SUMOReal atan2DegreeAngle() const;
- SUMOReal atan2PositiveAngle() const;
- SUMOReal atan2DegreeSlope() const;
- bool intersects(const Line& l) const;
- Position intersectsAt(const Line& l) const;
- SUMOReal length() const;
- SUMOReal length2D() const;
- void add(SUMOReal x, SUMOReal y);
- void add(const Position& p);
- void sub(SUMOReal x, SUMOReal y);
- Line& reverse();
- void rotateAtP1(SUMOReal rot);
-
- /// @brief Output operator
- friend std::ostream& operator<<(std::ostream& os, const Line& geom);
-
-private:
- Position myP1, myP2;
-};
-
-
-#endif
-
-/****************************************************************************/
-
diff --git a/src/utils/geom/Makefile.am b/src/utils/geom/Makefile.am
index 0a40f1d..0e2a3d7 100644
--- a/src/utils/geom/Makefile.am
+++ b/src/utils/geom/Makefile.am
@@ -4,6 +4,6 @@ libgeom_a_SOURCES = AbstractPoly.h Boundary.cpp Boundary.h \
Bresenham.cpp Bresenham.h GeomConvHelper.cpp GeomConvHelper.h \
GeoConvHelper.cpp GeoConvHelper.h \
GeomHelper.cpp GeomHelper.h \
-Helper_ConvexHull.cpp Helper_ConvexHull.h Line.cpp Line.h \
+Helper_ConvexHull.cpp Helper_ConvexHull.h \
Position.cpp Position.h \
PositionVector.cpp PositionVector.h bezier.cpp bezier.h
diff --git a/src/utils/geom/Makefile.in b/src/utils/geom/Makefile.in
index 0be1181..49c09a8 100644
--- a/src/utils/geom/Makefile.in
+++ b/src/utils/geom/Makefile.in
@@ -101,8 +101,7 @@ libgeom_a_LIBADD =
am_libgeom_a_OBJECTS = Boundary.$(OBJEXT) Bresenham.$(OBJEXT) \
GeomConvHelper.$(OBJEXT) GeoConvHelper.$(OBJEXT) \
GeomHelper.$(OBJEXT) Helper_ConvexHull.$(OBJEXT) \
- Line.$(OBJEXT) Position.$(OBJEXT) PositionVector.$(OBJEXT) \
- bezier.$(OBJEXT)
+ Position.$(OBJEXT) PositionVector.$(OBJEXT) bezier.$(OBJEXT)
libgeom_a_OBJECTS = $(am_libgeom_a_OBJECTS)
AM_V_P = $(am__v_P_ at AM_V@)
am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
@@ -334,7 +333,7 @@ libgeom_a_SOURCES = AbstractPoly.h Boundary.cpp Boundary.h \
Bresenham.cpp Bresenham.h GeomConvHelper.cpp GeomConvHelper.h \
GeoConvHelper.cpp GeoConvHelper.h \
GeomHelper.cpp GeomHelper.h \
-Helper_ConvexHull.cpp Helper_ConvexHull.h Line.cpp Line.h \
+Helper_ConvexHull.cpp Helper_ConvexHull.h \
Position.cpp Position.h \
PositionVector.cpp PositionVector.h bezier.cpp bezier.h
@@ -393,7 +392,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GeomConvHelper.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GeomHelper.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Helper_ConvexHull.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Line.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/Position.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PositionVector.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/bezier.Po at am__quote@
diff --git a/src/utils/geom/Position.h b/src/utils/geom/Position.h
index 24534b2..48ade1f 100644
--- a/src/utils/geom/Position.h
+++ b/src/utils/geom/Position.h
@@ -5,7 +5,7 @@
/// @author Axel Wegener
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: Position.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: Position.h 19385 2015-11-19 13:37:55Z namdre $
///
// A position in the 2D- or 3D-world
/****************************************************************************/
@@ -161,14 +161,6 @@ public:
myY = myY / val;
}
- void reshiftRotate(SUMOReal xoff, SUMOReal yoff, SUMOReal rot) {
- SUMOReal x = myX * cos(rot) - myY * sin(rot) + xoff;
- SUMOReal y = myX * sin(rot) + yoff + myY * cos(rot);
- myX = x;
- myY = y;
- }
-
-
/// Prints to the output
friend std::ostream& operator<<(std::ostream& os, const Position& p) {
os << p.x() << "," << p.y();
@@ -221,7 +213,7 @@ public:
}
bool almostSame(const Position& p2, SUMOReal maxDiv = POSITION_EPS) const {
- return fabs(myX - p2.myX) < maxDiv && fabs(myY - p2.myY) < maxDiv && fabs(myZ - p2.myZ) < maxDiv;
+ return distanceTo(p2) < maxDiv;
}
@@ -246,6 +238,13 @@ public:
return (myX - p2.myX) * (myX - p2.myX) + (myY - p2.myY) * (myY - p2.myY);
}
+
+ /// @brief returns the angle in the plane of the vector pointing from here to the other position
+ inline SUMOReal angleTo2D(const Position& other) const {
+ return atan2(other.myY - myY, other.myX - myX);
+ }
+
+
/// @brief returns the cross product between this point and the second one
Position crossProduct(const Position& pos) {
return Position(
diff --git a/src/utils/geom/PositionVector.cpp b/src/utils/geom/PositionVector.cpp
index 47f99ef..6ca6f26 100644
--- a/src/utils/geom/PositionVector.cpp
+++ b/src/utils/geom/PositionVector.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date Sept 2002
-/// @version $Id: PositionVector.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: PositionVector.cpp 19351 2015-11-13 12:47:33Z namdre $
///
// A list of positions
/****************************************************************************/
@@ -45,7 +45,6 @@
#include "Position.h"
#include "PositionVector.h"
#include "GeomHelper.h"
-#include "Line.h"
#include "Helper_ConvexHull.h"
#include "Boundary.h"
@@ -64,28 +63,18 @@ PositionVector::PositionVector(const std::vector<Position>& v) {
}
-PositionVector::~PositionVector() {}
-
-
-// ------------ Adding items to the container
-void
-PositionVector::push_back(const PositionVector& p) {
- copy(p.begin(), p.end(), back_inserter(*this));
+PositionVector::PositionVector(const std::vector<Position>::const_iterator beg, const std::vector<Position>::const_iterator end) {
+ std::copy(beg, end, std::back_inserter(*this));
}
-void
-PositionVector::push_front(const Position& p) {
- insert(begin(), p);
+PositionVector::PositionVector(const Position& p1, const Position& p2) {
+ push_back(p1);
+ push_back(p2);
}
-Position
-PositionVector::pop_front() {
- Position first = front();
- erase(begin());
- return first;
-}
+PositionVector::~PositionVector() {}
bool
@@ -103,7 +92,7 @@ PositionVector::around(const Position& p, SUMOReal offset) const {
Position p2(
(*(i + 1)).x() - p.x(),
(*(i + 1)).y() - p.y());
- angle += GeomHelper::Angle2D(p1.x(), p1.y(), p2.x(), p2.y());
+ angle += GeomHelper::angle2D(p1, p2);
}
Position p1(
(*(end() - 1)).x() - p.x(),
@@ -111,7 +100,7 @@ PositionVector::around(const Position& p, SUMOReal offset) const {
Position p2(
(*(begin())).x() - p.x(),
(*(begin())).y() - p.y());
- angle += GeomHelper::Angle2D(p1.x(), p1.y(), p2.x(), p2.y());
+ angle += GeomHelper::angle2D(p1, p2);
return (!(fabs(angle) < M_PI));
}
@@ -133,11 +122,10 @@ PositionVector::intersects(const Position& p1, const Position& p2) const {
return false;
}
for (const_iterator i = begin(); i != end() - 1; i++) {
- if (GeomHelper::intersects(*i, *(i + 1), p1, p2)) {
+ if (intersects(*i, *(i + 1), p1, p2)) {
return true;
}
}
- //return GeomHelper::intersects(*(end()-1), *(begin()), p1, p2);
return false;
}
@@ -152,17 +140,18 @@ PositionVector::intersects(const PositionVector& v1) const {
return true;
}
}
- //return v1.intersects(*(end()-1), *(begin()));
return false;
}
Position
-PositionVector::intersectsAtPoint(const Position& p1,
- const Position& p2) const {
+PositionVector::intersectionPosition2D(const Position& p1,
+ const Position& p2,
+ const SUMOReal withinDist) const {
for (const_iterator i = begin(); i != end() - 1; i++) {
- if (GeomHelper::intersects(*i, *(i + 1), p1, p2)) {
- return GeomHelper::intersection_position2D(*i, *(i + 1), p1, p2);
+ SUMOReal x, y, m;
+ if (intersects(*i, *(i + 1), p1, p2, withinDist, &x, &y, &m)) {
+ return Position(x, y);
}
}
return Position::INVALID;
@@ -170,17 +159,12 @@ PositionVector::intersectsAtPoint(const Position& p1,
Position
-PositionVector::intersectsAtPoint(const PositionVector& v1) const {
+PositionVector::intersectionPosition2D(const PositionVector& v1) const {
for (const_iterator i = begin(); i != end() - 1; i++) {
if (v1.intersects(*i, *(i + 1))) {
- return v1.intersectsAtPoint(*i, *(i + 1));
+ return v1.intersectionPosition2D(*i, *(i + 1));
}
}
- /*
- if(v1.intersects(*(end()-1), *(begin()))) {
- return v1.intersectsAtPoint(*(end()-1), *(begin()));
- }
- */
return Position::INVALID;
}
@@ -236,38 +220,49 @@ PositionVector::positionAtOffset2D(SUMOReal pos, SUMOReal lateralOffset) const {
SUMOReal
-PositionVector::rotationDegreeAtOffset(SUMOReal pos) const {
+PositionVector::rotationAtOffset(SUMOReal pos) const {
if (pos < 0) {
pos += length();
}
const_iterator i = begin();
SUMOReal seenLength = 0;
do {
- SUMOReal nextLength = (*i).distanceTo(*(i + 1));
+ const Position& p1 = *i;
+ const Position& p2 = *(i + 1);
+ const SUMOReal nextLength = p1.distanceTo(p2);
if (seenLength + nextLength > pos) {
- Line l(*i, *(i + 1));
- return l.atan2DegreeAngle();
+ return p1.angleTo2D(p2);
}
seenLength += nextLength;
} while (++i != end() - 1);
- Line l(*(end() - 2), *(end() - 1));
- return l.atan2DegreeAngle();
+ const Position& p1 = (*this)[-2];
+ const Position& p2 = back();
+ return p1.angleTo2D(p2);
}
+
+SUMOReal
+PositionVector::rotationDegreeAtOffset(SUMOReal pos) const {
+ return GeomHelper::legacyDegree(rotationAtOffset(pos));
+}
+
+
SUMOReal
PositionVector::slopeDegreeAtOffset(SUMOReal pos) const {
const_iterator i = begin();
SUMOReal seenLength = 0;
do {
- SUMOReal nextLength = (*i).distanceTo(*(i + 1));
+ const Position& p1 = *i;
+ const Position& p2 = *(i + 1);
+ const SUMOReal nextLength = p1.distanceTo(p2);
if (seenLength + nextLength > pos) {
- Line l(*i, *(i + 1));
- return l.atan2DegreeSlope();
+ return RAD2DEG(atan2(p2.z() - p1.z(), p1.distanceTo2D(p2)));
}
seenLength += nextLength;
} while (++i != end() - 1);
- Line l(*(end() - 2), *(end() - 1));
- return l.atan2DegreeSlope();
+ const Position& p1 = (*this)[-2];
+ const Position& p2 = back();
+ return RAD2DEG(atan2(p2.z() - p1.z(), p1.distanceTo2D(p2)));
}
Position
@@ -275,13 +270,18 @@ PositionVector::positionAtOffset(const Position& p1,
const Position& p2,
SUMOReal pos, SUMOReal lateralOffset) {
const SUMOReal dist = p1.distanceTo(p2);
- if (dist < pos) {
+ if (pos < 0 || dist < pos) {
return Position::INVALID;
}
if (lateralOffset != 0) {
- Line l(p1, p2);
- l.move2side(-lateralOffset); // move in the same direction as Position::move2side
- return l.getPositionAtDistance(pos);
+ const Position offset = sideOffset(p1, p2, -lateralOffset); // move in the same direction as Position::move2side
+ if (pos == 0.) {
+ return p1 + offset;
+ }
+ return p1 + (p2 - p1) * (pos / dist) + offset;
+ }
+ if (pos == 0.) {
+ return p1;
}
return p1 + (p2 - p1) * (pos / dist);
}
@@ -292,13 +292,18 @@ PositionVector::positionAtOffset2D(const Position& p1,
const Position& p2,
SUMOReal pos, SUMOReal lateralOffset) {
const SUMOReal dist = p1.distanceTo2D(p2);
- if (dist < pos) {
+ if (pos < 0 || dist < pos) {
return Position::INVALID;
}
if (lateralOffset != 0) {
- Line l(p1, p2);
- l.move2side(-lateralOffset); // move in the same direction as Position::move2side
- return l.getPositionAtDistance2D(pos);
+ const Position offset = sideOffset(p1, p2, -lateralOffset); // move in the same direction as Position::move2side
+ if (pos == 0.) {
+ return p1 + offset;
+ }
+ return p1 + (p2 - p1) * (pos / dist) + offset;
+ }
+ if (pos == 0.) {
+ return p1;
}
return p1 + (p2 - p1) * (pos / dist);
}
@@ -473,8 +478,7 @@ PositionVector::splitAt(SUMOReal where) const {
if (fabs(where - (seen + next)) > POSITION_EPS || it == end() - 1) {
// we need to insert a new point because 'where' is not close to an
// existing point or it is to close to the endpoint
- Line tmpL(first.back(), *it);
- Position p = tmpL.getPositionAtDistance(where - seen);
+ const Position p = positionAtOffset(first.back(), *it, where - seen);
first.push_back(p);
second.push_back(p);
} else {
@@ -526,14 +530,6 @@ PositionVector::mirrorX() {
}
-void
-PositionVector::reshiftRotate(SUMOReal xoff, SUMOReal yoff, SUMOReal rot) {
- for (int i = 0; i < static_cast<int>(size()); i++) {
- (*this)[i].reshiftRotate(xoff, yoff, rot);
- }
-}
-
-
int
PositionVector::as_poly_cw_sorter::operator()(const Position& p1,
const Position& p2) const {
@@ -579,42 +575,6 @@ PositionVector::convexHull() const {
}
-PositionVector
-PositionVector::intersectionPoints2D(const Line& line) const {
- PositionVector ret;
- for (const_iterator i = begin(); i != end() - 1; i++) {
- if (GeomHelper::intersects(*i, *(i + 1), line.p1(), line.p2())) {
- ret.push_back_noDoublePos(GeomHelper::intersection_position2D(
- *i, *(i + 1), line.p1(), line.p2()));
- }
- }
- return ret;
-}
-
-
-int
-PositionVector::appendWithCrossingPoint(const PositionVector& v) {
- if (back().distanceTo(v[0]) < 2) { // !!! heuristic
- copy(v.begin() + 1, v.end(), back_inserter(*this));
- return 1;
- }
- //
- Line l1((*this)[static_cast<int>(size()) - 2], back());
- l1.extrapolateBy(100);
- Line l2(v[0], v[1]);
- l2.extrapolateBy(100);
- if (l1.intersects(l2) && l1.intersectsAtLength2D(l2) < l1.length2D() - 100) { // !!! heuristic
- Position p = l1.intersectsAt(l2);
- (*this)[static_cast<int>(size()) - 1] = p;
- copy(v.begin() + 1, v.end(), back_inserter(*this));
- return 2;
- } else {
- copy(v.begin(), v.end(), back_inserter(*this));
- return 3;
- }
-}
-
-
void
PositionVector::append(const PositionVector& v, SUMOReal sameThreshold) {
if (size() > 0 && v.size() > 0 && back().distanceTo(v[0]) < sameThreshold) {
@@ -653,11 +613,6 @@ PositionVector::getSubpart(SUMOReal beginOffset, SUMOReal endOffset) const {
seen + (*i).distanceTo(*(i + 1)) < endOffset) {
ret.push_back_noDoublePos(*(i + 1));
- /*
- if(ret.at(-1)!=*(i+1)) {
- ret.push_back(*(i+1));
- }
- */
seen += (*i).distanceTo(*(i + 1));
i++;
}
@@ -675,7 +630,7 @@ PositionVector::getSubpart2D(SUMOReal beginOffset, SUMOReal endOffset) const {
begPos = positionAtOffset2D(beginOffset);
}
Position endPos = back();
- if (endOffset < length() - POSITION_EPS) {
+ if (endOffset < length2D() - POSITION_EPS) {
endPos = positionAtOffset2D(endOffset);
}
ret.push_back(begPos);
@@ -695,11 +650,6 @@ PositionVector::getSubpart2D(SUMOReal beginOffset, SUMOReal endOffset) const {
seen + (*i).distanceTo2D(*(i + 1)) < endOffset) {
ret.push_back_noDoublePos(*(i + 1));
- /*
- if(ret.at(-1)!=*(i+1)) {
- ret.push_back(*(i+1));
- }
- */
seen += (*i).distanceTo2D(*(i + 1));
i++;
}
@@ -709,56 +659,12 @@ PositionVector::getSubpart2D(SUMOReal beginOffset, SUMOReal endOffset) const {
}
-void
-PositionVector::pruneFromBeginAt(const Position& p) {
- // find minimum distance (from the begin)
- size_t pos = 0;
- SUMOReal dist = 1000000;
- size_t currPos = 0;
- SUMOReal currDist = GeomHelper::distancePointLine(p,
- GeomHelper::extrapolate_first(*(begin()), *(begin() + 1), 100),
- *(begin() + 1));
-// assert(currDist>=0);
- if (currDist >= 0 && currDist < dist) {
- dist = currDist;
- pos = currPos;
- }
-
- for (iterator i = begin(); i != end() - 1; i++, currPos++) {
- SUMOReal currDist = GeomHelper::distancePointLine(p, *i, *(i + 1));
- if (currDist >= 0 && currDist < dist) {
- dist = currDist;
- pos = currPos;
- }
- }
- // remove leading items
- for (size_t j = 0; j < pos; j++) {
- erase(begin());
- }
- // replace first item by the new position
- SUMOReal lpos = GeomHelper::nearest_offset_on_line_to_point2D(
- (*this)[0], (*this)[1], p);
- if (lpos == GeomHelper::INVALID_OFFSET) {
- return;
- }
- Position np = positionAtOffset(lpos);
- if (np != *(begin())) {
- erase(begin());
- if (np != *(begin())) {
- insert(begin(), p);
- assert(size() > 1);
- assert(*(begin()) != *(end() - 1));
- }
- }
-}
-
-
PositionVector
PositionVector::getSubpartByIndex(int beginIndex, int count) const {
if (beginIndex < 0) {
beginIndex += (int)size();
}
- assert(count > 0);
+ assert(count >= 0);
assert(beginIndex < (int)size());
assert(beginIndex + count <= (int)size());
PositionVector result;
@@ -769,66 +675,9 @@ PositionVector::getSubpartByIndex(int beginIndex, int count) const {
}
-void
-PositionVector::pruneFromEndAt(const Position& p) {
- // find minimum distance (from the end)
- size_t pos = 0;
- SUMOReal dist = 1000000;
- size_t currPos = 0;
- SUMOReal currDist = GeomHelper::distancePointLine(p,
- *(end() - 1),
- GeomHelper::extrapolate_second(*(end() - 2), *(end() - 1), 100));
-// assert(currDist>=0);
- if (currDist >= 0 && currDist < dist) {
- dist = currDist;
- pos = currPos;
- }
-
- for (reverse_iterator i = rbegin(); i != rend() - 1; i++, currPos++) {
- SUMOReal currDist = GeomHelper::distancePointLine(p, *(i), *(i + 1));
- if (currDist >= 0 && currDist < dist) {
- dist = currDist;
- pos = currPos;
- }
- }
- // remove trailing items
- for (size_t j = 0; j < pos; j++) {
- erase(end() - 1);
- }
- // replace last item by the new position
- SUMOReal lpos =
- GeomHelper::nearest_offset_on_line_to_point2D(
- (*this)[static_cast<int>(size()) - 1], (*this)[static_cast<int>(size()) - 2], p);
- if (lpos == GeomHelper::INVALID_OFFSET) {
- return;
- }
- Position np = positionAtOffset(
- length() - lpos);
- if (np != *(end() - 1)) {
- erase(end() - 1);
- if (np != *(end() - 1)) {
- push_back(np);
- assert(size() > 1);
- assert(*(begin()) != *(end() - 1));
- }
- }
-}
-
-
SUMOReal
PositionVector::beginEndAngle() const {
- Line tmp(front(), back());
- return tmp.atan2Angle();
-}
-
-
-void
-PositionVector::eraseAt(int i) {
- if (i >= 0) {
- erase(begin() + i);
- } else {
- erase(end() + i);
- }
+ return front().angleTo2D(back());
}
@@ -840,7 +689,7 @@ PositionVector::nearest_offset_to_point2D(const Position& p, bool perpendicular)
for (const_iterator i = begin(); i != end() - 1; i++) {
const SUMOReal pos =
GeomHelper::nearest_offset_on_line_to_point2D(*i, *(i + 1), p, perpendicular);
- const SUMOReal dist = pos == GeomHelper::INVALID_OFFSET ? minDist : p.distanceTo2D(Line(*i, *(i + 1)).getPositionAtDistance2D(pos));
+ const SUMOReal dist = pos == GeomHelper::INVALID_OFFSET ? minDist : p.distanceTo2D(positionAtOffset2D(*i, *(i + 1), pos));
if (dist < minDist) {
nearestPos = pos + seen;
minDist = dist;
@@ -881,7 +730,7 @@ PositionVector::transformToVectorCoordinates(const Position& p, bool extend) con
for (const_iterator i = begin(); i != end() - 1; i++) {
const SUMOReal pos =
GeomHelper::nearest_offset_on_line_to_point2D(*i, *(i + 1), p, true);
- const SUMOReal dist = pos < 0 ? minDist : p.distanceTo2D(Line(*i, *(i + 1)).getPositionAtDistance(pos));
+ const SUMOReal dist = pos < 0 ? minDist : p.distanceTo2D(positionAtOffset(*i, *(i + 1), pos));
if (dist < minDist) {
nearestPos = pos + seen;
minDist = dist;
@@ -931,18 +780,18 @@ PositionVector::indexOfClosest(const Position& p) const {
int
PositionVector::insertAtClosest(const Position& p) {
- Position outIntersection = Position();
SUMOReal minDist = std::numeric_limits<SUMOReal>::max();
- SUMOReal dist;
int insertionIndex = 1;
for (int i = 0; i < (int)size() - 1; i++) {
- dist = GeomHelper::closestDistancePointLine2D(p, (*this)[i], (*this)[i + 1], outIntersection);
+ const SUMOReal length = GeomHelper::nearest_offset_on_line_to_point2D((*this)[i], (*this)[i + 1], p, false);
+ const Position& outIntersection = PositionVector::positionAtOffset2D((*this)[i], (*this)[i + 1], length);
+ const SUMOReal dist = p.distanceTo2D(outIntersection);
if (dist < minDist) {
insertionIndex = i + 1;
minDist = dist;
}
}
- insertAt(insertionIndex, p);
+ insert(begin() + insertionIndex, p);
return insertionIndex;
}
@@ -951,7 +800,7 @@ std::vector<SUMOReal>
PositionVector::intersectsAtLengths2D(const PositionVector& other) const {
std::vector<SUMOReal> ret;
for (const_iterator i = other.begin(); i != other.end() - 1; i++) {
- std::vector<SUMOReal> atSegment = intersectsAtLengths2D(Line(*i, *(i + 1)));
+ std::vector<SUMOReal> atSegment = intersectsAtLengths2D(*i, *(i + 1));
copy(atSegment.begin(), atSegment.end(), back_inserter(ret));
}
return ret;
@@ -959,35 +808,57 @@ PositionVector::intersectsAtLengths2D(const PositionVector& other) const {
std::vector<SUMOReal>
-PositionVector::intersectsAtLengths2D(const Line& line) const {
+PositionVector::intersectsAtLengths2D(const Position& lp1, const Position& lp2) const {
std::vector<SUMOReal> ret;
SUMOReal pos = 0;
for (const_iterator i = begin(); i != end() - 1; i++) {
- Line l((*i), *(i + 1));
- if (GeomHelper::intersects(l.p1(), l.p2(), line.p1(), line.p2())) {
- Position p =
- GeomHelper::intersection_position2D(l.p1(), l.p2(), line.p1(), line.p2());
- SUMOReal atLength = p.distanceTo2D(l.p1());
- ret.push_back(atLength + pos);
+ const Position& p1 = *i;
+ const Position& p2 = *(i + 1);
+ SUMOReal x, y, m;
+ if (intersects(p1, p2, lp1, lp2, 0., &x, &y, &m)) {
+ ret.push_back(Position(x, y).distanceTo2D(p1) + pos);
}
- pos += l.length2D();
+ pos += p1.distanceTo2D(p2);
}
return ret;
}
void
-PositionVector::extrapolate(SUMOReal val) {
+PositionVector::extrapolate(const SUMOReal val, const bool onlyFirst) {
assert(size() > 1);
- Position nb =
- GeomHelper::extrapolate_first((*this)[0], (*this)[1], val);
- Position ne =
- GeomHelper::extrapolate_second(
- (*this)[static_cast<int>(size()) - 2], (*this)[static_cast<int>(size()) - 1], val);
- erase(begin());
- push_front(nb);
- erase(end() - 1);
- push_back(ne);
+ Position& p1 = (*this)[0];
+ Position& p2 = (*this)[1];
+ const Position offset = (p2 - p1) * (val / p1.distanceTo(p2));
+ p1.sub(offset);
+ if (!onlyFirst) {
+ if (size() == 2) {
+ p2.add(offset);
+ } else {
+ const Position& e1 = (*this)[-2];
+ Position& e2 = (*this)[-1];
+ e2.sub((e1 - e2) * (val / e1.distanceTo(e2)));
+ }
+ }
+}
+
+
+void
+PositionVector::extrapolate2D(const SUMOReal val, const bool onlyFirst) {
+ assert(size() > 1);
+ Position& p1 = (*this)[0];
+ Position& p2 = (*this)[1];
+ const Position offset = (p2 - p1) * (val / p1.distanceTo2D(p2));
+ p1.sub(offset);
+ if (!onlyFirst) {
+ if (size() == 2) {
+ p2.add(offset);
+ } else {
+ const Position& e1 = (*this)[-2];
+ Position& e2 = (*this)[-1];
+ e2.sub((e1 - e2) * (val / e1.distanceTo2D(e2)));
+ }
+ }
}
@@ -1001,6 +872,13 @@ PositionVector::reverse() const {
}
+Position
+PositionVector::sideOffset(const Position& beg, const Position& end, const SUMOReal amount) {
+ const SUMOReal scale = amount / beg.distanceTo2D(end);
+ return Position((beg.y() - end.y()) * scale, (end.x() - beg.x()) * scale);
+}
+
+
void
PositionVector::move2side(SUMOReal amount) {
if (size() < 2) {
@@ -1009,106 +887,50 @@ PositionVector::move2side(SUMOReal amount) {
PositionVector shape;
for (int i = 0; i < static_cast<int>(size()); i++) {
if (i == 0) {
- Position from = (*this)[i];
- Position to = (*this)[i + 1];
- std::pair<SUMOReal, SUMOReal> offsets =
- GeomHelper::getNormal90D_CW(from, to, amount);
- shape.push_back(Position(from.x() - offsets.first,
- from.y() - offsets.second, from.z()));
+ const Position& from = (*this)[i];
+ const Position& to = (*this)[i + 1];
+ shape.push_back(from - sideOffset(from, to, amount));
} else if (i == static_cast<int>(size()) - 1) {
- Position from = (*this)[i - 1];
- Position to = (*this)[i];
- std::pair<SUMOReal, SUMOReal> offsets =
- GeomHelper::getNormal90D_CW(from, to, amount);
- shape.push_back(Position(to.x() - offsets.first,
- to.y() - offsets.second, to.z()));
+ const Position& from = (*this)[i - 1];
+ const Position& to = (*this)[i];
+ shape.push_back(to - sideOffset(from, to, amount));
} else {
- Position from = (*this)[i - 1];
- Position me = (*this)[i];
- Position to = (*this)[i + 1];
- Line fromMe(from, me);
- fromMe.extrapolateBy2D(me.distanceTo2D(to));
- const double extrapolateDev = fromMe.p2().distanceTo2D(to);
+ const Position& from = (*this)[i - 1];
+ const Position& me = (*this)[i];
+ const Position& to = (*this)[i + 1];
+ PositionVector fromMe(from, me);
+ fromMe.extrapolate2D(me.distanceTo2D(to));
+ const SUMOReal extrapolateDev = fromMe[1].distanceTo2D(to);
if (fabs(extrapolateDev) < POSITION_EPS) {
// parallel case, just shift the middle point
- std::pair<SUMOReal, SUMOReal> off =
- GeomHelper::getNormal90D_CW(from, to, amount);
- shape.push_back(Position(me.x() - off.first, me.y() - off.second, me.z()));
+ shape.push_back(me - sideOffset(from, to, amount));
continue;
}
if (fabs(extrapolateDev - 2 * me.distanceTo2D(to)) < POSITION_EPS) {
// counterparallel case, just shift the middle point
- Line fromMe(from, me);
- fromMe.extrapolateBy2D(amount);
- shape.push_back(fromMe.p2());
+ PositionVector fromMe(from, me);
+ fromMe.extrapolate2D(amount);
+ shape.push_back(fromMe[1]);
continue;
}
- std::pair<SUMOReal, SUMOReal> offsets =
- GeomHelper::getNormal90D_CW(from, me, amount);
- std::pair<SUMOReal, SUMOReal> offsets2 =
- GeomHelper::getNormal90D_CW(me, to, amount);
- Line l1(
- Position(from.x() - offsets.first, from.y() - offsets.second),
- Position(me.x() - offsets.first, me.y() - offsets.second));
- l1.extrapolateBy2D(100);
- Line l2(
- Position(me.x() - offsets2.first, me.y() - offsets2.second),
- Position(to.x() - offsets2.first, to.y() - offsets2.second));
- l2.extrapolateBy2D(100);
- if (l1.intersects(l2)) {
- shape.push_back(l1.intersectsAt(l2));
- } else {
+ Position offsets = sideOffset(from, me, amount);
+ Position offsets2 = sideOffset(me, to, amount);
+ PositionVector l1(from - offsets, me - offsets);
+ PositionVector l2(me - offsets2, to - offsets2);
+ shape.push_back(l1.intersectionPosition2D(l2[0], l2[1], 100));
+ if (shape.back() == Position::INVALID) {
throw InvalidArgument("no line intersection");
}
}
}
-
- /*
- ContType newCont;
- std::pair<SUMOReal, SUMOReal> p;
- Position newPos;
- // first point
- newPos = (*(begin()));
- p = GeomHelper::getNormal90D_CW(*(begin()), *(begin()+1), amount);
- newPos.add(p.first, p.second);
- newCont.push_back(newPos);
- // middle points
- for(const_iterator i=begin()+1; i!=end()-1; i++) {
- std::pair<SUMOReal, SUMOReal> oldp = p;
- newPos = *i;
- newPos.add(p.first, p.second);
- newCont.push_back(newPos);
- p = GeomHelper::getNormal90D_CW(*i, *(i+1), amount);
- // Position newPos(*i);
- // newPos.add((p.first+oldp.first)/2.0, (p.second+oldp.second)/2.0);
- // newCont.push_back(newPos);
- }
- // last point
- newPos = (*(end()-1));
- newPos.add(p.first, p.second);
- newCont.push_back(newPos);
- myCont = newCont;
- */
*this = shape;
}
-Line
-PositionVector::lineAt(int pos) const {
+SUMOReal
+PositionVector::angleAt2D(int pos) const {
assert((int)size() > pos + 1);
- return Line((*this)[pos], (*this)[pos + 1]);
-}
-
-
-Line
-PositionVector::getBegLine() const {
- return lineAt(0);
-}
-
-
-Line
-PositionVector::getEndLine() const {
- return lineAt((int)size() - 2);
+ return (*this)[pos].angleTo2D((*this)[pos + 1]);
}
@@ -1156,29 +978,6 @@ PositionVector::distance(const Position& p, bool perpendicular) const {
}
}
-
-void
-PositionVector::insertAt(int index, const Position& p) {
- if (index >= 0) {
- insert(begin() + index, p);
- } else {
- insert(end() + index, p);
- }
-}
-
-
-void
-PositionVector::replaceAt(int index, const Position& p) {
- assert(index < static_cast<int>(size()));
- assert(index + static_cast<int>(size()) >= 0);
- if (index >= 0) {
- (*this)[index] = p;
- } else {
- (*this)[index + static_cast<int>(size())] = p;
- }
-}
-
-
void
PositionVector::push_back_noDoublePos(const Position& p) {
if (size() == 0 || !p.almostSame(back())) {
@@ -1217,22 +1016,6 @@ PositionVector::removeDoublePoints(SUMOReal minDist, bool assertLength) {
}
-void
-PositionVector::removeColinearPoints() {
- if (size() > 2) {
- Position& last = front();
- for (iterator i = begin() + 1; i != end() - 1;) {
- if (GeomHelper::distancePointLine(*i, last, *(i + 1)) < 0.001) {
- i = erase(i);
- } else {
- last = *i;
- ++i;
- }
- }
- }
-}
-
-
bool
PositionVector::operator==(const PositionVector& v2) const {
if (size() == v2.size()) {
@@ -1261,5 +1044,93 @@ PositionVector::hasElevation() const {
return false;
}
+
+bool
+PositionVector::intersects(const Position& p11, const Position& p12,
+ const Position& p21, const Position& p22,
+ const SUMOReal withinDist,
+ SUMOReal* x, SUMOReal* y, SUMOReal* mu) {
+ const SUMOReal eps = std::numeric_limits<SUMOReal>::epsilon();
+ const double denominator = (p22.y() - p21.y()) * (p12.x() - p11.x()) - (p22.x() - p21.x()) * (p12.y() - p11.y());
+ const double numera = (p22.x() - p21.x()) * (p11.y() - p21.y()) - (p22.y() - p21.y()) * (p11.x() - p21.x());
+ const double numerb = (p12.x() - p11.x()) * (p11.y() - p21.y()) - (p12.y() - p11.y()) * (p11.x() - p21.x());
+ /* Are the lines coincident? */
+ if (fabs(numera) < eps && fabs(numerb) < eps && fabs(denominator) < eps) {
+ SUMOReal a1;
+ SUMOReal a2;
+ SUMOReal a3;
+ SUMOReal a4;
+ SUMOReal a = -1e12;
+ if (p11.x() != p12.x()) {
+ a1 = p11.x() < p12.x() ? p11.x() : p12.x();
+ a2 = p11.x() < p12.x() ? p12.x() : p11.x();
+ a3 = p21.x() < p22.x() ? p21.x() : p22.x();
+ a4 = p21.x() < p22.x() ? p22.x() : p21.x();
+ } else {
+ a1 = p11.y() < p12.y() ? p11.y() : p12.y();
+ a2 = p11.y() < p12.y() ? p12.y() : p11.y();
+ a3 = p21.y() < p22.y() ? p21.y() : p22.y();
+ a4 = p21.y() < p22.y() ? p22.y() : p21.y();
+ }
+ if (a1 <= a3 && a3 <= a2) {
+ if (a4 < a2) {
+ a = (a3 + a4) / 2;
+ } else {
+ a = (a2 + a3) / 2;
+ }
+ }
+ if (a3 <= a1 && a1 <= a4) {
+ if (a2 < a4) {
+ a = (a1 + a2) / 2;
+ } else {
+ a = (a1 + a4) / 2;
+ }
+ }
+ if (a != -1e12) {
+ if (x != 0) {
+ if (p11.x() != p12.x()) {
+ *mu = (a - p11.x()) / (p12.x() - p11.x());
+ *x = a;
+ *y = p11.y() + (*mu) * (p12.y() - p11.y());
+ } else {
+ *x = p11.x();
+ *y = a;
+ if (p12.y() == p11.y()) {
+ *mu = 0;
+ } else {
+ *mu = (a - p11.y()) / (p12.y() - p11.y());
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ /* Are the lines parallel */
+ if (fabs(denominator) < eps) {
+ return false;
+ }
+ /* Is the intersection along the segments */
+ double mua = numera / denominator;
+ /* reduce rounding errors for lines ending in the same point */
+ if (fabs(p12.x() - p22.x()) < eps && fabs(p12.y() - p22.y()) < eps) {
+ mua = 1.;
+ } else {
+ const double offseta = withinDist / p11.distanceTo2D(p12);
+ const double offsetb = withinDist / p21.distanceTo2D(p22);
+ const double mub = numerb / denominator;
+ if (mua < -offseta || mua > 1 + offseta || mub < -offsetb || mub > 1 + offsetb) {
+ return false;
+ }
+ }
+ if (x != 0) {
+ *x = p11.x() + mua * (p12.x() - p11.x());
+ *y = p11.y() + mua * (p12.y() - p11.y());
+ *mu = mua;
+ }
+ return true;
+}
+
+
/****************************************************************************/
diff --git a/src/utils/geom/PositionVector.h b/src/utils/geom/PositionVector.h
index 1678d54..5770f67 100644
--- a/src/utils/geom/PositionVector.h
+++ b/src/utils/geom/PositionVector.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: PositionVector.h 18639 2015-08-17 13:59:19Z namdre $
+/// @version $Id: PositionVector.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A list of positions
/****************************************************************************/
@@ -39,7 +39,6 @@
// ===========================================================================
// class declarations
// ===========================================================================
-class Line;
class Boundary;
@@ -69,6 +68,20 @@ public:
PositionVector(const std::vector<Position>& v);
+ /** @brief Constructor
+ * @param[in] beg The begin iterator for copy
+ * @param[in] end The end iterator to copy
+ */
+ PositionVector(const std::vector<Position>::const_iterator beg, const std::vector<Position>::const_iterator end);
+
+
+ /** @brief Constructor for lines
+ * @param[in] p1 the first position
+ * @param[in] p2 the second position
+ */
+ PositionVector(const Position& p1, const Position& p2);
+
+
/// @brief Destructor
~PositionVector();
@@ -85,33 +98,12 @@ public:
using vp::front;
using vp::back;
using vp::reference;
+ using vp::erase;
+ using vp::insert;
- /// @name Adding items to the container
- /// @{
-
-
- /** @brief Appends all positions from the given vector
- * @param[in] p The vector from which values shall be appended
- */
- void push_back(const PositionVector& p);
- /// @}
-
-
- /// Puts the given position at the front of the list
- void push_front(const Position& p);
-
- /// Removes and returns the position at the fron of the list
- Position pop_front();
-
- void insertAt(int index, const Position& p);
-
- void replaceAt(int index, const Position& by);
-
- void eraseAt(int i);
-
/** @brief Returns the information whether the position vector describes a polygon lying around the given point
- The optional offset is added to the polygon's bounderies */
+ The optional offset is added to the polygon's boundaries */
bool around(const Position& p, SUMOReal offset = 0) const;
/** @brief Returns the information whether the given polygon overlaps with this
@@ -125,22 +117,20 @@ public:
bool intersects(const PositionVector& v1) const;
/** Returns the position of the intersection */
- Position intersectsAtPoint(const Position& p1,
- const Position& p2) const; // !!!
-
- /** Returns any intersection Points with the given line (ignoring z-coordinates) */
- PositionVector intersectionPoints2D(const Line& line) const;
+ Position intersectionPosition2D(const Position& p1,
+ const Position& p2,
+ const SUMOReal withinDist = 0.) const;
/** @brief For all intersections between this vector and other,
* return the 2D-length of the subvector from this vectors start to the intersection */
- std::vector<SUMOReal> intersectsAtLengths2D(const PositionVector& other) const; // !!!
+ std::vector<SUMOReal> intersectsAtLengths2D(const PositionVector& other) const;
/** @brief For all intersections between this vector and line,
* return the 2D-length of the subvector from this vectors start to the intersection */
- std::vector<SUMOReal> intersectsAtLengths2D(const Line& line) const; // !!!
+ std::vector<SUMOReal> intersectsAtLengths2D(const Position& lp1, const Position& lp2) const;
/** Returns the position of the intersection */
- Position intersectsAtPoint(const PositionVector& v1) const; // !!!
+ Position intersectionPosition2D(const PositionVector& v1) const;
/// @brief ensures that the last position equals the first
void closePolygon();
@@ -157,6 +147,9 @@ public:
Position positionAtOffset2D(SUMOReal pos, SUMOReal lateralOffset = 0) const;
/// Returns the rotation at the given length
+ SUMOReal rotationAtOffset(SUMOReal pos) const;
+
+ /// Returns the rotation at the given length
SUMOReal rotationDegreeAtOffset(SUMOReal pos) const;
/// Returns the slope at the given length
@@ -164,11 +157,11 @@ public:
/// Returns the position between the two given point at the specified position */
static Position positionAtOffset(const Position& p1,
- const Position& p2, SUMOReal pos, SUMOReal lateralOffset);
+ const Position& p2, SUMOReal pos, SUMOReal lateralOffset = 0.);
/// Returns the position between the two given point at the specified position */
static Position positionAtOffset2D(const Position& p1,
- const Position& p2, SUMOReal pos, SUMOReal lateralOffset);
+ const Position& p2, SUMOReal pos, SUMOReal lateralOffset = 0.);
/// Returns a boundary enclosing this list of lines
Boundary getBoxBoundary() const;
@@ -213,12 +206,8 @@ public:
/// @brief mirror coordinates along the x-axis
void mirrorX();
- void reshiftRotate(SUMOReal xoff, SUMOReal yoff, SUMOReal rot);
-
PositionVector convexHull() const;
- int appendWithCrossingPoint(const PositionVector& v);
-
// @brief append the given vector to this one
void append(const PositionVector& v, SUMOReal sameThreshold = 2.0);
@@ -232,17 +221,17 @@ public:
void sortByIncreasingXY();
- void extrapolate(SUMOReal val);
+ void extrapolate(const SUMOReal val, const bool onlyFirst = false);
- PositionVector reverse() const;
+ void extrapolate2D(const SUMOReal val, const bool onlyFirst = false);
- void move2side(SUMOReal amount);
+ PositionVector reverse() const;
- Line lineAt(int pos) const;
+ static Position sideOffset(const Position& beg, const Position& end, const SUMOReal amount);
- Line getBegLine() const;
+ void move2side(SUMOReal amount);
- Line getEndLine() const;
+ SUMOReal angleAt2D(int pos) const;
// @brief inserts p between the two closest positions and returns the insertion index
@@ -276,9 +265,7 @@ public:
// !!!
SUMOReal isLeft(const Position& P0, const Position& P1, const Position& P2) const;
- void pruneFromBeginAt(const Position& p);
- void pruneFromEndAt(const Position& p);
-
+ /// returns the angle in radians of the line connecting the first and the last position
SUMOReal beginEndAngle() const;
SUMOReal nearest_offset_to_point2D(const Position& p, bool perpendicular = true) const;
@@ -318,11 +305,18 @@ public:
*/
void removeDoublePoints(SUMOReal minDist = POSITION_EPS, bool assertLength = false);
- void removeColinearPoints();
-
/// @brief return whether two positions differ in z-coordinate
bool hasElevation() const;
+private:
+ /** @brief return whether the line segments defined by Line p11,p12
+ * and Line p21,p22 intersect
+ */
+ static bool intersects(const Position& p11, const Position& p12,
+ const Position& p21, const Position& p22,
+ const SUMOReal withinDist = 0.,
+ SUMOReal* x = 0, SUMOReal* y = 0, SUMOReal* mu = 0);
+
};
diff --git a/src/utils/gui/div/GLHelper.cpp b/src/utils/gui/div/GLHelper.cpp
index 4bc9803..535708e 100644
--- a/src/utils/gui/div/GLHelper.cpp
+++ b/src/utils/gui/div/GLHelper.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GLHelper.cpp 18364 2015-05-11 14:08:29Z namdre $
+/// @version $Id: GLHelper.cpp 19185 2015-10-27 23:13:06Z behrisch $
///
// Some methods which help to draw certain geometrical objects in openGL
/****************************************************************************/
@@ -189,7 +189,7 @@ GLHelper::drawBoxLines(const PositionVector& geom,
glTranslated(geom[i].x(), geom[i].y(), 0.1);
if (rightTurn(rots[i - 1], rots[i])) {
// inside corner
- drawFilledCircle(width - offset, cornerDetail);
+ drawFilledCircle(MIN2(lengths[i], width - offset), cornerDetail);
} else {
// outside corner, make sure to only draw a segment of the circle
SUMOReal angleBeg = -rots[i - 1];
@@ -205,7 +205,7 @@ GLHelper::drawBoxLines(const PositionVector& geom,
if (angleEnd > angleBeg) {
angleEnd -= 360;
}
- drawFilledCircle(width + offset, cornerDetail, angleBeg, angleEnd);
+ drawFilledCircle(MIN2(lengths[i], width + offset), cornerDetail, angleBeg, angleEnd);
}
glEnd();
glPopMatrix();
@@ -419,18 +419,19 @@ GLHelper::drawOutlineCircle(SUMOReal width, SUMOReal iwidth, int steps,
void
-GLHelper::drawTriangleAtEnd(const Line& l, SUMOReal tLength,
- SUMOReal tWidth) {
- if (l.length() < tLength) {
- tWidth = tWidth * l.length() / tLength;
- tLength = l.length();
+GLHelper::drawTriangleAtEnd(const Position& p1, const Position& p2,
+ SUMOReal tLength, SUMOReal tWidth) {
+ const SUMOReal length = p1.distanceTo(p2);
+ if (length < tLength) {
+ tWidth *= length / tLength;
+ tLength = length;
}
- Line rl(l.getPositionAtDistance(l.length() - tLength), l.p2());
+ Position rl(PositionVector::positionAtOffset(p1, p2, length - tLength));
glPushMatrix();
- glTranslated(rl.p1().x(), rl.p1().y(), 0);
- glRotated(-l.atan2DegreeAngle(), 0, 0, 1);
+ glTranslated(rl.x(), rl.y(), 0);
+ glRotated(-GeomHelper::naviDegree(p1.angleTo2D(p2)), 0, 0, 1);
glBegin(GL_TRIANGLES);
- glVertex2d(0, -tLength);
+ glVertex2d(0, tLength);
glVertex2d(-tWidth, 0);
glVertex2d(+tWidth, 0);
glEnd();
diff --git a/src/utils/gui/div/GLHelper.h b/src/utils/gui/div/GLHelper.h
index 6633c16..77a9e49 100644
--- a/src/utils/gui/div/GLHelper.h
+++ b/src/utils/gui/div/GLHelper.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GLHelper.h 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: GLHelper.h 19200 2015-10-28 16:48:07Z behrisch $
///
// Some methods which help to draw certain geometrical objects in openGL
/****************************************************************************/
@@ -36,7 +36,6 @@
#include <utility>
#include <utils/common/RGBColor.h>
#include <utils/geom/PositionVector.h>
-#include <utils/geom/Line.h>
// ===========================================================================
@@ -265,12 +264,13 @@ public:
/** @brief Draws a triangle at the end of the given line
*
- * @param[in] l The line at which end the triangle shall be drawn
+ * @param[in] p1 The start of the line at which end the triangle shall be drawn
+ * @param[in] p2 The end of the line at which end the triangle shall be drawn
* @param[in] tLength The length of the triangle
* @param[in] tWidth The width of the triangle
*/
- static void drawTriangleAtEnd(const Line& l, SUMOReal tLength,
- SUMOReal tWidth);
+ static void drawTriangleAtEnd(const Position& p1, const Position& p2,
+ SUMOReal tLength, SUMOReal tWidth);
/// @brief Sets the gl-color to this value
static void setColor(const RGBColor& c);
diff --git a/src/utils/gui/div/GUIDialog_GLChosenEditor.cpp b/src/utils/gui/div/GUIDialog_GLChosenEditor.cpp
index 4feaae3..410b0d5 100644
--- a/src/utils/gui/div/GUIDialog_GLChosenEditor.cpp
+++ b/src/utils/gui/div/GUIDialog_GLChosenEditor.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Thu, 11.03.2004
-/// @version $Id: GUIDialog_GLChosenEditor.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIDialog_GLChosenEditor.cpp 18899 2015-09-22 11:06:25Z namdre $
///
// Editor for the list of chosen objects
/****************************************************************************/
@@ -147,7 +147,7 @@ GUIDialog_GLChosenEditor::onCmdLoad(FXObject*, FXSelector, void*) {
FXFileDialog opendialog(this, "Open List of Selected Items");
opendialog.setIcon(GUIIconSubSys::getIcon(ICON_EMPTY));
opendialog.setSelectMode(SELECTFILE_EXISTING);
- opendialog.setPatternList("*.txt");
+ opendialog.setPatternList("*.txt\nAll files (*)");
if (gCurrentFolder.length() != 0) {
opendialog.setDirectory(gCurrentFolder);
}
diff --git a/src/utils/gui/div/GUIMessageWindow.cpp b/src/utils/gui/div/GUIMessageWindow.cpp
index 49228fc..950311e 100644
--- a/src/utils/gui/div/GUIMessageWindow.cpp
+++ b/src/utils/gui/div/GUIMessageWindow.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Tue, 25 Nov 2003
-/// @version $Id: GUIMessageWindow.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIMessageWindow.cpp 18855 2015-09-17 23:30:22Z namdre $
///
// A logging window for the gui
/****************************************************************************/
@@ -32,6 +32,9 @@
#include <cassert>
#include <utils/common/MsgHandler.h>
+#include <utils/gui/globjects/GUIGlObjectStorage.h>
+#include <utils/gui/windows/GUIGlChildWindow.h>
+#include <utils/gui/windows/GUIMainWindow.h>
#include "GUIMessageWindow.h"
#ifdef CHECK_MEMORY_LEAKS
@@ -40,53 +43,57 @@
// ===========================================================================
+// static members
+// ===========================================================================
+bool GUIMessageWindow::myLocateLinks = true;
+
+
+// ===========================================================================
// method definitions
// ===========================================================================
GUIMessageWindow::GUIMessageWindow(FXComposite* parent) :
FXText(parent, 0, 0, 0, 0, 0, 0, 50),
- myStyles(0),
+ myStyles(new FXHiliteStyle[7]),
myErrorRetriever(0),
myMessageRetriever(0),
myWarningRetriever(0) {
setStyled(true);
setEditable(false);
- myStyles = new FXHiliteStyle[4];
+ const FXColor white = FXRGB(0xff, 0xff, 0xff);
+ const FXColor blue = FXRGB(0x00, 0x00, 0x88);
+ const FXColor green = FXRGB(0x00, 0x88, 0x00);
+ const FXColor red = FXRGB(0x88, 0x00, 0x00);
+ const FXColor yellow = FXRGB(0xe6, 0x98, 0x00);
// set separator style
- myStyles[0].normalForeColor = FXRGB(0x00, 0x00, 0x88);
- myStyles[0].normalBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[0].selectForeColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[0].selectBackColor = FXRGB(0x00, 0x00, 0x88);
- myStyles[0].hiliteForeColor = FXRGB(0x00, 0x00, 0x88);
- myStyles[0].hiliteBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[0].activeBackColor = FXRGB(0xff, 0xff, 0xff);
+ myStyles[0].normalForeColor = blue;
+ myStyles[0].normalBackColor = white;
+ myStyles[0].selectForeColor = white;
+ myStyles[0].selectBackColor = blue;
+ myStyles[0].hiliteForeColor = blue;
+ myStyles[0].hiliteBackColor = white;
+ myStyles[0].activeBackColor = white;
myStyles[0].style = 0;
// set message text style
- myStyles[1].normalForeColor = FXRGB(0x00, 0x88, 0x00);
- myStyles[1].normalBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[1].selectForeColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[1].selectBackColor = FXRGB(0x00, 0x88, 0x00);
- myStyles[1].hiliteForeColor = FXRGB(0x00, 0x88, 0x00);
- myStyles[1].hiliteBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[1].activeBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[1].style = 0;
+ myStyles[1] = myStyles[0];
+ myStyles[1].normalForeColor = green;
+ myStyles[1].selectBackColor = green;
+ myStyles[1].hiliteForeColor = green;
+ myStyles[4] = myStyles[1];
+ myStyles[4].style = STYLE_UNDERLINE;
// set error text style
- myStyles[2].normalForeColor = FXRGB(0x88, 0x00, 0x00);
- myStyles[2].normalBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[2].selectForeColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[2].selectBackColor = FXRGB(0x88, 0x00, 0x00);
- myStyles[2].hiliteForeColor = FXRGB(0x88, 0x00, 0x00);
- myStyles[2].hiliteBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[2].activeBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[2].style = 0;
+ myStyles[2] = myStyles[0];
+ myStyles[2].normalForeColor = red;
+ myStyles[2].selectBackColor = red;
+ myStyles[2].hiliteForeColor = red;
+ myStyles[5] = myStyles[2];
+ myStyles[5].style = STYLE_UNDERLINE;
// set warning text style
- myStyles[3].normalForeColor = FXRGB(0xe6, 0x98, 0x00);
- myStyles[3].normalBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[3].selectForeColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[3].selectBackColor = FXRGB(0xe6, 0x98, 0x00);
- myStyles[3].hiliteForeColor = FXRGB(0xe6, 0x98, 0x00);
- myStyles[3].hiliteBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[3].activeBackColor = FXRGB(0xff, 0xff, 0xff);
- myStyles[3].style = 0;
+ myStyles[3] = myStyles[0];
+ myStyles[3].normalForeColor = yellow;
+ myStyles[3].selectBackColor = yellow;
+ myStyles[3].hiliteForeColor = yellow;
+ myStyles[6] = myStyles[3];
+ myStyles[6].style = STYLE_UNDERLINE;
//
setHiliteStyles(myStyles);
}
@@ -100,6 +107,45 @@ GUIMessageWindow::~GUIMessageWindow() {
}
+const GUIGlObject*
+GUIMessageWindow::getActiveStringObject(const FXString& text, const FXint pos, const FXint lineS, const FXint lineE) const {
+ const FXint idS = MAX2(text.rfind(" '", pos), text.rfind("='", pos));
+ const FXint idE = text.find("'", pos);
+ if (idS >= 0 && idE >= 0 && idS >= lineS && idE <= lineE) {
+ const FXint typeS = text.rfind(" ", idS - 1);
+ if (typeS >= 0) {
+ std::string type(text.mid(typeS + 1, idS - typeS - 1).lower().text());
+ if (type == "tllogic") {
+ type = "tlLogic"; // see GUIGlObject.cpp
+ }
+ const std::string id(text.mid(idS + 2, idE - idS - 2).text());
+ return GUIGlObjectStorage::gIDStorage.getObjectBlocking(type + ":" + id);
+ }
+ }
+ return 0;
+}
+
+
+void
+GUIMessageWindow::setCursorPos(FXint pos, FXbool notify) {
+ FXText::setCursorPos(pos, notify);
+ if (myLocateLinks) {
+ GUIMainWindow* const main = GUIMainWindow::getInstance();
+ std::vector<std::string> viewIDs = main->getViewIDs();
+ if (viewIDs.empty()) {
+ return;
+ }
+ GUIGlChildWindow* const child = dynamic_cast<GUIGlChildWindow*>(main->getViewByID(viewIDs[0]));
+ const FXString text = getText();
+ const GUIGlObject* const glObj = getActiveStringObject(text, pos, lineStart(pos), lineEnd(pos));
+ if (glObj != 0) {
+ child->setView(glObj->getGlID());
+ GUIGlObjectStorage::gIDStorage.unblockObject(glObj->getGlID());
+ }
+ }
+}
+
+
void
GUIMessageWindow::appendMsg(GUIEventType eType, const std::string& msg) {
if (!isEnabled()) {
@@ -123,8 +169,26 @@ GUIMessageWindow::appendMsg(GUIEventType eType, const std::string& msg) {
default:
assert(false);
}
- // insert message to buffer
- FXText::appendStyledText(msg.c_str(), (FXint) msg.length(), style + 1, true);
+ FXString text(msg.c_str());
+ if (myLocateLinks) {
+ FXint pos = text.find("'");
+ while (pos >= 0) {
+ const GUIGlObject* const glObj = getActiveStringObject(text, pos + 1, 0, text.length());
+ if (glObj != 0) {
+ GUIGlObjectStorage::gIDStorage.unblockObject(glObj->getGlID());
+ FXString insText = text.left(pos + 1);
+ FXText::appendStyledText(insText, style + 1);
+ text.erase(0, pos + 1);
+ pos = text.find("'");
+ insText = text.left(pos);
+ FXText::appendStyledText(insText, style + 4);
+ text.erase(0, pos);
+ }
+ pos = text.find("'", pos + 1);
+ }
+ }
+ // insert rest of the message
+ FXText::appendStyledText(text, style + 1, true);
FXText::setCursorPos(getLength() - 1);
FXText::setBottomLine(getLength() - 1);
if (isEnabled()) {
diff --git a/src/utils/gui/div/GUIMessageWindow.h b/src/utils/gui/div/GUIMessageWindow.h
index 6cb1dab..bd7c516 100644
--- a/src/utils/gui/div/GUIMessageWindow.h
+++ b/src/utils/gui/div/GUIMessageWindow.h
@@ -3,7 +3,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date Tue, 25 Nov 2003
-/// @version $Id: GUIMessageWindow.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIMessageWindow.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A logging window for the gui
/****************************************************************************/
@@ -38,6 +38,12 @@
// ===========================================================================
+// class declarations
+// ===========================================================================
+class GUIGlObject;
+
+
+// ===========================================================================
// class definitions
// ===========================================================================
/**
@@ -65,8 +71,7 @@ public:
~GUIMessageWindow();
- /// @brief Adds a a separator to this log window
- void addSeparator();
+ virtual void setCursorPos(FXint pos, FXbool notify = FALSE);
/** @brief Adds new text to the window
@@ -80,6 +85,10 @@ public:
void appendMsg(GUIEventType eType, const std::string& msg);
+ /// @brief Adds a a separator to this log window
+ void addSeparator();
+
+
/// @brief Clears the window
void clear();
@@ -87,6 +96,16 @@ public:
void registerMsgHandlers();
void unregisterMsgHandlers();
+ /// @brief switch locate links on and off
+ static void enableLocateLinks(const bool val) {
+ myLocateLinks = val;
+ }
+
+ /// @brief ask whether locate links is enabled
+ static bool locateLinksEnabled() {
+ return myLocateLinks;
+ }
+
private:
class MsgOutputDevice : public OutputDevice {
@@ -112,8 +131,13 @@ private:
GUIEventType myType;
};
+ const GUIGlObject* getActiveStringObject(const FXString& text, const FXint pos, const FXint lineS, const FXint lineE) const;
private:
+
+ /// @brief whether messages are linked to the GUI elements
+ static bool myLocateLinks;
+
/// @brief The text colors used
FXHiliteStyle* myStyles;
diff --git a/src/utils/gui/globjects/GUIGLObjectPopupMenu.cpp b/src/utils/gui/globjects/GUIGLObjectPopupMenu.cpp
index 9e4e584..764efe9 100644
--- a/src/utils/gui/globjects/GUIGLObjectPopupMenu.cpp
+++ b/src/utils/gui/globjects/GUIGLObjectPopupMenu.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIGLObjectPopupMenu.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: GUIGLObjectPopupMenu.cpp 18897 2015-09-22 08:30:37Z namdre $
///
// The popup menu of a globject
/****************************************************************************/
@@ -55,6 +55,7 @@ FXDEFMAP(GUIGLObjectPopupMenu) GUIGLObjectPopupMenuMap[] = {
FXMAPFUNC(SEL_COMMAND, MID_CENTER, GUIGLObjectPopupMenu::onCmdCenter),
FXMAPFUNC(SEL_COMMAND, MID_COPY_NAME, GUIGLObjectPopupMenu::onCmdCopyName),
FXMAPFUNC(SEL_COMMAND, MID_COPY_TYPED_NAME, GUIGLObjectPopupMenu::onCmdCopyTypedName),
+ FXMAPFUNC(SEL_COMMAND, MID_COPY_EDGE_NAME, GUIGLObjectPopupMenu::onCmdCopyEdgeName),
FXMAPFUNC(SEL_COMMAND, MID_COPY_CURSOR_POSITION, GUIGLObjectPopupMenu::onCmdCopyCursorPosition),
FXMAPFUNC(SEL_COMMAND, MID_COPY_CURSOR_GEOPOSITION, GUIGLObjectPopupMenu::onCmdCopyCursorGeoPosition),
FXMAPFUNC(SEL_COMMAND, MID_SHOWPARS, GUIGLObjectPopupMenu::onCmdShowPars),
@@ -103,6 +104,14 @@ GUIGLObjectPopupMenu::onCmdCopyTypedName(FXObject*, FXSelector, void*) {
long
+GUIGLObjectPopupMenu::onCmdCopyEdgeName(FXObject*, FXSelector, void*) {
+ assert(myObject->getType() == GLO_LANE);
+ GUIUserIO::copyToClipboard(*myParent->getApp(), myObject->getParentName());
+ return 1;
+}
+
+
+long
GUIGLObjectPopupMenu::onCmdCopyCursorPosition(FXObject*, FXSelector, void*) {
GUIUserIO::copyToClipboard(*myParent->getApp(), toString(myNetworkPosition));
return 1;
diff --git a/src/utils/gui/globjects/GUIGLObjectPopupMenu.h b/src/utils/gui/globjects/GUIGLObjectPopupMenu.h
index f44d5c6..3ff6c68 100644
--- a/src/utils/gui/globjects/GUIGLObjectPopupMenu.h
+++ b/src/utils/gui/globjects/GUIGLObjectPopupMenu.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIGLObjectPopupMenu.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIGLObjectPopupMenu.h 18897 2015-09-22 08:30:37Z namdre $
///
// The popup menu of a globject
/****************************************************************************/
@@ -80,6 +80,9 @@ public:
/// Called if the typed name shall be copied to clipboard
long onCmdCopyTypedName(FXObject*, FXSelector, void*);
+ /// Called if the edge name shall be copied to clipboard (for lanes only)
+ long onCmdCopyEdgeName(FXObject*, FXSelector, void*);
+
/// Called if the cursor position shall be copied to clipboard
long onCmdCopyCursorPosition(FXObject*, FXSelector, void*);
diff --git a/src/utils/gui/globjects/GUIGlObject.cpp b/src/utils/gui/globjects/GUIGlObject.cpp
index 0e90549..6996fcd 100644
--- a/src/utils/gui/globjects/GUIGlObject.cpp
+++ b/src/utils/gui/globjects/GUIGlObject.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Sept 2002
-/// @version $Id: GUIGlObject.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIGlObject.cpp 18890 2015-09-21 10:58:10Z namdre $
///
// Base class for all objects that may be displayed within the openGL-gui
/****************************************************************************/
@@ -59,6 +59,7 @@ StringBijection<GUIGlObjectType>::Entry GUIGlObject::GUIGlObjectTypeNamesInitial
{"edge", GLO_EDGE},
{"lane", GLO_LANE},
{"junction", GLO_JUNCTION},
+ {"crossing", GLO_CROSSING},
{"tlLogic", GLO_TLLOGIC},
{"detector", GLO_DETECTOR},
{"trigger", GLO_TRIGGER},
diff --git a/src/utils/gui/globjects/GUIGlObject.h b/src/utils/gui/globjects/GUIGlObject.h
index b849dda..cc3cbe6 100644
--- a/src/utils/gui/globjects/GUIGlObject.h
+++ b/src/utils/gui/globjects/GUIGlObject.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Oct 2002
-/// @version $Id: GUIGlObject.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIGlObject.h 18989 2015-10-01 19:38:26Z namdre $
///
// Base class for all objects that may be displayed within the openGL-gui
/****************************************************************************/
@@ -38,6 +38,7 @@
#include "GUIGlObjectTypes.h"
#include <utils/geom/Boundary.h>
#include <utils/common/StdDefs.h>
+#include <utils/common/StringUtils.h>
#include <utils/common/StringBijection.h>
#include <utils/common/RGBColor.h>
@@ -108,6 +109,13 @@ public:
return myFullName;
}
+ /** @brief Returns the name of the parent object (if any)
+ * @return This object's parent id
+ */
+ virtual const std::string& getParentName() const {
+ return StringUtils::emptyString;
+ }
+
/** @brief Returns the numerical id of the object
* @return This object's gl-id
@@ -149,7 +157,7 @@ public:
/** @brief Changes the microsimID of the object (happens in NETEDIT) */
- void setMicrosimID(const std::string& newID);
+ virtual void setMicrosimID(const std::string& newID);
/** @brief Returns the type of the object as coded in GUIGlObjectType
diff --git a/src/utils/gui/globjects/GUIGlObjectTypes.h b/src/utils/gui/globjects/GUIGlObjectTypes.h
index 7e79fb3..de8c97b 100644
--- a/src/utils/gui/globjects/GUIGlObjectTypes.h
+++ b/src/utils/gui/globjects/GUIGlObjectTypes.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIGlObjectTypes.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIGlObjectTypes.h 18890 2015-09-21 10:58:10Z namdre $
///
// A list of object types which may be displayed within the gui
// each type has an associated string which will be prefefixed to an object id
@@ -54,6 +54,8 @@ enum GUIGlObjectType {
/// @brief a junction
GLO_JUNCTION = 4,
/// @brief a tl-logic
+ GLO_CROSSING = 5,
+ /// @brief a tl-logic
GLO_TLLOGIC = 8,
/// @brief a detector
GLO_DETECTOR = 16,
diff --git a/src/utils/gui/globjects/GUIGlObject_AbstractAdd.cpp b/src/utils/gui/globjects/GUIGlObject_AbstractAdd.cpp
index 0331a94..c05e0d6 100644
--- a/src/utils/gui/globjects/GUIGlObject_AbstractAdd.cpp
+++ b/src/utils/gui/globjects/GUIGlObject_AbstractAdd.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 2004
-/// @version $Id: GUIGlObject_AbstractAdd.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIGlObject_AbstractAdd.cpp 19200 2015-10-28 16:48:07Z behrisch $
///
// Base class for additional objects (detectors etc.)
/****************************************************************************/
@@ -33,6 +33,7 @@
#include "GUIGlObject_AbstractAdd.h"
#include <cassert>
#include <iostream>
+#include <algorithm>
#include <utils/gui/div/GLHelper.h>
#include <foreign/polyfonts/polyfonts.h>
diff --git a/src/utils/gui/globjects/GUIPointOfInterest.cpp b/src/utils/gui/globjects/GUIPointOfInterest.cpp
index 1a7fe09..b0bb88d 100644
--- a/src/utils/gui/globjects/GUIPointOfInterest.cpp
+++ b/src/utils/gui/globjects/GUIPointOfInterest.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date June 2006
-/// @version $Id: GUIPointOfInterest.cpp 18421 2015-05-20 14:57:37Z namdre $
+/// @version $Id: GUIPointOfInterest.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// The GUI-version of a point of interest
/****************************************************************************/
@@ -107,7 +107,7 @@ GUIPointOfInterest::drawGL(const GUIVisualizationSettings& s) const {
glPushMatrix();
GLHelper::setColor(getColor());
glTranslated(x(), y(), getLayer());
- glRotated(getAngle(), 0, 0, 1);
+ glRotated(-getNaviDegree(), 0, 0, 1);
if (myImgFile != "") {
int textureID = GUITexturesHelper::getTextureID(myImgFile);
diff --git a/src/utils/gui/globjects/GUIPolygon.cpp b/src/utils/gui/globjects/GUIPolygon.cpp
index f9c1fbf..0ac5365 100644
--- a/src/utils/gui/globjects/GUIPolygon.cpp
+++ b/src/utils/gui/globjects/GUIPolygon.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date June 2006
-/// @version $Id: GUIPolygon.cpp 18722 2015-08-25 15:41:30Z namdre $
+/// @version $Id: GUIPolygon.cpp 19373 2015-11-18 09:57:34Z namdre $
///
// The GUI-version of a polygon
/****************************************************************************/
@@ -55,7 +55,7 @@ GUIPolygon::GUIPolygon(const std::string& id, const std::string& type,
Polygon(id, type, color, shape, fill, layer, angle, imgFile),
GUIGlObject_AbstractAdd("poly", GLO_POLYGON, id),
myDisplayList(0),
- myLineWidth(-1)
+ myLineWidth(1) // m
{}
@@ -161,15 +161,14 @@ GUIPolygon::drawGL(const GUIVisualizationSettings& s) const {
glPushName(getGlID());
glPushMatrix();
glTranslated(0, 0, getLayer());
- // XXX shape should be rotated around its center when initializing the polygon. do we even need this?
- //glRotated(getAngle(), 0, 0, 1);
+ glRotated(-getNaviDegree(), 0, 0, 1);
GLHelper::setColor(getColor());
int textureID = -1;
if (getFill()) {
const std::string& file = getImgFile();
if (file != "") {
- textureID = GUITexturesHelper::getTextureID(file);
+ textureID = GUITexturesHelper::getTextureID(file, true);
}
}
// init generation of texture coordinates
@@ -197,7 +196,7 @@ GUIPolygon::drawGL(const GUIVisualizationSettings& s) const {
}
// recall tesselation
//glCallList(myDisplayList);
- performTesselation(s.polySize.getExaggeration(s));
+ performTesselation(myLineWidth * s.polySize.getExaggeration(s));
// de-init generation of texture coordinates
if (textureID >= 0) {
glEnable(GL_DEPTH_TEST);
@@ -255,9 +254,8 @@ GUIPolygon::performTesselation(SUMOReal lineWidth) const {
delete[] points;
} else {
- myLineWidth = lineWidth;
GLHelper::drawLine(myShape);
- GLHelper::drawBoxLines(myShape, myLineWidth);
+ GLHelper::drawBoxLines(myShape, lineWidth);
}
//std::cout << "OpenGL says: '" << gluErrorString(glGetError()) << "'\n";
}
diff --git a/src/utils/gui/globjects/GUIPolygon.h b/src/utils/gui/globjects/GUIPolygon.h
index 16dc193..9989c38 100644
--- a/src/utils/gui/globjects/GUIPolygon.h
+++ b/src/utils/gui/globjects/GUIPolygon.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date June 2006
-/// @version $Id: GUIPolygon.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIPolygon.h 19373 2015-11-18 09:57:34Z namdre $
///
// The GUI-version of a polygon
/****************************************************************************/
@@ -105,13 +105,17 @@ public:
* @param[in] s The settings for the current view (may influence drawing)
* @see GUIGlObject::drawGL
*/
- void drawGL(const GUIVisualizationSettings& s) const;
+ virtual void drawGL(const GUIVisualizationSettings& s) const;
//@}
/// @brief set a new shape and update the tesselation
virtual void setShape(const PositionVector& shape);
+ /// @brief set a new shape and update the tesselation
+ void setLineWidth(SUMOReal lineWidth) {
+ myLineWidth = lineWidth;
+ }
private:
/// The mutex used to avoid concurrent updates of the shape
diff --git a/src/utils/gui/images/GUITexturesHelper.cpp b/src/utils/gui/images/GUITexturesHelper.cpp
index b7dfe84..695afdf 100644
--- a/src/utils/gui/images/GUITexturesHelper.cpp
+++ b/src/utils/gui/images/GUITexturesHelper.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Mon, 08.03.2004
-/// @version $Id: GUITexturesHelper.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUITexturesHelper.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// Global storage for textures; manages and draws them
/****************************************************************************/
@@ -122,10 +122,13 @@ GUITexturesHelper::drawTexturedBox(unsigned int which,
int
-GUITexturesHelper::getTextureID(const std::string& filename) {
+GUITexturesHelper::getTextureID(const std::string& filename, const bool mirrorX) {
if (myTextures.count(filename) == 0) {
try {
FXImage* i = MFXImageHelper::loadImage(GUIMainWindow::getInstance()->getApp(), filename);
+ if (mirrorX) {
+ i->mirror(false, true);
+ }
if (MFXImageHelper::scalePower2(i, getMaxTextureSize())) {
WRITE_WARNING("Scaling '" + filename + "'.");
}
diff --git a/src/utils/gui/images/GUITexturesHelper.h b/src/utils/gui/images/GUITexturesHelper.h
index b663263..0e353ff 100644
--- a/src/utils/gui/images/GUITexturesHelper.h
+++ b/src/utils/gui/images/GUITexturesHelper.h
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Sept 2006
-/// @version $Id: GUITexturesHelper.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUITexturesHelper.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Global storage for textures; manages and draws them
/****************************************************************************/
@@ -60,17 +60,17 @@ public:
/// @brief return texture id for the given filename (initialize on first use)
// @note return -1 on failure
- static int getTextureID(const std::string& filename);
+ static int getTextureID(const std::string& filename, const bool mirrorX = false);
/// @brief clears loaded textures
static void clearTextures();
- /// @brief don't draw any textures
+ /// @brief switch texture drawing on and off
static void allowTextures(const bool val) {
myAllowTextures = val;
}
- /// @brief clears loaded textures
+ /// @brief ask whether texture drawing is enabled
static bool texturesAllowed() {
return myAllowTextures;
}
diff --git a/src/utils/gui/settings/GUIPropertySchemeStorage.h b/src/utils/gui/settings/GUIPropertySchemeStorage.h
index ca53a5d..ca0fceb 100644
--- a/src/utils/gui/settings/GUIPropertySchemeStorage.h
+++ b/src/utils/gui/settings/GUIPropertySchemeStorage.h
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Laura Bieker
/// @date Mon, 20.07.2009
-/// @version $Id: GUIPropertySchemeStorage.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIPropertySchemeStorage.h 19535 2015-12-05 13:47:18Z behrisch $
///
//
/****************************************************************************/
@@ -87,6 +87,10 @@ public:
return mySchemes[myActiveScheme];
}
+ const std::vector<T>& getSchemes() const {
+ return mySchemes;
+ }
+
T* getSchemeByName(std::string name) {
for (typename std::vector<T>::iterator i = mySchemes.begin(); i != mySchemes.end(); ++i) {
if ((*i).getName() == name) {
diff --git a/src/utils/gui/settings/GUISettingsHandler.cpp b/src/utils/gui/settings/GUISettingsHandler.cpp
index 72d6e00..1c0c4c2 100644
--- a/src/utils/gui/settings/GUISettingsHandler.cpp
+++ b/src/utils/gui/settings/GUISettingsHandler.cpp
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Laura Bieker
/// @date Fri, 24. Apr 2009
-/// @version $Id: GUISettingsHandler.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUISettingsHandler.cpp 19379 2015-11-18 20:05:38Z namdre $
///
// The dialog to change the view (gui) settings.
/****************************************************************************/
@@ -235,12 +235,14 @@ GUISettingsHandler::myStartElement(int element,
break;
case SUMO_TAG_VIEWSETTINGS_JUNCTIONS:
mySettings.junctionColorer.setActive(TplConvert::_2int(attrs.getStringSecure("junctionMode", "0").c_str()));
- mySettings.drawLinkTLIndex = TplConvert::_2bool(attrs.getStringSecure("drawLinkTLIndex", toString(mySettings.drawLinkTLIndex)).c_str());
- mySettings.drawLinkJunctionIndex = TplConvert::_2bool(attrs.getStringSecure("drawLinkJunctionIndex", toString(mySettings.drawLinkJunctionIndex)).c_str());
+ mySettings.drawLinkTLIndex = parseTextSettings("drawLinkTLIndex", attrs, mySettings.drawLinkTLIndex);
+ mySettings.drawLinkJunctionIndex = parseTextSettings("drawLinkJunctionIndex", attrs, mySettings.drawLinkJunctionIndex);
mySettings.junctionName = parseTextSettings("junctionName", attrs, mySettings.junctionName);
mySettings.internalJunctionName = parseTextSettings("internalJunctionName", attrs, mySettings.internalJunctionName);
mySettings.showLane2Lane = TplConvert::_2bool(attrs.getStringSecure("showLane2Lane", toString(mySettings.showLane2Lane)).c_str());
mySettings.drawJunctionShape = TplConvert::_2bool(attrs.getStringSecure("drawShape", toString(mySettings.drawJunctionShape)).c_str());
+ mySettings.drawCrossingsAndWalkingareas = TplConvert::_2bool(attrs.getStringSecure(
+ "drawCrossingsAndWalkingareas", toString(mySettings.drawCrossingsAndWalkingareas)).c_str());
myCurrentColorer = element;
break;
case SUMO_TAG_VIEWSETTINGS_ADDITIONALS:
diff --git a/src/utils/gui/settings/GUIVisualizationSettings.cpp b/src/utils/gui/settings/GUIVisualizationSettings.cpp
index 6aab777..8c60626 100644
--- a/src/utils/gui/settings/GUIVisualizationSettings.cpp
+++ b/src/utils/gui/settings/GUIVisualizationSettings.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIVisualizationSettings.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: GUIVisualizationSettings.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// Stores the information about how to visualize structures
/****************************************************************************/
@@ -69,10 +69,14 @@ GUIVisualizationSettings::GUIVisualizationSettings()
containerQuality(0),
containerSize(1),
containerName(false, 50, RGBColor(0, 153, 204, 255)),
- drawLinkTLIndex(false), drawLinkJunctionIndex(false),
+ drawLinkTLIndex(false, 50, RGBColor(128, 128, 255, 255)),
+ drawLinkJunctionIndex(false, 50, RGBColor(128, 128, 255, 255)),
junctionName(false, 50, RGBColor(0, 255, 128, 255)),
internalJunctionName(false, 50, RGBColor(0, 204, 128, 255)),
- showLane2Lane(false), drawJunctionShape(true), addMode(0),
+ showLane2Lane(false),
+ drawJunctionShape(true),
+ drawCrossingsAndWalkingareas(true),
+ addMode(0),
addSize(1),
addName(false, 50, RGBColor(255, 0, 128, 255)),
poiSize(0), poiName(false, 50, RGBColor(255, 0, 128, 255)),
@@ -90,6 +94,7 @@ GUIVisualizationSettings::GUIVisualizationSettings()
scheme.addColor(RGBColor(0, 0, 0, 0), 3, "green verge");
scheme.addColor(RGBColor(150, 200, 200), 4, "waterway");
scheme.addColor(RGBColor(92, 92, 92), 5, "no passenger"); // paths, service roads etc
+ scheme.addColor(RGBColor::RED, 6, "closed"); // road closing
laneColorer.addScheme(scheme);
scheme = GUIColorScheme("by selection (lane-/streetwise)", RGBColor(128, 128, 128, 255), "unselected", true);
scheme.addColor(RGBColor(0, 80, 180, 255), 1, "selected");
@@ -248,8 +253,8 @@ GUIVisualizationSettings::GUIVisualizationSettings()
scheme = GUIColorScheme("by time since lane change", RGBColor(179, 179, 179, 255), "0");
scheme.addColor(RGBColor(189, 189, 179, 255), -180);
scheme.addColor(RGBColor(255, 255, 0, 255), -20);
- scheme.addColor(RGBColor(255, 0, 0, 255), -1);
- scheme.addColor(RGBColor(0, 0, 255, 255), 1);
+ scheme.addColor(RGBColor(255, 0, 0, 255), -0.001);
+ scheme.addColor(RGBColor(0, 0, 255, 255), 0.001);
scheme.addColor(RGBColor(0, 255, 255, 255), 20);
scheme.addColor(RGBColor(179, 189, 189, 255), 180);
scheme.setAllowsNegativeValues(true);
@@ -310,6 +315,12 @@ GUIVisualizationSettings::GUIVisualizationSettings()
scheme.addColor(RGBColor(0, 0, 255, 255), 2);
scheme.setAllowsNegativeValues(true);
vehicleColorer.addScheme(scheme);
+ scheme = GUIColorScheme("by depart delay", RGBColor::BLUE);
+ scheme.addColor(RGBColor::CYAN, (SUMOReal)30);
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)100);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)200);
+ scheme.addColor(RGBColor::RED, (SUMOReal)300);
+ vehicleColorer.addScheme(scheme);
vehicleColorer.addScheme(GUIColorScheme("random", RGBColor::YELLOW, "", true));
/// add person coloring schemes
@@ -382,6 +393,8 @@ GUIVisualizationSettings::GUIVisualizationSettings()
scheme.addColor(RGBColor::MAGENTA, 7, "unregulated");
scheme.addColor(RGBColor::BLACK, 8, "dead_end");
scheme.addColor(RGBColor::ORANGE, 9, "rail_signal");
+ scheme.addColor(RGBColor(192, 128, 64), 10, "zipper");
+ scheme.addColor(RGBColor(192, 255, 192), 11, "traffic_light_right_on_red");
junctionColorer.addScheme(scheme);
@@ -484,15 +497,24 @@ GUIVisualizationSettings::GUIVisualizationSettings()
scheme.addColor(RGBColor::RED, (SUMOReal)0.95);
edgeColorer.addScheme(scheme);
scheme = GUIColorScheme("by current speed (streetwise)", RGBColor::RED);
- scheme.addColor(RGBColor::BLUE, (SUMOReal)(150.0 / 3.6));
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)(30 / 3.6));
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)(55 / 3.6));
+ scheme.addColor(RGBColor::CYAN, (SUMOReal)(80 / 3.6));
+ scheme.addColor(RGBColor::BLUE, (SUMOReal)(120 / 3.6));
+ scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(150 / 3.6));
edgeColorer.addScheme(scheme);
scheme = GUIColorScheme("by current flow (streetwise)", RGBColor::BLUE);
scheme.addColor(RGBColor::RED, (SUMOReal)5000);
edgeColorer.addScheme(scheme);
scheme = GUIColorScheme("by relative speed (streetwise)", RGBColor::RED);
- scheme.addColor(RGBColor::BLUE, (SUMOReal)1);
+ scheme.addColor(RGBColor::YELLOW, (SUMOReal)(0.25));
+ scheme.addColor(RGBColor::GREEN, (SUMOReal)(0.5));
+ scheme.addColor(RGBColor::CYAN, (SUMOReal)(0.75));
+ scheme.addColor(RGBColor::BLUE, (SUMOReal)(1));
+ scheme.addColor(RGBColor::MAGENTA, (SUMOReal)(1.25));
edgeColorer.addScheme(scheme);
+
/// add edge scaling schemes
{
edgeScaler.addScheme(GUIScaleScheme("uniform", 1, "", true));
@@ -639,8 +661,12 @@ GUIVisualizationSettings::save(OutputDevice& dev) const {
// junctions
dev.openTag(SUMO_TAG_VIEWSETTINGS_JUNCTIONS);
dev.writeAttr("junctionMode", junctionColorer.getActive());
- dev.writeAttr("drawLinkTLIndex", drawLinkTLIndex);
- dev.writeAttr("drawLinkJunctionIndex", drawLinkJunctionIndex);
+ dev.lf();
+ dev << " ";
+ drawLinkTLIndex.print(dev, "drawLinkTLIndex");
+ dev.lf();
+ dev << " ";
+ drawLinkTLIndex.print(dev, "drawLinkJunctionIndex");
dev.lf();
dev << " ";
junctionName.print(dev, "junctionName");
@@ -651,6 +677,7 @@ GUIVisualizationSettings::save(OutputDevice& dev) const {
dev << " ";
dev.writeAttr("showLane2Lane", showLane2Lane);
dev.writeAttr("drawShape", drawJunctionShape);
+ dev.writeAttr("drawCrossingsAndWalkingareas", drawCrossingsAndWalkingareas);
junctionColorer.save(dev);
dev.closeTag();
// additionals
@@ -814,6 +841,10 @@ GUIVisualizationSettings::operator==(const GUIVisualizationSettings& v2) {
return false;
}
+ if (drawCrossingsAndWalkingareas != v2.drawCrossingsAndWalkingareas) {
+ return false;
+ }
+
if (addMode != v2.addMode) {
return false;
}
diff --git a/src/utils/gui/settings/GUIVisualizationSettings.h b/src/utils/gui/settings/GUIVisualizationSettings.h
index 835a891..746f27b 100644
--- a/src/utils/gui/settings/GUIVisualizationSettings.h
+++ b/src/utils/gui/settings/GUIVisualizationSettings.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIVisualizationSettings.h 18421 2015-05-20 14:57:37Z namdre $
+/// @version $Id: GUIVisualizationSettings.h 19379 2015-11-18 20:05:38Z namdre $
///
// Stores the information about how to visualize structures
/****************************************************************************/
@@ -226,16 +226,14 @@ public:
/// @brief The junction colorer
GUIColorer junctionColorer;
- /// @brief Information whether a link's tls index shall be drawn
- bool drawLinkTLIndex;
- /// @brief Information whether a link's junction index shall be drawn
- bool drawLinkJunctionIndex;
- // Setting bundles for optional drawing junction names
- GUIVisualizationTextSettings junctionName, internalJunctionName;
+ // Setting bundles for optional drawing junction names and indices
+ GUIVisualizationTextSettings drawLinkTLIndex, drawLinkJunctionIndex, junctionName, internalJunctionName;
/// @brief Information whether lane-to-lane arrows shall be drawn
bool showLane2Lane;
/// @brief whether the shape of the junction should be drawn
bool drawJunctionShape;
+ /// @brief whether crosings and walkingareas shall be drawn
+ bool drawCrossingsAndWalkingareas;
//@}
diff --git a/src/utils/gui/windows/GUIAppEnum.h b/src/utils/gui/windows/GUIAppEnum.h
index f935af8..6cc647d 100644
--- a/src/utils/gui/windows/GUIAppEnum.h
+++ b/src/utils/gui/windows/GUIAppEnum.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Andreas Gaubatz
/// @date Mon, 08.03.2004
-/// @version $Id: GUIAppEnum.h 18296 2015-04-24 12:41:38Z namdre $
+/// @version $Id: GUIAppEnum.h 19535 2015-12-05 13:47:18Z behrisch $
///
// Message and object IDs used by the FOX-version of the gui
/****************************************************************************/
@@ -123,10 +123,12 @@ enum {
/// @name Edit Menu Item - IDs
//@{
- /// Open chosen editor - ID
+ /// Open editor for selections
MID_EDITCHOSEN,
/// Edit simulation breakpoints
MID_EDIT_BREAKPOINTS,
+ /// Open in netedit
+ MID_NETEDIT,
//@}
@@ -217,6 +219,8 @@ enum {
MID_COPY_NAME,
/// Copy typed object name - popup entry
MID_COPY_TYPED_NAME,
+ /// Copy edge name (for lanes only)
+ MID_COPY_EDGE_NAME,
/// Copy cursor position - popup entry
MID_COPY_CURSOR_POSITION,
/// Copy cursor geo-coordinate position - popup entry
@@ -293,6 +297,8 @@ enum {
MID_QUITONSIMEND,
/// Allow textures - Option
MID_ALLOWTEXTURES,
+ /// Locate links in messages - Option
+ MID_LOCATELINKS,
//@}
@@ -349,6 +355,16 @@ enum {
MID_SIMPLE_VIEW_SAVE_DECALS,
//@}
+ /** help button */
+ MID_HELP,
+
+ /// @name dynamic interaction with the simulation via SUMO-GUI
+ //@{
+ MID_CLOSE_LANE,
+ MID_CLOSE_EDGE,
+ MID_ADD_REROUTER,
+ //@}
+
/// @name NETEDIT Message IDs
//@{
@@ -437,6 +453,14 @@ enum {
MID_GNE_SET_EDGE_ENDPOINT,
/** restore geometry endpoint to node position */
MID_GNE_RESET_EDGE_ENDPOINT,
+ /** remove inner geometry */
+ MID_GNE_STRAIGHTEN,
+ /** simplify polygon geometry */
+ MID_GNE_SIMPLIFY_SHAPE,
+ /** delete geometry point */
+ MID_GNE_DELETE_GEOMETRY,
+ /** duplicate a lane */
+ MID_GNE_DUPLICATE_LANE,
/** set object as template*/
MID_GNE_SET_TEMPLATE,
/** copy template*/
@@ -452,9 +476,6 @@ enum {
/** changes the visual scaling of selected items */
MID_GNE_SELECT_SCALE,
- /** help button */
- MID_GNE_HELP,
-
//@}
MID_LAST
diff --git a/src/utils/gui/windows/GUIDanielPerspectiveChanger.cpp b/src/utils/gui/windows/GUIDanielPerspectiveChanger.cpp
index 5df8049..27e701c 100644
--- a/src/utils/gui/windows/GUIDanielPerspectiveChanger.cpp
+++ b/src/utils/gui/windows/GUIDanielPerspectiveChanger.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIDanielPerspectiveChanger.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: GUIDanielPerspectiveChanger.cpp 18975 2015-10-01 06:18:36Z behrisch $
///
// A class that allows to steer the visual output in dependence to
/****************************************************************************/
@@ -181,9 +181,9 @@ void
GUIDanielPerspectiveChanger::onMouseWheel(void* data) {
FXEvent* e = (FXEvent*) data;
SUMOReal diff = 0.1;
- if (e->state & CONTROLMASK) {
+ if ((e->state & CONTROLMASK) != 0) {
diff /= 2;
- } else if (e->state & SHIFTMASK) {
+ } else if ((e->state & SHIFTMASK) != 0) {
diff *= 2;
}
if (e->code < 0) {
diff --git a/src/utils/gui/windows/GUIDialog_GLObjChooser.cpp b/src/utils/gui/windows/GUIDialog_GLObjChooser.cpp
index e8a9188..f5e90b1 100644
--- a/src/utils/gui/windows/GUIDialog_GLObjChooser.cpp
+++ b/src/utils/gui/windows/GUIDialog_GLObjChooser.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Sept 2002
-/// @version $Id: GUIDialog_GLObjChooser.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GUIDialog_GLObjChooser.cpp 18878 2015-09-20 02:04:56Z namdre $
///
// Class for the window that allows to choose a street, junction or vehicle
/****************************************************************************/
@@ -98,11 +98,11 @@ GUIDialog_GLObjChooser::GUIDialog_GLObjChooser(
this, MID_CHOOSER_CENTER, ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
0, 0, 0, 0, 4, 4, 4, 4);
new FXHorizontalSeparator(layout, SEPARATOR_GROOVE | LAYOUT_FILL_X);
- new FXButton(layout, "Hide Unselected\t\t", GUIIconSubSys::getIcon(ICON_FLAG),
+ new FXButton(layout, "&Hide Unselected\t\t", GUIIconSubSys::getIcon(ICON_FLAG),
this, MID_CHOOSER_FILTER, ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
0, 0, 0, 0, 4, 4, 4, 4);
new FXHorizontalSeparator(layout, SEPARATOR_GROOVE | LAYOUT_FILL_X);
- new FXButton(layout, "Close\t\t", GUIIconSubSys::getIcon(ICON_NO),
+ new FXButton(layout, "&Close\t\t", GUIIconSubSys::getIcon(ICON_NO),
this, MID_CANCEL, ICON_BEFORE_TEXT | LAYOUT_FILL_X | FRAME_THICK | FRAME_RAISED,
0, 0, 0, 0, 4, 4, 4, 4);
diff --git a/src/utils/gui/windows/GUIDialog_ViewSettings.cpp b/src/utils/gui/windows/GUIDialog_ViewSettings.cpp
index 45a861f..61bb0a6 100644
--- a/src/utils/gui/windows/GUIDialog_ViewSettings.cpp
+++ b/src/utils/gui/windows/GUIDialog_ViewSettings.cpp
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Wed, 21. Dec 2005
-/// @version $Id: GUIDialog_ViewSettings.cpp 18421 2015-05-20 14:57:37Z namdre $
+/// @version $Id: GUIDialog_ViewSettings.cpp 19379 2015-11-18 20:05:38Z namdre $
///
// The dialog to change the view (gui) settings.
/****************************************************************************/
@@ -262,8 +262,6 @@ GUIDialog_ViewSettings::GUIDialog_ViewSettings(GUISUMOAbstractView* parent,
// edge name
myEdgeNamePanel = new NamePanel(m22, this, "Show edge name", mySettings->edgeName);
myStreetNamePanel = new NamePanel(m22, this, "Show street name", mySettings->streetName);
- myInternalEdgeNamePanel = new NamePanel(m22, this, "Show internal edge name", mySettings->internalEdgeName);
- myCwaEdgeNamePanel = new NamePanel(m22, this, "Show crossing and walkingarea name", mySettings->cwaEdgeName);
}
{
// vehicles
@@ -450,19 +448,19 @@ GUIDialog_ViewSettings::GUIDialog_ViewSettings(GUISUMOAbstractView* parent,
FXMatrix* m42 =
new FXMatrix(frame4, 2, LAYOUT_FILL_X | LAYOUT_TOP | LAYOUT_LEFT | MATRIX_BY_COLUMNS,
0, 0, 0, 0, 10, 10, 10, 10, 5, 5);
- myShowTLIndex = new FXCheckButton(m42, "Show link tls index", this, MID_SIMPLE_VIEW_COLORCHANGE);
- myShowTLIndex->setCheck(mySettings->drawLinkTLIndex);
- new FXLabel(m42, " ", 0, LAYOUT_CENTER_Y);
- myShowJunctionIndex = new FXCheckButton(m42, "Show link junction index", this, MID_SIMPLE_VIEW_COLORCHANGE);
- myShowJunctionIndex->setCheck(mySettings->drawLinkJunctionIndex);
- new FXLabel(m42, " ", 0, LAYOUT_CENTER_Y);
+ myTLIndexPanel = new NamePanel(m42, this, "Show link tls index", mySettings->drawLinkTLIndex);
+ myJunctionIndexPanel = new NamePanel(m42, this, "Show link junction index", mySettings->drawLinkJunctionIndex);
myShowLane2Lane = new FXCheckButton(m42, "Show lane to lane connections", this, MID_SIMPLE_VIEW_COLORCHANGE);
myShowLane2Lane->setCheck(mySettings->showLane2Lane);
new FXLabel(m42, " ", 0, LAYOUT_CENTER_Y);
myJunctionNamePanel = new NamePanel(m42, this, "Show junction name", mySettings->junctionName);
myInternalJunctionNamePanel = new NamePanel(m42, this, "Show internal junction name", mySettings->internalJunctionName);
+ myInternalEdgeNamePanel = new NamePanel(m42, this, "Show internal edge name", mySettings->internalEdgeName);
+ myCwaEdgeNamePanel = new NamePanel(m42, this, "Show crossing and walkingarea name", mySettings->cwaEdgeName);
myDrawJunctionShape = new FXCheckButton(m42, "Draw junction shape", this, MID_SIMPLE_VIEW_COLORCHANGE);
myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
+ myDrawCrossingsAndWalkingAreas = new FXCheckButton(m42, "Draw crossings/walkingareas", this, MID_SIMPLE_VIEW_COLORCHANGE);
+ myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
} {
// detectors / triggers
new FXTabItem(tabbook, "Detectors/Trigger", NULL, TAB_LEFT_NORMAL, 0, 0, 0, 0, 4, 8, 4, 4);
@@ -574,6 +572,8 @@ GUIDialog_ViewSettings::~GUIDialog_ViewSettings() {
delete myInternalEdgeNamePanel;
delete myCwaEdgeNamePanel;
delete myStreetNamePanel;
+ delete myJunctionIndexPanel;
+ delete myTLIndexPanel;
delete myJunctionNamePanel;
delete myVehicleNamePanel;
delete myAddNamePanel;
@@ -669,8 +669,8 @@ GUIDialog_ViewSettings::onCmdNameChange(FXObject*, FXSelector, void* data) {
myContainerSizePanel->update(mySettings->containerSize);
myJunctionColorMode->setCurrentItem((FXint) mySettings->junctionColorer.getActive());
- myShowTLIndex->setCheck(mySettings->drawLinkTLIndex);
- myShowJunctionIndex->setCheck(mySettings->drawLinkJunctionIndex);
+ myTLIndexPanel->update(mySettings->drawLinkTLIndex);
+ myJunctionIndexPanel->update(mySettings->drawLinkJunctionIndex);
myJunctionNamePanel->update(mySettings->junctionName);
myInternalJunctionNamePanel->update(mySettings->internalJunctionName);
@@ -687,6 +687,7 @@ GUIDialog_ViewSettings::onCmdNameChange(FXObject*, FXSelector, void* data) {
myShowLane2Lane->setCheck(mySettings->showLane2Lane);
myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
+ myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
myAntialiase->setCheck(mySettings->antialiase);
myDither->setCheck(mySettings->dither);
myShowSizeLegend->setCheck(mySettings->showSizeLegend);
@@ -864,8 +865,8 @@ GUIDialog_ViewSettings::onCmdColorChange(FXObject* sender, FXSelector, void* /*v
tmpSettings.containerSize = myContainerSizePanel->getSettings();
tmpSettings.junctionColorer.setActive(myJunctionColorMode->getCurrentItem());
- tmpSettings.drawLinkTLIndex = (myShowTLIndex->getCheck() != FALSE);
- tmpSettings.drawLinkJunctionIndex = (myShowJunctionIndex->getCheck() != FALSE);
+ tmpSettings.drawLinkTLIndex = myTLIndexPanel->getSettings();
+ tmpSettings.drawLinkJunctionIndex = myJunctionIndexPanel->getSettings();
tmpSettings.junctionName = myJunctionNamePanel->getSettings();
tmpSettings.internalJunctionName = myInternalJunctionNamePanel->getSettings();
@@ -882,6 +883,7 @@ GUIDialog_ViewSettings::onCmdColorChange(FXObject* sender, FXSelector, void* /*v
tmpSettings.showLane2Lane = (myShowLane2Lane->getCheck() != FALSE);
tmpSettings.drawJunctionShape = (myDrawJunctionShape->getCheck() != FALSE);
+ tmpSettings.drawCrossingsAndWalkingareas = (myDrawCrossingsAndWalkingAreas->getCheck() != FALSE);
tmpSettings.antialiase = (myAntialiase->getCheck() != FALSE);
tmpSettings.dither = (myDither->getCheck() != FALSE);
tmpSettings.showSizeLegend = (myShowSizeLegend->getCheck() != FALSE);
@@ -1023,6 +1025,9 @@ GUIDialog_ViewSettings::loadSettings(const std::string& file) {
myParent->update();
myDecalsLock->unlock();
}
+ if (handler.getDelay() >= 0) {
+ myParent->setDelay(handler.getDelay());
+ }
Position lookFrom, lookAt;
handler.setViewport(lookFrom, lookAt);
if (lookFrom.z() > 0) {
diff --git a/src/utils/gui/windows/GUIDialog_ViewSettings.h b/src/utils/gui/windows/GUIDialog_ViewSettings.h
index 20f3d59..7e1d26f 100644
--- a/src/utils/gui/windows/GUIDialog_ViewSettings.h
+++ b/src/utils/gui/windows/GUIDialog_ViewSettings.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Wed, 21. Dec 2005
-/// @version $Id: GUIDialog_ViewSettings.h 18421 2015-05-20 14:57:37Z namdre $
+/// @version $Id: GUIDialog_ViewSettings.h 19379 2015-11-18 20:05:38Z namdre $
///
// The dialog to change the view (gui) settings.
/****************************************************************************/
@@ -307,15 +307,16 @@ private:
std::vector<FXRealSpinDial*> myJunctionThresholds;
std::vector<FXButton*> myJunctionButtons;
FXCheckButton* myJunctionColorInterpolation;
- FXCheckButton* myShowTLIndex, *myShowJunctionIndex;
FXCheckButton* myShowLane2Lane;
FXCheckButton* myDrawJunctionShape;
+ FXCheckButton* myDrawCrossingsAndWalkingAreas;
FXCheckButton* myAntialiase;
FXCheckButton* myDither;
FXCheckButton* myShowSizeLegend;
NamePanel* myEdgeNamePanel, *myInternalEdgeNamePanel, *myCwaEdgeNamePanel, *myStreetNamePanel,
+ *myJunctionIndexPanel, *myTLIndexPanel,
*myJunctionNamePanel, *myInternalJunctionNamePanel,
*myVehicleNamePanel, *myPersonNamePanel, *myContainerNamePanel,
*myAddNamePanel, *myPOINamePanel, *myPolyNamePanel, *myPOITypePanel, *myPolyTypePanel;
diff --git a/src/utils/gui/windows/GUIMainWindow.h b/src/utils/gui/windows/GUIMainWindow.h
index 199be45..0903aca 100644
--- a/src/utils/gui/windows/GUIMainWindow.h
+++ b/src/utils/gui/windows/GUIMainWindow.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Fri, 29.04.2005
-/// @version $Id: GUIMainWindow.h 18761 2015-09-01 14:15:44Z behrisch $
+/// @version $Id: GUIMainWindow.h 18984 2015-10-01 13:49:53Z namdre $
///
//
/****************************************************************************/
@@ -99,6 +99,10 @@ public:
return 0;
}
+ /** @brief Sets the delay of the parent application
+ */
+ virtual void setDelay(SUMOReal) {}
+
/** @brief Sends an event from the application thread to the GUI and waits until it is handled
* @param event the event to send
*/
diff --git a/src/utils/gui/windows/GUISUMOAbstractView.cpp b/src/utils/gui/windows/GUISUMOAbstractView.cpp
index 094ebce..1d017e2 100644
--- a/src/utils/gui/windows/GUISUMOAbstractView.cpp
+++ b/src/utils/gui/windows/GUISUMOAbstractView.cpp
@@ -6,7 +6,7 @@
/// @author Laura Bieker
/// @author Andreas Gaubatz
/// @date Sept 2002
-/// @version $Id: GUISUMOAbstractView.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: GUISUMOAbstractView.cpp 18984 2015-10-01 13:49:53Z namdre $
///
// The base class for a view
/****************************************************************************/
@@ -592,7 +592,7 @@ GUISUMOAbstractView::onLeftBtnPress(FXObject*, FXSelector , void* data) {
setFocus();
FXEvent* e = (FXEvent*) data;
// check whether the selection-mode is activated
- if (e->state & CONTROLMASK) {
+ if ((e->state & CONTROLMASK) != 0) {
// try to get the object-id if so
if (makeCurrent()) {
unsigned int id = getObjectUnderCursor();
@@ -1123,5 +1123,11 @@ GUISUMOAbstractView::getDelay() const {
return myApp->getDelay();
}
+
+void
+GUISUMOAbstractView::setDelay(SUMOReal delay) {
+ myApp->setDelay(delay);
+}
+
/****************************************************************************/
diff --git a/src/utils/gui/windows/GUISUMOAbstractView.h b/src/utils/gui/windows/GUISUMOAbstractView.h
index 17e5f70..8de29f7 100644
--- a/src/utils/gui/windows/GUISUMOAbstractView.h
+++ b/src/utils/gui/windows/GUISUMOAbstractView.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Andreas Gaubatz
/// @date Sept 2002
-/// @version $Id: GUISUMOAbstractView.h 18725 2015-08-25 21:08:12Z behrisch $
+/// @version $Id: GUISUMOAbstractView.h 19535 2015-12-05 13:47:18Z behrisch $
///
// The base class for a view
/****************************************************************************/
@@ -314,6 +314,10 @@ public:
*/
SUMOReal getDelay() const;
+ /** @brief Sets the delay of the parent application
+ */
+ void setDelay(SUMOReal delay);
+
protected:
/// performs the painting of the simulation
void paintGL();
diff --git a/src/utils/iodevices/OutputDevice.cpp b/src/utils/iodevices/OutputDevice.cpp
index 9f31882..6551f3d 100644
--- a/src/utils/iodevices/OutputDevice.cpp
+++ b/src/utils/iodevices/OutputDevice.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 2004
-/// @version $Id: OutputDevice.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: OutputDevice.cpp 19506 2015-12-03 12:44:22Z behrisch $
///
// Static storage of an output device and its base (abstract) implementation
/****************************************************************************/
@@ -87,7 +87,7 @@ OutputDevice::getDevice(const std::string& name) {
} else {
const size_t len = name.length();
std::string name2 = name;
- if (OptionsCont::getOptions().isSet("output-prefix")) {
+ if (OptionsCont::getOptions().isSet("output-prefix") && name != "/dev/null") {
std::string prefix = OptionsCont::getOptions().getString("output-prefix");
size_t metaTimeIndex = prefix.find("TIME");
if (metaTimeIndex != std::string::npos) {
diff --git a/src/utils/iodevices/OutputDevice_File.cpp b/src/utils/iodevices/OutputDevice_File.cpp
index 86f6774..e5e84f1 100644
--- a/src/utils/iodevices/OutputDevice_File.cpp
+++ b/src/utils/iodevices/OutputDevice_File.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 2004
-/// @version $Id: OutputDevice_File.cpp 18310 2015-04-28 06:14:09Z behrisch $
+/// @version $Id: OutputDevice_File.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// An output device that encapsulates an ofstream
/****************************************************************************/
@@ -49,13 +49,9 @@ OutputDevice_File::OutputDevice_File(const std::string& fullName, const bool bin
#ifdef WIN32
if (fullName == "/dev/null") {
myFileStream = new std::ofstream("NUL");
-#else
- if (fullName == "nul" || fullName == "NUL") {
- myFileStream = new std::ofstream("/dev/null");
+ } else
#endif
- } else {
myFileStream = new std::ofstream(fullName.c_str(), binary ? std::ios::binary : std::ios_base::out);
- }
if (!myFileStream->good()) {
delete myFileStream;
throw IOError("Could not build output file '" + fullName + "' (" + std::strerror(errno) + ").");
diff --git a/src/utils/shapes/PointOfInterest.h b/src/utils/shapes/PointOfInterest.h
index e2ca34a..b224dc6 100644
--- a/src/utils/shapes/PointOfInterest.h
+++ b/src/utils/shapes/PointOfInterest.h
@@ -5,7 +5,7 @@
/// @author Michael Behrisch
/// @author Melanie Knocke
/// @date 2005-09-15
-/// @version $Id: PointOfInterest.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: PointOfInterest.h 19535 2015-12-05 13:47:18Z behrisch $
///
// A point-of-interest (2D)
/****************************************************************************/
@@ -33,8 +33,11 @@
#include <config.h>
#endif
-#include <utils/geom/Position.h>
#include <utils/common/Parameterised.h>
+#include <utils/common/StringUtils.h>
+#include <utils/geom/GeoConvHelper.h>
+#include <utils/geom/Position.h>
+#include <utils/iodevices/OutputDevice.h>
#include "Shape.h"
@@ -108,6 +111,45 @@ public:
/// @}
+ /* @brief POI definition to the given device
+ * @param[in] geo Whether to write the output in geo-coordinates
+ */
+ void writeXML(OutputDevice& out, bool geo = false, const SUMOReal zOffset = 0.) {
+ out.openTag(SUMO_TAG_POI);
+ out.writeAttr(SUMO_ATTR_ID, StringUtils::escapeXML(getID()));
+ out.writeAttr(SUMO_ATTR_TYPE, StringUtils::escapeXML(getType()));
+ out.writeAttr(SUMO_ATTR_COLOR, getColor());
+ out.writeAttr(SUMO_ATTR_LAYER, getLayer() + zOffset);
+ if (geo) {
+ Position pos(*this);
+ GeoConvHelper::getFinal().cartesian2geo(pos);
+ out.writeAttr(SUMO_ATTR_LON, pos.x());
+ out.writeAttr(SUMO_ATTR_LAT, pos.y());
+ } else {
+ out.writeAttr(SUMO_ATTR_X, x());
+ out.writeAttr(SUMO_ATTR_Y, y());
+ }
+ if (getNaviDegree() != Shape::DEFAULT_ANGLE) {
+ out.writeAttr(SUMO_ATTR_ANGLE, getNaviDegree());
+ }
+ if (getImgFile() != Shape::DEFAULT_IMG_FILE) {
+ out.writeAttr(SUMO_ATTR_IMGFILE, getImgFile());
+ }
+ if (getWidth() != Shape::DEFAULT_IMG_WIDTH) {
+ out.writeAttr(SUMO_ATTR_WIDTH, getWidth());
+ }
+ if (getHeight() != Shape::DEFAULT_IMG_HEIGHT) {
+ out.writeAttr(SUMO_ATTR_HEIGHT, getHeight());
+ }
+ for (std::map<std::string, std::string>::const_iterator j = getMap().begin(); j != getMap().end(); ++j) {
+ out.openTag(SUMO_TAG_PARAM);
+ out.writeAttr(SUMO_ATTR_KEY, (*j).first);
+ out.writeAttr(SUMO_ATTR_VALUE, (*j).second);
+ out.closeTag();
+ }
+ out.closeTag();
+ }
+
protected:
///@brief The half width of the image when rendering this POI
diff --git a/src/utils/shapes/Polygon.cpp b/src/utils/shapes/Polygon.cpp
index a967289..aabbe3f 100644
--- a/src/utils/shapes/Polygon.cpp
+++ b/src/utils/shapes/Polygon.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date Jun 2004
-/// @version $Id: Polygon.cpp 18137 2015-03-24 15:12:38Z behrisch $
+/// @version $Id: Polygon.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// A 2D-polygon
/****************************************************************************/
@@ -72,8 +72,8 @@ Polygon::writeXML(OutputDevice& out, bool geo) {
}
}
out.writeAttr(SUMO_ATTR_SHAPE, shape);
- if (getAngle() != Shape::DEFAULT_ANGLE) {
- out.writeAttr(SUMO_ATTR_ANGLE, getAngle());
+ if (getNaviDegree() != Shape::DEFAULT_ANGLE) {
+ out.writeAttr(SUMO_ATTR_ANGLE, getNaviDegree());
}
if (getImgFile() != Shape::DEFAULT_IMG_FILE) {
out.writeAttr(SUMO_ATTR_IMGFILE, getImgFile());
diff --git a/src/utils/shapes/Shape.cpp b/src/utils/shapes/Shape.cpp
index a7b896c..cc72f1f 100644
--- a/src/utils/shapes/Shape.cpp
+++ b/src/utils/shapes/Shape.cpp
@@ -3,7 +3,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Oct 2012
-/// @version $Id: Shape.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: Shape.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// A 2D- or 3D-Shape
/****************************************************************************/
@@ -55,7 +55,7 @@ Shape::Shape(const std::string& id, const std::string& type,
myType(type),
myColor(color),
myLayer(layer),
- myAngle(angle),
+ myNaviDegreeAngle(angle),
myImgFile(imgFile)
{}
diff --git a/src/utils/shapes/Shape.h b/src/utils/shapes/Shape.h
index 1a37277..902cb21 100644
--- a/src/utils/shapes/Shape.h
+++ b/src/utils/shapes/Shape.h
@@ -3,7 +3,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Oct 2012
-/// @version $Id: Shape.h 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: Shape.h 19234 2015-11-02 11:26:19Z behrisch $
///
// A 2D- or 3D-Shape
/****************************************************************************/
@@ -50,7 +50,7 @@ public:
* @param[in] type The (abstract) type of the shape
* @param[in] color The color of the shape
* @param[in] layer The layer of the shape
- * @param[in] angle The rotation of the shape
+ * @param[in] angle The rotation of the shape in navigational degrees
* @param[in] imgFile The raster image of the shape
*/
Shape(const std::string& id, const std::string& type,
@@ -88,11 +88,11 @@ public:
return myLayer;
}
- /** @brief Returns the angle of the Shape
+ /** @brief Returns the angle of the Shape in navigational degrees
* @return The Shape's rotation angle
*/
- inline SUMOReal getAngle() const {
- return myAngle;
+ inline SUMOReal getNaviDegree() const {
+ return myNaviDegreeAngle;
}
/** @brief Returns the imgFile of the Shape
@@ -131,11 +131,11 @@ public:
}
- /** @brief Sets a new angle
+ /** @brief Sets a new angle in navigational degrees
* @param[in] layer The new angle to use
*/
- inline void setAngle(const SUMOReal angle) {
- myAngle = angle;
+ inline void setNaviDegree(const SUMOReal angle) {
+ myNaviDegreeAngle = angle;
}
/** @brief Sets a new imgFile
@@ -164,7 +164,7 @@ protected:
SUMOReal myLayer;
/// @brief The angle of the Shape
- SUMOReal myAngle;
+ SUMOReal myNaviDegreeAngle;
/// @brief The angle of the Shape
std::string myImgFile;
diff --git a/src/utils/shapes/ShapeHandler.cpp b/src/utils/shapes/ShapeHandler.cpp
index ba18f8c..4ec583d 100644
--- a/src/utils/shapes/ShapeHandler.cpp
+++ b/src/utils/shapes/ShapeHandler.cpp
@@ -3,7 +3,7 @@
/// @file ShapeHandler.cpp
/// @author Jakob Erdmann
/// @date Feb 2015
-/// @version $Id: ShapeHandler.cpp 18096 2015-03-17 09:50:59Z behrisch $
+/// @version $Id: ShapeHandler.cpp 19234 2015-11-02 11:26:19Z behrisch $
///
// The XML-Handler for network loading
/****************************************************************************/
@@ -153,10 +153,8 @@ ShapeHandler::addPoly(const SUMOSAXAttributes& attrs) {
if (imgFile != "" && !FileHelpers::isAbsolute(imgFile)) {
imgFile = FileHelpers::getConfigurationRelative(getFileName(), imgFile);
}
- if (shape.size() != 0) {
- if (!myShapeContainer.addPolygon(id, type, color, layer, angle, imgFile, shape, fill)) {
- WRITE_WARNING("Skipping redefinition of polygon '" + id + "'.");
- }
+ if (!myShapeContainer.addPolygon(id, type, color, layer, angle, imgFile, shape, fill)) {
+ WRITE_ERROR("Polygon '" + id + "' already exists.");
}
}
diff --git a/src/utils/traci/TraCIAPI.cpp b/src/utils/traci/TraCIAPI.cpp
index 9eb8936..ca0af92 100644
--- a/src/utils/traci/TraCIAPI.cpp
+++ b/src/utils/traci/TraCIAPI.cpp
@@ -5,7 +5,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date 30.05.2012
-/// @version $Id: TraCIAPI.cpp 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: TraCIAPI.cpp 19535 2015-12-05 13:47:18Z behrisch $
///
// C++ TraCI client API implementation
/****************************************************************************/
@@ -273,6 +273,9 @@ TraCIAPI::check_commandGetResult(tcpip::Storage& inMsg, int command, int expecte
throw tcpip::SocketException("#Error: received response with command id: " + toString(cmdId) + "but expected: " + toString(command + 0x10));
}
if (expectedType >= 0) {
+ // not called from the TraCITestClient but from within the TraCIAPI
+ inMsg.readUnsignedByte(); // variableID
+ inMsg.readString(); // objectID
int valueDataType = inMsg.readUnsignedByte();
if (valueDataType != expectedType) {
throw tcpip::SocketException("Expected " + toString(expectedType) + " but got " + toString(valueDataType));
@@ -428,6 +431,14 @@ TraCIAPI::getColor(int cmd, int var, const std::string& id, tcpip::Storage* add)
}
+void
+TraCIAPI::simulationStep(SUMOTime time) {
+ send_commandSimulationStep(time);
+ tcpip::Storage inMsg;
+ std::string acknowledgement;
+ check_resultState(inMsg, CMD_SIMSTEP2, false, &acknowledgement);
+}
+
// ---------------------------------------------------------------------------
// TraCIAPI::EdgeScope-methods
diff --git a/src/utils/traci/TraCIAPI.h b/src/utils/traci/TraCIAPI.h
index 1203221..17b5255 100644
--- a/src/utils/traci/TraCIAPI.h
+++ b/src/utils/traci/TraCIAPI.h
@@ -4,7 +4,7 @@
/// @author Mario Krumnow
/// @author Michael Behrisch
/// @date 30.05.2012
-/// @version $Id: TraCIAPI.h 18213 2015-04-16 11:55:42Z behrisch $
+/// @version $Id: TraCIAPI.h 19370 2015-11-18 07:29:11Z namdre $
///
// C++ TraCI client API implementation
/****************************************************************************/
@@ -148,6 +148,8 @@ public:
void close();
/// @}
+ /// @brief Advances by one step (or up to the given time)
+ void simulationStep(SUMOTime time = 0);
/// @name Atomar getter
diff --git a/src/utils/vehicle/AStarRouter.h b/src/utils/vehicle/AStarRouter.h
index b4af4aa..5b72fba 100644
--- a/src/utils/vehicle/AStarRouter.h
+++ b/src/utils/vehicle/AStarRouter.h
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Michael Behrisch
/// @date January 2012
-/// @version $Id: AStarRouter.h 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: AStarRouter.h 18912 2015-09-23 21:09:18Z behrisch $
///
// A* Algorithm using euclidean distance heuristic.
// Based on DijkstraRouterTT. For routing by effort a novel heuristic would be needed.
@@ -174,6 +174,15 @@ public:
virtual void compute(const E* from, const E* to, const V* const vehicle,
SUMOTime msTime, std::vector<const E*>& into) {
assert(from != 0 && to != 0);
+ // check whether from and to can be used
+ if (PF::operator()(from, vehicle)) {
+ myErrorMsgHandler->inform("Vehicle '" + vehicle->getID() + "' is not allowed on from edge '" + from->getID() + "'.");
+ return;
+ }
+ if (PF::operator()(to, vehicle)) {
+ myErrorMsgHandler->inform("Vehicle '" + vehicle->getID() + "' is not allowed on to edge '" + to->getID() + "'.");
+ return;
+ }
this->startQuery();
const SUMOVehicleClass vClass = vehicle == 0 ? SVC_IGNORING : vehicle->getVClass();
const SUMOReal time = STEPS2TIME(msTime);
@@ -249,7 +258,7 @@ public:
}
}
this->endQuery(num_visited);
- myErrorMsgHandler->inform("No connection between '" + from->getID() + "' and '" + to->getID() + "' found.");
+ myErrorMsgHandler->inform("No connection between edge '" + from->getID() + "' and edge '" + to->getID() + "' found.");
}
diff --git a/src/utils/vehicle/CHRouter.h b/src/utils/vehicle/CHRouter.h
index e7368ab..1504be0 100644
--- a/src/utils/vehicle/CHRouter.h
+++ b/src/utils/vehicle/CHRouter.h
@@ -4,7 +4,7 @@
/// @author Laura Bieker
/// @author Michael Behrisch
/// @date February 2012
-/// @version $Id: CHRouter.h 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: CHRouter.h 18912 2015-09-23 21:09:18Z behrisch $
///
// Shortest Path search using a Contraction Hierarchy
/****************************************************************************/
@@ -385,7 +385,7 @@ public:
if (minTTSeen < std::numeric_limits<SUMOReal>::max()) {
buildPathFromMeeting(meeting, into);
} else {
- myErrorMsgHandler->inform("No connection between '" + from->getID() + "' and '" + to->getID() + "' found.");
+ myErrorMsgHandler->inform("No connection between edge '" + from->getID() + "' and edge '" + to->getID() + "' found.");
}
#ifdef CHRouter_DEBUG_QUERY_PERF
std::cout << "visited " << num_visited_fw + num_visited_bw << " edges (" << num_visited_fw << "," << num_visited_bw << ") ,final path length: " + toString(into.size()) + ")\n";
diff --git a/src/utils/vehicle/DijkstraRouterEffort.h b/src/utils/vehicle/DijkstraRouterEffort.h
index dd42bde..545abe4 100644
--- a/src/utils/vehicle/DijkstraRouterEffort.h
+++ b/src/utils/vehicle/DijkstraRouterEffort.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 25 July 2005
-/// @version $Id: DijkstraRouterEffort.h 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: DijkstraRouterEffort.h 18912 2015-09-23 21:09:18Z behrisch $
///
// Dijkstra shortest path algorithm using other values
/****************************************************************************/
@@ -152,6 +152,15 @@ public:
virtual void compute(const E* from, const E* to, const V* const vehicle,
SUMOTime msTime, std::vector<const E*>& into) {
assert(from != 0 && to != 0);
+ // check whether from and to can be used
+ if (PF::operator()(from, vehicle)) {
+ myErrorMsgHandler->inform("Vehicle '" + vehicle->getID() + "' is not allowed on from edge '" + from->getID() + "'.");
+ return;
+ }
+ if (PF::operator()(to, vehicle)) {
+ myErrorMsgHandler->inform("Vehicle '" + vehicle->getID() + "' is not allowed on to edge '" + to->getID() + "'.");
+ return;
+ }
this->startQuery();
const SUMOVehicleClass vClass = vehicle == 0 ? SVC_IGNORING : vehicle->getVClass();
if (this->myBulkMode) {
@@ -215,7 +224,7 @@ public:
}
}
this->endQuery(num_visited);
- myErrorMsgHandler->inform("No connection between '" + from->getID() + "' and '" + to->getID() + "' found.");
+ myErrorMsgHandler->inform("No connection between edge '" + from->getID() + "' and edge '" + to->getID() + "' found.");
}
diff --git a/src/utils/vehicle/DijkstraRouterTT.h b/src/utils/vehicle/DijkstraRouterTT.h
index 3b35743..9675a10 100644
--- a/src/utils/vehicle/DijkstraRouterTT.h
+++ b/src/utils/vehicle/DijkstraRouterTT.h
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Mon, 25 July 2005
-/// @version $Id: DijkstraRouterTT.h 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: DijkstraRouterTT.h 18912 2015-09-23 21:09:18Z behrisch $
///
// Dijkstra shortest path algorithm using travel time
/****************************************************************************/
@@ -150,6 +150,15 @@ public:
virtual void compute(const E* from, const E* to, const V* const vehicle,
SUMOTime msTime, std::vector<const E*>& into) {
assert(from != 0 && (vehicle == 0 || to != 0));
+ // check whether from and to can be used
+ if (PF::operator()(from, vehicle)) {
+ myErrorMsgHandler->inform("Vehicle '" + vehicle->getID() + "' is not allowed on from edge '" + from->getID() + "'.");
+ return;
+ }
+ if (PF::operator()(to, vehicle)) {
+ myErrorMsgHandler->inform("Vehicle '" + vehicle->getID() + "' is not allowed on to edge '" + to->getID() + "'.");
+ return;
+ }
this->startQuery();
const SUMOVehicleClass vClass = vehicle == 0 ? SVC_IGNORING : vehicle->getVClass();
const SUMOReal time = STEPS2TIME(msTime);
@@ -225,7 +234,7 @@ public:
std::cout << "visited " + toString(num_visited) + " edges (final path length: " + toString(into.size()) + ")\n";
#endif
if (to != 0) {
- myErrorMsgHandler->inform("No connection between '" + from->getID() + "' and '" + to->getID() + "' found.");
+ myErrorMsgHandler->inform("No connection between edge '" + from->getID() + "' and edge '" + to->getID() + "' found.");
}
}
diff --git a/src/utils/vehicle/SUMOAbstractRouter.h b/src/utils/vehicle/SUMOAbstractRouter.h
index 5fd528f..b05b35c 100644
--- a/src/utils/vehicle/SUMOAbstractRouter.h
+++ b/src/utils/vehicle/SUMOAbstractRouter.h
@@ -4,9 +4,9 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 25.Jan 2006
-/// @version $Id: SUMOAbstractRouter.h 18467 2015-05-29 03:50:41Z behrisch $
+/// @version $Id: SUMOAbstractRouter.h 18912 2015-09-23 21:09:18Z behrisch $
///
-// The dijkstra-router
+// An abstract router base class
/****************************************************************************/
// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
// Copyright (C) 2006-2015 DLR (http://www.dlr.de/) and contributors
diff --git a/src/utils/vehicle/SUMOVehicle.h b/src/utils/vehicle/SUMOVehicle.h
index 8afe09b..87ab732 100644
--- a/src/utils/vehicle/SUMOVehicle.h
+++ b/src/utils/vehicle/SUMOVehicle.h
@@ -4,7 +4,7 @@
/// @author Daniel Krajzewicz
/// @author Jakob Erdmann
/// @date Tue, 17 Feb 2009
-/// @version $Id: SUMOVehicle.h 18730 2015-08-26 09:24:04Z namdre $
+/// @version $Id: SUMOVehicle.h 19380 2015-11-18 20:31:19Z namdre $
///
// Abstract base class for vehicle representations
/****************************************************************************/
@@ -145,6 +145,12 @@ public:
*/
virtual void reroute(SUMOTime t, SUMOAbstractRouter<MSEdge, SUMOVehicle>& router, const bool onInit = false, const bool withTaz = false) = 0;
+ /** @brief Validates the current route
+ * @param[out] msg Description why the route is not valid (if it is the case)
+ * @return Whether the vehicle's current route is valid
+ */
+ virtual bool hasValidRoute(std::string& msg) const = 0;
+
/** @brief Returns an iterator pointing to the current edge in this vehicles route
* @return The current route pointer
@@ -267,6 +273,8 @@ public:
virtual SUMOTime getWaitingTime() const = 0;
+ virtual SUMOTime getDepartDelay() const = 0;
+
/// @brief Returns this vehicles impatience
virtual SUMOReal getImpatience() const = 0;
diff --git a/src/utils/vehicle/SUMOVehicleParameter.cpp b/src/utils/vehicle/SUMOVehicleParameter.cpp
index d76985b..422353e 100644
--- a/src/utils/vehicle/SUMOVehicleParameter.cpp
+++ b/src/utils/vehicle/SUMOVehicleParameter.cpp
@@ -4,7 +4,7 @@
/// @author Jakob Erdmann
/// @author Michael Behrisch
/// @date Tue, 31.03.2009
-/// @version $Id: SUMOVehicleParameter.cpp 18186 2015-04-01 15:30:42Z behrisch $
+/// @version $Id: SUMOVehicleParameter.cpp 19388 2015-11-19 21:33:01Z behrisch $
///
// Structure representing possible vehicle parameter
/****************************************************************************/
@@ -491,7 +491,7 @@ SUMOVehicleParameter::interpretEdgePos(SUMOReal pos, SUMOReal maximumValue, Sumo
pos = maximumValue + pos;
}
if (pos > maximumValue) {
- WRITE_WARNING("Invalid " + toString(attr) + " " + toString(pos) + " given for " + id + ". Inserting at edge end instead.");
+ WRITE_WARNING("Invalid " + toString(attr) + " " + toString(pos) + " given for " + id + ". Using edge end instead.");
pos = maximumValue;
}
return pos;
diff --git a/src/utils/vehicle/SUMOVehicleParameter.h b/src/utils/vehicle/SUMOVehicleParameter.h
index f7f9a70..eb8eafc 100644
--- a/src/utils/vehicle/SUMOVehicleParameter.h
+++ b/src/utils/vehicle/SUMOVehicleParameter.h
@@ -5,7 +5,7 @@
/// @author Axel Wegener
/// @author Michael Behrisch
/// @date 2006-01-24
-/// @version $Id: SUMOVehicleParameter.h 18686 2015-08-21 14:52:03Z namdre $
+/// @version $Id: SUMOVehicleParameter.h 19525 2015-12-04 11:08:33Z namdre $
///
// Structure representing possible vehicle parameter
/****************************************************************************/
@@ -473,7 +473,7 @@ public:
/// @brief (Optional) container stop if one is assigned to the stop
std::string containerstop;
/// @brief (Optional) charging station if one is assigned to the stop
- std::string chrgStn;
+ std::string chargingStation;
/// @brief The stopping position start
SUMOReal startPos;
/// @brief The stopping position end
diff --git a/src/utils/xml/SUMOVehicleParserHelper.cpp b/src/utils/xml/SUMOVehicleParserHelper.cpp
index 6e74b75..65b8983 100644
--- a/src/utils/xml/SUMOVehicleParserHelper.cpp
+++ b/src/utils/xml/SUMOVehicleParserHelper.cpp
@@ -6,7 +6,7 @@
/// @author Michael Behrisch
/// @author Laura Bieker
/// @date Mon, 07.04.2008
-/// @version $Id: SUMOVehicleParserHelper.cpp 18516 2015-07-01 20:47:12Z behrisch $
+/// @version $Id: SUMOVehicleParserHelper.cpp 19406 2015-11-23 09:02:18Z namdre $
///
// Helper methods for parsing vehicle attributes
/****************************************************************************/
@@ -327,7 +327,7 @@ SUMOVTypeParameter*
SUMOVehicleParserHelper::beginVTypeParsing(const SUMOSAXAttributes& attrs, const std::string& file) {
bool ok = true;
std::string id = attrs.get<std::string>(SUMO_ATTR_ID, 0, ok);
- SUMOVehicleClass vClass = SVC_IGNORING;
+ SUMOVehicleClass vClass = SVC_PASSENGER;
if (attrs.hasAttribute(SUMO_ATTR_VCLASS)) {
vClass = parseVehicleClass(attrs, id);
}
diff --git a/src/utils/xml/SUMOXMLDefinitions.cpp b/src/utils/xml/SUMOXMLDefinitions.cpp
index 121a924..4796880 100644
--- a/src/utils/xml/SUMOXMLDefinitions.cpp
+++ b/src/utils/xml/SUMOXMLDefinitions.cpp
@@ -7,7 +7,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date Sept 2002
-/// @version $Id: SUMOXMLDefinitions.cpp 18756 2015-08-31 19:16:33Z behrisch $
+/// @version $Id: SUMOXMLDefinitions.cpp 19525 2015-12-04 11:08:33Z namdre $
///
// Definitions of elements and attributes known by SUMO
/****************************************************************************/
@@ -72,7 +72,7 @@ StringBijection<int>::Entry SUMOXMLDefinitions::tags[] = {
{ "rerouter", SUMO_TAG_REROUTER },
{ "busStop", SUMO_TAG_BUS_STOP },
{ "containerStop", SUMO_TAG_CONTAINER_STOP },
- { "chargingStation", SUMO_TAG_CHRG_STN },
+ { "chargingStation", SUMO_TAG_CHARGING_STATION },
{ "vTypeProbe", SUMO_TAG_VTYPEPROBE },
{ "routeProbe", SUMO_TAG_ROUTEPROBE },
{ "routes", SUMO_TAG_ROUTES },
@@ -263,10 +263,10 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "boardingDuration", SUMO_ATTR_BOARDING_DURATION },
{ "loadingDuration", SUMO_ATTR_LOADING_DURATION },
- { "chrgpower", SUMO_ATTR_CHRGPOWER },
- { "efficiency", SUMO_ATTR_EFFICIENCY },
- { "chargeInTransit", SUMO_ATTR_CHRGINTRANSIT },
- { "chargeDelay", SUMO_ATTR_CHRGDELAY},
+ { "power", SUMO_ATTR_CHARGINGPOWER },
+ { "efficiency", SUMO_ATTR_EFFICIENCY },
+ { "chargeInTransit", SUMO_ATTR_CHARGEINTRANSIT },
+ { "chargeDelay", SUMO_ATTR_CHARGEDELAY},
{ "sigma", SUMO_ATTR_SIGMA },
{ "tau", SUMO_ATTR_TAU },
@@ -339,6 +339,7 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "foes", SUMO_ATTR_FOES },
{ "cont", SUMO_ATTR_CONT },
+ { "contPos", SUMO_ATTR_CONTPOS },
{ "timeThreshold", SUMO_ATTR_HALTING_TIME_THRESHOLD },
{ "speedThreshold", SUMO_ATTR_HALTING_SPEED_THRESHOLD },
{ "jamThreshold", SUMO_ATTR_JAM_DIST_THRESHOLD },
@@ -421,6 +422,9 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
{ "actType", SUMO_ATTR_ACTTYPE },
{ "slope", SUMO_ATTR_SLOPE },
{ "version", SUMO_ATTR_VERSION },
+ { "junctionCornerDetail", SUMO_ATTR_CORNERDETAIL },
+ { "junctionLinkDetail", SUMO_ATTR_LINKDETAIL },
+ { "lefthand", SUMO_ATTR_LEFTHAND },
{ "actorConfig", SUMO_ATTR_ACTORCONFIG },
{ "vehicle", SUMO_ATTR_VEHICLE },
@@ -479,11 +483,13 @@ StringBijection<int>::Entry SUMOXMLDefinitions::attrs[] = {
StringBijection<SumoXMLNodeType>::Entry SUMOXMLDefinitions::sumoNodeTypeValues[] = {
{"traffic_light", NODETYPE_TRAFFIC_LIGHT},
{"traffic_light_unregulated", NODETYPE_TRAFFIC_LIGHT_NOJUNCTION},
+ {"traffic_light_right_on_red", NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED},
{"rail_signal", NODETYPE_RAIL_SIGNAL},
{"priority", NODETYPE_PRIORITY},
{"priority_stop", NODETYPE_PRIORITY_STOP},
{"right_before_left", NODETYPE_RIGHT_BEFORE_LEFT},
{"allway_stop", NODETYPE_ALLWAY_STOP},
+ {"zipper", NODETYPE_ZIPPER},
{"district", NODETYPE_DISTRICT},
{"unregulated", NODETYPE_NOJUNCTION},
{"internal", NODETYPE_INTERNAL},
@@ -526,6 +532,7 @@ StringBijection<LinkState>::Entry SUMOXMLDefinitions::linkStateValues[] = {
{ "=", LINKSTATE_EQUAL },
{ "s", LINKSTATE_STOP },
{ "w", LINKSTATE_ALLWAY_STOP },
+ { "Z", LINKSTATE_ZIPPER },
{ "-", LINKSTATE_DEADEND }
};
diff --git a/src/utils/xml/SUMOXMLDefinitions.h b/src/utils/xml/SUMOXMLDefinitions.h
index fb11ce0..5d379ae 100644
--- a/src/utils/xml/SUMOXMLDefinitions.h
+++ b/src/utils/xml/SUMOXMLDefinitions.h
@@ -7,7 +7,7 @@
/// @author Michael Behrisch
/// @author Walter Bamberger
/// @date Sept 2002
-/// @version $Id: SUMOXMLDefinitions.h 18686 2015-08-21 14:52:03Z namdre $
+/// @version $Id: SUMOXMLDefinitions.h 19525 2015-12-04 11:08:33Z namdre $
///
// Definitions of elements and attributes known by SUMO
/****************************************************************************/
@@ -95,7 +95,7 @@ enum SumoXMLTag {
/// @brief A container stop
SUMO_TAG_CONTAINER_STOP,
/// @brief A Charging Station
- SUMO_TAG_CHRG_STN,
+ SUMO_TAG_CHARGING_STATION, // PABLO #1916 (Renamed all references of SUMO_TAG_CHRG_STN)
/** a vtypeprobe detector */
SUMO_TAG_VTYPEPROBE,
/** a routeprobe detector */
@@ -329,10 +329,10 @@ enum SumoXMLAttr {
SUMO_ATTR_BOARDING_DURATION,
SUMO_ATTR_LOADING_DURATION,
/* Charging Station */
- SUMO_ATTR_CHRGPOWER, // charge in W of the Charging Stations
- SUMO_ATTR_EFFICIENCY, // Eficiency of the charge inCharging Stations
- SUMO_ATTR_CHRGINTRANSIT,// Allow/disallow charge in transit in Charging Stations
- SUMO_ATTR_CHRGDELAY, // Delay in the charge of charging stations
+ SUMO_ATTR_CHARGINGPOWER, // charge in W of the Charging Stations
+ SUMO_ATTR_EFFICIENCY, // Eficiency of the charge inCharging Stations
+ SUMO_ATTR_CHARGEINTRANSIT, // Allow/disallow charge in transit in Charging Stations
+ SUMO_ATTR_CHARGEDELAY, // Delay in the charge of charging stations
/* Car following model attributes */
SUMO_ATTR_SIGMA, // used by: Krauss
SUMO_ATTR_TAU, // Krauss
@@ -427,6 +427,7 @@ enum SumoXMLAttr {
// Attributes for detectors
/// Information whether the detector shall be continued on the folowing lanes
SUMO_ATTR_CONT,
+ SUMO_ATTR_CONTPOS,
SUMO_ATTR_HALTING_TIME_THRESHOLD,
SUMO_ATTR_HALTING_SPEED_THRESHOLD,
SUMO_ATTR_JAM_DIST_THRESHOLD,
@@ -509,6 +510,9 @@ enum SumoXMLAttr {
SUMO_ATTR_ACTTYPE,
SUMO_ATTR_SLOPE,
SUMO_ATTR_VERSION,
+ SUMO_ATTR_CORNERDETAIL,
+ SUMO_ATTR_LINKDETAIL,
+ SUMO_ATTR_LEFTHAND,
SUMO_ATTR_COMMAND,
SUMO_ATTR_ACTORCONFIG,
@@ -600,11 +604,13 @@ enum SumoXMLNodeType {
NODETYPE_UNKNOWN, // terminator
NODETYPE_TRAFFIC_LIGHT,
NODETYPE_TRAFFIC_LIGHT_NOJUNCTION, // junction controlled only by traffic light but without other prohibitions,
+ NODETYPE_TRAFFIC_LIGHT_RIGHT_ON_RED,
NODETYPE_RAIL_SIGNAL,
NODETYPE_PRIORITY,
NODETYPE_PRIORITY_STOP, // like priority but all minor links have stop signs
NODETYPE_RIGHT_BEFORE_LEFT,
NODETYPE_ALLWAY_STOP,
+ NODETYPE_ZIPPER,
NODETYPE_DISTRICT,
NODETYPE_NOJUNCTION,
NODETYPE_INTERNAL,
@@ -682,6 +688,8 @@ enum LinkState {
LINKSTATE_STOP = 's',
/// @brief This is an uncontrolled, all-way stop link.
LINKSTATE_ALLWAY_STOP = 'w',
+ /// @brief This is an uncontrolled, zipper-merge link
+ LINKSTATE_ZIPPER = 'Z',
/// @brief This is a dead end link
LINKSTATE_DEADEND = '-'
};
diff --git a/src/version.h b/src/version.h
index 25c885e..0b79936 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1 +1 @@
-#define VERSION_STRING "dev-SVN-r18765"
+#define VERSION_STRING "dev-SVN-r19546"
diff --git a/src/windows_config.h b/src/windows_config.h
index 47bbcb4..ef3c18e 100644
--- a/src/windows_config.h
+++ b/src/windows_config.h
@@ -7,7 +7,7 @@
/// @author Felix Brack
/// @author Jakob Erdmann
/// @date Mon, 17 Dec 2001
-/// @version $Id: windows_config.h 18753 2015-08-31 18:49:58Z behrisch $
+/// @version $Id: windows_config.h 19546 2015-12-06 20:20:11Z behrisch $
///
// The general windows configuration file
/****************************************************************************/
@@ -69,7 +69,7 @@
/* Version number of package */
#ifndef HAVE_VERSION_H
-#define VERSION_STRING "0.24.0"
+#define VERSION_STRING "0.25.0"
#endif
/* Define if junction internal lanes should be used. */
diff --git a/sumo.doxyconf b/sumo.doxyconf
index 9132659..2128025 100644
--- a/sumo.doxyconf
+++ b/sumo.doxyconf
@@ -1,90 +1,122 @@
-# Doxyfile 1.5.6
+# Doxyfile 1.8.8
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
+# doxygen (www.doxygen.org) for a project.
#
-# All text after a hash (#) is considered a comment and will be ignored
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
# The format is:
-# TAG = value [value, ...]
-# For lists items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all
-# text before the first occurrence of this tag. Doxygen uses libiconv (or the
-# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
DOXYFILE_ENCODING = UTF-8
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
-# by quotes) that should identify the project.
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
PROJECT_NAME = "SUMO - Simulation of Urban MObility"
-# The PROJECT_NUMBER tag can be used to enter a project or revision number.
-# This could be handy for archiving the generated documentation or
-# if some version control system is used.
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
PROJECT_NUMBER =
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
-# base path where the generated documentation will be put.
-# If a relative path is entered, it will be relative to the location
-# where doxygen was started. If left blank the current directory will be used.
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO = docs/logo/032x032.bmp
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
OUTPUT_DIRECTORY = .
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
-# 4096 sub-directories (in 2 levels) under the output directory of each output
-# format and will distribute the generated files over these directories.
-# Enabling this option can be useful when feeding doxygen a huge amount of
-# source files, where putting all generated files in the same directory would
-# otherwise cause performance problems for the file system.
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
CREATE_SUBDIRS = YES
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# The default language is English, other supported languages are:
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
-# Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek,
-# Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish,
-# Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish,
-# and Ukrainian.
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
OUTPUT_LANGUAGE = English
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
-# include brief member descriptions after the members that are listed in
-# the file and class documentation (similar to JavaDoc).
-# Set to NO to disable this.
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
BRIEF_MEMBER_DESC = YES
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
-# the brief description of a member or function before the detailed description.
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
+# The default value is: YES.
REPEAT_BRIEF = YES
-# This tag implements a quasi-intelligent brief description abbreviator
-# that is used to form the text in various listings. Each string
-# in this list, if found as the leading text of the brief description, will be
-# stripped from the text and the result after processing the whole list, is
-# used as the annotated text. Otherwise, the brief description is used as-is.
-# If left blank, the following values are used ("$name" is automatically
-# replaced with the name of the entity): "The $name class" "The $name widget"
-# "The $name file" "is" "provides" "specifies" "contains"
-# "represents" "a" "an" "the"
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
@@ -98,70 +130,82 @@ ABBREVIATE_BRIEF = "The $name class" \
an \
the
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# Doxygen will generate a detailed section even if there is only a brief
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
# description.
+# The default value is: NO.
ALWAYS_DETAILED_SEC = YES
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
+# The default value is: NO.
INLINE_INHERITED_MEMB = YES
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
-# path before files name in the file list and in the header files. If set
-# to NO the shortest path that makes the file name unique will be used.
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
FULL_PATH_NAMES = NO
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
-# can be used to strip a user-defined part of the path. Stripping is
-# only done if one of the specified strings matches the left-hand part of
-# the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the
-# path to strip.
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-STRIP_FROM_PATH = "C:/Dokumente und Einstellungen/wegener/"
+STRIP_FROM_PATH =
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
-# the path mentioned in the documentation of a class, which tells
-# the reader which header file to include in order to use a class.
-# If left blank only the name of the header file containing the class
-# definition is used. Otherwise one should specify the include paths that
-# are normally passed to the compiler using the -I flag.
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
STRIP_FROM_INC_PATH =
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
-# (but less readable) file names. This can be useful is your file systems
-# doesn't support long names like on DOS, Mac, or CD-ROM.
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
SHORT_NAMES = NO
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
-# will interpret the first line (until the first dot) of a JavaDoc-style
-# comment as the brief description. If set to NO, the JavaDoc
-# comments will behave just like regular Qt-style comments
-# (thus requiring an explicit @brief command for a brief description.)
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
JAVADOC_AUTOBRIEF = NO
-# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
-# interpret the first line (until the first dot) of a Qt-style
-# comment as the brief description. If set to NO, the comments
-# will behave just like regular Qt-style comments (thus requiring
-# an explicit \brief command for a brief description.)
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
QT_AUTOBRIEF = NO
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
-# treat a multi-line C++ special comment block (i.e. a block of //! or ///
-# comments) as a brief description. This used to be the default behaviour.
-# The new default is to treat a multi-line C++ comment block as a detailed
-# description. Set this tag to YES if you prefer the old behaviour instead.
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
MULTILINE_CPP_IS_BRIEF = NO
@@ -172,287 +216,441 @@ MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = YES
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
-# member inherits the documentation from any documented member that it
-# re-implements.
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
INHERIT_DOCS = YES
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
-# a new page for each member. If set to NO, the documentation of a member will
-# be part of the file/class/namespace that contains it.
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
SEPARATE_MEMBER_PAGES = NO
-# The TAB_SIZE tag can be used to set the number of spaces in a tab.
-# Doxygen uses this value to replace tabs by spaces in code fragments.
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
TAB_SIZE = 4
-# This tag can be used to specify a number of aliases that acts
-# as commands in the documentation. An alias has the form "name=value".
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to
-# put the command \sideeffect (or @sideeffect) in the documentation, which
-# will result in a user-defined paragraph with heading "Side Effects:".
-# You can put \n's in the value part of an alias to insert newlines.
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
ALIASES =
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
-# sources only. Doxygen will then generate output that is more tailored for C.
-# For instance, some of the names that are used will be different. The list
-# of all members will be omitted, etc.
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_FOR_C = YES
-# 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
-# Java. For instance, namespaces will be presented as packages, qualified
-# scopes will look different, etc.
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
OPTIMIZE_OUTPUT_JAVA = NO
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources only. Doxygen will then generate output that is more tailored for
-# Fortran.
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
OPTIMIZE_FOR_FORTRAN = NO
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for
-# VHDL.
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
OPTIMIZE_OUTPUT_VHDL = NO
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should
-# set this tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
-# func(std::string) {}). This also make the inheritance and collaboration
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
BUILTIN_STL_SUPPORT = NO
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
+# The default value is: NO.
CPP_CLI_SUPPORT = NO
-# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
-# Doxygen will parse them like normal C++ but will assume all classes use public
-# instead of private inheritance when no explicit protection keyword is present.
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
SIP_SUPPORT = NO
-# For Microsoft's IDL there are propget and propput attributes to indicate getter
-# and setter methods for a property. Setting this option to YES (the default)
-# will make doxygen to replace the get and set methods by a property in the
-# documentation. This will only work if the methods are indeed getting or
-# setting a simple type. If this is not the case, or you want to show the
-# methods anyway, you should set this option to NO.
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
IDL_PROPERTY_SUPPORT = YES
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
+# The default value is: NO.
DISTRIBUTE_GROUP_DOC = NO
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
-# the same type (for instance a group of public functions) to be put as a
-# subgroup of that type (e.g. under the Public Functions section). Set it to
-# NO to prevent subgrouping. Alternatively, this can be done per class using
-# the \nosubgrouping command.
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
SUBGROUPING = YES
-# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
-# is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically
-# be useful for C code in case the coding convention dictates that all compound
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
TYPEDEF_HIDES_STRUCT = NO
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available.
-# Private class members and static file members will be hidden unless
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: 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.
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
EXTRACT_PRIVATE = YES
-# If the EXTRACT_STATIC tag is set to YES all static members of a file
-# will be included in the documentation.
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = YES
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
EXTRACT_STATIC = YES
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
-# defined locally in source files will be included in the documentation.
-# If set to NO only classes defined in header files are included.
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
EXTRACT_LOCAL_CLASSES = YES
-# This flag is only useful for Objective-C code. When set to YES local
-# methods, which are defined in the implementation section but not in
-# the interface are included in the documentation.
-# If set to NO (the default) only methods in the interface are included.
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
EXTRACT_LOCAL_METHODS = YES
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base
-# name of the file that contains the anonymous namespace. By default
-# anonymous namespace are hidden.
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
EXTRACT_ANON_NSPACES = NO
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
-# undocumented members of documented classes, files or namespaces.
-# If set to NO (the default) these members will be included in the
-# various overviews, but no documentation section is generated.
-# This option has no effect if EXTRACT_ALL is enabled.
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
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.
-# If set to NO (the default) these classes will be included in the various
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
HIDE_UNDOC_CLASSES = NO
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
-# friend (class|struct|union) declarations.
-# If set to NO (the default) these declarations will be included in the
-# documentation.
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
HIDE_FRIEND_COMPOUNDS = NO
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
-# documentation blocks found inside the body of a function.
-# If set to NO (the default) these blocks will be appended to the
-# function's detailed documentation block.
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
HIDE_IN_BODY_DOCS = NO
-# The INTERNAL_DOCS tag determines if documentation
-# that is typed after a \internal command is included. If the tag is set
-# to NO (the default) then the documentation will be excluded.
-# Set it to YES to include the internal documentation.
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
INTERNAL_DOCS = YES
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
-# file names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
CASE_SENSE_NAMES = NO
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
-# will show members with their full class and namespace scopes in the
-# documentation. If set to YES the scope will be hidden.
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
HIDE_SCOPE_NAMES = NO
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
-# will put a list of the files that are included by a file in the documentation
-# of that file.
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
SHOW_INCLUDE_FILES = YES
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
-# is inserted in the documentation for inline members.
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
INLINE_INFO = YES
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
-# will sort the (detailed) documentation of file and class members
-# alphabetically by member name. If set to NO the members will appear in
-# declaration order.
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
SORT_MEMBER_DOCS = YES
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
-# brief documentation of file, namespace and class members alphabetically
-# by member name. If set to NO (the default) the members will appear in
-# declaration order.
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
SORT_BRIEF_DOCS = YES
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
-# hierarchy of group names into alphabetical order. If set to NO (the default)
-# the group names will appear in their defined order.
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
SORT_GROUP_NAMES = NO
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
-# sorted by fully-qualified names, including namespaces. If set to
-# NO (the default), the class list will be sorted only by class name,
-# not including the namespace part.
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the
-# alphabetical list.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
SORT_BY_SCOPE_NAME = YES
-# The GENERATE_TODOLIST tag can be used to enable (YES) or
-# disable (NO) the todo list. This list is created by putting \todo
-# commands in the documentation.
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
GENERATE_TODOLIST = YES
-# The GENERATE_TESTLIST tag can be used to enable (YES) or
-# disable (NO) the test list. This list is created by putting \test
-# commands in the documentation.
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
GENERATE_TESTLIST = YES
-# The GENERATE_BUGLIST tag can be used to enable (YES) or
-# disable (NO) the bug list. This list is created by putting \bug
-# commands in the documentation.
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
GENERATE_BUGLIST = YES
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
-# disable (NO) the deprecated list. This list is created by putting
-# \deprecated commands in the documentation.
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
GENERATE_DEPRECATEDLIST= YES
-# The ENABLED_SECTIONS tag can be used to enable conditional
-# documentation sections, marked by \if sectionname ... \endif.
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
ENABLED_SECTIONS =
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
-# the initial value of a variable or define consists of for it to appear in
-# the documentation. If the initializer consists of more lines than specified
-# here it will be hidden. Use a value of 0 to hide initializers completely.
-# The appearance of the initializer of individual variables and defines in the
-# documentation can be controlled using \showinitializer or \hideinitializer
-# command in the documentation regardless of this setting.
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
MAX_INITIALIZER_LINES = 30
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
-# at the bottom of the documentation of classes and structs. If set to YES the
-# list will mention the files that were used to generate the documentation.
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
SHOW_USED_FILES = YES
@@ -462,104 +660,141 @@ SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
-# This will remove the Files entry from the Quick Index and from the
-# Folder Tree View (if specified). The default is YES.
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
SHOW_FILES = YES
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
-# Namespaces page. This will remove the Namespaces entry from the Quick Index
-# and from the Folder Tree View (if specified). The default is YES.
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
-SHOW_NAMESPACES = NO
+SHOW_NAMESPACES = YES
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command <command> <input-file>, where <command> is the value of
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
-# provided by doxygen. Whatever the program writes to standard output
-# is used as the file version. See the manual for examples.
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
FILE_VERSION_FILTER =
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
+
#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
-# The QUIET tag can be used to turn on/off the messages that are generated
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
QUIET = NO
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated by doxygen. Possible values are YES and NO. If left blank
-# NO is used.
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
WARNINGS = YES
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
-# automatically be disabled.
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
WARN_IF_UNDOCUMENTED = YES
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some
-# parameters in a documented function, or documenting parameters that
-# don't exist or using markup commands wrongly.
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
WARN_IF_DOC_ERROR = YES
-# This WARN_NO_PARAMDOC option can be abled to get warnings for
-# functions that are documented, but have no documentation for their parameters
-# or return value. If set to NO (the default) doxygen will only warn about
-# wrong or incomplete parameter documentation, but not about the absence of
-# documentation.
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
WARN_NO_PARAMDOC = YES
-# The WARN_FORMAT tag determines the format of the warning messages that
-# doxygen can produce. The string should contain the $file, $line, and $text
-# tags, which will be replaced by the file and line number from which the
-# warning originated and the warning text. Optionally the format may contain
-# $version, which will be replaced by the version of the file (if it could
-# be obtained via FILE_VERSION_FILTER)
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
WARN_FORMAT = "$file:$line: $text"
-# The WARN_LOGFILE tag can be used to specify a file to which warning
-# and error messages should be written. If left blank the output is written
-# to stderr.
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
WARN_LOGFILE = ../sumo_doxygen_lastrun.log
#---------------------------------------------------------------------------
-# configuration options related to the input files
+# Configuration options related to the input files
#---------------------------------------------------------------------------
-# The INPUT tag can be used to specify the files and/or directories that contain
-# documented source files. You may enter file names like "myfile.cpp" or
-# directories like "/usr/src/myproject". Separate the files or directories
-# with spaces.
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
INPUT = ./src
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
-# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
-# the list of possible encodings.
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
INPUT_ENCODING = UTF-8
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank the following patterns are tested:
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
FILE_PATTERNS = *.c \
*.cc \
@@ -572,880 +807,1614 @@ FILE_PATTERNS = *.c \
*.ipp \
*.i++ \
*.inl \
+ *.idl \
+ *.ddl \
+ *.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
- *.idl \
- *.odl \
*.cs \
+ *.d \
*.php \
- *.php3 \
+ *.php4 \
+ *.php5 \
+ *.phtml \
*.inc \
*.m \
+ *.markdown \
+ *.md \
*.mm \
- *.dox
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories
-# should be searched for input files as well. Possible values are YES and NO.
-# If left blank NO is used.
+ *.dox \
+ *.py \
+ *.f90 \
+ *.f \
+ *.for \
+ *.tcl \
+ *.vhd \
+ *.vhdl \
+ *.ucf \
+ *.qsf \
+ *.as \
+ *.js
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
RECURSIVE = YES
-# The EXCLUDE tag can be used to specify files and/or directories that should
-# excluded from the INPUT source files. This way you can easily exclude a
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
EXCLUDE =
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
-# directories that are symbolic links (a Unix filesystem feature) are excluded
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
# from the input.
+# The default value is: NO.
EXCLUDE_SYMLINKS = NO
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories. Note that the wildcards are matched
-# against the file with absolute path, so to exclude all test directories
-# for example use the pattern */test/*
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
EXCLUDE_PATTERNS = */.svn/*
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
EXCLUDE_SYMBOLS =
-# The EXAMPLE_PATH tag can be used to specify one or more files or
-# directories that contain example code fragments that are included (see
-# the \include command).
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
EXAMPLE_PATH =
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
-# and *.h) to filter out the source-files in the directories. If left
-# blank all files are included.
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
EXAMPLE_PATTERNS = *
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude
-# commands irrespective of the value of the RECURSIVE tag.
-# Possible values are YES and NO. If left blank NO is used.
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
EXAMPLE_RECURSIVE = NO
-# The IMAGE_PATH tag can be used to specify one or more files or
-# directories that contain image that are included in the documentation (see
-# the \image command).
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
IMAGE_PATH =
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command <filter> <input-file>, where <filter>
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
-# input file. Doxygen will then use the output that the filter program writes
-# to standard output. If FILTER_PATTERNS is specified, this tag will be
-# ignored.
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
INPUT_FILTER =
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form:
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
-# is applied to all files.
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
FILTER_PATTERNS =
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER) will be used to filter the input files when producing source
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
FILTER_SOURCE_FILES = NO
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =
+
#---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Configuration options related to source browsing
#---------------------------------------------------------------------------
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will
-# be generated. Documented entities will be cross-referenced with these sources.
-# Note: To get rid of all source code in the generated output, make sure also
-# VERBATIM_HEADERS is set to NO.
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
SOURCE_BROWSER = YES
-# Setting the INLINE_SOURCES tag to YES will include the body
-# of functions and classes directly in the documentation.
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
INLINE_SOURCES = NO
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
-# doxygen to hide any special comment blocks from generated source code
-# fragments. Normal C and C++ comments will always remain visible.
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
STRIP_CODE_COMMENTS = YES
-# If the REFERENCED_BY_RELATION tag is set to YES
-# then for each documented function all documented
-# functions referencing it will be listed.
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
REFERENCED_BY_RELATION = YES
-# If the REFERENCES_RELATION tag is set to YES
-# then for each documented function all documented entities
-# called/used by that function will be listed.
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
REFERENCES_RELATION = YES
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code. Otherwise they will link to the documentstion.
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
REFERENCES_LINK_SOURCE = YES
-# If the USE_HTAGS tag is set to YES then the references to source code
-# will point to the HTML generated by the htags(1) tool instead of doxygen
-# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
-# will need version 4.8.6 or higher.
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
USE_HTAGS = NO
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
-# will generate a verbatim copy of the header file for each class for
-# which an include is specified. Set to NO to disable this.
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
VERBATIM_HEADERS = YES
+# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# compiled with the --with-libclang option.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS =
+
#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
-# of all compounds will be generated. Enable this if the project
-# contains a lot of classes, structs, unions or interfaces.
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
ALPHABETICAL_INDEX = YES
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
-# In case all classes in a project start with a common prefix, all
-# classes will be put under the same header in the alphabetical index.
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
-# should be ignored while generating the index headers.
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
-# configuration options related to the HTML output
+# Configuration options related to the HTML output
#---------------------------------------------------------------------------
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
-# generate HTML output.
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: YES.
GENERATE_HTML = YES
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `html' will be used as the default path.
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_OUTPUT = docs/doxygen
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
-# doxygen will generate files with .html extension.
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FILE_EXTENSION = .html
-# The HTML_HEADER tag can be used to specify a personal HTML header for
-# each generated HTML page. If it is left blank doxygen will generate a
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_HEADER =
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for
-# each generated HTML page. If it is left blank doxygen will generate a
-# standard footer.
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_FOOTER =
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
-# style sheet that is used by each HTML page. It can be used to
-# fine-tune the look of the HTML output. If the tag is left blank doxygen
-# will generate a default style sheet. Note that doxygen will try to copy
-# the style sheet file to the HTML output directory, so don't put your own
-# stylesheet in the HTML output directory as well, or it will be erased!
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_STYLESHEET =
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra stylesheet files is of importance (e.g. the last
+# stylesheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files
-# will be generated that can be used as input for tools like the
-# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
-# of the generated HTML documentation.
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-GENERATE_HTMLHELP = NO
+HTML_DYNAMIC_SECTIONS = NO
-# If the GENERATE_DOCSET tag is set to YES, additional index files
-# will be generated that can be used as input for Apple's Xcode 3
-# integrated development environment, introduced with OSX 10.5 (Leopard).
-# To create a documentation set, doxygen will generate a Makefile in the
-# HTML output directory. Running make will produce the docset in that
-# directory and running "make install" will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
-# it at startup.
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_DOCSET = NO
-# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
-# feed. A documentation feed provides an umbrella under which multiple
-# documentation sets from a single provider (such as a company or product suite)
-# can be grouped.
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
DOCSET_FEEDNAME = "Doxygen generated docs"
-# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
-# should uniquely identify the documentation set bundle. This should be a
-# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
-# will append .docset to the name.
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
DOCSET_BUNDLE_ID = org.doxygen.Project
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded. For this to work a browser that supports
-# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
-# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
-HTML_DYNAMIC_SECTIONS = NO
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
-# be used to specify the file name of the resulting .chm file. You
-# can add a path in front of the file if the result should not be
-# written to the html output directory.
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
-CHM_FILE = ../sumo-doxygen.chm
+DOCSET_PUBLISHER_NAME = Publisher
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
-# be used to specify the location (absolute path including file name) of
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
-# the HTML help compiler on the generated index.hhp.
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
-HHC_LOCATION = "C:/Programme/HTML Help Workshop/hhc.exe"
+GENERATE_HTMLHELP = NO
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
-# controls if a separate .chi index file is generated (YES) or that
-# it should be included in the master .chm file (NO).
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-GENERATE_CHI = NO
+CHM_FILE =
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
-# is used to encode HtmlHelp index (hhk), content (hhc) and project file
-# content.
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-CHM_INDEX_ENCODING =
+HHC_LOCATION =
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
-# controls whether a binary table of contents is generated (YES) or a
-# normal table of contents (NO) in the .chm file.
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-BINARY_TOC = YES
+GENERATE_CHI = NO
-# The TOC_EXPAND flag can be set to YES to add extra items for group members
-# to the contents of the HTML help documentation and to the tree view.
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-TOC_EXPAND = YES
+CHM_INDEX_ENCODING =
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
-# top of each HTML page. The value NO (the default) enables the index and
-# the value YES disables it.
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
DISABLE_INDEX = NO
-# This tag can be used to set the number of enum values (range [1..20])
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE = 4
-
# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information.
-# If the tag value is set to FRAME, a side panel will be generated
-# containing a tree-like index structure (just like the one that
-# is generated for HTML Help). For this to work a browser that supports
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
-# probably better off using the HTML help feature. Other possible values
-# for this tag are: HIERARCHIES, which will generate the Groups, Directories,
-# and Class Hiererachy pages using a tree view instead of an ordered list;
-# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which
-# disables this behavior completely. For backwards compatibility with previous
-# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE
-# respectively.
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
GENERATE_TREEVIEW = YES
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
-# used to set the initial width (in pixels) of the frame in which the tree
-# is shown.
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
TREEVIEW_WIDTH = 250
-# Use this tag to change the font size of Latex formulas included
-# as images in the HTML documentation. The default is 10. Note that
-# when you change the font size after a successful doxygen run you need
-# to manually remove any form_*.png images from the HTML output directory
-# to force them to be regenerated.
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
FORMULA_FONTSIZE = 10
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
+
#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
-# generate Latex output.
+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+# The default value is: YES.
-GENERATE_LATEX = NO
+GENERATE_LATEX = YES
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `latex' will be used as the default path.
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_OUTPUT = latex
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked. If left blank `latex' will be used as the default command name.
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_CMD_NAME = latex
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
-# generate index for LaTeX. If left blank `makeindex' will be used as the
-# default command name.
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
MAKEINDEX_CMD_NAME = makeindex
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
-# LaTeX documents. This may be useful for small projects and may help to
-# save some trees in general.
+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
-COMPACT_LATEX = YES
+COMPACT_LATEX = NO
-# The PAPER_TYPE tag can be used to set the paper type that is used
-# by the printer. Possible values are: a4, a4wide, letter, legal and
-# executive. If left blank a4wide will be used.
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
-PAPER_TYPE = a4wide
+PAPER_TYPE = a4
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
-# packages that should be included in the LaTeX output.
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
EXTRA_PACKAGES =
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
-# the generated latex document. The header should contain everything until
-# the first chapter. If it is left blank doxygen will generate a
-# standard header. Notice: only use this tag if you know what you are doing!
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
+# for the replacement values of the other commands the user is refered to
+# HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HEADER =
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will
-# contain links (just like the HTML output) instead of page references
-# This makes the output suitable for online browsing using a pdf viewer.
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
PDF_HYPERLINKS = YES
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
-# plain latex in the generated Makefile. Set this option to YES to get a
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES to get a
# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
USE_PDFLATEX = YES
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
-# command to the generated LaTeX files. This will instruct LaTeX to keep
-# running if errors occur, instead of asking the user for help.
-# This option is also used when generating formulas in HTML.
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_BATCHMODE = YES
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not
-# include the index chapters (such as File Index, Compound Index, etc.)
-# in the output.
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_HIDE_INDICES = NO
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
#---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# Configuration options related to the RTF output
#---------------------------------------------------------------------------
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
-# The RTF output is optimized for Word 97 and may not look very pretty with
-# other RTF readers or editors.
+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
GENERATE_RTF = NO
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `rtf' will be used as the default path.
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_OUTPUT = rtf
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
-# RTF documents. This may be useful for small projects and may help to
-# save some trees in general.
+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
COMPACT_RTF = NO
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
-# will contain hyperlink fields. The RTF file will
-# contain links (just like the HTML output) instead of page references.
-# This makes the output suitable for online browsing using WORD or other
-# programs which support those fields.
-# Note: wordpad (write) and others do not support links.
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_HYPERLINKS = NO
-# Load stylesheet definitions from file. Syntax is similar to doxygen's
-# config file, i.e. a series of assignments. You only have to provide
-# replacements, missing definitions are set to their default value.
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_STYLESHEET_FILE =
-# Set optional variables used in the generation of an rtf document.
-# Syntax is similar to doxygen's config file.
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Configuration options related to the man page output
#---------------------------------------------------------------------------
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
-# generate man pages
+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
GENERATE_MAN = NO
-# The MAN_OUTPUT tag is used to specify where the man pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `man' will be used as the default path.
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_OUTPUT = man
-# The MAN_EXTENSION tag determines the extension that is added to
-# the generated man pages (default is the subroutine's section .3)
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_EXTENSION = .3
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
-# then it will generate one additional man file for each entity
-# documented in the real man page(s). These additional files
-# only source the real man page, but without them the man command
-# would be unable to find the correct page. The default is NO.
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
MAN_LINKS = NO
#---------------------------------------------------------------------------
-# configuration options related to the XML output
+# Configuration options related to the XML output
#---------------------------------------------------------------------------
-# If the GENERATE_XML tag is set to YES Doxygen will
-# generate an XML file that captures the structure of
-# the code including all documentation.
+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
GENERATE_XML = NO
-# The XML_OUTPUT tag is used to specify where the XML pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be
-# put in front of it. If left blank `xml' will be used as the default path.
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
XML_OUTPUT = xml
-# The XML_SCHEMA tag can be used to specify an XML schema,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING = YES
-XML_SCHEMA =
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
-# The XML_DTD tag can be used to specify an XML DTD,
-# which can be used by a validating XML parser to check the
-# syntax of the XML files.
+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
-XML_DTD =
+GENERATE_DOCBOOK = NO
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
-# dump the program listings (including syntax highlighting
-# and cross-referencing information) to the XML output. Note that
-# enabling this will significantly increase the size of the XML output.
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-XML_PROGRAMLISTING = YES
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
-# generate an AutoGen Definitions (see autogen.sf.net) file
-# that captures the structure of the code including all
-# documentation. Note that this feature is still experimental
-# and incomplete at the moment.
+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+# Definitions (see http://autogen.sf.net) file that captures the structure of
+# the code including all documentation. Note that this feature is still
+# experimental and incomplete at the moment.
+# The default value is: NO.
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will
-# generate a Perl module file that captures the structure of
-# the code including all documentation. Note that this
-# feature is still experimental and incomplete at the
-# moment.
+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
GENERATE_PERLMOD = NO
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able
-# to generate PDF and DVI output from the Perl module output.
+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_LATEX = NO
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
-# nicely formatted so it can be parsed by a human reader. This is useful
-# if you want to understand what is going on. On the other hand, if this
-# tag is set to NO the size of the Perl module output will be much smaller
-# and Perl will parse it just the same.
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_PRETTY = YES
-# The names of the make variables in the generated doxyrules.make file
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
-# This is useful so different doxyrules.make files included by the same
-# Makefile don't overwrite each other's variables.
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
+# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
-# evaluate all C-preprocessor directives found in the sources and include
-# files.
+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
ENABLE_PREPROCESSING = YES
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
-# names in the source code. If set to NO (the default) only conditional
-# compilation will be performed. Macro expansion can be done in a controlled
-# way by setting EXPAND_ONLY_PREDEF to YES.
+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+# in the source code. If set to NO only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
MACRO_EXPANSION = NO
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
-# then the macro expansion is limited to the macros specified with the
-# PREDEFINED and EXPAND_AS_DEFINED tags.
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_ONLY_PREDEF = NO
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SEARCH_INCLUDES = YES
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by
-# the preprocessor.
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
INCLUDE_PATH =
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will
-# be used.
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
INCLUDE_FILE_PATTERNS =
-# The PREDEFINED tag can be used to specify one or more macro names that
-# are defined before the preprocessor is started (similar to the -D option of
-# gcc). The argument of the tag is a list of macros of the form: name
-# or name=definition (no spaces). If the definition and the = are
-# omitted =1 is assumed. To prevent a macro definition from being
-# undefined via #undef or recursively expanded use the := operator
-# instead of the = operator.
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
PREDEFINED =
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
-# this tag can be used to specify a list of macro names that should be expanded.
-# The macro definition that is found in the sources will be used.
-# Use the PREDEFINED tag if you want to use a different macro definition.
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
EXPAND_AS_DEFINED =
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
-# doxygen's preprocessor will remove all function-like macros that are alone
-# on a line, have an all uppercase name, and do not end with a semicolon. Such
-# function macros are typically used for boiler-plate code, and will confuse
-# the parser if not removed.
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
-# Configuration::additions related to external references
+# Configuration options related to external references
#---------------------------------------------------------------------------
-# The TAGFILES option can be used to specify one or more tagfiles.
-# Optionally an initial location of the external documentation
-# can be added for each tagfile. The format of a tag file without
-# this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where "loc1" and "loc2" can be relative or absolute paths or
-# URLs. If a location is present for each tag, the installdox tool
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen
-# is run, you must also specify the path to the tagfile here.
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
TAGFILES =
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create
-# a tag file that is based on the input files it reads.
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
GENERATE_TAGFILE =
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed
-# in the class index. If set to NO only the inherited external classes
-# will be listed.
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
ALLEXTERNALS = NO
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
-# in the modules index. If set to NO, only the current project's groups will
-# be listed.
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
EXTERNAL_GROUPS = YES
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of `which perl').
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# Configuration options related to the dot tool
#---------------------------------------------------------------------------
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
-# or super classes. Setting the tag to NO turns the diagrams off. Note that
-# this option is superseded by the HAVE_DOT option below. This is only a
-# fallback. It is recommended to install and use dot, since it yields more
+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
+# The default value is: YES.
CLASS_DIAGRAMS = YES
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
MSCGEN_PATH =
-# If set to YES, the inheritance and collaboration graphs will hide
-# inheritance and usage relations if the target is undocumented
-# or is not a class.
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH =
+
+# If set to YES, the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS = YES
-HIDE_UNDOC_RELATIONS = NO
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz, a graph visualization
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section
-# have no effect if this option is set to NO (the default)
+HAVE_DOT = YES
-HAVE_DOT = NO
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
-# By default doxygen will write a font called FreeSans.ttf to the output
-# directory and reference it in all dot files that doxygen generates. This
-# font does not include all possible unicode characters however, so when you need
-# these (or just want a differently looking font) you can specify the font name
-# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
-# which can be done by putting it in a standard location or by setting the
-# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
-# containing the font.
+DOT_NUM_THREADS = 4
-DOT_FONTNAME = FreeSans
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
-# By default doxygen will tell dot to use the output directory to look for the
-# FreeSans.ttf font (which doxygen will put there itself). If you specify a
-# different font using DOT_FONTNAME you can set the path where dot
-# can find it using this tag.
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTPATH =
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect inheritance relations. Setting this tag to YES will force the
-# the CLASS_DIAGRAMS tag to NO.
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
CLASS_GRAPH = YES
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for each documented class showing the direct and
-# indirect implementation dependencies (inheritance, containment, and
-# class references variables) of the class with other documented classes.
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
COLLABORATION_GRAPH = YES
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
-# will generate a graph for groups, showing the direct groups dependencies
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
-GROUP_GRAPHS = NO
+GROUP_GRAPHS = YES
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
UML_LOOK = YES
-# If set to YES, the inheritance and collaboration graphs will show the
-# relations between templates and their instances.
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
TEMPLATE_RELATIONS = NO
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
-# tags are set to YES then doxygen will generate a graph for each documented
-# file showing the direct and indirect include dependencies of the file with
-# other documented files.
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
-INCLUDE_GRAPH = NO
+INCLUDE_GRAPH = YES
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
-# documented header file showing the documented files that directly or
-# indirectly include this file.
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
-INCLUDED_BY_GRAPH = NO
+INCLUDED_BY_GRAPH = YES
-# If the CALL_GRAPH and HAVE_DOT options are set to YES then
-# doxygen will generate a call dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable call graphs
-# for selected functions only using the \callgraph command.
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
CALL_GRAPH = NO
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
-# doxygen will generate a caller dependency graph for every global function
-# or class method. Note that enabling this option will significantly increase
-# the time of a run. So in most cases it will be better to enable caller
-# graphs for selected functions only using the \callergraph command.
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
CALLER_GRAPH = NO
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
-# will graphical hierarchy of all classes instead of a textual one.
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
-GRAPHICAL_HIERARCHY = NO
+GRAPHICAL_HIERARCHY = YES
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
-# then doxygen will show the dependencies a directory has on other directories
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
-DIRECTORY_GRAPH = NO
+DIRECTORY_GRAPH = YES
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_IMAGE_FORMAT = png
-# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_PATH =
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the
-# \dotfile command).
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
DOTFILE_DIRS =
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
-# nodes that will be shown in the graph. If the number of nodes in a graph
-# becomes larger than this value, doxygen will truncate the graph, which is
-# visualized by representing a node as a red box. Note that doxygen if the
-# number of direct children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
-# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+PLANTUML_JAR_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_GRAPH_MAX_NODES = 50
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
-# graphs generated by dot. A depth value of 3 means that only nodes reachable
-# from the root by following a path via at most 3 edges will be shown. Nodes
-# that lay further from the root node will be omitted. Note that setting this
-# option to 1 or 2 may greatly reduce the computation time needed for large
-# code bases. Also note that the size of a graph can be further restricted by
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
-MAX_DOT_GRAPH_DEPTH = 1000
+MAX_DOT_GRAPH_DEPTH = 0
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is enabled by default, which results in a transparent
-# background. Warning: Depending on the platform used, enabling this option
-# may lead to badly anti-aliased labels on the edges of a graph (i.e. they
-# become hard to read).
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = NO
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10)
-# support this, this feature is disabled by default.
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_MULTI_TARGETS = YES
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
-# generate a legend page explaining the meaning of the various boxes and
-# arrows in the dot generated graphs.
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
GENERATE_LEGEND = YES
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
-# remove the intermediate dot files that are used to generate
-# the various graphs.
+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
DOT_CLEANUP = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE = YES
diff --git a/tools/assign/duaIterate.py b/tools/assign/duaIterate.py
index 4d0d65f..fd1bc01 100755
--- a/tools/assign/duaIterate.py
+++ b/tools/assign/duaIterate.py
@@ -7,7 +7,7 @@
@author Jakob Erdmann
@author Yun-Pang Floetteroed
@date 2008-02-13
- at version $Id: duaIterate.py 18378 2015-05-15 07:43:59Z behrisch $
+ at version $Id: duaIterate.py 19535 2015-12-05 13:47:18Z behrisch $
Run duarouter and sumo alternating to perform a dynamic user assignment.
Based on the Perl script dua_iterate.pl.
@@ -182,10 +182,12 @@ def call(command, log):
sys.exit(retCode)
-def writeRouteConf(step, options, file, output, routesInfo, initial_type):
+def writeRouteConf(duarouterBinary, step, options, dua_args, file,
+ output, routesInfo, initial_type):
filename = os.path.basename(file)
filename = filename.split('.')[0]
cfgname = "iteration_%03i_%s.duarcfg" % (step, filename)
+
withExitTimes = False
if routesInfo == "detailed":
withExitTimes = True
@@ -194,7 +196,8 @@ def writeRouteConf(step, options, file, output, routesInfo, initial_type):
<input>
<net-file value="%s"/>""" % options.net, file=fd)
if options.districts:
- print(' <taz-files value="%s"/>' % options.districts, file=fd)
+ print(' <additional-files value="%s"/>' %
+ options.districts, file=fd)
if step == 0:
print(' <%s-files value="%s"/>' % (initial_type, file), file=fd)
else:
@@ -251,6 +254,8 @@ def writeRouteConf(step, options, file, output, routesInfo, initial_type):
</report>
</configuration>""" % (options.router_verbose, options.noWarnings), file=fd)
fd.close()
+ subprocess.call(
+ [duarouterBinary, "-c", cfgname, "--save-configuration", cfgname] + dua_args)
return cfgname
@@ -470,6 +475,7 @@ def main(args=None):
"Error: Could not locate sumo (%s).\nMake sure its on the search path or set environment variable SUMO_BINARY\n" % sumoBinary)
sumo_args = assign_remaining_args(sumoBinary, 'sumo', remaining_args)
+ dua_args = assign_remaining_args(sumoBinary, 'duarouter', remaining_args)
sys.stdout = sumolib.TeeFile(sys.stdout, open("stdout.log", "w+"))
log = open("dua.log", "w+")
@@ -541,9 +547,10 @@ def main(args=None):
print(">> Running router on %s" % router_input)
btime = datetime.now()
print(">>> Begin time: %s" % btime)
- cfgname = writeRouteConf(
- step, options, router_input, output, options.routefile, initial_type)
+ cfgname = writeRouteConf(duaBinary, step, options, dua_args, router_input,
+ output, options.routefile, initial_type)
log.flush()
+ sys.stdout.flush()
call([duaBinary, "-c", cfgname], log)
if options.clean_alt and not router_input in input_demands:
os.remove(router_input)
@@ -586,6 +593,7 @@ def main(args=None):
writeSUMOConf(sumoBinary, step, options, sumo_args,
",".join(simulation_demands)) # todo: change 'grou.xml'
log.flush()
+ sys.stdout.flush()
call([sumoBinary, "-c", "iteration_%03i.sumocfg" % step], log)
if options.tripinfoFilter:
filterTripinfo(step, set(options.tripinfoFilter.split(",")))
@@ -646,6 +654,7 @@ def main(args=None):
print("------------------\n")
log.flush()
+ sys.stdout.flush()
if converged:
break
if options.zip:
diff --git a/tools/build/checkSvnProps.py b/tools/build/checkSvnProps.py
index 65cdcf5..c5d55c0 100755
--- a/tools/build/checkSvnProps.py
+++ b/tools/build/checkSvnProps.py
@@ -3,7 +3,7 @@
@file checkSvnProps.py
@author Michael Behrisch
@date 2010-08-29
- at version $Id: checkSvnProps.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: checkSvnProps.py 18781 2015-09-04 13:40:09Z behrisch $
Checks svn property settings for all files.
@@ -28,7 +28,8 @@ _TESTDATA_EXT = [".xml", ".prog", ".csv",
".complex", ".dfrouter", ".duarouter", ".jtrrouter", ".marouter",
".astar", ".chrouter", ".internal", ".tcl", ".txt",
".netconvert", ".netgen", ".od2trips", ".polyconvert", ".sumo",
- ".meso", ".tools", ".traci", ".activitygen", ".scenario",
+ ".meso", ".tools", ".traci", ".activitygen",
+ ".scenario", ".tapasVEU",
".sumocfg", ".netccfg", ".netgcfg"]
_VS_EXT = [".vsprops", ".sln", ".vcproj",
".bat", ".props", ".vcxproj", ".filters"]
diff --git a/tools/build/dailyBuildMSVC.py b/tools/build/dailyBuildMSVC.py
index 6f466f9..b01cae2 100755
--- a/tools/build/dailyBuildMSVC.py
+++ b/tools/build/dailyBuildMSVC.py
@@ -5,7 +5,7 @@
@author Jakob Erdmann
@author Laura Bieker
@date 2008
- at version $Id: dailyBuildMSVC.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: dailyBuildMSVC.py 19535 2015-12-05 13:47:18Z behrisch $
Does the nightly svn update on the windows server and the visual
studio build. The script is also used for the meso build.
@@ -70,6 +70,8 @@ env["SMTP_SERVER"] = "smtprelay.dlr.de"
env["TEMP"] = env["TMP"] = r"D:\Delphi\texttesttmp"
env["REMOTEDIR_BASE"] = 'O:/Daten/Sumo'
compiler = r"D:\Programme\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"
+if "VS100COMNTOOLS" in env:
+ compiler = os.path.join(env["VS100COMNTOOLS"], "..", "IDE", "devenv.exe")
svnrev = ""
maxTime = 0
@@ -88,10 +90,9 @@ for platform, nightlyDir in [("Win32", r"O:\Daten\Sumo\Nightly"), ("x64", r"O:\D
env["SUMO_BATCH_RESULT"] = os.path.join(
options.rootDir, env["FILEPREFIX"] + "batch_result")
env["SUMO_REPORT"] = prefix + "report"
- binaryZip = os.path.join(nightlyDir, "sumo-%s-svn.zip" % env["FILEPREFIX"])
binDir = "sumo-svn/bin/"
- for f in [makeLog, makeAllLog, binaryZip] + glob.glob(os.path.join(options.rootDir, options.binDir, "*.exe")):
+ for f in [makeLog, makeAllLog] + glob.glob(os.path.join(options.rootDir, options.binDir, "*.exe")):
try:
os.remove(f)
except WindowsError:
@@ -134,9 +135,10 @@ for platform, nightlyDir in [("Win32", r"O:\Daten\Sumo\Nightly"), ("x64", r"O:\D
envSuffix = "_64"
# we need to use io.open here due to http://bugs.python.org/issue16273
log = io.open(makeLog, 'a')
- try:
- if sumoAllZip:
- binaryZip = sumoAllZip.replace("-all-", "-%s-" % env["FILEPREFIX"])
+ if sumoAllZip:
+ try:
+ binaryZip = sumoAllZip.replace(
+ "-all-", "-win32-" if platform == "Win32" else "-win64-")
zipf = zipfile.ZipFile(binaryZip, 'w', zipfile.ZIP_DEFLATED)
srcZip = zipfile.ZipFile(sumoAllZip)
write = False
@@ -153,35 +155,33 @@ for platform, nightlyDir in [("Win32", r"O:\Daten\Sumo\Nightly"), ("x64", r"O:\D
elif write or os.path.basename(f) in ["COPYING", "README"]:
zipf.writestr(f, srcZip.read(f))
srcZip.close()
- else:
- zipf = zipfile.ZipFile(binaryZip, 'w', zipfile.ZIP_DEFLATED)
- files_to_zip = (
- glob.glob(os.path.join(env["XERCES" + envSuffix], "bin", "xerces-c_?_?.dll")) +
- glob.glob(os.path.join(env["PROJ_GDAL" + envSuffix], "bin", "*.dll")) +
- glob.glob(os.path.join(env["FOX16" + envSuffix], "lib",
- "FOXDLL-1.6.dll")) +
- glob.glob(os.path.join(env["FOX16" + envSuffix], "lib",
- "libpng*.dll")) +
- glob.glob(os.path.join(nightlyDir, "msvc?100.dll")) +
- glob.glob(os.path.join(options.rootDir, options.binDir, "*.exe")) +
- glob.glob(os.path.join(options.rootDir, options.binDir, "*.jar")) +
- glob.glob(os.path.join(options.rootDir, options.binDir, "*.bat")))
- for f in files_to_zip:
- zipf.write(f, os.path.join(binDir, os.path.basename(f)))
- if not f.startswith(nightlyDir):
- try:
- shutil.copy2(f, nightlyDir)
- except IOError, (errno, strerror):
- print >> log, "Warning: Could not copy %s to %s!" % (
- f, nightlyDir)
- print >> log, "I/O error(%s): %s" % (errno, strerror)
- zipf.close()
- shutil.copy2(binaryZip, options.remoteDir)
- wix.buildMSI(binaryZip, binaryZip.replace(".zip", ".msi"))
- shutil.copy2(binaryZip.replace(".zip", ".msi"), options.remoteDir)
- except IOError, (errno, strerror):
- print >> log, "Warning: Could not zip to %s!" % binaryZip
- print >> log, "I/O error(%s): %s" % (errno, strerror)
+ files_to_zip = (
+ glob.glob(os.path.join(env["XERCES" + envSuffix], "bin", "xerces-c_?_?.dll")) +
+ glob.glob(os.path.join(env["PROJ_GDAL" + envSuffix], "bin", "*.dll")) +
+ glob.glob(os.path.join(env["FOX16" + envSuffix], "lib",
+ "FOXDLL-1.6.dll")) +
+ glob.glob(os.path.join(env["FOX16" + envSuffix], "lib",
+ "libpng*.dll")) +
+ glob.glob(os.path.join(nightlyDir, "msvc?100.dll")) +
+ glob.glob(os.path.join(options.rootDir, options.binDir, "*.exe")) +
+ glob.glob(os.path.join(options.rootDir, options.binDir, "*.jar")) +
+ glob.glob(os.path.join(options.rootDir, options.binDir, "*.bat")))
+ for f in files_to_zip:
+ zipf.write(f, os.path.join(binDir, os.path.basename(f)))
+ if not f.startswith(nightlyDir):
+ try:
+ shutil.copy2(f, nightlyDir)
+ except IOError, (errno, strerror):
+ print >> log, "Warning: Could not copy %s to %s!" % (
+ f, nightlyDir)
+ print >> log, "I/O error(%s): %s" % (errno, strerror)
+ zipf.close()
+ shutil.copy2(binaryZip, options.remoteDir)
+ wix.buildMSI(binaryZip, binaryZip.replace(".zip", ".msi"), log=log)
+ shutil.copy2(binaryZip.replace(".zip", ".msi"), options.remoteDir)
+ except IOError, (errno, strerror):
+ print >> log, "Warning: Could not zip to %s!" % binaryZip
+ print >> log, "I/O error(%s): %s" % (errno, strerror)
if platform == "Win32" and options.sumoExe == "sumo":
try:
setup = os.path.join(env["SUMO_HOME"], 'tools', 'game', 'setup.py')
@@ -227,18 +227,13 @@ for platform, nightlyDir in [("Win32", r"O:\Daten\Sumo\Nightly"), ("x64", r"O:\D
if options.sumoExe == "meso":
runInternalTests.runInternal("", fullOpt, log, console=True)
else:
- subprocess.call(
- [ttBin] + fullOpt, stdout=log, stderr=subprocess.STDOUT, shell=True)
- subprocess.call([ttBin, "-a", "sumo.gui"] + fullOpt,
+ subprocess.call([ttBin] + fullOpt, env=os.environ,
+ stdout=log, stderr=subprocess.STDOUT, shell=True)
+ subprocess.call([ttBin, "-a", "sumo.gui"] + fullOpt, env=os.environ,
stdout=log, stderr=subprocess.STDOUT, shell=True)
- subprocess.call([ttBin, "-b", env["FILEPREFIX"], "-coll"],
+ subprocess.call([ttBin, "-b", env["FILEPREFIX"], "-coll"], env=os.environ,
stdout=log, stderr=subprocess.STDOUT, shell=True)
- ago = datetime.datetime.now() - datetime.timedelta(50)
- subprocess.call('%s -s "batch.ArchiveRepository session=%s before=%s"' % (
- ttBin, env["FILEPREFIX"], ago.strftime("%d%b%Y")),
- stdout=log, stderr=subprocess.STDOUT, shell=True)
log.close()
log = open(statusLog, 'w')
- status.printStatus(
- makeLog, makeAllLog, env["TEXTTEST_TMP"], env["SMTP_SERVER"], log)
+ status.printStatus(makeLog, makeAllLog, env["SMTP_SERVER"], log)
log.close()
diff --git a/tools/build/dailyUpdateMakeGCC.sh b/tools/build/dailyUpdateMakeGCC.sh
index 87faee0..067dbe7 100755
--- a/tools/build/dailyUpdateMakeGCC.sh
+++ b/tools/build/dailyUpdateMakeGCC.sh
@@ -43,7 +43,7 @@ if make >> $MAKELOG 2>&1; then
scp -q $f $REMOTEDIR
fi
done
- rsync -rcz $PREFIX/sumo/docs/pydoc $PREFIX/sumo/docs/doxygen $PREFIX/sumo/docs/userdoc $REMOTEDIR
+ rsync -rcz $PREFIX/sumo/docs/pydoc $PREFIX/sumo/docs/doxygen $PREFIX/sumo/docs/userdoc $PREFIX/sumo/docs/javadoc $REMOTEDIR
else
echo "make dist-complete failed" | tee -a $STATUSLOG; tail -10 $MAKELOG
fi
@@ -73,7 +73,7 @@ if test -e $SUMO_BINDIR/sumo -a $SUMO_BINDIR/sumo -nt $PREFIX/sumo/configure; th
tests/runTests.sh -a sumo.gui -b $FILEPREFIX -name `date +%d%b%y`r$SVNREV >> $TESTLOG 2>&1
fi
tests/runTests.sh -b $FILEPREFIX -name `date +%d%b%y`r$SVNREV -coll >> $TESTLOG 2>&1
- find $TEXTTEST_TMP -name batchreport."*" -exec echo -n '{} ' \; -exec head -1 '{}' \; | sort >> $STATUSLOG
+ echo "batchreport" >> $STATUSLOG
rsync -rL $SUMO_REPORT $REMOTEDIR
fi
diff --git a/tools/build/status.py b/tools/build/status.py
index 0d84733..80acf3a 100755
--- a/tools/build/status.py
+++ b/tools/build/status.py
@@ -4,7 +4,7 @@
@author Michael Behrisch
@author Laura Bieker
@date 2007-03-13
- at version $Id: status.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: status.py 19535 2015-12-05 13:47:18Z behrisch $
SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
@@ -25,7 +25,16 @@ from os.path import basename, join, commonprefix
from datetime import datetime
-def printStatus(makeLog, makeAllLog, textTestTmp, smtpServer, out):
+def findErrors(line, warnings, errors, failed):
+ if re.search("[Ww]arn[ui]ng[: ]", line) or "[WARNING]" in line:
+ warnings += 1
+ if re.search("[Ee]rror[: ]", line) or re.search("[Ff]ehler:", line) or "[ERROR]" in line:
+ errors += 1
+ failed += line
+ return warnings, errors, failed
+
+
+def printStatus(makeLog, makeAllLog, smtpServer="localhost", out=sys.stdout, toAddr="sumo-tests at dlr.de"):
failed = ""
build = commonprefix([basename(makeLog), basename(makeAllLog)])
print >> out, build,
@@ -39,36 +48,19 @@ def printStatus(makeLog, makeAllLog, textTestTmp, smtpServer, out):
if ("svn: Working copy" in l and "locked" in l) or "svn: Failed" in l:
svnLocked = True
failed += l
- if re.search("[Ww]arn[ui]ng[: ]", l):
- warnings += 1
- if re.search("[Ee]rror[: ]", l) or re.search("[Ff]ehler[: ]", l):
- errors += 1
- failed += l
+ warnings, errors, failed = findErrors(l, warnings, errors, failed)
if svnLocked:
failed += "svn up failed\n\n"
print >> out, warnings, "warnings"
if errors:
print >> out, errors, "errors"
failed += "make failed\n\n"
- print >> out, "--"
- for root, dirs, files in os.walk(textTestTmp):
- for f in files:
- if f.startswith("batchreport"):
- b = open(join(root, f))
- l = b.readline()
- if l.startswith("FAILED") or l.startswith("succeeded") or l.startswith("killed") or l.startswith("known bugs"):
- print >> out, f, l,
- b.close()
- print >> out, "--"
+ print >> out, "--\nbatchreport\n--"
print >> out, basename(makeAllLog)
warnings = 0
errors = 0
for l in file(makeAllLog):
- if re.search("[Ww]arn[ui]ng[: ]", l):
- warnings += 1
- if "error " in l.lower():
- errors += 1
- failed += l
+ warnings, errors, failed = findErrors(l, warnings, errors, failed)
print >> out, warnings, "warnings"
if errors:
print >> out, errors, "errors"
@@ -76,15 +68,17 @@ def printStatus(makeLog, makeAllLog, textTestTmp, smtpServer, out):
print >> out, "--"
if failed:
fromAddr = "sumo-tests at dlr.de"
- toAddr = "sumo-tests at dlr.de"
message = """From: "%s" <%s>
To: %s
Subject: Error occurred while building
%s""" % (build, fromAddr, toAddr, failed)
- server = smtplib.SMTP(smtpServer)
- server.sendmail(fromAddr, toAddr, message)
- server.quit()
+ try:
+ server = smtplib.SMTP(smtpServer)
+ server.sendmail(fromAddr, toAddr, message)
+ server.quit()
+ except:
+ print "Could not send mail."
if __name__ == "__main__":
- printStatus(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.stdout)
+ printStatus(sys.argv[1], sys.argv[2], sys.argv[3], sys.stdout, sys.argv[4])
diff --git a/tools/build/wix.py b/tools/build/wix.py
index d006113..d5894e6 100755
--- a/tools/build/wix.py
+++ b/tools/build/wix.py
@@ -4,7 +4,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2011
- at version $Id: wix.py 18715 2015-08-25 11:24:13Z behrisch $
+ at version $Id: wix.py 19535 2015-12-05 13:47:18Z behrisch $
Builds the installer based on the nightly zip.
@@ -26,55 +26,69 @@ import tempfile
import glob
import shutil
-INPUT_DEFAULT = r"O:\Daten\Sumo\Nightly\sumo-msvc10Win32-svn.zip"
-OUTPUT_DEFAULT = r"O:\Daten\Sumo\Nightly\sumo-msvc10Win32-svn.msi"
+INPUT_DEFAULT = r"O:\Daten\Sumo\Nightly\sumo-win32-svn.zip"
+OUTPUT_DEFAULT = "sumo.msi"
WIX_DEFAULT = "%sbin" % os.environ.get(
"WIX", r"D:\Programme\Windows Installer XML v3.5\\")
WXS_DEFAULT = os.path.join(
- os.path.dirname(__file__), "..", "..", "build", "sumo.wxs")
+ os.path.dirname(__file__), "..", "..", "build", "wix", "*.wxs")
LICENSE = os.path.join(
- os.path.dirname(__file__), "..", "..", "build", "License.rtf")
+ os.path.dirname(__file__), "..", "..", "build", "wix", "License.rtf")
+SKIP_FILES = [r"osmWebWizard.py"]
-def buildFragment(wixBin, sourceDir, targetLabel, tmpDir):
+
+def buildFragment(wixBin, sourceDir, targetLabel, tmpDir, log=None):
base = os.path.basename(sourceDir)
subprocess.call([os.path.join(wixBin, "heat.exe"), "dir", sourceDir,
- "-cg", base, "-gg", "-dr", targetLabel, "-out", os.path.join(tmpDir, "Fragment.wxs")])
- fragIn = open(os.path.join(tmpDir, "Fragment.wxs"))
+ "-cg", base, "-gg", "-dr", targetLabel,
+ "-out", os.path.join(tmpDir, base + "RawFragment.wxs")],
+ stdout=log, stderr=log)
+ fragIn = open(os.path.join(tmpDir, base + "RawFragment.wxs"))
fragOut = open(os.path.join(tmpDir, base + "Fragment.wxs"), "w")
+ skip = 0
for l in fragIn:
- fragOut.write(l.replace("SourceDir", sourceDir))
+ for s in SKIP_FILES:
+ if s in l:
+ skip = 3
+ if skip == 0:
+ fragOut.write(l.replace("SourceDir", sourceDir))
+ else:
+ skip -= 1
fragOut.close()
fragIn.close()
return fragOut.name
-def buildMSI(sourceZip=INPUT_DEFAULT, outFile=OUTPUT_DEFAULT, wixBin=WIX_DEFAULT, wxs=WXS_DEFAULT,
- license=LICENSE):
+def buildMSI(sourceZip=INPUT_DEFAULT, outFile=OUTPUT_DEFAULT,
+ wixBin=WIX_DEFAULT, wxsPattern=WXS_DEFAULT,
+ license=LICENSE, log=None):
tmpDir = tempfile.mkdtemp()
zipfile.ZipFile(sourceZip).extractall(tmpDir)
sumoRoot = glob.glob(os.path.join(tmpDir, "sumo-*"))[0]
- fragments = []
- for d in ["userdoc", "pydoc", "tutorial", "examples"]:
+ fragments = [buildFragment(wixBin, os.path.join(
+ sumoRoot, d), "INSTALLDIR", tmpDir, log) for d in ["data", "tools"]]
+ for d in ["userdoc", "pydoc", "javadoc", "tutorial", "examples"]:
fragments.append(
- buildFragment(wixBin, os.path.join(sumoRoot, "docs", d), "DOCDIR", tmpDir))
- fragments.append(
- buildFragment(wixBin, os.path.join(sumoRoot, "data"), "INSTALLDIR", tmpDir))
- fragments.append(
- buildFragment(wixBin, os.path.join(sumoRoot, "tools"), "INSTALLDIR", tmpDir))
- wxsIn = open(wxs)
- wxsOut = open(os.path.join(tmpDir, "sumo.wxs"), "w")
- for l in wxsIn:
- l = l.replace("License.rtf", license)
- wxsOut.write(
- l.replace(r"O:\Daten\Sumo\Nightly", os.path.join(sumoRoot, "bin")))
- wxsOut.close()
- wxsIn.close()
- subprocess.call(
- [os.path.join(wixBin, "candle.exe"), "-o", tmpDir + "\\", wxsOut.name] + fragments)
- wixObj = [f.replace(".wxs", ".wixobj") for f in [wxsOut.name] + fragments]
+ buildFragment(wixBin, os.path.join(sumoRoot, "docs", d), "DOCDIR", tmpDir, log))
+ for wxs in glob.glob(wxsPattern):
+ with open(wxs) as wxsIn:
+ with open(os.path.join(tmpDir, os.path.basename(wxs)), "w") as wxsOut:
+ for l in wxsIn:
+ l = l.replace("License.rtf", license)
+ dataDir = os.path.dirname(license)
+ for data in ["bannrbmp.bmp", "dlgbmp.bmp"]:
+ l = l.replace(data, os.path.join(dataDir, data))
+ wxsOut.write(
+ l.replace(r"O:\Daten\Sumo\Nightly", os.path.join(sumoRoot, "bin")))
+ fragments.append(wxsOut.name)
+ subprocess.call([os.path.join(wixBin, "candle.exe"),
+ "-o", tmpDir + "\\"] + fragments,
+ stdout=log, stderr=log)
+ wixObj = [f.replace(".wxs", ".wixobj") for f in fragments]
subprocess.call([os.path.join(wixBin, "light.exe"),
- "-ext", "WixUIExtension", "-o", outFile] + wixObj)
+ "-ext", "WixUIExtension", "-o", outFile] + wixObj,
+ stdout=log, stderr=log)
shutil.rmtree(tmpDir, True) # comment this out when debugging
if __name__ == "__main__":
@@ -86,7 +100,7 @@ if __name__ == "__main__":
optParser.add_option(
"-w", "--wix", default=WIX_DEFAULT, help="path to the wix binaries")
optParser.add_option(
- "-x", "--wxs", default=WXS_DEFAULT, help="path to wxs template")
+ "-x", "--wxs", default=WXS_DEFAULT, help="pattern for wxs templates")
optParser.add_option(
"-l", "--license", default=LICENSE, help="path to the license")
(options, args) = optParser.parse_args()
diff --git a/tools/contributed/traci4j/.classpath b/tools/contributed/traci4j/.classpath
index e88048e..a550ac6 100755
--- a/tools/contributed/traci4j/.classpath
+++ b/tools/contributed/traci4j/.classpath
@@ -1,13 +1,30 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="test/java"/>
- <classpathentry kind="src" path="src/java"/>
- <classpathentry kind="src" path="examples"/>
- <classpathentry kind="src" path="src/java-gen"/>
- <classpathentry kind="lib" path="lib/log4j.jar"/>
- <classpathentry kind="lib" path="lib/xercesImpl.jar"/>
- <classpathentry kind="lib" path="lib/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="lib/junit.jar"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="test/java">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/test-classes" path="test/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" path="examples"/>
+ <classpathentry kind="src" path="target/src/java-gen"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="src" output="target/classes" path="${src.dir}">
+ <attributes>
+ <attribute name="optional" value="true"/>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/tools/contributed/traci4j/.externalToolBuilders/TraCI4J [Builder].launch b/tools/contributed/traci4j/.externalToolBuilders/TraCI4J [Builder].launch
deleted file mode 100644
index d6b1ce7..0000000
--- a/tools/contributed/traci4j/.externalToolBuilders/TraCI4J [Builder].launch
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AFTER_CLEAN_TARGETS" value="clean,"/>
-<stringAttribute key="org.eclipse.ant.ui.ATTR_ANT_AUTO_TARGETS" value="build,"/>
-<booleanAttribute key="org.eclipse.ant.ui.ATTR_TARGETS_UPDATED" value="true"/>
-<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${resource}"/>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
-<listEntry value="/TraCI4J/build.xml"/>
-</listAttribute>
-<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
-<listEntry value="1"/>
-</listAttribute>
-<booleanAttribute key="org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND" value="false"/>
-<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="TraCI4J"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_HIDE_INTERNAL_TARGETS" value="true"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/TraCI4J/build.xml}"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_RUN_BUILD_KINDS" value="full,incremental,auto,"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
-</launchConfiguration>
diff --git a/tools/contributed/traci4j/.gitignore b/tools/contributed/traci4j/.gitignore
index 97b066a..04a1931 100644
--- a/tools/contributed/traci4j/.gitignore
+++ b/tools/contributed/traci4j/.gitignore
@@ -11,3 +11,4 @@ junit/
# can be un-ignored when Javadoc is complete enough
doc/
+/target/
diff --git a/tools/contributed/traci4j/.project b/tools/contributed/traci4j/.project
index dfe55b2..f1652d5 100755
--- a/tools/contributed/traci4j/.project
+++ b/tools/contributed/traci4j/.project
@@ -11,17 +11,19 @@
</arguments>
</buildCommand>
<buildCommand>
- <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
- <triggers>auto,full,incremental,</triggers>
+ <name>net.sourceforge.metrics.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
- <dictionary>
- <key>LaunchConfigHandle</key>
- <value><project>/.externalToolBuilders/TraCI4J [Builder].launch</value>
- </dictionary>
</arguments>
</buildCommand>
</buildSpec>
<natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.sourceforge.metrics.nature</nature>
</natures>
</projectDescription>
diff --git a/tools/contributed/traci4j/.settings/org.eclipse.core.resources.prefs b/tools/contributed/traci4j/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..d6f3ece
--- /dev/null
+++ b/tools/contributed/traci4j/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//test/java=UTF-8
+encoding//test/resources=UTF-8
+encoding/<project>=UTF-8
+encoding/src=UTF-8
+encoding/test=UTF-8
diff --git a/tools/contributed/traci4j/.settings/org.eclipse.jdt.core.prefs b/tools/contributed/traci4j/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..6b5aebc
--- /dev/null
+++ b/tools/contributed/traci4j/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/tools/contributed/traci4j/.settings/org.eclipse.m2e.core.prefs b/tools/contributed/traci4j/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/tools/contributed/traci4j/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/tools/contributed/traci4j/README.md b/tools/contributed/traci4j/README.md
index 76584b1..baee518 100644
--- a/tools/contributed/traci4j/README.md
+++ b/tools/contributed/traci4j/README.md
@@ -3,7 +3,7 @@ What is TraCI4J
TraCI4J is a Java library for interfacing [SUMO](http://sumo.sourceforge.net) with a Java program to control and/or watch a traffic simulation via SUMO's [TraCI](http://sumo-sim.org/userdoc/TraCI.html) interface.
-It is developed by members at [ApPeAL (Applied Pervasive Architectures Lab)](http://omero.polito.it/appeal/home.html) in [Politecnico di Torino](http://www.polito.it).
+It was initially developed by members at [ApPeAL (Applied Pervasive Architectures Lab)](http://www.dauin.polito.it/it/la_ricerca/gruppi_di_ricerca/appeal_applied_pervasive_architectures_lab) in [Politecnico di Torino](http://www.polito.it).
What can TraCI4J do
---
@@ -42,10 +42,10 @@ How to use it
First of all, you need:
-* A working SUMO installation (0.16.0 or higher)
+* A working SUMO installation (0.23.0 or higher)
* Be familiar with SUMO, i.e. know its basic principles, how to set up the input files, how to run it...
* A SUMO file set (a config file, a net description file and a routes file at least)
-* A Java SE 1.6 virtual machine
+* A Java SE 1.7 virtual machine
You can find some usage examples [in this directory](examples/it/polito/appeal/traci/examples).
diff --git a/tools/contributed/traci4j/build.xml b/tools/contributed/traci4j/build.xml
index efb05f0..6c7ad5e 100755
--- a/tools/contributed/traci4j/build.xml
+++ b/tools/contributed/traci4j/build.xml
@@ -9,26 +9,18 @@
<property name="junit.output.dir" value="junit"/>
<property name="debuglevel" value="source,lines,vars"/>
<path id="TraCI4J.classpath">
- <pathelement location="bin"/>
- <pathelement location="lib/junit.jar"/>
- <pathelement location="lib/log4j.jar"/>
- <pathelement location="lib/resolver.jar"/>
- <pathelement location="lib/serializer.jar"/>
- <pathelement location="lib/xercesImpl.jar"/>
- <!-- TODO put these in a separate path for testing only -->
- <pathelement location="lib/xml-apis.jar"/>
- <pathelement location="lib/org.hamcrest.core_1.1.0.v20090501071000.jar"/>
+ <pathelement location="target"/>
</path>
<target name="init">
- <mkdir dir="bin"/>
- <copy includeemptydirs="false" todir="bin">
+ <mkdir dir="target"/>
+ <copy includeemptydirs="false" todir="target">
<fileset dir="src">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
<exclude name="sumo/traci/"/>
</fileset>
</copy>
- <copy includeemptydirs="false" todir="bin">
+ <copy includeemptydirs="false" todir="target">
<fileset dir="test/java">
<exclude name="**/*.launch"/>
<exclude name="**/*.java"/>
@@ -36,44 +28,24 @@
</copy>
</target>
<target name="clean">
- <delete dir="bin"/>
+ <delete dir="target"/>
</target>
<target depends="clean" name="cleanall"/>
<target depends="build-subprojects,build-project" name="build"/>
<target name="build-subprojects"/>
- <target depends="init,generate" name="build-project">
+ <target depends="init" name="build-project">
<echo message="${ant.project.name}: ${ant.file}"/>
- <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false">
+ <javac debug="true" debuglevel="${debuglevel}" destdir="target" includeantruntime="false">
<src path="src"/>
<exclude name="sumo/traci/"/>
<classpath refid="TraCI4J.classpath"/>
</javac>
- <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false">
+ <javac debug="true" debuglevel="${debuglevel}" destdir="target" includeantruntime="false">
<src path="test/java"/>
<classpath refid="TraCI4J.classpath"/>
</javac>
</target>
- <target name="clean-old-generated" depends="init">
- <dependset>
- <srcfileset dir="src/xml/traciObjects/"/>
- <srcfileset file="src/xml/queries.xml"/>
- <targetfileset dir="src/java-gen/it/polito/appeal/traci"/>
- </dependset>
- </target>
-
- <target name="generate" depends="init,clean-old-generated">
- <xslt
- basedir="src/xml/traciObjects"
- includes="*.xml"
- destdir="src/java-gen/it/polito/appeal/traci"
- extension=".java"
- style="src/xslt/traciObject.xslt">
- <param
- name="queries-file-name"
- expression="../xml/queries.xml" />
- </xslt>
- </target>
<target description="Build all projects which reference this project. Useful to propagate changes." name="build-refprojects"/>
<target name="TraCITest">
<mkdir dir="${junit.output.dir}"/>
@@ -128,18 +100,4 @@
<link href="http://java.sun.com/javase/6/docs/api/"/>
</javadoc>
</target>
-
- <target name="deploy" depends="build">
- <jar destfile="traci4j.jar"
- duplicate="fail"
- update="yes">
- <fileset dir="bin"/>
- </jar>
- <jar destfile="traci4j-sources.jar"
- duplicate="fail"
- update="yes">
- <fileset dir="src/java"/>
- <fileset dir="src/java-gen" />
- </jar>
- </target>
</project>
diff --git a/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/OpenStepsClose.java b/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/OpenStepsClose.java
index 5f2cf33..3dd7c1d 100755
--- a/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/OpenStepsClose.java
+++ b/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/OpenStepsClose.java
@@ -24,8 +24,6 @@ import it.polito.appeal.traci.Vehicle;
import java.util.Collection;
-import org.apache.log4j.BasicConfigurator;
-
/**
* This code picks a vehicle from the active ones and queries its current route.
*
@@ -36,8 +34,6 @@ public class OpenStepsClose {
/** main method */
public static void main(String[] args) {
- BasicConfigurator.configure();
-
SumoTraciConnection conn = new SumoTraciConnection(
"test/sumo_maps/box1l/test.sumo.cfg", // config file
12345 // random seed
@@ -48,7 +44,7 @@ public class OpenStepsClose {
System.out.println("Map bounds are: " + conn.queryBounds());
for (int i = 0; i < 10; i++) {
- int time = conn.getCurrentSimStep();
+ int time = conn.getCurrentSimTime() / 1000;
Collection<Vehicle> vehicles = conn.getVehicleRepository().getAll().values();
System.out.println("At time step " + time + ", there are "
diff --git a/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/TcpNoDelayControl.java b/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/TcpNoDelayControl.java
index f961a49..82e8ffc 100644
--- a/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/TcpNoDelayControl.java
+++ b/tools/contributed/traci4j/examples/it/polito/appeal/traci/examples/TcpNoDelayControl.java
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
package it.polito.appeal.traci.examples;
@@ -23,115 +23,96 @@ import it.polito.appeal.traci.SumoTraciConnection;
import java.util.ArrayList;
-import org.apache.log4j.BasicConfigurator;
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Priority;
-
/**
* Based on the OpenStepsClose example. Shows how to control the TCP_NODELAY
* setting, which can be a problem for Linux platforms.
*
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * <br/>with modifications by Mardi <mardi.rmit at gmail.com>
+ * @author Enrico Gueli <enrico.gueli at polito.it> <br/>
+ * with modifications by Mardi <mardi.rmit at gmail.com>
*
*/
public class TcpNoDelayControl {
/** main method */
- public static void main(String[] args)
- {
- /*
- * Removes the debug log messages from console output
- */
- ConsoleAppender ca = new ConsoleAppender();
- ca.setThreshold(Priority.WARN);
- BasicConfigurator.configure(ca);
-
+ public static void main(String[] args) {
SumoTraciConnection conn = new SumoTraciConnection(
- "test/sumo_maps/box1l/test.sumo.cfg", // config file
- 12345 // random seed
- );
-
+ "test/sumo_maps/box1l/test.sumo.cfg", // config file
+ 12345 // random seed
+ );
/*
* Sets the TCP_NODELAY property on the socket connection to SUMO based
* on the OS we are executing in.
*/
String os = System.getProperty("os.name");
- if(os.matches("Linux"))
- {
- conn.enableTcpNoDelay();
- }
- else
- {
- conn.disableTcpNoDelay();
+ if (os.matches("Linux")) {
+ conn.enableTcpNoDelay();
+ } else {
+ conn.disableTcpNoDelay();
}
-
-
+
/*
- * Just some simple checking code.
+ * Just some simple checking code.
*/
boolean check = conn.isTcpNoDelayActive();
-
+
System.out.println();
- System.out.printf("Setting TcpNoDelay to [%b] as we are in %s\n", check, os);
-
-
+ System.out.printf("Setting TcpNoDelay to [%b] as we are in %s\n",
+ check, os);
+
/*
* For calculating mean execution times.
*/
ArrayList<Long> val = new ArrayList<Long>();
-
- try
- {
- /*
- * If we did not want to depend on the OS, we can simply override the
- * TCP_NODELAY setting by doing conn.setTcpNoDelay(false) here.
- */
- // conn.setTcpNoDelay(false);
+
+ try {
+ /*
+ * If we did not want to depend on the OS, we can simply override
+ * the TCP_NODELAY setting by doing conn.setTcpNoDelay(false) here.
+ */
+ // conn.setTcpNoDelay(false);
conn.runServer();
-
+
System.out.println();
System.out.println("Map bounds are: " + conn.queryBounds());
System.out.println();
-
+
int i;
-
- for (i = 0; i < 20; i++)
- {
- int time = conn.getCurrentSimStep();
-
- long bgn;
- long end;
- long dif;
-
- bgn = System.currentTimeMillis();
+
+ for (i = 0; i < 20; i++) {
+ int time = conn.getCurrentSimTime() / 1000;
+
+ long bgn;
+ long end;
+ long dif;
+
+ bgn = System.currentTimeMillis();
conn.nextSimStep();
end = System.currentTimeMillis();
dif = end - bgn;
-
+
System.out.println();
System.out.printf("Begin Time: %s ms\n", bgn);
System.out.printf("End Time : %s ms\n", end);
System.out.printf("Tick %03d : %d ms\n", time, dif);
val.add(dif);
}
-
+
double sum = 0;
-
- for(Long l : val)
- {
- sum += l;
+
+ for (Long l : val) {
+ sum += l;
}
-
- double avg = sum / (double)val.size();
-
+
+ double avg = sum / (double) val.size();
+
System.out.println();
- System.out.printf("Average: %.2f ms for %d ticks, with tcpnodelay=%b\n", avg, i, conn.isTcpNoDelayActive());
-
+ System.out.printf(
+ "Average: %.2f ms for %d ticks, with tcpnodelay=%b\n", avg,
+ i, conn.isTcpNoDelayActive());
+
conn.close();
- }
- catch(Exception e) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
diff --git a/tools/contributed/traci4j/pom.xml b/tools/contributed/traci4j/pom.xml
new file mode 100644
index 0000000..5fb2c70
--- /dev/null
+++ b/tools/contributed/traci4j/pom.xml
@@ -0,0 +1,335 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>it.polito.appeal.traci</groupId>
+ <artifactId>TraCI4J</artifactId>
+ <version>2.4-SNAPSHOT</version>
+ <packaging>jar</packaging>
+
+ <developers>
+ <developer>
+ <name>Enrico Gueli</name>
+ <email>enrico.gueli at polito.it</email>
+ <roles>
+ <role>PMC Member</role>
+ </roles>
+ </developer>
+ </developers>
+
+ <contributors>
+ <contributor>
+ <name>Pietro Niccoli</name>
+ <email>piemail at tiscali.it</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ <contributor>
+ <name>Tobias Wessels</name>
+ <email>tobias.wessels at tu-clausthal.de</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ <contributor>
+ <name>Thomas Plathe</name>
+ <email>thomas.plathe at tu-clausthal.de</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ <contributor>
+ <name>Mardi Rmit</name>
+ <email>mardi.rmit at gmail.com</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ <contributor>
+ <name>Kevin Smith</name>
+ <email>kevin_smith at mail.ru</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ <contributor>
+ <name>Martin Florian</name>
+ <email>florian at kit.edu</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ <contributor>
+ <name>Christian Zyweck</name>
+ <email>zyweckch at informatik.hu-berlin.de</email>
+ <roles>
+ <role>Committer</role>
+ </roles>
+ </contributor>
+ </contributors>
+
+ <organization>
+ <name>Politecnico di Torino</name>
+ <url>http://www.polito.it/</url>
+ </organization>
+
+ <scm>
+ <connection>scm::git::https://github.com/egueli/TraCI4J.git</connection>
+ <developerConnection>scm::git::https://github.com/egueli/TraCI4J.git</developerConnection>
+ <url>https://github.com/egueli/TraCI4J</url>
+ <tag>master</tag>
+ </scm>
+
+ <url>https://github.com/egueli/TraCI4J</url>
+
+ <distributionManagement>
+ <site>
+ <id>amor.cms.hu-berlin.de</id>
+ <url>scp://amor.cms.hu-berlin.de/home/informatik/zyweckch/public_html/traci4j</url>
+ </site>
+ </distributionManagement>
+
+ <name>TraCI4J</name>
+ <description>TraCI4J is a Java library for interfacing SUMO with a Java program to control and/or watch a traffic simulation via SUMO's TraCI interface.</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <jacoco.version>0.7.5.201505241946</jacoco.version>
+ <sourcePathes>src/java;src/java-gen</sourcePathes>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <version>2.3</version>
+ </dependency>
+ <dependency>
+ <groupId>xerces</groupId>
+ <artifactId>xercesImpl</artifactId>
+ <version>2.11.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>1.3</version>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <activation>
+ <activeByDefault></activeByDefault>
+ </activation>
+ <id>build</id>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.3</version>
+ <configuration>
+ <source>1.7</source>
+ <target>1.7</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>${jacoco.version}</version>
+ <executions>
+ <execution>
+ <id>pre-unit-test</id>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>post-unit-test</id>
+ <phase>test</phase>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>pre-integration-test</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ <configuration>
+ <destFile>target/jacoco.exec</destFile>
+ <propertyName>failsafe.argLine</propertyName>
+ </configuration>
+ </execution>
+ <execution>
+ <id>post-integration-test</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>report</goal>
+ </goals>
+ <configuration>
+ <dataFile>target/jacoco.exec</dataFile>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.10.3</version>
+ <configuration>
+ <access>public</access>
+ <author>true</author>
+ <destDir>doc</destDir>
+ <doctitle>TraCI4J Javadoc</doctitle>
+ <nodeprecated>false</nodeprecated>
+ <nodeprecatedlist>false</nodeprecatedlist>
+ <noindex>false</noindex>
+ <nonavbar>false</nonavbar>
+ <notree>false</notree>
+ <splitindex>true</splitindex>
+ <use>true</use>
+ <version>true</version>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+ <build>
+ <defaultGoal>compile</defaultGoal>
+ <sourceDirectory>src</sourceDirectory>
+ <testSourceDirectory>test/java</testSourceDirectory>
+ <testResources>
+ <testResource>
+ <directory>test/resources</directory>
+ </testResource>
+ </testResources>
+
+ <plugins>
+ <plugin>
+ <groupId>net.sf.xsltmp</groupId>
+ <artifactId>xslt-generator-maven-plugin</artifactId>
+ <version>1.8</version>
+ <executions>
+ <execution>
+ <id>generate-traci-objects-src</id>
+ <goals>
+ <goal>many-to-many</goal>
+ </goals>
+ <configuration>
+ <xslTemplate>src/xslt/traciObject.xslt</xslTemplate>
+ <srcDir>src/xml/traciObjects</srcDir>
+ <srcIncludes>*.xml</srcIncludes>
+ <destDir>${project.build.directory}/src/java-gen/it/polito/appeal/traci</destDir>
+ <addDestDirTo>sources</addDestDirTo>
+ <fileNameRegex>\.xml</fileNameRegex>
+ <fileNameReplacement>\.java</fileNameReplacement>
+ <parameters>
+ <queries-file-name>../xml/queries.xml</queries-file-name>
+ </parameters>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+
+ </build>
+
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <version>2.5</version>
+ <configuration>
+ <sourcePath>${sourcePathes}</sourcePath>
+ <!-- TODO Move the files from ./java*/ to ./ -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.8</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>2.16</version>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>checkstyle</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <version>3.5</version>
+ <configuration>
+ <skipEmptyReport>false</skipEmptyReport>
+ </configuration>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>pmd</report>
+ <report>cpd</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>javancss-maven-plugin</artifactId>
+ <version>2.1</version>
+ <configuration>
+ <failOnViolation>false</failOnViolation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ <version>2.4</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>3.0.1</version>
+ <configuration>
+ <xmlOutput>true</xmlOutput>
+ <xmlOutputDirectory>target/site</xmlOutputDirectory>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>2.18.1</version>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>${jacoco.version}</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.10.3</version>
+ <configuration>
+ <show>private</show>
+ <sourcepath>${sourcePathes}</sourcepath>
+ <failOnError>false</failOnError>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+</project>
diff --git a/tools/contributed/traci4j/src/java-gen/.gitignore b/tools/contributed/traci4j/src/java-gen/.gitignore
deleted file mode 100644
index e2fa369..0000000
--- a/tools/contributed/traci4j/src/java-gen/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-# Ignore everything in this directory
-# (it will contain auto-generated files, that should not be versioned)
-*
-# Except this file
-!.gitignore
diff --git a/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Socket.java b/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Socket.java
index 1f2134a..73dea3f 100755
--- a/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Socket.java
+++ b/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Socket.java
@@ -4,6 +4,9 @@ import java.io.*;
import java.net.*;
import java.util.*;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
/*
* Modifications by Enrico Gueli:
* - added generic type to Vector
@@ -18,6 +21,8 @@ public class Socket {
protected java.net.Socket socketConnection = null;
protected InputStream inStream;
protected OutputStream outStream;
+
+ private Logger log = LogManager.getLogger();
public Socket(String host, int port)
{
@@ -39,7 +44,7 @@ public class Socket {
public void accept() throws IOException
{
- System.out.println("accept");
+ log.debug("accept");
serverSocket = new ServerSocket(port);
socketConnection = serverSocket.accept();
socketConnection.setTcpNoDelay(true);
@@ -50,7 +55,7 @@ public class Socket {
public void connect() throws UnknownHostException, IOException
{
- System.out.println("connect");
+ log.debug("connect");
socketConnection = new java.net.Socket(host, port);
socketConnection.setTcpNoDelay(true);
@@ -71,7 +76,7 @@ public class Socket {
for (int i=0; i < numBytes; i++)
buffer[i] = ((Integer)(data.get(i))).byteValue();
-// System.err.println ("Send " + numBytes + " bytes via tcpip::socket: " + data.toString());
+ log.trace("Send " + numBytes + " bytes via tcpip::socket: " + data.toString());
outStream.write(buffer);
}
@@ -93,13 +98,18 @@ public class Socket {
for (int i=0; i < storageToSend.size(); i++)
buffer[i+4] = storageToSend.getStorageList().get(i).byteValue();
-/*
- System.err.print("Send " + length + " bytes via tcpip::socket: ");
- for (int i = 0; i < length; ++i)
- System.err.print( " " + buffer[i] + " ");
- System.err.println("]");
-*/
- outStream.write(buffer);
+ if (log.isTraceEnabled()) {
+ StringBuffer buf = new StringBuffer("Send " + length + " bytes via tcpip::socket: ");
+ for (int i = 0; i < length; ++i) {
+ buf.append(" ");
+ buf.append(buffer[i]);
+ buf.append(" ");
+ }
+ buf.append("]");
+ log.trace(buf.toString());
+ }
+
+ outStream.write(buffer);
}
@@ -132,7 +142,7 @@ public class Socket {
}
}
-// System.err.println("Rcvd " + bytesRead + " bytes via tcpip::socket: " + buffer);
+ log.trace("Rcvd " + bytesRead + " bytes via tcpip::socket: " + buffer);
return returnData;
}
@@ -162,12 +172,18 @@ public class Socket {
bytesRead += readThisTime;
}
-/*
- System.err.print("Rcvd " + bytesRead + " bytes via tcpip::socket: ");
- for (int i = 0; i < bytesRead; ++i)
- System.err.print( " " + buffer[i] + " ");
- System.err.println("]");
-*/
+
+ if (log.isTraceEnabled()) {
+ StringBuffer buf = new StringBuffer("Rcvd " + bytesRead + " bytes via tcpip::socket: ");
+ for (int i = 0; i < bytesRead; ++i) {
+ buf.append(" ");
+ buf.append(buffer[i]);
+ buf.append(" ");
+ }
+ buf.append("]");
+ log.trace(buf.toString());
+ }
+
return buffer;
}
diff --git a/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Storage.java b/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Storage.java
index 04fff53..fcaa3c6 100755
--- a/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Storage.java
+++ b/tools/contributed/traci4j/src/java/de/uniluebeck/itm/tcpip/Storage.java
@@ -11,6 +11,9 @@ import java.util.Collections;
import java.util.List;
import java.util.ListIterator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
/*
* Modifications by Enrico Gueli:
* - replaced LinkedList to ArrayList
@@ -26,6 +29,8 @@ public class Storage {
private List<Byte> storageList;
private int position;
private ListIterator<Byte> listIt;
+
+ private Logger log = LogManager.getLogger();
public Storage()
{
@@ -177,7 +182,7 @@ public class Storage {
dataOut.writeShort(value);
dataOut.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
bytes = byteOut.toByteArray();
for (int i=0; i<2; i++)
@@ -205,7 +210,7 @@ public class Storage {
result = dataIn.readShort();
dataIn.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
return result;
@@ -226,7 +231,7 @@ public class Storage {
dataOut.writeInt(value);
dataOut.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
bytes = byteOut.toByteArray();
for (int i=0; i<4; i++)
@@ -255,7 +260,7 @@ public class Storage {
result = dataIn.readInt();
dataIn.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
return result;
@@ -276,7 +281,7 @@ public class Storage {
dataOut.writeFloat(value);
dataOut.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
bytes = byteOut.toByteArray();
for (int i=0; i<4; i++)
@@ -305,7 +310,7 @@ public class Storage {
result = dataIn.readFloat();
dataIn.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
return result;
@@ -326,7 +331,7 @@ public class Storage {
dataOut.writeDouble(value);
dataOut.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
bytes = byteOut.toByteArray();
for (int i=0; i<8; i++)
@@ -355,7 +360,7 @@ public class Storage {
result = dataIn.readDouble();
dataIn.close();
} catch (IOException e) {
- e.printStackTrace();
+ log.error(e);
}
return result;
@@ -413,7 +418,7 @@ public class Storage {
try {
bytes = value.getBytes(charset);
} catch (UnsupportedEncodingException e) {
- e.printStackTrace();
+ log.error(e);
return;
}
@@ -485,7 +490,8 @@ public class Storage {
result = new String(content, charset);
} catch (UnsupportedEncodingException e) {
- assert false : e;
+ log.error(e);
+ throw new AssertionError(e);
}
return result;
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddRouteQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddRouteQuery.java
index 3c882ea..24ee51c 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddRouteQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddRouteQuery.java
@@ -1,83 +1,83 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-import it.polito.appeal.traci.protocol.StringList;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.List;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for adding a new route in the simulation.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class AddRouteQuery extends ChangeStateQuery {
-
- private String id;
- private StringList edges;
- private final Repository<Route> routes;
-
- AddRouteQuery(DataInputStream dis, DataOutputStream dos,
- Repository<Route> routes) {
- super(dis, dos, Constants.CMD_SET_ROUTE_VARIABLE);
- this.routes = routes;
- }
-
- /**
- * Sets the parameters for the new route.
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Route_State.html">TraCI docs</a>
- * @param id
- * @param edges
- * @throws IOException
- */
- public void setVehicleData(
- String id,
- List<Edge> edges)
- throws IOException {
-
- if (routes.getByID(id) != null)
- throw new IllegalArgumentException("route already exists");
-
- this.id = id;
-
- this.edges = new StringList();
- for (Edge edge : edges) {
- this.edges.add(edge.getID());
- }
- }
-
- @Override
- protected void writeRequestTo(Storage content) {
- content.writeUnsignedByte(Constants.ADD);
-
- content.writeStringASCII(id);
- edges.writeTo(content, true);
-
- routes.getQuery().setObsolete();
- }
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+import it.polito.appeal.traci.protocol.StringList;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.List;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for adding a new route in the simulation.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class AddRouteQuery extends ChangeStateQuery {
+
+ private String id;
+ private StringList edges;
+ private final Repository<Route> routes;
+
+ AddRouteQuery(DataInputStream dis, DataOutputStream dos,
+ Repository<Route> routes) {
+ super(dis, dos, Constants.CMD_SET_ROUTE_VARIABLE);
+ this.routes = routes;
+ }
+
+ /**
+ * Sets the parameters for the new route.
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Route_State.html">TraCI docs</a>
+ * @param id
+ * @param edges
+ * @throws IOException
+ */
+ public void setVehicleData(
+ String id,
+ List<Edge> edges)
+ throws IOException {
+
+ if (routes.getByID(id) != null)
+ throw new IllegalArgumentException("route already exists");
+
+ this.id = id;
+
+ this.edges = new StringList();
+ for (Edge edge : edges) {
+ this.edges.add(edge.getID());
+ }
+ }
+
+ @Override
+ protected void writeRequestTo(Storage content) {
+ content.writeUnsignedByte(Constants.ADD);
+
+ content.writeStringASCII(id);
+ edges.writeTo(content, true);
+
+ routes.getQuery().setObsolete();
+ }
+
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddVehicleQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddVehicleQuery.java
index 1561ef6..cb1feda 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddVehicleQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/AddVehicleQuery.java
@@ -1,115 +1,134 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for adding a new vehicle in the simulation.
- * <p>
- * For the moment, the new vehicle must follow an already known route.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- */
-public class AddVehicleQuery extends ChangeStateQuery {
-
- private String id;
- private VehicleType vehicleType;
- private Route route;
- private int lane;
- private double insertionPosition;
- private double insertionSpeed;
- private final Repository<Vehicle> vehicles;
- private int departureTime;
-
- AddVehicleQuery(DataInputStream dis, DataOutputStream dos,
- Repository<Vehicle> vehicles) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE);
- this.vehicles = vehicles;
- }
-
- /**
- * Sets the parameters for the new vehicle.
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI doc</a>
- * @param id
- * @param vehicleType
- * @param route
- * @param lane
- * @param insertionPosition
- * @param insertionSpeed
- * @throws IOException
- */
- public void setVehicleData(
- String id,
- VehicleType vehicleType,
- Route route,
- int lane,
- int departureTime,
- double insertionPosition,
- double insertionSpeed)
- throws IOException {
-
- if (vehicles.getByID(id) != null)
- throw new IllegalArgumentException("vehicle already exists");
-
- this.id = id;
- this.vehicleType = vehicleType;
- this.route = route;
- this.lane = lane;
- this.insertionPosition = insertionPosition;
- this.insertionSpeed = insertionSpeed;
- this.departureTime = departureTime;
- }
-
- @Override
- protected void writeRequestTo(Storage content) {
- content.writeUnsignedByte(Constants.ADD);
-
- content.writeStringASCII(id);
- content.writeUnsignedByte(Constants.TYPE_COMPOUND);
- content.writeInt(6);
-
- content.writeUnsignedByte(Constants.TYPE_STRING);
- content.writeStringASCII(vehicleType.getID());
-
- content.writeUnsignedByte(Constants.TYPE_STRING);
- content.writeStringASCII(route.getID());
-
- content.writeUnsignedByte(Constants.TYPE_INTEGER);
- content.writeInt(departureTime);
-
- content.writeUnsignedByte(Constants.TYPE_DOUBLE);
- content.writeDouble(insertionPosition);
-
- content.writeUnsignedByte(Constants.TYPE_DOUBLE);
- content.writeDouble(insertionSpeed);
-
- content.writeUnsignedByte(Constants.TYPE_BYTE);
- content.writeByte(lane);
- }
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for adding a new vehicle in the simulation.
+ * <p>
+ * For the moment, the new vehicle must follow an already known route.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a
+ * href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI
+ * docs</a>
+ */
+public class AddVehicleQuery extends ChangeStateQuery {
+
+ private static Pattern pattern = Pattern.compile("\\d+$");
+
+ private String id;
+ private VehicleType vehicleType;
+ private Route route;
+ private Lane lane;
+ private double insertionPosition;
+ private double insertionSpeed;
+ private final Repository<Vehicle> vehicles;
+ private int departureTime;
+
+ AddVehicleQuery(DataInputStream dis, DataOutputStream dos,
+ Repository<Vehicle> vehicles) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE);
+ this.vehicles = vehicles;
+ }
+
+ /**
+ * Sets the parameters for the new vehicle.
+ *
+ * @see <a
+ * href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI
+ * doc</a>
+ * @param id
+ * @param vehicleType
+ * @param route
+ * @param lane
+ * @param insertionPosition
+ * @param insertionSpeed
+ * @throws IOException
+ */
+ public void setVehicleData(String id, VehicleType vehicleType, Route route,
+ Lane lane, int departureTime, double insertionPosition,
+ double insertionSpeed) throws IOException {
+
+ if (vehicles.getByID(id) != null)
+ throw new IllegalArgumentException("vehicle already exists");
+
+ this.id = id;
+ this.vehicleType = vehicleType;
+ this.route = route;
+ this.lane = lane;
+ this.insertionPosition = insertionPosition;
+ this.insertionSpeed = insertionSpeed;
+ this.departureTime = departureTime;
+ }
+
+ @Override
+ protected void writeRequestTo(Storage content) {
+ content.writeUnsignedByte(Constants.ADD);
+
+ content.writeStringASCII(id);
+ content.writeUnsignedByte(Constants.TYPE_COMPOUND);
+ content.writeInt(6);
+
+ content.writeUnsignedByte(Constants.TYPE_STRING);
+ content.writeStringASCII(vehicleType.getID());
+
+ content.writeUnsignedByte(Constants.TYPE_STRING);
+ content.writeStringASCII(route.getID());
+
+ content.writeUnsignedByte(Constants.TYPE_INTEGER);
+ content.writeInt(departureTime);
+
+ content.writeUnsignedByte(Constants.TYPE_DOUBLE);
+ content.writeDouble(insertionPosition);
+
+ content.writeUnsignedByte(Constants.TYPE_DOUBLE);
+ content.writeDouble(insertionSpeed);
+
+ try {
+ content.writeUnsignedByte(Constants.TYPE_BYTE);
+ content.writeByte(getIdFromLane(lane));
+ } catch (IllegalLaneException e) {
+ throw new IllegalArgumentException(e);
+ }
+ }
+
+ private int getIdFromLane(Lane lane) throws IllegalLaneException {
+ Matcher m = pattern.matcher(lane.getID());
+ if (m.find()) {
+ return Integer.parseInt(m.group());
+ } else {
+ throw new IllegalLaneException();
+ }
+ }
+
+ public class IllegalLaneException extends Exception {
+ private static final long serialVersionUID = 511943021293498823L;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeColorQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeColorQuery.java
index 709172e..d2d71c2 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeColorQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeColorQuery.java
@@ -1,51 +1,51 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.awt.Color;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * This query allows to change the color attribute of a TraCI object.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- */
-public class ChangeColorQuery extends ChangeObjectVarQuery<Color> {
- ChangeColorQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int variableID) {
- super(dis, dos, commandID, objectID, variableID);
- }
-
- /**
- * After writing params, flushes the cache of {@link POI#changeColorQuery}.
- */
- @Override
- protected void writeValueTo(Color color, Storage content) {
- content.writeByte(Constants.TYPE_COLOR);
- content.writeUnsignedByte(color.getRed());
- content.writeUnsignedByte(color.getGreen());
- content.writeUnsignedByte(color.getBlue());
- content.writeUnsignedByte(color.getAlpha());
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.awt.Color;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * This query allows to change the color attribute of a TraCI object.
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ */
+public class ChangeColorQuery extends ChangeObjectVarQuery<Color> {
+ ChangeColorQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int variableID) {
+ super(dis, dos, commandID, objectID, variableID);
+ }
+
+ /**
+ * After writing params, flushes the cache of {@link POI#changeColorQuery}.
+ */
+ @Override
+ protected void writeValueTo(Color color, Storage content) {
+ content.writeByte(Constants.TYPE_COLOR);
+ content.writeUnsignedByte(color.getRed());
+ content.writeUnsignedByte(color.getGreen());
+ content.writeUnsignedByte(color.getBlue());
+ content.writeUnsignedByte(color.getAlpha());
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeEdgeTravelTimeQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeEdgeTravelTimeQuery.java
index 9834404..89d7420 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeEdgeTravelTimeQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeEdgeTravelTimeQuery.java
@@ -1,75 +1,75 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for changing the travel time of an edge as seen by a vehicle.
- *
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ChangeEdgeTravelTimeQuery extends ChangeObjectStateQuery {
-
- private Edge edge;
- private double travelTime;
-
- ChangeEdgeTravelTimeQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_EDGE_TRAVELTIME);
- }
-
- @Override
- protected void writeParamsTo(Storage content) {
- if (edge == null)
- throw new NullPointerException("edge is not set");
-
- content.writeByte(Constants.TYPE_COMPOUND);
- content.writeInt(2);
- content.writeByte(Constants.TYPE_STRING);
- content.writeStringASCII(edge.getID());
- content.writeByte(Constants.TYPE_DOUBLE);
- content.writeDouble(travelTime);
- }
-
- /**
- * Sets the edge to change travel time.
- * @param edge
- */
- public void setEdge(Edge edge) {
- this.edge = edge;
- }
-
- /**
- * Set the new travel time of the specified edge.
- * @param travelTime
- */
- public void setTravelTime(double travelTime) {
- this.travelTime = travelTime;
- }
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for changing the travel time of an edge as seen by a vehicle.
+ *
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ChangeEdgeTravelTimeQuery extends ChangeObjectStateQuery {
+
+ private Edge edge;
+ private double travelTime;
+
+ ChangeEdgeTravelTimeQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_EDGE_TRAVELTIME);
+ }
+
+ @Override
+ protected void writeParamsTo(Storage content) {
+ if (edge == null)
+ throw new NullPointerException("edge is not set");
+
+ content.writeByte(Constants.TYPE_COMPOUND);
+ content.writeInt(2);
+ content.writeByte(Constants.TYPE_STRING);
+ content.writeStringASCII(edge.getID());
+ content.writeByte(Constants.TYPE_DOUBLE);
+ content.writeDouble(travelTime);
+ }
+
+ /**
+ * Sets the edge to change travel time.
+ * @param edge
+ */
+ public void setEdge(Edge edge) {
+ this.edge = edge;
+ }
+
+ /**
+ * Set the new travel time of the specified edge.
+ * @param travelTime
+ */
+ public void setTravelTime(double travelTime) {
+ this.travelTime = travelTime;
+ }
+
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLaneIndexQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLaneIndexQuery.java
index 03ca19e..f3d461c 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLaneIndexQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLaneIndexQuery.java
@@ -1,47 +1,45 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
-
-import de.uniluebeck.itm.tcpip.Storage;
-import it.polito.appeal.traci.protocol.Constants;
-
-public class ChangeLaneIndexQuery extends ChangeObjectVarQuery<LaneIndexQueryParameter> {
- ChangeLaneIndexQuery(DataInputStream dis, DataOutputStream dos, String objectID ) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.CMD_CHANGELANE);
- }
-
- @Override
- protected void writeValueTo(LaneIndexQueryParameter buffer, Storage content) {
-
- content.writeByte(Constants.TYPE_COMPOUND);
- content.writeInt(2);
- content.writeByte(Constants.TYPE_BYTE);
- content.writeByte(buffer.getLaneIndex()); // lane index
- content.writeByte(Constants.TYPE_INTEGER);
- content.writeInt(buffer.getDuration()); // duration - time spent on lane
- }
-
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+import it.polito.appeal.traci.protocol.Constants;
+
+public class ChangeLaneIndexQuery extends ChangeObjectVarQuery<LaneIndexQueryParameter> {
+ ChangeLaneIndexQuery(DataInputStream dis, DataOutputStream dos, String objectID ) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.CMD_CHANGELANE);
+ }
+
+ @Override
+ protected void writeValueTo(LaneIndexQueryParameter buffer, Storage content) {
+
+ content.writeByte(Constants.TYPE_COMPOUND);
+ content.writeInt(2);
+ content.writeByte(Constants.TYPE_BYTE);
+ content.writeByte(buffer.getLaneIndex()); // lane index
+ content.writeByte(Constants.TYPE_INTEGER);
+ content.writeInt(buffer.getDuration()); // duration - time spent on lane
+ }
+
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLightsStateQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLightsStateQuery.java
index 2a1fd72..a35a207 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLightsStateQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeLightsStateQuery.java
@@ -1,47 +1,47 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for changing the current traffic lights state throught a {@link TLState} object.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ChangeLightsStateQuery extends ChangeObjectVarQuery<TLState> {
- ChangeLightsStateQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_TL_VARIABLE, objectID,
- Constants.TL_RED_YELLOW_GREEN_STATE);
- }
-
- @Override
- protected void writeValueTo(TLState val, Storage content) {
- content.writeByte(Constants.TYPE_STRING);
- content.writeStringASCII(val.toString());
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for changing the current traffic lights state throught a {@link TLState} object.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ChangeLightsStateQuery extends ChangeObjectVarQuery<TLState> {
+ ChangeLightsStateQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_TL_VARIABLE, objectID,
+ Constants.TL_RED_YELLOW_GREEN_STATE);
+ }
+
+ @Override
+ protected void writeValueTo(TLState val, Storage content) {
+ content.writeByte(Constants.TYPE_STRING);
+ content.writeStringASCII(val.toString());
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeMaxSpeedQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeMaxSpeedQuery.java
index 4f2bce6..e4f8527 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeMaxSpeedQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeMaxSpeedQuery.java
@@ -1,41 +1,41 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import it.polito.appeal.traci.ChangeObjectVarQuery.ChangeDoubleQ;
-import it.polito.appeal.traci.protocol.Constants;
-
-/**
- * Query for changing a vehicle's maximum speed.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- */
-public class ChangeMaxSpeedQuery extends ChangeDoubleQ {
-
- ChangeMaxSpeedQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_MAXSPEED);
- }
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import it.polito.appeal.traci.ChangeObjectVarQuery.ChangeDoubleQ;
+import it.polito.appeal.traci.protocol.Constants;
+
+/**
+ * Query for changing a vehicle's maximum speed.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
+ */
+public class ChangeMaxSpeedQuery extends ChangeDoubleQ {
+
+ ChangeMaxSpeedQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_MAXSPEED);
+ }
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeObjectVarQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeObjectVarQuery.java
index b45d6f9..517fe19 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeObjectVarQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeObjectVarQuery.java
@@ -1,129 +1,129 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a query for changing a single-value variable.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- * @param <V>
- */
-public abstract class ChangeObjectVarQuery<V> extends ChangeObjectStateQuery {
-
- private V value;
-
- ChangeObjectVarQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int variableID) {
- super(dis, dos, commandID, objectID, variableID);
- }
-
- /**
- * @return the new value to set to this object's variable.
- */
- public V getValue() {
- return value;
- }
-
- /**
- * Sets the new value to set to this object's variable.
- * @param value
- */
- public void setValue(V value) {
- this.value = value;
- }
-
- @Override
- protected final void writeParamsTo(Storage content) {
- if (value == null)
- throw new IllegalStateException("value wasn't set");
-
- writeValueTo(value, content);
- }
-
- protected abstract void writeValueTo(V val, Storage content);
-
-
- /**
- * Specialization of {@link ChangeObjectVarQuery} for a {@link String} variable.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
- public static class ChangeStringQ extends ChangeObjectVarQuery<String> {
- ChangeStringQ(DataInputStream dis, DataOutputStream dos, int commandID,
- String objectID, int variableID) {
- super(dis, dos, commandID, objectID, variableID);
- }
-
- @Override
- protected void writeValueTo(String val, Storage content) {
- content.writeByte(Constants.TYPE_STRING);
- content.writeStringASCII(val);
- }
- }
-
- /**
- * Specialization of {@link ChangeObjectVarQuery} for an {@link Integer} variable.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
- public static class ChangeIntegerQ extends ChangeObjectVarQuery<Integer> {
-
- ChangeIntegerQ(DataInputStream dis, DataOutputStream dos, int commandID,
- String objectID, int variableID) {
- super(dis, dos, commandID, objectID, variableID);
- }
-
- @Override
- protected void writeValueTo(Integer val, Storage content) {
- content.writeByte(Constants.TYPE_INTEGER);
- content.writeInt(val);
- }
- }
-
- /**
- * Specialization of {@link ChangeObjectVarQuery} for a {@link Double} variable.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
- public static class ChangeDoubleQ extends ChangeObjectVarQuery<Double> {
-
- ChangeDoubleQ(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int variableID) {
- super(dis, dos, commandID, objectID, variableID);
- }
-
- @Override
- protected void writeValueTo(Double val, Storage content) {
- content.writeByte(Constants.TYPE_DOUBLE);
- content.writeDouble(val);
- }
- }
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a query for changing a single-value variable.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ * @param <V>
+ */
+public abstract class ChangeObjectVarQuery<V> extends ChangeObjectStateQuery {
+
+ private V value;
+
+ ChangeObjectVarQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int variableID) {
+ super(dis, dos, commandID, objectID, variableID);
+ }
+
+ /**
+ * @return the new value to set to this object's variable.
+ */
+ public V getValue() {
+ return value;
+ }
+
+ /**
+ * Sets the new value to set to this object's variable.
+ * @param value
+ */
+ public void setValue(V value) {
+ this.value = value;
+ }
+
+ @Override
+ protected final void writeParamsTo(Storage content) {
+ if (value == null)
+ throw new IllegalStateException("value wasn't set");
+
+ writeValueTo(value, content);
+ }
+
+ protected abstract void writeValueTo(V val, Storage content);
+
+
+ /**
+ * Specialization of {@link ChangeObjectVarQuery} for a {@link String} variable.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+ public static class ChangeStringQ extends ChangeObjectVarQuery<String> {
+ ChangeStringQ(DataInputStream dis, DataOutputStream dos, int commandID,
+ String objectID, int variableID) {
+ super(dis, dos, commandID, objectID, variableID);
+ }
+
+ @Override
+ protected void writeValueTo(String val, Storage content) {
+ content.writeByte(Constants.TYPE_STRING);
+ content.writeStringASCII(val);
+ }
+ }
+
+ /**
+ * Specialization of {@link ChangeObjectVarQuery} for an {@link Integer} variable.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+ public static class ChangeIntegerQ extends ChangeObjectVarQuery<Integer> {
+
+ ChangeIntegerQ(DataInputStream dis, DataOutputStream dos, int commandID,
+ String objectID, int variableID) {
+ super(dis, dos, commandID, objectID, variableID);
+ }
+
+ @Override
+ protected void writeValueTo(Integer val, Storage content) {
+ content.writeByte(Constants.TYPE_INTEGER);
+ content.writeInt(val);
+ }
+ }
+
+ /**
+ * Specialization of {@link ChangeObjectVarQuery} for a {@link Double} variable.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+ public static class ChangeDoubleQ extends ChangeObjectVarQuery<Double> {
+
+ ChangeDoubleQ(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int variableID) {
+ super(dis, dos, commandID, objectID, variableID);
+ }
+
+ @Override
+ protected void writeValueTo(Double val, Storage content) {
+ content.writeByte(Constants.TYPE_DOUBLE);
+ content.writeDouble(val);
+ }
+ }
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangePositionQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangePositionQuery.java
index 5be1a8b..f8d8504 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangePositionQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangePositionQuery.java
@@ -1,49 +1,49 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.awt.geom.Point2D;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * This query allows to change the position of a POI.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- */
-public class ChangePositionQuery extends ChangeObjectVarQuery<Point2D> {
- ChangePositionQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_POI_VARIABLE, objectID, Constants.VAR_POSITION);
- }
-
- /**
- * After writing params, flushes the cache of {@link POI#changePositionQuery}.
- */
- @Override
- protected void writeValueTo(Point2D position, Storage content) {
- content.writeByte(Constants.POSITION_2D);
- content.writeDouble(position.getX());
- content.writeDouble(position.getY());
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.awt.geom.Point2D;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * This query allows to change the position of a POI.
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ */
+public class ChangePositionQuery extends ChangeObjectVarQuery<Point2D> {
+ ChangePositionQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_POI_VARIABLE, objectID, Constants.VAR_POSITION);
+ }
+
+ /**
+ * After writing params, flushes the cache of {@link POI#changePositionQuery}.
+ */
+ @Override
+ protected void writeValueTo(Point2D position, Storage content) {
+ content.writeByte(Constants.POSITION_2D);
+ content.writeDouble(position.getX());
+ content.writeDouble(position.getY());
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeRouteQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeRouteQuery.java
index 261c86e..919015f 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeRouteQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeRouteQuery.java
@@ -1,53 +1,53 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-import it.polito.appeal.traci.protocol.StringList;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.util.List;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for changing a vehicle's route.
- *
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ChangeRouteQuery extends ChangeObjectVarQuery<List<Edge>> {
-
- ChangeRouteQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_ROUTE);
- }
-
- @Override
- protected void writeValueTo(List<Edge> newRoute, Storage content) {
- StringList edgeIDs = new StringList();
- for (Edge e : newRoute)
- edgeIDs.add(e.getID());
-
- edgeIDs.writeTo(content, true);
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+import it.polito.appeal.traci.protocol.StringList;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.util.List;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for changing a vehicle's route.
+ *
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ChangeRouteQuery extends ChangeObjectVarQuery<List<Edge>> {
+
+ ChangeRouteQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_ROUTE);
+ }
+
+ @Override
+ protected void writeValueTo(List<Edge> newRoute, Storage content) {
+ StringList edgeIDs = new StringList();
+ for (Edge e : newRoute)
+ edgeIDs.add(e.getID());
+
+ edgeIDs.writeTo(content, true);
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeSpeedQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeSpeedQuery.java
index ff29e1c..38d60d3 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeSpeedQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeSpeedQuery.java
@@ -1,41 +1,41 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-public class ChangeSpeedQuery extends ChangeObjectVarQuery<Double> {
-
- ChangeSpeedQuery(DataInputStream dis, DataOutputStream dos, String objectID) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_SPEED);
- }
-
-
- @Override
- protected void writeValueTo(Double speed, Storage content) {
- content.writeByte(Constants.TYPE_DOUBLE);
- content.writeDouble(speed);
- }
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+public class ChangeSpeedQuery extends ChangeObjectVarQuery<Double> {
+
+ ChangeSpeedQuery(DataInputStream dis, DataOutputStream dos, String objectID) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.VAR_SPEED);
+ }
+
+
+ @Override
+ protected void writeValueTo(Double speed, Storage content) {
+ content.writeByte(Constants.TYPE_DOUBLE);
+ content.writeDouble(speed);
+ }
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeTargetQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeTargetQuery.java
index 4185598..acc03cf 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeTargetQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ChangeTargetQuery.java
@@ -1,47 +1,47 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for changing a vehicle's target edge (i.e. its destination).
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- */
-public class ChangeTargetQuery extends ChangeObjectVarQuery<Edge> {
-
- ChangeTargetQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.CMD_CHANGETARGET);
- }
-
- @Override
- protected void writeValueTo(Edge newTarget, Storage content) {
- content.writeByte(Constants.TYPE_STRING);
- content.writeStringASCII(newTarget.getID());
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for changing a vehicle's target edge (i.e. its destination).
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
+ */
+public class ChangeTargetQuery extends ChangeObjectVarQuery<Edge> {
+
+ ChangeTargetQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.CMD_CHANGETARGET);
+ }
+
+ @Override
+ protected void writeValueTo(Edge newTarget, Storage content) {
+ content.writeByte(Constants.TYPE_STRING);
+ content.writeStringASCII(newTarget.getID());
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/CloseQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/CloseQuery.java
index 915f711..280d6b3 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/CloseQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/CloseQuery.java
@@ -1,39 +1,39 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-class CloseQuery extends ChangeStateQuery {
-
- CloseQuery(DataInputStream dis, DataOutputStream dos) {
- super(dis, dos, Constants.CMD_CLOSE);
- }
-
- @Override
- protected void writeRequestTo(Storage content) {
- }
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+class CloseQuery extends ChangeStateQuery {
+
+ CloseQuery(DataInputStream dis, DataOutputStream dos) {
+ super(dis, dos, Constants.CMD_CLOSE);
+ }
+
+ @Override
+ protected void writeRequestTo(Storage content) {
+ }
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLink.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLink.java
index 13672ad..94ae5be 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLink.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLink.java
@@ -1,72 +1,72 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.StringList;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a link controlled by a traffic light.
- * <p>
- * A link is identified by an incoming lane, an outgoing lane and
- * the internal lane in the junction that connects them.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html#Structure_of_compound_object_controlled_links">TraCI docs</a>
- *
- */
-public class ControlledLink {
- private final Lane incomingLane;
- private final Lane acrossLane;
- private final Lane outgoingLane;
-
- ControlledLink(Storage content, Repository<Lane> laneRepo)
- throws IOException {
- StringList list = new StringList(content, true);
- Iterator<String> listIt = list.iterator();
- incomingLane = laneRepo.getByID(listIt.next());
- outgoingLane = laneRepo.getByID(listIt.next());
- acrossLane = laneRepo.getByID(listIt.next());
- }
-
- /**
- * @return the lane from which the vehicles come from
- */
- public Lane getIncomingLane() {
- return incomingLane;
- }
-
- /**
- * @return the internal lane of the junction that the vehicles will traverse
- */
- public Lane getAcrossLane() {
- return acrossLane;
- }
-
- /**
- * @return the lane the vehicles will exit through
- */
- public Lane getOutgoingLane() {
- return outgoingLane;
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.StringList;
+
+import java.io.IOException;
+import java.util.Iterator;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a link controlled by a traffic light.
+ * <p>
+ * A link is identified by an incoming lane, an outgoing lane and
+ * the internal lane in the junction that connects them.
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html#Structure_of_compound_object_controlled_links">TraCI docs</a>
+ *
+ */
+public class ControlledLink {
+ private final Lane incomingLane;
+ private final Lane acrossLane;
+ private final Lane outgoingLane;
+
+ ControlledLink(Storage content, Repository<Lane> laneRepo)
+ throws IOException {
+ StringList list = new StringList(content, true);
+ Iterator<String> listIt = list.iterator();
+ incomingLane = laneRepo.getByID(listIt.next());
+ outgoingLane = laneRepo.getByID(listIt.next());
+ acrossLane = laneRepo.getByID(listIt.next());
+ }
+
+ /**
+ * @return the lane from which the vehicles come from
+ */
+ public Lane getIncomingLane() {
+ return incomingLane;
+ }
+
+ /**
+ * @return the internal lane of the junction that the vehicles will traverse
+ */
+ public Lane getAcrossLane() {
+ return acrossLane;
+ }
+
+ /**
+ * @return the lane the vehicles will exit through
+ */
+ public Lane getOutgoingLane() {
+ return outgoingLane;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLinks.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLinks.java
index 434919a..e72b509 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLinks.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ControlledLinks.java
@@ -1,39 +1,39 @@
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.IOException;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents the set of links for every signal in a TLS.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ControlledLinks {
- private final ControlledLink[][] links;
- ControlledLinks(Storage content, Repository<Lane> laneRepo) throws TraCIException, IOException {
- Utils.checkType(content, Constants.TYPE_INTEGER);
- int signals = content.readInt();
- links = new ControlledLink[signals][];
- for (int s=0; s < signals; s++) {
- Utils.checkType(content, Constants.TYPE_INTEGER);
- int linksOfSignal = content.readInt();
- links[s] = new ControlledLink[linksOfSignal];
- for (int l=0; l<linksOfSignal; l++) {
- links[s][l] = new ControlledLink(content, laneRepo);
- }
- }
-
- }
-
- /**
- * @return an array describing the controlled links of a TLS.
- * The first index points to a signal; the second index points to a link
- * controlled by that signal.
- */
- public ControlledLink[][] getLinks() {
- return links;
- }
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.IOException;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents the set of links for every signal in a TLS.
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ControlledLinks {
+ private final ControlledLink[][] links;
+ ControlledLinks(Storage content, Repository<Lane> laneRepo) throws TraCIException, IOException {
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ int signals = content.readInt();
+ links = new ControlledLink[signals][];
+ for (int s=0; s < signals; s++) {
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ int linksOfSignal = content.readInt();
+ links[s] = new ControlledLink[linksOfSignal];
+ for (int l=0; l<linksOfSignal; l++) {
+ links[s][l] = new ControlledLink(content, laneRepo);
+ }
+ }
+
+ }
+
+ /**
+ * @return an array describing the controlled links of a TLS.
+ * The first index points to a signal; the second index points to a link
+ * controlled by that signal.
+ */
+ public ControlledLink[][] getLinks() {
+ return links;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneIndexQueryParameter.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneIndexQueryParameter.java
index c171ad9..bf4875d 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneIndexQueryParameter.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneIndexQueryParameter.java
@@ -1,49 +1,49 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-public class LaneIndexQueryParameter {
-
- byte laneIndex;
- Integer duration;
-
- public LaneIndexQueryParameter(byte laneIndex, Integer duration) {
- this.laneIndex = laneIndex;
- this.duration = duration;
- }
-
- public byte getLaneIndex() {
- return laneIndex;
- }
-
- public void setLaneIndex(byte laneIndex) {
- this.laneIndex = laneIndex;
- }
-
- public Integer getDuration() {
- return duration;
- }
-
- public void setDuration(Integer duration) {
- this.duration = duration;
- }
-
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+public class LaneIndexQueryParameter {
+
+ byte laneIndex;
+ Integer duration;
+
+ public LaneIndexQueryParameter(byte laneIndex, Integer duration) {
+ this.laneIndex = laneIndex;
+ this.duration = duration;
+ }
+
+ public byte getLaneIndex() {
+ return laneIndex;
+ }
+
+ public void setLaneIndex(byte laneIndex) {
+ this.laneIndex = laneIndex;
+ }
+
+ public Integer getDuration() {
+ return duration;
+ }
+
+ public void setDuration(Integer duration) {
+ this.duration = duration;
+ }
+
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneListQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneListQuery.java
index 5ed5c6c..0b59faa 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneListQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LaneListQuery.java
@@ -1,42 +1,42 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Query for obtaining an ordered list of {@link Lane}s.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class LaneListQuery extends ObjectCollectionQuery<Lane, List<Lane>> {
- LaneListQuery(DataInputStream dis, DataOutputStream dos, int commandID,
- String objectID, int varID, Repository<Lane> repository) {
- super(dis, dos, commandID, repository, objectID, varID);
- }
- @Override
- protected List<Lane> makeCollection() {
- return new ArrayList<Lane>();
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Query for obtaining an ordered list of {@link Lane}s.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class LaneListQuery extends ObjectCollectionQuery<Lane, List<Lane>> {
+ LaneListQuery(DataInputStream dis, DataOutputStream dos, int commandID,
+ String objectID, int varID, Repository<Lane> repository) {
+ super(dis, dos, commandID, repository, objectID, varID);
+ }
+ @Override
+ protected List<Lane> makeCollection() {
+ return new ArrayList<Lane>();
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LightState.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LightState.java
index e4205f2..4dc8c56 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LightState.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/LightState.java
@@ -1,42 +1,42 @@
-package it.polito.appeal.traci;
-
-/**
- * Represents the states of each traffic light
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public enum LightState {
- /** red light */ RED ('r'),
- /** red light w/o deceleration (?) */ RED_NODECEL ('R'),
- /** yellow light */ YELLOW ('y'),
- /** yellow light w/out deceleration (?) */ YELLOW_NODECEL('Y'),
- /** green light */ GREEN ('g'),
- /** green light w/out deceleration */ GREEN_NODECEL ('G'),
- /** light off */ OFF ('O');
-
- final char symbol;
- LightState(char symbol) {
- this.symbol = symbol;
- }
- /** @return <code>true</code> if it's a red light */
- public boolean isRed() { return symbol=='R' || symbol=='r'; }
-
- /** @return <code>true</code> if it's a yellow light */
- public boolean isYellow() { return symbol=='Y' || symbol=='y'; }
-
- /** @return <code>true</code> if it's a green light */
- public boolean isGreen() { return symbol=='G' || symbol=='g'; }
-
- /** @return <code>true</code> if this light is off */
- public boolean isOff() { return symbol=='O'; }
-
- /** @return <code>true</code> if vehicles will decelerate with this light */
- public boolean willDecelerate() {return Character.isLowerCase(symbol); }
-
- static LightState fromSymbol(char symbol) {
- for (LightState ls : LightState.values())
- if (symbol == ls.symbol)
- return ls;
- return null;
- }
+package it.polito.appeal.traci;
+
+/**
+ * Represents the states of each traffic light
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public enum LightState {
+ /** red light */ RED ('r'),
+ /** red light w/o deceleration (?) */ RED_NODECEL ('R'),
+ /** yellow light */ YELLOW ('y'),
+ /** yellow light w/out deceleration (?) */ YELLOW_NODECEL('Y'),
+ /** green light */ GREEN ('g'),
+ /** green light w/out deceleration */ GREEN_NODECEL ('G'),
+ /** light off */ OFF ('O');
+
+ final char symbol;
+ LightState(char symbol) {
+ this.symbol = symbol;
+ }
+ /** @return <code>true</code> if it's a red light */
+ public boolean isRed() { return symbol=='R' || symbol=='r'; }
+
+ /** @return <code>true</code> if it's a yellow light */
+ public boolean isYellow() { return symbol=='Y' || symbol=='y'; }
+
+ /** @return <code>true</code> if it's a green light */
+ public boolean isGreen() { return symbol=='G' || symbol=='g'; }
+
+ /** @return <code>true</code> if this light is off */
+ public boolean isOff() { return symbol=='O'; }
+
+ /** @return <code>true</code> if vehicles will decelerate with this light */
+ public boolean willDecelerate() {return Character.isLowerCase(symbol); }
+
+ static LightState fromSymbol(char symbol) {
+ for (LightState ls : LightState.values())
+ if (symbol == ls.symbol)
+ return ls;
+ return null;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Link.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Link.java
index 9b2187c..19a4d06 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Link.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Link.java
@@ -1,120 +1,120 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import static it.polito.appeal.traci.Utils.checkType;
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.IOException;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Describes a link between a given lane and another lane in a junction.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Lane_Value_Retrieval.html">TraCI docs</a>
- */
-public class Link {
- private final Lane nextInternalLane;
- private final Lane nextNonInternalLane;
- private final boolean hasPriority;
- private final boolean isOpened;
- private final boolean hasApproachingFoe;
- private final String currentState;
- private final String direction;
- private final double length;
-
- protected Link(Storage content, Repository<Lane> laneRepo) throws IOException {
- checkType(content, Constants.TYPE_STRING);
- // let's hope they don't point to this lane recursively!
- nextNonInternalLane = laneRepo.getByID(content.readStringASCII());
- checkType(content, Constants.TYPE_STRING);
- nextInternalLane = laneRepo.getByID(content.readStringASCII());
- checkType(content, Constants.TYPE_UBYTE);
- hasPriority = content.readUnsignedByte() > 0;
- checkType(content, Constants.TYPE_UBYTE);
- isOpened = content.readUnsignedByte() > 0;
- checkType(content, Constants.TYPE_UBYTE);
- hasApproachingFoe = content.readUnsignedByte() > 0;
- checkType(content, Constants.TYPE_STRING);
- currentState = content.readStringASCII();
- checkType(content, Constants.TYPE_STRING);
- direction = content.readStringASCII();
- checkType(content, Constants.TYPE_DOUBLE);
- length = content.readDouble();
- }
-
- /**
- * @return the internal lane in the junction
- */
- public Lane getNextInternalLane() {
- return nextInternalLane;
- }
-
- /**
- * @return the outgoing lane that this link connects to
- */
- public Lane getNextNonInternalLane() {
- return nextNonInternalLane;
- }
-
- /**
- * @return <code>true</code> if this links has priority over other links in the junction
- */
- public boolean hasPriority() {
- return hasPriority;
- }
-
- /**
- * @return an unknown value
- */
- public boolean isOpened() {
- return isOpened;
- }
-
- /**
- * @return an unknown value
- */
- public boolean hasApproachingFoe() {
- return hasApproachingFoe;
- }
-
- /**
- * @return always an empty string (not implemented by SUMO)
- */
- public String getCurrentState() {
- return currentState;
- }
-
- /**
- * @return always an empty string (not implemented by SUMO)
- */
- public String getDirection() {
- return direction;
- }
-
- /**
- * @return the length of the link, or 0 if using internal lanes
- */
- public double getLength() {
- return length;
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import static it.polito.appeal.traci.Utils.checkType;
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.IOException;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Describes a link between a given lane and another lane in a junction.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Lane_Value_Retrieval.html">TraCI docs</a>
+ */
+public class Link {
+ private final Lane nextInternalLane;
+ private final Lane nextNonInternalLane;
+ private final boolean hasPriority;
+ private final boolean isOpened;
+ private final boolean hasApproachingFoe;
+ private final String currentState;
+ private final String direction;
+ private final double length;
+
+ protected Link(Storage content, Repository<Lane> laneRepo) throws IOException {
+ checkType(content, Constants.TYPE_STRING);
+ // let's hope they don't point to this lane recursively!
+ nextNonInternalLane = laneRepo.getByID(content.readStringASCII());
+ checkType(content, Constants.TYPE_STRING);
+ nextInternalLane = laneRepo.getByID(content.readStringASCII());
+ checkType(content, Constants.TYPE_UBYTE);
+ hasPriority = content.readUnsignedByte() > 0;
+ checkType(content, Constants.TYPE_UBYTE);
+ isOpened = content.readUnsignedByte() > 0;
+ checkType(content, Constants.TYPE_UBYTE);
+ hasApproachingFoe = content.readUnsignedByte() > 0;
+ checkType(content, Constants.TYPE_STRING);
+ currentState = content.readStringASCII();
+ checkType(content, Constants.TYPE_STRING);
+ direction = content.readStringASCII();
+ checkType(content, Constants.TYPE_DOUBLE);
+ length = content.readDouble();
+ }
+
+ /**
+ * @return the internal lane in the junction
+ */
+ public Lane getNextInternalLane() {
+ return nextInternalLane;
+ }
+
+ /**
+ * @return the outgoing lane that this link connects to
+ */
+ public Lane getNextNonInternalLane() {
+ return nextNonInternalLane;
+ }
+
+ /**
+ * @return <code>true</code> if this links has priority over other links in the junction
+ */
+ public boolean hasPriority() {
+ return hasPriority;
+ }
+
+ /**
+ * @return an unknown value
+ */
+ public boolean isOpened() {
+ return isOpened;
+ }
+
+ /**
+ * @return an unknown value
+ */
+ public boolean hasApproachingFoe() {
+ return hasApproachingFoe;
+ }
+
+ /**
+ * @return always an empty string (not implemented by SUMO)
+ */
+ public String getCurrentState() {
+ return currentState;
+ }
+
+ /**
+ * @return always an empty string (not implemented by SUMO)
+ */
+ public String getDirection() {
+ return direction;
+ }
+
+ /**
+ * @return the length of the link, or 0 if using internal lanes
+ */
+ public double getLength() {
+ return length;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Logic.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Logic.java
index 08d4a07..eb13e7d 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Logic.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Logic.java
@@ -1,90 +1,90 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.TraCIException.UnexpectedDatatype;
-import it.polito.appeal.traci.protocol.Constants;
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a TLS program.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Traffic_Lights.html#Loading_new_TLS-Programs">SUMO documentation</a>
- */
-public class Logic {
- private final String subID;
- private final int currentPhaseIndex;
- private final Phase[] phases;
- Logic(Storage content) throws UnexpectedDatatype {
- Utils.checkType(content, Constants.TYPE_STRING);
- subID = content.readStringASCII();
- Utils.checkType(content, Constants.TYPE_INTEGER);
- content.readInt(); // type ignored
- Utils.checkType(content, Constants.TYPE_COMPOUND);
- int compSize = content.readInt();
- for (int i=0; i<compSize; i++)
- content.readByte(); // ignore compound type SubParameter
- Utils.checkType(content, Constants.TYPE_INTEGER);
- currentPhaseIndex = content.readInt();
- Utils.checkType(content, Constants.TYPE_INTEGER);
- int nPhases = content.readInt();
- phases = new Phase[nPhases];
- for (int i=0; i<nPhases; i++) {
- phases[i] = new Phase(content);
- }
- }
-
- /**
- * Creates a new TLS program
- * @param subID the program's string ID
- * @param currentPhaseIndex the index in the phases array to begin from
- * @param phases the ordered list of traffic light phases over time (see {@link Phase})
- */
- public Logic(String subID, int currentPhaseIndex, Phase[] phases) {
- this.subID = subID;
- this.currentPhaseIndex = currentPhaseIndex;
- this.phases = phases;
- }
-
- /**
- *
- * @return the program's string ID
- */
- public String getSubID() {
- return subID;
- }
-
- /**
- *
- * @return the current phase index
- * @see #getPhases()
- */
- public int getCurrentPhaseIndex() {
- return currentPhaseIndex;
- }
-
- /**
- *
- * @return the ordered list of traffic light phases over time (see {@link Phase})
- */
- public Phase[] getPhases() {
- return phases;
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.TraCIException.UnexpectedDatatype;
+import it.polito.appeal.traci.protocol.Constants;
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a TLS program.
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Traffic_Lights.html#Loading_new_TLS-Programs">SUMO documentation</a>
+ */
+public class Logic {
+ private final String subID;
+ private final int currentPhaseIndex;
+ private final Phase[] phases;
+ Logic(Storage content) throws UnexpectedDatatype {
+ Utils.checkType(content, Constants.TYPE_STRING);
+ subID = content.readStringASCII();
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ content.readInt(); // type ignored
+ Utils.checkType(content, Constants.TYPE_COMPOUND);
+ int compSize = content.readInt();
+ for (int i=0; i<compSize; i++)
+ content.readByte(); // ignore compound type SubParameter
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ currentPhaseIndex = content.readInt();
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ int nPhases = content.readInt();
+ phases = new Phase[nPhases];
+ for (int i=0; i<nPhases; i++) {
+ phases[i] = new Phase(content);
+ }
+ }
+
+ /**
+ * Creates a new TLS program
+ * @param subID the program's string ID
+ * @param currentPhaseIndex the index in the phases array to begin from
+ * @param phases the ordered list of traffic light phases over time (see {@link Phase})
+ */
+ public Logic(String subID, int currentPhaseIndex, Phase[] phases) {
+ this.subID = subID;
+ this.currentPhaseIndex = currentPhaseIndex;
+ this.phases = phases;
+ }
+
+ /**
+ *
+ * @return the program's string ID
+ */
+ public String getSubID() {
+ return subID;
+ }
+
+ /**
+ *
+ * @return the current phase index
+ * @see #getPhases()
+ */
+ public int getCurrentPhaseIndex() {
+ return currentPhaseIndex;
+ }
+
+ /**
+ *
+ * @return the ordered list of traffic light phases over time (see {@link Phase})
+ */
+ public Phase[] getPhases() {
+ return phases;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/MultiQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/MultiQuery.java
index b1c3af5..3fe44ea 100755
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/MultiQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/MultiQuery.java
@@ -31,7 +31,8 @@ import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
/**
* Represents a list of {@link Query}s to run as a whole, i.e. within a single
@@ -48,7 +49,7 @@ import org.apache.log4j.Logger;
*/
public class MultiQuery {
- private static final Logger log = Logger.getLogger(MultiQuery.class);
+ private static final Logger log = LogManager.getLogger();
private final DataOutputStream dos;
private final DataInputStream dis;
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Phase.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Phase.java
index c3028f4..8ed0605 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Phase.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Phase.java
@@ -1,73 +1,73 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.TraCIException.UnexpectedDatatype;
-import it.polito.appeal.traci.protocol.Constants;
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * A single traffic light phase, i.e. a given combination of light states
- * for a specific amount of time.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class Phase {
- private final int duration;
- private final TLState state;
- Phase(Storage content) throws UnexpectedDatatype {
- Utils.checkType(content, Constants.TYPE_INTEGER);
- duration = content.readInt();
- Utils.checkType(content, Constants.TYPE_INTEGER);
- content.readInt(); // duration 2 ignored
- Utils.checkType(content, Constants.TYPE_INTEGER);
- content.readInt(); // duration 3 ignored
- Utils.checkType(content, Constants.TYPE_STRING);
- state = new TLState(content.readStringASCII());
- }
-
- /**
- * Constructs an instance via a duration in seconds and a
- * {@link TLState} object.
- * @param duration
- * @param state
- */
- public Phase(final int duration, final TLState state) {
- this.duration = duration;
- this.state = state;
- }
-
- /**
- *
- * @return the duration of this phase
- */
- public int getDuration() {
- return duration;
- }
-
- /**
- *
- * @return the combination of light states
- */
- public TLState getState() {
- return state;
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.TraCIException.UnexpectedDatatype;
+import it.polito.appeal.traci.protocol.Constants;
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * A single traffic light phase, i.e. a given combination of light states
+ * for a specific amount of time.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class Phase {
+ private final int duration;
+ private final TLState state;
+ Phase(Storage content) throws UnexpectedDatatype {
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ duration = content.readInt();
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ content.readInt(); // duration 2 ignored
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ content.readInt(); // duration 3 ignored
+ Utils.checkType(content, Constants.TYPE_STRING);
+ state = new TLState(content.readStringASCII());
+ }
+
+ /**
+ * Constructs an instance via a duration in seconds and a
+ * {@link TLState} object.
+ * @param duration
+ * @param state
+ */
+ public Phase(final int duration, final TLState state) {
+ this.duration = duration;
+ this.state = state;
+ }
+
+ /**
+ *
+ * @return the duration of this phase
+ */
+ public int getDuration() {
+ return duration;
+ }
+
+ /**
+ *
+ * @return the combination of light states
+ */
+ public TLState getState() {
+ return state;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Program.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Program.java
index f72dc59..aea171f 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Program.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Program.java
@@ -1,55 +1,55 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.TraCIException.UnexpectedDatatype;
-import it.polito.appeal.traci.protocol.Constants;
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * A TLS program represents one or more {@link Logic}s.
- * <p>
- * Currently, SUMO supports only one program per logic.
- *
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class Program {
- private final Logic[] logics;
- Program(Storage content) throws UnexpectedDatatype {
- Utils.checkType(content, Constants.TYPE_COMPOUND);
- content.readInt(); // compund length ignored
- Utils.checkType(content, Constants.TYPE_INTEGER);
- int nLogics = content.readInt();
- logics = new Logic[nLogics];
- for (int i=0; i<nLogics; i++) {
- logics[i] = new Logic(content);
- }
- }
-
- /**
- *
- * @return a 1-element array with the current TLS program.
- */
- public Logic[] getLogics() {
- return logics;
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.TraCIException.UnexpectedDatatype;
+import it.polito.appeal.traci.protocol.Constants;
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * A TLS program represents one or more {@link Logic}s.
+ * <p>
+ * Currently, SUMO supports only one program per logic.
+ *
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class Program {
+ private final Logic[] logics;
+ Program(Storage content) throws UnexpectedDatatype {
+ Utils.checkType(content, Constants.TYPE_COMPOUND);
+ content.readInt(); // compund length ignored
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ int nLogics = content.readInt();
+ logics = new Logic[nLogics];
+ for (int i=0; i<nLogics; i++) {
+ logics[i] = new Logic(content);
+ }
+ }
+
+ /**
+ *
+ * @return a 1-element array with the current TLS program.
+ */
+ public Logic[] getLogics() {
+ return logics;
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadCompleteDefinitionQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadCompleteDefinitionQuery.java
index 8e0a0d5..f23bc94 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadCompleteDefinitionQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadCompleteDefinitionQuery.java
@@ -1,47 +1,47 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Command;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for reading the complete program of a TLS.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html">TraCI docs</a>
- */
-public class ReadCompleteDefinitionQuery extends ReadObjectVarQuery<Program> {
- ReadCompleteDefinitionQuery(DataInputStream dis,
- DataOutputStream dos, int commandID, String objectID, int varID) {
- super(dis, dos, commandID, objectID, varID);
- }
-
- @Override
- protected Program readValue(Command resp) throws TraCIException {
- Storage content = resp.content();
- return new Program(content);
- }
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Command;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for reading the complete program of a TLS.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html">TraCI docs</a>
+ */
+public class ReadCompleteDefinitionQuery extends ReadObjectVarQuery<Program> {
+ ReadCompleteDefinitionQuery(DataInputStream dis,
+ DataOutputStream dos, int commandID, String objectID, int varID) {
+ super(dis, dos, commandID, objectID, varID);
+ }
+
+ @Override
+ protected Program readValue(Command resp) throws TraCIException {
+ Storage content = resp.content();
+ return new Program(content);
+ }
+
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadControlledLinksQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadControlledLinksQuery.java
index 9913be7..49fd3b0 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadControlledLinksQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadControlledLinksQuery.java
@@ -1,60 +1,60 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Command;
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for obtaining the controlled links in a TLS.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html">TraCI docs</a>
- */
-public class ReadControlledLinksQuery extends ReadObjectVarQuery<ControlledLinks> {
-
- private final Repository<Lane> laneRepo;
-
- ReadControlledLinksQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int varID, Repository<Lane> laneRepo) {
- super(dis, dos, commandID, objectID, varID);
- this.laneRepo = laneRepo;
- }
-
- @Override
- protected ControlledLinks readValue(Command resp)
- throws TraCIException {
- final Storage content = resp.content();
- Utils.checkType(content, Constants.TYPE_COMPOUND);
- content.readInt(); // ignore data length
- try {
- return new ControlledLinks(content, laneRepo);
- } catch (IOException e) {
- throw new TraCIException(e.getMessage());
- }
- }
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Command;
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for obtaining the controlled links in a TLS.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html">TraCI docs</a>
+ */
+public class ReadControlledLinksQuery extends ReadObjectVarQuery<ControlledLinks> {
+
+ private final Repository<Lane> laneRepo;
+
+ ReadControlledLinksQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int varID, Repository<Lane> laneRepo) {
+ super(dis, dos, commandID, objectID, varID);
+ this.laneRepo = laneRepo;
+ }
+
+ @Override
+ protected ControlledLinks readValue(Command resp)
+ throws TraCIException {
+ final Storage content = resp.content();
+ Utils.checkType(content, Constants.TYPE_COMPOUND);
+ content.readInt(); // ignore data length
+ try {
+ return new ControlledLinks(content, laneRepo);
+ } catch (IOException e) {
+ throw new TraCIException(e.getMessage());
+ }
+ }
+
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadLinksQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadLinksQuery.java
index 04f1280..fde60ee 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadLinksQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadLinksQuery.java
@@ -1,68 +1,68 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Command;
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for obtaining the {@link Link}s connected to the end of a given
- * {@link Lane}.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ReadLinksQuery extends ReadObjectVarQuery<List<Link>> {
-
- private Repository<Lane> laneRepo;
-
- ReadLinksQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int varID, Repository<Lane> laneRepo) {
- super(dis, dos, commandID, objectID, varID);
- this.laneRepo = laneRepo;
- }
-
- @Override
- protected List<Link> readValue(Command resp) throws TraCIException {
- List<Link> out = new ArrayList<Link>();
- Storage content = resp.content();
- Utils.checkType(content, Constants.TYPE_COMPOUND);
- content.readInt(); // ignore link data length
- Utils.checkType(content, Constants.TYPE_INTEGER);
- int count = content.readInt();
- for (int i=0; i<count; i++) {
- try {
- out.add(new Link(content, laneRepo));
- } catch (IOException e) {
- throw new TraCIException(e.toString());
- }
- }
- return out;
- }
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Command;
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for obtaining the {@link Link}s connected to the end of a given
+ * {@link Lane}.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ReadLinksQuery extends ReadObjectVarQuery<List<Link>> {
+
+ private Repository<Lane> laneRepo;
+
+ ReadLinksQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int varID, Repository<Lane> laneRepo) {
+ super(dis, dos, commandID, objectID, varID);
+ this.laneRepo = laneRepo;
+ }
+
+ @Override
+ protected List<Link> readValue(Command resp) throws TraCIException {
+ List<Link> out = new ArrayList<Link>();
+ Storage content = resp.content();
+ Utils.checkType(content, Constants.TYPE_COMPOUND);
+ content.readInt(); // ignore link data length
+ Utils.checkType(content, Constants.TYPE_INTEGER);
+ int count = content.readInt();
+ for (int i=0; i<count; i++) {
+ try {
+ out.add(new Link(content, laneRepo));
+ } catch (IOException e) {
+ throw new TraCIException(e.toString());
+ }
+ }
+ return out;
+ }
+
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadShapeQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadShapeQuery.java
index 30bf024..42f17bd 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadShapeQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadShapeQuery.java
@@ -1,47 +1,47 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Command;
-import it.polito.appeal.traci.protocol.Polygon;
-
-import java.awt.geom.Path2D;
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-/**
- * Specialization of {@link ReadObjectVarQuery} whose value type is a
- * {@link Path2D}.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ReadShapeQuery extends ReadObjectVarQuery<Path2D> {
-
- ReadShapeQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int varID) {
- super(dis, dos, commandID, objectID, varID);
- }
-
- @Override
- protected Path2D readValue(Command resp) throws TraCIException {
- return new Polygon(resp.content(), true).getShape();
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Command;
+import it.polito.appeal.traci.protocol.Polygon;
+
+import java.awt.geom.Path2D;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+/**
+ * Specialization of {@link ReadObjectVarQuery} whose value type is a
+ * {@link Path2D}.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ReadShapeQuery extends ReadObjectVarQuery<Path2D> {
+
+ ReadShapeQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int varID) {
+ super(dis, dos, commandID, objectID, varID);
+ }
+
+ @Override
+ protected Path2D readValue(Command resp) throws TraCIException {
+ return new Polygon(resp.content(), true).getShape();
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadTLStateQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadTLStateQuery.java
index 6c09df8..72e9bd6 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadTLStateQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/ReadTLStateQuery.java
@@ -1,48 +1,48 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Command;
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-/**
- * Query for reading a TLS state.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html">TraCI docs</a>
- *
- */
-public class ReadTLStateQuery extends ReadObjectVarQuery<TLState> {
-
- ReadTLStateQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int varID) {
- super(dis, dos, commandID, objectID, varID);
- }
-
- @Override
- protected TLState readValue(Command resp) throws TraCIException {
- Utils.checkType(resp.content(), Constants.TYPE_STRING);
- String desc = resp.content().readStringASCII();
- return new TLState(desc);
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Command;
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+/**
+ * Query for reading a TLS state.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Traffic_Lights_Value_Retrieval.html">TraCI docs</a>
+ *
+ */
+public class ReadTLStateQuery extends ReadObjectVarQuery<TLState> {
+
+ ReadTLStateQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int varID) {
+ super(dis, dos, commandID, objectID, varID);
+ }
+
+ @Override
+ protected TLState readValue(Command resp) throws TraCIException {
+ Utils.checkType(resp.content(), Constants.TYPE_STRING);
+ String desc = resp.content().readStringASCII();
+ return new TLState(desc);
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RemoveVehicleQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RemoveVehicleQuery.java
index 080f941..cc1790c 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RemoveVehicleQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RemoveVehicleQuery.java
@@ -1,79 +1,79 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.IOException;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for removing a vehicle from the simulation.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- */
-public class RemoveVehicleQuery extends ChangeStateQuery {
-
- private Vehicle vehicleID;
- private int reason;
-// private int commandID;
-
- RemoveVehicleQuery(DataInputStream dis, DataOutputStream dos) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE);
-// this.commandID = commandID;
- }
-
- @Override
- protected void writeRequestTo(Storage content) {
- content.writeUnsignedByte(Constants.REMOVE);
- content.writeStringASCII(vehicleID.getID());
- content.writeUnsignedByte(Constants.TYPE_BYTE);
- content.writeUnsignedByte(reason);
-
- }
-
- /**
- * Set the removal parameters.
- *
- * @param vehicle the vehicle to remove
- * @param reason the reason of removal (see TraCI docs for a list)
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
- * @throws IOException
- *
- */
- public void setVehicleData(
- Vehicle vehicle,
- int reason
- )
- throws IOException {
-
- if (vehicle == null)
- throw new IllegalArgumentException("Invalid vehicle");
-
- this.vehicleID = vehicle;
- this.reason = reason;
-
- }
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for removing a vehicle from the simulation.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
+ */
+public class RemoveVehicleQuery extends ChangeStateQuery {
+
+ private Vehicle vehicleID;
+ private int reason;
+// private int commandID;
+
+ RemoveVehicleQuery(DataInputStream dis, DataOutputStream dos) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE);
+// this.commandID = commandID;
+ }
+
+ @Override
+ protected void writeRequestTo(Storage content) {
+ content.writeUnsignedByte(Constants.REMOVE);
+ content.writeStringASCII(vehicleID.getID());
+ content.writeUnsignedByte(Constants.TYPE_BYTE);
+ content.writeUnsignedByte(reason);
+
+ }
+
+ /**
+ * Set the removal parameters.
+ *
+ * @param vehicle the vehicle to remove
+ * @param reason the reason of removal (see TraCI docs for a list)
+ * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Change_Vehicle_State.html">TraCI docs</a>
+ * @throws IOException
+ *
+ */
+ public void setVehicleData(
+ Vehicle vehicle,
+ int reason
+ )
+ throws IOException {
+
+ if (vehicle == null)
+ throw new IllegalArgumentException("Invalid vehicle");
+
+ this.vehicleID = vehicle;
+ this.reason = reason;
+
+ }
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Repository.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Repository.java
index 29847bb..6538c83 100755
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Repository.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/Repository.java
@@ -15,12 +15,10 @@
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
package it.polito.appeal.traci;
-import it.polito.appeal.traci.ReadObjectVarQuery.StringListQ;
-
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
@@ -30,8 +28,10 @@ import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import it.polito.appeal.traci.ReadObjectVarQuery.StringListQ;
/**
* Represents a collection of TraCI objects, that may or may not be complete
@@ -41,15 +41,16 @@ import org.apache.log4j.Logger;
* complete list of IDs to be able to check for correctness of requested IDs.
* <p>
* In order for a repository to be efficient, it should be the only class that
- * instantiates new items.
+ * instantiates new items.
+ *
* @author Enrico Gueli <enrico.gueli at polito.it>
*
*/
public class Repository<V extends TraciObject<?>> {
-
+
// log4j Logger
- private static final Logger log = Logger.getLogger(Repository.class);
-
+ private static final Logger log = LogManager.getLogger();
+
private final Map<String, V> objectCache = new HashMap<String, V>();
/*
* the factory is not final: there's a setter for those cases when the
@@ -58,18 +59,21 @@ public class Repository<V extends TraciObject<?>> {
*/
private ObjectFactory<V> factory;
private final StringListQ idListQuery;
-
+
/**
* Constructor for the repository.
- * @param factory the {@link ObjectFactory} that will be used to make new
- * objects when requested the first time
- * @param idListQuery a reference to a query of list of IDs.
+ *
+ * @param factory
+ * the {@link ObjectFactory} that will be used to make new
+ * objects when requested the first time
+ * @param idListQuery
+ * a reference to a query of list of IDs.
*/
Repository(ObjectFactory<V> factory, StringListQ idListQuery) {
this.factory = factory;
this.idListQuery = idListQuery;
}
-
+
protected void setObjectFactory(ObjectFactory<V> factory) {
this.factory = factory;
}
@@ -77,47 +81,48 @@ public class Repository<V extends TraciObject<?>> {
protected Map<String, V> getCached() {
return Collections.unmodifiableMap(objectCache);
}
-
+
/**
* Synchronizes the local set of objects with SUMO's counterparts and
* returns the TraCI object associated to the given ID.
*
* @param id
* @return the requested object, or <code>null</code> if such object does
- * not exist
- * @throws IOException if, in the first call of this method, a query is sent
- * to SUMO but something bad happened
+ * not exist
+ * @throws IOException
+ * if, in the first call of this method, a query is sent to SUMO
+ * but something bad happened
*/
public V getByID(String id) throws IOException {
getIDs(); // used only for its collateral effects
return objectCache.get(id);
}
-
+
/**
* @return a {@link Set} made of all the string IDs of the objects
- * represented by this repository.
+ * represented by this repository.
* @throws IOException
*/
public Set<String> getIDs() throws IOException {
/*
- * If the ID list query wasn't made obsolete, just get the key set
- * from the object cache (i.e. the previously made object set).
+ * If the ID list query wasn't made obsolete, just get the key set from
+ * the object cache (i.e. the previously made object set).
*/
-// if (idListQuery.hasValue()) {
-// List<String> set1 = idListQuery.get();
-// Set<String> set2 = objectCache.keySet();
-// log.info(set1);
-// log.info(set2);
-// return set2;
-// }
-// boolean test = idListQuery.hasValue();
+ // if (idListQuery.hasValue()) {
+ // List<String> set1 = idListQuery.get();
+ // Set<String> set2 = objectCache.keySet();
+ // log.info(set1);
+ // log.info(set2);
+ // return set2;
+ // }
+ // boolean test = idListQuery.hasValue();
/*
* Here we also update the cache.
*/
Set<String> idSet = new HashSet<String>(idListQuery.get());
-
+
final Set<String> cachedSet = objectCache.keySet();
-
+
if (!cachedSet.equals(idSet)) {
Set<String> added = Utils.getAddedItems(cachedSet, idSet);
for (String newID : added) {
@@ -126,16 +131,16 @@ public class Repository<V extends TraciObject<?>> {
throw new IllegalStateException("newObject == null");
objectCache.put(newID, newObject);
}
-
+
Set<String> removed = Utils.getRemovedItems(cachedSet, idSet);
for (String oldID : removed) {
objectCache.remove(oldID);
}
}
-
+
return Collections.unmodifiableSet(idSet);
}
-
+
/**
* @return a mapping between the known SUMO object IDs and the corresponding
* repository objects
@@ -153,74 +158,66 @@ public class Repository<V extends TraciObject<?>> {
public StringListQ getQuery() {
return idListQuery;
}
-
+
/**
* Represents a {@link Repository} whose objects implement
- * {@link StepAdvanceListener} and therefore need to be updated at
- * every simulation step.
+ * {@link StepAdvanceListener} and therefore need to be updated at every
+ * simulation step.
+ *
* @author Enrico Gueli <enrico.gueli at polito.it>
*
* @param <V>
*/
- static class UpdatableRepository<V extends TraciObject<?> & StepAdvanceListener> extends Repository<V> implements StepAdvanceListener {
+ static class UpdatableRepository<V extends TraciObject<?> & StepAdvanceListener> extends Repository<V>
+ implements StepAdvanceListener {
- public UpdatableRepository(ObjectFactory<V> factory,
- StringListQ idListQuery) {
+ public UpdatableRepository(ObjectFactory<V> factory, StringListQ idListQuery) {
super(factory, idListQuery);
}
- @Override
public void nextStep(double step) {
for (V item : getCached().values()) {
-
- if(item == null){
+
+ if (item == null) {
log.error("Item is null! ");
- }
- else
+ } else
item.nextStep(step);
}
}
}
-
+
static class Edges extends UpdatableRepository<Edge> {
Edges(final DataInputStream dis, final DataOutputStream dos, StringListQ idListQuery) {
super(new ObjectFactory<Edge>() {
- @Override
public Edge newObject(String objectID) {
return new Edge(dis, dos, objectID);
}
}, idListQuery);
}
}
-
+
static class Lanes extends Repository<Lane> {
- Lanes(final DataInputStream dis, final DataOutputStream dos, final Repository<Edge> edges, StringListQ idListQuery) {
+ Lanes(final DataInputStream dis, final DataOutputStream dos, final Repository<Edge> edges,
+ StringListQ idListQuery) {
super(null, idListQuery);
-
+
setObjectFactory(new ObjectFactory<Lane>() {
- @Override
public Lane newObject(String objectID) {
return new Lane(dis, dos, objectID, edges, Lanes.this);
}
});
}
}
-
+
static class Vehicles extends UpdatableRepository<Vehicle> {
- Vehicles(
- final DataInputStream dis,
- final DataOutputStream dos,
- final Repository<Edge> edges,
- final Repository<Lane> lanes,
- final Map<String, Vehicle> vehicles,
- final StringListQ idListQuery) {
+ Vehicles(final DataInputStream dis, final DataOutputStream dos, final Repository<Edge> edges,
+ final Repository<Lane> lanes, final Map<String, Vehicle> vehicles, final StringListQ idListQuery) {
super(new ObjectFactory<Vehicle>() {
/**
* This implementation does not make a new object; instead it
* looks for a vehicle in the specified map and returns that.
*/
- @Override
public Vehicle newObject(String objectID) {
if (!vehicles.containsKey(objectID))
throw new IllegalArgumentException("vehicleID '" + objectID + "' not found in vehicles map");
@@ -229,96 +226,88 @@ public class Repository<V extends TraciObject<?>> {
return vehicles.get(objectID);
}
}, idListQuery);
-
+
}
}
-
+
static class POIs extends Repository<POI> {
public POIs(final DataInputStream dis, final DataOutputStream dos, StringListQ idListQuery) {
super(new ObjectFactory<POI>() {
- @Override
public POI newObject(String objectID) {
return new POI(dis, dos, objectID);
}
}, idListQuery);
}
}
-
+
static class InductionLoops extends UpdatableRepository<InductionLoop> {
- public InductionLoops(
- final DataInputStream dis,
- final DataOutputStream dos,
- final Repository<Lane> lanes,
- final Repository<Vehicle> vehicles,
- StringListQ idListQuery) {
+ public InductionLoops(final DataInputStream dis, final DataOutputStream dos, final Repository<Lane> lanes,
+ final Repository<Vehicle> vehicles, StringListQ idListQuery) {
super(new ObjectFactory<InductionLoop>() {
- @Override
public InductionLoop newObject(String objectID) {
return new InductionLoop(dis, dos, objectID, lanes, vehicles);
}
}, idListQuery);
}
}
-
+
static class TrafficLights extends UpdatableRepository<TrafficLight> {
- public TrafficLights(
- final DataInputStream dis,
- final DataOutputStream dos,
- final Repository<Lane> lanes,
+ public TrafficLights(final DataInputStream dis, final DataOutputStream dos, final Repository<Lane> lanes,
StringListQ idListQuery) {
super(new ObjectFactory<TrafficLight>() {
- @Override
public TrafficLight newObject(String objectID) {
return new TrafficLight(dis, dos, objectID, lanes);
}
}, idListQuery);
}
}
-
+
static class VehicleTypes extends Repository<VehicleType> {
public VehicleTypes(final DataInputStream dis, final DataOutputStream dos, StringListQ idListQuery) {
super(new ObjectFactory<VehicleType>() {
- @Override
public VehicleType newObject(String objectID) {
return new VehicleType(dis, dos, objectID);
}
}, idListQuery);
}
}
-
+
static class MeMeDetectors extends UpdatableRepository<MeMeDetector> {
- public MeMeDetectors(
- final DataInputStream dis,
- final DataOutputStream dos,
- final Repository<Vehicle> vehicles,
+ public MeMeDetectors(final DataInputStream dis, final DataOutputStream dos, final Repository<Vehicle> vehicles,
StringListQ idListQuery) {
super(new ObjectFactory<MeMeDetector>() {
- @Override
public MeMeDetector newObject(String objectID) {
return new MeMeDetector(dis, dos, objectID, vehicles);
}
}, idListQuery);
}
}
-
+
+ static class LaArDetectors extends UpdatableRepository<LaArDetector> {
+ public LaArDetectors(final DataInputStream dis, final DataOutputStream dos, final Repository<Lane> lanes,
+ final Repository<Vehicle> vehicles, StringListQ idListQuery) {
+ super(new ObjectFactory<LaArDetector>() {
+ public LaArDetector newObject(String objectID) {
+ return new LaArDetector(dis, dos, objectID, lanes, vehicles);
+ }
+ }, idListQuery);
+ }
+ }
+
static class Routes extends UpdatableRepository<Route> {
- public Routes(
- final DataInputStream dis,
- final DataOutputStream dos,
- final Repository<Edge> edges,
+ public Routes(final DataInputStream dis, final DataOutputStream dos, final Repository<Edge> edges,
StringListQ idListQuery) {
super(new ObjectFactory<Route>() {
- @Override
public Route newObject(String objectID) {
return new Route(dis, dos, objectID, edges);
}
}, idListQuery);
}
- }
-
+ }
+
/*
- * TODO add repository definitions for other SUMO object classes
+ * TODO add repository definitions for other SUMO object classes
*/
}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RerouteQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RerouteQuery.java
index 22dd8a3..99caab3 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RerouteQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/RerouteQuery.java
@@ -1,47 +1,47 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import it.polito.appeal.traci.protocol.Constants;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Query for issuing a vehicle reroute.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class RerouteQuery extends ChangeObjectStateQuery {
-
- RerouteQuery(DataInputStream dis, DataOutputStream dos,
- String objectID) {
- super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.CMD_REROUTE_TRAVELTIME);
- }
-
- @Override
- protected void writeParamsTo(Storage content) {
- content.writeByte(Constants.TYPE_COMPOUND);
- content.writeInt(0);
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import it.polito.appeal.traci.protocol.Constants;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Query for issuing a vehicle reroute.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class RerouteQuery extends ChangeObjectStateQuery {
+
+ RerouteQuery(DataInputStream dis, DataOutputStream dos,
+ String objectID) {
+ super(dis, dos, Constants.CMD_SET_VEHICLE_VARIABLE, objectID, Constants.CMD_REROUTE_TRAVELTIME);
+ }
+
+ @Override
+ protected void writeParamsTo(Storage content) {
+ content.writeByte(Constants.TYPE_COMPOUND);
+ content.writeInt(0);
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SimulationData.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SimulationData.java
index 6711cbf..fd39cb2 100755
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SimulationData.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SimulationData.java
@@ -15,7 +15,7 @@
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
package it.polito.appeal.traci;
@@ -34,40 +34,39 @@ import java.io.DataOutputStream;
* href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Simulation_Value_Retrieval.html">TraCI
* docs</a>
*/
-public class SimulationData extends TraciObject<SimulationData.Variable> implements StepAdvanceListener {
+public class SimulationData extends TraciObject<SimulationData.Variable>
+ implements StepAdvanceListener {
private final DataInputStream dis;
private final DataOutputStream dos;
-
-
+
enum Variable {
- CURRENT_SIM_TIME (Constants.VAR_TIME_STEP),
- NET_BOUNDARIES (Constants.VAR_NET_BOUNDING_BOX),
- ;
+ CURRENT_SIM_TIME(Constants.VAR_TIME_STEP), NET_BOUNDARIES(
+ Constants.VAR_NET_BOUNDING_BOX), ;
public final int id;
+
private Variable(int id) {
this.id = id;
}
}
-
+
SimulationData(DataInputStream dis, DataOutputStream dos) {
super("", Variable.class);
-
+
addReadQuery(Variable.CURRENT_SIM_TIME,
new ReadObjectVarQuery.IntegerQ(dis, dos,
Constants.CMD_GET_SIM_VARIABLE, "",
Variable.CURRENT_SIM_TIME.id) {
-
- });
-
+
+ });
+
addReadQuery(Variable.NET_BOUNDARIES,
new ReadObjectVarQuery.BoundingBoxQ(dis, dos,
Constants.CMD_GET_SIM_VARIABLE, "",
Variable.NET_BOUNDARIES.id));
-
+
this.dis = dis;
this.dos = dos;
-
}
@@ -78,13 +77,13 @@ public class SimulationData extends TraciObject<SimulationData.Variable> impleme
public ReadObjectVarQuery<Integer> queryCurrentSimTime() {
return (ReadObjectVarQuery.IntegerQ) getReadQuery(Variable.CURRENT_SIM_TIME);
}
-
+
/**
* Note: the data returned from this query will return the network
* boundaries regardless of the lane width and number. Actual borders of
* lanes, as well as position of vehicles, may lie outside these boundaries.
- * To read absolute borders, iterate over all lanes and calculate the
- * common bounding box.
+ * To read absolute borders, iterate over all lanes and calculate the common
+ * bounding box.
*
* @return the bounding box of the road network
*/
@@ -106,8 +105,7 @@ public class SimulationData extends TraciObject<SimulationData.Variable> impleme
Constants.POSITION_CONVERSION);
}
-
- @Override
+
public void nextStep(double step) {
queryCurrentSimTime().setObsolete();
}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/StreamLogger.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/StreamLogger.java
index 4043fd7..5612bc9 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/StreamLogger.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/StreamLogger.java
@@ -1,46 +1,93 @@
-package it.polito.appeal.traci;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-import org.apache.log4j.Logger;
-
-/**
- * Reads an InputStream object and logs each row in the containing class's
- * logger.
- *
- * @author Enrico
- *
- */
-public class StreamLogger implements Runnable {
- private final InputStream stream;
- private final String prefix;
- private final Logger logger;
-
- StreamLogger(InputStream stream, String prefix, Logger logger) {
- this.stream = stream;
- this.prefix = prefix;
- this.logger = logger;
- }
-
- public void run() {
- StringBuilder buf = new StringBuilder();
- InputStreamReader isr = new InputStreamReader(stream);
- try {
- int ch;
- while((ch = isr.read()) != -1) {
- if(logger.isInfoEnabled()) {
- if(ch != '\r' && ch != '\n')
- buf.append((char)ch);
- else {
- logger.info(prefix + buf.toString());
- buf = new StringBuilder();
- }
- }
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
+package it.polito.appeal.traci;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import org.apache.logging.log4j.Logger;
+
+/**
+ * Reads an InputStream object and logs each row in the containing class's
+ * logger.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ */
+public class StreamLogger implements Runnable {
+
+ public enum StreamLoggerTyp {
+ ERROR, TRACE, DEBUG, WARN, INFO;
+ }
+
+ private final static String LOG_FORMAT = "%s: %s";
+
+ private final InputStream stream;
+ private final String prefix;
+ private final Logger logger;
+ private final StreamLoggerTyp typ;
+
+ StreamLogger(InputStream stream, String prefix, Logger logger, StreamLoggerTyp typ) {
+ this.stream = stream;
+ this.prefix = prefix;
+ this.logger = logger;
+ this.typ = typ;
+ }
+
+ public void run() {
+ StringBuilder buf = new StringBuilder();
+ InputStreamReader isr = new InputStreamReader(stream);
+ try {
+ int ch;
+ while ((ch = isr.read()) != -1) {
+ if (isMyLogLevelOn()) {
+ if (ch != '\r' && ch != '\n')
+ buf.append((char) ch);
+ else {
+ logMsgInMyLogLevel(buf.toString());
+ buf = new StringBuilder();
+ }
+ }
+ }
+ } catch (IOException e) {
+ logger.error(e);
+ }
+ }
+
+ private boolean isMyLogLevelOn() {
+ switch (typ) {
+ case ERROR:
+ return logger.isErrorEnabled();
+ case WARN:
+ return logger.isWarnEnabled();
+ case DEBUG:
+ return logger.isDebugEnabled();
+ case TRACE:
+ return logger.isTraceEnabled();
+ case INFO:
+ return logger.isInfoEnabled();
+ default:
+ return false;
+ }
+ }
+
+ private void logMsgInMyLogLevel(String msg) {
+ msg = String.format(LOG_FORMAT, prefix, msg);
+ switch (typ) {
+ case ERROR:
+ logger.error(msg);
+ return;
+ case WARN:
+ logger.warn(msg);
+ return;
+ case DEBUG:
+ logger.debug(msg);
+ return;
+ case TRACE:
+ logger.trace(msg);
+ return;
+ case INFO:
+ default:
+ logger.info(msg);
+ return;
+ }
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoHttpRetriever.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoHttpRetriever.java
index 6d5cd24..2492fa6 100755
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoHttpRetriever.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoHttpRetriever.java
@@ -17,167 +17,167 @@
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
*/
-package it.polito.appeal.traci;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-
+package it.polito.appeal.traci;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
import org.apache.xerces.parsers.SAXParser;
-import org.xml.sax.Attributes;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.DefaultHandler;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * Downloads a SUMO config file from an HTTP URL, parses its input file
- * references and downloads them too. All the resulting contents will be stored
- * as temporary files.
- * <p>
- * TODO: support for relative paths (this needs rewriting the config file)
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-class SumoHttpRetriever {
-
- private URL configURL;
- private File tempDataDir;
- private File configFile;
-
- SumoHttpRetriever(String configURL) throws MalformedURLException {
- this.configURL = new URL(configURL);
- }
-
- public void fetchAndParse() throws IOException, SAXException {
- tempDataDir = createTempDirectory("sumo");
-
- String configURLStr = configURL.toString();
- int lastPathSep = configURLStr.lastIndexOf('/');
- String baseAddr = configURLStr.substring(0, lastPathSep+1);
- String configFileName = configURLStr.substring(lastPathSep+1, configURLStr.length());
-
- configFile = new File(tempDataDir + File.separator + configFileName);
- downloadTo(configURL, configFile);
-
- ConfigFileContentHandler configHandler = new ConfigFileContentHandler();
- XMLReader xmlReader = XMLReaderFactory.createXMLReader(SAXParser.class.getName());
- xmlReader.setContentHandler(configHandler);
- xmlReader.parse(new InputSource(new FileInputStream(configFile)));
-
-
- Set<String> inputFiles = configHandler.getInputFiles();
- for (String inputFileName : inputFiles) {
- if (inputFileName.contains("/") || inputFileName.contains("\\"))
- throw new UnsupportedOperationException("path separators are not supported yet");
-
- File inputFile = new File(tempDataDir + File.separator + inputFileName);
- URL inputURL = new URL(baseAddr + inputFileName);
- downloadTo(inputURL, inputFile);
- }
- }
-
- private void downloadTo(URL url, File out) throws IOException {
- URLConnection conn = url.openConnection();
- BufferedInputStream is = new BufferedInputStream(conn.getInputStream());
- BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(out));
-
- final int BLOCK_SIZE = 1024;
- byte[] buf = new byte[BLOCK_SIZE];
- int size;
- while((size = is.read(buf, 0, BLOCK_SIZE)) > 0)
- os.write(buf, 0, size);
-
- is.close();
- os.close();
- }
-
- public String getConfigFileName() {
- return configFile.toString();
- }
-
- public void close() {
- for (File file : tempDataDir.listFiles()) {
- file.delete();
- }
- tempDataDir.delete();
- }
-
-
- public static File createTempDirectory(String prefix) throws IOException {
- final File temp;
-
- temp = File.createTempFile(prefix, Long.toString(System.nanoTime()));
-
- if(!(temp.delete()))
- {
- throw new IOException("Could not delete temp file: " + temp.getAbsolutePath());
- }
-
- if(!(temp.mkdir()))
- {
- throw new IOException("Could not create temp directory: " + temp.getAbsolutePath());
- }
-
- return (temp);
- }
-
-}
-
-class ConfigFileContentHandler extends DefaultHandler {
-
- private static final String INPUT_ELEMENT = "input";
- private static final String[] INPUT_FILE_ELEMENTS = new String[] {
- "net-file",
- "route-files",
- "additional-files",
- "weight-files"
- };
-
- private boolean readingInput = false;
- private Set<String> inputFiles = new HashSet<String>();
-
-
- @Override
- public void startElement(String uri, String localName, String qName,
- Attributes atts) throws SAXException {
-
- if (!readingInput) {
- if (localName.equals(INPUT_ELEMENT))
- readingInput = true;
- }
- else {
- for (String inputElement : INPUT_FILE_ELEMENTS) {
- if (inputElement.equals(localName)) {
- String fileNamesStr = atts.getValue("", "value");
- if (!fileNamesStr.isEmpty()) {
- String[] fileNames = fileNamesStr.split(",");
- Collections.addAll(inputFiles, fileNames);
- }
- }
- }
- }
- }
-
- @Override
- public void endElement(String uri, String localName, String qName)
- throws SAXException {
- if (readingInput && localName.equals(INPUT_ELEMENT))
- readingInput = false;
- }
-
- public Set<String> getInputFiles() {
- return inputFiles;
- }
-
+import org.xml.sax.Attributes;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+import org.xml.sax.helpers.XMLReaderFactory;
+
+/**
+ * Downloads a SUMO config file from an HTTP URL, parses its input file
+ * references and downloads them too. All the resulting contents will be stored
+ * as temporary files.
+ * <p>
+ * TODO: support for relative paths (this needs rewriting the config file)
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+class SumoHttpRetriever {
+
+ private URL configURL;
+ private File tempDataDir;
+ private File configFile;
+
+ SumoHttpRetriever(String configURL) throws MalformedURLException {
+ this.configURL = new URL(configURL);
+ }
+
+ public void fetchAndParse() throws IOException, SAXException {
+ tempDataDir = createTempDirectory("sumo");
+
+ String configURLStr = configURL.toString();
+ int lastPathSep = configURLStr.lastIndexOf('/');
+ String baseAddr = configURLStr.substring(0, lastPathSep+1);
+ String configFileName = configURLStr.substring(lastPathSep+1, configURLStr.length());
+
+ configFile = new File(tempDataDir + File.separator + configFileName);
+ downloadTo(configURL, configFile);
+
+ ConfigFileContentHandler configHandler = new ConfigFileContentHandler();
+ XMLReader xmlReader = XMLReaderFactory.createXMLReader(SAXParser.class.getName());
+ xmlReader.setContentHandler(configHandler);
+ xmlReader.parse(new InputSource(new FileInputStream(configFile)));
+
+
+ Set<String> inputFiles = configHandler.getInputFiles();
+ for (String inputFileName : inputFiles) {
+ if (inputFileName.contains("/") || inputFileName.contains("\\"))
+ throw new UnsupportedOperationException("path separators are not supported yet");
+
+ File inputFile = new File(tempDataDir + File.separator + inputFileName);
+ URL inputURL = new URL(baseAddr + inputFileName);
+ downloadTo(inputURL, inputFile);
+ }
+ }
+
+ private void downloadTo(URL url, File out) throws IOException {
+ URLConnection conn = url.openConnection();
+ BufferedInputStream is = new BufferedInputStream(conn.getInputStream());
+ BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(out));
+
+ final int BLOCK_SIZE = 1024;
+ byte[] buf = new byte[BLOCK_SIZE];
+ int size;
+ while((size = is.read(buf, 0, BLOCK_SIZE)) > 0)
+ os.write(buf, 0, size);
+
+ is.close();
+ os.close();
+ }
+
+ public String getConfigFileName() {
+ return configFile.toString();
+ }
+
+ public void close() {
+ for (File file : tempDataDir.listFiles()) {
+ file.delete();
+ }
+ tempDataDir.delete();
+ }
+
+
+ public static File createTempDirectory(String prefix) throws IOException {
+ final File temp;
+
+ temp = File.createTempFile(prefix, Long.toString(System.nanoTime()));
+
+ if(!(temp.delete()))
+ {
+ throw new IOException("Could not delete temp file: " + temp.getAbsolutePath());
+ }
+
+ if(!(temp.mkdir()))
+ {
+ throw new IOException("Could not create temp directory: " + temp.getAbsolutePath());
+ }
+
+ return (temp);
+ }
+
+}
+
+class ConfigFileContentHandler extends DefaultHandler {
+
+ private static final String INPUT_ELEMENT = "input";
+ private static final String[] INPUT_FILE_ELEMENTS = new String[] {
+ "net-file",
+ "route-files",
+ "additional-files",
+ "weight-files"
+ };
+
+ private boolean readingInput = false;
+ private Set<String> inputFiles = new HashSet<String>();
+
+
+ @Override
+ public void startElement(String uri, String localName, String qName,
+ Attributes atts) throws SAXException {
+
+ if (!readingInput) {
+ if (localName.equals(INPUT_ELEMENT))
+ readingInput = true;
+ }
+ else {
+ for (String inputElement : INPUT_FILE_ELEMENTS) {
+ if (inputElement.equals(localName)) {
+ String fileNamesStr = atts.getValue("", "value");
+ if (!fileNamesStr.isEmpty()) {
+ String[] fileNames = fileNamesStr.split(",");
+ Collections.addAll(inputFiles, fileNames);
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String qName)
+ throws SAXException {
+ if (readingInput && localName.equals(INPUT_ELEMENT))
+ readingInput = false;
+ }
+
+ public Set<String> getInputFiles() {
+ return inputFiles;
+ }
+
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoTraciConnection.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoTraciConnection.java
index 4458d73..dd64391 100755
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoTraciConnection.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/SumoTraciConnection.java
@@ -15,13 +15,10 @@
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
package it.polito.appeal.traci;
-import it.polito.appeal.traci.ReadObjectVarQuery.StringListQ;
-import it.polito.appeal.traci.protocol.Constants;
-
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.io.DataInputStream;
@@ -39,12 +36,18 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.xml.sax.SAXException;
+import it.polito.appeal.traci.ReadObjectVarQuery.StringListQ;
+import it.polito.appeal.traci.StreamLogger.StreamLoggerTyp;
+import it.polito.appeal.traci.protocol.Constants;
+
/**
* Models a TCP/IP connection to a local or remote SUMO server via the TraCI
* protocol.
@@ -83,21 +86,25 @@ public class SumoTraciConnection {
*/
public static final String SUMO_EXE_PROPERTY = "it.polito.appeal.traci.sumo_exe";
- /**
- * The system property name to get user defined tcp_nodedelay for the tcp socket.
- */
- public static final String TCP_NODELAY_PROPERTY = "it.polito.appeal.traci.tcp_nodelay";
+ public static final String OS_ARCH_PROPERTY = "os.arch";
+ public static final String OS_NAME_PROPERTY = "os.name";
+
+ /**
+ * The system property name to get user defined tcp_nodedelay for the tcp
+ * socket.
+ */
+ public static final String TCP_NODELAY_PROPERTY = "it.polito.appeal.traci.tcp_nodelay";
- private static final Logger log = Logger.getLogger(SumoTraciConnection.class);
+ private static final Logger log = LogManager.getLogger();
private String configFile;
private int randomSeed;
private Socket socket;
-
- /** The current simulation step, in seconds. */
+
+ /** The current simulation step, in ms. */
private int currentSimStep;
private Process sumoProcess;
-
+
private static final int CONNECT_RETRIES = 9;
private CloseQuery closeQuery;
@@ -105,22 +112,22 @@ public class SumoTraciConnection {
private SumoHttpRetriever httpRetriever;
private List<String> args = new ArrayList<String>();
-
+
private DataInputStream dis;
private DataOutputStream dos;
-
+
private final Set<StepAdvanceListener> stepAdvanceListeners = new HashSet<StepAdvanceListener>();
private final Set<VehicleLifecycleObserver> vehicleLifecycleObservers = new HashSet<VehicleLifecycleObserver>();
-
+
private Map<String, Vehicle> vehicles;
private StringListQ vehicleListQuery;
private Set<String> vehicleListBefore;
-
+
private AddVehicleQuery addVehicleQuery;
private RemoveVehicleQuery removeVehicleQuery;
private AddRouteQuery addRouteQuery;
-
+
private Repository.Edges edgeRepo;
private Repository.Lanes laneRepo;
private Repository.Vehicles vehicleRepo;
@@ -129,18 +136,24 @@ public class SumoTraciConnection {
private Repository.TrafficLights trafficLightRepo;
private Repository.VehicleTypes vehicleTypeRepo;
private Repository.MeMeDetectors memeDetectorRepo;
+ private Repository.LaArDetectors laarDetectorRepo;
private Repository.Routes routeRepo;
+ /**
+ * Duration of a step in ms
+ */
+ private int steplength = 1000;
+
/*
* TODO add repositories for remaining SUMO object classes
*/
-
+
private SimulationData simData;
-
/**
- * Creates an instance of this class that runs an own instance of SUMO.
- * The constructor won't run SUMO immediately; for that, call {@link #runServer()}.
+ * Creates an instance of this class that runs an own instance of SUMO. The
+ * constructor won't run SUMO immediately; for that, call
+ * {@link #runServer()}.
*
* @param configFile
* the file name of the SUMO XML configuration file
@@ -173,17 +186,17 @@ public class SumoTraciConnection {
* config file or, if absent, the system time
*/
@Deprecated
- public SumoTraciConnection(String configFile, int randomSeed,
- boolean useGeoOffset) {
+ public SumoTraciConnection(String configFile, int randomSeed, boolean useGeoOffset) {
this(configFile, randomSeed);
}
-
/**
* Creates an instance of this class and connects to a running instance of
* SUMO.
*
- * <br/><br/> Note that TCP_NODELAY on the socket connection to SUMO will be
+ * <br/>
+ * <br/>
+ * Note that TCP_NODELAY on the socket connection to SUMO will be
* <b>enabled</b> by default. You can modify this behaviour later before the
* call to <code>runServer()</code>.
*
@@ -195,12 +208,11 @@ public class SumoTraciConnection {
* @throws IOException
* @throws InterruptedException
*/
- public SumoTraciConnection(InetAddress addr, int port) throws IOException,
- InterruptedException {
+ public SumoTraciConnection(InetAddress addr, int port) throws IOException, InterruptedException {
+
+ // Set TCP_NODELAY as enabled by default.
+ enableTcpNoDelay();
- // Set TCP_NODELAY as enabled by default.
- enableTcpNoDelay();
-
tryConnect(addr, port, null);
postConnect();
}
@@ -220,35 +232,57 @@ public class SumoTraciConnection {
if (value != null)
args.add(value);
}
-
+
/**
* Runs a SUMO instance and tries to connect at it.
*
* @throws IOException
* if something wrong occurs while starting SUMO or connecting
* at it.
- * @throws InterruptedException
+ * @throws InterruptedException
+ *
+ * @see {@link #runServer(boolean)}
*/
public void runServer() throws IOException, InterruptedException {
- retrieveFromURLs();
-
+ runServer(false);
+ }
+
+ /**
+ * Runs a SUMO instance and tries to connect at it.
+ *
+ * @param withGui
+ * Start sumo with gui or not
+ * @throws IOException
+ * if something wrong occurs while starting SUMO or connecting
+ * at it.
+ * @throws InterruptedException
+ *
+ * @see {@link #runServer()}
+ */
+ public void runServer(boolean withGui) throws IOException, InterruptedException {
+ retrieveFromURLs();
+
int port = findAvailablePort();
- runSUMO(port);
+ runSUMO(port, withGui);
tryConnect(InetAddress.getLocalHost(), port, sumoProcess);
postConnect();
}
-
+
/**
* Tries to connect to the TraCI server reachable at the given address and
* TCP port. If also specified, checks that the SUMO process is present.
- * @param addr the address of the TraCI server
- * @param port the TCP port of the TraCI server
- * @param process a reference to a {@link Process} object representing SUMO
- * @throws IOException
- * @throws InterruptedException
+ *
+ * @param addr
+ * the address of the TraCI server
+ * @param port
+ * the TCP port of the TraCI server
+ * @param process
+ * a reference to a {@link Process} object representing SUMO
+ * @throws IOException
+ * @throws InterruptedException
*/
private void tryConnect(InetAddress addr, int port, Process process) throws IOException, InterruptedException {
int waitTime = 500; // milliseconds
@@ -256,11 +290,9 @@ public class SumoTraciConnection {
if (process != null) {
try {
int retVal = process.exitValue();
- throw new IOException(
- "SUMO process terminated unexpectedly with value "
- + retVal);
+ throw new IOException("SUMO process terminated unexpectedly with value " + retVal);
} catch (IllegalThreadStateException e) {
- // it's alive, go ahead.
+ log.debug("It's alive, go ahead", e);
}
}
@@ -270,8 +302,7 @@ public class SumoTraciConnection {
if (tryConnectOnce(addr, port)) {
log.info("Connection to SUMO established.");
break;
- }
- else {
+ } else {
log.debug("Server not ready, retrying in " + waitTime + "ms");
Thread.sleep(waitTime);
waitTime *= 2;
@@ -289,126 +320,117 @@ public class SumoTraciConnection {
*
* @return true if active and false otherwise.
*/
- public boolean isTcpNoDelayActive()
- {
- return Boolean.getBoolean(TCP_NODELAY_PROPERTY);
- }
-
- /**
- * Enables TCP_NODELAY in the socket connection to SUMO
- */
- public void enableTcpNoDelay()
- {
- setTcpNoDelay(true);
- }
-
- /**
- * Disables TCP_NODELAY in the socket connection to SUMO
- */
- public void disableTcpNoDelay()
- {
- setTcpNoDelay(false);
- }
-
- /**
- * Forcibly set TCP_NODELAY_PROPERTY
- *
- * @param on If true TCP_NODELAY will be turned on. Else turned off.
- */
- public void setTcpNoDelay(boolean on)
- {
- System.setProperty(TCP_NODELAY_PROPERTY, String.valueOf(on));
- }
-
- private boolean tryConnectOnce(InetAddress addr, int port)
- throws UnknownHostException, IOException
- {
- boolean tcpNoDelay = Boolean.getBoolean(TCP_NODELAY_PROPERTY);
-
- socket = new Socket();
- socket.setTcpNoDelay(tcpNoDelay);
-
- try {
- socket.connect(new InetSocketAddress(addr, port));
- return true;
- } catch (ConnectException ce) {
- return false;
- }
- }
-
+ public boolean isTcpNoDelayActive() {
+ return Boolean.getBoolean(TCP_NODELAY_PROPERTY);
+ }
+
+ /**
+ * Enables TCP_NODELAY in the socket connection to SUMO
+ */
+ public void enableTcpNoDelay() {
+ setTcpNoDelay(true);
+ }
+
+ /**
+ * Disables TCP_NODELAY in the socket connection to SUMO
+ */
+ public void disableTcpNoDelay() {
+ setTcpNoDelay(false);
+ }
+
+ /**
+ * Forcibly set TCP_NODELAY_PROPERTY
+ *
+ * @param on
+ * If true TCP_NODELAY will be turned on. Else turned off.
+ */
+ public void setTcpNoDelay(boolean on) {
+ System.setProperty(TCP_NODELAY_PROPERTY, String.valueOf(on));
+ }
+
+ private boolean tryConnectOnce(InetAddress addr, int port) throws UnknownHostException, IOException {
+ boolean tcpNoDelay = Boolean.getBoolean(TCP_NODELAY_PROPERTY);
+
+ socket = new Socket();
+ socket.setTcpNoDelay(tcpNoDelay);
+
+ try {
+ socket.connect(new InetSocketAddress(addr, port));
+ return true;
+ } catch (ConnectException ce) {
+ log.debug(ce);
+ return false;
+ }
+ }
+
private void postConnect() throws IOException {
dis = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
dos = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
closeQuery = new CloseQuery(dis, dos);
simData = new SimulationData(dis, dos);
-
- currentSimStep = simData.queryCurrentSimTime().get() / 1000;
-
+
+ currentSimStep = simData.queryCurrentSimTime().get();
+
vehicles = new HashMap<String, Vehicle>();
-
- edgeRepo = new Repository.Edges(dis, dos,
- newIDListQuery(Constants.CMD_GET_EDGE_VARIABLE));
+
+ edgeRepo = new Repository.Edges(dis, dos, newIDListQuery(Constants.CMD_GET_EDGE_VARIABLE));
addStepAdvanceListener(edgeRepo);
-
- laneRepo = new Repository.Lanes(dis, dos, edgeRepo,
- newIDListQuery(Constants.CMD_GET_LANE_VARIABLE));
-
+
+ laneRepo = new Repository.Lanes(dis, dos, edgeRepo, newIDListQuery(Constants.CMD_GET_LANE_VARIABLE));
+
vehicleListQuery = newIDListQuery(Constants.CMD_GET_VEHICLE_VARIABLE);
addStepAdvanceListener(new StepAdvanceListener() {
- @Override
public void nextStep(double step) {
vehicleListQuery.setObsolete();
}
});
vehicleListBefore = new HashSet<String>(vehicleListQuery.get());
-
- vehicleRepo = new Repository.Vehicles(dis, dos, edgeRepo, laneRepo,
- vehicles, vehicleListQuery);
+
+ vehicleRepo = new Repository.Vehicles(dis, dos, edgeRepo, laneRepo, vehicles, vehicleListQuery);
addStepAdvanceListener(vehicleRepo);
addVehicleQuery = new AddVehicleQuery(dis, dos, vehicleRepo);
-
+
removeVehicleQuery = new RemoveVehicleQuery(dis, dos);
-
- poiRepo = new Repository.POIs(dis, dos,
- newIDListQuery(Constants.CMD_GET_POI_VARIABLE));
-
- inductionLoopRepo = new Repository.InductionLoops(dis, dos, laneRepo,
- vehicleRepo,
+
+ poiRepo = new Repository.POIs(dis, dos, newIDListQuery(Constants.CMD_GET_POI_VARIABLE));
+
+ inductionLoopRepo = new Repository.InductionLoops(dis, dos, laneRepo, vehicleRepo,
newIDListQuery(Constants.CMD_GET_INDUCTIONLOOP_VARIABLE));
addStepAdvanceListener(inductionLoopRepo);
-
+
trafficLightRepo = new Repository.TrafficLights(dis, dos, laneRepo,
newIDListQuery(Constants.CMD_GET_TL_VARIABLE));
addStepAdvanceListener(trafficLightRepo);
-
- vehicleTypeRepo = new Repository.VehicleTypes(dis, dos,
- newIDListQuery(Constants.CMD_GET_VEHICLETYPE_VARIABLE));
-
- memeDetectorRepo = new Repository.MeMeDetectors(dis, dos, vehicleRepo,
+
+ vehicleTypeRepo = new Repository.VehicleTypes(dis, dos, newIDListQuery(Constants.CMD_GET_VEHICLETYPE_VARIABLE));
+
+ memeDetectorRepo = new Repository.MeMeDetectors(dis, dos, vehicleRepo,
newIDListQuery(Constants.CMD_GET_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE));
addStepAdvanceListener(memeDetectorRepo);
-
- routeRepo = new Repository.Routes(dis, dos, edgeRepo,
- newIDListQuery(Constants.CMD_GET_ROUTE_VARIABLE));
-
+
+ laarDetectorRepo = new Repository.LaArDetectors(dis, dos, laneRepo, vehicleRepo,
+ newIDListQuery(Constants.CMD_GET_LANE_AREA_DETECTOR_VARIABLE));
+ addStepAdvanceListener(laarDetectorRepo);
+
+ routeRepo = new Repository.Routes(dis, dos, edgeRepo, newIDListQuery(Constants.CMD_GET_ROUTE_VARIABLE));
+
addRouteQuery = new AddRouteQuery(dis, dos, routeRepo);
-
+
/*
* TODO add initializers for remaining repositories
*/
-
+
}
private StringListQ newIDListQuery(final int command) {
- return new StringListQ(dis, dos,
- command, "", Constants.ID_LIST);
+ return new StringListQ(dis, dos, command, "", Constants.ID_LIST);
}
private void retrieveFromURLs() throws IOException {
if (configFile.startsWith("http://")) {
-
+
httpRetriever = new SumoHttpRetriever(configFile);
log.info("Downloading config file from " + configFile);
@@ -417,29 +439,44 @@ public class SumoTraciConnection {
} catch (SAXException e) {
throw new IOException(e);
}
-
+
configFile = httpRetriever.getConfigFileName();
}
-
+
}
- private void runSUMO(int remotePort) throws IOException {
+ private void runSUMO(int remotePort, boolean withGui) throws IOException {
String sumoEXE = System.getProperty(SUMO_EXE_PROPERTY);
if (sumoEXE == null)
sumoEXE = "sumo";
+ if (withGui)
+ sumoEXE += "-gui";
+
+ // only on windows x64 (since version 0.23.0)
+ if (System.getProperty(OS_ARCH_PROPERTY).contains("64") && System.getProperty(OS_NAME_PROPERTY).contains("Win"))
+ sumoEXE += "64";
+
args.add(0, sumoEXE);
-
- args.add("-c");
- args.add(configFile);
- args.add("--remote-port");
- args.add(Integer.toString(remotePort));
-
+ args.add(1, "-c");
+ args.add(2, configFile);
+ args.add(3, "--remote-port");
+ args.add(4, Integer.toString(remotePort));
+ args.add(5, "--step-length");
+
+ args.add(6, String.format(Locale.ENGLISH, "%.3f", (double) steplength / 1000));
+
if (randomSeed != -1) {
- args.add("--seed");
- args.add(Integer.toString(randomSeed));
+ args.add(7, "--seed");
+ args.add(8, Integer.toString(randomSeed));
}
+ // this avoids validation of the input xml files; if SUMO_HOME is not set correctly,
+ // sumo will try to download the schema files from the web and may wait 30 seconds at startup
+ // for the connection to time out.
+ args.add(9, "--xml-validation");
+ args.add(10, "never");
+
if (log.isDebugEnabled())
log.debug("Executing SUMO with cmdline " + args);
@@ -447,11 +484,10 @@ public class SumoTraciConnection {
args.toArray(argsArray);
sumoProcess = Runtime.getRuntime().exec(argsArray);
- // String logProcessName = SUMO_EXE.substring(SUMO_EXE.lastIndexOf("\\")
- // + 1);
-
- StreamLogger errStreamLogger = new StreamLogger(sumoProcess.getErrorStream(), "SUMO-err:", log);
- StreamLogger outStreamLogger = new StreamLogger(sumoProcess.getInputStream(), "SUMO-out:", log);
+ StreamLogger errStreamLogger = new StreamLogger(sumoProcess.getErrorStream(), "SUMO", log,
+ StreamLoggerTyp.ERROR);
+ StreamLogger outStreamLogger = new StreamLogger(sumoProcess.getInputStream(), "SUMO", log,
+ StreamLoggerTyp.INFO);
new Thread(errStreamLogger, "StreamLogger-SUMO-err").start();
new Thread(outStreamLogger, "StreamLogger-SUMO-out").start();
}
@@ -464,8 +500,7 @@ public class SumoTraciConnection {
}
/**
- * Closes the connection, quits the simulator and frees any stale
- * resources.
+ * Closes the connection, quits the simulator and frees any stale resources.
* <p>
* NOTE: this method must be called when any of the methods throw an
* exception, to allow to free all resources.
@@ -492,21 +527,22 @@ public class SumoTraciConnection {
}
socket = null;
}
-
+
if (sumoProcess != null) {
sumoProcess.waitFor();
sumoProcess = null;
}
-
+
if (httpRetriever != null)
httpRetriever.close();
}
-
+
/**
* Returns <code>true</code> if the connection was closed by the user.
* <p>
* NOTE: it may not return <code>true</code> if an error occurred and the
* connection with SUMO is broken.
+ *
* @see #close()
*/
public boolean isClosed() {
@@ -524,7 +560,7 @@ public class SumoTraciConnection {
public Rectangle2D queryBounds() throws IOException {
if (isClosed())
throw new IllegalStateException("connection is closed");
-
+
return getSimulationData().queryNetBoundaries().get();
}
@@ -540,14 +576,14 @@ public class SumoTraciConnection {
public void nextSimStep() throws IOException, IllegalStateException {
if (isClosed())
throw new IllegalStateException("connection is closed");
-
- currentSimStep++;
+
+ currentSimStep += steplength;
/*
* forces querying of vehicle IDs when requested
*/
- simData.nextStep(currentSimStep * 1000);
-
+ simData.nextStep(currentSimStep);
+
/*
* constructs a multi-query that advances one step, reads the list of
* active vehicles, the list of teleport-starting and teleport-ending
@@ -557,18 +593,16 @@ public class SumoTraciConnection {
MultiQuery multi = new MultiQuery(dos, dis);
{ // begin multi-query
SimStepQuery ssq = new SimStepQuery(dis, dos);
- ssq.setTargetTime(currentSimStep * 1000);
+ ssq.setTargetTime(currentSimStep);
multi.add(ssq);
multi.add(vehicleListQuery);
- teleportStartQ = new StringListQ(dis, dos,
- Constants.CMD_GET_SIM_VARIABLE, "",
+ teleportStartQ = new StringListQ(dis, dos, Constants.CMD_GET_SIM_VARIABLE, "",
Constants.VAR_TELEPORT_STARTING_VEHICLES_IDS);
multi.add(teleportStartQ);
- teleportEndQ = new StringListQ(dis, dos,
- Constants.CMD_GET_SIM_VARIABLE, "",
+ teleportEndQ = new StringListQ(dis, dos, Constants.CMD_GET_SIM_VARIABLE, "",
Constants.VAR_TELEPORT_ENDING_VEHICLES_IDS);
multi.add(teleportEndQ);
} // end multi-query
@@ -579,23 +613,23 @@ public class SumoTraciConnection {
*/
List<String> teleportStart = teleportStartQ.get();
List<String> teleportEnd = teleportEndQ.get();
-
+
Set<String> vehicleListAfter = new HashSet<String>(vehicleListQuery.get());
Set<String> departedIDs = Utils.getAddedItems(vehicleListBefore, vehicleListAfter);
departedIDs.removeAll(teleportEnd);
-
+
Set<String> arrivedIDs = Utils.getRemovedItems(vehicleListBefore, vehicleListAfter);
arrivedIDs.removeAll(teleportStart);
-
+
/*
* now update the vehicles map and notify listeners
*/
-
+
for (String arrivedID : arrivedIDs) {
Vehicle arrived = vehicles.remove(arrivedID);
- if(log.isDebugEnabled())
- log.debug(" arrivedID = "+arrivedID+" Vehicle = "+arrived);
+ if (log.isDebugEnabled())
+ log.debug(" arrivedID = " + arrivedID + " Vehicle = " + arrived);
removeStepAdvanceListener(arrived);
for (VehicleLifecycleObserver observer : vehicleLifecycleObservers) {
observer.vehicleArrived(arrived);
@@ -603,8 +637,8 @@ public class SumoTraciConnection {
}
for (String departedID : departedIDs) {
Vehicle departed = new Vehicle(dis, dos, departedID, edgeRepo, laneRepo);
- if(log.isDebugEnabled())
- log.debug(" departedID = "+departedID+" Vehicle = "+departed);
+ if (log.isDebugEnabled())
+ log.debug(" departedID = " + departedID + " Vehicle = " + departed);
addStepAdvanceListener(departed);
vehicles.put(departedID, departed);
}
@@ -613,44 +647,42 @@ public class SumoTraciConnection {
observer.vehicleDeparted(vehicles.get(departedID));
}
}
-
+
for (VehicleLifecycleObserver observer : vehicleLifecycleObservers) {
-
+
for (String teleportStarting : teleportStart) {
Vehicle vehicle = vehicles.get(teleportStarting);
- if (vehicle != null){
- if(log.isDebugEnabled())
- log.debug(" Vehicle "+teleportStarting+" started teleporting.");
+ if (vehicle != null) {
+ if (log.isDebugEnabled())
+ log.debug(" Vehicle " + teleportStarting + " started teleporting.");
observer.vehicleTeleportStarting(vehicle);
- }
- else
- log.warn(" Teleporting vehicle "+teleportStarting+" not found!");
+ } else
+ log.warn(" Teleporting vehicle " + teleportStarting + " not found!");
}
for (String teleportEnding : teleportEnd) {
Vehicle vehicle = vehicles.get(teleportEnding);
- if (vehicle != null){
- if(log.isDebugEnabled())
- log.debug(" Vehicle "+teleportEnding+" ended teleporting.");
+ if (vehicle != null) {
+ if (log.isDebugEnabled())
+ log.debug(" Vehicle " + teleportEnding + " ended teleporting.");
observer.vehicleTeleportEnding(vehicle);
- }
- else
- log.warn(" Teleporting vehicle "+teleportEnding+" not found!");
+ } else
+ log.warn(" Teleporting vehicle " + teleportEnding + " not found!");
}
}
-
+
/*
* notify any interested listener that we advances one step
*/
for (StepAdvanceListener listener : stepAdvanceListeners)
listener.nextStep(currentSimStep);
-
+
vehicleListBefore = vehicleListAfter;
}
/**
- * Returns the current simulation step number.
+ * Returns the current simulation step time in ms.
*/
- public int getCurrentSimStep() {
+ public int getCurrentSimTime() {
return currentSimStep;
}
@@ -661,7 +693,7 @@ public class SumoTraciConnection {
public Repository<Vehicle> getVehicleRepository() {
return vehicleRepo;
}
-
+
/**
*
* @return an {@link AddVehicleQuery} that allows to add vehicles into the
@@ -670,7 +702,7 @@ public class SumoTraciConnection {
public AddVehicleQuery queryAddVehicle() {
return addVehicleQuery;
}
-
+
/**
*
* @return a {@link RemoveVehicleQuery} that allows to remove a vehicle into
@@ -679,16 +711,16 @@ public class SumoTraciConnection {
public RemoveVehicleQuery queryRemoveVehicle() {
return removeVehicleQuery;
}
-
+
/**
*
- * @return the {@link Repository} containing all the edges the network is made
- * of.
+ * @return the {@link Repository} containing all the edges the network is
+ * made of.
*/
public Repository<Edge> getEdgeRepository() {
return edgeRepo;
}
-
+
/**
*
* @return the {@link SimulationData} object that provides global info about
@@ -697,16 +729,16 @@ public class SumoTraciConnection {
public SimulationData getSimulationData() {
return simData;
}
-
+
/**
*
- * @return the {@link Repository} containing all the lanes the network is made
- * of.
+ * @return the {@link Repository} containing all the lanes the network is
+ * made of.
*/
public Repository<Lane> getLaneRepository() {
return laneRepo;
}
-
+
/**
*
* @return the {@link Repository} containing all the POIs in the network.
@@ -714,31 +746,34 @@ public class SumoTraciConnection {
public Repository<POI> getPOIRepository() {
return poiRepo;
}
-
+
/**
*
- * @return the {@link Repository} containing all the induction loops in the network.
+ * @return the {@link Repository} containing all the induction loops in the
+ * network.
*/
public Repository<InductionLoop> getInductionLoopRepository() {
return inductionLoopRepo;
}
-
+
/**
*
- * @return the {@link Repository} containing all the traffic lights in the network.
+ * @return the {@link Repository} containing all the traffic lights in the
+ * network.
*/
public Repository<TrafficLight> getTrafficLightRepository() {
return trafficLightRepo;
}
-
+
/**
*
- * @return the {@link Repository} containing all the known vehicle types in the simulation.
+ * @return the {@link Repository} containing all the known vehicle types in
+ * the simulation.
*/
public Repository<VehicleType> getVehicleTypeRepository() {
return vehicleTypeRepo;
}
-
+
/**
*
* @return the {@link Repository} containing all the multi-entry/multi-exit
@@ -747,7 +782,16 @@ public class SumoTraciConnection {
public Repository<MeMeDetector> getMeMeDetectorRepository() {
return memeDetectorRepo;
}
-
+
+ /**
+ *
+ * @return the {@link Repository} containing all the lane area detectors in
+ * the network.
+ */
+ public Repository<LaArDetector> getLaArDetectorRepository() {
+ return laarDetectorRepo;
+ }
+
/**
*
* @return an {@link AddVehicleQuery} that allows to add vehicles into the
@@ -757,20 +801,20 @@ public class SumoTraciConnection {
return addRouteQuery;
}
-
/**
*
- * @return the {@link Repository} containing all the known routes in the simulation.
+ * @return the {@link Repository} containing all the known routes in the
+ * simulation.
*/
public Repository<Route> getRouteRepository() {
return routeRepo;
}
-
+
/*
- * TODO add repository getters (in the form of getXXXXRepository())
- * for remaining SUMO object classes
+ * TODO add repository getters (in the form of getXXXXRepository()) for
+ * remaining SUMO object classes
*/
-
+
/**
* Allows a {@link VehicleLifecycleObserver}-implementing object to be
* notified about vehicles' creation and destruction.
@@ -786,7 +830,7 @@ public class SumoTraciConnection {
public void removeVehicleLifecycleObserver(VehicleLifecycleObserver observer) {
vehicleLifecycleObservers.remove(observer);
}
-
+
/**
* Registers a listener for any simulation step advancements.
*
@@ -795,7 +839,7 @@ public class SumoTraciConnection {
public void addStepAdvanceListener(StepAdvanceListener listener) {
stepAdvanceListeners.add(listener);
}
-
+
/**
* Un-registers a listener for any simulation step advancements.
*
@@ -806,7 +850,8 @@ public class SumoTraciConnection {
}
/**
- * @return a new instance of {@link MultiQuery} bound to this server connection.
+ * @return a new instance of {@link MultiQuery} bound to this server
+ * connection.
*/
public MultiQuery makeMultiQuery() {
return new MultiQuery(dos, dis);
@@ -819,30 +864,40 @@ public class SumoTraciConnection {
public PositionConversionQuery queryPositionConversion() {
return simData.queryPositionConversion();
}
-
+
+ /**
+ * Set the duration of a step
+ *
+ * @param length
+ * the time in ms
+ */
+ public void setStepLength(int steplength) {
+ this.steplength = steplength;
+ }
+
/**
* If set to true, the roadmap position of all vehicle is read at every
* simulation step. This will increase performance, since the query for all
* vehicles is made in a single TraCI query at the next sim step.
*
* @deprecated this method will do nothing now. All the vehicles' positions
- * can be read using a {@link MultiQuery}.
+ * can be read using a {@link MultiQuery}.
* @param booleanProperty
*/
@Deprecated
public void setGetVehiclesEdgeAtSimStep(boolean booleanProperty) {
-
+
}
/**
* @return the geo-coordinates (as longitude-latitude) of the network.
* @deprecated since the mechanism to obtain this data must be rewritten
- * from scratch after changes in the XML network file format; it's better
- * to obtain this data directly from TraCI, that is currently not supported
+ * from scratch after changes in the XML network file format;
+ * it's better to obtain this data directly from TraCI, that is
+ * currently not supported
*/
@Deprecated
public Point2D getGeoOffset() {
return null;
}
}
-
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TLState.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TLState.java
index b14bfb5..1741fb4 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TLState.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TLState.java
@@ -1,66 +1,66 @@
-package it.polito.appeal.traci;
-
-import java.util.Arrays;
-
-/**
- * Represents the istantaneous state of a TLS, i.e. the status of each light in
- * the TLS.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class TLState {
- /**
- * The ordered list of traffic light states.
- */
-
- public final LightState[] lightStates;
-
- /**
- * Constructs a new instance from a string description of a phase (one
- * letter for each signal).
- *
- * @param phase
- * the description of a phase. It must contain only the following
- * characters: rRyYgGO
- * @throws IllegalArgumentException
- * if the phase contains invalid characters
- */
- public TLState(String phase) {
- final int len = phase.length();
- lightStates = new LightState[len];
- for (int i=0; i<len; i++) {
- final char ch = phase.charAt(i);
- final LightState ls = LightState.fromSymbol(ch);
- if (ls == null)
- throw new IllegalArgumentException("unknown TL symbol: " + ch);
- lightStates[i] = ls;
- }
- }
-
- /**
- * Constructs an instance through an array of traffic light states.
- *
- * @param lightStates
- */
- public TLState(LightState[] lightStates) {
- this.lightStates = lightStates;
- }
- public String toString() {
- char[] desc = new char[lightStates.length];
- for (int i=0; i<desc.length; i++)
- desc[i] = lightStates[i].symbol;
- return new String(desc);
- }
- @Override
- public boolean equals(Object obj) {
- if (obj == null) return false;
- if (obj == this) return true;
- if (!(obj instanceof TLState)) return false;
- return Arrays.deepEquals(((TLState)obj).lightStates, lightStates);
- }
- @Override
- public int hashCode() {
- return Arrays.hashCode(lightStates);
- }
+package it.polito.appeal.traci;
+
+import java.util.Arrays;
+
+/**
+ * Represents the istantaneous state of a TLS, i.e. the status of each light in
+ * the TLS.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class TLState {
+ /**
+ * The ordered list of traffic light states.
+ */
+
+ public final LightState[] lightStates;
+
+ /**
+ * Constructs a new instance from a string description of a phase (one
+ * letter for each signal).
+ *
+ * @param phase
+ * the description of a phase. It must contain only the following
+ * characters: rRyYgGO
+ * @throws IllegalArgumentException
+ * if the phase contains invalid characters
+ */
+ public TLState(String phase) {
+ final int len = phase.length();
+ lightStates = new LightState[len];
+ for (int i=0; i<len; i++) {
+ final char ch = phase.charAt(i);
+ final LightState ls = LightState.fromSymbol(ch);
+ if (ls == null)
+ throw new IllegalArgumentException("unknown TL symbol: " + ch);
+ lightStates[i] = ls;
+ }
+ }
+
+ /**
+ * Constructs an instance through an array of traffic light states.
+ *
+ * @param lightStates
+ */
+ public TLState(LightState[] lightStates) {
+ this.lightStates = lightStates;
+ }
+ public String toString() {
+ char[] desc = new char[lightStates.length];
+ for (int i=0; i<desc.length; i++)
+ desc[i] = lightStates[i].symbol;
+ return new String(desc);
+ }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) return false;
+ if (obj == this) return true;
+ if (!(obj instanceof TLState)) return false;
+ return Arrays.deepEquals(((TLState)obj).lightStates, lightStates);
+ }
+ @Override
+ public int hashCode() {
+ return Arrays.hashCode(lightStates);
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TraCIException.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TraCIException.java
index 52ab618..2805e8a 100755
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TraCIException.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/TraCIException.java
@@ -17,64 +17,64 @@
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
*/
-package it.polito.appeal.traci;
-
-import java.io.IOException;
+package it.polito.appeal.traci;
+
+import java.io.IOException;
/**
* An exception in the TraCI protocol.
* @author Enrico Gueli <enrico.gueli at polito.it>
*
- */
- at SuppressWarnings("serial")
-public class TraCIException extends IOException {
+ */
+ at SuppressWarnings("serial")
+public class TraCIException extends IOException {
/**
* Constructor with no description.
- */
- public TraCIException() {
- super();
- }
+ */
+ public TraCIException() {
+ super();
+ }
/**
* Constructor with a text description.
* @param msg
- */
- public TraCIException(String msg) {
- super(msg);
- }
+ */
+ public TraCIException(String msg) {
+ super(msg);
+ }
/**
* A check of the response data failed.
* @author Enrico Gueli <enrico.gueli at polito.it>
*
- */
+ */
public static class UnexpectedData extends TraCIException {
/**
*
* @param what a description of the checked data
* @param expected the expected value
* @param got the read value
- */
- public UnexpectedData(String what, Object expected, Object got) {
- super("Unexpected " + what + ": expected " + expected + ", got " + got);
- }
- }
+ */
+ public UnexpectedData(String what, Object expected, Object got) {
+ super("Unexpected " + what + ": expected " + expected + ", got " + got);
+ }
+ }
/**
* The data type of a value in the response was not the expected one.
* @author Enrico Gueli <enrico.gueli at polito.it>
*
- */
+ */
public static class UnexpectedDatatype extends UnexpectedData {
/**
*
* @param expected the expected data type
* @param got the read data type
- */
- public UnexpectedDatatype(int expected, int got) {
- super("datatype", expected, got);
- }
- }
-
-}
+ */
+ public UnexpectedDatatype(int expected, int got) {
+ super("datatype", expected, got);
+ }
+ }
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/VehicleSetQuery.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/VehicleSetQuery.java
index 41ef97b..718e5d6 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/VehicleSetQuery.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/VehicleSetQuery.java
@@ -1,43 +1,43 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Query for obtaining a set of {@link Vehicle}s.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class VehicleSetQuery extends ObjectCollectionQuery<Vehicle, Set<Vehicle>> {
- VehicleSetQuery(DataInputStream dis, DataOutputStream dos,
- int commandID, String objectID, int varID, Repository<Vehicle> repository) {
- super(dis, dos, commandID, repository, objectID, varID);
- }
-
- @Override
- protected Set<Vehicle> makeCollection() {
- return new HashSet<Vehicle>();
- }
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci;
+
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * Query for obtaining a set of {@link Vehicle}s.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class VehicleSetQuery extends ObjectCollectionQuery<Vehicle, Set<Vehicle>> {
+ VehicleSetQuery(DataInputStream dis, DataOutputStream dos,
+ int commandID, String objectID, int varID, Repository<Vehicle> repository) {
+ super(dis, dos, commandID, repository, objectID, varID);
+ }
+
+ @Override
+ protected Set<Vehicle> makeCollection() {
+ return new HashSet<Vehicle>();
+ }
}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/BoundingBox.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/BoundingBox.java
index 2bd73b1..4e0307d 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/BoundingBox.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/BoundingBox.java
@@ -1,475 +1,484 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import it.polito.appeal.traci.TraCIException;
-
-import java.awt.Rectangle;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Dimension2D;
-import java.awt.geom.Line2D;
-import java.awt.geom.PathIterator;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a bounding box in the SUMO world.
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Protocol.html#Boundary_Box_.28ubyte_identifier:_0x05.29">TraCI docs</a>
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class BoundingBox extends Rectangle2D implements WriteableToStorage {
-
- private final Rectangle2D.Double rect;
-
- /**
- * Constructor from a {@link Storage} object.
- *
- * @param storage
- * @param verifyType
- * checks the first byte for the correct type ID. If not, throws
- * a {@link TraCIException}.
- * @throws TraCIException
- */
- public BoundingBox(Storage storage, boolean verifyType) throws TraCIException {
- if (verifyType) {
- if (storage.readByte() != Constants.TYPE_BOUNDINGBOX)
- throw new TraCIException("bounding box expected");
- }
-
- double llX = storage.readDouble();
- double llY = storage.readDouble();
- double urX = storage.readDouble();
- double urY = storage.readDouble();
-
- rect = new Rectangle2D.Double(llX, llY, urX - llX, urY - llY);
- }
-
- @Override
- public void writeTo(Storage out, boolean withTypeID) {
- if (withTypeID)
- out.writeByte(Constants.TYPE_BOUNDINGBOX);
- out.writeDouble(rect.x);
- out.writeDouble(rect.y);
- out.writeDouble(rect.x + rect.width);
- out.writeDouble(rect.y + rect.height);
- }
-
-
- /**
- * @param newx
- * @param newy
- * @see java.awt.geom.Rectangle2D#add(double, double)
- */
- public void add(double newx, double newy) {
- rect.add(newx, newy);
- }
-
- /**
- * @param pt
- * @see java.awt.geom.Rectangle2D#add(java.awt.geom.Point2D)
- */
- public void add(Point2D pt) {
- rect.add(pt);
- }
-
- /**
- * @param r
- * @see java.awt.geom.Rectangle2D#add(java.awt.geom.Rectangle2D)
- */
- public void add(Rectangle2D r) {
- rect.add(r);
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#clone()
- */
- public Object clone() {
- return rect.clone();
- }
-
- /**
- * @param x
- * @param y
- * @param w
- * @param h
-
- * @see java.awt.geom.Rectangle2D#contains(double, double, double, double)
- */
- public boolean contains(double x, double y, double w, double h) {
- return rect.contains(x, y, w, h);
- }
-
- /**
- * @param x
- * @param y
-
- * @see java.awt.geom.Rectangle2D#contains(double, double)
- */
- public boolean contains(double x, double y) {
- return rect.contains(x, y);
- }
-
- /**
- * @param arg0
-
- * @see java.awt.geom.RectangularShape#contains(java.awt.geom.Point2D)
- */
- public boolean contains(Point2D arg0) {
- return rect.contains(arg0);
- }
-
- /**
- * @param arg0
-
- * @see java.awt.geom.RectangularShape#contains(java.awt.geom.Rectangle2D)
- */
- public boolean contains(Rectangle2D arg0) {
- return rect.contains(arg0);
- }
-
- /**
- * @param r
-
- * @see java.awt.geom.Rectangle2D#createIntersection(java.awt.geom.Rectangle2D)
- */
- public Rectangle2D createIntersection(Rectangle2D r) {
- return rect.createIntersection(r);
- }
-
- /**
- * @param r
-
- * @see java.awt.geom.Rectangle2D#createUnion(java.awt.geom.Rectangle2D)
- */
- public Rectangle2D createUnion(Rectangle2D r) {
- return rect.createUnion(r);
- }
-
- /**
- * @param obj
-
- * @see java.awt.geom.Rectangle2D#equals(java.lang.Object)
- */
- public boolean equals(Object obj) {
- return rect.equals(obj);
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getBounds()
- */
- public Rectangle getBounds() {
- return rect.getBounds();
- }
-
- /**
-
- * @see java.awt.geom.Rectangle2D#getBounds2D()
- */
- public Rectangle2D getBounds2D() {
- return rect.getBounds2D();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getCenterX()
- */
- public double getCenterX() {
- return rect.getCenterX();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getCenterY()
- */
- public double getCenterY() {
- return rect.getCenterY();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getFrame()
- */
- public Rectangle2D getFrame() {
- return rect.getFrame();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getHeight()
- */
- public double getHeight() {
- return rect.getHeight();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getMaxX()
- */
- public double getMaxX() {
- return rect.getMaxX();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getMaxY()
- */
- public double getMaxY() {
- return rect.getMaxY();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getMinX()
- */
- public double getMinX() {
- return rect.getMinX();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getMinY()
- */
- public double getMinY() {
- return rect.getMinY();
- }
-
- /**
- * @param at
- * @param flatness
-
- * @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform, double)
- */
- public PathIterator getPathIterator(AffineTransform at, double flatness) {
- return rect.getPathIterator(at, flatness);
- }
-
- /**
- * @param at
-
- * @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform)
- */
- public PathIterator getPathIterator(AffineTransform at) {
- return rect.getPathIterator(at);
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getWidth()
- */
- public double getWidth() {
- return rect.getWidth();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getX()
- */
- public double getX() {
- return rect.getX();
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#getY()
- */
- public double getY() {
- return rect.getY();
- }
-
- /**
-
- * @see java.awt.geom.Rectangle2D#hashCode()
- */
- public int hashCode() {
- return rect.hashCode();
- }
-
- /**
- * @param x
- * @param y
- * @param w
- * @param h
-
- * @see java.awt.geom.Rectangle2D#intersects(double, double, double, double)
- */
- public boolean intersects(double x, double y, double w, double h) {
- return rect.intersects(x, y, w, h);
- }
-
- /**
- * @param arg0
-
- * @see java.awt.geom.RectangularShape#intersects(java.awt.geom.Rectangle2D)
- */
- public boolean intersects(Rectangle2D arg0) {
- return rect.intersects(arg0);
- }
-
- /**
- * @param x1
- * @param y1
- * @param x2
- * @param y2
-
- * @see java.awt.geom.Rectangle2D#intersectsLine(double, double, double, double)
- */
- public boolean intersectsLine(double x1, double y1, double x2, double y2) {
- return rect.intersectsLine(x1, y1, x2, y2);
- }
-
- /**
- * @param l
-
- * @see java.awt.geom.Rectangle2D#intersectsLine(java.awt.geom.Line2D)
- */
- public boolean intersectsLine(Line2D l) {
- return rect.intersectsLine(l);
- }
-
- /**
-
- * @see java.awt.geom.RectangularShape#isEmpty()
- */
- public boolean isEmpty() {
- return rect.isEmpty();
- }
-
- /**
- * @param x
- * @param y
-
- * @see java.awt.geom.Rectangle2D#outcode(double, double)
- */
- public int outcode(double x, double y) {
- return rect.outcode(x, y);
- }
-
- /**
- * @param p
-
- * @see java.awt.geom.Rectangle2D#outcode(java.awt.geom.Point2D)
- */
- public int outcode(Point2D p) {
- return rect.outcode(p);
- }
-
- /**
- * @param x
- * @param y
- * @param w
- * @param h
- * @see java.awt.geom.Rectangle2D#setFrame(double, double, double, double)
- */
- public void setFrame(double x, double y, double w, double h) {
- rect.setFrame(x, y, w, h);
- }
-
- /**
- * @param arg0
- * @param arg1
- * @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Point2D, java.awt.geom.Dimension2D)
- */
- public void setFrame(Point2D arg0, Dimension2D arg1) {
- rect.setFrame(arg0, arg1);
- }
-
- /**
- * @param arg0
- * @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Rectangle2D)
- */
- public void setFrame(Rectangle2D arg0) {
- rect.setFrame(arg0);
- }
-
- /**
- * @param arg0
- * @param arg1
- * @param arg2
- * @param arg3
- * @see java.awt.geom.RectangularShape#setFrameFromCenter(double, double, double, double)
- */
- public void setFrameFromCenter(double arg0, double arg1, double arg2,
- double arg3) {
- rect.setFrameFromCenter(arg0, arg1, arg2, arg3);
- }
-
- /**
- * @param arg0
- * @param arg1
- * @see java.awt.geom.RectangularShape#setFrameFromCenter(java.awt.geom.Point2D, java.awt.geom.Point2D)
- */
- public void setFrameFromCenter(Point2D arg0, Point2D arg1) {
- rect.setFrameFromCenter(arg0, arg1);
- }
-
- /**
- * @param arg0
- * @param arg1
- * @param arg2
- * @param arg3
- * @see java.awt.geom.RectangularShape#setFrameFromDiagonal(double, double, double, double)
- */
- public void setFrameFromDiagonal(double arg0, double arg1, double arg2,
- double arg3) {
- rect.setFrameFromDiagonal(arg0, arg1, arg2, arg3);
- }
-
- /**
- * @param arg0
- * @param arg1
- * @see java.awt.geom.RectangularShape#setFrameFromDiagonal(java.awt.geom.Point2D, java.awt.geom.Point2D)
- */
- public void setFrameFromDiagonal(Point2D arg0, Point2D arg1) {
- rect.setFrameFromDiagonal(arg0, arg1);
- }
-
- /**
- * @param x
- * @param y
- * @param w
- * @param h
- * @see java.awt.geom.Rectangle2D#setRect(double, double, double, double)
- */
- public void setRect(double x, double y, double w, double h) {
- rect.setRect(x, y, w, h);
- }
-
- /**
- * @param r
- * @see java.awt.geom.Rectangle2D#setRect(java.awt.geom.Rectangle2D)
- */
- public void setRect(Rectangle2D r) {
- rect.setRect(r);
- }
-
- /**
-
- * @see java.lang.Object#toString()
- */
- public String toString() {
- return rect.toString();
- }
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package it.polito.appeal.traci.protocol;
+
+import it.polito.appeal.traci.TraCIException;
+
+import java.awt.Rectangle;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Dimension2D;
+import java.awt.geom.Line2D;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a bounding box in the SUMO world.
+ *
+ * @see <a
+ * href="http://sumo.sourceforge.net/doc/current/docs/userdoc/TraCI/Protocol.html#Boundary_Box_.28ubyte_identifier:_0x05.29">TraCI
+ * docs</a>
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class BoundingBox extends Rectangle2D implements WriteableToStorage {
+
+ private final Rectangle2D.Double rect;
+
+ /**
+ * Constructor from a {@link Storage} object.
+ *
+ * @param storage
+ * @param verifyType
+ * checks the first byte for the correct type ID. If not, throws
+ * a {@link TraCIException}.
+ * @throws TraCIException
+ */
+ public BoundingBox(Storage storage, boolean verifyType)
+ throws TraCIException {
+ if (verifyType) {
+ if (storage.readByte() != Constants.TYPE_BOUNDINGBOX)
+ throw new TraCIException("bounding box expected");
+ }
+
+ double llX = storage.readDouble();
+ double llY = storage.readDouble();
+ double urX = storage.readDouble();
+ double urY = storage.readDouble();
+
+ rect = new Rectangle2D.Double(llX, llY, urX - llX, urY - llY);
+ }
+
+ public void writeTo(Storage out, boolean withTypeID) {
+ if (withTypeID)
+ out.writeByte(Constants.TYPE_BOUNDINGBOX);
+ out.writeDouble(rect.x);
+ out.writeDouble(rect.y);
+ out.writeDouble(rect.x + rect.width);
+ out.writeDouble(rect.y + rect.height);
+ }
+
+ /**
+ * @param newx
+ * @param newy
+ * @see java.awt.geom.Rectangle2D#add(double, double)
+ */
+ public void add(double newx, double newy) {
+ rect.add(newx, newy);
+ }
+
+ /**
+ * @param pt
+ * @see java.awt.geom.Rectangle2D#add(java.awt.geom.Point2D)
+ */
+ public void add(Point2D pt) {
+ rect.add(pt);
+ }
+
+ /**
+ * @param r
+ * @see java.awt.geom.Rectangle2D#add(java.awt.geom.Rectangle2D)
+ */
+ public void add(Rectangle2D r) {
+ rect.add(r);
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#clone()
+ */
+ public Object clone() {
+ return rect.clone();
+ }
+
+ /**
+ * @param x
+ * @param y
+ * @param w
+ * @param h
+ *
+ * @see java.awt.geom.Rectangle2D#contains(double, double, double, double)
+ */
+ public boolean contains(double x, double y, double w, double h) {
+ return rect.contains(x, y, w, h);
+ }
+
+ /**
+ * @param x
+ * @param y
+ *
+ * @see java.awt.geom.Rectangle2D#contains(double, double)
+ */
+ public boolean contains(double x, double y) {
+ return rect.contains(x, y);
+ }
+
+ /**
+ * @param arg0
+ *
+ * @see java.awt.geom.RectangularShape#contains(java.awt.geom.Point2D)
+ */
+ public boolean contains(Point2D arg0) {
+ return rect.contains(arg0);
+ }
+
+ /**
+ * @param arg0
+ *
+ * @see java.awt.geom.RectangularShape#contains(java.awt.geom.Rectangle2D)
+ */
+ public boolean contains(Rectangle2D arg0) {
+ return rect.contains(arg0);
+ }
+
+ /**
+ * @param r
+ *
+ * @see java.awt.geom.Rectangle2D#createIntersection(java.awt.geom.Rectangle2D)
+ */
+ public Rectangle2D createIntersection(Rectangle2D r) {
+ return rect.createIntersection(r);
+ }
+
+ /**
+ * @param r
+ *
+ * @see java.awt.geom.Rectangle2D#createUnion(java.awt.geom.Rectangle2D)
+ */
+ public Rectangle2D createUnion(Rectangle2D r) {
+ return rect.createUnion(r);
+ }
+
+ /**
+ * @param obj
+ *
+ * @see java.awt.geom.Rectangle2D#equals(java.lang.Object)
+ */
+ public boolean equals(Object obj) {
+ return rect.equals(obj);
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getBounds()
+ */
+ public Rectangle getBounds() {
+ return rect.getBounds();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.Rectangle2D#getBounds2D()
+ */
+ public Rectangle2D getBounds2D() {
+ return rect.getBounds2D();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getCenterX()
+ */
+ public double getCenterX() {
+ return rect.getCenterX();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getCenterY()
+ */
+ public double getCenterY() {
+ return rect.getCenterY();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getFrame()
+ */
+ public Rectangle2D getFrame() {
+ return rect.getFrame();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getHeight()
+ */
+ public double getHeight() {
+ return rect.getHeight();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getMaxX()
+ */
+ public double getMaxX() {
+ return rect.getMaxX();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getMaxY()
+ */
+ public double getMaxY() {
+ return rect.getMaxY();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getMinX()
+ */
+ public double getMinX() {
+ return rect.getMinX();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getMinY()
+ */
+ public double getMinY() {
+ return rect.getMinY();
+ }
+
+ /**
+ * @param at
+ * @param flatness
+ *
+ * @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform,
+ * double)
+ */
+ public PathIterator getPathIterator(AffineTransform at, double flatness) {
+ return rect.getPathIterator(at, flatness);
+ }
+
+ /**
+ * @param at
+ *
+ * @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform)
+ */
+ public PathIterator getPathIterator(AffineTransform at) {
+ return rect.getPathIterator(at);
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getWidth()
+ */
+ public double getWidth() {
+ return rect.getWidth();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getX()
+ */
+ public double getX() {
+ return rect.getX();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#getY()
+ */
+ public double getY() {
+ return rect.getY();
+ }
+
+ /**
+ *
+ * @see java.awt.geom.Rectangle2D#hashCode()
+ */
+ public int hashCode() {
+ return rect.hashCode();
+ }
+
+ /**
+ * @param x
+ * @param y
+ * @param w
+ * @param h
+ *
+ * @see java.awt.geom.Rectangle2D#intersects(double, double, double, double)
+ */
+ public boolean intersects(double x, double y, double w, double h) {
+ return rect.intersects(x, y, w, h);
+ }
+
+ /**
+ * @param arg0
+ *
+ * @see java.awt.geom.RectangularShape#intersects(java.awt.geom.Rectangle2D)
+ */
+ public boolean intersects(Rectangle2D arg0) {
+ return rect.intersects(arg0);
+ }
+
+ /**
+ * @param x1
+ * @param y1
+ * @param x2
+ * @param y2
+ *
+ * @see java.awt.geom.Rectangle2D#intersectsLine(double, double, double,
+ * double)
+ */
+ public boolean intersectsLine(double x1, double y1, double x2, double y2) {
+ return rect.intersectsLine(x1, y1, x2, y2);
+ }
+
+ /**
+ * @param l
+ *
+ * @see java.awt.geom.Rectangle2D#intersectsLine(java.awt.geom.Line2D)
+ */
+ public boolean intersectsLine(Line2D l) {
+ return rect.intersectsLine(l);
+ }
+
+ /**
+ *
+ * @see java.awt.geom.RectangularShape#isEmpty()
+ */
+ public boolean isEmpty() {
+ return rect.isEmpty();
+ }
+
+ /**
+ * @param x
+ * @param y
+ *
+ * @see java.awt.geom.Rectangle2D#outcode(double, double)
+ */
+ public int outcode(double x, double y) {
+ return rect.outcode(x, y);
+ }
+
+ /**
+ * @param p
+ *
+ * @see java.awt.geom.Rectangle2D#outcode(java.awt.geom.Point2D)
+ */
+ public int outcode(Point2D p) {
+ return rect.outcode(p);
+ }
+
+ /**
+ * @param x
+ * @param y
+ * @param w
+ * @param h
+ * @see java.awt.geom.Rectangle2D#setFrame(double, double, double, double)
+ */
+ public void setFrame(double x, double y, double w, double h) {
+ rect.setFrame(x, y, w, h);
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ * @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Point2D,
+ * java.awt.geom.Dimension2D)
+ */
+ public void setFrame(Point2D arg0, Dimension2D arg1) {
+ rect.setFrame(arg0, arg1);
+ }
+
+ /**
+ * @param arg0
+ * @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Rectangle2D)
+ */
+ public void setFrame(Rectangle2D arg0) {
+ rect.setFrame(arg0);
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ * @param arg2
+ * @param arg3
+ * @see java.awt.geom.RectangularShape#setFrameFromCenter(double, double,
+ * double, double)
+ */
+ public void setFrameFromCenter(double arg0, double arg1, double arg2,
+ double arg3) {
+ rect.setFrameFromCenter(arg0, arg1, arg2, arg3);
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ * @see java.awt.geom.RectangularShape#setFrameFromCenter(java.awt.geom.Point2D,
+ * java.awt.geom.Point2D)
+ */
+ public void setFrameFromCenter(Point2D arg0, Point2D arg1) {
+ rect.setFrameFromCenter(arg0, arg1);
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ * @param arg2
+ * @param arg3
+ * @see java.awt.geom.RectangularShape#setFrameFromDiagonal(double, double,
+ * double, double)
+ */
+ public void setFrameFromDiagonal(double arg0, double arg1, double arg2,
+ double arg3) {
+ rect.setFrameFromDiagonal(arg0, arg1, arg2, arg3);
+ }
+
+ /**
+ * @param arg0
+ * @param arg1
+ * @see java.awt.geom.RectangularShape#setFrameFromDiagonal(java.awt.geom.Point2D,
+ * java.awt.geom.Point2D)
+ */
+ public void setFrameFromDiagonal(Point2D arg0, Point2D arg1) {
+ rect.setFrameFromDiagonal(arg0, arg1);
+ }
+
+ /**
+ * @param x
+ * @param y
+ * @param w
+ * @param h
+ * @see java.awt.geom.Rectangle2D#setRect(double, double, double, double)
+ */
+ public void setRect(double x, double y, double w, double h) {
+ rect.setRect(x, y, w, h);
+ }
+
+ /**
+ * @param r
+ * @see java.awt.geom.Rectangle2D#setRect(java.awt.geom.Rectangle2D)
+ */
+ public void setRect(Rectangle2D r) {
+ rect.setRect(r);
+ }
+
+ /**
+ *
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ return rect.toString();
+ }
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Command.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Command.java
index 97461aa..3520285 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Command.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Command.java
@@ -1,125 +1,125 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a single TraCI command, with its identifier and content. It can
- * be used either as a request (i.e. from client to server) and as a response
- * (i.e. from server to client). The "command" term reflects the description
- * in the <a href="http://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages">wiki</a>.
- * Each command is characterized by a type identifier and a variable-sized
- * content. The command can be constructed either from a data block (a
- * {@link Storage}) or from scratch; its content can be read or written to a
- * {@link Storage}.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages">Messages</a>
- */
-public class Command {
- private static final int HEADER_SIZE =
- Byte.SIZE/8 // length 0
- + Integer.SIZE/8 // integer length
- + Byte.SIZE/8; // command id
-
- private final int id;
- private final Storage content;
-
-
- /**
- * Builds a command from a {@link Storage} received from the other endpoint.
- * <p>
- * Note that this will advance the storage's internal pointer to the next
- * data.
- * @param rawStorage
- */
- public Command(Storage rawStorage) {
- int contentLen = rawStorage.readUnsignedByte();
- if (contentLen == 0)
- contentLen = rawStorage.readInt() - 6;
- else
- contentLen = contentLen - 2;
-
- id = rawStorage.readUnsignedByte();
-
- short[] buf = new short[contentLen];
- for (int i=0; i<contentLen; i++) {
- buf[i] = (byte)rawStorage.readUnsignedByte();
- }
-
- content = new Storage(buf);
- }
-
- /**
- * Creates a command with a given identifier and an empty content.
- * @param id
- */
- public Command(int id) {
- if (id > 255)
- throw new IllegalArgumentException("id should fit in a byte");
- content = new Storage();
- this.id = id;
- }
-
- /**
- * Returns the type identifier.
- * @return the id
- */
- public int id() {
- return id;
- }
-
- /**
- * Returns the content.
- * @return the content
- */
- public Storage content() {
- return content;
- }
-
- /**
- * Writes the serialized form of this command to the given {@link Storage}
- * object.
- * <p>
- * Note: this will advance the internal pointer of the given storage.
- * @param out
- */
- public void writeRawTo(Storage out) {
- /*
- * use only the long form (length 0 + length as integer)
- */
- out.writeByte(0);
- out.writeInt(HEADER_SIZE + content.size());
-
- out.writeUnsignedByte(id);
-
- for (Byte b : content.getStorageList()) {
- out.writeByte(b);
- }
- }
-
- /**
- * Returns the expected size of the serialized form of this command.
- */
- public int rawSize() {
- return HEADER_SIZE + content.size();
- }
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci.protocol;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a single TraCI command, with its identifier and content. It can
+ * be used either as a request (i.e. from client to server) and as a response
+ * (i.e. from server to client). The "command" term reflects the description
+ * in the <a href="http://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages">wiki</a>.
+ * Each command is characterized by a type identifier and a variable-sized
+ * content. The command can be constructed either from a data block (a
+ * {@link Storage}) or from scratch; its content can be read or written to a
+ * {@link Storage}.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a href="http://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages">Messages</a>
+ */
+public class Command {
+ private static final int HEADER_SIZE =
+ Byte.SIZE/8 // length 0
+ + Integer.SIZE/8 // integer length
+ + Byte.SIZE/8; // command id
+
+ private final int id;
+ private final Storage content;
+
+
+ /**
+ * Builds a command from a {@link Storage} received from the other endpoint.
+ * <p>
+ * Note that this will advance the storage's internal pointer to the next
+ * data.
+ * @param rawStorage
+ */
+ public Command(Storage rawStorage) {
+ int contentLen = rawStorage.readUnsignedByte();
+ if (contentLen == 0)
+ contentLen = rawStorage.readInt() - 6;
+ else
+ contentLen = contentLen - 2;
+
+ id = rawStorage.readUnsignedByte();
+
+ short[] buf = new short[contentLen];
+ for (int i=0; i<contentLen; i++) {
+ buf[i] = (byte)rawStorage.readUnsignedByte();
+ }
+
+ content = new Storage(buf);
+ }
+
+ /**
+ * Creates a command with a given identifier and an empty content.
+ * @param id
+ */
+ public Command(int id) {
+ if (id > 255)
+ throw new IllegalArgumentException("id should fit in a byte");
+ content = new Storage();
+ this.id = id;
+ }
+
+ /**
+ * Returns the type identifier.
+ * @return the id
+ */
+ public int id() {
+ return id;
+ }
+
+ /**
+ * Returns the content.
+ * @return the content
+ */
+ public Storage content() {
+ return content;
+ }
+
+ /**
+ * Writes the serialized form of this command to the given {@link Storage}
+ * object.
+ * <p>
+ * Note: this will advance the internal pointer of the given storage.
+ * @param out
+ */
+ public void writeRawTo(Storage out) {
+ /*
+ * use only the long form (length 0 + length as integer)
+ */
+ out.writeByte(0);
+ out.writeInt(HEADER_SIZE + content.size());
+
+ out.writeUnsignedByte(id);
+
+ for (Byte b : content.getStorageList()) {
+ out.writeByte(b);
+ }
+ }
+
+ /**
+ * Returns the expected size of the serialized form of this command.
+ */
+ public int rawSize() {
+ return HEADER_SIZE + content.size();
+ }
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Constants.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Constants.java
index d13acec..525d5a3 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Constants.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Constants.java
@@ -57,17 +57,30 @@ public class Constants {
/** response: subscribe induction loop (e1) variable */
public static final int RESPONSE_SUBSCRIBE_INDUCTIONLOOP_VARIABLE = 0xe0;
- /** command: subscribe areal detector (e3) context */
+ /** command: subscribe lane area detector (e2) context */
+ public static final int CMD_SUBSCRIBE_LANE_AREA_DETECTOR_CONTEXT = 0x8d;
+ /** response: subscribe lane area detector (e2) context */
+ public static final int RESPONSE_SUBSCRIBE_LANE_AREA_DETECTOR_CONTEXT = 0x9d;
+ /** command: get lane area detector (e2) variable */
+ public static final int CMD_GET_LANE_AREA_DETECTOR_VARIABLE = 0xad;
+ /** response: get lane area detector (e2) variable */
+ public static final int RESPONSE_GET_LANE_AREA_DETECTOR_VARIABLE = 0xbd;
+ /** command: subscribe lane area detector (e2) variable */
+ public static final int CMD_SUBSCRIBE_LANE_AREA_DETECTOR_VARIABLE = 0xdd;
+ /** response: subscribe lane area detector (e2) variable */
+ public static final int RESPONSE_SUBSCRIBE_LANE_AREA_DETECTOR_VARIABLE = 0xed;
+
+ /** command: subscribe multi-entry/multi-exit detector (e3) context */
public static final int CMD_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_CONTEXT = 0x81;
- /** response: subscribe areal detector (e3) context */
+ /** response: subscribe multi-entry/multi-exit detector (e3) context */
public static final int RESPONSE_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_CONTEXT = 0x91;
/** command: get multi-entry/multi-exit detector (e3) variable */
public static final int CMD_GET_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE = 0xa1;
- /** response: get areal detector (e3) variable */
+ /** response: get multi-entry/multi-exit detector (e3) variable */
public static final int RESPONSE_GET_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE = 0xb1;
/** command: subscribe multi-entry/multi-exit detector (e3) variable */
public static final int CMD_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE = 0xd1;
- /** response: subscribe areal detector (e3) variable */
+ /** response: subscribe multi-entry/multi-exit detector (e3) variable */
public static final int RESPONSE_SUBSCRIBE_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE = 0xe1;
/** command: subscribe traffic lights context */
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Polygon.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Polygon.java
index 1ef4e2b..60969fb 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Polygon.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/Polygon.java
@@ -1,77 +1,79 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import it.polito.appeal.traci.TraCIException;
-
-import java.awt.geom.Path2D;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Representation of a polygon in the SUMO environment.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Shapes.html">SUMO documentation</a>
- */
-public class Polygon implements WriteableToStorage {
-
- private final Path2D shape;
-
- /**
- * De-serializes a polygon from a {@link Storage}.
- * @param packet
- * @param verifyType
- * @throws TraCIException
- */
- public Polygon(Storage packet, boolean verifyType) throws TraCIException {
- super();
- if (verifyType) {
- if (packet.readUnsignedByte() != Constants.TYPE_POLYGON)
- throw new TraCIException("polygon expected");
- }
-
- shape = new Path2D.Double();
-
- int count = packet.readUnsignedByte();
- for (int i=0; i<count; i++) {
- double x = packet.readDouble();
- double y = packet.readDouble();
- if (i==0)
- shape.moveTo(x, y);
- else
- shape.lineTo(x, y);
-
- }
- }
-
- /**
- *
- * @return the shape that describes this polygon
- */
- public Path2D getShape() {
- return shape;
- }
-
- @Override
- public void writeTo(Storage storage, boolean withTypeID) {
- throw new UnsupportedOperationException("to be done");
- }
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package it.polito.appeal.traci.protocol;
+
+import it.polito.appeal.traci.TraCIException;
+
+import java.awt.geom.Path2D;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Representation of a polygon in the SUMO environment.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a
+ * href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Shapes.html">SUMO
+ * documentation</a>
+ */
+public class Polygon implements WriteableToStorage {
+
+ private final Path2D shape;
+
+ /**
+ * De-serializes a polygon from a {@link Storage}.
+ *
+ * @param packet
+ * @param verifyType
+ * @throws TraCIException
+ */
+ public Polygon(Storage packet, boolean verifyType) throws TraCIException {
+ super();
+ if (verifyType) {
+ if (packet.readUnsignedByte() != Constants.TYPE_POLYGON)
+ throw new TraCIException("polygon expected");
+ }
+
+ shape = new Path2D.Double();
+
+ int count = packet.readUnsignedByte();
+ for (int i = 0; i < count; i++) {
+ double x = packet.readDouble();
+ double y = packet.readDouble();
+ if (i == 0)
+ shape.moveTo(x, y);
+ else
+ shape.lineTo(x, y);
+
+ }
+ }
+
+ /**
+ *
+ * @return the shape that describes this polygon
+ */
+ public Path2D getShape() {
+ return shape;
+ }
+
+ public void writeTo(Storage storage, boolean withTypeID) {
+ throw new UnsupportedOperationException("to be done");
+ }
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RequestMessage.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RequestMessage.java
index 53281d6..ac17f1e 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RequestMessage.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RequestMessage.java
@@ -1,119 +1,122 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package it.polito.appeal.traci.protocol;
-
-import java.io.DataOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-//import java.util.zip.CRC32;
-import java.util.zip.CRC32;
-import java.util.zip.Checksum;
-
-import org.apache.log4j.Logger;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a TraCI messages used to send {@link Command}s from the client to
- * server (i.e. requests). After construction, the commands are appended one
- * after one with {@link #append(Command)}. The whole message, along with its
- * length header, can be then retrieved in a serialized form via the
- * {@link #writeTo(DataOutputStream)} method.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- * @see <a
- * href="https://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages">https://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages</a>
- */
-public class RequestMessage {
-
- private static final Logger log = Logger.getLogger(RequestMessage.class);
-
- private final List<Command> commands = new ArrayList<Command>();
-
- /**
- * Adds a command to the tail of this message.
- * @param c
- * @throws NullPointerException if the command is <code>null</code>.
- */
- public void append(Command c) {
- if (c == null)
- throw new NullPointerException("the command can't be null");
- commands.add(c);
- }
-
- /**
- * Writes the commands to the specified {@link DataOutputStream} object, in
- * the same order as the calls of {@link #append(Command)}.
- * @param dos
- * @throws IOException
- */
- public void writeTo(DataOutputStream dos) throws IOException {
- int totalLen = Integer.SIZE / 8; // the length header
-
- for (Command cmd : commands) {
- totalLen += cmd.rawSize();
- }
-
- Checksum checksum = null;
- if (log.isDebugEnabled()) {
- checksum = new CRC32();
- log.debug("sending a message " + totalLen + " bytes long");
-
- }
-
- dos.writeInt(totalLen);
-
-
- for (Command cmd : commands) {
- Storage s = new Storage();
- cmd.writeRawTo(s);
- writeStorage(s, dos, checksum);
- }
-
- if (log.isDebugEnabled())
- log.debug("message checksum (without len) = " + checksum.getValue());
- }
-
- private void writeStorage(Storage storage, OutputStream os, Checksum checksum)
- throws IOException {
-
- byte[] buf = new byte[storage.getStorageList().size()];
- int n = 0;
- for (Byte b : storage.getStorageList()) {
- if (checksum != null)
- checksum.update(b);
-
- buf[n] = b;
- n++;
- }
- os.write(buf);
- }
-
- /**
- *
- * @return the list of commands that will be sent
- */
- public List<Command> commands() {
- return Collections.unmodifiableList(commands);
- }
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package it.polito.appeal.traci.protocol;
+
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+//import java.util.zip.CRC32;
+import java.util.zip.CRC32;
+import java.util.zip.Checksum;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a TraCI messages used to send {@link Command}s from the client to
+ * server (i.e. requests). After construction, the commands are appended one
+ * after one with {@link #append(Command)}. The whole message, along with its
+ * length header, can be then retrieved in a serialized form via the
+ * {@link #writeTo(DataOutputStream)} method.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ * @see <a
+ * href="https://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages">https://sourceforge.net/apps/mediawiki/sumo/index.php?title=TraCI/Protocol#Messages</a>
+ */
+public class RequestMessage {
+
+ private static final Logger log = LogManager.getLogger();
+
+ private final List<Command> commands = new ArrayList<Command>();
+
+ /**
+ * Adds a command to the tail of this message.
+ *
+ * @param c
+ * @throws NullPointerException
+ * if the command is <code>null</code>.
+ */
+ public void append(Command c) {
+ if (c == null)
+ throw new NullPointerException("the command can't be null");
+ commands.add(c);
+ }
+
+ /**
+ * Writes the commands to the specified {@link DataOutputStream} object, in
+ * the same order as the calls of {@link #append(Command)}.
+ *
+ * @param dos
+ * @throws IOException
+ */
+ public void writeTo(DataOutputStream dos) throws IOException {
+ int totalLen = Integer.SIZE / 8; // the length header
+
+ for (Command cmd : commands) {
+ totalLen += cmd.rawSize();
+ }
+
+ Checksum checksum = null;
+ if (log.isDebugEnabled()) {
+ checksum = new CRC32();
+ log.debug("sending a message " + totalLen + " bytes long");
+
+ }
+
+ dos.writeInt(totalLen);
+
+ for (Command cmd : commands) {
+ Storage s = new Storage();
+ cmd.writeRawTo(s);
+ writeStorage(s, dos, checksum);
+ }
+
+ if (log.isDebugEnabled())
+ log.debug("message checksum (without len) = " + checksum.getValue());
+ }
+
+ private void writeStorage(Storage storage, OutputStream os,
+ Checksum checksum) throws IOException {
+
+ byte[] buf = new byte[storage.getStorageList().size()];
+ int n = 0;
+ for (Byte b : storage.getStorageList()) {
+ if (checksum != null)
+ checksum.update(b);
+
+ buf[n] = b;
+ n++;
+ }
+ os.write(buf);
+ }
+
+ /**
+ *
+ * @return the list of commands that will be sent
+ */
+ public List<Command> commands() {
+ return Collections.unmodifiableList(commands);
+ }
+}
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseContainer.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseContainer.java
index bf038e9..41a4c23 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseContainer.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseContainer.java
@@ -1,90 +1,90 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import java.util.List;
-
-/**
- * Represents all the information related to a given request. It contains a
- * mandatory status response, an optional response command and an optional list
- * of sub-responses.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ResponseContainer {
- private final StatusResponse status;
- private final Command response;
- private final List<Command> subResponses;
-
- /**
- * Constructor for a response container with status response, response
- * command and zero or more sub-responses.
- *
- * @param status
- * @param response
- * @param subResponses
- */
- public ResponseContainer(StatusResponse status, Command response,
- List<Command> subResponses) {
- this.status = status;
- this.response = response;
- this.subResponses = subResponses;
- }
-
- /**
- * Constructor for a response container with status response and a response
- * command.
- *
- * @param status
- * @param response
- */
- public ResponseContainer(StatusResponse status, Command response) {
- this(status, response, null);
- }
-
- /**
- * Returns the status response
- * @return the status
- */
- public StatusResponse getStatus() {
- return status;
- }
-
- /**
- * @return the response command. It may return <code>null</code> if there is
- * no response to such command (i.e. a command that changes
- * something in the simulation state or the close command)
- */
- public Command getResponse() {
- return response;
- }
-
- /**
- * @return the sub-responses of this response container. It may return
- * <code>null</code> if there are no sub-responses to such command
- * (i.e. commands different than CMD_SIMSTEP2)
- */
- public List<Command> getSubResponses() {
- return subResponses;
- }
-
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci.protocol;
+
+import java.util.List;
+
+/**
+ * Represents all the information related to a given request. It contains a
+ * mandatory status response, an optional response command and an optional list
+ * of sub-responses.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ResponseContainer {
+ private final StatusResponse status;
+ private final Command response;
+ private final List<Command> subResponses;
+
+ /**
+ * Constructor for a response container with status response, response
+ * command and zero or more sub-responses.
+ *
+ * @param status
+ * @param response
+ * @param subResponses
+ */
+ public ResponseContainer(StatusResponse status, Command response,
+ List<Command> subResponses) {
+ this.status = status;
+ this.response = response;
+ this.subResponses = subResponses;
+ }
+
+ /**
+ * Constructor for a response container with status response and a response
+ * command.
+ *
+ * @param status
+ * @param response
+ */
+ public ResponseContainer(StatusResponse status, Command response) {
+ this(status, response, null);
+ }
+
+ /**
+ * Returns the status response
+ * @return the status
+ */
+ public StatusResponse getStatus() {
+ return status;
+ }
+
+ /**
+ * @return the response command. It may return <code>null</code> if there is
+ * no response to such command (i.e. a command that changes
+ * something in the simulation state or the close command)
+ */
+ public Command getResponse() {
+ return response;
+ }
+
+ /**
+ * @return the sub-responses of this response container. It may return
+ * <code>null</code> if there are no sub-responses to such command
+ * (i.e. commands different than CMD_SIMSTEP2)
+ */
+ public List<Command> getSubResponses() {
+ return subResponses;
+ }
+
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseMessage.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseMessage.java
index ebfbac1..b739099 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseMessage.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/ResponseMessage.java
@@ -1,130 +1,130 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import java.io.DataInputStream;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Represents a message sent from the server. A response message is made of an
- * ordered collection of status responses, response commands and/or sub-responses.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class ResponseMessage {
-
- /**
- * The list of IDs of responses that have no response commands.
- */
- public static final int[] STATUS_ONLY_RESPONSES = new int[] {
- Constants.CMD_CLOSE,
- Constants.CMD_SET_LANE_VARIABLE,
- Constants.CMD_SET_TL_VARIABLE,
- Constants.CMD_SET_VEHICLE_VARIABLE,
- Constants.CMD_SET_POI_VARIABLE,
- Constants.CMD_SET_POLYGON_VARIABLE,
- Constants.CMD_SET_EDGE_VARIABLE,
- Constants.CMD_SET_GUI_VARIABLE,
- Constants.CMD_SET_ROUTE_VARIABLE,
- };
-
- private List<ResponseContainer> pairs = new ArrayList<ResponseContainer>();
-
- /**
- * Constructor that unpacks all the data from a {@link DataInputStream},
- * populating the list of {@link ResponseContainer}s.
- * <p>
- * A response message is made of individual packets. It is assumed that the
- * first packet is always a status response. According to the status
- * response, different data are expected next:
- * <ul>
- * <li>if the status response is not {@link Constants#RTYPE_OK}, another
- * status response or the end of the stream are expected.</li>
- * <li>if the status ID is equal to {@link Constants#CMD_SIMSTEP2}, it is
- * expected an integer representing N and N following sub-responses;</li>
- * <li>if the status ID matches one of the commands in
- * {@link #STATUS_ONLY_RESPONSES} , it is expected another status response;
- * <li>if the status ID doesn't match any of the above, it is expected a
- * response command.
- * </ul>
- * A new {@link ResponseMessage}, collecting all the data that belong to the
- * same request, is built and appended to an internal list.
- *
- * @param dis
- * @throws IOException
- */
- public ResponseMessage(DataInputStream dis) throws IOException {
- int totalLen = dis.readInt() - Integer.SIZE/8;
-
- byte[] buffer = new byte[totalLen];
- dis.readFully(buffer);
-
- Storage s = new Storage(buffer);
-
- while (s.validPos()) {
- StatusResponse sr = new StatusResponse(s);
- ResponseContainer responseContainer;
-
- if (sr.result() != Constants.RTYPE_OK) {
- responseContainer = new ResponseContainer(sr, null);
- }
- else if (sr.id() == Constants.CMD_SIMSTEP2) {
- int nSubResponses = s.readInt();
- List<Command> subResponses = new ArrayList<Command>(
- nSubResponses);
- for (int i = 0; i < nSubResponses; i++) {
- subResponses.add(new Command(s));
- }
-
- responseContainer = new ResponseContainer(sr, null, subResponses);
-
- }
- else if (isStatusOnlyResponse(sr.id())) {
- responseContainer = new ResponseContainer(sr, null);
- }
- else
- responseContainer = new ResponseContainer(sr, new Command(s));
-
- pairs.add(responseContainer);
- }
- }
-
- private boolean isStatusOnlyResponse(int statusResponseID) {
- for (int id : STATUS_ONLY_RESPONSES)
- if (id == statusResponseID)
- return true;
- return false;
- }
-
- /**
- *
- * @return the list of received responses
- */
- public List<ResponseContainer> responses() {
- return Collections.unmodifiableList(pairs);
- }
-
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci.protocol;
+
+import java.io.DataInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Represents a message sent from the server. A response message is made of an
+ * ordered collection of status responses, response commands and/or sub-responses.
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class ResponseMessage {
+
+ /**
+ * The list of IDs of responses that have no response commands.
+ */
+ public static final int[] STATUS_ONLY_RESPONSES = new int[] {
+ Constants.CMD_CLOSE,
+ Constants.CMD_SET_LANE_VARIABLE,
+ Constants.CMD_SET_TL_VARIABLE,
+ Constants.CMD_SET_VEHICLE_VARIABLE,
+ Constants.CMD_SET_POI_VARIABLE,
+ Constants.CMD_SET_POLYGON_VARIABLE,
+ Constants.CMD_SET_EDGE_VARIABLE,
+ Constants.CMD_SET_GUI_VARIABLE,
+ Constants.CMD_SET_ROUTE_VARIABLE,
+ };
+
+ private List<ResponseContainer> pairs = new ArrayList<ResponseContainer>();
+
+ /**
+ * Constructor that unpacks all the data from a {@link DataInputStream},
+ * populating the list of {@link ResponseContainer}s.
+ * <p>
+ * A response message is made of individual packets. It is assumed that the
+ * first packet is always a status response. According to the status
+ * response, different data are expected next:
+ * <ul>
+ * <li>if the status response is not {@link Constants#RTYPE_OK}, another
+ * status response or the end of the stream are expected.</li>
+ * <li>if the status ID is equal to {@link Constants#CMD_SIMSTEP2}, it is
+ * expected an integer representing N and N following sub-responses;</li>
+ * <li>if the status ID matches one of the commands in
+ * {@link #STATUS_ONLY_RESPONSES} , it is expected another status response;
+ * <li>if the status ID doesn't match any of the above, it is expected a
+ * response command.
+ * </ul>
+ * A new {@link ResponseMessage}, collecting all the data that belong to the
+ * same request, is built and appended to an internal list.
+ *
+ * @param dis
+ * @throws IOException
+ */
+ public ResponseMessage(DataInputStream dis) throws IOException {
+ int totalLen = dis.readInt() - Integer.SIZE/8;
+
+ byte[] buffer = new byte[totalLen];
+ dis.readFully(buffer);
+
+ Storage s = new Storage(buffer);
+
+ while (s.validPos()) {
+ StatusResponse sr = new StatusResponse(s);
+ ResponseContainer responseContainer;
+
+ if (sr.result() != Constants.RTYPE_OK) {
+ responseContainer = new ResponseContainer(sr, null);
+ }
+ else if (sr.id() == Constants.CMD_SIMSTEP2) {
+ int nSubResponses = s.readInt();
+ List<Command> subResponses = new ArrayList<Command>(
+ nSubResponses);
+ for (int i = 0; i < nSubResponses; i++) {
+ subResponses.add(new Command(s));
+ }
+
+ responseContainer = new ResponseContainer(sr, null, subResponses);
+
+ }
+ else if (isStatusOnlyResponse(sr.id())) {
+ responseContainer = new ResponseContainer(sr, null);
+ }
+ else
+ responseContainer = new ResponseContainer(sr, new Command(s));
+
+ pairs.add(responseContainer);
+ }
+ }
+
+ private boolean isStatusOnlyResponse(int statusResponseID) {
+ for (int id : STATUS_ONLY_RESPONSES)
+ if (id == statusResponseID)
+ return true;
+ return false;
+ }
+
+ /**
+ *
+ * @return the list of received responses
+ */
+ public List<ResponseContainer> responses() {
+ return Collections.unmodifiableList(pairs);
+ }
+
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RoadmapPosition.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RoadmapPosition.java
index 2860edb..93c55b3 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RoadmapPosition.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/RoadmapPosition.java
@@ -1,86 +1,86 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-/**
- * Representation of a position inside a road, identified by the edge ID, the
- * lane index and position in meters from the beginning of the road.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class RoadmapPosition {
- /** the ID of the edge. */
- public final String edgeID;
-
- /** the driving distance in meters from the edge's begin point */
- public final double pos;
-
- /** the lane index, starting from zero */
- public final int laneID;
-
- /**
- * Constructor from a given edge ID, distance from begin and lane index.
- *
- * @param edgeID
- * @param pos
- * @param laneID
- */
- public RoadmapPosition(String edgeID, double pos, int laneID) {
- this.edgeID = edgeID;
- this.pos = pos;
- this.laneID = laneID;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj == null)
- return false;
- if (obj == this)
- return true;
- if (!(obj instanceof RoadmapPosition))
- return false;
-
- RoadmapPosition that = (RoadmapPosition)obj;
- if (laneID != that.laneID)
- return false;
-
- if (Math.abs(pos - that.pos) > 1e-6)
- return false;
-
- if (!edgeID.equals(that.edgeID))
- return false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return edgeID.hashCode() ^ laneID ^ (new Double(pos)).hashCode();
- }
-
- @Override
- public String toString() {
- return edgeID + " lane " + laneID + " pos " + Math.round(pos*100)/100;
- }
-
-
-}
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci.protocol;
+
+/**
+ * Representation of a position inside a road, identified by the edge ID, the
+ * lane index and position in meters from the beginning of the road.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class RoadmapPosition {
+ /** the ID of the edge. */
+ public final String edgeID;
+
+ /** the driving distance in meters from the edge's begin point */
+ public final double pos;
+
+ /** the lane index, starting from zero */
+ public final int laneID;
+
+ /**
+ * Constructor from a given edge ID, distance from begin and lane index.
+ *
+ * @param edgeID
+ * @param pos
+ * @param laneID
+ */
+ public RoadmapPosition(String edgeID, double pos, int laneID) {
+ this.edgeID = edgeID;
+ this.pos = pos;
+ this.laneID = laneID;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null)
+ return false;
+ if (obj == this)
+ return true;
+ if (!(obj instanceof RoadmapPosition))
+ return false;
+
+ RoadmapPosition that = (RoadmapPosition)obj;
+ if (laneID != that.laneID)
+ return false;
+
+ if (Math.abs(pos - that.pos) > 1e-6)
+ return false;
+
+ if (!edgeID.equals(that.edgeID))
+ return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return edgeID.hashCode() ^ laneID ^ (new Double(pos)).hashCode();
+ }
+
+ @Override
+ public String toString() {
+ return edgeID + " lane " + laneID + " pos " + Math.round(pos*100)/100;
+ }
+
+
+}
+
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StatusResponse.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StatusResponse.java
index 48fc2ff..335b04b 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StatusResponse.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StatusResponse.java
@@ -1,108 +1,108 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import java.io.IOException;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Representation of a status response, that describes the outcome of a command.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class StatusResponse {
- private final int id;
- private final int result;
- private final String description;
-
- /**
- * Constructor for a successful outcome without a description.
- *
- * @param id
- */
- public StatusResponse(int id) {
- this(id, Constants.RTYPE_OK, "");
- }
-
- /**
- * Constructor for an outcome with a description.
- *
- * @param id
- * @param result
- * @param description
- */
- public StatusResponse(int id, int result, String description) {
- this.id = id;
- this.result = result;
- this.description = description;
- }
-
- /**
- * Constructor from de-serialization.
- *
- * @param packet
- * @throws IOException
- */
- public StatusResponse(Storage packet) throws IOException {
- int len = packet.readByte();
- if (len == 0)
- packet.readInt(); // length is ignored; we can derive it
-
- id = packet.readUnsignedByte();
- result = packet.readUnsignedByte();
- description = packet.readStringASCII();
- }
-
- /**
- *
- * @return the command ID that this response refers to
- */
- public int id() {
- return id;
- }
-
- /**
- * @return the outcome description
- */
- public int result() {
- return result;
- }
-
- /**
- * @return the description
- */
- public String description() {
- return description;
- }
-
- /**
- * Serializes this object to the given {@link Storage}.
- * @param out
- */
- public void writeTo(Storage out) {
- out.writeByte(0);
- out.writeInt(5+1+1+4+description.length());
- out.writeByte(id);
- out.writeByte(result);
- out.writeStringASCII(description);
- }
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci.protocol;
+
+import java.io.IOException;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Representation of a status response, that describes the outcome of a command.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class StatusResponse {
+ private final int id;
+ private final int result;
+ private final String description;
+
+ /**
+ * Constructor for a successful outcome without a description.
+ *
+ * @param id
+ */
+ public StatusResponse(int id) {
+ this(id, Constants.RTYPE_OK, "");
+ }
+
+ /**
+ * Constructor for an outcome with a description.
+ *
+ * @param id
+ * @param result
+ * @param description
+ */
+ public StatusResponse(int id, int result, String description) {
+ this.id = id;
+ this.result = result;
+ this.description = description;
+ }
+
+ /**
+ * Constructor from de-serialization.
+ *
+ * @param packet
+ * @throws IOException
+ */
+ public StatusResponse(Storage packet) throws IOException {
+ int len = packet.readByte();
+ if (len == 0)
+ packet.readInt(); // length is ignored; we can derive it
+
+ id = packet.readUnsignedByte();
+ result = packet.readUnsignedByte();
+ description = packet.readStringASCII();
+ }
+
+ /**
+ *
+ * @return the command ID that this response refers to
+ */
+ public int id() {
+ return id;
+ }
+
+ /**
+ * @return the outcome description
+ */
+ public int result() {
+ return result;
+ }
+
+ /**
+ * @return the description
+ */
+ public String description() {
+ return description;
+ }
+
+ /**
+ * Serializes this object to the given {@link Storage}.
+ * @param out
+ */
+ public void writeTo(Storage out) {
+ out.writeByte(0);
+ out.writeInt(5+1+1+4+description.length());
+ out.writeByte(id);
+ out.writeByte(result);
+ out.writeStringASCII(description);
+ }
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StringList.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StringList.java
index 24e6ff6..6903489 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StringList.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/StringList.java
@@ -1,312 +1,313 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import it.polito.appeal.traci.TraCIException;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Representation of a list of {@link String} can be serialized and de-serialized
- * to/from a {@link Storage}.
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public class StringList implements List<String>, WriteableToStorage {
- private final List<String> list;
-
- /**
- * Constructor with an empty list.
- */
- public StringList() {
- list = new ArrayList<String>();
- }
-
- /**
- * Constructor that uses an external list as reference.
- * @param list
- */
- public StringList(List<String> list) {
- this.list = list;
- }
-
- /**
- * Constructor that de-serializes contents from a {@link Storage}.
- *
- * @param storage
- * @param verifyType
- * @throws TraCIException
- */
- public StringList(Storage storage, boolean verifyType) throws TraCIException {
- if (verifyType) {
- if (storage.readByte() != Constants.TYPE_STRINGLIST)
- throw new TraCIException("string list expected");
- }
-
- int len = storage.readInt();
- list = new ArrayList<String>(len);
- for (int i=0; i<len; i++) {
- list.add(storage.readStringASCII());
- }
- }
-
- @Override
- public void writeTo(Storage out, boolean writeTypeID) {
- if (writeTypeID)
- out.writeByte(Constants.TYPE_STRINGLIST);
- out.writeInt(list.size());
- for (String str : list)
- out.writeStringASCII(str);
- }
-
- @Override
- public String toString() {
- return list.toString();
- }
-
- /**
- * @param index
- * @param element
- * @see java.util.List#add(int, java.lang.Object)
- */
- public void add(int index, String element) {
- list.add(index, element);
- }
-
- /**
- * @param e
-
- * @see java.util.List#add(java.lang.Object)
- */
- public boolean add(String e) {
- return list.add(e);
- }
-
- /**
- * @param c
-
- * @see java.util.List#addAll(java.util.Collection)
- */
- public boolean addAll(Collection<? extends String> c) {
- return list.addAll(c);
- }
-
- /**
- * @param index
- * @param c
-
- * @see java.util.List#addAll(int, java.util.Collection)
- */
- public boolean addAll(int index, Collection<? extends String> c) {
- return list.addAll(index, c);
- }
-
- /**
- *
- * @see java.util.List#clear()
- */
- public void clear() {
- list.clear();
- }
-
- /**
- * @param o
-
- * @see java.util.List#contains(java.lang.Object)
- */
- public boolean contains(Object o) {
- return list.contains(o);
- }
-
- /**
- * @param c
-
- * @see java.util.List#containsAll(java.util.Collection)
- */
- public boolean containsAll(Collection<?> c) {
- return list.containsAll(c);
- }
-
- /**
- * @param o
-
- * @see java.util.List#equals(java.lang.Object)
- */
- public boolean equals(Object o) {
- return list.equals(o);
- }
-
- /**
- * @param index
-
- * @see java.util.List#get(int)
- */
- public String get(int index) {
- return list.get(index);
- }
-
- /**
-
- * @see java.util.List#hashCode()
- */
- public int hashCode() {
- return list.hashCode();
- }
-
- /**
- * @param o
-
- * @see java.util.List#indexOf(java.lang.Object)
- */
- public int indexOf(Object o) {
- return list.indexOf(o);
- }
-
- /**
-
- * @see java.util.List#isEmpty()
- */
- public boolean isEmpty() {
- return list.isEmpty();
- }
-
- /**
-
- * @see java.util.List#iterator()
- */
- public Iterator<String> iterator() {
- return list.iterator();
- }
-
- /**
- * @param o
-
- * @see java.util.List#lastIndexOf(java.lang.Object)
- */
- public int lastIndexOf(Object o) {
- return list.lastIndexOf(o);
- }
-
- /**
-
- * @see java.util.List#listIterator()
- */
- public ListIterator<String> listIterator() {
- return list.listIterator();
- }
-
- /**
- * @param index
-
- * @see java.util.List#listIterator(int)
- */
- public ListIterator<String> listIterator(int index) {
- return list.listIterator(index);
- }
-
- /**
- * @param index
-
- * @see java.util.List#remove(int)
- */
- public String remove(int index) {
- return list.remove(index);
- }
-
- /**
- * @param o
-
- * @see java.util.List#remove(java.lang.Object)
- */
- public boolean remove(Object o) {
- return list.remove(o);
- }
-
- /**
- * @param c
-
- * @see java.util.List#removeAll(java.util.Collection)
- */
- public boolean removeAll(Collection<?> c) {
- return list.removeAll(c);
- }
-
- /**
- * @param c
-
- * @see java.util.List#retainAll(java.util.Collection)
- */
- public boolean retainAll(Collection<?> c) {
- return list.retainAll(c);
- }
-
- /**
- * @param index
- * @param element
-
- * @see java.util.List#set(int, java.lang.Object)
- */
- public String set(int index, String element) {
- return list.set(index, element);
- }
-
- /**
-
- * @see java.util.List#size()
- */
- public int size() {
- return list.size();
- }
-
- /**
- * @param fromIndex
- * @param toIndex
-
- * @see java.util.List#subList(int, int)
- */
- public List<String> subList(int fromIndex, int toIndex) {
- return list.subList(fromIndex, toIndex);
- }
-
- /**
-
- * @see java.util.List#toArray()
- */
- public Object[] toArray() {
- return list.toArray();
- }
-
- /**
- * @param <T>
- * @param a
- * @see java.util.List#toArray(Object[])
- */
- public <T> T[] toArray(T[] a) {
- return list.toArray(a);
- }
-
-
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package it.polito.appeal.traci.protocol;
+
+import it.polito.appeal.traci.TraCIException;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Representation of a list of {@link String} can be serialized and
+ * de-serialized to/from a {@link Storage}.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public class StringList implements List<String>, WriteableToStorage {
+ private final List<String> list;
+
+ /**
+ * Constructor with an empty list.
+ */
+ public StringList() {
+ list = new ArrayList<String>();
+ }
+
+ /**
+ * Constructor that uses an external list as reference.
+ *
+ * @param list
+ */
+ public StringList(List<String> list) {
+ this.list = list;
+ }
+
+ /**
+ * Constructor that de-serializes contents from a {@link Storage}.
+ *
+ * @param storage
+ * @param verifyType
+ * @throws TraCIException
+ */
+ public StringList(Storage storage, boolean verifyType)
+ throws TraCIException {
+ if (verifyType) {
+ if (storage.readByte() != Constants.TYPE_STRINGLIST)
+ throw new TraCIException("string list expected");
+ }
+
+ int len = storage.readInt();
+ list = new ArrayList<String>(len);
+ for (int i = 0; i < len; i++) {
+ list.add(storage.readStringASCII());
+ }
+ }
+
+ public void writeTo(Storage out, boolean writeTypeID) {
+ if (writeTypeID)
+ out.writeByte(Constants.TYPE_STRINGLIST);
+ out.writeInt(list.size());
+ for (String str : list)
+ out.writeStringASCII(str);
+ }
+
+ @Override
+ public String toString() {
+ return list.toString();
+ }
+
+ /**
+ * @param index
+ * @param element
+ * @see java.util.List#add(int, java.lang.Object)
+ */
+ public void add(int index, String element) {
+ list.add(index, element);
+ }
+
+ /**
+ * @param e
+ *
+ * @see java.util.List#add(java.lang.Object)
+ */
+ public boolean add(String e) {
+ return list.add(e);
+ }
+
+ /**
+ * @param c
+ *
+ * @see java.util.List#addAll(java.util.Collection)
+ */
+ public boolean addAll(Collection<? extends String> c) {
+ return list.addAll(c);
+ }
+
+ /**
+ * @param index
+ * @param c
+ *
+ * @see java.util.List#addAll(int, java.util.Collection)
+ */
+ public boolean addAll(int index, Collection<? extends String> c) {
+ return list.addAll(index, c);
+ }
+
+ /**
+ *
+ * @see java.util.List#clear()
+ */
+ public void clear() {
+ list.clear();
+ }
+
+ /**
+ * @param o
+ *
+ * @see java.util.List#contains(java.lang.Object)
+ */
+ public boolean contains(Object o) {
+ return list.contains(o);
+ }
+
+ /**
+ * @param c
+ *
+ * @see java.util.List#containsAll(java.util.Collection)
+ */
+ public boolean containsAll(Collection<?> c) {
+ return list.containsAll(c);
+ }
+
+ /**
+ * @param o
+ *
+ * @see java.util.List#equals(java.lang.Object)
+ */
+ public boolean equals(Object o) {
+ return list.equals(o);
+ }
+
+ /**
+ * @param index
+ *
+ * @see java.util.List#get(int)
+ */
+ public String get(int index) {
+ return list.get(index);
+ }
+
+ /**
+ *
+ * @see java.util.List#hashCode()
+ */
+ public int hashCode() {
+ return list.hashCode();
+ }
+
+ /**
+ * @param o
+ *
+ * @see java.util.List#indexOf(java.lang.Object)
+ */
+ public int indexOf(Object o) {
+ return list.indexOf(o);
+ }
+
+ /**
+ *
+ * @see java.util.List#isEmpty()
+ */
+ public boolean isEmpty() {
+ return list.isEmpty();
+ }
+
+ /**
+ *
+ * @see java.util.List#iterator()
+ */
+ public Iterator<String> iterator() {
+ return list.iterator();
+ }
+
+ /**
+ * @param o
+ *
+ * @see java.util.List#lastIndexOf(java.lang.Object)
+ */
+ public int lastIndexOf(Object o) {
+ return list.lastIndexOf(o);
+ }
+
+ /**
+ *
+ * @see java.util.List#listIterator()
+ */
+ public ListIterator<String> listIterator() {
+ return list.listIterator();
+ }
+
+ /**
+ * @param index
+ *
+ * @see java.util.List#listIterator(int)
+ */
+ public ListIterator<String> listIterator(int index) {
+ return list.listIterator(index);
+ }
+
+ /**
+ * @param index
+ *
+ * @see java.util.List#remove(int)
+ */
+ public String remove(int index) {
+ return list.remove(index);
+ }
+
+ /**
+ * @param o
+ *
+ * @see java.util.List#remove(java.lang.Object)
+ */
+ public boolean remove(Object o) {
+ return list.remove(o);
+ }
+
+ /**
+ * @param c
+ *
+ * @see java.util.List#removeAll(java.util.Collection)
+ */
+ public boolean removeAll(Collection<?> c) {
+ return list.removeAll(c);
+ }
+
+ /**
+ * @param c
+ *
+ * @see java.util.List#retainAll(java.util.Collection)
+ */
+ public boolean retainAll(Collection<?> c) {
+ return list.retainAll(c);
+ }
+
+ /**
+ * @param index
+ * @param element
+ *
+ * @see java.util.List#set(int, java.lang.Object)
+ */
+ public String set(int index, String element) {
+ return list.set(index, element);
+ }
+
+ /**
+ *
+ * @see java.util.List#size()
+ */
+ public int size() {
+ return list.size();
+ }
+
+ /**
+ * @param fromIndex
+ * @param toIndex
+ *
+ * @see java.util.List#subList(int, int)
+ */
+ public List<String> subList(int fromIndex, int toIndex) {
+ return list.subList(fromIndex, toIndex);
+ }
+
+ /**
+ *
+ * @see java.util.List#toArray()
+ */
+ public Object[] toArray() {
+ return list.toArray();
+ }
+
+ /**
+ * @param <T>
+ * @param a
+ * @see java.util.List#toArray(Object[])
+ */
+ public <T> T[] toArray(T[] a) {
+ return list.toArray(a);
+ }
+
+}
diff --git a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/WriteableToStorage.java b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/WriteableToStorage.java
index 3ffa20c..e3f58d5 100644
--- a/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/WriteableToStorage.java
+++ b/tools/contributed/traci4j/src/java/it/polito/appeal/traci/protocol/WriteableToStorage.java
@@ -1,39 +1,39 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-package it.polito.appeal.traci.protocol;
-
-import de.uniluebeck.itm.tcpip.Storage;
-
-/**
- * Classes that implement this interface can be serialized to a {@link Storage}.
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
- */
-public interface WriteableToStorage {
-
- /**
- * Serializes the contents at the end of the specified Storage.
- *
- * @param storage the Storage where to put contents to
- * @param withTypeID if <code>true</code>, prepend data with the SUMO type ID
- */
- void writeTo(Storage storage, boolean withTypeID);
-}
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+package it.polito.appeal.traci.protocol;
+
+import de.uniluebeck.itm.tcpip.Storage;
+
+/**
+ * Classes that implement this interface can be serialized to a {@link Storage}.
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
+ */
+public interface WriteableToStorage {
+
+ /**
+ * Serializes the contents at the end of the specified Storage.
+ *
+ * @param storage the Storage where to put contents to
+ * @param withTypeID if <code>true</code>, prepend data with the SUMO type ID
+ */
+ void writeTo(Storage storage, boolean withTypeID);
+}
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/Edge.xml b/tools/contributed/traci4j/src/xml/traciObjects/Edge.xml
index 766f0f0..9eed38f 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/Edge.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/Edge.xml
@@ -14,20 +14,23 @@
<javadoc>
Representation of an edge in the SUMO environment. It contains one or more lanes.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Networks/SUMO_Road_Networks.html#Edges_and_Lanes">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Networks/SUMO_Road_Networks#Edges_and_Lanes">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Edge_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
<repos>
</repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_EDGE_VARIABLE</command>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_EDGE_VARIABLE
+ </command>
<readQueries>
<readQuery>
<name>ReadGlobalTravelTime</name>
<enum>TRAVEL_TIME</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_EDGE_TRAVELTIME</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_EDGE_TRAVELTIME
+ </const>
<query>ReadGlobalTravelTimeQuery</query>
<returnType></returnType>
<dynamic>false</dynamic>
@@ -35,60 +38,66 @@
<readQuery>
<name>ReadCO2Emission</name>
<enum>CO2_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_CO2EMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_CO2EMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadCOEmission</name>
<enum>CO_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_COEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_COEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadHCEmission</name>
<enum>HC_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_HCEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_HCEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadPMXEmission</name>
<enum>PMX_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_PMXEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_PMXEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadNOXEmission</name>
<enum>NOX_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_NOXEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_NOXEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadFuelConsumption</name>
<enum>FUEL_CONSUMPTION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_FUELCONSUMPTION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_FUELCONSUMPTION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadNoiseEmission</name>
<enum>NOISE_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_NOISEEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_NOISEEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
-
+ </readQuery>
</readQueries>
<changeStateQueries>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml b/tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml
index ef80f3e..1150a31 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml
@@ -14,14 +14,18 @@
<javadoc>
Representation of an induction loop in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Output/Induction_Loops_Detectors_(E1).html">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Simulation/Output/Induction_Loops_Detectors_(E1)">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Induction_Loop_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
<repos>
- <repo>Lane</repo><repo>Vehicle</repo></repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_INDUCTIONLOOP_VARIABLE</command>
+ <repo>Lane</repo>
+ <repo>Vehicle</repo>
+ </repos>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_INDUCTIONLOOP_VARIABLE
+ </command>
<readQueries>
<readQuery>
@@ -32,35 +36,42 @@
<returnType>Lane</returnType>
<dynamic>false</dynamic>
</readQuery>
- <readQuery>
+ <readQuery>
<name>ReadPositionInLane</name>
<enum>POSITION</enum>
<const>it.polito.appeal.traci.protocol.Constants.VAR_POSITION</const>
- <query>ReadObjectVarQuery.PositionQ</query>
- <returnType>java.awt.geom.Point2D</returnType>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
<dynamic>false</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
<name>ReadLastStepVehicleNumber</name>
<enum>VEHICLE_NUMBER</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER</const>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER
+ </const>
<query>ReadObjectVarQuery.IntegerQ</query>
<returnType>Integer</returnType>
<dynamic>true</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
<name>ReadLastStepMeanSpeed</name>
<enum>MEAN_SPEED</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_MEAN_SPEED</const>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_MEAN_SPEED
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>Double</returnType>
<dynamic>true</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
<name>ReadLastStepVehicles</name>
<enum>LAST_STEP_VEHICLES</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_ID_LIST</const>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_ID_LIST
+ </const>
<query>VehicleSetQuery</query>
<returnType>java.util.Set<Vehicle></returnType>
<dynamic>true</dynamic>
- </readQuery></readQueries>
+ </readQuery>
+ </readQueries>
<changeStateQueries>
</changeStateQueries>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml b/tools/contributed/traci4j/src/xml/traciObjects/LaArDetector.xml
similarity index 63%
copy from tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml
copy to tools/contributed/traci4j/src/xml/traciObjects/LaArDetector.xml
index ef80f3e..5fd9f46 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/InductionLoop.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/LaArDetector.xml
@@ -1,67 +1,86 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino This file is
- part of TraCI4J. TraCI4J is free software: you can redistribute it and/or
- modify it under the terms of the GNU General Public License as published
- by the Free Software Foundation, either version 3 of the License, or (at
- your option) any later version. TraCI4J 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 General
- Public License for more details. You should have received a copy of the GNU
- General Public License along with TraCI4J. If not, see <http://www.gnu.org/licenses/>. -->
-
-<traciClass>
- <name>InductionLoop</name>
-
- <javadoc>
- Representation of an induction loop in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Output/Induction_Loops_Detectors_(E1).html">SUMO documentation</a>
- @author Enrico Gueli <enrico.gueli at polito.it>
- </javadoc>
-
- <repos>
- <repo>Lane</repo><repo>Vehicle</repo></repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_INDUCTIONLOOP_VARIABLE</command>
-
- <readQueries>
- <readQuery>
- <name>ReadLane</name>
- <enum>LANE</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_LANE_ID</const>
- <query>ReadObjectVarQuery.LaneQ</query>
- <returnType>Lane</returnType>
- <dynamic>false</dynamic>
- </readQuery>
- <readQuery>
- <name>ReadPositionInLane</name>
- <enum>POSITION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_POSITION</const>
- <query>ReadObjectVarQuery.PositionQ</query>
- <returnType>java.awt.geom.Point2D</returnType>
- <dynamic>false</dynamic>
- </readQuery><readQuery>
- <name>ReadLastStepVehicleNumber</name>
- <enum>VEHICLE_NUMBER</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER</const>
- <query>ReadObjectVarQuery.IntegerQ</query>
- <returnType>Integer</returnType>
- <dynamic>true</dynamic>
- </readQuery><readQuery>
- <name>ReadLastStepMeanSpeed</name>
- <enum>MEAN_SPEED</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_MEAN_SPEED</const>
- <query>ReadObjectVarQuery.DoubleQ</query>
- <returnType>Double</returnType>
- <dynamic>true</dynamic>
- </readQuery><readQuery>
- <name>ReadLastStepVehicles</name>
- <enum>LAST_STEP_VEHICLES</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_ID_LIST</const>
- <query>VehicleSetQuery</query>
- <returnType>java.util.Set<Vehicle></returnType>
- <dynamic>true</dynamic>
- </readQuery></readQueries>
-
- <changeStateQueries>
- </changeStateQueries>
-</traciClass>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino This file is
+ part of TraCI4J. TraCI4J is free software: you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or (at
+ your option) any later version. TraCI4J 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 General
+ Public License for more details. You should have received a copy of the GNU
+ General Public License along with TraCI4J. If not, see <http://www.gnu.org/licenses/>. -->
+
+<traciClass>
+ <name>LaArDetector</name>
+
+ <javadoc>
+ Representation of a Lane Area detector (E2) in the SUMO environment.
+ @see <a href="http://sumo.dlr.de/wiki/Simulation/Output/Lanearea_Detectors_(E2)">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Lane_Area_Detector_Value_Retrieval">TraCI documentation</a>
+ @author Christian Zyweck <zyweckch at informatik.hu-berlin.de>
+ </javadoc>
+
+ <repos>
+ <repo>Lane</repo>
+ <repo>Vehicle</repo>
+ </repos>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_LANE_AREA_DETECTOR_VARIABLE
+ </command>
+
+ <readQueries>
+ <readQuery>
+ <name>ReadLane</name>
+ <enum>LANE</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_LANE_ID</const>
+ <query>ReadObjectVarQuery.LaneQ</query>
+ <returnType>Lane</returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadLastStepVehicleNumber</name>
+ <enum>VEHICLE_NUMBER</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER
+ </const>
+ <query>ReadObjectVarQuery.IntegerQ</query>
+ <returnType>Integer</returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadLastStepMeanSpeed</name>
+ <enum>MEAN_SPEED</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_MEAN_SPEED
+ </const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadLastStepVehicles</name>
+ <enum>VEHICLES</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_ID_LIST
+ </const>
+ <query>VehicleSetQuery</query>
+ <returnType>java.util.Set<Vehicle></returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadPositionInLane</name>
+ <enum>POSITION</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_POSITION</const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadLengthInLane</name>
+ <enum>LENGTH</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_LENGTH</const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ </readQueries>
+
+ <changeStateQueries>
+ </changeStateQueries>
+</traciClass>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/Lane.xml b/tools/contributed/traci4j/src/xml/traciObjects/Lane.xml
index 0246626..d2ed485 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/Lane.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/Lane.xml
@@ -14,14 +14,18 @@
<javadoc>
Representation of a lane in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Networks/SUMO_Road_Networks.html#Edges_and_Lanes">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Networks/SUMO_Road_Networks#Edges_and_Lanes">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Lane_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
<repos>
- <repo>Edge</repo><repo>Lane</repo></repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_LANE_VARIABLE</command>
+ <repo>Edge</repo>
+ <repo>Lane</repo>
+ </repos>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_LANE_VARIABLE
+ </command>
<readQueries>
<readQuery>
@@ -31,106 +35,128 @@
<query>ReadShapeQuery</query>
<returnType>java.awt.geom.Path2D</returnType>
<dynamic>false</dynamic>
- </readQuery><readQuery>
- <name>ReadLength</name>
- <enum>LENGTH</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_LENGTH</const>
- <query>ReadObjectVarQuery.DoubleQ</query>
- <returnType>Double</returnType>
- <dynamic>false</dynamic>
- </readQuery><readQuery>
- <name>ReadLastStepOccupancy</name>
- <enum>LAST_STEP_OCCUPANCY</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_OCCUPANCY</const>
- <query>ReadObjectVarQuery.DoubleQ</query>
- <returnType>Double</returnType>
- <dynamic>true</dynamic>
- </readQuery><readQuery>
- <name>ReadMaxSpeed</name>
- <enum>MAX_SPEED</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_MAXSPEED</const>
- <query>ReadObjectVarQuery.DoubleQ</query>
- <returnType>Double</returnType>
- <dynamic>false</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
+ <name>ReadLength</name>
+ <enum>LENGTH</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_LENGTH</const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadWidth</name>
+ <enum>WIDTH</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_WIDTH</const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadLastStepOccupancy</name>
+ <enum>LAST_STEP_OCCUPANCY</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_OCCUPANCY
+ </const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadMaxSpeed</name>
+ <enum>MAX_SPEED</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_MAXSPEED</const>
+ <query>ReadObjectVarQuery.DoubleQ</query>
+ <returnType>Double</returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
<name>ReadParentEdge</name>
<enum>PARENT_EDGE</enum>
<const>it.polito.appeal.traci.protocol.Constants.LANE_EDGE_ID</const>
<query>ReadObjectVarQuery.EdgeQ</query>
<returnType>Edge</returnType>
<dynamic>false</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
<name>ReadLinks</name>
<enum>LINKS</enum>
<const>it.polito.appeal.traci.protocol.Constants.LANE_LINKS</const>
<query>ReadLinksQuery</query>
<returnType>java.util.List<Link></returnType>
<dynamic>false</dynamic>
- </readQuery><readQuery>
- <name>ReadLastStepVehicleNumber</name>
- <enum>LAST_STEP_VEHICLE_NUMBER</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER</const>
- <query>ReadObjectVarQuery.IntegerQ</query>
- <returnType>Integer</returnType>
- <dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
+ <readQuery>
+ <name>ReadLastStepVehicleNumber</name>
+ <enum>LAST_STEP_VEHICLE_NUMBER</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER
+ </const>
+ <query>ReadObjectVarQuery.IntegerQ</query>
+ <returnType>Integer</returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
<readQuery>
<name>ReadCO2Emission</name>
<enum>CO2_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_CO2EMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_CO2EMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadCOEmission</name>
<enum>CO_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_COEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_COEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadHCEmission</name>
<enum>HC_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_HCEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_HCEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadPMXEmission</name>
<enum>PMX_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_PMXEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_PMXEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadNOXEmission</name>
<enum>NOX_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_NOXEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_NOXEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadFuelConsumption</name>
<enum>FUEL_CONSUMPTION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_FUELCONSUMPTION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_FUELCONSUMPTION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadNoiseEmission</name>
<enum>NOISE_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_NOISEEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_NOISEEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
-
+ </readQuery>
</readQueries>
<changeStateQueries>
</changeStateQueries>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/MeMeDetector.xml b/tools/contributed/traci4j/src/xml/traciObjects/MeMeDetector.xml
index ce82267..e7e0885 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/MeMeDetector.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/MeMeDetector.xml
@@ -14,38 +14,47 @@
<javadoc>
Representation of a Multi-Entry Multi-Exit detector (E3) in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Output/Multi-Entry_Multi-Exit_Detectors_(E3).html">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Simulation/Output/Multi-Entry_Multi-Exit_Detectors_(E3)">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Multi-Entry/Multi-Exit_Detectors_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
<repos>
- <repo>Vehicle</repo></repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE</command>
+ <repo>Vehicle</repo>
+ </repos>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_MULTI_ENTRY_EXIT_DETECTOR_VARIABLE
+ </command>
<readQueries>
<readQuery>
<name>ReadLastStepVehicleNumber</name>
<enum>VEHICLE_NUMBER</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER</const>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_NUMBER
+ </const>
<query>ReadObjectVarQuery.IntegerQ</query>
<returnType>Integer</returnType>
<dynamic>true</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
<name>ReadLastStepMeanSpeed</name>
<enum>MEAN_SPEED</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_MEAN_SPEED</const>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_MEAN_SPEED
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>Double</returnType>
<dynamic>true</dynamic>
- </readQuery><readQuery>
+ </readQuery>
+ <readQuery>
<name>ReadLastStepVehicles</name>
<enum>VEHICLES</enum>
- <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_ID_LIST</const>
+ <const>it.polito.appeal.traci.protocol.Constants.LAST_STEP_VEHICLE_ID_LIST
+ </const>
<query>VehicleSetQuery</query>
<returnType>java.util.Set<Vehicle></returnType>
<dynamic>true</dynamic>
- </readQuery></readQueries>
+ </readQuery>
+ </readQueries>
<changeStateQueries>
</changeStateQueries>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/POI.xml b/tools/contributed/traci4j/src/xml/traciObjects/POI.xml
index 2d6a50a..3303395 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/POI.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/POI.xml
@@ -9,53 +9,33 @@
Public License for more details. You should have received a copy of the GNU
General Public License along with TraCI4J. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- This file is used to generate a Java class with the same name for a
- TraCI object. This saves manually writing a lot of boilerplate code. -->
<traciClass>
<name>POI</name>
- <!-- The javadoc of the class that will be generated. -->
<javadoc>
Represents a POI (Point-of-Interest) in the SUMO environment.
+ @see <a href="http://sumo.dlr.de/wiki/Simulation/Shapes#POI_.28Point_of_interest.29_Definitions">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/POI_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
<repos>
</repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_POI_VARIABLE</command>
- <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_POI_VARIABLE</changeStateCommand>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_POI_VARIABLE
+ </command>
+ <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_POI_VARIABLE
+ </changeStateCommand>
<readQueries>
<readQuery>
-
- <!-- The name of the query. If the name is XXX, the Java class will contain
- a method named queryXXX() -->
<name>ReadType</name>
-
- <!-- The enum name of the query. It will appear as an enum entry
- in the inner Variable enum, and can be used with the getReadQuery() method -->
<enum>TYPE</enum>
-
- <!-- A numeric value or a constant of type int that tells the variable
- ID -->
<const>it.polito.appeal.traci.protocol.Constants.VAR_TYPE</const>
-
- <!-- The Java class name that can make the query. It must be a subclass
- of ReadObjectVarQuery. If the class is on the package
- it.polito.appeal.traci, the package name can be omitted-->
<query>ReadObjectVarQuery.StringQ</query>
-
- <!-- The return type of the query. It must be the same type (or a supertype)
- of the type parameter V specified in the above class.
- Leave it empty to use the query class as the return type. -->
<returnType>java.lang.String</returnType>
-
- <!-- If true, it means that this value may change at every simulation
- step. -->
<dynamic>false</dynamic>
</readQuery>
-
<readQuery>
<name>ReadColor</name>
<enum>COLOR</enum>
@@ -64,7 +44,6 @@
<returnType>java.awt.Color</returnType>
<dynamic>false</dynamic>
</readQuery>
-
<readQuery>
<name>ReadPosition</name>
<enum>POSITION</enum>
@@ -75,24 +54,15 @@
</readQuery>
</readQueries>
- <!-- List of all "change state" queries, i.e. those that change the state
- of the object and don't return a value -->
<changeStateQueries>
-
- <!-- The syntax of a changeStateQuery is similar to readQuery, differences
- are listed below. -->
<changeStateQuery>
<name>ChangeColor</name>
<query>ChangeColorQuery</query>
<const>it.polito.appeal.traci.protocol.Constants.VAR_COLOR</const>
- <!-- Lists the read queries that may be changed by the execution of this
- query, identified by their name. Calling this query will clear the caches
- of the queries contained here. -->
<affects>
<affect>ReadColor</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeType</name>
<query>ChangeObjectVarQuery.ChangeStringQ</query>
@@ -101,7 +71,6 @@
<affect>ReadType</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangePosition</name>
<query>ChangePositionQuery</query>
@@ -109,7 +78,5 @@
<affect>ReadPosition</affect>
</affects>
</changeStateQuery>
-
</changeStateQueries>
-
</traciClass>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/Route.xml b/tools/contributed/traci4j/src/xml/traciObjects/Route.xml
index b25d8cb..e7be15c 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/Route.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/Route.xml
@@ -14,7 +14,8 @@
<javadoc>
Representation of a route in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Definition_of_Vehicles,_Vehicle_Types,_and_Routes.html#Vehicle_Types">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Definition_of_Vehicles,_Vehicle_Types,_and_Routes#Vehicle_Types">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Route_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
@@ -29,7 +30,7 @@
<enum>ROUTE</enum>
<const>it.polito.appeal.traci.protocol.Constants.VAR_EDGES</const>
<query>RouteQuery</query>
- <returnType></returnType>
+ <returnType>java.util.List<Edge></returnType>
<dynamic>false</dynamic>
</readQuery>
</readQueries>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/TrafficLight.xml b/tools/contributed/traci4j/src/xml/traciObjects/TrafficLight.xml
index 5b2b8c7..e69d3bb 100755
--- a/tools/contributed/traci4j/src/xml/traciObjects/TrafficLight.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/TrafficLight.xml
@@ -1,138 +1,133 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino This file is
- part of TraCI4J. TraCI4J is free software: you can redistribute it and/or
- modify it under the terms of the GNU General Public License as published
- by the Free Software Foundation, either version 3 of the License, or (at
- your option) any later version. TraCI4J 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 General
- Public License for more details. You should have received a copy of the GNU
- General Public License along with TraCI4J. If not, see <http://www.gnu.org/licenses/>. -->
-
-<traciClass>
- <name>TrafficLight</name>
-
- <javadoc>
- Representation of a traffic light in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Simulation/Traffic_Lights.html">SUMO documentation</a>
- @author Enrico Gueli <enrico.gueli at polito.it>
- </javadoc>
-
- <repos>
- <repo>Lane</repo>
- </repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_TL_VARIABLE</command>
- <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_TL_VARIABLE</changeStateCommand>
-
- <readQueries>
- <readQuery>
- <name>ReadState</name>
- <enum>STATE</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_RED_YELLOW_GREEN_STATE</const>
- <query>ReadTLStateQuery</query>
- <returnType></returnType>
- <dynamic>true</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadDefaultCurrentPhaseDuration</name>
- <enum>DEFAULT_CURRENT_PHASE_DURATION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_PHASE_DURATION</const>
- <query>ReadObjectVarQuery.IntegerQ</query>
- <returnType>java.lang.Integer</returnType>
- <dynamic>true</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadControlledLanes</name>
- <enum>CONTROLLED_LANES</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_CONTROLLED_LANES</const>
- <query>LaneListQuery</query>
- <returnType></returnType>
- <dynamic>false</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadControlledLinks</name>
- <enum>CONTROLLED_LINKS</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_CONTROLLED_LINKS</const>
- <query>ReadControlledLinksQuery</query>
- <returnType></returnType>
- <dynamic>false</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadCurrentPhase</name>
- <enum>CURRENT_PHASE</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_CURRENT_PHASE</const>
- <query>ReadObjectVarQuery.IntegerQ</query>
- <returnType></returnType>
- <dynamic>true</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadCurrentProgram</name>
- <enum>CURRENT_PROGRAM</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_CURRENT_PROGRAM</const>
- <query>ReadObjectVarQuery.StringQ</query>
- <returnType></returnType>
- <dynamic>true</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadCompleteDefinition</name>
- <enum>COMPLETE_DEFINITION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_COMPLETE_DEFINITION_RYG</const>
- <query>ReadCompleteDefinitionQuery</query>
- <returnType></returnType>
- <dynamic>false</dynamic>
- </readQuery>
-
- <readQuery>
- <name>ReadAssumedNextSwitchTime</name>
- <enum>ASSUMED_NEXT_SWITCH_TIME</enum>
- <const>it.polito.appeal.traci.protocol.Constants.TL_NEXT_SWITCH</const>
- <query>ReadObjectVarQuery.IntegerQ</query>
- <returnType></returnType>
- <dynamic>true</dynamic>
- </readQuery>
- </readQueries>
-
- <changeStateQueries>
-
- <!-- most of the read queries are already declared as dynamic,
- so those query definitions don't need to explicitly name them
- as affected by. -->
-
- <changeStateQuery>
- <name>ChangeLightsState</name>
- <query>ChangeLightsStateQuery</query>
- </changeStateQuery>
-
- <changeStateQuery>
- <name>ChangePhaseIndex</name>
- <query>ChangeObjectVarQuery.ChangeIntegerQ</query>
- <const>it.polito.appeal.traci.protocol.Constants.TL_PHASE_INDEX</const>
- </changeStateQuery>
-
- <changeStateQuery>
- <name>ChangeProgram</name>
- <query>ChangeObjectVarQuery.ChangeStringQ</query>
- <const>it.polito.appeal.traci.protocol.Constants.TL_PROGRAM</const>
- </changeStateQuery>
-
- <changeStateQuery>
- <name>ChangePhaseDuration</name>
- <query>ChangeObjectVarQuery.ChangeIntegerQ</query>
- <const>it.polito.appeal.traci.protocol.Constants.TL_PHASE_DURATION</const>
- </changeStateQuery>
-
- <changeStateQuery>
- <name>ChangeCompleteProgramDefinition</name>
- <query>ChangeCompleteProgramQuery</query>
- <const>it.polito.appeal.traci.protocol.Constants.TL_COMPLETE_PROGRAM_RYG</const>
- </changeStateQuery>
- </changeStateQueries>
-
-</traciClass>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino This file is
+ part of TraCI4J. TraCI4J is free software: you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or (at
+ your option) any later version. TraCI4J 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 General
+ Public License for more details. You should have received a copy of the GNU
+ General Public License along with TraCI4J. If not, see <http://www.gnu.org/licenses/>. -->
+
+<traciClass>
+ <name>TrafficLight</name>
+
+ <javadoc>
+ Representation of a traffic light in the SUMO environment.
+ @see <a href="http://sumo.dlr.de/wiki/Simulation/Traffic_Lights">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Traffic_Lights_Value_Retrieval">TraCI documentation</a>
+ @author Enrico Gueli <enrico.gueli at polito.it>
+ </javadoc>
+
+ <repos>
+ <repo>Lane</repo>
+ </repos>
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_TL_VARIABLE
+ </command>
+ <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_TL_VARIABLE
+ </changeStateCommand>
+
+ <readQueries>
+ <readQuery>
+ <name>ReadState</name>
+ <enum>STATE</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_RED_YELLOW_GREEN_STATE
+ </const>
+ <query>ReadTLStateQuery</query>
+ <returnType></returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadDefaultCurrentPhaseDuration</name>
+ <enum>DEFAULT_CURRENT_PHASE_DURATION</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_PHASE_DURATION
+ </const>
+ <query>ReadObjectVarQuery.IntegerQ</query>
+ <returnType>java.lang.Integer</returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadControlledLanes</name>
+ <enum>CONTROLLED_LANES</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_CONTROLLED_LANES
+ </const>
+ <query>LaneListQuery</query>
+ <returnType></returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadControlledLinks</name>
+ <enum>CONTROLLED_LINKS</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_CONTROLLED_LINKS
+ </const>
+ <query>ReadControlledLinksQuery</query>
+ <returnType></returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadCurrentPhase</name>
+ <enum>CURRENT_PHASE</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_CURRENT_PHASE
+ </const>
+ <query>ReadObjectVarQuery.IntegerQ</query>
+ <returnType></returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadCurrentProgram</name>
+ <enum>CURRENT_PROGRAM</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_CURRENT_PROGRAM
+ </const>
+ <query>ReadObjectVarQuery.StringQ</query>
+ <returnType></returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadCompleteDefinition</name>
+ <enum>COMPLETE_DEFINITION</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_COMPLETE_DEFINITION_RYG
+ </const>
+ <query>ReadCompleteDefinitionQuery</query>
+ <returnType></returnType>
+ <dynamic>false</dynamic>
+ </readQuery>
+ <readQuery>
+ <name>ReadAssumedNextSwitchTime</name>
+ <enum>ASSUMED_NEXT_SWITCH_TIME</enum>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_NEXT_SWITCH</const>
+ <query>ReadObjectVarQuery.IntegerQ</query>
+ <returnType></returnType>
+ <dynamic>true</dynamic>
+ </readQuery>
+ </readQueries>
+
+ <changeStateQueries>
+ <changeStateQuery>
+ <name>ChangeLightsState</name>
+ <query>ChangeLightsStateQuery</query>
+ </changeStateQuery>
+ <changeStateQuery>
+ <name>ChangePhaseIndex</name>
+ <query>ChangeObjectVarQuery.ChangeIntegerQ</query>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_PHASE_INDEX</const>
+ </changeStateQuery>
+ <changeStateQuery>
+ <name>ChangeProgram</name>
+ <query>ChangeObjectVarQuery.ChangeStringQ</query>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_PROGRAM</const>
+ </changeStateQuery>
+ <changeStateQuery>
+ <name>ChangePhaseDuration</name>
+ <query>ChangeObjectVarQuery.ChangeIntegerQ</query>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_PHASE_DURATION
+ </const>
+ </changeStateQuery>
+ <changeStateQuery>
+ <name>ChangeCompleteProgramDefinition</name>
+ <query>ChangeCompleteProgramQuery</query>
+ <const>it.polito.appeal.traci.protocol.Constants.TL_COMPLETE_PROGRAM_RYG
+ </const>
+ </changeStateQuery>
+ </changeStateQueries>
+</traciClass>
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/Vehicle.xml b/tools/contributed/traci4j/src/xml/traciObjects/Vehicle.xml
index 170604e..4febb17 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/Vehicle.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/Vehicle.xml
@@ -9,63 +9,36 @@
Public License for more details. You should have received a copy of the GNU
General Public License along with TraCI4J. If not, see <http://www.gnu.org/licenses/>. -->
-<!-- This file is used to generate a Java class with the same name for a
- TraCI object. This saves manually writing a lot of boilerplate code. -->
<traciClass>
- <!-- The name of the object. It will be used as the class name. First letter
- is capital. Must be equal to this document's file name. -->
<name>Vehicle</name>
<javadoc>
Representation of a vehicle in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Definition_of_Vehicles,_Vehicle_Types,_and_Routes.html#Vehicle_Types">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Definition_of_Vehicles,_Vehicle_Types,_and_Routes#Vehicle_Types">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/Vehicle_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
- <!-- Lists all the other repositories that are needed by the queries -->
<repos>
<repo>Edge</repo>
<repo>Lane</repo>
</repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_VEHICLE_VARIABLE</command>
- <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_VEHICLE_VARIABLE</changeStateCommand>
-
- <!-- List of all "read" queries, i.e. those that don't change the state
- of the object and return a value -->
- <readQueries>
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_VEHICLE_VARIABLE
+ </command>
+ <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_VEHICLE_VARIABLE
+ </changeStateCommand>
+ <readQueries>
<readQuery>
-
- <!-- The name of the query. If the name is XXX, the Java class will contain
- a method named queryXXX() -->
<name>ReadSpeed</name>
-
- <!-- The enum name of the query. It will appear as an enum entry
- in the inner Variable enum, and can be used with the getReadQuery() method -->
<enum>SPEED</enum>
-
- <!-- A numeric value or a constant of type int that tells the variable
- ID -->
<const>it.polito.appeal.traci.protocol.Constants.VAR_SPEED</const>
-
- <!-- The Java class name that can make the query. It must be a subclass
- of ReadObjectVarQuery. If the class is on the package
- it.polito.appeal.traci, the package name can be omitted-->
<query>ReadObjectVarQuery.DoubleQ</query>
-
- <!-- The return type of the query. It must be the same type (or a supertype)
- of the type parameter V specified in the above class.
- Leave it empty to use the query class as the return type. -->
<returnType>java.lang.Double</returnType>
-
- <!-- If true, it means that this value may change at every simulation
- step. -->
<dynamic>true</dynamic>
</readQuery>
-
<readQuery>
<name>ReadPosition</name>
<enum>POSITION</enum>
@@ -77,7 +50,8 @@
<readQuery>
<name>ReadLanePosition</name>
<enum>LANE_POSITION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_LANEPOSITION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_LANEPOSITION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
@@ -85,7 +59,8 @@
<readQuery>
<name>ReadCurrentLaneIndex</name>
<enum>LANE_INDEX</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_LANE_INDEX</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_LANE_INDEX
+ </const>
<query>ReadObjectVarQuery.IntegerQ</query>
<returnType>java.lang.Integer</returnType>
<dynamic>true</dynamic>
@@ -114,64 +89,69 @@
<returnType>Edge</returnType>
<dynamic>true</dynamic>
</readQuery>
-
-
<readQuery>
<name>ReadCO2Emission</name>
<enum>CO2_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_CO2EMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_CO2EMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadCOEmission</name>
<enum>CO_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_COEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_COEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadHCEmission</name>
<enum>HC_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_HCEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_HCEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadPMXEmission</name>
<enum>PMX_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_PMXEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_PMXEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadNOXEmission</name>
<enum>NOX_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_NOXEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_NOXEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadFuelConsumption</name>
<enum>FUEL_CONSUMPTION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_FUELCONSUMPTION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_FUELCONSUMPTION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadNoiseEmission</name>
<enum>NOISE_EMISSION</enum>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_NOISEEMISSION</const>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_NOISEEMISSION
+ </const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>java.lang.Double</returnType>
<dynamic>true</dynamic>
- </readQuery>
+ </readQuery>
<readQuery>
<name>ReadColor</name>
<enum>COLOR</enum>
@@ -188,32 +168,20 @@
<returnType>java.lang.String</returnType>
<dynamic>false</dynamic>
</readQuery>
-
</readQueries>
- <!-- List of all "change state" queries, i.e. those that change the state
- of the object and don't return a value -->
<changeStateQueries>
-
- <!-- The syntax of a changeStateQuery is similar to readQuery, differences
- are listed below. -->
<changeStateQuery>
<name>SetEdgeTravelTime</name>
<query>ChangeEdgeTravelTimeQuery</query>
</changeStateQuery>
-
<changeStateQuery>
<name>Reroute</name>
<query>RerouteQuery</query>
- <!-- Lists the read queries that may be changed by the execution of this
- query, identified by their name. Calling this query will clear the caches
- of the queries contained here. -->
<affects>
<affect>ReadCurrentRoute</affect>
</affects>
</changeStateQuery>
-
-
<changeStateQuery>
<name>ChangeLaneIndex</name>
<query>ChangeLaneIndexQuery</query>
@@ -221,7 +189,6 @@
<affect>ReadCurrentLaneIndex</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeColor</name>
<query>ChangeColorQuery</query>
@@ -230,7 +197,6 @@
<affect>ReadColor</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeTarget</name>
<query>ChangeTargetQuery</query>
@@ -238,14 +204,12 @@
<affect>ReadCurrentRoute</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeMaxSpeed</name>
<query>ChangeMaxSpeedQuery</query>
<affects>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeRoute</name>
<query>ChangeRouteQuery</query>
@@ -253,7 +217,6 @@
<affect>ReadCurrentRoute</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeSpeed</name>
<query>ChangeSpeedQuery</query>
@@ -261,13 +224,11 @@
<affect>ReadSpeed</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
- <name>ChangeLaneChangeMode</name>
- <query>ChangeObjectVarQuery.ChangeIntegerQ</query>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_LANE_CHANGE_MODE</const>
- </changeStateQuery>
-
+ <name>ChangeLaneChangeMode</name>
+ <query>ChangeObjectVarQuery.ChangeIntegerQ</query>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_LANE_CHANGE_MODE
+ </const>
+ </changeStateQuery>
</changeStateQueries>
-
-</traciClass>
+</traciClass>
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/xml/traciObjects/VehicleType.xml b/tools/contributed/traci4j/src/xml/traciObjects/VehicleType.xml
index 6829704..d1fbcfe 100644
--- a/tools/contributed/traci4j/src/xml/traciObjects/VehicleType.xml
+++ b/tools/contributed/traci4j/src/xml/traciObjects/VehicleType.xml
@@ -14,26 +14,28 @@
<javadoc>
Representation of a class of vehicles in the SUMO environment.
- @see <a href="http://sumo.sourceforge.net/doc/current/docs/userdoc/Definition_of_Vehicles,_Vehicle_Types,_and_Routes.html#Vehicle_Types">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/Definition_of_Vehicles,_Vehicle_Types,_and_Routes#Vehicle_Types">SUMO documentation</a>
+ @see <a href="http://sumo.dlr.de/wiki/TraCI/VehicleType_Value_Retrieval">TraCI documentation</a>
@author Enrico Gueli <enrico.gueli at polito.it>
</javadoc>
<repos>
</repos>
-
- <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_VEHICLETYPE_VARIABLE</command>
- <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_VEHICLETYPE_VARIABLE</changeStateCommand>
-
+
+ <command>it.polito.appeal.traci.protocol.Constants.CMD_GET_VEHICLETYPE_VARIABLE
+ </command>
+ <changeStateCommand>it.polito.appeal.traci.protocol.Constants.CMD_SET_VEHICLETYPE_VARIABLE
+ </changeStateCommand>
+
<readQueries>
<readQuery>
- <name>ReadGlobalTravelTime</name>
+ <name>ReadLength</name>
<enum>LENGTH</enum>
<const>it.polito.appeal.traci.protocol.Constants.VAR_LENGTH</const>
<query>ReadObjectVarQuery.DoubleQ</query>
<returnType>Double</returnType>
<dynamic>false</dynamic>
</readQuery>
-
<readQuery>
<name>ReadAccel</name>
<enum>ACCEL</enum>
@@ -42,7 +44,6 @@
<returnType>Double</returnType>
<dynamic>false</dynamic>
</readQuery>
-
<readQuery>
<name>ReadDecel</name>
<enum>DECEL</enum>
@@ -51,8 +52,6 @@
<returnType>Double</returnType>
<dynamic>false</dynamic>
</readQuery>
-
-
<readQuery>
<name>ReadMaxSpeed</name>
<enum>MAXSPEED</enum>
@@ -61,8 +60,6 @@
<returnType>Double</returnType>
<dynamic>true</dynamic>
</readQuery>
-
-
<readQuery>
<name>ReadMinGap</name>
<enum>MINGAP</enum>
@@ -71,20 +68,17 @@
<returnType>Double</returnType>
<dynamic>true</dynamic>
</readQuery>
-
</readQueries>
<changeStateQueries>
-
<changeStateQuery>
<name>ChangeAccel</name>
- <query>ChangeObjectVarQuery.ChangeDoubleQ</query>
- <const>it.polito.appeal.traci.protocol.Constants.VAR_ACCEL</const>
- <affects>
+ <query>ChangeObjectVarQuery.ChangeDoubleQ</query>
+ <const>it.polito.appeal.traci.protocol.Constants.VAR_ACCEL</const>
+ <affects>
<affect>ReadAccel</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeDecel</name>
<query>ChangeDecelQuery</query>
@@ -92,8 +86,6 @@
<affect>ReadDecel</affect>
</affects>
</changeStateQuery>
-
-
<changeStateQuery>
<name>ChangeMaxSpeed</name>
<query>ChangeMaxSpeedQuery</query>
@@ -101,7 +93,6 @@
<affect>ReadMaxSpeed</affect>
</affects>
</changeStateQuery>
-
<changeStateQuery>
<name>ChangeMinGap</name>
<query>ChangeMinGapQuery</query>
@@ -109,6 +100,5 @@
<affect>ReadMinGap</affect>
</affects>
</changeStateQuery>
-
</changeStateQueries>
-</traciClass>
+</traciClass>
\ No newline at end of file
diff --git a/tools/contributed/traci4j/src/xslt/traciObject.xslt b/tools/contributed/traci4j/src/xslt/traciObject.xslt
index 519d9fa..03defc2 100644
--- a/tools/contributed/traci4j/src/xslt/traciObject.xslt
+++ b/tools/contributed/traci4j/src/xslt/traciObject.xslt
@@ -95,7 +95,7 @@ implements StepAdvanceListener
<xsl:for-each select="readQueries/readQuery">
/**
* Query "<xsl:value-of select="name"/>"
- * @see {@link #query<xsl:value-of select="name"/>}
+ * @see #query<xsl:value-of select="name"/>
*/
<xsl:value-of select="enum"/>,
</xsl:for-each>
@@ -156,8 +156,6 @@ implements StepAdvanceListener
}
<!-- CACHE CLEANER -->
-
- @Override
public void nextStep(double step) {
<xsl:for-each select="readQueries/readQuery[dynamic='true']">
getReadQuery(Variable.<xsl:value-of select="enum"/>).setObsolete();
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/HttpDownloadTest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/HttpDownloadTest.java
index 645ee88..c7e5dca 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/HttpDownloadTest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/HttpDownloadTest.java
@@ -34,7 +34,7 @@ public class HttpDownloadTest {
public void testHttpDownload() throws IOException, InterruptedException {
new NanoHTTPD(5432);
- SumoTraciConnection conn = new SumoTraciConnection("http://127.0.0.1:5432/test/sumo_maps/variable_speed_signs/test.sumo.cfg", 1);
+ SumoTraciConnection conn = new SumoTraciConnection("http://127.0.0.1:5432/test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg", 1);
conn.runServer();
conn.nextSimStep();
conn.nextSimStep();
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NanoHTTPD.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NanoHTTPD.java
index 60dadce..45f5b78 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NanoHTTPD.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NanoHTTPD.java
@@ -2,6 +2,10 @@ package it.polito.appeal.traci.test;
import java.io.*;
import java.util.*;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.net.*;
/**
@@ -45,6 +49,8 @@ import java.net.*;
@SuppressWarnings("javadoc")
public class NanoHTTPD
{
+ private Logger log = LogManager.getLogger();
+
// ==================================================
// API parts
// ==================================================
@@ -62,20 +68,20 @@ public class NanoHTTPD
*/
public Response serve( String uri, String method, Properties header, Properties parms )
{
- System.out.println( method + " '" + uri + "' " );
+ log.debug( method + " '" + uri + "' " );
Enumeration<?> e = header.propertyNames();
while ( e.hasMoreElements())
{
String value = (String)e.nextElement();
- System.out.println( " HDR: '" + value + "' = '" +
+ log.debug( " HDR: '" + value + "' = '" +
header.getProperty( value ) + "'" );
}
e = parms.propertyNames();
while ( e.hasMoreElements())
{
String value = (String)e.nextElement();
- System.out.println( " PRM: '" + value + "' = '" +
+ log.debug( " PRM: '" + value + "' = '" +
parms.getProperty( value ) + "'" );
}
@@ -179,6 +185,7 @@ public class NanoHTTPD
{
myTcpPort = port;
+ @SuppressWarnings("resource")
final ServerSocket ss = new ServerSocket( myTcpPort );
Thread t = new Thread( new Runnable()
{
@@ -190,7 +197,9 @@ public class NanoHTTPD
new HTTPSession( ss.accept());
}
catch ( IOException ioe )
- {}
+ {
+ log.error(ioe);
+ }
}
});
t.setDaemon( true );
@@ -314,7 +323,7 @@ public class NanoHTTPD
if (contentLength != null)
{
try { size = Integer.parseInt(contentLength); }
- catch (NumberFormatException ex) {}
+ catch (NumberFormatException ex) { log.error(ex); }
}
String postLine = "";
char buf[] = new char[512];
@@ -642,7 +651,7 @@ public class NanoHTTPD
try {
startFrom = Long.parseLong( range );
}
- catch ( NumberFormatException nfe ) {}
+ catch ( NumberFormatException nfe ) {log.error(nfe);}
}
}
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java
index 6de3ac9..610227b 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java
@@ -29,17 +29,17 @@ public class NonzeroBeginTimeTest extends SingleSimTraCITest {
@Override
protected String getSimConfigFileLocation() {
- return "test/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg";
+ return "test/resources/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg";
}
@Test
public void testFirstStep() {
- assertEquals(50000, conn.getCurrentSimStep());
+ assertEquals(50000000, conn.getCurrentSimTime());
}
@Test
public void testNextStep() throws IllegalStateException, IOException {
conn.nextSimStep();
- assertEquals(50001, conn.getCurrentSimStep());
+ assertEquals(50001000, conn.getCurrentSimTime());
}
}
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/PositionConvertionTest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/PositionConvertionTest.java
index f14855a..a7c518f 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/PositionConvertionTest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/PositionConvertionTest.java
@@ -15,23 +15,19 @@
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
+ */
package it.polito.appeal.traci.test;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import it.polito.appeal.traci.MultiQuery;
import it.polito.appeal.traci.PositionConversionQuery;
-import it.polito.appeal.traci.SumoTraciConnection;
import it.polito.appeal.traci.protocol.RoadmapPosition;
-import static org.junit.Assert.*;
-
import java.awt.geom.Point2D;
import java.io.IOException;
-import org.apache.log4j.BasicConfigurator;
-import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -41,18 +37,16 @@ public class PositionConvertionTest extends SingleSimTraCITest {
private static final String EDGE_NAME = "-105254616#1";
private static final int LANE_NUM = 0;
- private static final Point2D LOCATION_LOCAL = new Point2D.Double(1071.38, 1561.38);
- private static final Point2D LOCATION_GEO = new Point2D.Double(7.659806, 45.064683);
-
- static {
- BasicConfigurator.configure();
- }
-
+ private static final Point2D LOCATION_LOCAL = new Point2D.Double(1071.38,
+ 1561.38);
+ private static final Point2D LOCATION_GEO = new Point2D.Double(7.659806,
+ 45.064683);
+
@Override
protected String getSimConfigFileLocation() {
- return "test/sumo_maps/polito/test.sumo.cfg";
+ return "test/resources/sumo_maps/polito/test.sumo.cfg";
}
-
+
@Before
public void setUp() throws Exception {
TraCITest.printSeparator();
@@ -67,7 +61,6 @@ public class PositionConvertionTest extends SingleSimTraCITest {
assertEquals(LOCATION_GEO.getY(), out.getY(), 1e-5);
}
-
@Test
public void testConvertXYToLonLat() throws IOException {
PositionConversionQuery conv = conn.queryPositionConversion();
@@ -77,7 +70,8 @@ public class PositionConvertionTest extends SingleSimTraCITest {
assertEquals(LOCATION_GEO.getY(), out.getY(), 1e-5);
}
- @Ignore // because it just fails. I suspect a bug in SUMO.
+ @Ignore
+ // because it just fails. I suspect a bug in SUMO.
@Test
public void testConvertLonLatToXY() throws IOException {
PositionConversionQuery conv = conn.queryPositionConversion();
@@ -86,31 +80,32 @@ public class PositionConvertionTest extends SingleSimTraCITest {
assertEquals(LOCATION_LOCAL.getX(), out.getX(), 1e-5);
assertEquals(LOCATION_LOCAL.getY(), out.getY(), 1e-5);
}
-
+
@Test
public void testMultiConvert() throws IOException {
MultiQuery mq = conn.makeMultiQuery();
-
+
PositionConversionQuery conv1 = conn.queryPositionConversion();
conv1.setPositionToConvert(LOCATION_LOCAL, true);
mq.add(conv1);
PositionConversionQuery conv2 = conn.queryPositionConversion();
- Point2D loc2 = new Point2D.Double(LOCATION_LOCAL.getX() + 5, LOCATION_LOCAL.getY() + 5);
+ Point2D loc2 = new Point2D.Double(LOCATION_LOCAL.getX() + 5,
+ LOCATION_LOCAL.getY() + 5);
conv2.setPositionToConvert(loc2, false);
mq.add(conv2);
-
+
mq.run();
-
+
Point2D out1 = conv1.get();
Point2D out2 = conv2.get();
- assertEquals(LOCATION_GEO.getX(), out1.getX(), 1e-5);
- assertEquals(LOCATION_GEO.getY(), out1.getY(), 1e-5);
- assertFalse(out2.getX() + " should be different than " + out1.getX(), Math.abs(out2.getX() - out1.getX()) < 1e-5);
- assertFalse(out2.getY() + " should be different than " + out1.getY(), Math.abs(out2.getY() - out1.getY()) < 1e-5);
+ assertEquals(LOCATION_GEO.getX(), out1.getX(), 1e-5);
+ assertEquals(LOCATION_GEO.getY(), out1.getY(), 1e-5);
+ assertFalse(out2.getX() + " should be different than " + out1.getX(),
+ Math.abs(out2.getX() - out1.getX()) < 1e-5);
+ assertFalse(out2.getY() + " should be different than " + out1.getY(),
+ Math.abs(out2.getY() - out1.getY()) < 1e-5);
-
-
}
}
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/RemoteTraCITest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/RemoteTraCITest.java
index eeb330d..393b771 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/RemoteTraCITest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/RemoteTraCITest.java
@@ -26,7 +26,8 @@ import java.net.InetAddress;
import it.polito.appeal.traci.SumoTraciConnection;
-import org.apache.log4j.BasicConfigurator;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -34,29 +35,44 @@ import org.junit.Test;
@SuppressWarnings("javadoc")
public class RemoteTraCITest {
+ private Logger log = LogManager.getLogger();
+
private Process sumoProcess;
private SumoTraciConnection conn;
private static final int PORT = 5450;
- static {
- BasicConfigurator.configure();
- }
-
@Before
public void setUp() throws IOException, InterruptedException {
String exe = System.getProperty(SumoTraciConnection.SUMO_EXE_PROPERTY);
if (exe == null) {
exe = "sumo";
}
+
+ if (System.getProperty(SumoTraciConnection.OS_ARCH_PROPERTY).contains("64") && System.getProperty(SumoTraciConnection.OS_NAME_PROPERTY).contains("Win")) {
+ exe += "64";
+ }
String[] args = new String[] {
exe,
- "-c", "test/sumo_maps/variable_speed_signs/test.sumo.cfg",
+ "-c", "test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg",
"--remote-port", Integer.toString(PORT),
+ // this avoids validation of the input xml files; if SUMO_HOME is not set correctly,
+ // sumo will try to download the schema files from the web and may wait 30 seconds at startup
+ // for the connection to time out.
+ "--xml-validation", "never"
};
+ if (log.isDebugEnabled()) {
+ StringBuilder cmdLine = new StringBuilder();
+ for (String arg : args) {
+ cmdLine.append(arg);
+ cmdLine.append(" ");
+ }
+ log.debug("running " + cmdLine.toString());
+ }
+
sumoProcess = Runtime.getRuntime().exec(args);
try {
@@ -64,7 +80,7 @@ public class RemoteTraCITest {
throw new IOException("SUMO died with exit value " + exitVal);
}
catch (IllegalThreadStateException e) {
- // all OK, it's alive
+ log.debug("All OK, it's alive");
}
conn = new SumoTraciConnection(InetAddress.getLocalHost(), PORT);
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SingleSimTraCITest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SingleSimTraCITest.java
index fe371fb..7282f69 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SingleSimTraCITest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SingleSimTraCITest.java
@@ -53,9 +53,13 @@ public abstract class SingleSimTraCITest {
*/
@Before
public void startSumoConnection() throws IOException, InterruptedException {
- conn = new SumoTraciConnection(getSimConfigFileLocation(), 0);
+ conn = makeConnection();
conn.runServer();
}
+
+ protected SumoTraciConnection makeConnection() {
+ return new SumoTraciConnection(getSimConfigFileLocation(), 0);
+ }
@After
public void stopSumoConnection() throws IOException, InterruptedException {
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SumoGuiTest.java
similarity index 59%
copy from tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java
copy to tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SumoGuiTest.java
index 6de3ac9..bcc3a33 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/NonzeroBeginTimeTest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/SumoGuiTest.java
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2014 ApPeAL Group, Politecnico di Torino
+ Copyright (C) 2015 ApPeAL Group, Politecnico di Torino
This file is part of TraCI4J.
@@ -19,27 +19,33 @@
package it.polito.appeal.traci.test;
-import static org.junit.Assert.*;
-
import java.io.IOException;
import org.junit.Test;
-public class NonzeroBeginTimeTest extends SingleSimTraCITest {
+public class SumoGuiTest extends SingleSimTraCITest {
@Override
protected String getSimConfigFileLocation() {
- return "test/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg";
+ return "test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg";
}
-
- @Test
- public void testFirstStep() {
- assertEquals(50000, conn.getCurrentSimStep());
+
+
+
+ @Override
+ public void startSumoConnection() throws IOException, InterruptedException {
+ conn = makeConnection();
+ conn.addOption("start", "1"); // auto-run on GUI show
+ conn.addOption("quit-on-end", "1"); // auto-close on end
+ conn.runServer(true);
}
-
+
+
@Test
- public void testNextStep() throws IllegalStateException, IOException {
- conn.nextSimStep();
- assertEquals(50001, conn.getCurrentSimStep());
+ public void testRunGui() throws IllegalStateException, IOException {
+ for (int i = 0; i < 10; i++) {
+ conn.nextSimStep();
+ }
}
+
}
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCIServerTest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCIServerTest.java
index d84b4ee..9e9773b 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCIServerTest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCIServerTest.java
@@ -19,13 +19,15 @@
package it.polito.appeal.traci.test;
-import static org.junit.Assert.*;
-
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import it.polito.appeal.traci.SumoTraciConnection;
import it.polito.appeal.traci.protocol.Command;
import it.polito.appeal.traci.protocol.Constants;
import it.polito.appeal.traci.protocol.RequestMessage;
-import it.polito.appeal.traci.protocol.ResponseMessage;
import it.polito.appeal.traci.protocol.ResponseContainer;
+import it.polito.appeal.traci.protocol.ResponseMessage;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -35,12 +37,12 @@ import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import org.apache.log4j.Logger;
-
/**
* Here we verify some assumptions about the TraCI protocol and the behaviour of
* SUMO.
@@ -51,7 +53,7 @@ import org.apache.log4j.Logger;
@SuppressWarnings("javadoc")
public class TraCIServerTest {
- private static final int API_VERSION = 6;
+ private static final int API_VERSION = 10;
/**
* The system property name to get the executable path and name to run.
@@ -66,7 +68,7 @@ public class TraCIServerTest {
private Process sumoProcess;
- private static final Logger log = Logger.getLogger(TraCIServerTest.class);
+ private static final Logger log = LogManager.getLogger();
@Before
public void setUp() throws UnknownHostException, IOException, InterruptedException {
@@ -88,10 +90,14 @@ public class TraCIServerTest {
if (sumoEXE == null)
sumoEXE = "sumo";
+ if (System.getProperty(SumoTraciConnection.OS_ARCH_PROPERTY).contains("64") && System.getProperty(SumoTraciConnection.OS_NAME_PROPERTY).contains("Win")) {
+ sumoEXE += "64";
+ }
+
String[] args;
args = new String[] {
sumoEXE,
- "-c", "test/sumo_maps/box1l/test.sumo.cfg",
+ "-c", "test/resources/sumo_maps/box1l/test.sumo.cfg",
"--remote-port", Integer.toString(TRACI_PORT)
};
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCITest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCITest.java
index 28431d7..dea2eba 100755
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCITest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TraCITest.java
@@ -1,377 +1,370 @@
-/*
- Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
-
- This file is part of TraCI4J.
-
- TraCI4J is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- TraCI4J 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 General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
-*/
-
+/*
+ Copyright (C) 2013 ApPeAL Group, Politecnico di Torino
+
+ This file is part of TraCI4J.
+
+ TraCI4J is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ TraCI4J 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
+ */
+
package it.polito.appeal.traci.test;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import it.polito.appeal.traci.AddRouteQuery;
-import it.polito.appeal.traci.AddVehicleQuery;
-import it.polito.appeal.traci.ChangeColorQuery;
-import it.polito.appeal.traci.ChangeEdgeTravelTimeQuery;
-import it.polito.appeal.traci.ChangeGlobalTravelTimeQuery;
-import it.polito.appeal.traci.ChangeObjectVarQuery.ChangeStringQ;
-import it.polito.appeal.traci.ChangePositionQuery;
-import it.polito.appeal.traci.ChangeRouteQuery;
-import it.polito.appeal.traci.ChangeTargetQuery;
-import it.polito.appeal.traci.Edge;
-import it.polito.appeal.traci.Lane;
-import it.polito.appeal.traci.Link;
-import it.polito.appeal.traci.MeMeDetector;
-import it.polito.appeal.traci.MultiQuery;
-import it.polito.appeal.traci.POI;
-import it.polito.appeal.traci.ReadGlobalTravelTimeQuery;
-import it.polito.appeal.traci.RemoveVehicleQuery;
-import it.polito.appeal.traci.Repository;
-import it.polito.appeal.traci.Route;
-import it.polito.appeal.traci.SumoTraciConnection;
-import it.polito.appeal.traci.ValueReadQuery;
-import it.polito.appeal.traci.Vehicle;
-import it.polito.appeal.traci.VehicleLifecycleObserver;
-import it.polito.appeal.traci.VehicleType;
-
-import java.awt.Color;
-import java.awt.geom.PathIterator;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.log4j.PropertyConfigurator;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import org.apache.log4j.Logger;
-
-/**
- * Main test case for TraCI4J. This class tries to test and describe all the basic
- * features of the library.
- * <p>
- * Each test is run on an existing SUMO simulation, initialized with the
- * configuration file specified in {@link #SIM_CONFIG_LOCATION}. The simulation is
- * reset for each test.
- * <p>
- * The tests assume that the SUMO binary directory is in the system PATH. If
- * not, please set the Java system variable
- * <code>it.polito.appeal.traci.sumo_exe</code> to the full path of the "sumo"
- * executable, e.g. <code>/usr/bin/sumo</code>; see
- * {@link SumoTraciConnection#SUMO_EXE_PROPERTY}</dd> </dl>
- *
- * @author Enrico Gueli <enrico.gueli at polito.it>
- *
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.awt.Color;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+import it.polito.appeal.traci.AddRouteQuery;
+import it.polito.appeal.traci.AddVehicleQuery;
+import it.polito.appeal.traci.ChangeEdgeTravelTimeQuery;
+import it.polito.appeal.traci.ChangeGlobalTravelTimeQuery;
+import it.polito.appeal.traci.Edge;
+import it.polito.appeal.traci.InductionLoop;
+import it.polito.appeal.traci.LaArDetector;
+import it.polito.appeal.traci.Lane;
+import it.polito.appeal.traci.Link;
+import it.polito.appeal.traci.MeMeDetector;
+import it.polito.appeal.traci.MultiQuery;
+import it.polito.appeal.traci.POI;
+import it.polito.appeal.traci.ReadGlobalTravelTimeQuery;
+import it.polito.appeal.traci.RemoveVehicleQuery;
+import it.polito.appeal.traci.Repository;
+import it.polito.appeal.traci.Route;
+import it.polito.appeal.traci.SumoTraciConnection;
+import it.polito.appeal.traci.Vehicle;
+import it.polito.appeal.traci.VehicleLifecycleObserver;
+import it.polito.appeal.traci.VehicleType;
+
+/**
+ * Main test case for TraCI4J. This class tries to test and describe all the
+ * basic features of the library.
+ * <p>
+ * Each test is run on an existing SUMO simulation, initialized with the
+ * configuration file specified in {@link #SIM_CONFIG_LOCATION}. The simulation
+ * is reset for each test.
+ * <p>
+ * The tests assume that the SUMO binary directory is in the system PATH. If
+ * not, please set the Java system variable
+ * <code>it.polito.appeal.traci.sumo_exe</code> to the full path of the "sumo"
+ * executable, e.g. <code>/usr/bin/sumo</code>; see
+ * {@link SumoTraciConnection#SUMO_EXE_PROPERTY}</dd>
+ * </dl>
+ *
+ * @author Enrico Gueli <enrico.gueli at polito.it>
+ *
*/
- at SuppressWarnings("javadoc")
+ at SuppressWarnings("javadoc")
public class TraCITest extends SingleSimTraCITest {
-
- private static final Logger log = Logger.getLogger(TraCITest.class);
-
- protected static final double DELTA = 1e-6;
-
- static {
- // Log4j configuration must be done only once, otherwise output will be duplicated for each test
-
- // Basic configuration that outputs everything
- //org.apache.log4j.BasicConfigurator.configure();
-
- // Configuration specified by a properties file
- PropertyConfigurator.configure("test/log4j.properties");
- }
-
- @Override
- protected String getSimConfigFileLocation() {
- return "test/sumo_maps/variable_speed_signs/test.sumo.cfg";
- }
-
+
+ private static final Logger log = LogManager.getLogger();
+
+ protected static final double DELTA = 1e-6;
+
+ @Override
+ protected String getSimConfigFileLocation() {
+ return "test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg";
+ }
+
@Before
- public void setUp() throws Exception {
- printSeparator();
- }
-
-
- public static void printSeparator() {
+ public void setUp() throws Exception {
+ printSeparator();
+ }
+
+ public static void printSeparator() {
log.info("=======================================");
}
- @Ignore
- public void ignore() {
- // do nothing, it's here just to avoid an unused import warning
+ @Ignore
+ public void ignore() {
+ // do nothing, it's here just to avoid an unused import warning
}
-
- /**
- * The sim step at startup must be zero (this should match the "begin"
- * parameter in the SUMO configuration).
- */
+
+ /**
+ * The sim step at startup must be zero (this should match the "begin"
+ * parameter in the SUMO configuration).
+ */
@Test
public void testFirstStepIsZero() {
- assertEquals(0, conn.getCurrentSimStep());
+ assertEquals(0, conn.getCurrentSimTime());
}
-
- /**
- * Calling {@link SumoTraciConnection#nextSimStep()} should move to
- * simulation step one.
- * @throws IOException
+
+ /**
+ * Calling {@link SumoTraciConnection#nextSimStep()} should move to
+ * simulation step one.
+ *
+ * @throws IOException
*/
@Test
public void testNextSimStepGoesToOne() throws IOException {
conn.nextSimStep();
- assertEquals(1, conn.getCurrentSimStep());
- }
-
- /**
- * This test shows how a vehicle lifecycle listener can be attached
- * to the simulation, and how its callbacks are called by TraCI4J
- * when something about a vehicle happens.
- * @throws IOException
- */
- @Test
- public void testGetSubscriptionResponses() throws IOException {
- final List<Vehicle> departed = new ArrayList<Vehicle>();
-
- conn.addVehicleLifecycleObserver(new VehicleLifecycleObserver() {
- @Override
- public void vehicleArrived(Vehicle v) { }
-
- @Override
- public void vehicleDeparted(Vehicle v) {
- departed.add(v);
- }
-
- @Override
- public void vehicleTeleportEnding(Vehicle v) { }
-
- @Override
- public void vehicleTeleportStarting(Vehicle v) { }
- });
-
- // In this simulation, the first vehicles are been seen at step 2.
- conn.nextSimStep();
- conn.nextSimStep();
- conn.nextSimStep();
-
- assertFalse(departed.isEmpty());
- }
-
- /**
- * This test shows a basic usage of {@link SumoTraciConnection#getVehicleRepository()}.
- * The method {@link Repository#getAll()} will return all vehicles in the simulation.
- * @throws IllegalStateException
- * @throws IOException
- */
- @Test
- public void testVehicleSet() throws IllegalStateException, IOException {
- for (int i=0; i<10; i++) {
- conn.nextSimStep();
- int t = conn.getCurrentSimStep();
- Map<String, Vehicle> vehicles = conn.getVehicleRepository().getAll();
- log.info(t + "\t" + vehicles.keySet());
- assertTrue(vehicles.size() > 0);
- }
- }
-
- /**
- * This test shows how a TraCI object is updated; calling {@link Vehicle#getSpeed()}
- * in two different simulation steps may give different
- * results.
- * @throws IllegalStateException
- * @throws IOException
- */
- @Test
- public void testRefreshedValues() throws IllegalStateException, IOException {
- conn.nextSimStep();
- Vehicle v = conn.getVehicleRepository().getAll().values().iterator().next();
- Double speedFirst = v.getSpeed();
-
- for (int i=0; i<10; i++) {
- conn.nextSimStep();
- Double speedNow = v.getSpeed();
- log.info(speedNow.toString());
- assertTrue(Math.abs(speedFirst - speedNow) > DELTA);
- }
- }
-
- /**
- * Normally, the simulation at step zero contains no vehicles.
- * @throws IOException
- */
- @Test
- public void testNoVehiclesAtStepZero() throws IOException {
- assertTrue(conn.getVehicleRepository().getIDs().isEmpty());
- }
-
- /**
- * In this simulation, there should be exactly one vehicle at step one.
- * @throws IOException
- */
- @Test
- public void testOneVehicleAtStepOne() throws IOException {
- conn.nextSimStep();
- final Repository<Vehicle> repo = conn.getVehicleRepository();
- assertThat(repo.getIDs().size(), equalTo(1));
- }
-
- /**
- * Tests that the vehicle's ID of the first vehicle is correct.
- * @throws IOException
- */
- @Test
- public void testVehicleIDAtStepOne() throws IOException {
- conn.nextSimStep();
- final Repository<Vehicle> repo = conn.getVehicleRepository();
- assertThat(repo.getIDs(), equalTo(Collections.singleton("0.0")));
- }
-
- /**
- * Tests that the vehicle at step 1 is at beginning of its departure lane.
- * @throws IOException
- */
- @Test
- public void testVehiclePositionAtStepOne() throws IOException {
- conn.nextSimStep();
- final Repository<Vehicle> repo = conn.getVehicleRepository();
- Vehicle v0 = repo.getByID("0.0");
- assertEquals(0, v0.getLanePosition(), DELTA);
- }
-
- /**
- * Tests that the vehicle at step 2 is about 1.9m at beginning of
- * its departure lane.
- * Note: this may change if SUMO's internal mobility model is changed.
- * @throws IOException
- */
- @Test
- public void testVehiclePositionAtStepTwo() throws IOException {
- conn.nextSimStep();
- conn.nextSimStep();
- final Repository<Vehicle> repo = conn.getVehicleRepository();
- Vehicle v0 = repo.getByID("0.0");
- assertEquals(1.886542, v0.getLanePosition(), DELTA);
- }
-
+ assertEquals(1000, conn.getCurrentSimTime());
+ }
+
+ /**
+ * This test shows how a vehicle lifecycle listener can be attached to the
+ * simulation, and how its callbacks are called by TraCI4J when something
+ * about a vehicle happens.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetSubscriptionResponses() throws IOException {
+ final List<Vehicle> departed = new ArrayList<Vehicle>();
+
+ conn.addVehicleLifecycleObserver(new VehicleLifecycleObserver() {
+ public void vehicleArrived(Vehicle v) {
+ }
+
+ public void vehicleDeparted(Vehicle v) {
+ departed.add(v);
+ }
+
+ public void vehicleTeleportEnding(Vehicle v) {
+ }
+
+ public void vehicleTeleportStarting(Vehicle v) {
+ }
+ });
+
+ // In this simulation, the first vehicles are been seen at step 2.
+ conn.nextSimStep();
+ conn.nextSimStep();
+ conn.nextSimStep();
+
+ assertFalse(departed.isEmpty());
+ }
+
+ /**
+ * This test shows a basic usage of
+ * {@link SumoTraciConnection#getVehicleRepository()}. The method
+ * {@link Repository#getAll()} will return all vehicles in the simulation.
+ *
+ * @throws IllegalStateException
+ * @throws IOException
+ */
+ @Test
+ public void testVehicleSet() throws IllegalStateException, IOException {
+ for (int i = 0; i < 10; i++) {
+ conn.nextSimStep();
+ int t = conn.getCurrentSimTime() / 1000;
+ Map<String, Vehicle> vehicles = conn.getVehicleRepository().getAll();
+ log.info(t + "\t" + vehicles.keySet());
+ assertTrue(vehicles.size() > 0);
+ }
+ }
+
+ /**
+ * This test shows how a TraCI object is updated; calling
+ * {@link Vehicle#getSpeed()} in two different simulation steps may give
+ * different results.
+ *
+ * @throws IllegalStateException
+ * @throws IOException
+ */
+ @Test
+ public void testRefreshedValues() throws IllegalStateException, IOException {
+ conn.nextSimStep();
+ Vehicle v = conn.getVehicleRepository().getAll().values().iterator().next();
+ Double speedFirst = v.getSpeed();
+
+ for (int i = 0; i < 10; i++) {
+ conn.nextSimStep();
+ Double speedNow = v.getSpeed();
+ log.info(speedNow.toString());
+ assertTrue(Math.abs(speedFirst - speedNow) > DELTA);
+ }
+ }
+
+ /**
+ * Normally, the simulation at step zero contains no vehicles.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testNoVehiclesAtStepZero() throws IOException {
+ assertTrue(conn.getVehicleRepository().getIDs().isEmpty());
+ }
+
+ /**
+ * In this simulation, there should be exactly one vehicle at step one.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testOneVehicleAtStepOne() throws IOException {
+ conn.nextSimStep();
+ final Repository<Vehicle> repo = conn.getVehicleRepository();
+ assertThat(repo.getIDs().size(), equalTo(1));
+ }
+
+ /**
+ * Tests that the vehicle's ID of the first vehicle is correct.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testVehicleIDAtStepOne() throws IOException {
+ conn.nextSimStep();
+ final Repository<Vehicle> repo = conn.getVehicleRepository();
+ assertThat(repo.getIDs(), equalTo(Collections.singleton("0.0")));
+ }
+
+ /**
+ * Tests that the vehicle at step 1 is at beginning of its departure lane.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testVehiclePositionAtStepOne() throws IOException {
+ conn.nextSimStep();
+ final Repository<Vehicle> repo = conn.getVehicleRepository();
+ Vehicle v0 = repo.getByID("0.0");
+ assertEquals(0, v0.getLanePosition(), DELTA);
+ }
+
+ /**
+ * Tests that the vehicle at step 2 is about 1.9m at beginning of its
+ * departure lane. Note: this may change if SUMO's internal mobility model
+ * is changed.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testVehiclePositionAtStepTwo() throws IOException {
+ conn.nextSimStep();
+ conn.nextSimStep();
+ final Repository<Vehicle> repo = conn.getVehicleRepository();
+ Vehicle v0 = repo.getByID("0.0");
+ assertEquals(1.886542, v0.getLanePosition(), DELTA);
+ }
+
private Vehicle firstVehicle = null;
-
- /**
- * This test reads a vehicle's route and checks for its correctness.
- * (they all have the same route)
- * @throws IOException
- */
- @Test
- public void testRoute() throws IOException {
- getFirstVehicle();
-
- List<Edge> route = firstVehicle.getCurrentRoute();
- assertEquals(4, route.size());
-
- Iterator<Edge> it = route.iterator();
- assertEquals("beg", it.next().getID());
- assertEquals("middle", it.next().getID());
- assertEquals("end", it.next().getID());
- assertEquals("rend", it.next().getID());
- }
-
- /**
- * This test increases the travel time of a road "perceived" by the first vehicle.
- * This will make the vehicle look for an alternative route.
- * @throws IOException
- */
- @Test
- public void testRerouting()
- throws IOException {
-
-
+
+ /**
+ * This test reads a vehicle's route and checks for its correctness. (they
+ * all have the same route)
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testRoute() throws IOException {
+ getFirstVehicle();
+
+ List<Edge> route = firstVehicle.getCurrentRoute();
+ assertEquals(4, route.size());
+
+ Iterator<Edge> it = route.iterator();
+ assertEquals("beg", it.next().getID());
+ assertEquals("middle", it.next().getID());
+ assertEquals("end", it.next().getID());
+ assertEquals("rend", it.next().getID());
+ }
+
+ /**
+ * This test increases the travel time of a road "perceived" by the first
+ * vehicle. This will make the vehicle look for an alternative route.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testRerouting() throws IOException {
+
getFirstVehicle();
-
+
List<Edge> routeBefore = firstVehicle.getCurrentRoute();
log.info("Route before: " + routeBefore);
- String edgeID = "middle";
+ String edgeID = "middle";
Edge edge = conn.getEdgeRepository().getByID(edgeID);
- ChangeEdgeTravelTimeQuery settq = firstVehicle.querySetEdgeTravelTime();
- settq.setEdge(edge);
+ ChangeEdgeTravelTimeQuery settq = firstVehicle.querySetEdgeTravelTime();
+ settq.setEdge(edge);
settq.setTravelTime(10000);
- settq.run();
-
- firstVehicle.queryReroute().run();
-
+ settq.run();
+
+ firstVehicle.queryReroute().run();
+
List<Edge> routeAfter = firstVehicle.getCurrentRoute();
log.info("Route after: " + routeAfter);
-
+
assertFalse(routeBefore.equals(routeAfter));
}
-
- /**
- * Returns the first vehicle entered in the simulation. Since all vehicles
- * depart from the same road, and SUMO lets at most one vehicle to depart
- * from a given road at each step, the vehicle returned from this function
- * will always be the same.
- *
- * @throws IOException
+
+ /**
+ * Returns the first vehicle entered in the simulation. Since all vehicles
+ * depart from the same road, and SUMO lets at most one vehicle to depart
+ * from a given road at each step, the vehicle returned from this function
+ * will always be the same.
+ *
+ * @throws IOException
*/
public void getFirstVehicle() throws IOException {
Repository<Vehicle> repo = conn.getVehicleRepository();
- while(repo.getAll().isEmpty())
- conn.nextSimStep();
-
- firstVehicle = repo.getAll().values().iterator().next();
+ while (repo.getAll().isEmpty())
+ conn.nextSimStep();
+
+ firstVehicle = repo.getAll().values().iterator().next();
}
-
- /**
- * This test increases the travel time of a road, checks that the new travel
- * time is accepted by SUMO, and verifies that the first vehicle changed its
- * route. In contrast with {@link #testRerouting()}, the specified travel
- * time applies to all vehicles in the simulation.
- *
- * @throws IOException
+
+ /**
+ * This test increases the travel time of a road, checks that the new travel
+ * time is accepted by SUMO, and verifies that the first vehicle changed its
+ * route. In contrast with {@link #testRerouting()}, the specified travel
+ * time applies to all vehicles in the simulation.
+ *
+ * @throws IOException
*/
@Test
- public void testChangeGlobalTravelTime()
- throws IOException {
+ public void testChangeGlobalTravelTime() throws IOException {
getFirstVehicle();
-
+
List<Edge> routeBefore = firstVehicle.getCurrentRoute();
log.info("Route before: " + routeBefore);
- String edgeID = "middle";
- Edge edge = conn.getEdgeRepository().getByID(edgeID);
- ChangeGlobalTravelTimeQuery cttq = edge.queryChangeTravelTime();
- cttq.setBeginTime(0);
- cttq.setEndTime(1000);
- cttq.setTravelTime(10000);
- cttq.run();
-
- ReadGlobalTravelTimeQuery rgttq = edge.queryReadGlobalTravelTime();
- rgttq.setTime(conn.getCurrentSimStep());
+ String edgeID = "middle";
+ Edge edge = conn.getEdgeRepository().getByID(edgeID);
+ ChangeGlobalTravelTimeQuery cttq = edge.queryChangeTravelTime();
+ cttq.setBeginTime(0);
+ cttq.setEndTime(1000);
+ cttq.setTravelTime(10000);
+ cttq.run();
+
+ ReadGlobalTravelTimeQuery rgttq = edge.queryReadGlobalTravelTime();
+ rgttq.setTime(conn.getCurrentSimTime() / 1000);
double newTravelTime = rgttq.get();
assertEquals(10000, newTravelTime, DELTA);
@@ -379,561 +372,719 @@ public class TraCITest extends SingleSimTraCITest {
List<Edge> routeAfter = firstVehicle.getCurrentRoute();
log.info("Route after: " + routeAfter);
-
- assertFalse(routeBefore.equals(routeAfter));
- }
-
- /**
- * This test demonstrates the usage of the {@link Lane} object to get
- * geometric information.
- *
- * @throws IOException
- */
- @Test
- public void testGetShape() throws IOException {
- Lane lane = conn.getLaneRepository().getByID("beg_0");
- PathIterator it = lane.getShape().getPathIterator(null);
- assertFalse(it.isDone());
- double[] coords = new double[2];
- assertEquals(PathIterator.SEG_MOVETO, it.currentSegment(coords));
- assertEquals( 0 , coords[0], DELTA);
- assertEquals( -1.65, coords[1], DELTA);
- it.next();
- assertEquals(PathIterator.SEG_LINETO, it.currentSegment(coords));
- assertEquals(498.55, coords[0], DELTA);
- assertEquals( -1.65, coords[1], DELTA);
- it.next();
- assertTrue(it.isDone());
- }
-
- /**
- * This test demonstrates the usage of the {@link Lane} object to get
- * topological information.
- *
- * @throws IOException
- */
- @Test
- public void testGetBelongingEdge() throws IOException {
- Lane lane = conn.getLaneRepository().getByID("beg_0");
- Edge edge = lane.getParentEdge();
- assertEquals("beg", edge.getID());
- }
-
- /**
- * This test demonstrates how the execution speed can be increased by the
- * usage of a {@link MultiQuery}. First, the simulation is advanced to
- * populate the roads. Then, the position of all vehicles is queried for a
- * given number of steps. The query is made in two methods: in the first
- * method, a network request is made for each vehicle; in the second method,
- * the queries for all vehicles are put into a MultiQuery, and only one
- * network request is made. This test verifies that the performance of the
- * second method is higher than the first. The difference can be up to 10x
- * on a Linux machine, less on a Windows machine.
- *
- * @throws IllegalStateException
- * @throws IOException
- */
- @Test
-// @Ignore // its duration may be annoying; feel free to comment this
- public void testMultiQueryPerformance() throws IllegalStateException, IOException {
- final int RETRIES = 5;
-
- while (conn.getCurrentSimStep() < 300)
- conn.nextSimStep();
-
-
- long start = System.currentTimeMillis();
- for (int r = 0; r < RETRIES; r++) {
- Map<String, Vehicle> vehicles = conn.getVehicleRepository().getAll();
- for (Vehicle vehicle : vehicles.values()) {
- vehicle.getPosition();
- }
- conn.nextSimStep();
- }
- long elapsedSingle = System.currentTimeMillis() - start;
- log.info("Individual queries: " + elapsedSingle + " ms");
-
- conn.nextSimStep(); // to clear already read values
-
- start = System.currentTimeMillis();
- for (int r = 0; r < RETRIES; r++) {
- Map<String, Vehicle> vehicles = conn.getVehicleRepository().getAll();
- MultiQuery multi = conn.makeMultiQuery();
- for (Vehicle vehicle : vehicles.values()) {
- multi.add(vehicle.queryReadPosition());
- }
- multi.add(conn.getVehicleRepository().getQuery());
- multi.run();
- conn.nextSimStep();
- }
- long elapsedMulti = System.currentTimeMillis() - start;
- log.info("MultiQuery queries: " + elapsedMulti + " ms");
-
- assertTrue(elapsedMulti < elapsedSingle);
- }
-
- /**
- * This test demonstrates the read of the network's physical bounds.
- * @throws IOException
- */
- @Test
- public void testGetBounds() throws IOException {
- Rectangle2D bounds = conn.getSimulationData().queryNetBoundaries().get();
- assertEquals(0.0, bounds.getMinX(), DELTA);
- assertEquals(0.0, bounds.getMinY(), DELTA);
- assertEquals(2500.0, bounds.getMaxX(), DELTA);
- assertEquals(500.0, bounds.getMaxY(), DELTA); }
-
- /**
- * Ensures that the set of roads in the network matches a predefined set.
- * @throws IOException
- */
- @Test
- public void testGetRoads() throws IOException, InterruptedException {
- Set<String> expectedLaneIDs = new HashSet<String>();
- expectedLaneIDs.add("beg_0");
- expectedLaneIDs.add(":beg_0_0");
- expectedLaneIDs.add(":beg_1_0");
- expectedLaneIDs.add("beg2left_0");
- expectedLaneIDs.add(":begleft_0_0");
- expectedLaneIDs.add("middle_0");
- expectedLaneIDs.add("left_0");
- expectedLaneIDs.add(":endleft_0_0");
- expectedLaneIDs.add("left2end_0");
- expectedLaneIDs.add(":end_0_0");
- expectedLaneIDs.add(":end_1_0");
- expectedLaneIDs.add("end_0");
- expectedLaneIDs.add(":absEnd_0_0");
- expectedLaneIDs.add("rend_0");
-
-
- Collection<Lane> lanes = conn.getLaneRepository().getAll().values();
- Set<String> laneIDs = new HashSet<String>();
- for (Lane lane : lanes) {
- laneIDs.add(lane.getID());
- }
-
- assertEquals(expectedLaneIDs, laneIDs);
- }
-
- /**
- * Checks that the reported max speed of a lane is correct.
- * @throws IOException
- */
- @Test
- public void testGetLaneMaxSpeed() throws IOException {
- assertEquals(27.8, conn.getLaneRepository().getByID("beg_0").getMaxSpeed(), DELTA);
- }
-
-
- /**
- * This test verifies that all the vehicles entered in the simulation will
- * leave it sooner or later.
- * @throws IOException
- */
- @Test
-// @Ignore // its duration may be annoying; feel free to comment this
- public void testWhoDepartsArrives() throws IOException {
-
- final Set<Vehicle> traveling = new HashSet<Vehicle>();
-
- conn.addVehicleLifecycleObserver(new VehicleLifecycleObserver() {
-
- @Override
- public void vehicleArrived(Vehicle v) {
- assertTrue(traveling.contains(v));
- traveling.remove(v);
- if (traveling.isEmpty()) {
- try {
- conn.close();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
- }
- }
-
- @Override
- public void vehicleDeparted(Vehicle v) {
- assertFalse(traveling.contains(v));
- traveling.add(v);
- }
-
- @Override
- public void vehicleTeleportEnding(Vehicle v) { }
-
- @Override
- public void vehicleTeleportStarting(Vehicle v) { }
- });
-
- while(!conn.isClosed()) {
- conn.nextSimStep();
- log.info("step " + conn.getCurrentSimStep());
- }
-
- }
-
- /**
- * This test shows how to change a vehicle's destination road to "end",
- * which is just before the default "rend", then advances the simulation to
- * check that "rend" is never traversed by the vehicle until it exits.
- *
- * @throws IOException
- */
- @Test
- public void testChangeTarget() throws IOException {
- getFirstVehicle();
- Vehicle v = firstVehicle;
-
- Edge endEdge = conn.getEdgeRepository().getByID("end");
- v.changeTarget(endEdge);
-
- Edge lastEdge = null;
- while (conn.getVehicleRepository().getByID(v.getID()) != null) {
- lastEdge = v.getCurrentEdge();
- assertFalse(lastEdge.getID().equals("rend"));
-
- conn.nextSimStep();
- }
- }
-
- /**
- * This test checks ensures that changing the destination road also
- * changes the vehicle's current route list such that the last road is
- * the new destination road.
- * @throws IOException
- */
- @Test
- public void testChangeTargetAlsoAffectsRouteList() throws IOException {
- getFirstVehicle();
- Vehicle v = firstVehicle;
- Edge endEdge = conn.getEdgeRepository().getByID("end");
- v.changeTarget(endEdge);
- List<Edge> route = v.getCurrentRoute();
- assertEquals("end", route.get(route.size()-1).getID());
- }
-
- /**
- * This test tries to explicitly set a vehicle's route, and verifies that
- * SUMO accepts it.
- *
- * @throws IOException
- */
- @Test
- public void testChangeRoute() throws IOException {
- getFirstVehicle();
- Vehicle v = firstVehicle;
- List<Edge> newRoute = new ArrayList<Edge>();
- newRoute.add(conn.getEdgeRepository().getByID("beg"));
- newRoute.add(conn.getEdgeRepository().getByID("beg2left"));
- newRoute.add(conn.getEdgeRepository().getByID("left"));
- newRoute.add(conn.getEdgeRepository().getByID("left2end"));
- v.changeRoute(newRoute);
- assertEquals(newRoute, v.getCurrentRoute());
- }
-
- /**
- * This test demonstrates the usage of the {@link Link} object by testing
- * the links between a lane and the lanes a vehicle can go through.
- *
- * @throws IOException
- */
- @Test
- public void testLaneLinks() throws IOException {
- Lane begLane = conn.getLaneRepository().getByID("beg_0");
- List<Link> links = begLane.getLinks();
- Set<String> linkIDs = new HashSet<String>();
- Set<String> intLinkIDs = new HashSet<String>();
- for (Link link : links) {
- linkIDs.add(link.getNextNonInternalLane().getID());
- intLinkIDs.add(link.getNextInternalLane().getID());
- }
-
- assertEquals(2, linkIDs.size());
- assertTrue(linkIDs.contains("middle_0"));
- assertTrue(intLinkIDs.contains(":beg_0_0"));
- assertTrue(linkIDs.contains("beg2left_0"));
- assertTrue(intLinkIDs.contains(":beg_1_0"));
- }
-
- /**
- * This test ensures that a vehicle's X/Y position never goes outside the
- * road bounds.
- *
- * @throws IOException
- */
- @Test
- public void testVehiclePositionIsInBounds() throws IOException {
- getFirstVehicle();
- while (conn.getVehicleRepository().getByID(firstVehicle.getID()) != null) {
- Point2D pos = firstVehicle.getPosition();
- assertTrue(pos.getX() >= 0);
- assertTrue(pos.getX() < 2500);
- assertEquals(-1.65, pos.getY(), DELTA);
- conn.nextSimStep();
- }
- }
-
- /**
- * This test demonstrates that getting info from an invalid vehicle (e.g. an
- * exited vehicle) will cause an exception. It also shows that the vehicle
- * in {@link VehicleLifecycleObserver#vehicleArrived(Vehicle)} can't be
- * queried anymore.
- *
- * @throws IOException
- */
- @Test
- public void testUsingInactiveVehicle() throws IOException {
- getFirstVehicle();
- conn.addVehicleLifecycleObserver(new VehicleLifecycleObserver() {
- @Override
- public void vehicleTeleportStarting(Vehicle vehicle) {}
- @Override
- public void vehicleTeleportEnding(Vehicle vehicle) { }
- @Override
- public void vehicleDeparted(Vehicle vehicle) { }
- @Override
- public void vehicleArrived(Vehicle vehicle) {
- if (vehicle.equals(firstVehicle)) {
- try {
- log.info("pos: " + firstVehicle.getPosition());
- fail("it should throw an exception");
- } catch (IOException e) {
- }
- }
- }
- });
-
- for (int t=0; t<500; t++) {
- conn.nextSimStep();
- }
- }
-
- /**
- * Checks for presence of a Point of Interest.
- *
- * @throws IOException
- */
- @Test
- public void testPOIExistence() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- assertNotNull(poiRepo.getByID("0"));
- }
-
- /**
- * Checks the correct reading of a POI's type.
- *
- * @throws IOException
- */
- @Test
- public void testPOIType() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- POI poi = poiRepo.getByID("0");
- assertEquals("TEST_TYPE", poi.getType());
- }
-
- /**
- * Checks the correct reading of a POI's color.
- *
- * @throws IOException
- */
- @Test
- public void testPOIColor() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- POI poi = poiRepo.getByID("0");
- Color c = new Color(255, 128, 0);
- assertEquals(c, poi.getColor());
- }
-
- /**
- * Checks the correct reading of a POI's position.
- *
- * @throws IOException
- */
- @Test
- public void testPOIPosition() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- POI poi = poiRepo.getByID("0");
- Point2D pos = new Point2D.Double(100, 50);
- Point2D poiPos = poi.getPosition();
- assertEquals(pos.getX(), poiPos.getX(), DELTA);
- assertEquals(pos.getY(), poiPos.getY(), DELTA);
- }
-
- /**
- * Checks the correct setting of a POI's type.
- *
- * @throws IOException
- */
- @Test
- public void testSetPOIType() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- POI poi = poiRepo.getByID("0");
- final String newType = "NEW_TYPE";
- poi.changeType(newType);
- assertEquals(newType, poi.getType());
- }
-
- /**
- * Checks the correct setting of a POI's position.
- *
- * @throws IOException
- */
- @Test
- public void testSetPOIPosition() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- POI poi = poiRepo.getByID("0");
- final Point2D newPos = new Point2D.Double(0, 0);
- poi.changePosition(newPos);
- final Point2D pos = poi.getPosition();
- assertEquals(newPos.getX(), pos.getX(), DELTA);
- assertEquals(newPos.getY(), pos.getY(), DELTA);
- }
-
- /**
- * Checks the correct setting of a POI's color.
- *
- * @throws IOException
- */
- @Test
- public void testSetPOIColor() throws IOException {
- Repository<POI> poiRepo = conn.getPOIRepository();
- POI poi = poiRepo.getByID("0");
- final Color newColor = Color.cyan;
- poi.changeColor(newColor);
- assertEquals(newColor, poi.getColor());
- }
-
- /**
- * Checks for presence of a Multi-entry/Multi-exit detector.
- *
- * @throws IOException
- */
- @Test
- public void testMeMeExistence() throws IOException {
- Repository<MeMeDetector> memeRepo = conn.getMeMeDetectorRepository();
- assertNotNull(memeRepo.getByID("e3_0"));
- }
-
- /**
- * Checks for the correct behaviour of a MeMe detector.
- * @throws IOException
- */
- @Test
- public void testMeMeDetectorIsDetecting() throws IOException {
-
- for (int t=0; t<100; t++) {
- conn.nextSimStep();
- }
-
- Repository<MeMeDetector> memeRepo = conn.getMeMeDetectorRepository();
- MeMeDetector detector = memeRepo.getByID("e3_0");
-
- assertEquals(38, (int)detector.getVehicleNumber());
- }
-
- /**
- * Checks for the correct adding of new vehicles.
- *
- * @throws IOException
- */
- @Test
- public void testAddVehicle() throws IOException {
- conn.nextSimStep();
-
- //assertTrue(conn.getVehicleRepository().getIDs().size() > 0);
- final String id1 = "A_NEW_VEHICLE";
- final String id2 = "ANOTHER_NEW_VEHICLE";
- Route route = conn.getRouteRepository().getByID("0");
- VehicleType vType = conn.getVehicleTypeRepository().getByID("KRAUSS_DEFAULT");
-
- int now = conn.getCurrentSimStep() * 1000; // time is in ms
-
- /*
- * Add one vehicle now and one at a later time.
- */
- AddVehicleQuery avqNow = conn.queryAddVehicle();
- avqNow.setVehicleData(id1, vType, route, 0, now, 0, 0);
- avqNow.run();
-
- AddVehicleQuery avqLater = conn.queryAddVehicle();
- avqLater.setVehicleData(id2, vType, route, 0, now+70001, 0, 0);
- avqLater.run();
-
- /*
- * The new vehicle might not enter the simulation immediately because its
- * lane must be freed of other waiting vehicles first.
- */
- for (int t=0; t<70; t++)
- conn.nextSimStep();
-
- assertTrue(conn.getVehicleRepository().getAll().containsKey(id1));
- assertFalse(conn.getVehicleRepository().getAll().containsKey(id2));
-
- for (int t=0; t<70; t++)
- conn.nextSimStep();
-
- assertTrue(conn.getVehicleRepository().getAll().containsKey(id2));
- }
-
- /**
- * Checks for the correct removal of a vehicle.
- *
- * @throws IOException
- */
- @Test
- public void testRemoveVehicle() throws IOException {
- getFirstVehicle();
- RemoveVehicleQuery rvq = conn.queryRemoveVehicle();
- rvq.setVehicleData(firstVehicle, 1);
- rvq.run();
- conn.nextSimStep();
- assertNull(conn.getVehicleRepository().getByID(firstVehicle.getID()));
- }
-
- /**
- * Checks for the correct adding of a new route.
- *
- * @throws IOException
- */
- @Test
- public void testAddRoute() throws IOException {
- conn.nextSimStep();
-
- final String id = "A_NEW_ROUTE";
-
- AddRouteQuery arq = conn.queryAddRoute();
- List<Edge> edges = new ArrayList<Edge>();
- edges.add(conn.getEdgeRepository().getByID("beg"));
- edges.add(conn.getEdgeRepository().getByID("beg2left"));
- edges.add(conn.getEdgeRepository().getByID("left"));
- edges.add(conn.getEdgeRepository().getByID("left2end"));
- edges.add(conn.getEdgeRepository().getByID("end"));
- arq.setVehicleData(id, edges);
- arq.run();
-
- assertTrue(conn.getRouteRepository().getAll().containsKey(id));
- }
-
- @Test
- public void testGetLaneIndex() throws IOException {
- /*
- * NOTE: it's too easy to check for the lane index in a one-lane
- * road. This should be tested in a simulation scenario with
- * more lanes per road.
- */
- getFirstVehicle();
-
- assertThat(firstVehicle.getLaneIndex(), equalTo(0));
- }
-
-
- @Test
- public void testGetLaneID() throws IOException {
- getFirstVehicle();
-
- assertThat(firstVehicle.getLaneId().getID(), equalTo("beg_0"));
- }
-
-
- // TODO add induction loop tests
+
+ assertFalse(routeBefore.equals(routeAfter));
+ }
+
+ /**
+ * This test demonstrates the usage of the {@link Lane} object to get
+ * geometric information.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetShape() throws IOException {
+ Lane lane = conn.getLaneRepository().getByID("beg_0");
+ PathIterator it = lane.getShape().getPathIterator(null);
+ assertFalse(it.isDone());
+ double[] coords = new double[2];
+ assertEquals(PathIterator.SEG_MOVETO, it.currentSegment(coords));
+ assertEquals(0, coords[0], DELTA);
+ assertEquals(-1.65, coords[1], DELTA);
+ it.next();
+ assertEquals(PathIterator.SEG_LINETO, it.currentSegment(coords));
+ assertEquals(498.55, coords[0], DELTA);
+ assertEquals(-1.65, coords[1], DELTA);
+ it.next();
+ assertTrue(it.isDone());
+ }
+
+ /**
+ * This test demonstrates the usage of the {@link Lane} object to get
+ * topological information.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetBelongingEdge() throws IOException {
+ Lane lane = conn.getLaneRepository().getByID("beg_0");
+ Edge edge = lane.getParentEdge();
+ assertEquals("beg", edge.getID());
+ }
+
+ /**
+ * This test demonstrates how the execution speed can be increased by the
+ * usage of a {@link MultiQuery}. First, the simulation is advanced to
+ * populate the roads. Then, the position of all vehicles is queried for a
+ * given number of steps. The query is made in two methods: in the first
+ * method, a network request is made for each vehicle; in the second method,
+ * the queries for all vehicles are put into a MultiQuery, and only one
+ * network request is made. This test verifies that the performance of the
+ * second method is higher than the first. The difference can be up to 10x
+ * on a Linux machine, less on a Windows machine.
+ *
+ * @throws IllegalStateException
+ * @throws IOException
+ */
+ @Test
+ // @Ignore // its duration may be annoying; feel free to comment this
+ public void testMultiQueryPerformance() throws IllegalStateException, IOException {
+ final int RETRIES = 5;
+
+ while (conn.getCurrentSimTime() < 300000)
+ conn.nextSimStep();
+
+ long start = System.currentTimeMillis();
+ for (int r = 0; r < RETRIES; r++) {
+ Map<String, Vehicle> vehicles = conn.getVehicleRepository().getAll();
+ for (Vehicle vehicle : vehicles.values()) {
+ vehicle.getPosition();
+ }
+ conn.nextSimStep();
+ }
+ long elapsedSingle = System.currentTimeMillis() - start;
+ log.info("Individual queries: " + elapsedSingle + " ms");
+
+ conn.nextSimStep(); // to clear already read values
+
+ start = System.currentTimeMillis();
+ for (int r = 0; r < RETRIES; r++) {
+ Map<String, Vehicle> vehicles = conn.getVehicleRepository().getAll();
+ MultiQuery multi = conn.makeMultiQuery();
+ for (Vehicle vehicle : vehicles.values()) {
+ multi.add(vehicle.queryReadPosition());
+ }
+ multi.add(conn.getVehicleRepository().getQuery());
+ multi.run();
+ conn.nextSimStep();
+ }
+ long elapsedMulti = System.currentTimeMillis() - start;
+ log.info("MultiQuery queries: " + elapsedMulti + " ms");
+
+ assertTrue(elapsedMulti < elapsedSingle);
+ }
+
+ /**
+ * This test demonstrates the read of the network's physical bounds.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetBounds() throws IOException {
+ Rectangle2D bounds = conn.getSimulationData().queryNetBoundaries().get();
+ assertEquals(0.0, bounds.getMinX(), DELTA);
+ assertEquals(0.0, bounds.getMinY(), DELTA);
+ assertEquals(2500.0, bounds.getMaxX(), DELTA);
+ assertEquals(500.0, bounds.getMaxY(), DELTA);
+ }
+
+ /**
+ * Ensures that the set of roads in the network matches a predefined set.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetRoads() throws IOException, InterruptedException {
+ Set<String> expectedLaneIDs = new HashSet<String>();
+ expectedLaneIDs.add("beg_0");
+ expectedLaneIDs.add(":beg_0_0");
+ expectedLaneIDs.add(":beg_1_0");
+ expectedLaneIDs.add("beg2left_0");
+ expectedLaneIDs.add(":begleft_0_0");
+ expectedLaneIDs.add("middle_0");
+ expectedLaneIDs.add("left_0");
+ expectedLaneIDs.add(":endleft_0_0");
+ expectedLaneIDs.add("left2end_0");
+ expectedLaneIDs.add(":end_0_0");
+ expectedLaneIDs.add(":end_1_0");
+ expectedLaneIDs.add("end_0");
+ expectedLaneIDs.add(":absEnd_0_0");
+ expectedLaneIDs.add("rend_0");
+
+ Collection<Lane> lanes = conn.getLaneRepository().getAll().values();
+ Set<String> laneIDs = new HashSet<String>();
+ for (Lane lane : lanes) {
+ laneIDs.add(lane.getID());
+ }
+
+ assertEquals(expectedLaneIDs, laneIDs);
+ }
+
+ /**
+ * Checks that the reported max speed of a lane is correct.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testGetLaneMaxSpeed() throws IOException {
+ assertEquals(27.8, conn.getLaneRepository().getByID("beg_0").getMaxSpeed(), DELTA);
+ }
+
+ /**
+ * This test verifies that all the vehicles entered in the simulation will
+ * leave it sooner or later.
+ *
+ * @throws IOException
+ */
+ @Test
+ // @Ignore // its duration may be annoying; feel free to comment this
+ public void testWhoDepartsArrives() throws IOException {
+
+ final Set<Vehicle> traveling = new HashSet<Vehicle>();
+
+ conn.addVehicleLifecycleObserver(new VehicleLifecycleObserver() {
+
+ public void vehicleArrived(Vehicle v) {
+ assertTrue(traveling.contains(v));
+ traveling.remove(v);
+ if (traveling.isEmpty()) {
+ try {
+ conn.close();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ public void vehicleDeparted(Vehicle v) {
+ assertFalse(traveling.contains(v));
+ traveling.add(v);
+ }
+
+ public void vehicleTeleportEnding(Vehicle v) {
+ }
+
+ public void vehicleTeleportStarting(Vehicle v) {
+ }
+ });
+
+ while (!conn.isClosed()) {
+ conn.nextSimStep();
+ log.info("step " + conn.getCurrentSimTime() / 1000);
+ }
+
+ }
+
+ /**
+ * This test shows how to change a vehicle's destination road to "end",
+ * which is just before the default "rend", then advances the simulation to
+ * check that "rend" is never traversed by the vehicle until it exits.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testChangeTarget() throws IOException {
+ getFirstVehicle();
+ Vehicle v = firstVehicle;
+
+ Edge endEdge = conn.getEdgeRepository().getByID("end");
+ v.changeTarget(endEdge);
+
+ Edge lastEdge = null;
+ while (conn.getVehicleRepository().getByID(v.getID()) != null) {
+ lastEdge = v.getCurrentEdge();
+ assertFalse(lastEdge.getID().equals("rend"));
+
+ conn.nextSimStep();
+ }
+ }
+
+ /**
+ * This test checks ensures that changing the destination road also changes
+ * the vehicle's current route list such that the last road is the new
+ * destination road.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testChangeTargetAlsoAffectsRouteList() throws IOException {
+ getFirstVehicle();
+ Vehicle v = firstVehicle;
+ Edge endEdge = conn.getEdgeRepository().getByID("end");
+ v.changeTarget(endEdge);
+ List<Edge> route = v.getCurrentRoute();
+ assertEquals("end", route.get(route.size() - 1).getID());
+ }
+
+ /**
+ * This test tries to explicitly set a vehicle's route, and verifies that
+ * SUMO accepts it.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testChangeRoute() throws IOException {
+ getFirstVehicle();
+ Vehicle v = firstVehicle;
+ List<Edge> newRoute = new ArrayList<Edge>();
+ newRoute.add(conn.getEdgeRepository().getByID("beg"));
+ newRoute.add(conn.getEdgeRepository().getByID("beg2left"));
+ newRoute.add(conn.getEdgeRepository().getByID("left"));
+ newRoute.add(conn.getEdgeRepository().getByID("left2end"));
+ v.changeRoute(newRoute);
+ assertEquals(newRoute, v.getCurrentRoute());
+ }
+
+ /**
+ * This test demonstrates the usage of the {@link Link} object by testing
+ * the links between a lane and the lanes a vehicle can go through.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testLaneLinks() throws IOException {
+ Lane begLane = conn.getLaneRepository().getByID("beg_0");
+ List<Link> links = begLane.getLinks();
+ Set<String> linkIDs = new HashSet<String>();
+ Set<String> intLinkIDs = new HashSet<String>();
+ for (Link link : links) {
+ linkIDs.add(link.getNextNonInternalLane().getID());
+ intLinkIDs.add(link.getNextInternalLane().getID());
+ }
+
+ assertEquals(2, linkIDs.size());
+ assertTrue(linkIDs.contains("middle_0"));
+ assertTrue(intLinkIDs.contains(":beg_0_0"));
+ assertTrue(linkIDs.contains("beg2left_0"));
+ assertTrue(intLinkIDs.contains(":beg_1_0"));
+ }
+
+ /**
+ * This test ensures that a vehicle's X/Y position never goes outside the
+ * road bounds.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testVehiclePositionIsInBounds() throws IOException {
+ getFirstVehicle();
+ while (conn.getVehicleRepository().getByID(firstVehicle.getID()) != null) {
+ Point2D pos = firstVehicle.getPosition();
+ assertTrue(pos.getX() >= 0);
+ assertTrue(pos.getX() < 2500);
+ assertEquals(-1.65, pos.getY(), DELTA);
+ conn.nextSimStep();
+ }
+ }
+
+ /**
+ * This test demonstrates that getting info from an invalid vehicle (e.g. an
+ * exited vehicle) will cause an exception. It also shows that the vehicle
+ * in {@link VehicleLifecycleObserver#vehicleArrived(Vehicle)} can't be
+ * queried anymore.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testUsingInactiveVehicle() throws IOException {
+ getFirstVehicle();
+ conn.addVehicleLifecycleObserver(new VehicleLifecycleObserver() {
+ public void vehicleTeleportStarting(Vehicle vehicle) {
+ }
+
+ public void vehicleTeleportEnding(Vehicle vehicle) {
+ }
+
+ public void vehicleDeparted(Vehicle vehicle) {
+ }
+
+ public void vehicleArrived(Vehicle vehicle) {
+ if (vehicle.equals(firstVehicle)) {
+ try {
+ log.info("pos: " + firstVehicle.getPosition());
+ fail("it should throw an exception");
+ } catch (IOException e) {
+ log.trace(e);
+ }
+ }
+ }
+ });
+
+ for (int t = 0; t < 500; t++) {
+ conn.nextSimStep();
+ }
+ }
+
+ /**
+ * Checks for presence of a Point of Interest.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testPOIExistence() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ assertNotNull(poiRepo.getByID("0"));
+ }
+
+ /**
+ * Checks the correct reading of a POI's type.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testPOIType() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ POI poi = poiRepo.getByID("0");
+ assertEquals("TEST_TYPE", poi.getType());
+ }
+
+ /**
+ * Checks the correct reading of a POI's color.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testPOIColor() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ POI poi = poiRepo.getByID("0");
+ Color c = new Color(255, 128, 0);
+ assertEquals(c, poi.getColor());
+ }
+
+ /**
+ * Checks the correct reading of a POI's position.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testPOIPosition() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ POI poi = poiRepo.getByID("0");
+ Point2D pos = new Point2D.Double(100, 50);
+ Point2D poiPos = poi.getPosition();
+ assertEquals(pos.getX(), poiPos.getX(), DELTA);
+ assertEquals(pos.getY(), poiPos.getY(), DELTA);
+ }
+
+ /**
+ * Checks the correct setting of a POI's type.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testSetPOIType() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ POI poi = poiRepo.getByID("0");
+ final String newType = "NEW_TYPE";
+ poi.changeType(newType);
+ assertEquals(newType, poi.getType());
+ }
+
+ /**
+ * Checks the correct setting of a POI's position.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testSetPOIPosition() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ POI poi = poiRepo.getByID("0");
+ final Point2D newPos = new Point2D.Double(0, 0);
+ poi.changePosition(newPos);
+ final Point2D pos = poi.getPosition();
+ assertEquals(newPos.getX(), pos.getX(), DELTA);
+ assertEquals(newPos.getY(), pos.getY(), DELTA);
+ }
+
+ /**
+ * Checks the correct setting of a POI's color.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testSetPOIColor() throws IOException {
+ Repository<POI> poiRepo = conn.getPOIRepository();
+ POI poi = poiRepo.getByID("0");
+ final Color newColor = Color.cyan;
+ poi.changeColor(newColor);
+ assertEquals(newColor, poi.getColor());
+ }
+
+ /**
+ * Checks for presence of a Multi-entry/Multi-exit detector (E3).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testMeMeExistence() throws IOException {
+ Repository<MeMeDetector> memeRepo = conn.getMeMeDetectorRepository();
+ assertNotNull(memeRepo.getByID("e3_0"));
+ }
+
+ /**
+ * Checks for the correct behaviour of a Multi-entry/Multi-exit detector
+ * (E3).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testMeMeDetectorIsDetecting() throws IOException {
+
+ for (int t = 0; t < 100; t++) {
+ conn.nextSimStep();
+ }
+
+ Repository<MeMeDetector> memeRepo = conn.getMeMeDetectorRepository();
+ MeMeDetector detector = memeRepo.getByID("e3_0");
+
+ assertEquals(39, (int) detector.getVehicleNumber());
+ }
+
+ /**
+ * Checks for presence of a Lane area detector (E2).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testLaArExistence() throws IOException {
+ Repository<LaArDetector> laArRepo = conn.getLaArDetectorRepository();
+ assertNotNull(laArRepo.getByID("e2_0"));
+ }
+
+ /**
+ * Checks the get position method of a lane area detector (E2).
+ *
+ * @throws IOException
+ */
+ @Ignore
+ @Test
+ public void testLaArGetPosition() throws IOException {
+ Repository<LaArDetector> laArRepo = conn.getLaArDetectorRepository();
+ LaArDetector laAr = laArRepo.getByID("e2_0");
+ assertEquals(10, laAr.getPosition(), 0);
+ }
+
+ /**
+ * Checks the get lane method of a lane area detector (E2).
+ *
+ * @throws IOException
+ */
+ @Ignore
+ @Test
+ public void testLaArGetLane() throws IOException {
+ Repository<LaArDetector> laArRepo = conn.getLaArDetectorRepository();
+ LaArDetector laAr = laArRepo.getByID("e2_0");
+ assertEquals(laAr.getLane().getID(), "beg_0");
+ }
+
+ /**
+ * Checks for the correct behaviour of a Lane area detector (E2).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testLaArDetectorIsDetecting() throws IOException {
+
+ for (int t = 0; t < 100; t++) {
+ conn.nextSimStep();
+ }
+
+ Repository<LaArDetector> laArRepo = conn.getLaArDetectorRepository();
+ LaArDetector detector = laArRepo.getByID("e2_0");
+
+ assertEquals(1, (int) detector.getVehicleNumber());
+ }
+
+ /**
+ * Checks for presence of a induction loop (E1).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testInLoExistence() throws IOException {
+ Repository<InductionLoop> inLoRepo = conn.getInductionLoopRepository();
+ assertNotNull(inLoRepo.getByID("e1_0"));
+ }
+
+ /**
+ * Checks the get position method of an induction loop (E1).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testInLoGetPosition() throws IOException {
+ Repository<InductionLoop> inLoRepo = conn.getInductionLoopRepository();
+ InductionLoop loop = inLoRepo.getByID("e1_0");
+ assertEquals(30, loop.getPosition(), 0);
+ }
+
+ /**
+ * Checks the get lane method of an induction loop (E1).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testInLoGetLane() throws IOException {
+ Repository<InductionLoop> inLoRepo = conn.getInductionLoopRepository();
+ InductionLoop loop = inLoRepo.getByID("e1_0");
+ assertEquals(loop.getLane().getID(), "beg_0");
+ }
+
+ /**
+ * Checks for the correct behaviour of a induction loop (E1).
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testInductionLoopIsDetecting() throws IOException {
+
+ for (int t = 0; t < 100; t++) {
+ conn.nextSimStep();
+ }
+
+ Repository<InductionLoop> laArRepo = conn.getInductionLoopRepository();
+ InductionLoop detector = laArRepo.getByID("e1_0");
+
+ assertEquals(1, (int) detector.getVehicleNumber());
+ }
+
+ /**
+ * Checks for the correct adding of new vehicles.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testAddVehicle() throws IOException {
+ conn.nextSimStep();
+
+ // assertTrue(conn.getVehicleRepository().getIDs().size() > 0);
+ final String id1 = "A_NEW_VEHICLE";
+ final String id2 = "ANOTHER_NEW_VEHICLE";
+ Route route = conn.getRouteRepository().getByID("0");
+ Lane lane = conn.getLaneRepository().getAll().values().iterator().next();
+ VehicleType vType = conn.getVehicleTypeRepository().getByID("KRAUSS_DEFAULT");
+
+ int now = conn.getCurrentSimTime(); // time is in ms
+
+ /*
+ * Add one vehicle now and one at a later time.
+ */
+ AddVehicleQuery avqNow = conn.queryAddVehicle();
+ avqNow.setVehicleData(id1, vType, route, lane, now, 0, 0);
+ avqNow.run();
+
+ AddVehicleQuery avqLater = conn.queryAddVehicle();
+ avqLater.setVehicleData(id2, vType, route, lane, now + 70001, 0, 0);
+ avqLater.run();
+
+ /*
+ * The new vehicle might not enter the simulation immediately because
+ * its lane must be freed of other waiting vehicles first.
+ */
+ for (int t = 0; t < 70; t++)
+ conn.nextSimStep();
+
+ assertTrue(conn.getVehicleRepository().getAll().containsKey(id1));
+ assertFalse(conn.getVehicleRepository().getAll().containsKey(id2));
+
+ for (int t = 0; t < 80; t++)
+ conn.nextSimStep();
+
+ assertTrue(conn.getVehicleRepository().getAll().containsKey(id2));
+ }
+
+ /**
+ * Checks for the correct removal of a vehicle.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testRemoveVehicle() throws IOException {
+ getFirstVehicle();
+ RemoveVehicleQuery rvq = conn.queryRemoveVehicle();
+ rvq.setVehicleData(firstVehicle, 1);
+ rvq.run();
+ conn.nextSimStep();
+ assertNull(conn.getVehicleRepository().getByID(firstVehicle.getID()));
+ }
+
+ /**
+ * Checks the length of the vehicle type method.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testVehicleTypLength() throws IOException {
+ Repository<VehicleType> repo = conn.getVehicleTypeRepository();
+ assertEquals(5, repo.getByID("DEFAULT_VEHTYPE").getLength(), 0);
+ assertEquals(3, repo.getByID("KRAUSS_DEFAULT").getLength(), 0);
+ assertEquals(0.215, repo.getByID("DEFAULT_PEDTYPE").getLength(), 0);
+ }
+
+ /**
+ * Checks for the correct adding of a new route.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testAddRoute() throws IOException {
+ conn.nextSimStep();
+
+ final String id = "A_NEW_ROUTE";
+
+ AddRouteQuery arq = conn.queryAddRoute();
+ List<Edge> edges = new ArrayList<Edge>();
+ edges.add(conn.getEdgeRepository().getByID("beg"));
+ edges.add(conn.getEdgeRepository().getByID("beg2left"));
+ edges.add(conn.getEdgeRepository().getByID("left"));
+ edges.add(conn.getEdgeRepository().getByID("left2end"));
+ edges.add(conn.getEdgeRepository().getByID("end"));
+ arq.setVehicleData(id, edges);
+ arq.run();
+
+ assertTrue(conn.getRouteRepository().getAll().containsKey(id));
+ }
+
+ /**
+ * Checks for the edges of a route.
+ *
+ * @throws IOException
+ */
+ @Test
+ public void testRouteGetEdges() throws IOException {
+ Route route = conn.getRouteRepository().getByID("0");
+ List<Edge> edges = route.getRoute();
+ assertEquals(4, edges.size());
+ assertEquals("beg", edges.get(0).getID());
+ assertEquals("middle", edges.get(1).getID());
+ assertEquals("end", edges.get(2).getID());
+ assertEquals("rend", edges.get(3).getID());
+ }
+
+ @Test
+ public void testVehicleGetLaneIndex() throws IOException {
+ /*
+ * NOTE: it's too easy to check for the lane index in a one-lane road.
+ * This should be tested in a simulation scenario with more lanes per
+ * road.
+ */
+ getFirstVehicle();
+
+ assertThat(firstVehicle.getLaneIndex(), equalTo(0));
+ }
+
+ @Test
+ public void testVehicleGetLaneID() throws IOException {
+ getFirstVehicle();
+
+ assertThat(firstVehicle.getLaneId().getID(), equalTo("beg_0"));
+ }
+
+ @Test
+ public void testLaneDimensions() throws IOException {
+ Lane lane = conn.getLaneRepository().getByID("beg_0");
+ assertEquals(498.55, lane.getLength(), 0);
+ assertEquals(3.2, lane.getWidth(), 0);
+ }
+
+ @Test
+ public void test500msStep() throws IOException, InterruptedException {
+ conn.close();
+ conn = new SumoTraciConnection(getSimConfigFileLocation(), 0);
+ conn.setStepLength(500);
+ conn.runServer();
+ assertEquals(0, conn.getCurrentSimTime());
+ conn.nextSimStep();
+ assertEquals(500, conn.getCurrentSimTime());
+ }
}
diff --git a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TrafficLightsTest.java b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TrafficLightsTest.java
index b9a5a38..5f6ceb6 100644
--- a/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TrafficLightsTest.java
+++ b/tools/contributed/traci4j/test/java/it/polito/appeal/traci/test/TrafficLightsTest.java
@@ -19,7 +19,10 @@
package it.polito.appeal.traci.test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import it.polito.appeal.traci.ChangeLightsStateQuery;
import it.polito.appeal.traci.ControlledLink;
import it.polito.appeal.traci.ControlledLinks;
@@ -30,7 +33,6 @@ import it.polito.appeal.traci.Phase;
import it.polito.appeal.traci.Program;
import it.polito.appeal.traci.ReadObjectVarQuery;
import it.polito.appeal.traci.Repository;
-import it.polito.appeal.traci.SumoTraciConnection;
import it.polito.appeal.traci.TLState;
import it.polito.appeal.traci.TrafficLight;
@@ -41,7 +43,8 @@ import java.io.IOException;
import java.util.Arrays;
import java.util.List;
-import org.apache.log4j.Logger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
@@ -50,11 +53,11 @@ public class TrafficLightsTest extends SingleSimTraCITest {
private Repository<TrafficLight> repo;
- private static final Logger log = Logger.getLogger(TrafficLightsTest.class);
+ private static final Logger log = LogManager.getLogger();
@Override
protected String getSimConfigFileLocation() {
- return "test/sumo_maps/cross3ltl/test.sumo.cfg";
+ return "test/resources/sumo_maps/cross3ltl/test.sumo.cfg";
}
@Before
@@ -248,10 +251,10 @@ public class TrafficLightsTest extends SingleSimTraCITest {
for (int p = 0; p < PHASES.length; p++) {
TLState tlState = query.get();
final LightState[] states = tlState.lightStates;
- log.info("state at t=" + conn.getCurrentSimStep() + "\n"
+ log.info("state at t=" + conn.getCurrentSimTime() + "ms\n"
+ " expected " + Arrays.toString(PHASES[p]) + "\n"
+ " actual " + Arrays.toString(states));
- assertArrayEquals("state at t=" + conn.getCurrentSimStep(), PHASES[p], states);
+ assertArrayEquals("state at t=" + conn.getCurrentSimTime() + "ms", PHASES[p], states);
for (int t=0; t<PHASES_DURATION[p]; t++)
conn.nextSimStep();
diff --git a/tools/contributed/traci4j/test/log4j.properties b/tools/contributed/traci4j/test/log4j.properties
deleted file mode 100644
index 1a53386..0000000
--- a/tools/contributed/traci4j/test/log4j.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-# source: http://logging.apache.org/log4j/1.2/manual.html#Configuration
-
-# This log4j configuration is similar to BasicConfiguration, but outputs
-# only warnings instead.
-
-# Set root logger level to INFO and its only appender to A1.
-log4j.rootLogger=INFO, A1
-
-# A1 is set to be a ConsoleAppender.
-log4j.appender.A1=org.apache.log4j.ConsoleAppender
-
-# A1 uses PatternLayout.
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
\ No newline at end of file
diff --git a/tools/contributed/traci4j/test/resources/log4j2.xml b/tools/contributed/traci4j/test/resources/log4j2.xml
new file mode 100644
index 0000000..822a963
--- /dev/null
+++ b/tools/contributed/traci4j/test/resources/log4j2.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="error">
+ <Loggers>
+ <Root level="error" />
+ </Loggers>
+</Configuration>
\ No newline at end of file
diff --git a/tools/contributed/traci4j/test/sumo_maps/box1l/input_routes.rou.xml b/tools/contributed/traci4j/test/resources/sumo_maps/box1l/input_routes.rou.xml
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/box1l/input_routes.rou.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/box1l/input_routes.rou.xml
diff --git a/tools/contributed/traci4j/test/sumo_maps/box1l/net.net.xml b/tools/contributed/traci4j/test/resources/sumo_maps/box1l/net.net.xml
similarity index 98%
rename from tools/contributed/traci4j/test/sumo_maps/box1l/net.net.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/box1l/net.net.xml
index 0f58ef3..4815cdc 100644
--- a/tools/contributed/traci4j/test/sumo_maps/box1l/net.net.xml
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/box1l/net.net.xml
@@ -1,76 +1,76 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-
-<!-- generated on 01/12/11 13:09:24 by SUMO netconvert Version dev-SVN-r9534
-
-<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/netconvertConfiguration.xsd">
-
- <input>
- <xml-node-files value="./sumo/basic/simple_nets/box/box1l/box1l.nod.xml"/>
- <xml-edge-files value="./sumo/basic/simple_nets/box/box1l/box1l.edg.xml"/>
- </input>
-
- <output>
- <output-file value="./sumo/basic/simple_nets/box/box1l/net.net.xml"/>
- </output>
-
- <report>
- <verbose value="true"/>
- </report>
-
-</configuration>
--->
-
-<net version="0.13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/net_file.xsd">
-
- <location netOffset="250.00,250.00" convBoundary="0.00,0.00,500.00,500.00" origBoundary="-250.00,-250.00,250.00,250.00" projParameter="!"/>
-
- <edge id=":0_0" function="internal">
- <lane id=":0_0_0" index="0" speed="36.00" length="2.58" shape="3.25,1.65 2.55,1.75 2.05,2.05 1.75,2.55 1.65,3.25"/>
- </edge>
- <edge id=":1_0" function="internal">
- <lane id=":1_0_0" index="0" speed="36.00" length="2.58" shape="1.65,496.75 1.75,497.45 2.05,497.95 2.55,498.25 3.25,498.35"/>
- </edge>
- <edge id=":2_0" function="internal">
- <lane id=":2_0_0" index="0" speed="36.00" length="2.58" shape="496.75,498.35 497.45,498.25 497.95,497.95 498.25,497.45 498.35,496.75"/>
- </edge>
- <edge id=":3_0" function="internal">
- <lane id=":3_0_0" index="0" speed="36.00" length="2.58" shape="498.35,3.25 498.25,2.55 497.95,2.05 497.45,1.75 496.75,1.65"/>
- </edge>
-
- <edge id="0" from="0" to="1" priority="-1">
- <lane id="0_0" index="0" speed="36.00" length="493.50" shape="1.65,3.25 1.65,496.75"/>
- </edge>
- <edge id="1" from="1" to="2" priority="-1">
- <lane id="1_0" index="0" speed="36.00" length="493.50" shape="3.25,498.35 496.75,498.35"/>
- </edge>
- <edge id="2" from="2" to="3" priority="-1">
- <lane id="2_0" index="0" speed="36.00" length="493.50" shape="498.35,496.75 498.35,3.25"/>
- </edge>
- <edge id="3" from="3" to="0" priority="-1">
- <lane id="3_0" index="0" speed="36.00" length="493.50" shape="496.75,1.65 3.25,1.65"/>
- </edge>
-
- <junction id="0" type="priority" x="0.00" y="0.00" incLanes="3_0" intLanes=":0_0_0" shape="0.05,3.25 3.25,3.25 3.25,0.05">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1" type="priority" x="0.00" y="500.00" incLanes="0_0" intLanes=":1_0_0" shape="3.25,499.95 3.25,496.75 0.05,496.75">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="2" type="priority" x="500.00" y="500.00" incLanes="1_0" intLanes=":2_0_0" shape="499.95,496.75 496.75,496.75 496.75,499.95">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="3" type="priority" x="500.00" y="0.00" incLanes="2_0" intLanes=":3_0_0" shape="496.75,3.25 499.95,3.25 496.75,0.05 496.75,3.25">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
-
- <connection from="0" to="1" fromLane="0" toLane="0" via=":1_0_0" dir="r" state="M"/>
- <connection from="1" to="2" fromLane="0" toLane="0" via=":2_0_0" dir="r" state="M"/>
- <connection from="2" to="3" fromLane="0" toLane="0" via=":3_0_0" dir="r" state="M"/>
- <connection from="3" to="0" fromLane="0" toLane="0" via=":0_0_0" dir="r" state="M"/>
-
- <connection from=":0_0" to="0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1_0" to="1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2_0" to="2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":3_0" to="3" fromLane="0" toLane="0" dir="s" state="M"/>
-
-</net>
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- generated on 01/12/11 13:09:24 by SUMO netconvert Version dev-SVN-r9534
+
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/netconvertConfiguration.xsd">
+
+ <input>
+ <xml-node-files value="./sumo/basic/simple_nets/box/box1l/box1l.nod.xml"/>
+ <xml-edge-files value="./sumo/basic/simple_nets/box/box1l/box1l.edg.xml"/>
+ </input>
+
+ <output>
+ <output-file value="./sumo/basic/simple_nets/box/box1l/net.net.xml"/>
+ </output>
+
+ <report>
+ <verbose value="true"/>
+ </report>
+
+</configuration>
+-->
+
+<net version="0.13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/net_file.xsd">
+
+ <location netOffset="250.00,250.00" convBoundary="0.00,0.00,500.00,500.00" origBoundary="-250.00,-250.00,250.00,250.00" projParameter="!"/>
+
+ <edge id=":0_0" function="internal">
+ <lane id=":0_0_0" index="0" speed="36.00" length="2.58" shape="3.25,1.65 2.55,1.75 2.05,2.05 1.75,2.55 1.65,3.25"/>
+ </edge>
+ <edge id=":1_0" function="internal">
+ <lane id=":1_0_0" index="0" speed="36.00" length="2.58" shape="1.65,496.75 1.75,497.45 2.05,497.95 2.55,498.25 3.25,498.35"/>
+ </edge>
+ <edge id=":2_0" function="internal">
+ <lane id=":2_0_0" index="0" speed="36.00" length="2.58" shape="496.75,498.35 497.45,498.25 497.95,497.95 498.25,497.45 498.35,496.75"/>
+ </edge>
+ <edge id=":3_0" function="internal">
+ <lane id=":3_0_0" index="0" speed="36.00" length="2.58" shape="498.35,3.25 498.25,2.55 497.95,2.05 497.45,1.75 496.75,1.65"/>
+ </edge>
+
+ <edge id="0" from="0" to="1" priority="-1">
+ <lane id="0_0" index="0" speed="36.00" length="493.50" shape="1.65,3.25 1.65,496.75"/>
+ </edge>
+ <edge id="1" from="1" to="2" priority="-1">
+ <lane id="1_0" index="0" speed="36.00" length="493.50" shape="3.25,498.35 496.75,498.35"/>
+ </edge>
+ <edge id="2" from="2" to="3" priority="-1">
+ <lane id="2_0" index="0" speed="36.00" length="493.50" shape="498.35,496.75 498.35,3.25"/>
+ </edge>
+ <edge id="3" from="3" to="0" priority="-1">
+ <lane id="3_0" index="0" speed="36.00" length="493.50" shape="496.75,1.65 3.25,1.65"/>
+ </edge>
+
+ <junction id="0" type="priority" x="0.00" y="0.00" incLanes="3_0" intLanes=":0_0_0" shape="0.05,3.25 3.25,3.25 3.25,0.05">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1" type="priority" x="0.00" y="500.00" incLanes="0_0" intLanes=":1_0_0" shape="3.25,499.95 3.25,496.75 0.05,496.75">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="2" type="priority" x="500.00" y="500.00" incLanes="1_0" intLanes=":2_0_0" shape="499.95,496.75 496.75,496.75 496.75,499.95">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="3" type="priority" x="500.00" y="0.00" incLanes="2_0" intLanes=":3_0_0" shape="496.75,3.25 499.95,3.25 496.75,0.05 496.75,3.25">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+
+ <connection from="0" to="1" fromLane="0" toLane="0" via=":1_0_0" dir="r" state="M"/>
+ <connection from="1" to="2" fromLane="0" toLane="0" via=":2_0_0" dir="r" state="M"/>
+ <connection from="2" to="3" fromLane="0" toLane="0" via=":3_0_0" dir="r" state="M"/>
+ <connection from="3" to="0" fromLane="0" toLane="0" via=":0_0_0" dir="r" state="M"/>
+
+ <connection from=":0_0" to="0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1_0" to="1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2_0" to="2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":3_0" to="3" fromLane="0" toLane="0" dir="s" state="M"/>
+
+</net>
diff --git a/tools/contributed/traci4j/test/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg b/tools/contributed/traci4j/test/resources/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg
rename to tools/contributed/traci4j/test/resources/sumo_maps/box1l/test-nonzero-begin-time.sumo.cfg
diff --git a/tools/contributed/traci4j/test/sumo_maps/box1l/test.sumo.cfg b/tools/contributed/traci4j/test/resources/sumo_maps/box1l/test.sumo.cfg
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/box1l/test.sumo.cfg
rename to tools/contributed/traci4j/test/resources/sumo_maps/box1l/test.sumo.cfg
diff --git a/tools/contributed/traci4j/test/sumo_maps/box1l/three_split.net.xml b/tools/contributed/traci4j/test/resources/sumo_maps/box1l/three_split.net.xml
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/box1l/three_split.net.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/box1l/three_split.net.xml
diff --git a/tools/contributed/traci4j/test/sumo_maps/cross3ltl/input_routes.rou.xml b/tools/contributed/traci4j/test/resources/sumo_maps/cross3ltl/input_routes.rou.xml
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/cross3ltl/input_routes.rou.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/cross3ltl/input_routes.rou.xml
diff --git a/tools/contributed/traci4j/test/sumo_maps/cross3ltl/net.net.xml b/tools/contributed/traci4j/test/resources/sumo_maps/cross3ltl/net.net.xml
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/cross3ltl/net.net.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/cross3ltl/net.net.xml
diff --git a/tools/contributed/traci4j/test/sumo_maps/cross3ltl/test.sumo.cfg b/tools/contributed/traci4j/test/resources/sumo_maps/cross3ltl/test.sumo.cfg
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/cross3ltl/test.sumo.cfg
rename to tools/contributed/traci4j/test/resources/sumo_maps/cross3ltl/test.sumo.cfg
diff --git a/tools/contributed/traci4j/test/sumo_maps/polito/polito.net.xml b/tools/contributed/traci4j/test/resources/sumo_maps/polito/polito.net.xml
similarity index 98%
rename from tools/contributed/traci4j/test/sumo_maps/polito/polito.net.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/polito/polito.net.xml
index 8520c33..ddef978 100644
--- a/tools/contributed/traci4j/test/sumo_maps/polito/polito.net.xml
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/polito/polito.net.xml
@@ -1,32268 +1,32268 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- generated on 04/18/13 16:11:29 by SUMO netconvert Version 0.16.0
-<?xml version="1.0" encoding="UTF-8"?>
-
-<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/netconvertConfiguration.xsd">
-
- <input>
- <osm-files value="polito.osm"/>
- </input>
-
- <output>
- <output-file value="polito.net.xml"/>
- </output>
-
- <projection>
- <proj.utm value="true"/>
- </projection>
-
-</configuration>
--->
-
-<net version="0.13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/net_file.xsd">
-
- <location netOffset="-393419.93,-4989448.35" convBoundary="0.00,0.00,2575.84,2867.89" origBoundary="7.646102,45.050621,7.678963,45.076501" projParameter="+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"/>
-
- <edge id=":1096401733_0" function="internal">
- <lane id=":1096401733_0_0" index="0" speed="22.22" length="5.05" shape="830.23,973.05 831.19,973.81 832.29,974.18 833.52,974.17 834.90,973.76"/>
- </edge>
- <edge id=":1096401733_1" function="internal">
- <lane id=":1096401733_1_0" index="0" speed="22.22" length="5.65" shape="830.23,973.05 833.25,977.83"/>
- </edge>
- <edge id=":1168929269_0" function="internal">
- <lane id=":1168929269_0_0" index="0" speed="27.78" length="3.71" shape="1188.47,1081.06 1188.62,1081.22 1188.98,1081.81 1189.54,1082.83 1190.30,1084.27"/>
- </edge>
- <edge id=":1168929269_1" function="internal">
- <lane id=":1168929269_1_0" index="0" speed="27.78" length="5.86" shape="1188.47,1081.06 1183.60,1084.33"/>
- </edge>
- <edge id=":1168929269_2" function="internal">
- <lane id=":1168929269_2_0" index="0" speed="27.78" length="7.29" shape="1186.90,1077.82 1190.30,1084.27"/>
- </edge>
- <edge id=":1168929269_3" function="internal">
- <lane id=":1168929269_3_0" index="0" speed="27.78" length="7.28" shape="1183.98,1079.36 1187.38,1085.80"/>
- </edge>
- <edge id=":1168929269_4" function="internal">
- <lane id=":1168929269_4_0" index="0" speed="27.78" length="5.57" shape="1183.98,1079.36 1184.68,1081.03 1184.85,1082.42 1184.49,1083.52 1183.60,1084.33"/>
- </edge>
- <edge id=":1168929272_0" function="internal">
- <lane id=":1168929272_0_0" index="0" speed="25.00" length="4.96" shape="1139.65,1049.41 1137.36,1045.01"/>
- </edge>
- <edge id=":1168929272_1" function="internal">
- <lane id=":1168929272_1_0" index="0" speed="27.78" length="5.00" shape="1139.65,1049.41 1141.54,1044.78"/>
- </edge>
- <edge id=":1168929295_0" function="internal">
- <lane id=":1168929295_0_0" index="0" speed="25.00" length="5.06" shape="1160.41,1090.51 1158.14,1085.99"/>
- </edge>
- <edge id=":1168929295_1" function="internal">
- <lane id=":1168929295_1_0" index="0" speed="27.78" length="5.13" shape="1163.12,1087.21 1158.14,1085.99"/>
- </edge>
- <edge id=":1168929298_0" function="internal">
- <lane id=":1168929298_0_0" index="0" speed="22.22" length="6.97" shape="820.24,960.93 823.89,966.87"/>
- </edge>
- <edge id=":1168929298_1" function="internal">
- <lane id=":1168929298_1_0" index="0" speed="22.22" length="7.30" shape="817.29,963.74 823.89,966.87"/>
- </edge>
- <edge id=":1168929308_0" function="internal">
- <lane id=":1168929308_0_0" index="0" speed="22.22" length="6.45" shape="774.37,984.96 776.33,984.42 777.17,983.57 776.88,982.42 775.46,980.96"/>
- </edge>
- <edge id=":1168929308_1" function="internal">
- <lane id=":1168929308_1_0" index="0" speed="22.22" length="8.73" shape="774.37,984.96 777.61,984.35 780.01,983.63 781.57,982.82 782.29,981.90"/>
- </edge>
- <edge id=":1168929308_2" function="internal">
- <lane id=":1168929308_2_0" index="0" speed="22.22" length="2.41" shape="774.37,984.96 775.72,985.58 776.25,986.34"/>
- </edge>
- <edge id=":1168929308_6" function="internal">
- <lane id=":1168929308_6_0" index="0" speed="22.22" length="2.41" shape="776.25,986.34 775.97,987.22 774.87,988.22"/>
- </edge>
- <edge id=":1168929308_3" function="internal">
- <lane id=":1168929308_3_0" index="0" speed="22.22" length="7.71" shape="781.10,990.85 780.65,989.35 779.46,988.41 777.53,988.04 774.87,988.22"/>
- </edge>
- <edge id=":1168929308_4" function="internal">
- <lane id=":1168929308_4_0" index="0" speed="22.22" length="11.72" shape="781.10,990.85 780.65,988.17 779.57,985.63 777.84,983.23 775.46,980.96"/>
- </edge>
- <edge id=":1168929308_5" function="internal">
- <lane id=":1168929308_5_0" index="0" speed="22.22" length="9.03" shape="781.10,990.85 782.29,981.90"/>
- </edge>
- <edge id=":1168929310_0" function="internal">
- <lane id=":1168929310_0_0" index="0" speed="27.78" length="1.95" shape="1139.29,1064.21 1139.04,1062.27"/>
- </edge>
- <edge id=":1168929310_1" function="internal">
- <lane id=":1168929310_1_0" index="0" speed="27.78" length="3.94" shape="1139.29,1064.21 1139.50,1064.08 1140.13,1063.70 1141.19,1063.07 1142.67,1062.18"/>
- </edge>
- <edge id=":1168929310_2" function="internal">
- <lane id=":1168929310_2_0" index="0" speed="27.78" length="2.07" shape="1139.08,1064.31 1139.16,1064.14 1139.17,1063.75 1139.14,1063.12 1139.04,1062.27"/>
- </edge>
- <edge id=":1168929310_3" function="internal">
- <lane id=":1168929310_3_0" index="0" speed="27.78" length="4.18" shape="1139.08,1064.31 1142.67,1062.18"/>
- </edge>
- <edge id=":1168929324_0" function="internal">
- <lane id=":1168929324_0_0" index="0" speed="27.78" length="4.59" shape="1203.15,1049.52 1201.42,1050.56 1200.16,1051.19 1199.38,1051.41 1199.09,1051.22"/>
- </edge>
- <edge id=":1168929324_1" function="internal">
- <lane id=":1168929324_1_0" index="0" speed="27.78" length="7.85" shape="1201.39,1046.73 1195.60,1052.03"/>
- </edge>
- <edge id=":1168929324_2" function="internal">
- <lane id=":1168929324_2_0" index="0" speed="27.78" length="1.96" shape="1198.68,1049.30 1199.09,1051.22"/>
- </edge>
- <edge id=":1168929324_3" function="internal">
- <lane id=":1168929324_3_0" index="0" speed="27.78" length="4.27" shape="1198.68,1049.30 1198.59,1049.81 1198.04,1050.44 1197.05,1051.18 1195.60,1052.03"/>
- </edge>
- <edge id=":1168929349_0" function="internal">
- <lane id=":1168929349_0_0" index="0" speed="25.00" length="7.92" shape="831.77,1004.67 830.98,1006.28 830.74,1008.07 831.06,1010.04 831.94,1012.19"/>
- </edge>
- <edge id=":1168929349_1" function="internal">
- <lane id=":1168929349_1_0" index="0" speed="22.22" length="13.80" shape="831.77,1004.67 829.59,1007.48 827.29,1009.90 824.74,1012.06 821.83,1014.12"/>
- </edge>
- <edge id=":1168929349_2" function="internal">
- <lane id=":1168929349_2_0" index="0" speed="27.78" length="9.10" shape="827.65,1004.17 831.94,1012.19"/>
- </edge>
- <edge id=":1168929349_3" function="internal">
- <lane id=":1168929349_3_0" index="0" speed="27.78" length="9.02" shape="824.76,1005.76 829.01,1013.71"/>
- </edge>
- <edge id=":1168929349_4" function="internal">
- <lane id=":1168929349_4_0" index="0" speed="27.78" length="8.95" shape="821.86,1007.34 826.08,1015.23"/>
- </edge>
- <edge id=":1168929349_5" function="internal">
- <lane id=":1168929349_5_0" index="0" speed="25.00" length="7.48" shape="821.86,1007.34 822.88,1009.63 823.21,1011.52 822.86,1013.02 821.83,1014.12"/>
- </edge>
- <edge id=":1168929367_0" function="internal">
- <lane id=":1168929367_0_0" index="0" speed="25.00" length="4.31" shape="1182.95,1030.19 1186.71,1028.10"/>
- </edge>
- <edge id=":1168929367_1" function="internal">
- <lane id=":1168929367_1_0" index="0" speed="27.78" length="3.91" shape="1182.95,1030.19 1186.33,1032.16"/>
- </edge>
- <edge id=":1168929382_0" function="internal">
- <lane id=":1168929382_0_0" index="0" speed="27.78" length="8.16" shape="1149.52,1039.34 1145.73,1032.11"/>
- </edge>
- <edge id=":1168929382_1" function="internal">
- <lane id=":1168929382_1_0" index="0" speed="27.78" length="8.18" shape="1152.45,1037.81 1148.64,1030.57"/>
- </edge>
- <edge id=":1168929382_2" function="internal">
- <lane id=":1168929382_2_0" index="0" speed="27.78" length="6.17" shape="1152.45,1037.81 1151.58,1035.82 1151.24,1034.22 1151.43,1032.99 1152.15,1032.14"/>
- </edge>
- <edge id=":1168929382_3" function="internal">
- <lane id=":1168929382_3_0" index="0" speed="27.78" length="4.64" shape="1148.91,1034.59 1148.28,1034.93 1147.53,1034.64 1146.69,1033.70 1145.73,1032.11"/>
- </edge>
- <edge id=":1168929382_4" function="internal">
- <lane id=":1168929382_4_0" index="0" speed="27.78" length="4.07" shape="1148.91,1034.59 1152.15,1032.14"/>
- </edge>
- <edge id=":1168929383_0" function="internal">
- <lane id=":1168929383_0_0" index="0" speed="27.78" length="3.03" shape="1145.22,1076.44 1144.92,1076.36 1144.36,1076.50 1143.53,1076.86 1142.44,1077.45"/>
- </edge>
- <edge id=":1168929383_1" function="internal">
- <lane id=":1168929383_1_0" index="0" speed="27.78" length="5.47" shape="1145.22,1076.44 1142.17,1071.90"/>
- </edge>
- <edge id=":1168929383_2" function="internal">
- <lane id=":1168929383_2_0" index="0" speed="27.78" length="2.08" shape="1145.22,1076.44 1145.13,1074.37"/>
- </edge>
- <edge id=":1168929383_9" function="internal">
- <lane id=":1168929383_9_0" index="0" speed="27.78" length="5.90" shape="1145.13,1074.37 1144.88,1068.47"/>
- </edge>
- <edge id=":1168929383_3" function="internal">
- <lane id=":1168929383_3_0" index="0" speed="27.78" length="7.33" shape="1148.13,1074.22 1140.81,1074.58"/>
- </edge>
- <edge id=":1168929383_4" function="internal">
- <lane id=":1168929383_4_0" index="0" speed="27.78" length="4.81" shape="1146.51,1071.35 1144.86,1072.16 1143.59,1072.52 1142.69,1072.44 1142.17,1071.90"/>
- </edge>
- <edge id=":1168929383_5" function="internal">
- <lane id=":1168929383_5_0" index="0" speed="27.78" length="2.41" shape="1146.51,1071.35 1145.02,1071.24 1144.26,1070.72"/>
- </edge>
- <edge id=":1168929383_10" function="internal">
- <lane id=":1168929383_10_0" index="0" speed="27.78" length="2.41" shape="1144.26,1070.72 1144.21,1069.80 1144.88,1068.47"/>
- </edge>
- <edge id=":1168929383_6" function="internal">
- <lane id=":1168929383_6_0" index="0" speed="27.78" length="5.55" shape="1137.55,1068.84 1142.17,1071.90"/>
- </edge>
- <edge id=":1168929383_7" function="internal">
- <lane id=":1168929383_7_0" index="0" speed="27.78" length="7.34" shape="1139.18,1071.71 1143.26,1065.60"/>
- </edge>
- <edge id=":1168929383_8" function="internal">
- <lane id=":1168929383_8_0" index="0" speed="27.78" length="2.41" shape="1139.18,1071.71 1140.66,1071.81 1141.43,1072.33"/>
- </edge>
- <edge id=":1168929383_11" function="internal">
- <lane id=":1168929383_11_0" index="0" speed="27.78" length="2.41" shape="1141.43,1072.33 1141.48,1073.25 1140.81,1074.58"/>
- </edge>
- <edge id=":1168929385_0" function="internal">
- <lane id=":1168929385_0_0" index="0" speed="27.78" length="1.73" shape="1160.50,1027.89 1160.47,1028.06 1160.22,1028.24 1159.74,1028.44 1159.04,1028.67"/>
- </edge>
- <edge id=":1168929385_1" function="internal">
- <lane id=":1168929385_1_0" index="0" speed="27.78" length="2.90" shape="1160.50,1027.89 1161.85,1030.46"/>
- </edge>
- <edge id=":1168929385_2" function="internal">
- <lane id=":1168929385_2_0" index="0" speed="27.78" length="6.21" shape="1156.03,1026.52 1158.94,1032.00"/>
- </edge>
- <edge id=":1168929385_3" function="internal">
- <lane id=":1168929385_3_0" index="0" speed="27.78" length="4.97" shape="1154.36,1030.34 1159.04,1028.67"/>
- </edge>
- <edge id=":1168929385_4" function="internal">
- <lane id=":1168929385_4_0" index="0" speed="27.78" length="5.39" shape="1154.36,1030.34 1155.82,1030.03 1157.06,1030.20 1158.10,1030.86 1158.94,1032.00"/>
- </edge>
- <edge id=":1168929388_0" function="internal">
- <lane id=":1168929388_0_0" index="0" speed="27.78" length="6.34" shape="1186.64,1032.40 1188.04,1033.22 1189.50,1033.57 1191.02,1033.45 1192.60,1032.86"/>
- </edge>
- <edge id=":1168929388_1" function="internal">
- <lane id=":1168929388_1_0" index="0" speed="27.78" length="4.91" shape="1186.64,1032.40 1190.83,1034.95"/>
- </edge>
- <edge id=":1168929388_2" function="internal">
- <lane id=":1168929388_2_0" index="0" speed="27.78" length="7.47" shape="1186.08,1036.49 1192.60,1032.86"/>
- </edge>
- <edge id=":1168929388_3" function="internal">
- <lane id=":1168929388_3_0" index="0" speed="27.78" length="5.22" shape="1186.08,1036.49 1187.92,1035.47 1189.32,1034.87 1190.30,1034.70 1190.83,1034.95"/>
- </edge>
- <edge id=":1168929398_0" function="internal">
- <lane id=":1168929398_0_0" index="0" speed="22.22" length="0.18" shape="808.15,1035.82 808.12,1035.99"/>
- </edge>
- <edge id=":1168929398_1" function="internal">
- <lane id=":1168929398_1_0" index="0" speed="22.22" length="2.41" shape="808.15,1035.82 807.07,1036.85 806.18,1037.07"/>
- </edge>
- <edge id=":1168929398_4" function="internal">
- <lane id=":1168929398_4_0" index="0" speed="22.22" length="2.41" shape="806.18,1037.07 805.46,1036.48 804.93,1035.09"/>
- </edge>
- <edge id=":1168929398_2" function="internal">
- <lane id=":1168929398_2_0" index="0" speed="22.22" length="0.54" shape="804.84,1035.62 804.93,1035.09"/>
- </edge>
- <edge id=":1168929398_3" function="internal">
- <lane id=":1168929398_3_0" index="0" speed="22.22" length="2.41" shape="804.84,1035.62 805.80,1034.49 806.67,1034.17"/>
- </edge>
- <edge id=":1168929398_5" function="internal">
- <lane id=":1168929398_5_0" index="0" speed="22.22" length="2.41" shape="806.67,1034.17 807.44,1034.67 808.12,1035.99"/>
- </edge>
- <edge id=":1168929459_0" function="internal">
- <lane id=":1168929459_0_0" index="0" speed="25.00" length="6.28" shape="1198.42,1066.20 1199.90,1072.31"/>
- </edge>
- <edge id=":1168929459_1" function="internal">
- <lane id=":1168929459_1_0" index="0" speed="27.78" length="6.65" shape="1198.42,1066.20 1195.66,1072.25"/>
- </edge>
- <edge id=":1168929523_0" function="internal">
- <lane id=":1168929523_0_0" index="0" speed="27.78" length="4.11" shape="1148.48,1079.88 1147.88,1079.62 1147.04,1079.67 1145.96,1080.02 1144.64,1080.68"/>
- </edge>
- <edge id=":1168929523_1" function="internal">
- <lane id=":1168929523_1_0" index="0" speed="27.78" length="2.23" shape="1148.48,1079.88 1146.54,1078.78"/>
- </edge>
- <edge id=":1168929523_2" function="internal">
- <lane id=":1168929523_2_0" index="0" speed="27.78" length="7.02" shape="1150.64,1077.04 1144.64,1080.68"/>
- </edge>
- <edge id=":1168929523_3" function="internal">
- <lane id=":1168929523_3_0" index="0" speed="27.78" length="4.51" shape="1150.64,1077.04 1148.94,1077.96 1147.70,1078.55 1146.89,1078.83 1146.54,1078.78"/>
- </edge>
- <edge id=":1168929542_0" function="internal">
- <lane id=":1168929542_0_0" index="0" speed="22.22" length="9.09" shape="836.13,986.53 839.71,994.88"/>
- </edge>
- <edge id=":1168929542_1" function="internal">
- <lane id=":1168929542_1_0" index="0" speed="22.22" length="9.13" shape="836.13,986.53 835.54,995.65"/>
- </edge>
- <edge id=":1168929546_0" function="internal">
- <lane id=":1168929546_0_0" index="0" speed="5.56" length="6.46" shape="1162.97,1032.37 1159.95,1026.66"/>
- </edge>
- <edge id=":1168929546_1" function="internal">
- <lane id=":1168929546_1_0" index="0" speed="16.67" length="10.02" shape="1162.97,1032.37 1162.09,1029.80 1162.61,1028.05 1164.53,1027.11 1167.86,1026.99"/>
- </edge>
- <edge id=":1168929546_2" function="internal">
- <lane id=":1168929546_2_0" index="0" speed="5.56" length="4.82" shape="1162.97,1032.37 1163.12,1030.89 1163.65,1030.14 1164.57,1030.12 1165.88,1030.82"/>
- </edge>
- <edge id=":1168929546_3" function="internal">
- <lane id=":1168929546_3_0" index="0" speed="16.67" length="5.49" shape="1162.88,1025.14 1163.49,1025.84 1164.53,1026.38 1165.98,1026.76 1167.86,1026.99"/>
- </edge>
- <edge id=":1168929546_4" function="internal">
- <lane id=":1168929546_4_0" index="0" speed="5.56" length="6.42" shape="1162.88,1025.14 1165.88,1030.82"/>
- </edge>
- <edge id=":1168929546_5" function="internal">
- <lane id=":1168929546_5_0" index="0" speed="5.56" length="4.82" shape="1162.88,1025.14 1162.72,1026.62 1162.18,1027.37 1161.26,1027.38 1159.95,1026.66"/>
- </edge>
- <edge id=":1168929546_6" function="internal">
- <lane id=":1168929546_6_0" index="0" speed="16.67" length="2.88" shape="1162.36,1027.71 1161.60,1027.82 1160.95,1027.68 1160.40,1027.30 1159.95,1026.66"/>
- </edge>
- <edge id=":1168929546_7" function="internal">
- <lane id=":1168929546_7_0" index="0" speed="27.78" length="5.55" shape="1162.36,1027.71 1167.86,1026.99"/>
- </edge>
- <edge id=":1168929546_8" function="internal">
- <lane id=":1168929546_8_0" index="0" speed="16.67" length="5.00" shape="1162.36,1027.71 1163.19,1027.73 1164.05,1028.26 1164.95,1029.29 1165.88,1030.82"/>
- </edge>
- <edge id=":1168929549_0" function="internal">
- <lane id=":1168929549_0_0" index="0" speed="25.00" length="4.21" shape="1201.76,1057.55 1200.88,1058.18 1200.19,1058.94 1199.70,1059.83 1199.40,1060.87"/>
- </edge>
- <edge id=":1168929549_1" function="internal">
- <lane id=":1168929549_1_0" index="0" speed="27.78" length="3.86" shape="1199.82,1057.03 1199.40,1060.87"/>
- </edge>
- <edge id=":1168929558_0" function="internal">
- <lane id=":1168929558_0_0" index="0" speed="27.78" length="3.99" shape="1178.62,1088.72 1181.38,1085.83"/>
- </edge>
- <edge id=":1168929558_1" function="internal">
- <lane id=":1168929558_1_0" index="0" speed="27.78" length="4.51" shape="1181.54,1087.18 1177.19,1085.99"/>
- </edge>
- <edge id=":1168929558_2" function="internal">
- <lane id=":1168929558_2_0" index="0" speed="27.78" length="2.41" shape="1181.54,1087.18 1181.71,1085.70 1182.26,1084.96"/>
- </edge>
- <edge id=":1168929558_9" function="internal">
- <lane id=":1168929558_9_0" index="0" speed="27.78" length="2.41" shape="1182.26,1084.96 1183.18,1084.95 1184.48,1085.68"/>
- </edge>
- <edge id=":1168929558_3" function="internal">
- <lane id=":1168929558_3_0" index="0" speed="27.78" length="4.37" shape="1183.05,1084.65 1187.39,1084.12"/>
- </edge>
- <edge id=":1168929558_4" function="internal">
- <lane id=":1168929558_4_0" index="0" speed="27.78" length="2.04" shape="1183.05,1084.65 1181.38,1085.83"/>
- </edge>
- <edge id=":1168929558_5" function="internal">
- <lane id=":1168929558_5_0" index="0" speed="27.78" length="3.43" shape="1183.05,1084.65 1182.04,1085.11 1181.21,1085.21 1180.55,1084.96 1180.06,1084.35"/>
- </edge>
- <edge id=":1168929558_6" function="internal">
- <lane id=":1168929558_6_0" index="0" speed="27.78" length="4.51" shape="1185.98,1081.42 1184.48,1085.68"/>
- </edge>
- <edge id=":1168929558_7" function="internal">
- <lane id=":1168929558_7_0" index="0" speed="27.78" length="4.09" shape="1183.00,1082.85 1183.33,1083.87 1183.17,1084.71 1182.52,1085.36 1181.38,1085.83"/>
- </edge>
- <edge id=":1168929558_8" function="internal">
- <lane id=":1168929558_8_0" index="0" speed="27.78" length="2.41" shape="1183.00,1082.85 1182.83,1084.33 1182.28,1085.07"/>
- </edge>
- <edge id=":1168929558_10" function="internal">
- <lane id=":1168929558_10_0" index="0" speed="27.78" length="2.41" shape="1182.28,1085.07 1181.36,1085.08 1180.06,1084.35"/>
- </edge>
- <edge id=":1168929562_0" function="internal">
- <lane id=":1168929562_0_0" index="0" speed="27.78" length="3.36" shape="1176.66,1091.21 1176.09,1089.96 1175.87,1089.07 1176.01,1088.55 1176.50,1088.39"/>
- </edge>
- <edge id=":1168929562_1" function="internal">
- <lane id=":1168929562_1_0" index="0" speed="27.78" length="8.19" shape="1176.66,1091.21 1172.87,1083.96"/>
- </edge>
- <edge id=":1168929562_2" function="internal">
- <lane id=":1168929562_2_0" index="0" speed="27.78" length="8.19" shape="1179.59,1089.69 1175.79,1082.43"/>
- </edge>
- <edge id=":1168929562_3" function="internal">
- <lane id=":1168929562_3_0" index="0" speed="27.78" length="5.19" shape="1180.93,1085.69 1176.50,1088.39"/>
- </edge>
- <edge id=":1168929562_4" function="internal">
- <lane id=":1168929562_4_0" index="0" speed="27.78" length="6.09" shape="1180.93,1085.69 1175.79,1082.43"/>
- </edge>
- <edge id=":1168929585_0" function="internal">
- <lane id=":1168929585_0_0" index="0" speed="25.00" length="4.35" shape="1173.02,1023.64 1173.90,1025.33 1174.52,1026.54 1174.89,1027.26 1175.02,1027.50"/>
- </edge>
- <edge id=":1168929585_1" function="internal">
- <lane id=":1168929585_1_0" index="0" speed="27.78" length="4.35" shape="1170.68,1027.19 1175.02,1027.50"/>
- </edge>
- <edge id=":1168929600_0" function="internal">
- <lane id=":1168929600_0_0" index="0" speed="25.00" length="7.53" shape="802.83,958.49 803.99,960.32 805.36,961.59 806.93,962.28 808.70,962.41"/>
- </edge>
- <edge id=":1168929600_1" function="internal">
- <lane id=":1168929600_1_0" index="0" speed="27.78" length="8.71" shape="802.83,958.49 806.90,966.19"/>
- </edge>
- <edge id=":1168929600_2" function="internal">
- <lane id=":1168929600_2_0" index="0" speed="27.78" length="8.82" shape="799.88,959.98 804.00,967.77"/>
- </edge>
- <edge id=":1168929600_3" function="internal">
- <lane id=":1168929600_3_0" index="0" speed="27.78" length="8.93" shape="796.93,961.47 801.11,969.36"/>
- </edge>
- <edge id=":1168929600_4" function="internal">
- <lane id=":1168929600_4_0" index="0" speed="22.22" length="13.90" shape="795.39,965.61 798.46,963.90 801.68,963.04 805.09,962.66 808.70,962.41"/>
- </edge>
- <edge id=":1168929600_5" function="internal">
- <lane id=":1168929600_5_0" index="0" speed="25.00" length="3.35" shape="795.39,965.61 797.91,964.27 798.41,964.25"/>
- </edge>
- <edge id=":1168929600_7" function="internal">
- <lane id=":1168929600_7_0" index="0" speed="25.00" length="7.14" shape="798.41,964.25 800.18,964.18 802.21,965.35 804.00,967.77"/>
- </edge>
- <edge id=":1168929600_6" function="internal">
- <lane id=":1168929600_6_0" index="0" speed="25.00" length="7.74" shape="795.39,965.61 796.73,965.11 798.12,965.57 799.58,966.99 801.11,969.36"/>
- </edge>
- <edge id=":1168929613_0" function="internal">
- <lane id=":1168929613_0_0" index="0" speed="27.78" length="3.40" shape="1138.79,1060.29 1138.59,1056.89"/>
- </edge>
- <edge id=":1168929613_1" function="internal">
- <lane id=":1168929613_1_0" index="0" speed="25.00" length="4.98" shape="1135.18,1060.30 1136.66,1059.39 1137.72,1058.52 1138.36,1057.69 1138.59,1056.89"/>
- </edge>
- <edge id=":1168929634_0" function="internal">
- <lane id=":1168929634_0_0" index="0" speed="27.78" length="4.55" shape="1149.84,1035.06 1151.24,1030.73"/>
- </edge>
- <edge id=":1168929634_1" function="internal">
- <lane id=":1168929634_1_0" index="0" speed="27.78" length="3.86" shape="1152.71,1033.42 1152.54,1032.73 1152.82,1032.03 1153.56,1031.34 1154.75,1030.65"/>
- </edge>
- <edge id=":1168929634_2" function="internal">
- <lane id=":1168929634_2_0" index="0" speed="27.78" length="2.41" shape="1152.71,1033.42 1152.90,1031.95 1153.45,1031.21"/>
- </edge>
- <edge id=":1168929634_9" function="internal">
- <lane id=":1168929634_9_0" index="0" speed="27.78" length="2.41" shape="1153.45,1031.21 1154.37,1031.21 1155.67,1031.95"/>
- </edge>
- <edge id=":1168929634_3" function="internal">
- <lane id=":1168929634_3_0" index="0" speed="27.78" length="4.19" shape="1157.09,1027.67 1157.23,1028.41 1156.89,1029.15 1156.06,1029.90 1154.75,1030.65"/>
- </edge>
- <edge id=":1168929634_4" function="internal">
- <lane id=":1168929634_4_0" index="0" speed="27.78" length="4.45" shape="1154.15,1029.16 1158.47,1030.21"/>
- </edge>
- <edge id=":1168929634_5" function="internal">
- <lane id=":1168929634_5_0" index="0" speed="27.78" length="2.41" shape="1154.15,1029.16 1154.01,1030.64 1153.48,1031.40"/>
- </edge>
- <edge id=":1168929634_10" function="internal">
- <lane id=":1168929634_10_0" index="0" speed="27.78" length="2.41" shape="1153.48,1031.40 1152.56,1031.43 1151.24,1030.73"/>
- </edge>
- <edge id=":1168929634_6" function="internal">
- <lane id=":1168929634_6_0" index="0" speed="27.78" length="4.79" shape="1153.05,1031.54 1148.31,1032.25"/>
- </edge>
- <edge id=":1168929634_7" function="internal">
- <lane id=":1168929634_7_0" index="0" speed="27.78" length="1.92" shape="1153.05,1031.54 1154.75,1030.65"/>
- </edge>
- <edge id=":1168929634_8" function="internal">
- <lane id=":1168929634_8_0" index="0" speed="27.78" length="3.07" shape="1153.05,1031.54 1153.86,1031.13 1154.57,1031.06 1155.17,1031.34 1155.67,1031.95"/>
- </edge>
- <edge id=":1168929652_0" function="internal">
- <lane id=":1168929652_0_0" index="0" speed="15.28" length="7.91" shape="768.35,994.62 766.52,992.55 764.86,991.13 763.38,990.36 762.09,990.25"/>
- </edge>
- <edge id=":1168929652_1" function="internal">
- <lane id=":1168929652_1_0" index="0" speed="15.28" length="13.64" shape="768.35,994.62 766.23,991.12 766.13,988.40 768.05,986.47 771.98,985.32"/>
- </edge>
- <edge id=":1168929652_2" function="internal">
- <lane id=":1168929652_2_0" index="0" speed="8.33" length="4.82" shape="768.35,994.62 768.22,993.14 768.61,992.30 769.51,992.11 770.92,992.56"/>
- </edge>
- <edge id=":1168929652_3" function="internal">
- <lane id=":1168929652_3_0" index="0" speed="15.28" length="5.83" shape="772.48,988.58 770.80,989.07 769.98,989.90 770.02,991.06 770.92,992.56"/>
- </edge>
- <edge id=":1168929652_4" function="internal">
- <lane id=":1168929652_4_0" index="0" speed="22.22" length="10.52" shape="772.48,988.58 769.46,989.04 767.28,989.37 765.09,989.73 762.09,990.25"/>
- </edge>
- <edge id=":1168929652_5" function="internal">
- <lane id=":1168929652_5_0" index="0" speed="22.22" length="2.41" shape="772.48,988.58 771.13,987.95 770.60,987.20"/>
- </edge>
- <edge id=":1168929652_9" function="internal">
- <lane id=":1168929652_9_0" index="0" speed="22.22" length="2.41" shape="770.60,987.20 770.88,986.32 771.98,985.32"/>
- </edge>
- <edge id=":1168929652_6" function="internal">
- <lane id=":1168929652_6_0" index="0" speed="22.22" length="10.61" shape="761.51,987.00 764.53,986.48 766.74,986.11 768.95,985.78 771.98,985.32"/>
- </edge>
- <edge id=":1168929652_7" function="internal">
- <lane id=":1168929652_7_0" index="0" speed="15.28" length="6.85" shape="761.51,987.00 763.72,987.06 766.03,988.01 767.73,989.30"/>
- </edge>
- <edge id=":1168929652_10" function="internal">
- <lane id=":1168929652_10_0" index="0" speed="15.28" length="4.58" shape="767.73,989.30 768.43,989.84 770.92,992.56"/>
- </edge>
- <edge id=":1168929652_8" function="internal">
- <lane id=":1168929652_8_0" index="0" speed="22.22" length="2.41" shape="761.51,987.00 762.87,987.60 763.42,988.34"/>
- </edge>
- <edge id=":1168929652_11" function="internal">
- <lane id=":1168929652_11_0" index="0" speed="22.22" length="2.41" shape="763.42,988.34 763.16,989.22 762.09,990.25"/>
- </edge>
- <edge id=":1168929657_0" function="internal">
- <lane id=":1168929657_0_0" index="0" speed="27.78" length="3.01" shape="1200.15,1044.81 1199.09,1045.33 1198.29,1045.56 1197.75,1045.50 1197.48,1045.15"/>
- </edge>
- <edge id=":1168929657_1" function="internal">
- <lane id=":1168929657_1_0" index="0" speed="27.78" length="7.55" shape="1198.54,1041.93 1194.24,1048.14"/>
- </edge>
- <edge id=":1168929657_2" function="internal">
- <lane id=":1168929657_2_0" index="0" speed="27.78" length="2.41" shape="1198.54,1041.93 1197.06,1041.82 1196.30,1041.30"/>
- </edge>
- <edge id=":1168929657_9" function="internal">
- <lane id=":1168929657_9_0" index="0" speed="27.78" length="2.41" shape="1196.30,1041.30 1196.26,1040.38 1196.93,1039.05"/>
- </edge>
- <edge id=":1168929657_3" function="internal">
- <lane id=":1168929657_3_0" index="0" speed="27.78" length="3.74" shape="1191.86,1037.15 1192.29,1037.33 1193.02,1037.22 1194.03,1036.84 1195.32,1036.17"/>
- </edge>
- <edge id=":1168929657_4" function="internal">
- <lane id=":1168929657_4_0" index="0" speed="27.78" length="9.78" shape="1191.86,1037.15 1197.48,1045.15"/>
- </edge>
- <edge id=":1168929657_5" function="internal">
- <lane id=":1168929657_5_0" index="0" speed="27.78" length="2.21" shape="1191.86,1037.15 1192.06,1039.36"/>
- </edge>
- <edge id=":1168929657_10" function="internal">
- <lane id=":1168929657_10_0" index="0" speed="27.78" length="5.94" shape="1192.06,1039.36 1192.62,1045.27"/>
- </edge>
- <edge id=":1168929657_6" function="internal">
- <lane id=":1168929657_6_0" index="0" speed="27.78" length="7.58" shape="1189.37,1039.52 1196.93,1039.05"/>
- </edge>
- <edge id=":1168929657_7" function="internal">
- <lane id=":1168929657_7_0" index="0" speed="27.78" length="4.23" shape="1190.99,1042.40 1193.23,1041.53 1195.05,1041.71"/>
- </edge>
- <edge id=":1168929657_11" function="internal">
- <lane id=":1168929657_11_0" index="0" speed="27.78" length="4.32" shape="1195.05,1041.71 1196.47,1042.91 1197.48,1045.15"/>
- </edge>
- <edge id=":1168929657_8" function="internal">
- <lane id=":1168929657_8_0" index="0" speed="27.78" length="2.41" shape="1190.99,1042.40 1192.48,1042.51 1193.24,1043.02"/>
- </edge>
- <edge id=":1168929657_12" function="internal">
- <lane id=":1168929657_12_0" index="0" speed="27.78" length="2.41" shape="1193.24,1043.02 1193.29,1043.94 1192.62,1045.27"/>
- </edge>
- <edge id=":1168929659_0" function="internal">
- <lane id=":1168929659_0_0" index="0" speed="16.67" length="3.45" shape="1192.82,1081.57 1192.01,1080.35 1191.47,1079.44 1191.20,1078.85 1191.20,1078.57"/>
- </edge>
- <edge id=":1168929659_1" function="internal">
- <lane id=":1168929659_1_0" index="0" speed="5.56" length="6.26" shape="1192.82,1081.57 1189.25,1076.43"/>
- </edge>
- <edge id=":1168929659_2" function="internal">
- <lane id=":1168929659_2_0" index="0" speed="5.56" length="4.81" shape="1192.82,1081.57 1192.80,1080.08 1193.25,1079.28 1194.17,1079.15 1195.54,1079.71"/>
- </edge>
- <edge id=":1168929659_3" function="internal">
- <lane id=":1168929659_3_0" index="0" speed="16.67" length="3.94" shape="1192.17,1077.69 1195.54,1079.71"/>
- </edge>
- <edge id=":1168929659_4" function="internal">
- <lane id=":1168929659_4_0" index="0" speed="27.78" length="1.30" shape="1192.17,1077.69 1191.20,1078.57"/>
- </edge>
- <edge id=":1168929659_5" function="internal">
- <lane id=":1168929659_5_0" index="0" speed="16.67" length="3.72" shape="1192.17,1077.69 1191.57,1078.10 1190.89,1078.03 1190.11,1077.47 1189.25,1076.43"/>
- </edge>
- <edge id=":1168929659_6" function="internal">
- <lane id=":1168929659_6_0" index="0" speed="5.56" length="6.32" shape="1191.94,1074.52 1195.54,1079.71"/>
- </edge>
- <edge id=":1168929659_7" function="internal">
- <lane id=":1168929659_7_0" index="0" speed="16.67" length="4.57" shape="1191.94,1074.52 1192.44,1075.54 1192.48,1076.56 1192.07,1077.56 1191.20,1078.57"/>
- </edge>
- <edge id=":1168929659_8" function="internal">
- <lane id=":1168929659_8_0" index="0" speed="5.56" length="4.82" shape="1191.94,1074.52 1191.98,1076.00 1191.55,1076.82 1190.64,1076.96 1189.25,1076.43"/>
- </edge>
- <edge id=":1168929661_0" function="internal">
- <lane id=":1168929661_0_0" index="0" speed="5.56" length="7.95" shape="1473.81,1587.87 1470.11,1580.83"/>
- </edge>
- <edge id=":1168929661_1" function="internal">
- <lane id=":1168929661_1_0" index="0" speed="5.56" length="9.18" shape="1473.81,1587.87 1473.17,1585.78 1473.53,1583.87 1474.91,1582.14 1477.29,1580.59"/>
- </edge>
- <edge id=":1168929661_2" function="internal">
- <lane id=":1168929661_2_0" index="0" speed="5.56" length="5.05" shape="1473.81,1587.87 1474.43,1586.44 1475.21,1585.86 1476.13,1586.13 1477.21,1587.26"/>
- </edge>
- <edge id=":1168929661_3" function="internal">
- <lane id=":1168929661_3_0" index="0" speed="5.56" length="4.62" shape="1478.78,1583.53 1477.64,1584.29 1477.00,1585.17 1476.86,1586.16 1477.21,1587.26"/>
- </edge>
- <edge id=":1168929661_4" function="internal">
- <lane id=":1168929661_4_0" index="0" speed="5.56" length="10.32" shape="1478.78,1583.53 1476.09,1584.45 1473.75,1584.31 1471.76,1583.10 1470.11,1580.83"/>
- </edge>
- <edge id=":1168929661_5" function="internal">
- <lane id=":1168929661_5_0" index="0" speed="5.56" length="4.82" shape="1478.78,1583.53 1477.30,1583.35 1476.56,1582.80 1476.56,1581.88 1477.29,1580.59"/>
- </edge>
- <edge id=":1168929661_6" function="internal">
- <lane id=":1168929661_6_0" index="0" speed="5.56" length="5.06" shape="1473.03,1579.29 1473.83,1580.40 1474.81,1580.98 1475.96,1581.04 1477.29,1580.59"/>
- </edge>
- <edge id=":1168929661_7" function="internal">
- <lane id=":1168929661_7_0" index="0" speed="5.56" length="8.99" shape="1473.03,1579.29 1477.21,1587.26"/>
- </edge>
- <edge id=":1168929661_8" function="internal">
- <lane id=":1168929661_8_0" index="0" speed="5.56" length="4.82" shape="1473.03,1579.29 1472.88,1580.77 1472.34,1581.52 1471.42,1581.54 1470.11,1580.83"/>
- </edge>
- <edge id=":1212941056_0" function="internal">
- <lane id=":1212941056_0_0" index="0" speed="22.22" length="5.35" shape="733.62,1653.37 733.60,1654.89 734.09,1655.93 735.10,1656.47 736.63,1656.53"/>
- </edge>
- <edge id=":1212941056_1" function="internal">
- <lane id=":1212941056_1_0" index="0" speed="22.22" length="3.59" shape="733.62,1653.37 733.06,1656.91"/>
- </edge>
- <edge id=":1212941056_2" function="internal">
- <lane id=":1212941056_2_0" index="0" speed="22.22" length="7.14" shape="729.53,1657.28 736.63,1656.53"/>
- </edge>
- <edge id=":1212941056_3" function="internal">
- <lane id=":1212941056_3_0" index="0" speed="22.22" length="3.55" shape="729.53,1657.28 731.07,1657.12 732.18,1657.00 732.84,1656.93 733.06,1656.91"/>
- </edge>
- <edge id=":1212941077_0" function="internal">
- <lane id=":1212941077_0_0" index="0" speed="22.22" length="5.39" shape="735.15,1667.10 733.66,1666.65 732.53,1666.86 731.75,1667.70 731.32,1669.18"/>
- </edge>
- <edge id=":1212941077_1" function="internal">
- <lane id=":1212941077_1_0" index="0" speed="22.22" length="7.30" shape="735.15,1667.10 728.52,1664.05"/>
- </edge>
- <edge id=":1212941077_2" function="internal">
- <lane id=":1212941077_2_0" index="0" speed="22.22" length="3.96" shape="731.88,1665.26 731.32,1669.18"/>
- </edge>
- <edge id=":1212941077_3" function="internal">
- <lane id=":1212941077_3_0" index="0" speed="22.22" length="3.61" shape="731.88,1665.26 731.65,1665.30 731.02,1665.11 729.97,1664.69 728.52,1664.05"/>
- </edge>
- <edge id=":1212960877_0" function="internal">
- <lane id=":1212960877_0_0" index="0" speed="22.22" length="7.40" shape="823.67,1633.55 820.30,1626.97"/>
- </edge>
- <edge id=":1212960877_1" function="internal">
- <lane id=":1212960877_1_0" index="0" speed="13.89" length="5.56" shape="823.67,1633.55 823.17,1631.70 823.62,1629.95 824.82,1628.57"/>
- </edge>
- <edge id=":1212960877_9" function="internal">
- <lane id=":1212960877_9_0" index="0" speed="13.89" length="3.14" shape="824.82,1628.57 825.04,1628.32 827.41,1626.81"/>
- </edge>
- <edge id=":1212960877_2" function="internal">
- <lane id=":1212960877_2_0" index="0" speed="22.22" length="2.41" shape="823.67,1633.55 823.84,1632.08 824.38,1631.33"/>
- </edge>
- <edge id=":1212960877_10" function="internal">
- <lane id=":1212960877_10_0" index="0" speed="22.22" length="2.41" shape="824.38,1631.33 825.31,1631.32 826.61,1632.05"/>
- </edge>
- <edge id=":1212960877_3" function="internal">
- <lane id=":1212960877_3_0" index="0" speed="13.89" length="3.48" shape="828.91,1629.75 827.73,1630.42 826.95,1631.03 826.58,1631.57 826.61,1632.05"/>
- </edge>
- <edge id=":1212960877_4" function="internal">
- <lane id=":1212960877_4_0" index="0" speed="13.89" length="10.32" shape="828.91,1629.75 826.23,1630.67 823.91,1630.51 821.93,1629.28 820.30,1626.97"/>
- </edge>
- <edge id=":1212960877_5" function="internal">
- <lane id=":1212960877_5_0" index="0" speed="5.56" length="4.82" shape="828.91,1629.75 827.43,1629.58 826.69,1629.03 826.68,1628.11 827.41,1626.81"/>
- </edge>
- <edge id=":1212960877_6" function="internal">
- <lane id=":1212960877_6_0" index="0" speed="22.22" length="7.40" shape="823.23,1625.46 826.61,1632.05"/>
- </edge>
- <edge id=":1212960877_7" function="internal">
- <lane id=":1212960877_7_0" index="0" speed="13.89" length="5.00" shape="823.23,1625.46 824.02,1626.58 824.98,1627.18 826.11,1627.25 827.41,1626.81"/>
- </edge>
- <edge id=":1212960877_8" function="internal">
- <lane id=":1212960877_8_0" index="0" speed="22.22" length="2.41" shape="823.23,1625.46 823.06,1626.94 822.52,1627.68"/>
- </edge>
- <edge id=":1212960877_11" function="internal">
- <lane id=":1212960877_11_0" index="0" speed="22.22" length="2.41" shape="822.52,1627.68 821.59,1627.69 820.30,1626.97"/>
- </edge>
- <edge id=":1212960879_0" function="internal">
- <lane id=":1212960879_0_0" index="0" speed="22.22" length="5.29" shape="829.47,1644.88 827.06,1640.17"/>
- </edge>
- <edge id=":1212960879_1" function="internal">
- <lane id=":1212960879_1_0" index="0" speed="15.28" length="7.23" shape="829.47,1644.88 828.46,1641.93 828.72,1639.50 829.75,1638.20"/>
- </edge>
- <edge id=":1212960879_9" function="internal">
- <lane id=":1212960879_9_0" index="0" speed="15.28" length="3.91" shape="829.75,1638.20 830.24,1637.59 833.04,1636.19"/>
- </edge>
- <edge id=":1212960879_2" function="internal">
- <lane id=":1212960879_2_0" index="0" speed="22.22" length="2.41" shape="829.47,1644.88 829.64,1643.41 830.19,1642.66"/>
- </edge>
- <edge id=":1212960879_10" function="internal">
- <lane id=":1212960879_10_0" index="0" speed="22.22" length="2.41" shape="830.19,1642.66 831.11,1642.66 832.41,1643.38"/>
- </edge>
- <edge id=":1212960879_3" function="internal">
- <lane id=":1212960879_3_0" index="0" speed="15.28" length="5.19" shape="834.07,1639.33 832.77,1639.98 832.06,1640.87 831.94,1642.00 832.41,1643.38"/>
- </edge>
- <edge id=":1212960879_4" function="internal">
- <lane id=":1212960879_4_0" index="0" speed="15.28" length="7.30" shape="834.07,1639.33 831.24,1640.17 829.13,1640.59 827.74,1640.59 827.06,1640.17"/>
- </edge>
- <edge id=":1212960879_5" function="internal">
- <lane id=":1212960879_5_0" index="0" speed="8.33" length="4.82" shape="834.07,1639.33 832.64,1638.93 831.99,1638.28 832.12,1637.36 833.04,1636.19"/>
- </edge>
- <edge id=":1212960879_6" function="internal">
- <lane id=":1212960879_6_0" index="0" speed="15.28" length="3.95" shape="829.24,1637.19 829.52,1637.21 830.24,1637.05 831.42,1636.71 833.04,1636.19"/>
- </edge>
- <edge id=":1212960879_7" function="internal">
- <lane id=":1212960879_7_0" index="0" speed="22.22" length="6.95" shape="829.24,1637.19 832.41,1643.38"/>
- </edge>
- <edge id=":1212960879_8" function="internal">
- <lane id=":1212960879_8_0" index="0" speed="22.22" length="2.70" shape="829.24,1637.19 829.81,1638.75 829.64,1639.77"/>
- </edge>
- <edge id=":1212960879_11" function="internal">
- <lane id=":1212960879_11_0" index="0" speed="22.22" length="2.70" shape="829.64,1639.77 828.72,1640.24 827.06,1640.17"/>
- </edge>
- <edge id=":1213368991_0" function="internal">
- <lane id=":1213368991_0_0" index="0" speed="25.00" length="3.24" shape="735.52,1662.53 734.12,1662.36 733.12,1662.20 732.53,1662.07 732.34,1661.96"/>
- </edge>
- <edge id=":1213368991_1" function="internal">
- <lane id=":1213368991_1_0" index="0" speed="27.78" length="6.36" shape="735.52,1662.53 729.20,1661.79"/>
- </edge>
- <edge id=":1213368991_2" function="internal">
- <lane id=":1213368991_2_0" index="0" speed="27.78" length="2.41" shape="735.52,1662.53 734.38,1661.57 734.07,1660.70"/>
- </edge>
- <edge id=":1213368991_9" function="internal">
- <lane id=":1213368991_9_0" index="0" speed="27.78" length="2.41" shape="734.07,1660.70 734.57,1659.93 735.90,1659.25"/>
- </edge>
- <edge id=":1213368991_3" function="internal">
- <lane id=":1213368991_3_0" index="0" speed="25.00" length="3.89" shape="732.56,1660.42 732.85,1659.78 733.50,1659.37 734.52,1659.19 735.90,1659.25"/>
- </edge>
- <edge id=":1213368991_4" function="internal">
- <lane id=":1213368991_4_0" index="0" speed="22.22" length="1.55" shape="732.56,1660.42 732.34,1661.96"/>
- </edge>
- <edge id=":1213368991_5" function="internal">
- <lane id=":1213368991_5_0" index="0" speed="25.00" length="4.02" shape="732.56,1660.42 732.26,1661.16 731.60,1661.63 730.58,1661.84 729.20,1661.79"/>
- </edge>
- <edge id=":1213368991_6" function="internal">
- <lane id=":1213368991_6_0" index="0" speed="27.78" length="6.35" shape="729.60,1658.51 735.90,1659.25"/>
- </edge>
- <edge id=":1213368991_7" function="internal">
- <lane id=":1213368991_7_0" index="0" speed="25.00" length="5.05" shape="729.60,1658.51 730.96,1658.87 731.87,1659.56 732.33,1660.59 732.34,1661.96"/>
- </edge>
- <edge id=":1213368991_8" function="internal">
- <lane id=":1213368991_8_0" index="0" speed="27.78" length="2.41" shape="729.60,1658.51 730.73,1659.48 731.04,1660.35"/>
- </edge>
- <edge id=":1213368991_10" function="internal">
- <lane id=":1213368991_10_0" index="0" speed="27.78" length="2.41" shape="731.04,1660.35 730.53,1661.12 729.20,1661.79"/>
- </edge>
- <edge id=":1224074526_0" function="internal">
- <lane id=":1224074526_0_0" index="0" speed="22.22" length="4.82" shape="562.99,1066.69 561.64,1066.07 561.11,1065.32 561.39,1064.44 562.49,1063.43"/>
- </edge>
- <edge id=":1224074527_0" function="internal">
- <lane id=":1224074527_0_0" index="0" speed="22.22" length="4.82" shape="607.29,1152.11 605.81,1151.94 605.07,1151.39 605.06,1150.46 605.79,1149.17"/>
- </edge>
- <edge id=":1224074532_0" function="internal">
- <lane id=":1224074532_0_0" index="0" speed="22.22" length="8.98" shape="691.87,1109.37 683.69,1113.08"/>
- </edge>
- <edge id=":1224074532_1" function="internal">
- <lane id=":1224074532_1_0" index="0" speed="13.89" length="6.67" shape="691.87,1109.37 689.30,1109.95 687.04,1109.58 685.61,1108.59"/>
- </edge>
- <edge id=":1224074532_9" function="internal">
- <lane id=":1224074532_9_0" index="0" speed="13.89" length="3.41" shape="685.61,1108.59 685.11,1108.25 683.49,1105.96"/>
- </edge>
- <edge id=":1224074532_2" function="internal">
- <lane id=":1224074532_2_0" index="0" speed="22.22" length="2.41" shape="691.87,1109.37 690.42,1109.05 689.74,1108.43"/>
- </edge>
- <edge id=":1224074532_10" function="internal">
- <lane id=":1224074532_10_0" index="0" speed="22.22" length="2.41" shape="689.74,1108.43 689.82,1107.51 690.68,1106.29"/>
- </edge>
- <edge id=":1224074532_3" function="internal">
- <lane id=":1224074532_3_0" index="0" speed="13.89" length="5.19" shape="686.41,1104.42 687.25,1105.64 688.25,1106.35 689.39,1106.57 690.68,1106.29"/>
- </edge>
- <edge id=":1224074532_4" function="internal">
- <lane id=":1224074532_4_0" index="0" speed="13.89" length="10.37" shape="686.41,1104.42 687.36,1107.10 687.23,1109.43 686.00,1111.43 683.69,1113.08"/>
- </edge>
- <edge id=":1224074532_5" function="internal">
- <lane id=":1224074532_5_0" index="0" speed="5.56" length="4.82" shape="686.41,1104.42 686.25,1105.90 685.72,1106.65 684.80,1106.67 683.49,1105.96"/>
- </edge>
- <edge id=":1224074532_6" function="internal">
- <lane id=":1224074532_6_0" index="0" speed="13.89" length="5.01" shape="682.17,1110.14 683.29,1109.35 683.89,1108.38 683.95,1107.25 683.49,1105.96"/>
- </edge>
- <edge id=":1224074532_7" function="internal">
- <lane id=":1224074532_7_0" index="0" speed="22.22" length="9.34" shape="682.17,1110.14 690.68,1106.29"/>
- </edge>
- <edge id=":1224074532_8" function="internal">
- <lane id=":1224074532_8_0" index="0" speed="22.22" length="2.41" shape="682.17,1110.14 683.65,1110.31 684.40,1110.85"/>
- </edge>
- <edge id=":1224074532_11" function="internal">
- <lane id=":1224074532_11_0" index="0" speed="22.22" length="2.41" shape="684.40,1110.85 684.41,1111.77 683.69,1113.08"/>
- </edge>
- <edge id=":1224074533_0" function="internal">
- <lane id=":1224074533_0_0" index="0" speed="22.22" length="8.72" shape="785.28,1085.55 793.88,1084.14"/>
- </edge>
- <edge id=":1224074533_1" function="internal">
- <lane id=":1224074533_1_0" index="0" speed="22.22" length="2.41" shape="785.28,1085.55 786.60,1086.23 787.10,1087.01"/>
- </edge>
- <edge id=":1224074533_4" function="internal">
- <lane id=":1224074533_4_0" index="0" speed="22.22" length="2.41" shape="787.10,1087.01 786.78,1087.87 785.64,1088.83"/>
- </edge>
- <edge id=":1224074533_2" function="internal">
- <lane id=":1224074533_2_0" index="0" speed="22.22" length="3.96" shape="784.50,1092.62 785.05,1090.95 785.42,1089.77 785.62,1089.06 785.64,1088.83"/>
- </edge>
- <edge id=":1224074533_3" function="internal">
- <lane id=":1224074533_3_0" index="0" speed="22.22" length="13.04" shape="784.50,1092.62 785.78,1090.01 787.77,1087.73 790.47,1085.78 793.88,1084.14"/>
- </edge>
- <edge id=":1224074534_0" function="internal">
- <lane id=":1224074534_0_0" index="0" speed="22.22" length="5.56" shape="781.79,1089.26 776.31,1090.16"/>
- </edge>
- <edge id=":1224074534_1" function="internal">
- <lane id=":1224074534_1_0" index="0" speed="15.28" length="4.66" shape="781.79,1089.26 780.10,1088.97 779.07,1087.64 778.88,1086.40"/>
- </edge>
- <edge id=":1224074534_9" function="internal">
- <lane id=":1224074534_9_0" index="0" speed="15.28" length="4.56" shape="778.88,1086.40 778.71,1085.27 779.01,1081.87"/>
- </edge>
- <edge id=":1224074534_2" function="internal">
- <lane id=":1224074534_2_0" index="0" speed="22.22" length="2.41" shape="781.79,1089.26 780.47,1088.58 779.97,1087.81"/>
- </edge>
- <edge id=":1224074534_10" function="internal">
- <lane id=":1224074534_10_0" index="0" speed="22.22" length="2.41" shape="779.97,1087.81 780.29,1086.94 781.43,1085.98"/>
- </edge>
- <edge id=":1224074534_3" function="internal">
- <lane id=":1224074534_3_0" index="0" speed="15.28" length="3.71" shape="782.27,1082.39 782.00,1083.95 781.77,1085.07 781.58,1085.75 781.43,1085.98"/>
- </edge>
- <edge id=":1224074534_4" function="internal">
- <lane id=":1224074534_4_0" index="0" speed="15.28" length="10.46" shape="782.27,1082.39 781.48,1085.45 780.22,1087.76 778.50,1089.33 776.31,1090.16"/>
- </edge>
- <edge id=":1224074534_5" function="internal">
- <lane id=":1224074534_5_0" index="0" speed="8.33" length="4.82" shape="782.27,1082.39 781.26,1083.48 780.38,1083.76 779.63,1083.22 779.01,1081.87"/>
- </edge>
- <edge id=":1224074534_6" function="internal">
- <lane id=":1224074534_6_0" index="0" speed="15.28" length="6.42" shape="775.70,1086.91 776.87,1086.42 777.81,1085.41 778.53,1083.89 779.01,1081.87"/>
- </edge>
- <edge id=":1224074534_7" function="internal">
- <lane id=":1224074534_7_0" index="0" speed="22.22" length="5.81" shape="775.70,1086.91 781.43,1085.98"/>
- </edge>
- <edge id=":1224074534_8" function="internal">
- <lane id=":1224074534_8_0" index="0" speed="22.22" length="2.41" shape="775.70,1086.91 777.06,1087.50 777.62,1088.23"/>
- </edge>
- <edge id=":1224074534_11" function="internal">
- <lane id=":1224074534_11_0" index="0" speed="22.22" length="2.41" shape="777.62,1088.23 777.37,1089.12 776.31,1090.16"/>
- </edge>
- <edge id=":1224074535_0" function="internal">
- <lane id=":1224074535_0_0" index="0" speed="13.89" length="6.64" shape="657.47,1056.62 656.31,1054.76 655.11,1053.49 653.87,1052.81 652.59,1052.71"/>
- </edge>
- <edge id=":1224074535_1" function="internal">
- <lane id=":1224074535_1_0" index="0" speed="13.89" length="12.19" shape="657.47,1056.62 656.28,1053.30 656.61,1050.75 658.46,1048.96 661.83,1047.93"/>
- </edge>
- <edge id=":1224074535_2" function="internal">
- <lane id=":1224074535_2_0" index="0" speed="5.56" length="4.82" shape="657.47,1056.62 657.62,1055.14 658.16,1054.39 659.08,1054.37 660.39,1055.08"/>
- </edge>
- <edge id=":1224074535_3" function="internal">
- <lane id=":1224074535_3_0" index="0" speed="13.89" length="5.46" shape="662.34,1051.19 660.83,1051.65 660.00,1052.45 659.86,1053.60 660.39,1055.08"/>
- </edge>
- <edge id=":1224074535_4" function="internal">
- <lane id=":1224074535_4_0" index="0" speed="22.22" length="9.87" shape="662.34,1051.19 652.59,1052.71"/>
- </edge>
- <edge id=":1224074535_5" function="internal">
- <lane id=":1224074535_5_0" index="0" speed="22.22" length="2.41" shape="662.34,1051.19 660.99,1050.57 660.45,1049.82"/>
- </edge>
- <edge id=":1224074535_9" function="internal">
- <lane id=":1224074535_9_0" index="0" speed="22.22" length="2.41" shape="660.45,1049.82 660.73,1048.94 661.83,1047.93"/>
- </edge>
- <edge id=":1224074535_6" function="internal">
- <lane id=":1224074535_6_0" index="0" speed="22.22" length="9.87" shape="652.08,1049.45 661.83,1047.93"/>
- </edge>
- <edge id=":1224074535_7" function="internal">
- <lane id=":1224074535_7_0" index="0" speed="13.89" length="6.77" shape="652.08,1049.45 654.45,1049.52 656.62,1050.48 658.10,1051.86"/>
- </edge>
- <edge id=":1224074535_10" function="internal">
- <lane id=":1224074535_10_0" index="0" speed="13.89" length="3.97" shape="658.10,1051.86 658.60,1052.33 660.39,1055.08"/>
- </edge>
- <edge id=":1224074535_8" function="internal">
- <lane id=":1224074535_8_0" index="0" speed="22.22" length="2.41" shape="652.08,1049.45 653.43,1050.08 653.96,1050.83"/>
- </edge>
- <edge id=":1224074535_11" function="internal">
- <lane id=":1224074535_11_0" index="0" speed="22.22" length="2.41" shape="653.96,1050.83 653.68,1051.71 652.59,1052.71"/>
- </edge>
- <edge id=":1224080660_0" function="internal">
- <lane id=":1224080660_0_0" index="0" speed="22.22" length="3.26" shape="662.02,1326.06 662.64,1327.29 663.02,1328.21 663.18,1328.80 663.11,1329.06"/>
- </edge>
- <edge id=":1224080660_1" function="internal">
- <lane id=":1224080660_1_0" index="0" speed="22.22" length="2.41" shape="662.02,1326.06 661.86,1327.54 661.32,1328.28"/>
- </edge>
- <edge id=":1224080660_4" function="internal">
- <lane id=":1224080660_4_0" index="0" speed="22.22" length="2.41" shape="661.32,1328.28 660.40,1328.30 659.10,1327.59"/>
- </edge>
- <edge id=":1224080660_2" function="internal">
- <lane id=":1224080660_2_0" index="0" speed="22.22" length="5.13" shape="657.95,1331.97 659.02,1331.14 659.57,1330.13 659.59,1328.94 659.10,1327.59"/>
- </edge>
- <edge id=":1224080660_3" function="internal">
- <lane id=":1224080660_3_0" index="0" speed="22.22" length="5.92" shape="657.95,1331.97 663.11,1329.06"/>
- </edge>
- <edge id=":1224080662_0" function="internal">
- <lane id=":1224080662_0_0" index="0" speed="22.22" length="0.10" shape="630.37,1226.05 630.36,1226.06"/>
- </edge>
- <edge id=":1224080669_0" function="internal">
- <lane id=":1224080669_0_0" index="0" speed="22.22" length="6.43" shape="522.85,1037.62 521.76,1035.83 520.60,1034.63 519.38,1034.00 518.09,1033.95"/>
- </edge>
- <edge id=":1224080669_1" function="internal">
- <lane id=":1224080669_1_0" index="0" speed="22.22" length="11.96" shape="522.85,1037.62 521.73,1034.37 522.07,1031.85 523.87,1030.04 527.13,1028.96"/>
- </edge>
- <edge id=":1224080669_2" function="internal">
- <lane id=":1224080669_2_0" index="0" speed="22.22" length="4.82" shape="522.85,1037.62 523.02,1036.14 523.57,1035.40 524.49,1035.39 525.79,1036.11"/>
- </edge>
- <edge id=":1224080669_3" function="internal">
- <lane id=":1224080669_3_0" index="0" speed="22.22" length="5.40" shape="527.72,1032.20 526.25,1032.69 525.44,1033.51 525.28,1034.65 525.79,1036.11"/>
- </edge>
- <edge id=":1224080669_4" function="internal">
- <lane id=":1224080669_4_0" index="0" speed="22.22" length="9.79" shape="527.72,1032.20 518.09,1033.95"/>
- </edge>
- <edge id=":1224080669_5" function="internal">
- <lane id=":1224080669_5_0" index="0" speed="22.22" length="2.41" shape="527.72,1032.20 526.35,1031.61 525.80,1030.88"/>
- </edge>
- <edge id=":1224080669_9" function="internal">
- <lane id=":1224080669_9_0" index="0" speed="22.22" length="2.41" shape="525.80,1030.88 526.06,1029.99 527.13,1028.96"/>
- </edge>
- <edge id=":1224080669_6" function="internal">
- <lane id=":1224080669_6_0" index="0" speed="22.22" length="9.79" shape="517.50,1030.71 527.13,1028.96"/>
- </edge>
- <edge id=":1224080669_7" function="internal">
- <lane id=":1224080669_7_0" index="0" speed="22.22" length="6.78" shape="517.50,1030.71 519.91,1030.70 522.10,1031.60 523.57,1032.96"/>
- </edge>
- <edge id=":1224080669_10" function="internal">
- <lane id=":1224080669_10_0" index="0" speed="22.22" length="3.87" shape="523.57,1032.96 524.06,1033.40 525.79,1036.11"/>
- </edge>
- <edge id=":1224080669_8" function="internal">
- <lane id=":1224080669_8_0" index="0" speed="22.22" length="2.41" shape="517.50,1030.71 518.86,1031.30 519.42,1032.03"/>
- </edge>
- <edge id=":1224080669_11" function="internal">
- <lane id=":1224080669_11_0" index="0" speed="22.22" length="2.41" shape="519.42,1032.03 519.16,1032.92 518.09,1033.95"/>
- </edge>
- <edge id=":1224080676_0" function="internal">
- <lane id=":1224080676_0_0" index="0" speed="22.22" length="4.82" shape="506.66,1034.66 506.86,1033.19 507.42,1032.45 508.34,1032.46 509.62,1033.21"/>
- </edge>
- <edge id=":1224091971_0" function="internal">
- <lane id=":1224091971_0_0" index="0" speed="22.22" length="6.56" shape="620.86,1062.27 619.74,1060.43 618.57,1059.18 617.34,1058.50 616.05,1058.42"/>
- </edge>
- <edge id=":1224091971_1" function="internal">
- <lane id=":1224091971_1_0" index="0" speed="22.22" length="12.11" shape="620.86,1062.27 619.72,1058.98 620.08,1056.44 621.93,1054.66 625.26,1053.64"/>
- </edge>
- <edge id=":1224091971_2" function="internal">
- <lane id=":1224091971_2_0" index="0" speed="22.22" length="4.82" shape="620.86,1062.27 621.03,1060.80 621.58,1060.05 622.50,1060.05 623.80,1060.77"/>
- </edge>
- <edge id=":1224091971_3" function="internal">
- <lane id=":1224091971_3_0" index="0" speed="22.22" length="5.43" shape="625.77,1056.90 624.28,1057.35 623.45,1058.15 623.29,1059.29 623.80,1060.77"/>
- </edge>
- <edge id=":1224091971_4" function="internal">
- <lane id=":1224091971_4_0" index="0" speed="22.22" length="9.84" shape="625.77,1056.90 616.05,1058.42"/>
- </edge>
- <edge id=":1224091971_5" function="internal">
- <lane id=":1224091971_5_0" index="0" speed="22.22" length="2.41" shape="625.77,1056.90 624.42,1056.27 623.89,1055.52"/>
- </edge>
- <edge id=":1224091971_9" function="internal">
- <lane id=":1224091971_9_0" index="0" speed="22.22" length="2.41" shape="623.89,1055.52 624.17,1054.64 625.26,1053.64"/>
- </edge>
- <edge id=":1224091971_6" function="internal">
- <lane id=":1224091971_6_0" index="0" speed="22.22" length="9.84" shape="615.54,1055.16 625.26,1053.64"/>
- </edge>
- <edge id=":1224091971_7" function="internal">
- <lane id=":1224091971_7_0" index="0" speed="22.22" length="6.77" shape="615.54,1055.16 617.93,1055.22 620.10,1056.17 621.56,1057.56"/>
- </edge>
- <edge id=":1224091971_10" function="internal">
- <lane id=":1224091971_10_0" index="0" speed="22.22" length="3.94" shape="621.56,1057.56 622.06,1058.02 623.80,1060.77"/>
- </edge>
- <edge id=":1224091971_8" function="internal">
- <lane id=":1224091971_8_0" index="0" speed="22.22" length="2.41" shape="615.54,1055.16 616.89,1055.78 617.43,1056.53"/>
- </edge>
- <edge id=":1224091971_11" function="internal">
- <lane id=":1224091971_11_0" index="0" speed="22.22" length="2.41" shape="617.43,1056.53 617.15,1057.41 616.05,1058.42"/>
- </edge>
- <edge id=":1228499918_0" function="internal">
- <lane id=":1228499918_0_0" index="0" speed="18.06" length="5.01" shape="717.09,2155.57 716.71,2154.26 715.99,2153.38 714.95,2152.95 713.57,2152.96"/>
- </edge>
- <edge id=":1228499918_1" function="internal">
- <lane id=":1228499918_1_0" index="0" speed="22.22" length="9.50" shape="717.09,2155.57 715.72,2146.17"/>
- </edge>
- <edge id=":1228499918_2" function="internal">
- <lane id=":1228499918_2_0" index="0" speed="18.06" length="5.02" shape="713.08,2149.70 714.40,2149.30 715.29,2148.58 715.73,2147.54 715.72,2146.17"/>
- </edge>
- <edge id=":1228499918_3" function="internal">
- <lane id=":1228499918_3_0" index="0" speed="13.89" length="4.82" shape="713.08,2149.70 714.42,2150.33 714.96,2151.08 714.67,2151.96 713.57,2152.96"/>
- </edge>
- <edge id=":1228499925_0" function="internal">
- <lane id=":1228499925_0_0" index="0" speed="13.89" length="4.82" shape="369.05,2202.90 367.71,2202.26 367.19,2201.50 367.48,2200.62 368.59,2199.63"/>
- </edge>
- <edge id=":1228499945_0" function="internal">
- <lane id=":1228499945_0_0" index="0" speed="22.22" length="6.36" shape="701.43,2048.16 700.52,2041.86"/>
- </edge>
- <edge id=":1228499945_1" function="internal">
- <lane id=":1228499945_1_0" index="0" speed="18.06" length="5.19" shape="701.43,2048.16 701.43,2046.73 701.86,2045.64 702.75,2044.86 704.08,2044.41"/>
- </edge>
- <edge id=":1228499945_2" function="internal">
- <lane id=":1228499945_2_0" index="0" speed="18.06" length="5.21" shape="697.84,2045.64 699.18,2045.16 700.07,2044.37 700.52,2043.27 700.52,2041.86"/>
- </edge>
- <edge id=":1228499945_3" function="internal">
- <lane id=":1228499945_3_0" index="0" speed="13.89" length="6.36" shape="697.84,2045.64 704.08,2044.41"/>
- </edge>
- <edge id=":1228499957_0" function="internal">
- <lane id=":1228499957_0_0" index="0" speed="20.83" length="9.90" shape="628.91,2171.03 627.25,2169.06 625.27,2167.76 622.99,2167.12 620.41,2167.15"/>
- </edge>
- <edge id=":1228499957_1" function="internal">
- <lane id=":1228499957_1_0" index="0" speed="27.78" length="13.14" shape="628.91,2171.03 627.02,2168.14 625.33,2165.53 623.66,2162.90 621.82,2159.97"/>
- </edge>
- <edge id=":1228499957_2" function="internal">
- <lane id=":1228499957_2_0" index="0" speed="20.83" length="7.71" shape="628.91,2171.03 627.28,2167.62 627.41,2164.97 628.32,2164.07"/>
- </edge>
- <edge id=":1228499957_16" function="internal">
- <lane id=":1228499957_16_0" index="0" speed="20.83" length="5.15" shape="628.32,2164.07 629.28,2163.11 632.91,2162.01"/>
- </edge>
- <edge id=":1228499957_3" function="internal">
- <lane id=":1228499957_3_0" index="0" speed="27.78" length="2.41" shape="628.91,2171.03 628.92,2169.55 629.39,2168.75"/>
- </edge>
- <edge id=":1228499957_17" function="internal">
- <lane id=":1228499957_17_0" index="0" speed="27.78" length="2.41" shape="629.39,2168.75 630.30,2168.64 631.67,2169.22"/>
- </edge>
- <edge id=":1228499957_4" function="internal">
- <lane id=":1228499957_4_0" index="0" speed="20.83" length="5.63" shape="633.42,2165.27 631.83,2165.75 631.01,2166.57 630.96,2167.72 631.67,2169.22"/>
- </edge>
- <edge id=":1228499957_5" function="internal">
- <lane id=":1228499957_5_0" index="0" speed="13.89" length="13.14" shape="633.42,2165.27 630.00,2165.80 626.92,2166.26 623.84,2166.69 620.41,2167.15"/>
- </edge>
- <edge id=":1228499957_6" function="internal">
- <lane id=":1228499957_6_0" index="0" speed="20.83" length="13.58" shape="633.42,2165.27 629.86,2165.39 626.74,2164.54 624.06,2162.73 621.82,2159.97"/>
- </edge>
- <edge id=":1228499957_7" function="internal">
- <lane id=":1228499957_7_0" index="0" speed="13.89" length="4.82" shape="633.42,2165.27 632.07,2164.65 631.53,2163.90 631.81,2163.02 632.91,2162.01"/>
- </edge>
- <edge id=":1228499957_8" function="internal">
- <lane id=":1228499957_8_0" index="0" speed="20.83" length="9.70" shape="624.62,2158.22 626.22,2160.20 628.14,2161.49 630.37,2162.09 632.91,2162.01"/>
- </edge>
- <edge id=":1228499957_9" function="internal">
- <lane id=":1228499957_9_0" index="0" speed="27.78" length="13.06" shape="624.62,2158.22 626.45,2161.14 628.11,2163.75 629.78,2166.34 631.67,2169.22"/>
- </edge>
- <edge id=":1228499957_10" function="internal">
- <lane id=":1228499957_10_0" index="0" speed="20.83" length="7.66" shape="624.62,2158.22 626.17,2161.68 625.98,2164.32 625.10,2165.16"/>
- </edge>
- <edge id=":1228499957_18" function="internal">
- <lane id=":1228499957_18_0" index="0" speed="20.83" length="5.22" shape="625.10,2165.16 624.06,2166.14 620.41,2167.15"/>
- </edge>
- <edge id=":1228499957_11" function="internal">
- <lane id=":1228499957_11_0" index="0" speed="27.78" length="2.41" shape="624.62,2158.22 624.57,2159.71 624.09,2160.50"/>
- </edge>
- <edge id=":1228499957_19" function="internal">
- <lane id=":1228499957_19_0" index="0" speed="27.78" length="2.41" shape="624.09,2160.50 623.17,2160.58 621.82,2159.97"/>
- </edge>
- <edge id=":1228499957_12" function="internal">
- <lane id=":1228499957_12_0" index="0" speed="20.83" length="5.63" shape="619.98,2163.87 621.58,2163.43 622.42,2162.64 622.50,2161.48 621.82,2159.97"/>
- </edge>
- <edge id=":1228499957_13" function="internal">
- <lane id=":1228499957_13_0" index="0" speed="13.89" length="13.06" shape="619.98,2163.87 623.39,2163.42 626.45,2162.99 629.50,2162.54 632.91,2162.01"/>
- </edge>
- <edge id=":1228499957_14" function="internal">
- <lane id=":1228499957_14_0" index="0" speed="20.83" length="13.61" shape="619.98,2163.87 623.53,2163.84 626.66,2164.72 629.38,2166.51 631.67,2169.22"/>
- </edge>
- <edge id=":1228499957_15" function="internal">
- <lane id=":1228499957_15_0" index="0" speed="13.89" length="4.82" shape="619.98,2163.87 621.31,2164.53 621.83,2165.29 621.53,2166.17 620.41,2167.15"/>
- </edge>
- <edge id=":1228499992_0" function="internal">
- <lane id=":1228499992_0_0" index="0" speed="27.78" length="8.85" shape="569.80,2076.76 565.08,2069.27"/>
- </edge>
- <edge id=":1228499992_1" function="internal">
- <lane id=":1228499992_1_0" index="0" speed="20.83" length="5.35" shape="569.80,2076.76 569.09,2074.80 569.60,2073.19 570.87,2072.27"/>
- </edge>
- <edge id=":1228499992_9" function="internal">
- <lane id=":1228499992_9_0" index="0" speed="20.83" length="3.69" shape="570.87,2072.27 571.34,2071.93 574.31,2071.02"/>
- </edge>
- <edge id=":1228499992_2" function="internal">
- <lane id=":1228499992_2_0" index="0" speed="27.78" length="2.41" shape="569.80,2076.76 569.85,2075.27 570.33,2074.48"/>
- </edge>
- <edge id=":1228499992_10" function="internal">
- <lane id=":1228499992_10_0" index="0" speed="27.78" length="2.41" shape="570.33,2074.48 571.25,2074.40 572.60,2075.01"/>
- </edge>
- <edge id=":1228499992_3" function="internal">
- <lane id=":1228499992_3_0" index="0" speed="20.83" length="7.85" shape="567.86,2067.50 569.29,2069.32 570.84,2070.52 572.52,2071.09 574.31,2071.02"/>
- </edge>
- <edge id=":1228499992_4" function="internal">
- <lane id=":1228499992_4_0" index="0" speed="27.78" length="8.88" shape="567.86,2067.50 572.60,2075.01"/>
- </edge>
- <edge id=":1228499992_5" function="internal">
- <lane id=":1228499992_5_0" index="0" speed="27.78" length="2.41" shape="567.86,2067.50 567.83,2068.98 567.35,2069.78"/>
- </edge>
- <edge id=":1228499992_11" function="internal">
- <lane id=":1228499992_11_0" index="0" speed="27.78" length="2.41" shape="567.35,2069.78 566.44,2069.87 565.08,2069.27"/>
- </edge>
- <edge id=":1228499992_6" function="internal">
- <lane id=":1228499992_6_0" index="0" speed="20.83" length="5.51" shape="563.39,2073.27 564.90,2072.73 565.68,2071.88 565.74,2070.73 565.08,2069.27"/>
- </edge>
- <edge id=":1228499992_7" function="internal">
- <lane id=":1228499992_7_0" index="0" speed="13.89" length="11.15" shape="563.39,2073.27 566.47,2072.63 568.85,2072.14 571.23,2071.65 574.31,2071.02"/>
- </edge>
- <edge id=":1228499992_8" function="internal">
- <lane id=":1228499992_8_0" index="0" speed="20.83" length="9.92" shape="563.39,2073.27 566.66,2072.82 569.29,2072.96 571.27,2073.69 572.60,2075.01"/>
- </edge>
- <edge id=":1231011197_0" function="internal">
- <lane id=":1231011197_0_0" index="0" speed="22.22" length="6.20" shape="712.25,2046.12 711.42,2039.98"/>
- </edge>
- <edge id=":1231011197_1" function="internal">
- <lane id=":1231011197_1_0" index="0" speed="22.22" length="2.41" shape="712.25,2046.12 712.90,2044.79 713.66,2044.27"/>
- </edge>
- <edge id=":1231011197_6" function="internal">
- <lane id=":1231011197_6_0" index="0" speed="22.22" length="2.41" shape="713.66,2044.27 714.54,2044.56 715.52,2045.68"/>
- </edge>
- <edge id=":1231011197_2" function="internal">
- <lane id=":1231011197_2_0" index="0" speed="22.22" length="6.20" shape="714.69,2039.54 715.52,2045.68"/>
- </edge>
- <edge id=":1231011197_3" function="internal">
- <lane id=":1231011197_3_0" index="0" speed="22.22" length="2.41" shape="714.69,2039.54 714.03,2040.87 713.27,2041.39"/>
- </edge>
- <edge id=":1231011197_7" function="internal">
- <lane id=":1231011197_7_0" index="0" speed="22.22" length="2.41" shape="713.27,2041.39 712.40,2041.09 711.42,2039.98"/>
- </edge>
- <edge id=":1231011197_4" function="internal">
- <lane id=":1231011197_4_0" index="0" speed="18.06" length="5.07" shape="708.70,2043.55 710.04,2043.11 710.94,2042.37 711.40,2041.33 711.42,2039.98"/>
- </edge>
- <edge id=":1231011197_5" function="internal">
- <lane id=":1231011197_5_0" index="0" speed="18.06" length="7.99" shape="708.70,2043.55 711.51,2043.24 713.59,2043.49 714.92,2044.30 715.52,2045.68"/>
- </edge>
- <edge id=":1232169474_0" function="internal">
- <lane id=":1232169474_0_0" index="0" speed="13.89" length="9.50" shape="669.32,2159.67 659.94,2161.12"/>
- </edge>
- <edge id=":1232169474_1" function="internal">
- <lane id=":1232169474_1_0" index="0" speed="18.06" length="10.35" shape="669.32,2159.67 666.63,2159.67 664.49,2158.76 662.90,2156.94 661.87,2154.22"/>
- </edge>
- <edge id=":1232169474_2" function="internal">
- <lane id=":1232169474_2_0" index="0" speed="13.89" length="4.82" shape="669.32,2159.67 667.98,2159.04 667.45,2158.29 667.73,2157.41 668.83,2156.41"/>
- </edge>
- <edge id=":1232169474_3" function="internal">
- <lane id=":1232169474_3_0" index="0" speed="18.06" length="5.34" shape="665.08,2153.45 665.62,2154.91 666.42,2155.89 667.49,2156.39 668.83,2156.41"/>
- </edge>
- <edge id=":1232169474_4" function="internal">
- <lane id=":1232169474_4_0" index="0" speed="18.06" length="10.73" shape="665.08,2153.45 665.35,2156.41 664.58,2158.68 662.78,2160.25 659.94,2161.12"/>
- </edge>
- <edge id=":1232169474_5" function="internal">
- <lane id=":1232169474_5_0" index="0" speed="22.22" length="4.82" shape="665.08,2153.45 664.56,2154.84 663.86,2155.44 662.96,2155.23 661.87,2154.22"/>
- </edge>
- <edge id=":1232169474_6" function="internal">
- <lane id=":1232169474_6_0" index="0" speed="18.06" length="5.10" shape="659.43,2157.86 660.78,2157.45 661.63,2156.70 662.00,2155.62 661.87,2154.22"/>
- </edge>
- <edge id=":1232169474_7" function="internal">
- <lane id=":1232169474_7_0" index="0" speed="13.89" length="9.51" shape="659.43,2157.86 668.83,2156.41"/>
- </edge>
- <edge id=":1232169474_8" function="internal">
- <lane id=":1232169474_8_0" index="0" speed="13.89" length="4.82" shape="659.43,2157.86 660.78,2158.48 661.31,2159.24 661.03,2160.11 659.94,2161.12"/>
- </edge>
- <edge id=":1232172714_0" function="internal">
- <lane id=":1232172714_0_0" index="0" speed="22.22" length="9.35" shape="665.83,1682.00 656.55,1680.89"/>
- </edge>
- <edge id=":1232172714_1" function="internal">
- <lane id=":1232172714_1_0" index="0" speed="18.06" length="7.12" shape="665.83,1682.00 663.14,1681.20 661.34,1679.72 660.57,1677.90"/>
- </edge>
- <edge id=":1232172714_9" function="internal">
- <lane id=":1232172714_9_0" index="0" speed="18.06" length="3.21" shape="660.57,1677.90 660.43,1677.56 660.40,1674.72"/>
- </edge>
- <edge id=":1232172714_2" function="internal">
- <lane id=":1232172714_2_0" index="0" speed="22.22" length="2.41" shape="665.83,1682.00 664.72,1681.01 664.43,1680.13"/>
- </edge>
- <edge id=":1232172714_10" function="internal">
- <lane id=":1232172714_10_0" index="0" speed="22.22" length="2.41" shape="664.43,1680.13 664.96,1679.37 666.31,1678.74"/>
- </edge>
- <edge id=":1232172714_3" function="internal">
- <lane id=":1232172714_3_0" index="0" speed="18.06" length="5.05" shape="663.67,1675.15 663.68,1676.55 664.12,1677.62 665.00,1678.34 666.31,1678.74"/>
- </edge>
- <edge id=":1232172714_4" function="internal">
- <lane id=":1232172714_4_0" index="0" speed="18.06" length="9.29" shape="663.67,1675.15 663.14,1676.19 661.77,1677.49 659.57,1679.06 656.55,1680.89"/>
- </edge>
- <edge id=":1232172714_5" function="internal">
- <lane id=":1232172714_5_0" index="0" speed="13.89" length="4.82" shape="663.67,1675.15 662.69,1676.27 661.82,1676.57 661.06,1676.05 660.40,1674.72"/>
- </edge>
- <edge id=":1232172714_6" function="internal">
- <lane id=":1232172714_6_0" index="0" speed="18.06" length="4.98" shape="656.95,1677.37 658.31,1677.37 659.33,1676.93 660.03,1676.05 660.40,1674.72"/>
- </edge>
- <edge id=":1232172714_7" function="internal">
- <lane id=":1232172714_7_0" index="0" speed="22.22" length="9.45" shape="656.95,1677.37 666.31,1678.74"/>
- </edge>
- <edge id=":1232172714_8" function="internal">
- <lane id=":1232172714_8_0" index="0" speed="22.22" length="2.59" shape="656.95,1677.37 658.17,1678.40 658.51,1679.33"/>
- </edge>
- <edge id=":1232172714_11" function="internal">
- <lane id=":1232172714_11_0" index="0" speed="22.22" length="2.59" shape="658.51,1679.33 657.97,1680.16 656.55,1680.89"/>
- </edge>
- <edge id=":1232172723_0" function="internal">
- <lane id=":1232172723_0_0" index="0" speed="18.06" length="5.76" shape="673.48,1629.25 671.97,1628.44 670.81,1628.45 670.00,1629.29 669.55,1630.95"/>
- </edge>
- <edge id=":1232172723_1" function="internal">
- <lane id=":1232172723_1_0" index="0" speed="22.22" length="10.38" shape="673.48,1629.25 671.03,1627.48 669.28,1626.21 667.53,1624.94 665.07,1623.17"/>
- </edge>
- <edge id=":1232172723_2" function="internal">
- <lane id=":1232172723_2_0" index="0" speed="22.22" length="2.41" shape="673.48,1629.25 672.96,1627.86 673.11,1626.95"/>
- </edge>
- <edge id=":1232172723_9" function="internal">
- <lane id=":1232172723_9_0" index="0" speed="22.22" length="2.41" shape="673.11,1626.95 673.93,1626.52 675.42,1626.58"/>
- </edge>
- <edge id=":1232172723_3" function="internal">
- <lane id=":1232172723_3_0" index="0" speed="22.22" length="10.38" shape="667.00,1620.50 669.46,1622.27 671.21,1623.54 672.96,1624.80 675.42,1626.58"/>
- </edge>
- <edge id=":1232172723_4" function="internal">
- <lane id=":1232172723_4_0" index="0" speed="18.06" length="6.79" shape="667.00,1620.50 668.51,1622.12 669.43,1624.41 669.68,1626.50"/>
- </edge>
- <edge id=":1232172723_10" function="internal">
- <lane id=":1232172723_10_0" index="0" speed="18.06" length="4.46" shape="669.68,1626.50 669.78,1627.35 669.55,1630.95"/>
- </edge>
- <edge id=":1232172723_5" function="internal">
- <lane id=":1232172723_5_0" index="0" speed="22.22" length="2.41" shape="667.00,1620.50 667.52,1621.89 667.37,1622.80"/>
- </edge>
- <edge id=":1232172723_11" function="internal">
- <lane id=":1232172723_11_0" index="0" speed="22.22" length="2.41" shape="667.37,1622.80 666.56,1623.23 665.07,1623.17"/>
- </edge>
- <edge id=":1232172723_6" function="internal">
- <lane id=":1232172723_6_0" index="0" speed="18.06" length="7.72" shape="666.28,1630.51 666.50,1627.84 666.37,1625.72 665.89,1624.17 665.07,1623.17"/>
- </edge>
- <edge id=":1232172723_7" function="internal">
- <lane id=":1232172723_7_0" index="0" speed="18.06" length="13.38" shape="666.28,1630.51 667.33,1626.66 669.20,1624.72 671.90,1624.69 675.42,1626.58"/>
- </edge>
- <edge id=":1232172723_8" function="internal">
- <lane id=":1232172723_8_0" index="0" speed="13.89" length="4.82" shape="666.28,1630.51 667.26,1629.39 668.13,1629.09 668.89,1629.61 669.55,1630.95"/>
- </edge>
- <edge id=":1233612841_0" function="internal">
- <lane id=":1233612841_0_0" index="0" speed="27.78" length="4.82" shape="266.95,1606.31 265.82,1605.35 265.50,1604.49 266.00,1603.71 267.32,1603.03"/>
- </edge>
- <edge id=":1239242543_0" function="internal">
- <lane id=":1239242543_0_0" index="0" speed="20.83" length="5.14" shape="669.60,1654.68 668.19,1654.71 667.13,1655.19 666.40,1656.10 666.02,1657.46"/>
- </edge>
- <edge id=":1239242543_1" function="internal">
- <lane id=":1239242543_1_0" index="0" speed="27.78" length="9.60" shape="669.60,1654.68 660.06,1653.56"/>
- </edge>
- <edge id=":1239242543_2" function="internal">
- <lane id=":1239242543_2_0" index="0" speed="20.83" length="7.15" shape="669.60,1654.68 666.83,1653.95 664.98,1652.51 664.20,1650.72"/>
- </edge>
- <edge id=":1239242543_16" function="internal">
- <lane id=":1239242543_16_0" index="0" speed="20.83" length="3.25" shape="664.20,1650.72 664.04,1650.36 664.02,1647.50"/>
- </edge>
- <edge id=":1239242543_3" function="internal">
- <lane id=":1239242543_3_0" index="0" speed="27.78" length="2.41" shape="669.60,1654.68 668.46,1653.72 668.15,1652.85"/>
- </edge>
- <edge id=":1239242543_17" function="internal">
- <lane id=":1239242543_17_0" index="0" speed="27.78" length="2.41" shape="668.15,1652.85 668.65,1652.08 669.98,1651.40"/>
- </edge>
- <edge id=":1239242543_4" function="internal">
- <lane id=":1239242543_4_0" index="0" speed="20.83" length="5.02" shape="667.29,1647.94 667.30,1649.32 667.75,1650.35 668.65,1651.05 669.98,1651.40"/>
- </edge>
- <edge id=":1239242543_5" function="internal">
- <lane id=":1239242543_5_0" index="0" speed="13.89" length="9.60" shape="667.29,1647.94 666.02,1657.46"/>
- </edge>
- <edge id=":1239242543_6" function="internal">
- <lane id=":1239242543_6_0" index="0" speed="20.83" length="10.41" shape="667.29,1647.94 666.52,1650.68 665.06,1652.53 662.90,1653.49 660.06,1653.56"/>
- </edge>
- <edge id=":1239242543_7" function="internal">
- <lane id=":1239242543_7_0" index="0" speed="13.89" length="4.82" shape="667.29,1647.94 666.31,1649.06 665.43,1649.36 664.67,1648.84 664.02,1647.50"/>
- </edge>
- <edge id=":1239242543_8" function="internal">
- <lane id=":1239242543_8_0" index="0" speed="20.83" length="5.14" shape="660.44,1650.28 661.85,1650.25 662.91,1649.77 663.64,1648.86 664.02,1647.50"/>
- </edge>
- <edge id=":1239242543_9" function="internal">
- <lane id=":1239242543_9_0" index="0" speed="27.78" length="9.60" shape="660.44,1650.28 669.98,1651.40"/>
- </edge>
- <edge id=":1239242543_10" function="internal">
- <lane id=":1239242543_10_0" index="0" speed="20.83" length="7.15" shape="660.44,1650.28 663.20,1651.01 665.05,1652.45 665.84,1654.24"/>
- </edge>
- <edge id=":1239242543_18" function="internal">
- <lane id=":1239242543_18_0" index="0" speed="20.83" length="3.25" shape="665.84,1654.24 665.99,1654.60 666.02,1657.46"/>
- </edge>
- <edge id=":1239242543_11" function="internal">
- <lane id=":1239242543_11_0" index="0" speed="27.78" length="2.41" shape="660.44,1650.28 661.58,1651.25 661.89,1652.11"/>
- </edge>
- <edge id=":1239242543_19" function="internal">
- <lane id=":1239242543_19_0" index="0" speed="27.78" length="2.41" shape="661.89,1652.11 661.38,1652.89 660.06,1653.56"/>
- </edge>
- <edge id=":1239242543_12" function="internal">
- <lane id=":1239242543_12_0" index="0" speed="20.83" length="5.02" shape="662.75,1657.02 662.74,1655.64 662.28,1654.61 661.39,1653.91 660.06,1653.56"/>
- </edge>
- <edge id=":1239242543_13" function="internal">
- <lane id=":1239242543_13_0" index="0" speed="13.89" length="9.60" shape="662.75,1657.02 664.02,1647.50"/>
- </edge>
- <edge id=":1239242543_14" function="internal">
- <lane id=":1239242543_14_0" index="0" speed="20.83" length="10.41" shape="662.75,1657.02 663.52,1654.28 664.98,1652.43 667.13,1651.47 669.98,1651.40"/>
- </edge>
- <edge id=":1239242543_15" function="internal">
- <lane id=":1239242543_15_0" index="0" speed="13.89" length="4.82" shape="662.75,1657.02 663.73,1655.90 664.60,1655.60 665.37,1656.12 666.02,1657.46"/>
- </edge>
- <edge id=":1239242544_0" function="internal">
- <lane id=":1239242544_0_0" index="0" speed="22.22" length="6.40" shape="639.59,2061.03 638.12,2054.80"/>
- </edge>
- <edge id=":1239242544_1" function="internal">
- <lane id=":1239242544_1_0" index="0" speed="18.06" length="4.78" shape="639.59,2061.03 639.66,2059.56 640.61,2058.33 642.15,2057.49"/>
- </edge>
- <edge id=":1239242544_9" function="internal">
- <lane id=":1239242544_9_0" index="0" speed="18.06" length="3.15" shape="642.15,2057.49 642.44,2057.33 645.15,2056.56"/>
- </edge>
- <edge id=":1239242544_2" function="internal">
- <lane id=":1239242544_2_0" index="0" speed="22.22" length="2.41" shape="639.59,2061.03 640.11,2059.63 640.81,2059.04"/>
- </edge>
- <edge id=":1239242544_10" function="internal">
- <lane id=":1239242544_10_0" index="0" speed="22.22" length="2.41" shape="640.81,2059.04 641.71,2059.25 642.80,2060.26"/>
- </edge>
- <edge id=":1239242544_3" function="internal">
- <lane id=":1239242544_3_0" index="0" speed="18.06" length="5.18" shape="641.34,2054.05 641.85,2055.39 642.66,2056.25 643.76,2056.64 645.15,2056.56"/>
- </edge>
- <edge id=":1239242544_4" function="internal">
- <lane id=":1239242544_4_0" index="0" speed="22.22" length="6.38" shape="641.34,2054.05 642.80,2060.26"/>
- </edge>
- <edge id=":1239242544_5" function="internal">
- <lane id=":1239242544_5_0" index="0" speed="22.22" length="2.41" shape="641.34,2054.05 640.81,2055.44 640.10,2056.03"/>
- </edge>
- <edge id=":1239242544_11" function="internal">
- <lane id=":1239242544_11_0" index="0" speed="22.22" length="2.41" shape="640.10,2056.03 639.21,2055.82 638.12,2054.80"/>
- </edge>
- <edge id=":1239242544_6" function="internal">
- <lane id=":1239242544_6_0" index="0" speed="18.06" length="5.03" shape="635.75,2058.49 637.06,2058.02 637.89,2057.25 638.24,2056.18 638.12,2054.80"/>
- </edge>
- <edge id=":1239242544_7" function="internal">
- <lane id=":1239242544_7_0" index="0" speed="13.89" length="9.60" shape="635.75,2058.49 645.15,2056.56"/>
- </edge>
- <edge id=":1239242544_8" function="internal">
- <lane id=":1239242544_8_0" index="0" speed="18.06" length="7.98" shape="635.75,2058.49 638.56,2058.12 640.67,2058.29 642.09,2059.00 642.80,2060.26"/>
- </edge>
- <edge id=":1239243628_0" function="internal">
- <lane id=":1239243628_0_0" index="0" speed="22.22" length="5.24" shape="656.13,1130.94 655.26,1129.78 654.24,1129.16 653.06,1129.07 651.72,1129.52"/>
- </edge>
- <edge id=":1239243628_1" function="internal">
- <lane id=":1239243628_1_0" index="0" speed="22.22" length="9.67" shape="656.13,1130.94 651.58,1122.41"/>
- </edge>
- <edge id=":1239243628_2" function="internal">
- <lane id=":1239243628_2_0" index="0" speed="22.22" length="10.48" shape="656.13,1130.94 655.10,1128.24 655.20,1125.89 656.42,1123.88 658.78,1122.20"/>
- </edge>
- <edge id=":1239243628_3" function="internal">
- <lane id=":1239243628_3_0" index="0" speed="22.22" length="4.82" shape="656.13,1130.94 656.25,1129.46 656.77,1128.69 657.70,1128.65 659.02,1129.34"/>
- </edge>
- <edge id=":1239243628_4" function="internal">
- <lane id=":1239243628_4_0" index="0" speed="22.22" length="5.04" shape="660.29,1125.14 659.16,1125.94 658.57,1126.91 658.52,1128.04 659.02,1129.34"/>
- </edge>
- <edge id=":1239243628_5" function="internal">
- <lane id=":1239243628_5_0" index="0" speed="22.22" length="9.62" shape="660.29,1125.14 651.72,1129.52"/>
- </edge>
- <edge id=":1239243628_6" function="internal">
- <lane id=":1239243628_6_0" index="0" speed="22.22" length="7.24" shape="660.29,1125.14 657.57,1126.09 655.22,1125.95 653.51,1124.90"/>
- </edge>
- <edge id=":1239243628_16" function="internal">
- <lane id=":1239243628_16_0" index="0" speed="22.22" length="3.18" shape="653.51,1124.90 653.22,1124.72 651.58,1122.41"/>
- </edge>
- <edge id=":1239243628_7" function="internal">
- <lane id=":1239243628_7_0" index="0" speed="22.22" length="2.41" shape="660.29,1125.14 658.81,1124.97 658.06,1124.43"/>
- </edge>
- <edge id=":1239243628_17" function="internal">
- <lane id=":1239243628_17_0" index="0" speed="22.22" length="2.41" shape="658.06,1124.43 658.05,1123.50 658.78,1122.20"/>
- </edge>
- <edge id=":1239243628_8" function="internal">
- <lane id=":1239243628_8_0" index="0" speed="22.22" length="5.08" shape="654.52,1120.90 655.32,1122.02 656.29,1122.61 657.44,1122.67 658.78,1122.20"/>
- </edge>
- <edge id=":1239243628_9" function="internal">
- <lane id=":1239243628_9_0" index="0" speed="22.22" length="9.56" shape="654.52,1120.90 659.02,1129.34"/>
- </edge>
- <edge id=":1239243628_10" function="internal">
- <lane id=":1239243628_10_0" index="0" speed="22.22" length="10.34" shape="654.52,1120.90 655.44,1123.58 655.28,1125.91 654.04,1127.89 651.72,1129.52"/>
- </edge>
- <edge id=":1239243628_11" function="internal">
- <lane id=":1239243628_11_0" index="0" speed="22.22" length="4.82" shape="654.52,1120.90 654.35,1122.38 653.80,1123.12 652.88,1123.13 651.58,1122.41"/>
- </edge>
- <edge id=":1239243628_12" function="internal">
- <lane id=":1239243628_12_0" index="0" speed="22.22" length="5.01" shape="650.23,1126.58 651.35,1125.79 651.95,1124.83 652.03,1123.70 651.58,1122.41"/>
- </edge>
- <edge id=":1239243628_13" function="internal">
- <lane id=":1239243628_13_0" index="0" speed="22.22" length="9.60" shape="650.23,1126.58 658.78,1122.20"/>
- </edge>
- <edge id=":1239243628_14" function="internal">
- <lane id=":1239243628_14_0" index="0" speed="22.22" length="7.16" shape="650.23,1126.58 652.90,1125.67 655.26,1125.83 656.95,1126.85"/>
- </edge>
- <edge id=":1239243628_18" function="internal">
- <lane id=":1239243628_18_0" index="0" speed="22.22" length="3.26" shape="656.95,1126.85 657.29,1127.05 659.02,1129.34"/>
- </edge>
- <edge id=":1239243628_15" function="internal">
- <lane id=":1239243628_15_0" index="0" speed="22.22" length="2.41" shape="650.23,1126.58 651.71,1126.75 652.45,1127.30"/>
- </edge>
- <edge id=":1239243628_19" function="internal">
- <lane id=":1239243628_19_0" index="0" speed="22.22" length="2.41" shape="652.45,1127.30 652.45,1128.22 651.72,1129.52"/>
- </edge>
- <edge id=":1243159115_0" function="internal">
- <lane id=":1243159115_0_0" index="0" speed="27.78" length="10.50" shape="1093.41,2109.25 1090.65,2110.70 1088.76,2111.69 1086.87,2112.67 1084.10,2114.11"/>
- </edge>
- <edge id=":1243159115_1" function="internal">
- <lane id=":1243159115_1_0" index="0" speed="27.78" length="10.49" shape="1091.87,2106.33 1089.12,2107.78 1087.23,2108.77 1085.34,2109.75 1082.57,2111.19"/>
- </edge>
- <edge id=":1243159115_2" function="internal">
- <lane id=":1243159115_2_0" index="0" speed="27.78" length="4.27" shape="1091.87,2106.33 1090.79,2110.47"/>
- </edge>
- <edge id=":1243159115_3" function="internal">
- <lane id=":1243159115_3_0" index="0" speed="27.78" length="4.92" shape="1084.70,2106.75 1082.57,2111.19"/>
- </edge>
- <edge id=":1243159115_4" function="internal">
- <lane id=":1243159115_4_0" index="0" speed="27.78" length="5.21" shape="1084.70,2106.75 1087.62,2105.40 1089.60,2105.57"/>
- </edge>
- <edge id=":1243159115_5" function="internal">
- <lane id=":1243159115_5_0" index="0" speed="27.78" length="5.21" shape="1089.60,2105.57 1090.66,2107.25 1090.79,2110.47"/>
- </edge>
- <edge id=":1243159116_0" function="internal">
- <lane id=":1243159116_0_0" index="0" speed="27.78" length="0.31" shape="1083.76,2102.41 1083.48,2102.56"/>
- </edge>
- <edge id=":1243159116_1" function="internal">
- <lane id=":1243159116_1_0" index="0" speed="27.78" length="0.31" shape="1082.21,2099.50 1081.94,2099.64"/>
- </edge>
- <edge id=":1243159116_2" function="internal">
- <lane id=":1243159116_2_0" index="0" speed="27.78" length="7.85" shape="1082.21,2099.50 1074.61,2097.54"/>
- </edge>
- <edge id=":1243159116_3" function="internal">
- <lane id=":1243159116_3_0" index="0" speed="27.78" length="2.41" shape="1082.21,2099.50 1080.73,2099.35 1079.98,2098.81"/>
- </edge>
- <edge id=":1243159116_11" function="internal">
- <lane id=":1243159116_11_0" index="0" speed="27.78" length="2.41" shape="1079.98,2098.81 1079.96,2097.89 1080.67,2096.58"/>
- </edge>
- <edge id=":1243159116_4" function="internal">
- <lane id=":1243159116_4_0" index="0" speed="27.78" length="4.06" shape="1075.11,2094.25 1079.13,2093.67"/>
- </edge>
- <edge id=":1243159116_5" function="internal">
- <lane id=":1243159116_5_0" index="0" speed="27.78" length="10.75" shape="1075.11,2094.25 1079.57,2095.83 1082.20,2097.25 1082.99,2098.53 1081.94,2099.64"/>
- </edge>
- <edge id=":1243159116_6" function="internal">
- <lane id=":1243159116_6_0" index="0" speed="27.78" length="4.86" shape="1075.11,2094.25 1076.21,2095.26 1076.50,2096.15 1075.97,2096.91 1074.61,2097.54"/>
- </edge>
- <edge id=":1243159116_7" function="internal">
- <lane id=":1243159116_7_0" index="0" speed="27.78" length="3.49" shape="1076.85,2094.87 1074.61,2097.54"/>
- </edge>
- <edge id=":1243159116_8" function="internal">
- <lane id=":1243159116_8_0" index="0" speed="27.78" length="2.57" shape="1076.85,2094.87 1079.13,2093.67"/>
- </edge>
- <edge id=":1243159116_9" function="internal">
- <lane id=":1243159116_9_0" index="0" speed="27.78" length="0.31" shape="1080.40,2096.73 1080.67,2096.58"/>
- </edge>
- <edge id=":1243159116_10" function="internal">
- <lane id=":1243159116_10_0" index="0" speed="27.78" length="2.41" shape="1080.40,2096.73 1081.88,2096.88 1082.63,2097.41"/>
- </edge>
- <edge id=":1243159116_12" function="internal">
- <lane id=":1243159116_12_0" index="0" speed="27.78" length="2.41" shape="1082.63,2097.41 1082.65,2098.34 1081.94,2099.64"/>
- </edge>
- <edge id=":1244292210_0" function="internal">
- <lane id=":1244292210_0_0" index="0" speed="8.33" length="7.92" shape="1166.66,1739.79 1167.37,1741.84 1167.26,1743.63 1166.31,1745.15 1164.54,1746.40"/>
- </edge>
- <edge id=":1244292210_1" function="internal">
- <lane id=":1244292210_1_0" index="0" speed="8.33" length="2.41" shape="1166.66,1739.79 1166.50,1741.27 1165.95,1742.02"/>
- </edge>
- <edge id=":1244292210_4" function="internal">
- <lane id=":1244292210_4_0" index="0" speed="8.33" length="2.41" shape="1165.95,1742.02 1165.03,1742.03 1163.73,1741.30"/>
- </edge>
- <edge id=":1244292210_2" function="internal">
- <lane id=":1244292210_2_0" index="0" speed="8.33" length="2.59" shape="1163.03,1743.46 1163.61,1743.05 1163.92,1742.55 1163.96,1741.97 1163.73,1741.30"/>
- </edge>
- <edge id=":1244292210_3" function="internal">
- <lane id=":1244292210_3_0" index="0" speed="8.33" length="2.41" shape="1163.03,1743.46 1164.51,1743.63 1165.25,1744.18"/>
- </edge>
- <edge id=":1244292210_5" function="internal">
- <lane id=":1244292210_5_0" index="0" speed="8.33" length="2.41" shape="1165.25,1744.18 1165.26,1745.10 1164.54,1746.40"/>
- </edge>
- <edge id=":1244292219_0" function="internal">
- <lane id=":1244292219_0_0" index="0" speed="8.33" length="7.89" shape="1085.36,1786.85 1083.32,1787.55 1081.54,1787.43 1080.02,1786.49 1078.77,1784.73"/>
- </edge>
- <edge id=":1244292219_1" function="internal">
- <lane id=":1244292219_1_0" index="0" speed="8.33" length="2.41" shape="1085.36,1786.85 1083.88,1786.68 1083.14,1786.13"/>
- </edge>
- <edge id=":1244292219_4" function="internal">
- <lane id=":1244292219_4_0" index="0" speed="8.33" length="2.41" shape="1083.14,1786.13 1083.13,1785.21 1083.86,1783.91"/>
- </edge>
- <edge id=":1244292219_2" function="internal">
- <lane id=":1244292219_2_0" index="0" speed="8.33" length="2.58" shape="1081.71,1783.22 1082.12,1783.79 1082.61,1784.10 1083.19,1784.14 1083.86,1783.91"/>
- </edge>
- <edge id=":1244292219_3" function="internal">
- <lane id=":1244292219_3_0" index="0" speed="8.33" length="2.41" shape="1081.71,1783.22 1081.54,1784.70 1080.99,1785.44"/>
- </edge>
- <edge id=":1244292219_5" function="internal">
- <lane id=":1244292219_5_0" index="0" speed="8.33" length="2.41" shape="1080.99,1785.44 1080.07,1785.45 1078.77,1784.73"/>
- </edge>
- <edge id=":1246731455_0" function="internal">
- <lane id=":1246731455_0_0" index="0" speed="25.00" length="6.05" shape="1156.37,1085.17 1155.18,1084.85 1153.83,1084.92 1152.31,1085.37 1150.62,1086.20"/>
- </edge>
- <edge id=":1246731455_1" function="internal">
- <lane id=":1246731455_1_0" index="0" speed="27.78" length="6.73" shape="1156.37,1085.17 1149.66,1084.60"/>
- </edge>
- <edge id=":1246731455_2" function="internal">
- <lane id=":1246731455_2_0" index="0" speed="27.78" length="7.25" shape="1156.37,1085.17 1150.20,1081.37"/>
- </edge>
- <edge id=":1246731455_3" function="internal">
- <lane id=":1246731455_3_0" index="0" speed="27.78" length="3.09" shape="1147.13,1081.12 1148.42,1081.18 1149.36,1081.24 1149.96,1081.30 1150.20,1081.37"/>
- </edge>
- <edge id=":1246731455_4" function="internal">
- <lane id=":1246731455_4_0" index="0" speed="25.00" length="9.57" shape="1147.13,1081.12 1151.64,1081.61 1153.72,1082.63 1153.39,1084.16 1152.46,1084.84"/>
- </edge>
- <edge id=":1246731455_6" function="internal">
- <lane id=":1246731455_6_0" index="0" speed="25.00" length="2.29" shape="1152.46,1084.84 1150.62,1086.20"/>
- </edge>
- <edge id=":1246731455_5" function="internal">
- <lane id=":1246731455_5_0" index="0" speed="27.78" length="3.15" shape="1147.13,1081.12 1149.07,1081.04 1150.14,1081.59"/>
- </edge>
- <edge id=":1246731455_7" function="internal">
- <lane id=":1246731455_7_0" index="0" speed="27.78" length="3.15" shape="1150.14,1081.59 1150.33,1082.78 1149.66,1084.60"/>
- </edge>
- <edge id=":1246731457_0" function="internal">
- <lane id=":1246731457_0_0" index="0" speed="27.78" length="4.17" shape="1193.02,1087.00 1193.88,1091.08"/>
- </edge>
- <edge id=":1246731457_1" function="internal">
- <lane id=":1246731457_1_0" index="0" speed="27.78" length="4.84" shape="1193.02,1087.00 1192.30,1088.31 1191.51,1088.79 1190.65,1088.45 1189.72,1087.28"/>
- </edge>
- <edge id=":1246731457_2" function="internal">
- <lane id=":1246731457_2_0" index="0" speed="27.78" length="2.08" shape="1191.79,1087.10 1189.72,1087.28"/>
- </edge>
- <edge id=":1246731457_3" function="internal">
- <lane id=":1246731457_3_0" index="0" speed="27.78" length="4.49" shape="1191.79,1087.10 1193.88,1091.08"/>
- </edge>
- <edge id=":1246731457_4" function="internal">
- <lane id=":1246731457_4_0" index="0" speed="27.78" length="5.89" shape="1188.22,1087.41 1190.96,1092.62"/>
- </edge>
- <edge id=":1246731460_0" function="internal">
- <lane id=":1246731460_0_0" index="0" speed="27.78" length="6.17" shape="1174.07,1094.22 1171.03,1088.85"/>
- </edge>
- <edge id=":1246731460_1" function="internal">
- <lane id=":1246731460_1_0" index="0" speed="27.78" length="2.43" shape="1174.07,1094.22 1173.32,1092.92 1173.32,1091.99"/>
- </edge>
- <edge id=":1246731460_4" function="internal">
- <lane id=":1246731460_4_0" index="0" speed="27.78" length="2.43" shape="1173.32,1091.99 1174.06,1091.43 1175.55,1091.24"/>
- </edge>
- <edge id=":1246731460_2" function="internal">
- <lane id=":1246731460_2_0" index="0" speed="27.78" length="5.85" shape="1170.83,1087.79 1175.55,1091.24"/>
- </edge>
- <edge id=":1246731460_3" function="internal">
- <lane id=":1246731460_3_0" index="0" speed="27.78" length="1.09" shape="1170.83,1087.79 1171.03,1088.85"/>
- </edge>
- <edge id=":1246731466_0" function="internal">
- <lane id=":1246731466_0_0" index="0" speed="27.78" length="1.92" shape="1142.53,1027.68 1142.36,1025.77"/>
- </edge>
- <edge id=":1246731466_1" function="internal">
- <lane id=":1246731466_1_0" index="0" speed="27.78" length="4.82" shape="1142.53,1027.68 1143.07,1026.29 1143.79,1025.72 1144.69,1025.95 1145.75,1026.98"/>
- </edge>
- <edge id=":1246731466_2" function="internal">
- <lane id=":1246731466_2_0" index="0" speed="27.78" length="2.52" shape="1143.29,1027.51 1145.75,1026.98"/>
- </edge>
- <edge id=":1246731466_3" function="internal">
- <lane id=":1246731466_3_0" index="0" speed="27.78" length="1.98" shape="1143.29,1027.51 1142.36,1025.77"/>
- </edge>
- <edge id=":1246731466_4" function="internal">
- <lane id=":1246731466_4_0" index="0" speed="27.78" length="2.88" shape="1146.64,1026.79 1145.29,1024.25"/>
- </edge>
- <edge id=":1246731470_0" function="internal">
- <lane id=":1246731470_0_0" index="0" speed="27.78" length="1.40" shape="1205.09,1048.28 1204.37,1049.48"/>
- </edge>
- <edge id=":1246731470_1" function="internal">
- <lane id=":1246731470_1_0" index="0" speed="27.78" length="1.24" shape="1205.09,1048.28 1204.05,1048.95"/>
- </edge>
- <edge id=":1246731470_2" function="internal">
- <lane id=":1246731470_2_0" index="0" speed="27.78" length="1.35" shape="1203.46,1045.41 1202.32,1046.14"/>
- </edge>
- <edge id=":1246731470_3" function="internal">
- <lane id=":1246731470_3_0" index="0" speed="27.78" length="2.88" shape="1202.54,1046.50 1204.05,1048.95"/>
- </edge>
- <edge id=":1246731470_4" function="internal">
- <lane id=":1246731470_4_0" index="0" speed="27.78" length="2.55" shape="1202.54,1046.50 1204.11,1046.56 1204.94,1047.07"/>
- </edge>
- <edge id=":1246731470_5" function="internal">
- <lane id=":1246731470_5_0" index="0" speed="27.78" length="2.55" shape="1204.94,1047.07 1205.03,1048.05 1204.37,1049.48"/>
- </edge>
- <edge id=":1246731482_0" function="internal">
- <lane id=":1246731482_0_0" index="0" speed="27.78" length="6.60" shape="1193.07,1076.60 1196.65,1071.06"/>
- </edge>
- <edge id=":1246731482_1" function="internal">
- <lane id=":1246731482_1_0" index="0" speed="27.78" length="0.12" shape="1193.07,1076.60 1193.00,1076.70"/>
- </edge>
- <edge id=":1246731482_2" function="internal">
- <lane id=":1246731482_2_0" index="0" speed="27.78" length="1.81" shape="1191.20,1076.87 1193.00,1076.70"/>
- </edge>
- <edge id=":1246731482_3" function="internal">
- <lane id=":1246731482_3_0" index="0" speed="27.78" length="5.82" shape="1191.20,1076.87 1190.38,1073.37 1191.02,1071.24"/>
- </edge>
- <edge id=":1246731482_4" function="internal">
- <lane id=":1246731482_4_0" index="0" speed="27.78" length="5.82" shape="1191.02,1071.24 1193.11,1070.47 1196.65,1071.06"/>
- </edge>
- <edge id=":1246731504_0" function="internal">
- <lane id=":1246731504_0_0" index="0" speed="27.78" length="10.59" shape="1145.90,1032.38 1142.53,1042.42"/>
- </edge>
- <edge id=":1246731504_1" function="internal">
- <lane id=":1246731504_1_0" index="0" speed="27.78" length="2.43" shape="1145.90,1032.38 1144.90,1033.50 1144.02,1033.80"/>
- </edge>
- <edge id=":1246731504_4" function="internal">
- <lane id=":1246731504_4_0" index="0" speed="27.78" length="2.43" shape="1144.02,1033.80 1143.25,1033.27 1142.60,1031.91"/>
- </edge>
- <edge id=":1246731504_2" function="internal">
- <lane id=":1246731504_2_0" index="0" speed="27.78" length="5.86" shape="1144.61,1037.41 1142.60,1031.91"/>
- </edge>
- <edge id=":1246731504_3" function="internal">
- <lane id=":1246731504_3_0" index="0" speed="27.78" length="5.42" shape="1144.61,1037.41 1142.53,1042.42"/>
- </edge>
- <edge id=":1246731525_0" function="internal">
- <lane id=":1246731525_0_0" index="0" speed="27.78" length="4.94" shape="1199.55,1054.52 1200.12,1049.62"/>
- </edge>
- <edge id=":1246731525_1" function="internal">
- <lane id=":1246731525_1_0" index="0" speed="27.78" length="3.32" shape="1199.55,1054.52 1199.68,1051.20"/>
- </edge>
- <edge id=":1246731525_2" function="internal">
- <lane id=":1246731525_2_0" index="0" speed="27.78" length="0.10" shape="1199.69,1051.20 1199.68,1051.20"/>
- </edge>
- <edge id=":1246731525_3" function="internal">
- <lane id=":1246731525_3_0" index="0" speed="27.78" length="1.20" shape="1199.69,1051.20 1199.20,1050.65 1199.11,1050.20"/>
- </edge>
- <edge id=":1246731525_4" function="internal">
- <lane id=":1246731525_4_0" index="0" speed="27.78" length="1.20" shape="1199.11,1050.20 1199.42,1049.85 1200.12,1049.62"/>
- </edge>
- <edge id=":1246731541_0" function="internal">
- <lane id=":1246731541_0_0" index="0" speed="27.78" length="3.55" shape="1196.04,1028.55 1199.41,1027.42"/>
- </edge>
- <edge id=":1246731541_1" function="internal">
- <lane id=":1246731541_1_0" index="0" speed="27.78" length="2.41" shape="1196.04,1028.55 1197.38,1029.21 1197.89,1029.97"/>
- </edge>
- <edge id=":1246731541_4" function="internal">
- <lane id=":1246731541_4_0" index="0" speed="27.78" length="2.41" shape="1197.89,1029.97 1197.59,1030.84 1196.47,1031.82"/>
- </edge>
- <edge id=":1246731541_2" function="internal">
- <lane id=":1246731541_2_0" index="0" speed="27.78" length="0.89" shape="1196.36,1030.93 1196.47,1031.82"/>
- </edge>
- <edge id=":1246731541_3" function="internal">
- <lane id=":1246731541_3_0" index="0" speed="27.78" length="4.72" shape="1196.36,1030.93 1201.03,1030.30"/>
- </edge>
- <edge id=":1246731544_0" function="internal">
- <lane id=":1246731544_0_0" index="0" speed="27.78" length="1.65" shape="1176.35,1026.09 1175.93,1027.69"/>
- </edge>
- <edge id=":1246731544_1" function="internal">
- <lane id=":1246731544_1_0" index="0" speed="27.78" length="2.41" shape="1176.35,1026.09 1177.33,1027.21 1177.52,1028.11"/>
- </edge>
- <edge id=":1246731544_4" function="internal">
- <lane id=":1246731544_4_0" index="0" speed="27.78" length="2.41" shape="1177.52,1028.11 1176.91,1028.80 1175.50,1029.28"/>
- </edge>
- <edge id=":1246731544_2" function="internal">
- <lane id=":1246731544_2_0" index="0" speed="27.78" length="0.83" shape="1175.93,1027.69 1175.72,1028.48"/>
- </edge>
- <edge id=":1246731544_5" function="internal">
- <lane id=":1246731544_5_0" index="0" speed="27.78" length="0.82" shape="1175.72,1028.48 1175.50,1029.28"/>
- </edge>
- <edge id=":1246731544_3" function="internal">
- <lane id=":1246731544_3_0" index="0" speed="27.78" length="0.10" shape="1175.93,1027.69 1175.93,1027.69"/>
- </edge>
- <edge id=":1246731574_0" function="internal">
- <lane id=":1246731574_0_0" index="0" speed="27.78" length="5.10" shape="1178.01,1031.33 1182.97,1030.16"/>
- </edge>
- <edge id=":1246731574_1" function="internal">
- <lane id=":1246731574_1_0" index="0" speed="27.78" length="2.41" shape="1178.01,1031.33 1176.86,1030.39 1176.53,1029.53"/>
- </edge>
- <edge id=":1246731574_4" function="internal">
- <lane id=":1246731574_4_0" index="0" speed="27.78" length="2.41" shape="1176.53,1029.53 1177.02,1028.74 1178.33,1028.04"/>
- </edge>
- <edge id=":1246731574_2" function="internal">
- <lane id=":1246731574_2_0" index="0" speed="27.78" length="5.10" shape="1182.97,1030.16 1178.33,1028.04"/>
- </edge>
- <edge id=":1246731574_3" function="internal">
- <lane id=":1246731574_3_0" index="0" speed="27.78" length="0.10" shape="1182.97,1030.16 1182.97,1030.16"/>
- </edge>
- <edge id=":1246731576_0" function="internal">
- <lane id=":1246731576_0_0" index="0" speed="27.78" length="3.39" shape="1134.75,1086.77 1131.61,1088.05"/>
- </edge>
- <edge id=":1246731576_1" function="internal">
- <lane id=":1246731576_1_0" index="0" speed="27.78" length="2.43" shape="1134.75,1086.77 1133.33,1086.28 1132.72,1085.58"/>
- </edge>
- <edge id=":1246731576_4" function="internal">
- <lane id=":1246731576_4_0" index="0" speed="27.78" length="2.43" shape="1132.72,1085.58 1132.91,1084.67 1133.91,1083.55"/>
- </edge>
- <edge id=":1246731576_2" function="internal">
- <lane id=":1246731576_2_0" index="0" speed="27.78" length="2.89" shape="1134.64,1086.34 1133.91,1083.55"/>
- </edge>
- <edge id=":1246731576_3" function="internal">
- <lane id=":1246731576_3_0" index="0" speed="27.78" length="3.48" shape="1134.64,1086.34 1131.61,1088.05"/>
- </edge>
- <edge id=":1246731601_0" function="internal">
- <lane id=":1246731601_0_0" index="0" speed="27.78" length="6.32" shape="1136.32,1061.41 1135.12,1063.92 1134.71,1065.49 1135.07,1066.11 1136.22,1065.79"/>
- </edge>
- <edge id=":1246731601_1" function="internal">
- <lane id=":1246731601_1_0" index="0" speed="27.78" length="3.09" shape="1136.32,1061.41 1134.97,1062.04 1134.05,1061.97 1133.69,1061.40"/>
- </edge>
- <edge id=":1246731601_4" function="internal">
- <lane id=":1246731601_4_0" index="0" speed="27.78" length="1.74" shape="1133.69,1061.40 1133.56,1061.19 1133.49,1059.70"/>
- </edge>
- <edge id=":1246731601_2" function="internal">
- <lane id=":1246731601_2_0" index="0" speed="27.78" length="6.97" shape="1134.30,1066.62 1133.49,1059.70"/>
- </edge>
- <edge id=":1246731601_3" function="internal">
- <lane id=":1246731601_3_0" index="0" speed="27.78" length="2.10" shape="1134.30,1066.62 1136.22,1065.79"/>
- </edge>
- <edge id=":1246731620_0" function="internal">
- <lane id=":1246731620_0_0" index="0" speed="27.78" length="12.61" shape="1164.10,1025.60 1161.34,1024.37 1158.89,1022.59 1156.75,1020.27 1154.92,1017.39"/>
- </edge>
- <edge id=":1246731620_1" function="internal">
- <lane id=":1246731620_1_0" index="0" speed="27.78" length="2.40" shape="1164.10,1025.60 1163.66,1024.05 1163.86,1023.28"/>
- </edge>
- <edge id=":1246731620_5" function="internal">
- <lane id=":1246731620_5_0" index="0" speed="27.78" length="2.82" shape="1163.86,1023.28 1163.91,1023.08 1164.83,1022.69 1166.43,1022.89"/>
- </edge>
- <edge id=":1246731620_2" function="internal">
- <lane id=":1246731620_2_0" index="0" speed="27.78" length="8.05" shape="1158.47,1024.11 1166.43,1022.89"/>
- </edge>
- <edge id=":1246731620_3" function="internal">
- <lane id=":1246731620_3_0" index="0" speed="27.78" length="7.60" shape="1158.47,1024.11 1154.92,1017.39"/>
- </edge>
- <edge id=":1246731620_4" function="internal">
- <lane id=":1246731620_4_0" index="0" speed="27.78" length="0.10" shape="1155.56,1025.66 1155.57,1025.65"/>
- </edge>
- <edge id=":1246731627_0" function="internal">
- <lane id=":1246731627_0_0" index="0" speed="27.78" length="3.75" shape="1137.90,1053.64 1139.51,1050.26"/>
- </edge>
- <edge id=":1246731627_1" function="internal">
- <lane id=":1246731627_1_0" index="0" speed="27.78" length="2.66" shape="1137.90,1053.64 1139.51,1053.92 1140.30,1054.56"/>
- </edge>
- <edge id=":1246731627_4" function="internal">
- <lane id=":1246731627_4_0" index="0" speed="27.78" length="2.66" shape="1140.30,1054.56 1140.26,1055.58 1139.38,1056.97"/>
- </edge>
- <edge id=":1246731627_2" function="internal">
- <lane id=":1246731627_2_0" index="0" speed="27.78" length="1.22" shape="1138.61,1056.03 1139.38,1056.97"/>
- </edge>
- <edge id=":1246731627_3" function="internal">
- <lane id=":1246731627_3_0" index="0" speed="27.78" length="5.84" shape="1138.61,1056.03 1139.51,1050.26"/>
- </edge>
- <edge id=":1246731647_0" function="internal">
- <lane id=":1246731647_0_0" index="0" speed="27.78" length="4.04" shape="1181.81,1101.03 1179.15,1097.99"/>
- </edge>
- <edge id=":1246731647_1" function="internal">
- <lane id=":1246731647_1_0" index="0" speed="27.78" length="4.24" shape="1181.81,1101.03 1179.83,1097.28"/>
- </edge>
- <edge id=":1246731647_2" function="internal">
- <lane id=":1246731647_2_0" index="0" speed="27.78" length="5.35" shape="1184.72,1099.49 1182.24,1094.75"/>
- </edge>
- <edge id=":1246731647_3" function="internal">
- <lane id=":1246731647_3_0" index="0" speed="27.78" length="2.33" shape="1181.44,1095.59 1179.83,1097.28"/>
- </edge>
- <edge id=":1246731647_4" function="internal">
- <lane id=":1246731647_4_0" index="0" speed="27.78" length="2.42" shape="1181.44,1095.59 1181.77,1097.05 1181.50,1097.94"/>
- </edge>
- <edge id=":1246731647_5" function="internal">
- <lane id=":1246731647_5_0" index="0" speed="27.78" length="2.42" shape="1181.50,1097.94 1180.62,1098.25 1179.15,1097.99"/>
- </edge>
- <edge id=":1252777712_0" function="internal">
- <lane id=":1252777712_0_0" index="0" speed="27.78" length="2.55" shape="727.32,2275.78 727.57,2278.32"/>
- </edge>
- <edge id=":1252777712_1" function="internal">
- <lane id=":1252777712_1_0" index="0" speed="27.78" length="5.57" shape="731.86,2281.87 727.57,2278.32"/>
- </edge>
- <edge id=":1252777720_0" function="internal">
- <lane id=":1252777720_0_0" index="0" speed="27.78" length="3.00" shape="780.48,2262.85 777.83,2264.26"/>
- </edge>
- <edge id=":1252777720_1" function="internal">
- <lane id=":1252777720_1_0" index="0" speed="27.78" length="3.00" shape="778.94,2259.94 776.28,2261.34"/>
- </edge>
- <edge id=":1252777720_2" function="internal">
- <lane id=":1252777720_2_0" index="0" speed="27.78" length="2.41" shape="778.94,2259.94 777.46,2259.79 776.71,2259.25"/>
- </edge>
- <edge id=":1252777720_8" function="internal">
- <lane id=":1252777720_8_0" index="0" speed="27.78" length="2.41" shape="776.71,2259.25 776.69,2258.33 777.39,2257.02"/>
- </edge>
- <edge id=":1252777720_3" function="internal">
- <lane id=":1252777720_3_0" index="0" speed="27.78" length="5.41" shape="774.85,2259.41 775.85,2254.10"/>
- </edge>
- <edge id=":1252777720_4" function="internal">
- <lane id=":1252777720_4_0" index="0" speed="27.78" length="6.59" shape="774.85,2259.41 777.38,2259.25 778.47,2259.51 778.10,2260.21 776.28,2261.34"/>
- </edge>
- <edge id=":1252777720_5" function="internal">
- <lane id=":1252777720_5_0" index="0" speed="27.78" length="3.11" shape="773.11,2255.55 775.85,2254.10"/>
- </edge>
- <edge id=":1252777720_6" function="internal">
- <lane id=":1252777720_6_0" index="0" speed="27.78" length="3.31" shape="774.47,2258.57 777.39,2257.02"/>
- </edge>
- <edge id=":1252777720_7" function="internal">
- <lane id=":1252777720_7_0" index="0" speed="27.78" length="2.42" shape="774.47,2258.57 775.96,2258.58 776.76,2259.05"/>
- </edge>
- <edge id=":1252777720_9" function="internal">
- <lane id=":1252777720_9_0" index="0" speed="27.78" length="2.42" shape="776.76,2259.05 776.87,2259.97 776.28,2261.34"/>
- </edge>
- <edge id=":1257054074_0" function="internal">
- <lane id=":1257054074_0_0" index="0" speed="16.67" length="5.06" shape="1360.40,1971.55 1359.61,1970.40 1358.65,1969.80 1357.51,1969.75 1356.21,1970.26"/>
- </edge>
- <edge id=":1257054074_1" function="internal">
- <lane id=":1257054074_1_0" index="0" speed="5.56" length="7.42" shape="1360.40,1971.55 1357.04,1964.93"/>
- </edge>
- <edge id=":1257054074_2" function="internal">
- <lane id=":1257054074_2_0" index="0" speed="5.56" length="4.82" shape="1360.40,1971.55 1360.59,1970.07 1361.14,1969.34 1362.07,1969.34 1363.36,1970.08"/>
- </edge>
- <edge id=":1257054074_3" function="internal">
- <lane id=":1257054074_3_0" index="0" speed="16.67" length="5.39" shape="1364.72,1965.50 1363.56,1966.38 1362.95,1967.44 1362.88,1968.67 1363.36,1970.08"/>
- </edge>
- <edge id=":1257054074_4" function="internal">
- <lane id=":1257054074_4_0" index="0" speed="27.78" length="9.75" shape="1364.72,1965.50 1356.21,1970.26"/>
- </edge>
- <edge id=":1257054074_5" function="internal">
- <lane id=":1257054074_5_0" index="0" speed="27.78" length="9.75" shape="1363.11,1962.62 1354.60,1967.38"/>
- </edge>
- <edge id=":1257054074_6" function="internal">
- <lane id=":1257054074_6_0" index="0" speed="16.67" length="6.64" shape="1363.11,1962.62 1360.62,1963.94 1358.78,1964.77 1357.59,1965.09 1357.04,1964.93"/>
- </edge>
- <edge id=":1257054074_7" function="internal">
- <lane id=":1257054074_7_0" index="0" speed="5.56" length="7.50" shape="1359.97,1963.39 1363.36,1970.08"/>
- </edge>
- <edge id=":1257054074_8" function="internal">
- <lane id=":1257054074_8_0" index="0" speed="16.67" length="6.81" shape="1359.97,1963.39 1359.78,1963.92 1358.82,1964.77 1357.09,1965.92 1354.60,1967.38"/>
- </edge>
- <edge id=":1257054074_9" function="internal">
- <lane id=":1257054074_9_0" index="0" speed="5.56" length="4.82" shape="1359.97,1963.39 1359.81,1964.87 1359.27,1965.62 1358.35,1965.64 1357.04,1964.93"/>
- </edge>
- <edge id=":1257054077_0" function="internal">
- <lane id=":1257054077_0_0" index="0" speed="5.56" length="0.10" shape="1081.39,2083.20 1081.39,2083.20"/>
- </edge>
- <edge id=":1257054077_1" function="internal">
- <lane id=":1257054077_1_0" index="0" speed="5.56" length="2.41" shape="1081.39,2083.20 1079.91,2083.05 1079.16,2082.51"/>
- </edge>
- <edge id=":1257054077_4" function="internal">
- <lane id=":1257054077_4_0" index="0" speed="5.56" length="2.41" shape="1079.16,2082.51 1079.14,2081.59 1079.85,2080.28"/>
- </edge>
- <edge id=":1257054077_2" function="internal">
- <lane id=":1257054077_2_0" index="0" speed="5.56" length="0.10" shape="1079.89,2080.26 1079.85,2080.28"/>
- </edge>
- <edge id=":1257054077_3" function="internal">
- <lane id=":1257054077_3_0" index="0" speed="5.56" length="2.41" shape="1079.89,2080.26 1081.37,2080.44 1082.11,2080.99"/>
- </edge>
- <edge id=":1257054077_5" function="internal">
- <lane id=":1257054077_5_0" index="0" speed="5.56" length="2.41" shape="1082.11,2080.99 1082.12,2081.91 1081.39,2083.20"/>
- </edge>
- <edge id=":1257054092_0" function="internal">
- <lane id=":1257054092_0_0" index="0" speed="16.67" length="5.03" shape="1296.54,1949.17 1295.74,1948.04 1294.78,1947.45 1293.65,1947.39 1292.35,1947.87"/>
- </edge>
- <edge id=":1257054092_1" function="internal">
- <lane id=":1257054092_1_0" index="0" speed="27.78" length="9.52" shape="1296.54,1949.17 1292.16,1940.72"/>
- </edge>
- <edge id=":1257054092_2" function="internal">
- <lane id=":1257054092_2_0" index="0" speed="27.78" length="9.56" shape="1299.48,1947.67 1295.08,1939.18"/>
- </edge>
- <edge id=":1257054092_3" function="internal">
- <lane id=":1257054092_3_0" index="0" speed="16.67" length="7.91" shape="1299.48,1947.67 1298.38,1945.07 1298.00,1943.02 1298.35,1941.50 1299.42,1940.53"/>
- </edge>
- <edge id=":1257054092_4" function="internal">
- <lane id=":1257054092_4_0" index="0" speed="5.56" length="9.57" shape="1300.86,1943.50 1292.35,1947.87"/>
- </edge>
- <edge id=":1257054092_5" function="internal">
- <lane id=":1257054092_5_0" index="0" speed="16.67" length="7.92" shape="1300.86,1943.50 1299.45,1943.74 1298.02,1943.10 1296.56,1941.58 1295.08,1939.18"/>
- </edge>
- <edge id=":1257054092_6" function="internal">
- <lane id=":1257054092_6_0" index="0" speed="5.56" length="4.82" shape="1300.86,1943.50 1299.39,1943.30 1298.66,1942.74 1298.67,1941.82 1299.42,1940.53"/>
- </edge>
- <edge id=":1257054092_7" function="internal">
- <lane id=":1257054092_7_0" index="0" speed="16.67" length="5.08" shape="1290.79,1944.97 1291.93,1944.13 1292.53,1943.15 1292.61,1942.01 1292.16,1940.72"/>
- </edge>
- <edge id=":1257054092_8" function="internal">
- <lane id=":1257054092_8_0" index="0" speed="5.56" length="9.70" shape="1290.79,1944.97 1299.42,1940.53"/>
- </edge>
- <edge id=":1257054092_9" function="internal">
- <lane id=":1257054092_9_0" index="0" speed="5.56" length="4.82" shape="1290.79,1944.97 1292.27,1945.10 1293.02,1945.63 1293.05,1946.56 1292.35,1947.87"/>
- </edge>
- <edge id=":1257054108_0" function="internal">
- <lane id=":1257054108_0_0" index="0" speed="16.67" length="5.08" shape="1312.22,1937.62 1311.10,1938.48 1310.52,1939.48 1310.49,1940.62 1311.00,1941.90"/>
- </edge>
- <edge id=":1257054108_1" function="internal">
- <lane id=":1257054108_1_0" index="0" speed="5.56" length="9.80" shape="1312.22,1937.62 1303.55,1942.19"/>
- </edge>
- <edge id=":1257054108_2" function="internal">
- <lane id=":1257054108_2_0" index="0" speed="5.56" length="4.82" shape="1312.22,1937.62 1310.74,1937.51 1309.97,1937.00 1309.92,1936.08 1310.59,1934.75"/>
- </edge>
- <edge id=":1257054108_3" function="internal">
- <lane id=":1257054108_3_0" index="0" speed="16.67" length="5.05" shape="1306.39,1933.51 1307.19,1934.64 1308.16,1935.22 1309.30,1935.26 1310.59,1934.75"/>
- </edge>
- <edge id=":1257054108_4" function="internal">
- <lane id=":1257054108_4_0" index="0" speed="27.78" length="9.58" shape="1306.39,1933.51 1311.00,1941.90"/>
- </edge>
- <edge id=":1257054108_5" function="internal">
- <lane id=":1257054108_5_0" index="0" speed="27.78" length="9.74" shape="1303.46,1935.02 1308.15,1943.56"/>
- </edge>
- <edge id=":1257054108_6" function="internal">
- <lane id=":1257054108_6_0" index="0" speed="16.67" length="7.96" shape="1303.46,1935.02 1304.58,1937.63 1304.97,1939.69 1304.63,1941.21 1303.55,1942.19"/>
- </edge>
- <edge id=":1257054108_7" function="internal">
- <lane id=":1257054108_7_0" index="0" speed="5.56" length="9.60" shape="1302.10,1939.23 1310.59,1934.75"/>
- </edge>
- <edge id=":1257054108_8" function="internal">
- <lane id=":1257054108_8_0" index="0" speed="16.67" length="8.10" shape="1302.10,1939.23 1303.51,1938.99 1304.99,1939.64 1306.53,1941.16 1308.15,1943.56"/>
- </edge>
- <edge id=":1257054108_9" function="internal">
- <lane id=":1257054108_9_0" index="0" speed="5.56" length="4.82" shape="1302.10,1939.23 1303.57,1939.43 1304.31,1939.99 1304.30,1940.91 1303.55,1942.19"/>
- </edge>
- <edge id=":1257054127_0" function="internal">
- <lane id=":1257054127_0_0" index="0" speed="22.22" length="9.51" shape="1367.64,1971.67 1359.17,1976.01"/>
- </edge>
- <edge id=":1257054127_1" function="internal">
- <lane id=":1257054127_1_0" index="0" speed="13.89" length="7.89" shape="1367.64,1971.67 1365.05,1972.78 1363.00,1973.17 1361.49,1972.84 1360.51,1971.78"/>
- </edge>
- <edge id=":1257054127_2" function="internal">
- <lane id=":1257054127_2_0" index="0" speed="13.89" length="7.88" shape="1363.47,1970.31 1363.72,1971.72 1363.09,1973.14 1361.58,1974.57 1359.17,1976.01"/>
- </edge>
- <edge id=":1257054127_3" function="internal">
- <lane id=":1257054127_3_0" index="0" speed="5.56" length="4.82" shape="1363.47,1970.31 1363.28,1971.78 1362.73,1972.52 1361.80,1972.52 1360.51,1971.78"/>
- </edge>
- <edge id=":1257054132_0" function="internal">
- <lane id=":1257054132_0_0" index="0" speed="13.89" length="6.45" shape="764.23,2244.05 762.12,2245.70 760.62,2246.96 759.74,2247.84 759.47,2248.35"/>
- </edge>
- <edge id=":1257054132_1" function="internal">
- <lane id=":1257054132_1_0" index="0" speed="5.56" length="4.82" shape="764.23,2244.05 762.74,2244.15 761.91,2243.74 761.74,2242.83 762.23,2241.43"/>
- </edge>
- <edge id=":1257054132_2" function="internal">
- <lane id=":1257054132_2_0" index="0" speed="13.89" length="5.78" shape="758.27,2239.81 758.75,2241.47 759.57,2242.29 760.73,2242.28 762.23,2241.43"/>
- </edge>
- <edge id=":1257054132_3" function="internal">
- <lane id=":1257054132_3_0" index="0" speed="22.22" length="8.62" shape="758.27,2239.81 759.47,2248.35"/>
- </edge>
- <edge id=":1257054155_0" function="internal">
- <lane id=":1257054155_0_0" index="0" speed="13.89" length="5.01" shape="1331.08,1933.39 1329.96,1934.19 1329.37,1935.16 1329.30,1936.29 1329.75,1937.58"/>
- </edge>
- <edge id=":1257054155_1" function="internal">
- <lane id=":1257054155_1_0" index="0" speed="5.56" length="8.66" shape="1331.08,1933.39 1322.57,1934.99"/>
- </edge>
- <edge id=":1257054155_2" function="internal">
- <lane id=":1257054155_2_0" index="0" speed="5.56" length="4.82" shape="1331.08,1933.39 1329.61,1933.23 1328.86,1932.69 1328.85,1931.77 1329.57,1930.46"/>
- </edge>
- <edge id=":1257054155_3" function="internal">
- <lane id=":1257054155_3_0" index="0" speed="13.89" length="6.02" shape="1324.84,1928.04 1325.87,1929.64 1327.00,1930.57 1328.24,1930.85 1329.57,1930.46"/>
- </edge>
- <edge id=":1257054155_4" function="internal">
- <lane id=":1257054155_4_0" index="0" speed="22.22" length="10.73" shape="1324.84,1928.04 1326.24,1930.79 1327.28,1932.82 1328.33,1934.85 1329.75,1937.58"/>
- </edge>
- <edge id=":1257054155_5" function="internal">
- <lane id=":1257054155_5_0" index="0" speed="13.89" length="9.56" shape="1324.84,1928.04 1326.03,1931.09 1326.05,1933.27 1324.90,1934.57 1322.57,1934.99"/>
- </edge>
- <edge id=":1257054155_6" function="internal">
- <lane id=":1257054155_6_0" index="0" speed="5.56" length="7.09" shape="1322.59,1931.69 1329.57,1930.46"/>
- </edge>
- <edge id=":1257054155_7" function="internal">
- <lane id=":1257054155_7_0" index="0" speed="13.89" length="9.73" shape="1322.59,1931.69 1324.57,1932.07 1326.43,1933.17 1328.16,1935.01 1329.75,1937.58"/>
- </edge>
- <edge id=":1257054155_8" function="internal">
- <lane id=":1257054155_8_0" index="0" speed="5.56" length="4.82" shape="1322.59,1931.69 1323.82,1932.52 1324.23,1933.35 1323.81,1934.17 1322.57,1934.99"/>
- </edge>
- <edge id=":1257054162_0" function="internal">
- <lane id=":1257054162_0_0" index="0" speed="5.56" length="4.82" shape="715.71,2256.40 717.19,2256.51 717.96,2257.03 718.00,2257.95 717.32,2259.28"/>
- </edge>
- <edge id=":1257054165_0" function="internal">
- <lane id=":1257054165_0_0" index="0" speed="13.89" length="4.60" shape="1282.43,1956.76 1281.65,1955.64 1280.76,1955.01 1279.78,1954.88 1278.69,1955.24"/>
- </edge>
- <edge id=":1257054165_1" function="internal">
- <lane id=":1257054165_1_0" index="0" speed="22.22" length="9.51" shape="1282.43,1956.76 1277.94,1948.38"/>
- </edge>
- <edge id=":1257054165_2" function="internal">
- <lane id=":1257054165_2_0" index="0" speed="13.89" length="7.86" shape="1282.43,1956.76 1281.28,1954.19 1280.86,1952.15 1281.14,1950.63 1282.14,1949.63"/>
- </edge>
- <edge id=":1257054165_3" function="internal">
- <lane id=":1257054165_3_0" index="0" speed="5.56" length="5.71" shape="1283.71,1952.54 1278.69,1955.24"/>
- </edge>
- <edge id=":1257054165_4" function="internal">
- <lane id=":1257054165_4_0" index="0" speed="13.89" length="7.85" shape="1283.71,1952.54 1282.33,1952.83 1280.90,1952.24 1279.44,1950.75 1277.94,1948.38"/>
- </edge>
- <edge id=":1257054165_5" function="internal">
- <lane id=":1257054165_5_0" index="0" speed="5.56" length="4.82" shape="1283.71,1952.54 1282.23,1952.40 1281.48,1951.87 1281.45,1950.95 1282.14,1949.63"/>
- </edge>
- <edge id=":1257054165_6" function="internal">
- <lane id=":1257054165_6_0" index="0" speed="13.89" length="4.87" shape="1276.82,1952.50 1277.87,1951.72 1278.40,1950.77 1278.43,1949.66 1277.94,1948.38"/>
- </edge>
- <edge id=":1257054165_7" function="internal">
- <lane id=":1257054165_7_0" index="0" speed="5.56" length="6.04" shape="1276.82,1952.50 1282.14,1949.63"/>
- </edge>
- <edge id=":1257054165_8" function="internal">
- <lane id=":1257054165_8_0" index="0" speed="5.56" length="4.85" shape="1276.82,1952.50 1278.32,1952.49 1279.13,1952.94 1279.25,1953.86 1278.69,1955.24"/>
- </edge>
- <edge id=":1257054172_0" function="internal">
- <lane id=":1257054172_0_0" index="0" speed="16.67" length="6.51" shape="1352.02,1954.99 1352.82,1957.04 1353.03,1958.70 1352.65,1959.96 1351.67,1960.84"/>
- </edge>
- <edge id=":1257054172_1" function="internal">
- <lane id=":1257054172_1_0" index="0" speed="5.56" length="6.24" shape="1352.02,1954.99 1349.13,1949.45"/>
- </edge>
- <edge id=":1257054172_2" function="internal">
- <lane id=":1257054172_2_0" index="0" speed="16.67" length="6.96" shape="1352.02,1954.99 1352.06,1954.17 1352.90,1953.16 1354.53,1951.96 1356.96,1950.56"/>
- </edge>
- <edge id=":1257054172_3" function="internal">
- <lane id=":1257054172_3_0" index="0" speed="5.56" length="4.82" shape="1352.02,1954.99 1352.21,1953.51 1352.77,1952.78 1353.69,1952.79 1354.98,1953.53"/>
- </edge>
- <edge id=":1257054172_4" function="internal">
- <lane id=":1257054172_4_0" index="0" speed="16.67" length="6.60" shape="1360.04,1956.40 1358.64,1956.80 1357.33,1956.45 1356.11,1955.36 1354.98,1953.53"/>
- </edge>
- <edge id=":1257054172_5" function="internal">
- <lane id=":1257054172_5_0" index="0" speed="27.78" length="9.48" shape="1360.04,1956.40 1351.67,1960.84"/>
- </edge>
- <edge id=":1257054172_6" function="internal">
- <lane id=":1257054172_6_0" index="0" speed="27.78" length="9.49" shape="1358.50,1953.48 1350.12,1957.92"/>
- </edge>
- <edge id=":1257054172_7" function="internal">
- <lane id=":1257054172_7_0" index="0" speed="16.67" length="10.26" shape="1358.50,1953.48 1355.78,1954.36 1353.31,1953.98 1351.09,1952.35 1349.89,1950.57"/>
- </edge>
- <edge id=":1257054172_18" function="internal">
- <lane id=":1257054172_18_0" index="0" speed="16.67" length="1.35" shape="1349.89,1950.57 1349.13,1949.45"/>
- </edge>
- <edge id=":1257054172_8" function="internal">
- <lane id=":1257054172_8_0" index="0" speed="27.78" length="2.41" shape="1358.50,1953.48 1357.02,1953.33 1356.27,1952.79"/>
- </edge>
- <edge id=":1257054172_19" function="internal">
- <lane id=":1257054172_19_0" index="0" speed="27.78" length="2.41" shape="1356.27,1952.79 1356.25,1951.87 1356.96,1950.56"/>
- </edge>
- <edge id=":1257054172_9" function="internal">
- <lane id=":1257054172_9_0" index="0" speed="16.67" length="3.68" shape="1352.06,1947.93 1352.50,1948.35 1353.20,1948.44 1354.18,1948.21 1355.42,1947.65"/>
- </edge>
- <edge id=":1257054172_10" function="internal">
- <lane id=":1257054172_10_0" index="0" speed="5.56" length="6.32" shape="1352.06,1947.93 1354.98,1953.53"/>
- </edge>
- <edge id=":1257054172_11" function="internal">
- <lane id=":1257054172_11_0" index="0" speed="16.67" length="11.55" shape="1352.06,1947.93 1353.31,1951.19 1353.40,1953.94 1352.34,1956.18 1350.12,1957.92"/>
- </edge>
- <edge id=":1257054172_12" function="internal">
- <lane id=":1257054172_12_0" index="0" speed="5.56" length="4.82" shape="1352.06,1947.93 1351.90,1949.41 1351.36,1950.15 1350.44,1950.17 1349.13,1949.45"/>
- </edge>
- <edge id=":1257054172_13" function="internal">
- <lane id=":1257054172_13_0" index="0" speed="16.67" length="3.69" shape="1347.03,1952.09 1348.18,1951.38 1348.92,1950.71 1349.23,1950.06 1349.13,1949.45"/>
- </edge>
- <edge id=":1257054172_14" function="internal">
- <lane id=":1257054172_14_0" index="0" speed="27.78" length="9.50" shape="1347.03,1952.09 1355.42,1947.65"/>
- </edge>
- <edge id=":1257054172_15" function="internal">
- <lane id=":1257054172_15_0" index="0" speed="27.78" length="9.49" shape="1348.57,1955.01 1356.96,1950.56"/>
- </edge>
- <edge id=":1257054172_16" function="internal">
- <lane id=":1257054172_16_0" index="0" speed="16.67" length="6.95" shape="1348.57,1955.01 1351.09,1953.79 1353.00,1953.14 1354.30,1953.05 1354.98,1953.53"/>
- </edge>
- <edge id=":1257054172_17" function="internal">
- <lane id=":1257054172_17_0" index="0" speed="27.78" length="2.41" shape="1348.57,1955.01 1350.05,1955.15 1350.80,1955.69"/>
- </edge>
- <edge id=":1257054172_20" function="internal">
- <lane id=":1257054172_20_0" index="0" speed="27.78" length="2.41" shape="1350.80,1955.69 1350.83,1956.61 1350.12,1957.92"/>
- </edge>
- <edge id=":1257054178_0" function="internal">
- <lane id=":1257054178_0_0" index="0" speed="5.56" length="5.04" shape="1343.64,1930.45 1342.87,1929.29 1341.92,1928.67 1340.79,1928.59 1339.48,1929.05"/>
- </edge>
- <edge id=":1257054178_1" function="internal">
- <lane id=":1257054178_1_0" index="0" speed="5.56" length="9.55" shape="1343.64,1930.45 1339.42,1921.88"/>
- </edge>
- <edge id=":1257054178_2" function="internal">
- <lane id=":1257054178_2_0" index="0" speed="5.56" length="4.82" shape="1343.64,1930.45 1343.85,1928.97 1344.42,1928.25 1345.34,1928.27 1346.62,1929.03"/>
- </edge>
- <edge id=":1257054178_3" function="internal">
- <lane id=":1257054178_3_0" index="0" speed="5.56" length="9.65" shape="1342.36,1920.38 1346.62,1929.03"/>
- </edge>
- <edge id=":1257054178_4" function="internal">
- <lane id=":1257054178_4_0" index="0" speed="5.56" length="10.40" shape="1342.36,1920.38 1343.27,1923.05 1343.09,1925.38 1341.83,1927.38 1339.48,1929.05"/>
- </edge>
- <edge id=":1257054178_5" function="internal">
- <lane id=":1257054178_5_0" index="0" speed="5.56" length="4.82" shape="1342.36,1920.38 1342.19,1921.86 1341.64,1922.60 1340.72,1922.61 1339.42,1921.88"/>
- </edge>
- <edge id=":1257054178_6" function="internal">
- <lane id=":1257054178_6_0" index="0" speed="5.56" length="5.10" shape="1337.96,1926.12 1339.13,1925.29 1339.76,1924.31 1339.86,1923.18 1339.42,1921.88"/>
- </edge>
- <edge id=":1257054178_7" function="internal">
- <lane id=":1257054178_7_0" index="0" speed="5.56" length="10.50" shape="1337.96,1926.12 1340.69,1925.16 1343.05,1925.33 1345.02,1926.62 1346.62,1929.03"/>
- </edge>
- <edge id=":1257054178_8" function="internal">
- <lane id=":1257054178_8_0" index="0" speed="5.56" length="4.82" shape="1337.96,1926.12 1339.44,1926.28 1340.19,1926.82 1340.20,1927.74 1339.48,1929.05"/>
- </edge>
- <edge id=":1257054196_0" function="internal">
- <lane id=":1257054196_0_0" index="0" speed="5.56" length="4.82" shape="602.25,2350.26 601.92,2351.71 601.30,2352.39 600.38,2352.30 599.17,2351.43"/>
- </edge>
- <edge id=":1257054205_0" function="internal">
- <lane id=":1257054205_0_0" index="0" speed="16.67" length="3.38" shape="1355.98,1962.90 1355.64,1962.68 1355.01,1962.72 1354.08,1963.04 1352.86,1963.63"/>
- </edge>
- <edge id=":1257054205_1" function="internal">
- <lane id=":1257054205_1_0" index="0" speed="5.56" length="2.52" shape="1355.98,1962.90 1354.81,1960.68"/>
- </edge>
- <edge id=":1257054205_2" function="internal">
- <lane id=":1257054205_2_0" index="0" speed="16.67" length="8.64" shape="1355.98,1962.90 1355.50,1961.12 1355.98,1959.41 1357.41,1957.78 1359.81,1956.23"/>
- </edge>
- <edge id=":1257054205_3" function="internal">
- <lane id=":1257054205_3_0" index="0" speed="5.56" length="4.82" shape="1355.98,1962.90 1356.14,1961.42 1356.67,1960.68 1357.60,1960.66 1358.90,1961.37"/>
- </edge>
- <edge id=":1257054205_4" function="internal">
- <lane id=":1257054205_4_0" index="0" speed="16.67" length="3.47" shape="1361.35,1959.15 1360.13,1959.85 1359.32,1960.45 1358.91,1960.96 1358.90,1961.37"/>
- </edge>
- <edge id=":1257054205_5" function="internal">
- <lane id=":1257054205_5_0" index="0" speed="27.78" length="9.60" shape="1361.35,1959.15 1352.86,1963.63"/>
- </edge>
- <edge id=":1257054205_6" function="internal">
- <lane id=":1257054205_6_0" index="0" speed="16.67" length="7.08" shape="1361.35,1959.15 1358.77,1960.39 1356.82,1961.06 1355.50,1961.15 1354.81,1960.68"/>
- </edge>
- <edge id=":1257054205_7" function="internal">
- <lane id=":1257054205_7_0" index="0" speed="27.78" length="2.41" shape="1361.35,1959.15 1359.87,1959.00 1359.12,1958.46"/>
- </edge>
- <edge id=":1257054205_16" function="internal">
- <lane id=":1257054205_16_0" index="0" speed="27.78" length="2.41" shape="1359.12,1958.46 1359.10,1957.54 1359.81,1956.23"/>
- </edge>
- <edge id=":1257054205_8" function="internal">
- <lane id=":1257054205_8_0" index="0" speed="16.67" length="4.00" shape="1357.77,1959.22 1357.62,1958.46 1357.91,1957.71 1358.64,1956.97 1359.81,1956.23"/>
- </edge>
- <edge id=":1257054205_9" function="internal">
- <lane id=":1257054205_9_0" index="0" speed="5.56" length="2.43" shape="1357.77,1959.22 1358.90,1961.37"/>
- </edge>
- <edge id=":1257054205_10" function="internal">
- <lane id=":1257054205_10_0" index="0" speed="16.67" length="6.93" shape="1357.77,1959.22 1357.73,1960.04 1356.90,1961.04 1355.27,1962.24 1352.86,1963.63"/>
- </edge>
- <edge id=":1257054205_11" function="internal">
- <lane id=":1257054205_11_0" index="0" speed="5.56" length="4.82" shape="1357.77,1959.22 1357.58,1960.70 1357.02,1961.43 1356.10,1961.42 1354.81,1960.68"/>
- </edge>
- <edge id=":1257054205_12" function="internal">
- <lane id=":1257054205_12_0" index="0" speed="16.67" length="3.89" shape="1351.32,1960.71 1352.58,1960.16 1353.58,1959.97 1354.33,1960.14 1354.81,1960.68"/>
- </edge>
- <edge id=":1257054205_13" function="internal">
- <lane id=":1257054205_13_0" index="0" speed="27.78" length="9.60" shape="1351.32,1960.71 1359.81,1956.23"/>
- </edge>
- <edge id=":1257054205_14" function="internal">
- <lane id=":1257054205_14_0" index="0" speed="16.67" length="7.73" shape="1351.32,1960.71 1353.91,1959.63 1356.05,1959.38 1357.71,1959.96 1358.36,1960.73"/>
- </edge>
- <edge id=":1257054205_17" function="internal">
- <lane id=":1257054205_17_0" index="0" speed="16.67" length="0.84" shape="1358.36,1960.73 1358.90,1961.37"/>
- </edge>
- <edge id=":1257054205_15" function="internal">
- <lane id=":1257054205_15_0" index="0" speed="27.78" length="2.41" shape="1351.32,1960.71 1352.79,1960.86 1353.54,1961.40"/>
- </edge>
- <edge id=":1257054205_18" function="internal">
- <lane id=":1257054205_18_0" index="0" speed="27.78" length="2.41" shape="1353.54,1961.40 1353.57,1962.32 1352.86,1963.63"/>
- </edge>
- <edge id=":1257054208_0" function="internal">
- <lane id=":1257054208_0_0" index="0" speed="16.67" length="3.23" shape="1065.87,2090.66 1065.75,2090.86 1065.25,2091.22 1064.40,2091.72 1063.17,2092.38"/>
- </edge>
- <edge id=":1257054208_1" function="internal">
- <lane id=":1257054208_1_0" index="0" speed="27.78" length="6.14" shape="1065.87,2090.66 1063.03,2085.21"/>
- </edge>
- <edge id=":1257054208_2" function="internal">
- <lane id=":1257054208_2_0" index="0" speed="16.67" length="4.67" shape="1065.87,2090.66 1065.66,2089.27 1066.30,2087.88 1067.58,2086.71"/>
- </edge>
- <edge id=":1257054208_16" function="internal">
- <lane id=":1257054208_16_0" index="0" speed="16.67" length="3.08" shape="1067.58,2086.71 1067.82,2086.49 1070.20,2085.09"/>
- </edge>
- <edge id=":1257054208_3" function="internal">
- <lane id=":1257054208_3_0" index="0" speed="27.78" length="2.63" shape="1065.87,2090.66 1065.45,2089.09 1065.70,2088.12"/>
- </edge>
- <edge id=":1257054208_17" function="internal">
- <lane id=":1257054208_17_0" index="0" speed="27.78" length="2.63" shape="1065.70,2088.12 1066.64,2087.74 1068.25,2087.95"/>
- </edge>
- <edge id=":1257054208_4" function="internal">
- <lane id=":1257054208_4_0" index="0" speed="16.67" length="3.81" shape="1071.67,2088.04 1070.42,2088.55 1069.44,2088.70 1068.72,2088.50 1068.25,2087.95"/>
- </edge>
- <edge id=":1257054208_5" function="internal">
- <lane id=":1257054208_5_0" index="0" speed="5.56" length="9.54" shape="1071.67,2088.04 1063.17,2092.38"/>
- </edge>
- <edge id=":1257054208_6" function="internal">
- <lane id=":1257054208_6_0" index="0" speed="16.67" length="10.29" shape="1071.67,2088.04 1069.02,2088.91 1066.70,2088.73 1064.71,2087.50 1063.03,2085.21"/>
- </edge>
- <edge id=":1257054208_7" function="internal">
- <lane id=":1257054208_7_0" index="0" speed="5.56" length="4.82" shape="1071.67,2088.04 1070.19,2087.86 1069.45,2087.30 1069.45,2086.38 1070.20,2085.09"/>
- </edge>
- <edge id=":1257054208_8" function="internal">
- <lane id=":1257054208_8_0" index="0" speed="16.67" length="5.09" shape="1065.94,2083.65 1066.77,2084.79 1067.76,2085.41 1068.90,2085.51 1070.20,2085.09"/>
- </edge>
- <edge id=":1257054208_9" function="internal">
- <lane id=":1257054208_9_0" index="0" speed="27.78" length="4.88" shape="1065.94,2083.65 1068.25,2087.95"/>
- </edge>
- <edge id=":1257054208_10" function="internal">
- <lane id=":1257054208_10_0" index="0" speed="16.67" length="7.20" shape="1065.94,2083.65 1066.91,2086.33 1066.78,2088.68 1065.72,2090.38"/>
- </edge>
- <edge id=":1257054208_18" function="internal">
- <lane id=":1257054208_18_0" index="0" speed="16.67" length="3.27" shape="1065.72,2090.38 1065.53,2090.69 1063.17,2092.38"/>
- </edge>
- <edge id=":1257054208_11" function="internal">
- <lane id=":1257054208_11_0" index="0" speed="27.78" length="2.41" shape="1065.94,2083.65 1065.80,2085.13 1065.27,2085.89"/>
- </edge>
- <edge id=":1257054208_19" function="internal">
- <lane id=":1257054208_19_0" index="0" speed="27.78" length="2.41" shape="1065.27,2085.89 1064.35,2085.91 1063.03,2085.21"/>
- </edge>
- <edge id=":1257054208_12" function="internal">
- <lane id=":1257054208_12_0" index="0" speed="16.67" length="5.11" shape="1061.64,2089.46 1062.80,2088.63 1063.42,2087.65 1063.50,2086.51 1063.03,2085.21"/>
- </edge>
- <edge id=":1257054208_13" function="internal">
- <lane id=":1257054208_13_0" index="0" speed="5.56" length="9.60" shape="1061.64,2089.46 1070.20,2085.09"/>
- </edge>
- <edge id=":1257054208_14" function="internal">
- <lane id=":1257054208_14_0" index="0" speed="16.67" length="7.16" shape="1061.64,2089.46 1064.26,2088.21 1066.23,2087.54 1067.56,2087.46 1068.25,2087.95"/>
- </edge>
- <edge id=":1257054208_15" function="internal">
- <lane id=":1257054208_15_0" index="0" speed="5.56" length="4.82" shape="1061.64,2089.46 1063.12,2089.62 1063.87,2090.16 1063.89,2091.08 1063.17,2092.38"/>
- </edge>
- <edge id=":1261880295_0" function="internal">
- <lane id=":1261880295_0_0" index="0" speed="25.00" length="1.68" shape="1295.39,1671.80 1294.61,1670.31"/>
- </edge>
- <edge id=":1261880295_1" function="internal">
- <lane id=":1261880295_1_0" index="0" speed="27.78" length="3.68" shape="1297.44,1667.00 1295.77,1668.55 1294.40,1668.88"/>
- </edge>
- <edge id=":1261880295_5" function="internal">
- <lane id=":1261880295_5_0" index="0" speed="27.78" length="3.68" shape="1294.40,1668.88 1293.32,1667.97 1292.53,1665.84"/>
- </edge>
- <edge id=":1261880295_2" function="internal">
- <lane id=":1261880295_2_0" index="0" speed="25.00" length="3.60" shape="1287.34,1663.99 1290.80,1663.02"/>
- </edge>
- <edge id=":1261880295_3" function="internal">
- <lane id=":1261880295_3_0" index="0" speed="25.00" length="5.51" shape="1287.34,1663.99 1292.53,1665.84"/>
- </edge>
- <edge id=":1261880295_4" function="internal">
- <lane id=":1261880295_4_0" index="0" speed="22.22" length="14.89" shape="1287.34,1663.99 1293.05,1664.05 1296.17,1665.12 1296.69,1667.21 1294.61,1670.31"/>
- </edge>
- <edge id=":1263725264_0" function="internal">
- <lane id=":1263725264_0_0" index="0" speed="27.78" length="0.94" shape="1076.86,2106.76 1076.65,2106.56 1076.58,2106.38 1076.66,2106.21 1076.88,2106.05"/>
- </edge>
- <edge id=":1263725264_1" function="internal">
- <lane id=":1263725264_1_0" index="0" speed="27.78" length="12.83" shape="1076.86,2106.76 1069.16,2096.49"/>
- </edge>
- <edge id=":1263725264_2" function="internal">
- <lane id=":1263725264_2_0" index="0" speed="27.78" length="8.50" shape="1076.86,2106.76 1077.45,2098.29"/>
- </edge>
- <edge id=":1263725264_3" function="internal">
- <lane id=":1263725264_3_0" index="0" speed="27.78" length="3.88" shape="1076.86,2106.76 1076.63,2105.59 1076.88,2104.88 1077.58,2104.66 1078.75,2104.90"/>
- </edge>
- <edge id=":1263725264_4" function="internal">
- <lane id=":1263725264_4_0" index="0" speed="27.78" length="1.96" shape="1080.54,2104.12 1079.83,2104.48 1079.30,2104.74 1078.94,2104.88 1078.75,2104.90"/>
- </edge>
- <edge id=":1263725264_5" function="internal">
- <lane id=":1263725264_5_0" index="0" speed="27.78" length="4.14" shape="1080.54,2104.12 1076.88,2106.05"/>
- </edge>
- <edge id=":1263725264_6" function="internal">
- <lane id=":1263725264_6_0" index="0" speed="27.78" length="4.06" shape="1079.00,2101.20 1075.41,2103.10"/>
- </edge>
- <edge id=":1263725264_7" function="internal">
- <lane id=":1263725264_7_0" index="0" speed="27.78" length="12.02" shape="1079.00,2101.20 1076.54,2101.88 1074.09,2101.32 1071.63,2099.53 1069.16,2096.49"/>
- </edge>
- <edge id=":1263725264_8" function="internal">
- <lane id=":1263725264_8_0" index="0" speed="27.78" length="2.41" shape="1079.00,2101.20 1077.52,2101.05 1076.77,2100.52"/>
- </edge>
- <edge id=":1263725264_18" function="internal">
- <lane id=":1263725264_18_0" index="0" speed="27.78" length="2.41" shape="1076.77,2100.52 1076.75,2099.59 1077.45,2098.29"/>
- </edge>
- <edge id=":1263725264_9" function="internal">
- <lane id=":1263725264_9_0" index="0" speed="27.78" length="3.41" shape="1072.75,2095.91 1073.16,2096.19 1073.82,2096.19 1074.74,2095.92 1075.91,2095.37"/>
- </edge>
- <edge id=":1263725264_10" function="internal">
- <lane id=":1263725264_10_0" index="0" speed="27.78" length="10.81" shape="1072.75,2095.91 1078.75,2104.90"/>
- </edge>
- <edge id=":1263725264_11" function="internal">
- <lane id=":1263725264_11_0" index="0" speed="27.78" length="7.67" shape="1072.75,2095.91 1075.41,2103.10"/>
- </edge>
- <edge id=":1263725264_12" function="internal">
- <lane id=":1263725264_12_0" index="0" speed="27.78" length="5.31" shape="1072.75,2095.91 1072.07,2097.40 1071.25,2097.99 1070.28,2097.69 1069.16,2096.49"/>
- </edge>
- <edge id=":1263725264_13" function="internal">
- <lane id=":1263725264_13_0" index="0" speed="27.78" length="3.21" shape="1072.28,2097.29 1069.16,2096.49"/>
- </edge>
- <edge id=":1263725264_14" function="internal">
- <lane id=":1263725264_14_0" index="0" speed="27.78" length="4.11" shape="1072.28,2097.29 1075.91,2095.37"/>
- </edge>
- <edge id=":1263725264_15" function="internal">
- <lane id=":1263725264_15_0" index="0" speed="27.78" length="4.18" shape="1073.75,2100.24 1077.45,2098.29"/>
- </edge>
- <edge id=":1263725264_16" function="internal">
- <lane id=":1263725264_16_0" index="0" speed="27.78" length="6.84" shape="1073.75,2100.24 1078.75,2104.90"/>
- </edge>
- <edge id=":1263725264_17" function="internal">
- <lane id=":1263725264_17_0" index="0" speed="27.78" length="2.41" shape="1073.75,2100.24 1075.24,2100.34 1076.01,2100.85"/>
- </edge>
- <edge id=":1263725264_19" function="internal">
- <lane id=":1263725264_19_0" index="0" speed="27.78" length="2.41" shape="1076.01,2100.85 1076.07,2101.77 1075.41,2103.10"/>
- </edge>
- <edge id=":1263725266_0" function="internal">
- <lane id=":1263725266_0_0" index="0" speed="27.78" length="1.26" shape="1080.14,2108.80 1081.39,2108.69"/>
- </edge>
- <edge id=":1263725266_1" function="internal">
- <lane id=":1263725266_1_0" index="0" speed="27.78" length="2.50" shape="1080.14,2108.80 1077.64,2108.76"/>
- </edge>
- <edge id=":1263725266_2" function="internal">
- <lane id=":1263725266_2_0" index="0" speed="27.78" length="4.65" shape="1080.14,2108.80 1078.90,2108.07 1078.92,2107.07 1080.22,2105.78 1080.54,2105.59"/>
- </edge>
- <edge id=":1263725266_16" function="internal">
- <lane id=":1263725266_16_0" index="0" speed="27.78" length="2.63" shape="1080.54,2105.59 1082.78,2104.22"/>
- </edge>
- <edge id=":1263725266_3" function="internal">
- <lane id=":1263725266_3_0" index="0" speed="27.78" length="0.79" shape="1080.14,2108.80 1079.83,2108.42 1079.79,2108.13"/>
- </edge>
- <edge id=":1263725266_17" function="internal">
- <lane id=":1263725266_17_0" index="0" speed="27.78" length="0.79" shape="1079.79,2108.13 1080.00,2107.91 1080.46,2107.77"/>
- </edge>
- <edge id=":1263725266_4" function="internal">
- <lane id=":1263725266_4_0" index="0" speed="27.78" length="4.38" shape="1084.74,2106.91 1083.99,2107.22 1083.03,2107.47 1081.85,2107.65 1080.46,2107.77"/>
- </edge>
- <edge id=":1263725266_5" function="internal">
- <lane id=":1263725266_5_0" index="0" speed="27.78" length="3.79" shape="1084.74,2106.91 1081.39,2108.69"/>
- </edge>
- <edge id=":1263725266_6" function="internal">
- <lane id=":1263725266_6_0" index="0" speed="27.78" length="7.64" shape="1084.74,2106.91 1082.00,2108.25 1079.91,2109.00 1078.46,2109.17 1077.64,2108.76"/>
- </edge>
- <edge id=":1263725266_7" function="internal">
- <lane id=":1263725266_7_0" index="0" speed="27.78" length="4.87" shape="1084.74,2106.91 1083.24,2106.97 1082.41,2106.54 1082.26,2105.62 1082.78,2104.22"/>
- </edge>
- <edge id=":1263725266_8" function="internal">
- <lane id=":1263725266_8_0" index="0" speed="27.78" length="2.52" shape="1080.54,2105.38 1080.69,2105.31 1081.11,2105.10 1081.81,2104.73 1082.78,2104.22"/>
- </edge>
- <edge id=":1263725266_9" function="internal">
- <lane id=":1263725266_9_0" index="0" speed="27.78" length="2.39" shape="1080.54,2105.38 1080.46,2107.77"/>
- </edge>
- <edge id=":1263725266_10" function="internal">
- <lane id=":1263725266_10_0" index="0" speed="27.78" length="3.42" shape="1080.54,2105.38 1081.39,2108.69"/>
- </edge>
- <edge id=":1263725266_11" function="internal">
- <lane id=":1263725266_11_0" index="0" speed="27.78" length="3.98" shape="1080.54,2105.38 1081.09,2107.31 1080.78,2108.52 1080.11,2108.80"/>
- </edge>
- <edge id=":1263725266_18" function="internal">
- <lane id=":1263725266_18_0" index="0" speed="27.78" length="2.52" shape="1080.11,2108.80 1079.64,2109.00 1077.64,2108.76"/>
- </edge>
- <edge id=":1263725266_12" function="internal">
- <lane id=":1263725266_12_0" index="0" speed="27.78" length="4.19" shape="1079.88,2105.76 1078.54,2106.57 1077.73,2107.34 1077.43,2108.07 1077.64,2108.76"/>
- </edge>
- <edge id=":1263725266_13" function="internal">
- <lane id=":1263725266_13_0" index="0" speed="27.78" length="3.29" shape="1079.88,2105.76 1082.78,2104.22"/>
- </edge>
- <edge id=":1263725266_14" function="internal">
- <lane id=":1263725266_14_0" index="0" speed="27.78" length="2.09" shape="1079.88,2105.76 1080.46,2107.77"/>
- </edge>
- <edge id=":1263725266_15" function="internal">
- <lane id=":1263725266_15_0" index="0" speed="27.78" length="4.82" shape="1079.88,2105.76 1081.35,2105.93 1082.10,2106.47 1082.11,2107.39 1081.39,2108.69"/>
- </edge>
- <edge id=":1268463825_0" function="internal">
- <lane id=":1268463825_0_0" index="0" speed="5.56" length="4.82" shape="1677.50,1992.05 1677.32,1993.53 1676.77,1994.27 1675.85,1994.28 1674.55,1993.55"/>
- </edge>
- <edge id=":1323557956_0" function="internal">
- <lane id=":1323557956_0_0" index="0" speed="18.06" length="5.19" shape="744.24,1610.01 740.01,1613.03"/>
- </edge>
- <edge id=":1323557956_1" function="internal">
- <lane id=":1323557956_1_0" index="0" speed="22.22" length="5.00" shape="740.67,1608.07 740.01,1613.03"/>
- </edge>
- <edge id=":1323557968_0" function="internal">
- <lane id=":1323557968_0_0" index="0" speed="18.06" length="5.05" shape="796.46,1580.44 795.66,1579.30 794.69,1578.71 793.56,1578.67 792.26,1579.17"/>
- </edge>
- <edge id=":1323557968_1" function="internal">
- <lane id=":1323557968_1_0" index="0" speed="22.22" length="6.20" shape="796.46,1580.44 793.63,1574.92"/>
- </edge>
- <edge id=":1323557968_2" function="internal">
- <lane id=":1323557968_2_0" index="0" speed="22.22" length="2.41" shape="796.46,1580.44 796.63,1578.96 797.18,1578.22"/>
- </edge>
- <edge id=":1323557968_6" function="internal">
- <lane id=":1323557968_6_0" index="0" speed="22.22" length="2.41" shape="797.18,1578.22 798.10,1578.21 799.40,1578.93"/>
- </edge>
- <edge id=":1323557968_3" function="internal">
- <lane id=":1323557968_3_0" index="0" speed="22.22" length="6.20" shape="796.57,1573.41 799.40,1578.93"/>
- </edge>
- <edge id=":1323557968_4" function="internal">
- <lane id=":1323557968_4_0" index="0" speed="18.06" length="4.66" shape="796.57,1573.41 796.80,1574.74 796.16,1576.15 794.90,1577.38"/>
- </edge>
- <edge id=":1323557968_7" function="internal">
- <lane id=":1323557968_7_0" index="0" speed="18.06" length="3.19" shape="794.90,1577.38 794.65,1577.62 792.26,1579.17"/>
- </edge>
- <edge id=":1323557968_5" function="internal">
- <lane id=":1323557968_5_0" index="0" speed="22.22" length="2.41" shape="796.57,1573.41 796.40,1574.89 795.85,1575.63"/>
- </edge>
- <edge id=":1323557968_8" function="internal">
- <lane id=":1323557968_8_0" index="0" speed="22.22" length="2.41" shape="795.85,1575.63 794.93,1575.64 793.63,1574.92"/>
- </edge>
- <edge id=":1366723470_0" function="internal">
- <lane id=":1366723470_0_0" index="0" speed="83.33" length="0.10" shape="766.44,922.98 766.44,922.99"/>
- </edge>
- <edge id=":1367073442_0" function="internal">
- <lane id=":1367073442_0_0" index="0" speed="83.33" length="0.10" shape="778.01,918.11 778.01,918.11"/>
- </edge>
- <edge id=":1367855907_0" function="internal">
- <lane id=":1367855907_0_0" index="0" speed="4.86" length="0.96" shape="1399.64,2206.61 1398.97,2205.93"/>
- </edge>
- <edge id=":1367855907_1" function="internal">
- <lane id=":1367855907_1_0" index="0" speed="1.39" length="2.41" shape="1399.64,2206.61 1399.80,2205.13 1400.35,2204.38"/>
- </edge>
- <edge id=":1367855907_4" function="internal">
- <lane id=":1367855907_4_0" index="0" speed="1.39" length="2.41" shape="1400.35,2204.38 1401.27,2204.37 1402.57,2205.09"/>
- </edge>
- <edge id=":1367855907_2" function="internal">
- <lane id=":1367855907_2_0" index="0" speed="4.86" length="2.93" shape="1400.51,2203.01 1402.57,2205.09"/>
- </edge>
- <edge id=":1367855907_3" function="internal">
- <lane id=":1367855907_3_0" index="0" speed="8.33" length="2.41" shape="1400.51,2203.01 1401.22,2204.32 1401.20,2205.24"/>
- </edge>
- <edge id=":1367855907_5" function="internal">
- <lane id=":1367855907_5_0" index="0" speed="8.33" length="2.41" shape="1401.20,2205.24 1400.45,2205.78 1398.97,2205.93"/>
- </edge>
- <edge id=":1367855909_0" function="internal">
- <lane id=":1367855909_0_0" index="0" speed="4.86" length="3.26" shape="1409.18,2224.98 1408.77,2221.75"/>
- </edge>
- <edge id=":1367855909_1" function="internal">
- <lane id=":1367855909_1_0" index="0" speed="1.39" length="9.50" shape="1409.18,2224.98 1404.80,2216.54"/>
- </edge>
- <edge id=":1367855909_2" function="internal">
- <lane id=":1367855909_2_0" index="0" speed="4.86" length="10.32" shape="1409.18,2224.98 1408.24,2222.31 1408.39,2219.98 1409.61,2217.99 1411.91,2216.34"/>
- </edge>
- <edge id=":1367855909_3" function="internal">
- <lane id=":1367855909_3_0" index="0" speed="1.39" length="4.82" shape="1409.18,2224.98 1409.34,2223.50 1409.88,2222.75 1410.80,2222.74 1412.10,2223.46"/>
- </edge>
- <edge id=":1367855909_4" function="internal">
- <lane id=":1367855909_4_0" index="0" speed="4.86" length="5.01" shape="1413.43,2219.27 1412.32,2220.07 1411.72,2221.04 1411.65,2222.16 1412.10,2223.46"/>
- </edge>
- <edge id=":1367855909_5" function="internal">
- <lane id=":1367855909_5_0" index="0" speed="8.33" length="5.28" shape="1413.43,2219.27 1408.77,2221.75"/>
- </edge>
- <edge id=":1367855909_6" function="internal">
- <lane id=":1367855909_6_0" index="0" speed="4.86" length="7.05" shape="1413.43,2219.27 1410.76,2220.21 1408.43,2220.07 1406.83,2219.08"/>
- </edge>
- <edge id=":1367855909_16" function="internal">
- <lane id=":1367855909_16_0" index="0" speed="4.86" length="3.28" shape="1406.83,2219.08 1406.45,2218.85 1404.80,2216.54"/>
- </edge>
- <edge id=":1367855909_7" function="internal">
- <lane id=":1367855909_7_0" index="0" speed="8.33" length="2.41" shape="1413.43,2219.27 1411.95,2219.11 1411.21,2218.57"/>
- </edge>
- <edge id=":1367855909_17" function="internal">
- <lane id=":1367855909_17_0" index="0" speed="8.33" length="2.41" shape="1411.21,2218.57 1411.19,2217.65 1411.91,2216.34"/>
- </edge>
- <edge id=":1367855909_8" function="internal">
- <lane id=":1367855909_8_0" index="0" speed="4.86" length="5.00" shape="1407.73,2215.02 1408.53,2216.14 1409.49,2216.73 1410.62,2216.80 1411.91,2216.34"/>
- </edge>
- <edge id=":1367855909_9" function="internal">
- <lane id=":1367855909_9_0" index="0" speed="1.39" length="9.50" shape="1407.73,2215.02 1412.10,2223.46"/>
- </edge>
- <edge id=":1367855909_10" function="internal">
- <lane id=":1367855909_10_0" index="0" speed="4.86" length="7.26" shape="1407.73,2215.02 1408.88,2217.54 1409.44,2219.50 1409.40,2220.90 1408.77,2221.75"/>
- </edge>
- <edge id=":1367855909_11" function="internal">
- <lane id=":1367855909_11_0" index="0" speed="1.39" length="4.82" shape="1407.73,2215.02 1407.57,2216.50 1407.02,2217.25 1406.10,2217.26 1404.80,2216.54"/>
- </edge>
- <edge id=":1367855909_12" function="internal">
- <lane id=":1367855909_12_0" index="0" speed="4.86" length="3.22" shape="1406.60,2219.21 1404.80,2216.54"/>
- </edge>
- <edge id=":1367855909_13" function="internal">
- <lane id=":1367855909_13_0" index="0" speed="8.33" length="6.03" shape="1406.60,2219.21 1411.91,2216.34"/>
- </edge>
- <edge id=":1367855909_14" function="internal">
- <lane id=":1367855909_14_0" index="0" speed="4.86" length="4.62" shape="1406.60,2219.21 1407.88,2218.90 1409.23,2219.50 1410.47,2220.84"/>
- </edge>
- <edge id=":1367855909_18" function="internal">
- <lane id=":1367855909_18_0" index="0" speed="4.86" length="3.09" shape="1410.47,2220.84 1410.63,2221.02 1412.10,2223.46"/>
- </edge>
- <edge id=":1367855909_15" function="internal">
- <lane id=":1367855909_15_0" index="0" speed="8.33" length="2.44" shape="1406.60,2219.21 1408.10,2219.03 1408.96,2219.39"/>
- </edge>
- <edge id=":1367855909_19" function="internal">
- <lane id=":1367855909_19_0" index="0" speed="8.33" length="2.44" shape="1408.96,2219.39 1409.18,2220.30 1408.77,2221.75"/>
- </edge>
- <edge id=":1367855910_0" function="internal">
- <lane id=":1367855910_0_0" index="0" speed="4.86" length="3.03" shape="1417.47,2233.80 1417.97,2236.79"/>
- </edge>
- <edge id=":1367855910_1" function="internal">
- <lane id=":1367855910_1_0" index="0" speed="1.39" length="2.41" shape="1417.47,2233.80 1417.31,2235.28 1416.77,2236.02"/>
- </edge>
- <edge id=":1367855910_4" function="internal">
- <lane id=":1367855910_4_0" index="0" speed="1.39" length="2.41" shape="1416.77,2236.02 1415.85,2236.04 1414.55,2235.32"/>
- </edge>
- <edge id=":1367855910_2" function="internal">
- <lane id=":1367855910_2_0" index="0" speed="4.86" length="0.99" shape="1414.71,2236.29 1414.55,2235.32"/>
- </edge>
- <edge id=":1367855910_3" function="internal">
- <lane id=":1367855910_3_0" index="0" speed="8.33" length="2.41" shape="1414.71,2236.29 1415.71,2235.19 1416.59,2234.91"/>
- </edge>
- <edge id=":1367855910_5" function="internal">
- <lane id=":1367855910_5_0" index="0" speed="8.33" length="2.41" shape="1416.59,2234.91 1417.34,2235.44 1417.97,2236.79"/>
- </edge>
- <edge id=":1367855923_0" function="internal">
- <lane id=":1367855923_0_0" index="0" speed="22.22" length="8.72" shape="1405.86,2163.02 1410.03,2170.68"/>
- </edge>
- <edge id=":1367855923_1" function="internal">
- <lane id=":1367855923_1_0" index="0" speed="15.28" length="7.22" shape="1405.86,2163.02 1406.91,2165.24 1407.24,2167.04 1406.85,2168.43 1405.73,2169.41"/>
- </edge>
- <edge id=":1367855923_2" function="internal">
- <lane id=":1367855923_2_0" index="0" speed="15.28" length="7.95" shape="1404.21,2166.48 1405.66,2166.18 1407.11,2166.78 1408.57,2168.28 1410.03,2170.68"/>
- </edge>
- <edge id=":1367855923_3" function="internal">
- <lane id=":1367855923_3_0" index="0" speed="8.33" length="4.82" shape="1404.21,2166.48 1405.69,2166.64 1406.43,2167.18 1406.45,2168.11 1405.73,2169.41"/>
- </edge>
- <edge id=":1367855925_0" function="internal">
- <lane id=":1367855925_0_0" index="0" speed="15.28" length="4.42" shape="1380.49,2175.53 1379.85,2174.71 1378.99,2174.33 1377.93,2174.39 1376.66,2174.90"/>
- </edge>
- <edge id=":1367855925_1" function="internal">
- <lane id=":1367855925_1_0" index="0" speed="15.28" length="9.50" shape="1380.49,2175.53 1379.69,2173.16 1379.88,2171.05 1381.08,2169.22 1383.27,2167.66"/>
- </edge>
- <edge id=":1367855925_2" function="internal">
- <lane id=":1367855925_2_0" index="0" speed="8.33" length="4.82" shape="1380.49,2175.53 1380.65,2174.05 1381.20,2173.31 1382.12,2173.29 1383.42,2174.01"/>
- </edge>
- <edge id=":1367855925_3" function="internal">
- <lane id=":1367855925_3_0" index="0" speed="15.28" length="4.21" shape="1384.82,2170.57 1383.79,2171.28 1383.22,2172.09 1383.10,2173.00 1383.42,2174.01"/>
- </edge>
- <edge id=":1367855925_4" function="internal">
- <lane id=":1367855925_4_0" index="0" speed="22.22" length="9.24" shape="1384.82,2170.57 1376.66,2174.90"/>
- </edge>
- <edge id=":1367855925_5" function="internal">
- <lane id=":1367855925_5_0" index="0" speed="22.22" length="2.41" shape="1384.82,2170.57 1383.34,2170.42 1382.59,2169.89"/>
- </edge>
- <edge id=":1367855925_9" function="internal">
- <lane id=":1367855925_9_0" index="0" speed="22.22" length="2.41" shape="1382.59,2169.89 1382.56,2168.97 1383.27,2167.66"/>
- </edge>
- <edge id=":1367855925_6" function="internal">
- <lane id=":1367855925_6_0" index="0" speed="22.22" length="9.24" shape="1375.11,2171.99 1383.27,2167.66"/>
- </edge>
- <edge id=":1367855925_7" function="internal">
- <lane id=":1367855925_7_0" index="0" speed="15.28" length="7.35" shape="1375.11,2171.99 1377.76,2170.98 1380.03,2170.98 1381.92,2171.99 1381.98,2172.08"/>
- </edge>
- <edge id=":1367855925_10" function="internal">
- <lane id=":1367855925_10_0" index="0" speed="15.28" length="2.41" shape="1381.98,2172.08 1383.42,2174.01"/>
- </edge>
- <edge id=":1367855925_8" function="internal">
- <lane id=":1367855925_8_0" index="0" speed="22.22" length="2.41" shape="1375.11,2171.99 1376.59,2172.13 1377.34,2172.67"/>
- </edge>
- <edge id=":1367855925_11" function="internal">
- <lane id=":1367855925_11_0" index="0" speed="22.22" length="2.41" shape="1377.34,2172.67 1377.36,2173.59 1376.66,2174.90"/>
- </edge>
- <edge id=":1367855926_0" function="internal">
- <lane id=":1367855926_0_0" index="0" speed="15.28" length="4.61" shape="1393.05,2179.53 1392.26,2178.38 1391.38,2177.75 1390.40,2177.64 1389.33,2178.05"/>
- </edge>
- <edge id=":1367855926_1" function="internal">
- <lane id=":1367855926_1_0" index="0" speed="22.22" length="4.84" shape="1393.05,2179.53 1390.80,2175.25"/>
- </edge>
- <edge id=":1367855926_2" function="internal">
- <lane id=":1367855926_2_0" index="0" speed="15.28" length="6.79" shape="1393.05,2179.53 1391.80,2176.99 1391.05,2175.09 1390.81,2173.85 1391.07,2173.26"/>
- </edge>
- <edge id=":1367855926_3" function="internal">
- <lane id=":1367855926_3_0" index="0" speed="8.33" length="3.72" shape="1392.56,2176.21 1389.33,2178.05"/>
- </edge>
- <edge id=":1367855926_4" function="internal">
- <lane id=":1367855926_4_0" index="0" speed="15.28" length="2.25" shape="1392.56,2176.21 1392.08,2176.34 1391.62,2176.22 1391.20,2175.86 1390.80,2175.25"/>
- </edge>
- <edge id=":1367855926_5" function="internal">
- <lane id=":1367855926_5_0" index="0" speed="8.33" length="4.82" shape="1392.56,2176.21 1391.08,2176.03 1390.34,2175.48 1390.34,2174.56 1391.07,2173.26"/>
- </edge>
- <edge id=":1367855926_6" function="internal">
- <lane id=":1367855926_6_0" index="0" speed="15.28" length="3.57" shape="1387.64,2175.21 1388.74,2174.68 1389.63,2174.51 1390.32,2174.70 1390.80,2175.25"/>
- </edge>
- <edge id=":1367855926_7" function="internal">
- <lane id=":1367855926_7_0" index="0" speed="8.33" length="3.95" shape="1387.64,2175.21 1391.07,2173.26"/>
- </edge>
- <edge id=":1367855926_8" function="internal">
- <lane id=":1367855926_8_0" index="0" speed="8.33" length="4.82" shape="1387.64,2175.21 1389.13,2175.29 1389.90,2175.78 1389.97,2176.70 1389.33,2178.05"/>
- </edge>
- <edge id=":1367855927_0" function="internal">
- <lane id=":1367855927_0_0" index="0" speed="8.33" length="8.75" shape="1384.88,2183.97 1380.84,2176.20"/>
- </edge>
- <edge id=":1367855927_1" function="internal">
- <lane id=":1367855927_1_0" index="0" speed="8.33" length="9.87" shape="1384.88,2183.97 1383.96,2181.40 1384.03,2179.14 1385.09,2177.17 1387.14,2175.51"/>
- </edge>
- <edge id=":1367855927_2" function="internal">
- <lane id=":1367855927_2_0" index="0" speed="8.33" length="4.82" shape="1384.88,2183.97 1385.04,2182.49 1385.58,2181.75 1386.50,2181.73 1387.81,2182.45"/>
- </edge>
- <edge id=":1367855927_3" function="internal">
- <lane id=":1367855927_3_0" index="0" speed="8.33" length="4.77" shape="1388.83,2178.34 1387.86,2179.14 1387.37,2180.09 1387.35,2181.19 1387.81,2182.45"/>
- </edge>
- <edge id=":1367855927_4" function="internal">
- <lane id=":1367855927_4_0" index="0" speed="8.33" length="9.56" shape="1388.83,2178.34 1386.36,2179.38 1384.21,2179.37 1382.37,2178.31 1380.84,2176.20"/>
- </edge>
- <edge id=":1367855927_5" function="internal">
- <lane id=":1367855927_5_0" index="0" speed="8.33" length="4.82" shape="1388.83,2178.34 1387.35,2178.27 1386.57,2177.77 1386.50,2176.85 1387.14,2175.51"/>
- </edge>
- <edge id=":1367855927_6" function="internal">
- <lane id=":1367855927_6_0" index="0" speed="8.33" length="4.01" shape="1383.77,2174.68 1384.40,2175.55 1385.18,2175.97 1386.09,2175.96 1387.14,2175.51"/>
- </edge>
- <edge id=":1367855927_7" function="internal">
- <lane id=":1367855927_7_0" index="0" speed="8.33" length="8.75" shape="1383.77,2174.68 1387.81,2182.45"/>
- </edge>
- <edge id=":1367855927_8" function="internal">
- <lane id=":1367855927_8_0" index="0" speed="8.33" length="4.82" shape="1383.77,2174.68 1383.61,2176.16 1383.07,2176.91 1382.15,2176.92 1380.84,2176.20"/>
- </edge>
- <edge id=":1367855929_0" function="internal">
- <lane id=":1367855929_0_0" index="0" speed="8.33" length="5.00" shape="1395.72,2204.85 1393.41,2200.41"/>
- </edge>
- <edge id=":1367855929_1" function="internal">
- <lane id=":1367855929_1_0" index="0" speed="8.33" length="8.81" shape="1395.72,2204.85 1394.81,2202.46 1395.22,2201.31 1396.94,2201.40 1399.97,2202.73"/>
- </edge>
- <edge id=":1367855929_2" function="internal">
- <lane id=":1367855929_2_0" index="0" speed="8.33" length="4.98" shape="1395.72,2204.85 1396.27,2203.41 1397.00,2202.81 1397.93,2203.03 1399.05,2204.09"/>
- </edge>
- <edge id=":1367855929_3" function="internal">
- <lane id=":1367855929_3_0" index="0" speed="8.33" length="1.67" shape="1398.11,2205.47 1399.05,2204.09"/>
- </edge>
- <edge id=":1367855929_4" function="internal">
- <lane id=":1367855929_4_0" index="0" speed="8.33" length="6.90" shape="1398.11,2205.47 1393.41,2200.41"/>
- </edge>
- <edge id=":1367855929_5" function="internal">
- <lane id=":1367855929_5_0" index="0" speed="8.33" length="4.85" shape="1398.11,2205.47 1397.54,2204.09 1397.67,2203.17 1398.48,2202.71 1399.97,2202.73"/>
- </edge>
- <edge id=":1367855929_6" function="internal">
- <lane id=":1367855929_6_0" index="0" speed="8.33" length="5.28" shape="1396.34,2198.89 1399.97,2202.73"/>
- </edge>
- <edge id=":1367855929_7" function="internal">
- <lane id=":1367855929_7_0" index="0" speed="8.33" length="5.86" shape="1396.34,2198.89 1399.05,2204.09"/>
- </edge>
- <edge id=":1367855929_8" function="internal">
- <lane id=":1367855929_8_0" index="0" speed="8.33" length="4.82" shape="1396.34,2198.89 1396.18,2200.37 1395.64,2201.11 1394.72,2201.13 1393.41,2200.41"/>
- </edge>
- <edge id=":1367855930_0" function="internal">
- <lane id=":1367855930_0_0" index="0" speed="8.33" length="3.00" shape="1405.41,2223.49 1404.03,2220.83"/>
- </edge>
- <edge id=":1367855930_1" function="internal">
- <lane id=":1367855930_1_0" index="0" speed="8.33" length="4.72" shape="1405.41,2223.49 1404.94,2222.22 1404.94,2221.12 1405.39,2220.17 1406.31,2219.38"/>
- </edge>
- <edge id=":1367855930_2" function="internal">
- <lane id=":1367855930_2_0" index="0" speed="8.33" length="4.88" shape="1405.41,2223.49 1405.81,2222.04 1406.48,2221.38 1407.40,2221.51 1408.59,2222.44"/>
- </edge>
- <edge id=":1367855930_3" function="internal">
- <lane id=":1367855930_3_0" index="0" speed="8.33" length="0.69" shape="1408.04,2222.20 1408.19,2222.14 1408.34,2222.16 1408.47,2222.26 1408.59,2222.44"/>
- </edge>
- <edge id=":1367855930_4" function="internal">
- <lane id=":1367855930_4_0" index="0" speed="8.33" length="4.91" shape="1408.04,2222.20 1406.85,2222.69 1405.79,2222.62 1404.85,2222.00 1404.03,2220.83"/>
- </edge>
- <edge id=":1367855930_5" function="internal">
- <lane id=":1367855930_5_0" index="0" speed="8.33" length="4.82" shape="1408.04,2222.20 1406.55,2222.14 1405.77,2221.65 1405.69,2220.74 1406.31,2219.38"/>
- </edge>
- <edge id=":1367855930_6" function="internal">
- <lane id=":1367855930_6_0" index="0" speed="8.33" length="1.40" shape="1406.27,2217.98 1406.31,2219.38"/>
- </edge>
- <edge id=":1367855930_7" function="internal">
- <lane id=":1367855930_7_0" index="0" speed="8.33" length="5.03" shape="1406.27,2217.98 1408.59,2222.44"/>
- </edge>
- <edge id=":1367855930_8" function="internal">
- <lane id=":1367855930_8_0" index="0" speed="8.33" length="5.29" shape="1406.27,2217.98 1406.78,2219.54 1406.57,2220.53 1405.66,2220.96 1404.03,2220.83"/>
- </edge>
- <edge id=":1367855931_0" function="internal">
- <lane id=":1367855931_0_0" index="0" speed="8.33" length="4.06" shape="1415.54,2242.98 1413.67,2239.38"/>
- </edge>
- <edge id=":1367855931_1" function="internal">
- <lane id=":1367855931_1_0" index="0" speed="8.33" length="6.06" shape="1415.54,2242.98 1414.60,2237.00"/>
- </edge>
- <edge id=":1367855931_2" function="internal">
- <lane id=":1367855931_2_0" index="0" speed="8.33" length="4.82" shape="1415.54,2242.98 1415.70,2241.50 1416.24,2240.76 1417.16,2240.74 1418.47,2241.46"/>
- </edge>
- <edge id=":1367855931_3" function="internal">
- <lane id=":1367855931_3_0" index="0" speed="8.33" length="4.38" shape="1417.92,2237.12 1418.47,2241.46"/>
- </edge>
- <edge id=":1367855931_4" function="internal">
- <lane id=":1367855931_4_0" index="0" speed="8.33" length="8.67" shape="1417.92,2237.12 1417.19,2240.30 1416.24,2241.73 1415.07,2241.43 1413.67,2239.38"/>
- </edge>
- <edge id=":1367855931_5" function="internal">
- <lane id=":1367855931_5_0" index="0" speed="8.33" length="4.85" shape="1417.92,2237.12 1417.04,2238.33 1416.20,2238.72 1415.38,2238.27 1414.60,2237.00"/>
- </edge>
- <edge id=":1367855931_6" function="internal">
- <lane id=":1367855931_6_0" index="0" speed="8.33" length="1.58" shape="1416.18,2237.05 1414.60,2237.00"/>
- </edge>
- <edge id=":1367855931_7" function="internal">
- <lane id=":1367855931_7_0" index="0" speed="8.33" length="4.97" shape="1416.18,2237.05 1418.47,2241.46"/>
- </edge>
- <edge id=":1367855931_8" function="internal">
- <lane id=":1367855931_8_0" index="0" speed="8.33" length="5.00" shape="1416.18,2237.05 1416.42,2238.58 1416.09,2239.47 1415.17,2239.74 1413.67,2239.38"/>
- </edge>
- <edge id=":1367855932_0" function="internal">
- <lane id=":1367855932_0_0" index="0" speed="8.33" length="6.21" shape="1427.21,2265.45 1424.35,2259.94"/>
- </edge>
- <edge id=":1367855932_1" function="internal">
- <lane id=":1367855932_1_0" index="0" speed="15.28" length="7.85" shape="1427.21,2265.45 1426.94,2264.07 1427.56,2262.65 1429.07,2261.21 1431.46,2259.74"/>
- </edge>
- <edge id=":1367855932_2" function="internal">
- <lane id=":1367855932_2_0" index="0" speed="8.33" length="4.82" shape="1427.21,2265.45 1427.37,2263.97 1427.92,2263.23 1428.84,2263.21 1430.14,2263.93"/>
- </edge>
- <edge id=":1367855932_3" function="internal">
- <lane id=":1367855932_3_0" index="0" speed="15.28" length="5.00" shape="1427.28,2258.42 1428.08,2259.54 1429.04,2260.13 1430.17,2260.20 1431.46,2259.74"/>
- </edge>
- <edge id=":1367855932_4" function="internal">
- <lane id=":1367855932_4_0" index="0" speed="8.33" length="6.21" shape="1427.28,2258.42 1430.14,2263.93"/>
- </edge>
- <edge id=":1367855932_5" function="internal">
- <lane id=":1367855932_5_0" index="0" speed="8.33" length="4.82" shape="1427.28,2258.42 1427.12,2259.90 1426.58,2260.65 1425.65,2260.66 1424.35,2259.94"/>
- </edge>
- <edge id=":1367855932_6" function="internal">
- <lane id=":1367855932_6_0" index="0" speed="15.28" length="5.01" shape="1423.03,2264.13 1424.14,2263.33 1424.74,2262.37 1424.81,2261.24 1424.35,2259.94"/>
- </edge>
- <edge id=":1367855932_7" function="internal">
- <lane id=":1367855932_7_0" index="0" speed="22.22" length="9.51" shape="1423.03,2264.13 1431.46,2259.74"/>
- </edge>
- <edge id=":1367855932_8" function="internal">
- <lane id=":1367855932_8_0" index="0" speed="15.28" length="7.85" shape="1423.03,2264.13 1425.61,2263.01 1427.65,2262.61 1429.16,2262.91 1430.14,2263.93"/>
- </edge>
- <edge id=":1367855969_0" function="internal">
- <lane id=":1367855969_0_0" index="0" speed="8.33" length="4.82" shape="1613.54,2616.98 1613.38,2618.46 1612.84,2619.21 1611.92,2619.22 1610.61,2618.50"/>
- </edge>
- <edge id=":1369844756_0" function="internal">
- <lane id=":1369844756_0_0" index="0" speed="1.39" length="4.82" shape="1456.12,2205.66 1455.94,2207.14 1455.38,2207.87 1454.46,2207.87 1453.17,2207.13"/>
- </edge>
- <edge id=":1369844757_0" function="internal">
- <lane id=":1369844757_0_0" index="0" speed="4.86" length="5.01" shape="1451.23,2203.24 1450.45,2202.11 1449.49,2201.51 1448.36,2201.42 1447.06,2201.86"/>
- </edge>
- <edge id=":1369844757_1" function="internal">
- <lane id=":1369844757_1_0" index="0" speed="1.39" length="9.52" shape="1451.23,2203.24 1446.93,2194.75"/>
- </edge>
- <edge id=":1369844757_2" function="internal">
- <lane id=":1369844757_2_0" index="0" speed="4.86" length="10.33" shape="1451.23,2203.24 1450.33,2200.56 1450.50,2198.22 1451.74,2196.24 1454.04,2194.60"/>
- </edge>
- <edge id=":1369844757_3" function="internal">
- <lane id=":1369844757_3_0" index="0" speed="1.39" length="4.82" shape="1451.23,2203.24 1451.41,2201.77 1451.97,2201.03 1452.89,2201.03 1454.18,2201.77"/>
- </edge>
- <edge id=":1369844757_4" function="internal">
- <lane id=":1369844757_4_0" index="0" speed="4.86" length="5.05" shape="1455.53,2197.54 1454.42,2198.34 1453.82,2199.31 1453.74,2200.45 1454.18,2201.77"/>
- </edge>
- <edge id=":1369844757_5" function="internal">
- <lane id=":1369844757_5_0" index="0" speed="8.33" length="9.51" shape="1455.53,2197.54 1447.06,2201.86"/>
- </edge>
- <edge id=":1369844757_6" function="internal">
- <lane id=":1369844757_6_0" index="0" speed="4.86" length="7.15" shape="1455.53,2197.54 1452.87,2198.47 1450.55,2198.31 1448.85,2197.25"/>
- </edge>
- <edge id=":1369844757_16" function="internal">
- <lane id=":1369844757_16_0" index="0" speed="4.86" length="3.17" shape="1448.85,2197.25 1448.57,2197.07 1446.93,2194.75"/>
- </edge>
- <edge id=":1369844757_7" function="internal">
- <lane id=":1369844757_7_0" index="0" speed="8.33" length="2.41" shape="1455.53,2197.54 1454.06,2197.36 1453.32,2196.82"/>
- </edge>
- <edge id=":1369844757_17" function="internal">
- <lane id=":1369844757_17_0" index="0" speed="8.33" length="2.41" shape="1453.32,2196.82 1453.31,2195.89 1454.04,2194.60"/>
- </edge>
- <edge id=":1369844757_8" function="internal">
- <lane id=":1369844757_8_0" index="0" speed="4.86" length="5.00" shape="1449.87,2193.25 1450.66,2194.37 1451.62,2194.97 1452.75,2195.05 1454.04,2194.60"/>
- </edge>
- <edge id=":1369844757_9" function="internal">
- <lane id=":1369844757_9_0" index="0" speed="1.39" length="9.55" shape="1449.87,2193.25 1454.18,2201.77"/>
- </edge>
- <edge id=":1369844757_10" function="internal">
- <lane id=":1369844757_10_0" index="0" speed="4.86" length="10.35" shape="1449.87,2193.25 1450.79,2195.93 1450.63,2198.26 1449.39,2200.24 1447.06,2201.86"/>
- </edge>
- <edge id=":1369844757_11" function="internal">
- <lane id=":1369844757_11_0" index="0" speed="1.39" length="4.82" shape="1449.87,2193.25 1449.70,2194.72 1449.15,2195.47 1448.23,2195.48 1446.93,2194.75"/>
- </edge>
- <edge id=":1369844757_12" function="internal">
- <lane id=":1369844757_12_0" index="0" speed="4.86" length="5.01" shape="1445.57,2198.92 1446.70,2198.13 1447.30,2197.18 1447.38,2196.05 1446.93,2194.75"/>
- </edge>
- <edge id=":1369844757_13" function="internal">
- <lane id=":1369844757_13_0" index="0" speed="8.33" length="9.50" shape="1445.57,2198.92 1454.04,2194.60"/>
- </edge>
- <edge id=":1369844757_14" function="internal">
- <lane id=":1369844757_14_0" index="0" speed="4.86" length="7.12" shape="1445.57,2198.92 1448.26,2198.01 1450.59,2198.18 1452.23,2199.22"/>
- </edge>
- <edge id=":1369844757_18" function="internal">
- <lane id=":1369844757_18_0" index="0" speed="4.86" length="3.23" shape="1452.23,2199.22 1452.57,2199.44 1454.18,2201.77"/>
- </edge>
- <edge id=":1369844757_15" function="internal">
- <lane id=":1369844757_15_0" index="0" speed="8.33" length="2.41" shape="1445.57,2198.92 1447.05,2199.10 1447.79,2199.65"/>
- </edge>
- <edge id=":1369844757_19" function="internal">
- <lane id=":1369844757_19_0" index="0" speed="8.33" length="2.41" shape="1447.79,2199.65 1447.80,2200.57 1447.06,2201.86"/>
- </edge>
- <edge id=":1369844758_0" function="internal">
- <lane id=":1369844758_0_0" index="0" speed="1.39" length="4.82" shape="1443.45,2211.82 1443.28,2213.30 1442.74,2214.04 1441.82,2214.05 1440.52,2213.33"/>
- </edge>
- <edge id=":1369844760_0" function="internal">
- <lane id=":1369844760_0_0" index="0" speed="1.39" length="4.82" shape="1444.62,2190.23 1444.79,2188.76 1445.34,2188.01 1446.26,2188.00 1447.56,2188.73"/>
- </edge>
- <edge id=":1369844762_0" function="internal">
- <lane id=":1369844762_0_0" index="0" speed="4.86" length="5.01" shape="1438.62,2209.64 1437.82,2208.52 1436.86,2207.92 1435.73,2207.86 1434.44,2208.31"/>
- </edge>
- <edge id=":1369844762_1" function="internal">
- <lane id=":1369844762_1_0" index="0" speed="1.39" length="9.51" shape="1438.62,2209.64 1434.26,2201.19"/>
- </edge>
- <edge id=":1369844762_2" function="internal">
- <lane id=":1369844762_2_0" index="0" speed="4.86" length="10.36" shape="1438.62,2209.64 1437.69,2206.96 1437.85,2204.62 1439.09,2202.64 1441.42,2201.02"/>
- </edge>
- <edge id=":1369844762_3" function="internal">
- <lane id=":1369844762_3_0" index="0" speed="1.39" length="4.82" shape="1438.62,2209.64 1438.79,2208.16 1439.33,2207.42 1440.25,2207.41 1441.55,2208.13"/>
- </edge>
- <edge id=":1369844762_4" function="internal">
- <lane id=":1369844762_4_0" index="0" speed="4.86" length="5.01" shape="1442.91,2203.96 1441.78,2204.75 1441.18,2205.71 1441.10,2206.83 1441.55,2208.13"/>
- </edge>
- <edge id=":1369844762_5" function="internal">
- <lane id=":1369844762_5_0" index="0" speed="8.33" length="9.52" shape="1442.91,2203.96 1434.44,2208.31"/>
- </edge>
- <edge id=":1369844762_6" function="internal">
- <lane id=":1369844762_6_0" index="0" speed="4.86" length="7.13" shape="1442.91,2203.96 1440.22,2204.87 1437.88,2204.71 1436.22,2203.69"/>
- </edge>
- <edge id=":1369844762_16" function="internal">
- <lane id=":1369844762_16_0" index="0" speed="4.86" length="3.20" shape="1436.22,2203.69 1435.90,2203.49 1434.26,2201.19"/>
- </edge>
- <edge id=":1369844762_7" function="internal">
- <lane id=":1369844762_7_0" index="0" speed="8.33" length="2.41" shape="1442.91,2203.96 1441.43,2203.78 1440.69,2203.23"/>
- </edge>
- <edge id=":1369844762_17" function="internal">
- <lane id=":1369844762_17_0" index="0" speed="8.33" length="2.41" shape="1440.69,2203.23 1440.69,2202.31 1441.42,2201.02"/>
- </edge>
- <edge id=":1369844762_8" function="internal">
- <lane id=":1369844762_8_0" index="0" speed="4.86" length="5.05" shape="1437.19,2199.67 1437.99,2200.79 1438.96,2201.39 1440.10,2201.46 1441.42,2201.02"/>
- </edge>
- <edge id=":1369844762_9" function="internal">
- <lane id=":1369844762_9_0" index="0" speed="1.39" length="9.52" shape="1437.19,2199.67 1441.55,2208.13"/>
- </edge>
- <edge id=":1369844762_10" function="internal">
- <lane id=":1369844762_10_0" index="0" speed="4.86" length="10.33" shape="1437.19,2199.67 1438.12,2202.34 1437.97,2204.67 1436.74,2206.66 1434.44,2208.31"/>
- </edge>
- <edge id=":1369844762_11" function="internal">
- <lane id=":1369844762_11_0" index="0" speed="1.39" length="4.82" shape="1437.19,2199.67 1437.02,2201.15 1436.48,2201.90 1435.56,2201.91 1434.26,2201.19"/>
- </edge>
- <edge id=":1369844762_12" function="internal">
- <lane id=":1369844762_12_0" index="0" speed="4.86" length="5.02" shape="1432.91,2205.39 1434.03,2204.58 1434.63,2203.61 1434.71,2202.48 1434.26,2201.19"/>
- </edge>
- <edge id=":1369844762_13" function="internal">
- <lane id=":1369844762_13_0" index="0" speed="8.33" length="9.57" shape="1432.91,2205.39 1441.42,2201.02"/>
- </edge>
- <edge id=":1369844762_14" function="internal">
- <lane id=":1369844762_14_0" index="0" speed="4.86" length="7.19" shape="1432.91,2205.39 1435.59,2204.44 1437.92,2204.58 1439.63,2205.64"/>
- </edge>
- <edge id=":1369844762_18" function="internal">
- <lane id=":1369844762_18_0" index="0" speed="4.86" length="3.17" shape="1439.63,2205.64 1439.91,2205.81 1441.55,2208.13"/>
- </edge>
- <edge id=":1369844762_15" function="internal">
- <lane id=":1369844762_15_0" index="0" speed="8.33" length="2.41" shape="1432.91,2205.39 1434.39,2205.55 1435.14,2206.09"/>
- </edge>
- <edge id=":1369844762_19" function="internal">
- <lane id=":1369844762_19_0" index="0" speed="8.33" length="2.41" shape="1435.14,2206.09 1435.15,2207.01 1434.44,2208.31"/>
- </edge>
- <edge id=":1369844763_0" function="internal">
- <lane id=":1369844763_0_0" index="0" speed="1.39" length="4.82" shape="1429.46,2218.83 1429.28,2220.31 1428.73,2221.05 1427.80,2221.05 1426.51,2220.31"/>
- </edge>
- <edge id=":1369844770_0" function="internal">
- <lane id=":1369844770_0_0" index="0" speed="1.39" length="4.82" shape="1432.04,2196.92 1432.21,2195.44 1432.75,2194.69 1433.67,2194.68 1434.97,2195.40"/>
- </edge>
- <edge id=":1369844772_0" function="internal">
- <lane id=":1369844772_0_0" index="0" speed="4.86" length="5.02" shape="1424.78,2216.88 1423.99,2215.75 1423.03,2215.15 1421.90,2215.08 1420.60,2215.54"/>
- </edge>
- <edge id=":1369844772_1" function="internal">
- <lane id=":1369844772_1_0" index="0" speed="1.39" length="9.72" shape="1424.78,2216.88 1420.51,2208.15"/>
- </edge>
- <edge id=":1369844772_2" function="internal">
- <lane id=":1369844772_2_0" index="0" speed="4.86" length="10.47" shape="1424.78,2216.88 1423.87,2214.18 1424.05,2211.83 1425.31,2209.81 1427.65,2208.13"/>
- </edge>
- <edge id=":1369844772_3" function="internal">
- <lane id=":1369844772_3_0" index="0" speed="1.39" length="4.82" shape="1424.78,2216.88 1424.96,2215.40 1425.51,2214.66 1426.43,2214.66 1427.72,2215.39"/>
- </edge>
- <edge id=":1369844772_4" function="internal">
- <lane id=":1369844772_4_0" index="0" speed="4.86" length="5.20" shape="1429.18,2211.06 1428.01,2211.90 1427.37,2212.90 1427.28,2214.06 1427.72,2215.39"/>
- </edge>
- <edge id=":1369844772_5" function="internal">
- <lane id=":1369844772_5_0" index="0" speed="8.33" length="9.68" shape="1429.18,2211.06 1420.60,2215.54"/>
- </edge>
- <edge id=":1369844772_6" function="internal">
- <lane id=":1369844772_6_0" index="0" speed="4.86" length="7.16" shape="1429.18,2211.06 1426.45,2212.02 1424.09,2211.86 1422.50,2210.82"/>
- </edge>
- <edge id=":1369844772_16" function="internal">
- <lane id=":1369844772_16_0" index="0" speed="4.86" length="3.36" shape="1422.50,2210.82 1422.11,2210.57 1420.51,2208.15"/>
- </edge>
- <edge id=":1369844772_7" function="internal">
- <lane id=":1369844772_7_0" index="0" speed="8.33" length="2.41" shape="1429.18,2211.06 1427.70,2210.90 1426.96,2210.36"/>
- </edge>
- <edge id=":1369844772_17" function="internal">
- <lane id=":1369844772_17_0" index="0" speed="8.33" length="2.41" shape="1426.96,2210.36 1426.94,2209.44 1427.65,2208.13"/>
- </edge>
- <edge id=":1369844772_8" function="internal">
- <lane id=":1369844772_8_0" index="0" speed="4.86" length="5.05" shape="1423.50,2206.74 1424.26,2207.90 1425.21,2208.52 1426.34,2208.60 1427.65,2208.13"/>
- </edge>
- <edge id=":1369844772_9" function="internal">
- <lane id=":1369844772_9_0" index="0" speed="1.39" length="9.63" shape="1423.50,2206.74 1427.72,2215.39"/>
- </edge>
- <edge id=":1369844772_10" function="internal">
- <lane id=":1369844772_10_0" index="0" speed="4.86" length="10.47" shape="1423.50,2206.74 1424.35,2209.48 1424.16,2211.86 1422.91,2213.88 1420.60,2215.54"/>
- </edge>
- <edge id=":1369844772_11" function="internal">
- <lane id=":1369844772_11_0" index="0" speed="1.39" length="4.82" shape="1423.50,2206.74 1423.28,2208.21 1422.71,2208.94 1421.79,2208.92 1420.51,2208.15"/>
- </edge>
- <edge id=":1369844772_12" function="internal">
- <lane id=":1369844772_12_0" index="0" speed="4.86" length="5.30" shape="1419.08,2212.61 1420.23,2211.78 1420.86,2210.75 1420.95,2209.55 1420.51,2208.15"/>
- </edge>
- <edge id=":1369844772_13" function="internal">
- <lane id=":1369844772_13_0" index="0" speed="8.33" length="9.67" shape="1419.08,2212.61 1427.65,2208.13"/>
- </edge>
- <edge id=":1369844772_14" function="internal">
- <lane id=":1369844772_14_0" index="0" speed="4.86" length="7.14" shape="1419.08,2212.61 1421.77,2211.66 1424.11,2211.81 1425.76,2212.85"/>
- </edge>
- <edge id=":1369844772_18" function="internal">
- <lane id=":1369844772_18_0" index="0" speed="4.86" length="3.25" shape="1425.76,2212.85 1426.09,2213.06 1427.72,2215.39"/>
- </edge>
- <edge id=":1369844772_15" function="internal">
- <lane id=":1369844772_15_0" index="0" speed="8.33" length="2.41" shape="1419.08,2212.61 1420.56,2212.77 1421.30,2213.31"/>
- </edge>
- <edge id=":1369844772_19" function="internal">
- <lane id=":1369844772_19_0" index="0" speed="8.33" length="2.41" shape="1421.30,2213.31 1421.32,2214.23 1420.60,2215.54"/>
- </edge>
- <edge id=":1369844774_0" function="internal">
- <lane id=":1369844774_0_0" index="0" speed="1.39" length="4.82" shape="1418.68,2204.28 1418.90,2202.81 1419.47,2202.09 1420.39,2202.11 1421.67,2202.87"/>
- </edge>
- <edge id=":1369844780_0" function="internal">
- <lane id=":1369844780_0_0" index="0" speed="1.39" length="4.82" shape="1475.14,2281.40 1475.32,2279.93 1475.87,2279.19 1476.79,2279.19 1478.09,2279.92"/>
- </edge>
- <edge id=":1369844786_0" function="internal">
- <lane id=":1369844786_0_0" index="0" speed="1.39" length="4.82" shape="1482.68,2289.08 1482.50,2290.56 1481.94,2291.30 1481.02,2291.30 1479.73,2290.56"/>
- </edge>
- <edge id=":1373642446_0" function="internal">
- <lane id=":1373642446_0_0" index="0" speed="5.56" length="4.82" shape="1633.39,2613.97 1633.61,2615.44 1633.28,2616.31 1632.39,2616.56 1630.95,2616.20"/>
- </edge>
- <edge id=":13929737_0" function="internal">
- <lane id=":13929737_0_0" index="0" speed="22.22" length="8.99" shape="1292.16,1977.56 1289.00,1969.14"/>
- </edge>
- <edge id=":13929737_1" function="internal">
- <lane id=":13929737_1_0" index="0" speed="22.22" length="8.84" shape="1292.16,1977.56 1293.16,1968.78"/>
- </edge>
- <edge id=":13929737_2" function="internal">
- <lane id=":13929737_2_0" index="0" speed="22.22" length="7.39" shape="1288.25,1975.65 1289.53,1974.58 1290.08,1973.15 1289.90,1971.33 1289.00,1969.14"/>
- </edge>
- <edge id=":13929737_3" function="internal">
- <lane id=":13929737_3_0" index="0" speed="22.22" length="8.44" shape="1288.25,1975.65 1293.16,1968.78"/>
- </edge>
- <edge id=":13929747_0" function="internal">
- <lane id=":13929747_0_0" index="0" speed="25.00" length="3.61" shape="1348.72,1965.81 1347.55,1966.52 1346.80,1967.17 1346.46,1967.77 1346.53,1968.32"/>
- </edge>
- <edge id=":13929747_1" function="internal">
- <lane id=":13929747_1_0" index="0" speed="27.78" length="6.21" shape="1348.72,1965.81 1343.24,1968.74"/>
- </edge>
- <edge id=":13929747_2" function="internal">
- <lane id=":13929747_2_0" index="0" speed="27.78" length="2.41" shape="1348.72,1965.81 1347.24,1965.66 1346.49,1965.13"/>
- </edge>
- <edge id=":13929747_9" function="internal">
- <lane id=":13929747_9_0" index="0" speed="27.78" length="2.41" shape="1346.49,1965.13 1346.47,1964.20 1347.18,1962.90"/>
- </edge>
- <edge id=":13929747_3" function="internal">
- <lane id=":13929747_3_0" index="0" speed="25.00" length="3.94" shape="1345.18,1965.82 1345.01,1965.09 1345.29,1964.36 1346.02,1963.63 1347.18,1962.90"/>
- </edge>
- <edge id=":13929747_4" function="internal">
- <lane id=":13929747_4_0" index="0" speed="22.22" length="2.84" shape="1345.18,1965.82 1346.53,1968.32"/>
- </edge>
- <edge id=":13929747_5" function="internal">
- <lane id=":13929747_5_0" index="0" speed="25.00" length="3.89" shape="1345.18,1965.82 1345.34,1966.55 1345.08,1967.28 1344.38,1968.01 1343.24,1968.74"/>
- </edge>
- <edge id=":13929747_6" function="internal">
- <lane id=":13929747_6_0" index="0" speed="27.78" length="6.24" shape="1341.67,1965.84 1347.18,1962.90"/>
- </edge>
- <edge id=":13929747_7" function="internal">
- <lane id=":13929747_7_0" index="0" speed="25.00" length="4.97" shape="1341.67,1965.84 1343.00,1965.44 1344.25,1965.72 1345.43,1966.68 1345.87,1967.34"/>
- </edge>
- <edge id=":13929747_10" function="internal">
- <lane id=":13929747_10_0" index="0" speed="25.00" length="1.18" shape="1345.87,1967.34 1346.53,1968.32"/>
- </edge>
- <edge id=":13929747_8" function="internal">
- <lane id=":13929747_8_0" index="0" speed="27.78" length="2.41" shape="1341.67,1965.84 1343.15,1965.98 1343.91,1966.51"/>
- </edge>
- <edge id=":13929747_11" function="internal">
- <lane id=":13929747_11_0" index="0" speed="27.78" length="2.41" shape="1343.91,1966.51 1343.94,1967.43 1343.24,1968.74"/>
- </edge>
- <edge id=":13929752_0" function="internal">
- <lane id=":13929752_0_0" index="0" speed="27.78" length="4.82" shape="1582.18,1841.29 1582.14,1842.77 1581.66,1843.56 1580.74,1843.65 1579.38,1843.03"/>
- </edge>
- <edge id=":13929775_0" function="internal">
- <lane id=":13929775_0_0" index="0" speed="25.00" length="3.74" shape="943.51,1190.51 942.11,1191.33 941.13,1191.95 940.57,1192.36 940.42,1192.58"/>
- </edge>
- <edge id=":13929775_1" function="internal">
- <lane id=":13929775_1_0" index="0" speed="27.78" length="6.88" shape="943.51,1190.51 937.53,1193.92"/>
- </edge>
- <edge id=":13929775_2" function="internal">
- <lane id=":13929775_2_0" index="0" speed="27.78" length="6.88" shape="941.88,1187.65 935.90,1191.06"/>
- </edge>
- <edge id=":13929775_3" function="internal">
- <lane id=":13929775_3_0" index="0" speed="27.78" length="2.41" shape="941.88,1187.65 940.39,1187.54 939.62,1187.03"/>
- </edge>
- <edge id=":13929775_11" function="internal">
- <lane id=":13929775_11_0" index="0" speed="27.78" length="2.41" shape="939.62,1187.03 939.57,1186.11 940.24,1184.78"/>
- </edge>
- <edge id=":13929775_4" function="internal">
- <lane id=":13929775_4_0" index="0" speed="25.00" length="3.18" shape="935.80,1183.39 935.99,1183.34 936.52,1183.07 937.40,1182.60 938.61,1181.91"/>
- </edge>
- <edge id=":13929775_5" function="internal">
- <lane id=":13929775_5_0" index="0" speed="22.22" length="10.29" shape="935.80,1183.39 937.16,1186.08 938.13,1187.98 939.08,1189.88 940.42,1192.58"/>
- </edge>
- <edge id=":13929775_6" function="internal">
- <lane id=":13929775_6_0" index="0" speed="25.00" length="0.11" shape="935.80,1183.39 935.84,1183.49"/>
- </edge>
- <edge id=":13929775_12" function="internal">
- <lane id=":13929775_12_0" index="0" speed="25.00" length="8.32" shape="935.84,1183.49 936.95,1186.11 937.35,1188.30 937.00,1189.95 935.90,1191.06"/>
- </edge>
- <edge id=":13929775_7" function="internal">
- <lane id=":13929775_7_0" index="0" speed="27.78" length="6.88" shape="932.63,1185.32 938.61,1181.91"/>
- </edge>
- <edge id=":13929775_8" function="internal">
- <lane id=":13929775_8_0" index="0" speed="27.78" length="6.88" shape="934.26,1188.19 940.24,1184.78"/>
- </edge>
- <edge id=":13929775_9" function="internal">
- <lane id=":13929775_9_0" index="0" speed="25.00" length="4.88" shape="934.26,1188.19 935.81,1187.80 937.35,1188.40 938.49,1189.58"/>
- </edge>
- <edge id=":13929775_13" function="internal">
- <lane id=":13929775_13_0" index="0" speed="25.00" length="3.58" shape="938.49,1189.58 938.89,1190.00 940.42,1192.58"/>
- </edge>
- <edge id=":13929775_10" function="internal">
- <lane id=":13929775_10_0" index="0" speed="27.78" length="2.41" shape="934.26,1188.19 935.75,1188.29 936.51,1188.81"/>
- </edge>
- <edge id=":13929775_14" function="internal">
- <lane id=":13929775_14_0" index="0" speed="27.78" length="2.41" shape="936.51,1188.81 936.56,1189.73 935.90,1191.06"/>
- </edge>
- <edge id=":13990620_0" function="internal">
- <lane id=":13990620_0_0" index="0" speed="27.78" length="4.82" shape="1764.19,717.95 1765.67,717.78 1766.52,718.15 1766.74,719.04 1766.33,720.47"/>
- </edge>
- <edge id=":1431113444_0" function="internal">
- <lane id=":1431113444_0_0" index="0" speed="8.33" length="4.82" shape="1500.24,2170.70 1501.72,2170.86 1502.47,2171.41 1502.48,2172.33 1501.76,2173.63"/>
- </edge>
- <edge id=":1457695393_0" function="internal">
- <lane id=":1457695393_0_0" index="0" speed="22.22" length="6.27" shape="689.48,1877.84 689.03,1876.17 688.18,1874.98 686.93,1874.28 685.29,1874.06"/>
- </edge>
- <edge id=":1457695393_1" function="internal">
- <lane id=":1457695393_1_0" index="0" speed="22.22" length="10.46" shape="689.48,1877.84 689.08,1874.82 688.79,1872.65 688.52,1870.48 688.15,1867.46"/>
- </edge>
- <edge id=":1457695393_2" function="internal">
- <lane id=":1457695393_2_0" index="0" speed="22.22" length="7.25" shape="689.48,1877.84 689.51,1874.71 690.57,1872.50 691.99,1871.61"/>
- </edge>
- <edge id=":1457695393_16" function="internal">
- <lane id=":1457695393_16_0" index="0" speed="22.22" length="3.91" shape="691.99,1871.61 692.65,1871.20 695.76,1870.83"/>
- </edge>
- <edge id=":1457695393_3" function="internal">
- <lane id=":1457695393_3_0" index="0" speed="22.22" length="2.41" shape="689.48,1877.84 690.14,1876.50 690.90,1875.98"/>
- </edge>
- <edge id=":1457695393_17" function="internal">
- <lane id=":1457695393_17_0" index="0" speed="22.22" length="2.41" shape="690.90,1875.98 691.77,1876.28 692.76,1877.39"/>
- </edge>
- <edge id=":1457695393_4" function="internal">
- <lane id=":1457695393_4_0" index="0" speed="22.22" length="5.20" shape="695.68,1874.13 694.23,1874.30 693.26,1874.91 692.77,1875.94 692.76,1877.39"/>
- </edge>
- <edge id=":1457695393_5" function="internal">
- <lane id=":1457695393_5_0" index="0" speed="22.22" length="10.39" shape="695.68,1874.13 692.65,1874.06 690.49,1874.03 688.32,1874.03 685.29,1874.06"/>
- </edge>
- <edge id=":1457695393_6" function="internal">
- <lane id=":1457695393_6_0" index="0" speed="22.22" length="11.14" shape="695.68,1874.13 692.68,1873.65 690.43,1872.38 688.92,1870.32 688.15,1867.46"/>
- </edge>
- <edge id=":1457695393_7" function="internal">
- <lane id=":1457695393_7_0" index="0" speed="22.22" length="4.82" shape="695.68,1874.13 694.46,1873.28 694.07,1872.44 694.50,1871.63 695.76,1870.83"/>
- </edge>
- <edge id=":1457695393_8" function="internal">
- <lane id=":1457695393_8_0" index="0" speed="22.22" length="6.36" shape="691.42,1867.06 691.86,1868.67 692.73,1869.84 694.03,1870.56 695.76,1870.83"/>
- </edge>
- <edge id=":1457695393_9" function="internal">
- <lane id=":1457695393_9_0" index="0" speed="22.22" length="10.42" shape="691.42,1867.06 691.79,1870.07 692.07,1872.23 692.35,1874.39 692.76,1877.39"/>
- </edge>
- <edge id=":1457695393_10" function="internal">
- <lane id=":1457695393_10_0" index="0" speed="22.22" length="7.18" shape="691.42,1867.06 691.36,1870.09 690.31,1872.27 688.87,1873.22"/>
- </edge>
- <edge id=":1457695393_18" function="internal">
- <lane id=":1457695393_18_0" index="0" speed="22.22" length="3.72" shape="688.87,1873.22 688.29,1873.59 685.29,1874.06"/>
- </edge>
- <edge id=":1457695393_11" function="internal">
- <lane id=":1457695393_11_0" index="0" speed="22.22" length="2.41" shape="691.42,1867.06 690.75,1868.39 689.99,1868.90"/>
- </edge>
- <edge id=":1457695393_19" function="internal">
- <lane id=":1457695393_19_0" index="0" speed="22.22" length="2.41" shape="689.99,1868.90 689.12,1868.59 688.15,1867.46"/>
- </edge>
- <edge id=":1457695393_12" function="internal">
- <lane id=":1457695393_12_0" index="0" speed="22.22" length="5.14" shape="685.26,1870.76 686.67,1870.54 687.62,1869.92 688.12,1868.89 688.15,1867.46"/>
- </edge>
- <edge id=":1457695393_13" function="internal">
- <lane id=":1457695393_13_0" index="0" speed="22.22" length="10.50" shape="685.26,1870.76 688.30,1870.73 690.51,1870.73 692.71,1870.76 695.76,1870.83"/>
- </edge>
- <edge id=":1457695393_14" function="internal">
- <lane id=":1457695393_14_0" index="0" speed="22.22" length="11.13" shape="685.26,1870.76 688.20,1871.15 690.43,1872.38 691.95,1874.46 692.76,1877.39"/>
- </edge>
- <edge id=":1457695393_15" function="internal">
- <lane id=":1457695393_15_0" index="0" speed="22.22" length="4.82" shape="685.26,1870.76 686.50,1871.57 686.93,1872.39 686.52,1873.22 685.29,1874.06"/>
- </edge>
- <edge id=":1457699220_0" function="internal">
- <lane id=":1457699220_0_0" index="0" speed="5.56" length="9.50" shape="823.96,1289.81 819.48,1281.43"/>
- </edge>
- <edge id=":1457699220_1" function="internal">
- <lane id=":1457699220_1_0" index="0" speed="5.56" length="10.33" shape="823.96,1289.81 823.01,1287.17 823.13,1284.84 824.33,1282.82 826.60,1281.11"/>
- </edge>
- <edge id=":1457699220_2" function="internal">
- <lane id=":1457699220_2_0" index="0" speed="5.56" length="4.82" shape="823.96,1289.81 824.11,1288.33 824.64,1287.57 825.56,1287.55 826.87,1288.25"/>
- </edge>
- <edge id=":1457699220_3" function="internal">
- <lane id=":1457699220_3_0" index="0" speed="5.56" length="5.06" shape="828.20,1284.00 827.07,1284.84 826.48,1285.83 826.41,1286.97 826.87,1288.25"/>
- </edge>
- <edge id=":1457699220_4" function="internal">
- <lane id=":1457699220_4_0" index="0" speed="5.56" length="10.40" shape="828.20,1284.00 825.53,1285.02 823.19,1284.93 821.17,1283.73 819.48,1281.43"/>
- </edge>
- <edge id=":1457699220_5" function="internal">
- <lane id=":1457699220_5_0" index="0" speed="5.56" length="4.82" shape="828.20,1284.00 826.72,1283.88 825.95,1283.36 825.92,1282.43 826.60,1281.11"/>
- </edge>
- <edge id=":1457699220_6" function="internal">
- <lane id=":1457699220_6_0" index="0" speed="5.56" length="5.02" shape="822.39,1279.87 823.21,1280.98 824.18,1281.56 825.31,1281.60 826.60,1281.11"/>
- </edge>
- <edge id=":1457699220_7" function="internal">
- <lane id=":1457699220_7_0" index="0" speed="5.56" length="9.50" shape="822.39,1279.87 826.87,1288.25"/>
- </edge>
- <edge id=":1457699220_8" function="internal">
- <lane id=":1457699220_8_0" index="0" speed="5.56" length="4.82" shape="822.39,1279.87 822.25,1281.35 821.72,1282.10 820.79,1282.13 819.48,1281.43"/>
- </edge>
- <edge id=":1457699222_0" function="internal">
- <lane id=":1457699222_0_0" index="0" speed="5.56" length="5.08" shape="900.73,1304.28 899.93,1303.17 898.95,1302.58 897.79,1302.53 896.46,1303.00"/>
- </edge>
- <edge id=":1457699222_1" function="internal">
- <lane id=":1457699222_1_0" index="0" speed="5.56" length="9.55" shape="900.73,1304.28 896.20,1295.87"/>
- </edge>
- <edge id=":1457699222_2" function="internal">
- <lane id=":1457699222_2_0" index="0" speed="5.56" length="4.82" shape="900.73,1304.28 900.89,1302.80 901.44,1302.06 902.36,1302.05 903.66,1302.77"/>
- </edge>
- <edge id=":1457699222_3" function="internal">
- <lane id=":1457699222_3_0" index="0" speed="5.56" length="9.66" shape="899.08,1294.26 903.66,1302.77"/>
- </edge>
- <edge id=":1457699222_4" function="internal">
- <lane id=":1457699222_4_0" index="0" speed="5.56" length="10.48" shape="899.08,1294.26 900.11,1296.95 900.03,1299.30 898.81,1301.32 896.46,1303.00"/>
- </edge>
- <edge id=":1457699222_5" function="internal">
- <lane id=":1457699222_5_0" index="0" speed="5.56" length="4.82" shape="899.08,1294.26 898.96,1295.74 898.44,1296.50 897.52,1296.55 896.20,1295.87"/>
- </edge>
- <edge id=":1457699222_6" function="internal">
- <lane id=":1457699222_6_0" index="0" speed="5.56" length="5.04" shape="894.94,1300.07 896.07,1299.26 896.65,1298.30 896.70,1297.16 896.20,1295.87"/>
- </edge>
- <edge id=":1457699222_7" function="internal">
- <lane id=":1457699222_7_0" index="0" speed="5.56" length="10.41" shape="894.94,1300.07 897.65,1299.12 900.01,1299.25 902.01,1300.46 903.66,1302.77"/>
- </edge>
- <edge id=":1457699222_8" function="internal">
- <lane id=":1457699222_8_0" index="0" speed="5.56" length="4.82" shape="894.94,1300.07 896.42,1300.23 897.17,1300.78 897.18,1301.70 896.46,1303.00"/>
- </edge>
- <edge id=":1457699223_0" function="internal">
- <lane id=":1457699223_0_0" index="0" speed="5.56" length="9.49" shape="908.45,1319.13 904.06,1310.72"/>
- </edge>
- <edge id=":1457699223_1" function="internal">
- <lane id=":1457699223_1_0" index="0" speed="5.56" length="5.00" shape="908.45,1319.13 907.65,1318.02 906.68,1317.44 905.55,1317.37 904.26,1317.83"/>
- </edge>
- <edge id=":1457699223_2" function="internal">
- <lane id=":1457699223_2_0" index="0" speed="5.56" length="4.82" shape="908.45,1319.13 908.60,1317.65 909.14,1316.90 910.06,1316.88 911.37,1317.58"/>
- </edge>
- <edge id=":1457699223_3" function="internal">
- <lane id=":1457699223_3_0" index="0" speed="5.56" length="10.30" shape="906.99,1309.21 907.92,1311.87 907.77,1314.20 906.55,1316.18 904.26,1317.83"/>
- </edge>
- <edge id=":1457699223_4" function="internal">
- <lane id=":1457699223_4_0" index="0" speed="5.56" length="9.45" shape="906.99,1309.21 911.37,1317.58"/>
- </edge>
- <edge id=":1457699223_5" function="internal">
- <lane id=":1457699223_5_0" index="0" speed="5.56" length="4.82" shape="906.99,1309.21 906.82,1310.68 906.28,1311.43 905.36,1311.44 904.06,1310.72"/>
- </edge>
- <edge id=":1457699223_6" function="internal">
- <lane id=":1457699223_6_0" index="0" speed="5.56" length="4.99" shape="902.73,1314.90 903.85,1314.10 904.44,1313.14 904.51,1312.01 904.06,1310.72"/>
- </edge>
- <edge id=":1457699223_7" function="internal">
- <lane id=":1457699223_7_0" index="0" speed="5.56" length="10.30" shape="902.73,1314.90 905.39,1313.96 907.72,1314.10 909.71,1315.30 911.37,1317.58"/>
- </edge>
- <edge id=":1457699223_8" function="internal">
- <lane id=":1457699223_8_0" index="0" speed="5.56" length="4.82" shape="902.73,1314.90 904.21,1315.06 904.96,1315.60 904.98,1316.52 904.26,1317.83"/>
- </edge>
- <edge id=":1474873133_0" function="internal">
- <lane id=":1474873133_0_0" index="0" speed="8.33" length="0.25" shape="864.19,1731.47 864.09,1731.23"/>
- </edge>
- <edge id=":1474873133_1" function="internal">
- <lane id=":1474873133_1_0" index="0" speed="8.33" length="2.41" shape="864.19,1731.47 864.58,1730.03 865.23,1729.38"/>
- </edge>
- <edge id=":1474873133_4" function="internal">
- <lane id=":1474873133_4_0" index="0" speed="8.33" length="2.41" shape="865.23,1729.38 866.15,1729.51 867.32,1730.42"/>
- </edge>
- <edge id=":1474873133_2" function="internal">
- <lane id=":1474873133_2_0" index="0" speed="8.33" length="0.56" shape="867.12,1729.90 867.14,1729.93 867.18,1730.03 867.24,1730.19 867.32,1730.42"/>
- </edge>
- <edge id=":1474873133_3" function="internal">
- <lane id=":1474873133_3_0" index="0" speed="8.33" length="2.42" shape="867.12,1729.90 866.86,1731.37 866.27,1732.08"/>
- </edge>
- <edge id=":1474873133_5" function="internal">
- <lane id=":1474873133_5_0" index="0" speed="8.33" length="2.42" shape="866.27,1732.08 865.35,1732.04 864.09,1731.23"/>
- </edge>
- <edge id=":1474873137_0" function="internal">
- <lane id=":1474873137_0_0" index="0" speed="8.33" length="4.82" shape="873.73,1742.60 873.88,1744.08 873.51,1744.92 872.61,1745.13 871.19,1744.71"/>
- </edge>
- <edge id=":1474873139_0" function="internal">
- <lane id=":1474873139_0_0" index="0" speed="8.33" length="4.82" shape="799.16,1755.48 797.68,1755.30 796.94,1754.75 796.93,1753.83 797.66,1752.53"/>
- </edge>
- <edge id=":1479400627_0" function="internal">
- <lane id=":1479400627_0_0" index="0" speed="25.00" length="1.98" shape="768.73,2258.42 769.93,2259.99"/>
- </edge>
- <edge id=":1479400627_1" function="internal">
- <lane id=":1479400627_1_0" index="0" speed="22.22" length="3.67" shape="767.76,2261.58 770.27,2258.90"/>
- </edge>
- <edge id=":1479400627_2" function="internal">
- <lane id=":1479400627_2_0" index="0" speed="27.78" length="3.16" shape="766.77,2260.07 769.93,2259.99"/>
- </edge>
- <edge id=":1479400627_3" function="internal">
- <lane id=":1479400627_3_0" index="0" speed="25.00" length="3.21" shape="766.77,2260.07 769.30,2262.05"/>
- </edge>
- <edge id=":1482088973_0" function="internal">
- <lane id=":1482088973_0_0" index="0" speed="15.28" length="3.12" shape="722.71,1769.24 722.09,1768.03 721.64,1767.16 721.37,1766.65 721.27,1766.48"/>
- </edge>
- <edge id=":1482088973_1" function="internal">
- <lane id=":1482088973_1_0" index="0" speed="8.33" length="4.82" shape="722.71,1769.24 722.88,1767.77 723.43,1767.02 724.35,1767.01 725.65,1767.74"/>
- </edge>
- <edge id=":1482088973_2" function="internal">
- <lane id=":1482088973_2_0" index="0" speed="15.28" length="5.05" shape="726.93,1763.49 725.83,1764.29 725.25,1765.27 725.19,1766.42 725.65,1767.74"/>
- </edge>
- <edge id=":1482088973_3" function="internal">
- <lane id=":1482088973_3_0" index="0" speed="22.22" length="6.41" shape="726.93,1763.49 721.27,1766.48"/>
- </edge>
- <edge id=":1482088987_0" function="internal">
- <lane id=":1482088987_0_0" index="0" speed="22.22" length="4.75" shape="767.93,1843.36 763.70,1845.53"/>
- </edge>
- <edge id=":1482088987_1" function="internal">
- <lane id=":1482088987_1_0" index="0" speed="15.28" length="8.43" shape="767.93,1843.36 765.26,1844.28 762.93,1844.12 760.95,1842.89 760.40,1842.13"/>
- </edge>
- <edge id=":1482088987_9" function="internal">
- <lane id=":1482088987_9_0" index="0" speed="15.28" length="1.89" shape="760.40,1842.13 759.31,1840.58"/>
- </edge>
- <edge id=":1482088987_2" function="internal">
- <lane id=":1482088987_2_0" index="0" speed="22.22" length="2.41" shape="767.93,1843.36 766.45,1843.19 765.71,1842.64"/>
- </edge>
- <edge id=":1482088987_10" function="internal">
- <lane id=":1482088987_10_0" index="0" speed="22.22" length="2.41" shape="765.71,1842.64 765.70,1841.72 766.42,1840.42"/>
- </edge>
- <edge id=":1482088987_3" function="internal">
- <lane id=":1482088987_3_0" index="0" speed="15.28" length="5.00" shape="762.25,1839.08 763.04,1840.20 764.00,1840.79 765.13,1840.87 766.42,1840.42"/>
- </edge>
- <edge id=":1482088987_4" function="internal">
- <lane id=":1482088987_4_0" index="0" speed="15.28" length="6.96" shape="762.25,1839.08 763.44,1841.62 764.07,1843.54 764.16,1844.84 763.70,1845.53"/>
- </edge>
- <edge id=":1482088987_5" function="internal">
- <lane id=":1482088987_5_0" index="0" speed="8.33" length="4.82" shape="762.25,1839.08 762.08,1840.56 761.54,1841.30 760.61,1841.31 759.31,1840.58"/>
- </edge>
- <edge id=":1482088987_6" function="internal">
- <lane id=":1482088987_6_0" index="0" speed="15.28" length="3.90" shape="762.20,1842.59 761.47,1842.75 760.74,1842.46 760.02,1841.74 759.31,1840.58"/>
- </edge>
- <edge id=":1482088987_7" function="internal">
- <lane id=":1482088987_7_0" index="0" speed="22.22" length="4.75" shape="762.20,1842.59 766.42,1840.42"/>
- </edge>
- <edge id=":1482088987_8" function="internal">
- <lane id=":1482088987_8_0" index="0" speed="22.22" length="2.41" shape="762.20,1842.59 763.67,1842.76 764.42,1843.30"/>
- </edge>
- <edge id=":1482088987_11" function="internal">
- <lane id=":1482088987_11_0" index="0" speed="22.22" length="2.41" shape="764.42,1843.30 764.43,1844.23 763.70,1845.53"/>
- </edge>
- <edge id=":1545661417_0" function="internal">
- <lane id=":1545661417_0_0" index="0" speed="13.89" length="7.28" shape="1269.80,2214.56 1271.84,2215.34 1273.69,2215.68 1275.35,2215.60 1276.81,2215.08"/>
- </edge>
- <edge id=":1545661417_1" function="internal">
- <lane id=":1545661417_1_0" index="0" speed="9.72" length="7.43" shape="1269.80,2214.56 1275.54,2219.28"/>
- </edge>
- <edge id=":1545661417_2" function="internal">
- <lane id=":1545661417_2_0" index="0" speed="22.22" length="7.82" shape="1269.91,2218.76 1276.81,2215.08"/>
- </edge>
- <edge id=":1545661417_3" function="internal">
- <lane id=":1545661417_3_0" index="0" speed="18.06" length="6.36" shape="1269.91,2218.76 1271.83,2217.96 1273.40,2217.78 1274.64,2218.22 1275.54,2219.28"/>
- </edge>
- <edge id=":1545672785_0" function="internal">
- <lane id=":1545672785_0_0" index="0" speed="8.33" length="4.82" shape="1246.62,2044.69 1248.10,2044.85 1248.84,2045.39 1248.86,2046.31 1248.15,2047.62"/>
- </edge>
- <edge id=":1545672787_0" function="internal">
- <lane id=":1545672787_0_0" index="0" speed="13.89" length="11.22" shape="1194.46,2063.51 1191.86,2065.23 1190.22,2067.01 1188.82,2069.08 1186.94,2071.66"/>
- </edge>
- <edge id=":1545672787_1" function="internal">
- <lane id=":1545672787_1_0" index="0" speed="22.22" length="11.21" shape="1194.46,2063.51 1191.67,2065.00 1189.51,2066.14 1187.35,2067.29 1184.57,2068.78"/>
- </edge>
- <edge id=":1545672788_0" function="internal">
- <lane id=":1545672788_0_0" index="0" speed="8.33" length="4.82" shape="1266.91,2070.30 1268.39,2070.44 1269.15,2070.98 1269.17,2071.90 1268.46,2073.21"/>
- </edge>
- <edge id=":1545672797_0" function="internal">
- <lane id=":1545672797_0_0" index="0" speed="8.33" length="13.71" shape="1191.08,2079.41 1189.74,2081.99 1189.09,2085.06 1189.12,2088.61 1189.83,2092.66"/>
- </edge>
- <edge id=":1545672797_1" function="internal">
- <lane id=":1545672797_1_0" index="0" speed="8.33" length="14.04" shape="1191.08,2079.41 1188.89,2082.26 1186.66,2084.85 1184.36,2087.38 1181.94,2090.05"/>
- </edge>
- <edge id=":1545672797_2" function="internal">
- <lane id=":1545672797_2_0" index="0" speed="8.33" length="4.82" shape="1191.08,2079.41 1189.69,2079.93 1188.78,2079.78 1188.35,2078.97 1188.40,2077.48"/>
- </edge>
- <edge id=":1545672797_3" function="internal">
- <lane id=":1545672797_3_0" index="0" speed="8.33" length="13.70" shape="1179.47,2087.86 1181.85,2085.23 1184.08,2082.79 1186.24,2080.29 1188.40,2077.48"/>
- </edge>
- <edge id=":1545672797_4" function="internal">
- <lane id=":1545672797_4_0" index="0" speed="8.33" length="16.05" shape="1179.47,2087.86 1182.81,2085.12 1185.65,2085.01 1187.99,2087.52 1189.83,2092.66"/>
- </edge>
- <edge id=":1545672797_5" function="internal">
- <lane id=":1545672797_5_0" index="0" speed="8.33" length="4.82" shape="1179.47,2087.86 1180.91,2087.48 1181.80,2087.72 1182.14,2088.58 1181.94,2090.05"/>
- </edge>
- <edge id=":1545672797_6" function="internal">
- <lane id=":1545672797_6_0" index="0" speed="8.33" length="6.57" shape="1186.24,2091.84 1185.49,2089.79 1184.52,2088.80 1183.34,2088.89 1181.94,2090.05"/>
- </edge>
- <edge id=":1545672797_7" function="internal">
- <lane id=":1545672797_7_0" index="0" speed="8.33" length="14.99" shape="1186.24,2091.84 1185.59,2087.78 1185.73,2084.04 1186.67,2080.60 1188.40,2077.48"/>
- </edge>
- <edge id=":1545672797_8" function="internal">
- <lane id=":1545672797_8_0" index="0" speed="8.33" length="5.38" shape="1186.24,2091.84 1187.45,2090.70 1188.45,2090.45 1189.24,2091.11 1189.83,2092.66"/>
- </edge>
- <edge id=":1545672804_0" function="internal">
- <lane id=":1545672804_0_0" index="0" speed="8.33" length="5.06" shape="1245.63,2088.95 1244.86,2087.78 1243.91,2087.17 1242.78,2087.09 1241.47,2087.57"/>
- </edge>
- <edge id=":1545672804_1" function="internal">
- <lane id=":1545672804_1_0" index="0" speed="8.33" length="10.34" shape="1245.63,2088.95 1244.76,2086.20 1244.91,2083.83 1246.10,2081.82 1248.31,2080.19"/>
- </edge>
- <edge id=":1545672804_2" function="internal">
- <lane id=":1545672804_2_0" index="0" speed="8.33" length="4.82" shape="1245.63,2088.95 1245.85,2087.47 1246.41,2086.75 1247.34,2086.77 1248.61,2087.53"/>
- </edge>
- <edge id=":1545672804_3" function="internal">
- <lane id=":1545672804_3_0" index="0" speed="8.33" length="5.19" shape="1249.86,2083.10 1248.78,2083.91 1248.21,2084.92 1248.16,2086.13 1248.61,2087.53"/>
- </edge>
- <edge id=":1545672804_4" function="internal">
- <lane id=":1545672804_4_0" index="0" speed="8.33" length="9.51" shape="1249.86,2083.10 1241.47,2087.57"/>
- </edge>
- <edge id=":1545672804_5" function="internal">
- <lane id=":1545672804_5_0" index="0" speed="8.33" length="4.82" shape="1249.86,2083.10 1248.38,2082.96 1247.63,2082.42 1247.61,2081.50 1248.31,2080.19"/>
- </edge>
- <edge id=":1545672804_6" function="internal">
- <lane id=":1545672804_6_0" index="0" speed="8.33" length="9.51" shape="1239.92,2084.65 1248.31,2080.19"/>
- </edge>
- <edge id=":1545672804_7" function="internal">
- <lane id=":1545672804_7_0" index="0" speed="8.33" length="10.56" shape="1239.92,2084.65 1242.66,2083.67 1245.02,2083.82 1247.00,2085.11 1248.61,2087.53"/>
- </edge>
- <edge id=":1545672804_8" function="internal">
- <lane id=":1545672804_8_0" index="0" speed="8.33" length="4.82" shape="1239.92,2084.65 1241.40,2084.80 1242.15,2085.34 1242.17,2086.26 1241.47,2087.57"/>
- </edge>
- <edge id=":1545672806_0" function="internal">
- <lane id=":1545672806_0_0" index="0" speed="8.33" length="4.11" shape="1172.49,2090.85 1169.36,2088.20"/>
- </edge>
- <edge id=":1545672806_1" function="internal">
- <lane id=":1545672806_1_0" index="0" speed="6.94" length="3.49" shape="1172.49,2090.85 1172.06,2090.72 1171.45,2090.96 1170.66,2091.58 1169.69,2092.57"/>
- </edge>
- <edge id=":1545672806_2" function="internal">
- <lane id=":1545672806_2_0" index="0" speed="8.33" length="4.82" shape="1172.49,2090.85 1172.15,2089.41 1172.41,2088.52 1173.28,2088.20 1174.75,2088.45"/>
- </edge>
- <edge id=":1545672806_3" function="internal">
- <lane id=":1545672806_3_0" index="0" speed="6.94" length="3.60" shape="1175.90,2085.28 1175.09,2086.38 1174.63,2087.28 1174.52,2087.97 1174.75,2088.45"/>
- </edge>
- <edge id=":1545672806_4" function="internal">
- <lane id=":1545672806_4_0" index="0" speed="6.94" length="7.94" shape="1175.90,2085.28 1173.98,2087.33 1172.24,2088.50 1170.70,2088.79 1169.36,2088.20"/>
- </edge>
- <edge id=":1545672806_5" function="internal">
- <lane id=":1545672806_5_0" index="0" speed="5.56" length="9.58" shape="1175.90,2085.28 1169.69,2092.57"/>
- </edge>
- <edge id=":1545672806_6" function="internal">
- <lane id=":1545672806_6_0" index="0" speed="6.94" length="7.96" shape="1171.45,2085.65 1172.30,2086.87 1172.29,2088.43 1171.42,2090.33 1169.69,2092.57"/>
- </edge>
- <edge id=":1545672806_7" function="internal">
- <lane id=":1545672806_7_0" index="0" speed="8.33" length="4.32" shape="1171.45,2085.65 1174.75,2088.45"/>
- </edge>
- <edge id=":1545672806_8" function="internal">
- <lane id=":1545672806_8_0" index="0" speed="8.33" length="4.82" shape="1171.45,2085.65 1171.88,2087.07 1171.68,2087.97 1170.84,2088.35 1169.36,2088.20"/>
- </edge>
- <edge id=":1545672819_0" function="internal">
- <lane id=":1545672819_0_0" index="0" speed="8.33" length="6.01" shape="1177.74,2097.14 1174.09,2092.36"/>
- </edge>
- <edge id=":1545672819_1" function="internal">
- <lane id=":1545672819_1_0" index="0" speed="8.33" length="9.70" shape="1177.74,2097.14 1176.84,2094.95 1176.77,2092.73 1177.53,2090.50 1179.13,2088.25"/>
- </edge>
- <edge id=":1545672819_2" function="internal">
- <lane id=":1545672819_2_0" index="0" speed="8.33" length="4.88" shape="1177.74,2097.14 1177.79,2095.63 1178.29,2094.83 1179.22,2094.75 1180.59,2095.38"/>
- </edge>
- <edge id=":1545672819_3" function="internal">
- <lane id=":1545672819_3_0" index="0" speed="8.33" length="5.81" shape="1181.60,2090.44 1180.32,2092.12 1179.72,2093.50 1179.81,2094.59 1180.59,2095.38"/>
- </edge>
- <edge id=":1545672819_4" function="internal">
- <lane id=":1545672819_4_0" index="0" speed="8.33" length="8.78" shape="1181.60,2090.44 1179.50,2092.39 1177.55,2093.36 1175.75,2093.35 1174.09,2092.36"/>
- </edge>
- <edge id=":1545672819_5" function="internal">
- <lane id=":1545672819_5_0" index="0" speed="8.33" length="4.82" shape="1181.60,2090.44 1180.16,2090.81 1179.27,2090.58 1178.92,2089.72 1179.13,2088.25"/>
- </edge>
- <edge id=":1545672819_6" function="internal">
- <lane id=":1545672819_6_0" index="0" speed="8.33" length="3.48" shape="1176.35,2089.95 1176.78,2090.09 1177.39,2089.85 1178.17,2089.24 1179.13,2088.25"/>
- </edge>
- <edge id=":1545672819_7" function="internal">
- <lane id=":1545672819_7_0" index="0" speed="8.33" length="6.88" shape="1176.35,2089.95 1180.59,2095.38"/>
- </edge>
- <edge id=":1545672819_8" function="internal">
- <lane id=":1545672819_8_0" index="0" speed="8.33" length="4.82" shape="1176.35,2089.95 1176.69,2091.40 1176.42,2092.28 1175.56,2092.60 1174.09,2092.36"/>
- </edge>
- <edge id=":1545672824_0" function="internal">
- <lane id=":1545672824_0_0" index="0" speed="8.33" length="8.35" shape="1254.61,2096.85 1246.53,2098.97"/>
- </edge>
- <edge id=":1545672824_1" function="internal">
- <lane id=":1545672824_1_0" index="0" speed="8.33" length="9.81" shape="1254.61,2096.85 1252.27,2096.74 1250.22,2095.87 1248.46,2094.23 1246.99,2091.81"/>
- </edge>
- <edge id=":1545672824_2" function="internal">
- <lane id=":1545672824_2_0" index="0" speed="8.33" length="4.82" shape="1254.61,2096.85 1253.29,2096.17 1252.79,2095.39 1253.10,2094.53 1254.24,2093.57"/>
- </edge>
- <edge id=":1545672824_3" function="internal">
- <lane id=":1545672824_3_0" index="0" speed="8.33" length="5.69" shape="1249.97,2090.40 1250.85,2091.90 1251.86,2092.92 1252.99,2093.48 1254.24,2093.57"/>
- </edge>
- <edge id=":1545672824_4" function="internal">
- <lane id=":1545672824_4_0" index="0" speed="8.33" length="10.72" shape="1249.97,2090.40 1250.85,2093.24 1250.57,2095.61 1249.13,2097.52 1246.53,2098.97"/>
- </edge>
- <edge id=":1545672824_5" function="internal">
- <lane id=":1545672824_5_0" index="0" speed="8.33" length="4.82" shape="1249.97,2090.40 1249.75,2091.87 1249.19,2092.60 1248.26,2092.58 1246.99,2091.81"/>
- </edge>
- <edge id=":1545672824_6" function="internal">
- <lane id=":1545672824_6_0" index="0" speed="8.33" length="5.10" shape="1245.35,2095.88 1246.59,2095.20 1247.27,2094.29 1247.40,2093.16 1246.99,2091.81"/>
- </edge>
- <edge id=":1545672824_7" function="internal">
- <lane id=":1545672824_7_0" index="0" speed="8.33" length="9.18" shape="1245.35,2095.88 1254.24,2093.57"/>
- </edge>
- <edge id=":1545672824_8" function="internal">
- <lane id=":1545672824_8_0" index="0" speed="8.33" length="4.82" shape="1245.35,2095.88 1246.80,2096.21 1247.48,2096.84 1247.39,2097.75 1246.53,2098.97"/>
- </edge>
- <edge id=":1545672843_0" function="internal">
- <lane id=":1545672843_0_0" index="0" speed="8.33" length="7.96" shape="1191.22,2102.41 1183.58,2100.17"/>
- </edge>
- <edge id=":1545672843_1" function="internal">
- <lane id=":1545672843_1_0" index="0" speed="8.33" length="10.49" shape="1191.22,2102.41 1189.59,2099.82 1188.39,2097.95 1187.44,2095.99 1186.56,2093.09"/>
- </edge>
- <edge id=":1545672843_2" function="internal">
- <lane id=":1545672843_2_0" index="0" speed="8.33" length="4.83" shape="1191.22,2102.41 1191.16,2100.92 1191.59,2100.10 1192.51,2099.95 1193.90,2100.47"/>
- </edge>
- <edge id=":1545672843_3" function="internal">
- <lane id=":1545672843_3_0" index="0" speed="8.33" length="10.25" shape="1188.09,2092.03 1193.90,2100.47"/>
- </edge>
- <edge id=":1545672843_4" function="internal">
- <lane id=":1545672843_4_0" index="0" speed="8.33" length="9.30" shape="1188.09,2092.03 1183.58,2100.17"/>
- </edge>
- <edge id=":1545672843_5" function="internal">
- <lane id=":1545672843_5_0" index="0" speed="8.33" length="2.72" shape="1188.09,2092.03 1188.10,2092.87 1187.85,2093.33 1187.34,2093.40 1186.56,2093.09"/>
- </edge>
- <edge id=":1545672843_6" function="internal">
- <lane id=":1545672843_6_0" index="0" speed="8.33" length="6.10" shape="1183.94,2096.85 1185.53,2096.99 1186.49,2096.40 1186.84,2095.10 1186.56,2093.09"/>
- </edge>
- <edge id=":1545672843_7" function="internal">
- <lane id=":1545672843_7_0" index="0" speed="8.33" length="11.12" shape="1183.94,2096.85 1187.18,2097.34 1189.78,2097.52 1191.95,2098.26 1193.90,2100.47"/>
- </edge>
- <edge id=":1545672843_8" function="internal">
- <lane id=":1545672843_8_0" index="0" speed="8.33" length="4.87" shape="1183.94,2096.85 1185.09,2097.82 1185.42,2098.69 1184.91,2099.47 1183.58,2100.17"/>
- </edge>
- <edge id=":1545672852_0" function="internal">
- <lane id=":1545672852_0_0" index="0" speed="8.33" length="0.30" shape="1276.56,2104.55 1276.34,2104.34"/>
- </edge>
- <edge id=":1545672852_1" function="internal">
- <lane id=":1545672852_1_0" index="0" speed="8.33" length="2.41" shape="1276.56,2104.55 1276.37,2103.07 1276.72,2102.22"/>
- </edge>
- <edge id=":1545672852_4" function="internal">
- <lane id=":1545672852_4_0" index="0" speed="8.33" length="2.41" shape="1276.72,2102.22 1277.62,2101.99 1279.05,2102.39"/>
- </edge>
- <edge id=":1545672852_2" function="internal">
- <lane id=":1545672852_2_0" index="0" speed="8.33" length="0.92" shape="1278.39,2101.75 1279.05,2102.39"/>
- </edge>
- <edge id=":1545672852_3" function="internal">
- <lane id=":1545672852_3_0" index="0" speed="8.33" length="2.41" shape="1278.39,2101.75 1278.84,2103.17 1278.66,2104.07"/>
- </edge>
- <edge id=":1545672852_5" function="internal">
- <lane id=":1545672852_5_0" index="0" speed="8.33" length="2.41" shape="1278.66,2104.07 1277.82,2104.46 1276.34,2104.34"/>
- </edge>
- <edge id=":1545672864_0" function="internal">
- <lane id=":1545672864_0_0" index="0" speed="8.33" length="9.50" shape="1202.03,2108.55 1193.64,2113.01"/>
- </edge>
- <edge id=":1545672864_1" function="internal">
- <lane id=":1545672864_1_0" index="0" speed="8.33" length="10.33" shape="1202.03,2108.55 1199.44,2109.47 1197.11,2109.33 1195.06,2108.14 1193.28,2105.88"/>
- </edge>
- <edge id=":1545672864_2" function="internal">
- <lane id=":1545672864_2_0" index="0" speed="8.33" length="4.82" shape="1202.03,2108.55 1200.55,2108.40 1199.80,2107.87 1199.77,2106.95 1200.48,2105.64"/>
- </edge>
- <edge id=":1545672864_3" function="internal">
- <lane id=":1545672864_3_0" index="0" speed="8.33" length="5.19" shape="1196.11,2104.20 1197.02,2105.36 1198.05,2105.99 1199.20,2106.08 1200.48,2105.64"/>
- </edge>
- <edge id=":1545672864_4" function="internal">
- <lane id=":1545672864_4_0" index="0" speed="8.33" length="10.55" shape="1196.11,2104.20 1197.22,2106.89 1197.18,2109.25 1195.99,2111.30 1193.64,2113.01"/>
- </edge>
- <edge id=":1545672864_5" function="internal">
- <lane id=":1545672864_5_0" index="0" speed="8.33" length="4.81" shape="1196.11,2104.20 1196.03,2105.68 1195.53,2106.46 1194.61,2106.52 1193.28,2105.88"/>
- </edge>
- <edge id=":1545672864_6" function="internal">
- <lane id=":1545672864_6_0" index="0" speed="8.33" length="5.05" shape="1192.09,2110.10 1193.21,2109.28 1193.79,2108.30 1193.81,2107.17 1193.28,2105.88"/>
- </edge>
- <edge id=":1545672864_7" function="internal">
- <lane id=":1545672864_7_0" index="0" speed="8.33" length="9.50" shape="1192.09,2110.10 1200.48,2105.64"/>
- </edge>
- <edge id=":1545672864_8" function="internal">
- <lane id=":1545672864_8_0" index="0" speed="8.33" length="4.82" shape="1192.09,2110.10 1193.57,2110.25 1194.32,2110.78 1194.35,2111.71 1193.64,2113.01"/>
- </edge>
- <edge id=":1545672874_0" function="internal">
- <lane id=":1545672874_0_0" index="0" speed="8.33" length="5.12" shape="1186.72,2120.38 1186.04,2119.13 1185.14,2118.46 1184.01,2118.37 1182.65,2118.87"/>
- </edge>
- <edge id=":1545672874_1" function="internal">
- <lane id=":1545672874_1_0" index="0" speed="8.33" length="10.35" shape="1186.72,2120.38 1186.04,2117.49 1186.29,2115.04 1187.45,2113.04 1189.53,2111.46"/>
- </edge>
- <edge id=":1545672874_2" function="internal">
- <lane id=":1545672874_2_0" index="0" speed="8.33" length="4.82" shape="1186.72,2120.38 1187.01,2118.92 1187.61,2118.22 1188.53,2118.29 1189.77,2119.12"/>
- </edge>
- <edge id=":1545672874_3" function="internal">
- <lane id=":1545672874_3_0" index="0" speed="8.33" length="5.44" shape="1191.09,2114.38 1190.05,2115.18 1189.48,2116.24 1189.39,2117.55 1189.77,2119.12"/>
- </edge>
- <edge id=":1545672874_4" function="internal">
- <lane id=":1545672874_4_0" index="0" speed="8.33" length="9.56" shape="1191.09,2114.38 1182.65,2118.87"/>
- </edge>
- <edge id=":1545672874_5" function="internal">
- <lane id=":1545672874_5_0" index="0" speed="8.33" length="4.82" shape="1191.09,2114.38 1189.61,2114.23 1188.85,2113.70 1188.83,2112.77 1189.53,2111.46"/>
- </edge>
- <edge id=":1545672874_6" function="internal">
- <lane id=":1545672874_6_0" index="0" speed="8.33" length="9.56" shape="1181.10,2115.96 1189.53,2111.46"/>
- </edge>
- <edge id=":1545672874_7" function="internal">
- <lane id=":1545672874_7_0" index="0" speed="8.33" length="10.90" shape="1181.10,2115.96 1184.00,2114.90 1186.41,2115.07 1188.34,2116.48 1189.77,2119.12"/>
- </edge>
- <edge id=":1545672874_8" function="internal">
- <lane id=":1545672874_8_0" index="0" speed="8.33" length="4.82" shape="1181.10,2115.96 1182.58,2116.10 1183.33,2116.64 1183.35,2117.56 1182.65,2118.87"/>
- </edge>
- <edge id=":1545672910_0" function="internal">
- <lane id=":1545672910_0_0" index="0" speed="8.33" length="5.06" shape="1226.04,2129.36 1225.67,2128.01 1224.97,2127.13 1223.91,2126.70 1222.52,2126.74"/>
- </edge>
- <edge id=":1545672910_1" function="internal">
- <lane id=":1545672910_1_0" index="0" speed="8.33" length="9.17" shape="1226.04,2129.36 1225.91,2120.19"/>
- </edge>
- <edge id=":1545672910_2" function="internal">
- <lane id=":1545672910_2_0" index="0" speed="8.33" length="4.82" shape="1226.04,2129.36 1226.71,2128.03 1227.48,2127.52 1228.34,2127.83 1229.31,2128.96"/>
- </edge>
- <edge id=":1545672910_3" function="internal">
- <lane id=":1545672910_3_0" index="0" speed="8.33" length="8.39" shape="1229.19,2120.58 1229.31,2128.96"/>
- </edge>
- <edge id=":1545672910_4" function="internal">
- <lane id=":1545672910_4_0" index="0" speed="8.33" length="9.82" shape="1229.19,2120.58 1228.54,2122.89 1227.21,2124.69 1225.20,2125.97 1222.52,2126.74"/>
- </edge>
- <edge id=":1545672910_5" function="internal">
- <lane id=":1545672910_5_0" index="0" speed="8.33" length="4.82" shape="1229.19,2120.58 1228.22,2121.71 1227.35,2122.02 1226.58,2121.51 1225.91,2120.19"/>
- </edge>
- <edge id=":1545672910_6" function="internal">
- <lane id=":1545672910_6_0" index="0" speed="8.33" length="5.56" shape="1221.95,2123.49 1223.56,2123.05 1224.76,2122.36 1225.54,2121.40 1225.91,2120.19"/>
- </edge>
- <edge id=":1545672910_7" function="internal">
- <lane id=":1545672910_7_0" index="0" speed="8.33" length="10.57" shape="1221.95,2123.49 1224.87,2123.42 1227.07,2124.31 1228.55,2126.16 1229.31,2128.96"/>
- </edge>
- <edge id=":1545672910_8" function="internal">
- <lane id=":1545672910_8_0" index="0" speed="8.33" length="4.82" shape="1221.95,2123.49 1223.31,2124.09 1223.86,2124.83 1223.59,2125.71 1222.52,2126.74"/>
- </edge>
- <edge id=":1545672919_0" function="internal">
- <lane id=":1545672919_0_0" index="0" speed="8.33" length="5.30" shape="1188.79,2131.66 1188.43,2130.17 1187.72,2129.19 1186.67,2128.72 1185.27,2128.78"/>
- </edge>
- <edge id=":1545672919_1" function="internal">
- <lane id=":1545672919_1_0" index="0" speed="8.33" length="9.93" shape="1188.79,2131.66 1187.16,2121.87"/>
- </edge>
- <edge id=":1545672919_2" function="internal">
- <lane id=":1545672919_2_0" index="0" speed="8.33" length="11.16" shape="1188.79,2131.66 1188.91,2128.54 1190.03,2126.37 1192.15,2125.14 1195.28,2124.87"/>
- </edge>
- <edge id=":1545672919_3" function="internal">
- <lane id=":1545672919_3_0" index="0" speed="8.33" length="4.82" shape="1188.79,2131.66 1189.49,2130.35 1190.27,2129.85 1191.13,2130.18 1192.07,2131.33"/>
- </edge>
- <edge id=":1545672919_4" function="internal">
- <lane id=":1545672919_4_0" index="0" speed="8.33" length="5.20" shape="1195.09,2128.17 1193.64,2128.30 1192.65,2128.86 1192.13,2129.88 1192.07,2131.33"/>
- </edge>
- <edge id=":1545672919_5" function="internal">
- <lane id=":1545672919_5_0" index="0" speed="8.33" length="9.84" shape="1195.09,2128.17 1185.27,2128.78"/>
- </edge>
- <edge id=":1545672919_6" function="internal">
- <lane id=":1545672919_6_0" index="0" speed="8.33" length="10.89" shape="1195.09,2128.17 1192.26,2127.64 1189.99,2126.42 1188.29,2124.49 1187.16,2121.87"/>
- </edge>
- <edge id=":1545672919_7" function="internal">
- <lane id=":1545672919_7_0" index="0" speed="8.33" length="4.82" shape="1195.09,2128.17 1193.90,2127.28 1193.54,2126.43 1194.00,2125.63 1195.28,2124.87"/>
- </edge>
- <edge id=":1545672919_8" function="internal">
- <lane id=":1545672919_8_0" index="0" speed="8.33" length="6.57" shape="1190.39,2121.20 1191.07,2122.72 1192.11,2123.84 1193.51,2124.56 1195.28,2124.87"/>
- </edge>
- <edge id=":1545672919_9" function="internal">
- <lane id=":1545672919_9_0" index="0" speed="8.33" length="10.30" shape="1190.39,2121.20 1191.16,2124.11 1191.55,2126.20 1191.78,2128.33 1192.07,2131.33"/>
- </edge>
- <edge id=":1545672919_10" function="internal">
- <lane id=":1545672919_10_0" index="0" speed="8.33" length="10.63" shape="1190.39,2121.20 1190.74,2124.00 1190.00,2126.20 1188.18,2127.79 1185.27,2128.78"/>
- </edge>
- <edge id=":1545672919_11" function="internal">
- <lane id=":1545672919_11_0" index="0" speed="8.33" length="4.83" shape="1190.39,2121.20 1189.84,2122.58 1189.11,2123.15 1188.22,2122.91 1187.16,2121.87"/>
- </edge>
- <edge id=":1545672919_12" function="internal">
- <lane id=":1545672919_12_0" index="0" speed="8.33" length="5.11" shape="1184.72,2125.52 1186.11,2125.05 1186.98,2124.28 1187.33,2123.22 1187.16,2121.87"/>
- </edge>
- <edge id=":1545672919_13" function="internal">
- <lane id=":1545672919_13_0" index="0" speed="8.33" length="10.63" shape="1184.72,2125.52 1187.74,2124.97 1189.97,2124.73 1192.21,2124.72 1195.28,2124.87"/>
- </edge>
- <edge id=":1545672919_14" function="internal">
- <lane id=":1545672919_14_0" index="0" speed="8.33" length="10.91" shape="1184.72,2125.52 1187.65,2125.40 1189.85,2126.32 1191.33,2128.30 1192.07,2131.33"/>
- </edge>
- <edge id=":1545672919_15" function="internal">
- <lane id=":1545672919_15_0" index="0" speed="8.33" length="4.82" shape="1184.72,2125.52 1186.08,2126.13 1186.62,2126.87 1186.35,2127.76 1185.27,2128.78"/>
- </edge>
- <edge id=":1545672923_0" function="internal">
- <lane id=":1545672923_0_0" index="0" speed="8.33" length="5.32" shape="1274.95,2127.80 1274.48,2126.96 1274.20,2125.82 1274.12,2124.38 1274.25,2122.65"/>
- </edge>
- <edge id=":1545672923_1" function="internal">
- <lane id=":1545672923_1_0" index="0" speed="8.33" length="2.41" shape="1274.95,2127.80 1274.80,2126.32 1275.17,2125.48"/>
- </edge>
- <edge id=":1545672923_4" function="internal">
- <lane id=":1545672923_4_0" index="0" speed="8.33" length="2.41" shape="1275.17,2125.48 1276.07,2125.27 1277.50,2125.70"/>
- </edge>
- <edge id=":1545672923_2" function="internal">
- <lane id=":1545672923_2_0" index="0" speed="8.33" length="1.80" shape="1277.27,2124.02 1277.13,2124.46 1277.12,2124.89 1277.24,2125.30 1277.50,2125.70"/>
- </edge>
- <edge id=":1545672923_3" function="internal">
- <lane id=":1545672923_3_0" index="0" speed="8.33" length="2.43" shape="1277.27,2124.02 1276.00,2124.81 1275.07,2124.84"/>
- </edge>
- <edge id=":1545672923_5" function="internal">
- <lane id=":1545672923_5_0" index="0" speed="8.33" length="2.43" shape="1275.07,2124.84 1274.49,2124.12 1274.25,2122.65"/>
- </edge>
- <edge id=":1545672954_0" function="internal">
- <lane id=":1545672954_0_0" index="0" speed="8.33" length="5.14" shape="1290.24,2134.10 1288.90,2133.63 1287.80,2133.76 1286.95,2134.50 1286.33,2135.85"/>
- </edge>
- <edge id=":1545672954_1" function="internal">
- <lane id=":1545672954_1_0" index="0" speed="8.33" length="9.99" shape="1290.24,2134.10 1287.76,2132.47 1286.06,2130.63 1285.12,2128.58 1284.95,2126.32"/>
- </edge>
- <edge id=":1545672954_2" function="internal">
- <lane id=":1545672954_2_0" index="0" speed="8.33" length="5.10" shape="1290.24,2134.10 1289.07,2133.04 1288.77,2132.11 1289.34,2131.31 1290.76,2130.65"/>
- </edge>
- <edge id=":1545672954_3" function="internal">
- <lane id=":1545672954_3_0" index="0" speed="8.33" length="5.05" shape="1288.24,2126.62 1288.31,2127.83 1288.76,2128.90 1289.57,2129.84 1290.76,2130.65"/>
- </edge>
- <edge id=":1545672954_4" function="internal">
- <lane id=":1545672954_4_0" index="0" speed="8.33" length="9.42" shape="1288.24,2126.62 1286.33,2135.85"/>
- </edge>
- <edge id=":1545672954_5" function="internal">
- <lane id=":1545672954_5_0" index="0" speed="8.33" length="4.82" shape="1288.24,2126.62 1287.31,2127.78 1286.45,2128.12 1285.66,2127.63 1284.95,2126.32"/>
- </edge>
- <edge id=":1545672954_6" function="internal">
- <lane id=":1545672954_6_0" index="0" speed="8.33" length="8.76" shape="1283.18,2134.90 1284.95,2126.32"/>
- </edge>
- <edge id=":1545672954_7" function="internal">
- <lane id=":1545672954_7_0" index="0" speed="8.33" length="10.40" shape="1283.18,2134.90 1284.46,2131.95 1286.15,2130.26 1288.25,2129.82 1290.76,2130.65"/>
- </edge>
- <edge id=":1545672954_8" function="internal">
- <lane id=":1545672954_8_0" index="0" speed="8.33" length="4.80" shape="1283.18,2134.90 1284.32,2133.96 1285.23,2133.80 1285.90,2134.43 1286.33,2135.85"/>
- </edge>
- <edge id=":1545672971_0" function="internal">
- <lane id=":1545672971_0_0" index="0" speed="8.33" length="4.82" shape="1192.35,2133.94 1191.66,2135.26 1190.89,2135.76 1190.02,2135.44 1189.07,2134.30"/>
- </edge>
- <edge id=":1545672999_0" function="internal">
- <lane id=":1545672999_0_0" index="0" speed="8.33" length="3.24" shape="1275.90,2140.66 1276.01,2140.98 1275.73,2141.48 1275.05,2142.15 1273.97,2142.99"/>
- </edge>
- <edge id=":1545672999_1" function="internal">
- <lane id=":1545672999_1_0" index="0" speed="8.33" length="7.18" shape="1275.90,2140.66 1275.58,2139.94 1275.57,2138.53 1275.90,2136.43 1276.56,2133.65"/>
- </edge>
- <edge id=":1545672999_2" function="internal">
- <lane id=":1545672999_2_0" index="0" speed="8.33" length="4.95" shape="1275.90,2140.66 1275.47,2139.19 1275.68,2138.27 1276.55,2137.89 1278.07,2138.05"/>
- </edge>
- <edge id=":1545672999_3" function="internal">
- <lane id=":1545672999_3_0" index="0" speed="8.33" length="3.06" shape="1279.46,2135.60 1279.08,2136.86 1278.72,2137.69 1278.39,2138.09 1278.07,2138.05"/>
- </edge>
- <edge id=":1545672999_4" function="internal">
- <lane id=":1545672999_4_0" index="0" speed="8.33" length="9.21" shape="1279.46,2135.60 1273.97,2142.99"/>
- </edge>
- <edge id=":1545672999_5" function="internal">
- <lane id=":1545672999_5_0" index="0" speed="8.33" length="5.10" shape="1279.46,2135.60 1278.00,2136.20 1277.03,2136.08 1276.55,2135.23 1276.56,2133.65"/>
- </edge>
- <edge id=":1545672999_6" function="internal">
- <lane id=":1545672999_6_0" index="0" speed="8.33" length="7.58" shape="1270.98,2140.67 1274.18,2139.61 1276.44,2138.82 1277.73,2138.30 1278.07,2138.05"/>
- </edge>
- <edge id=":1545672999_7" function="internal">
- <lane id=":1545672999_7_0" index="0" speed="8.33" length="9.35" shape="1270.98,2140.67 1272.86,2139.73 1274.42,2138.25 1275.65,2136.23 1276.56,2133.65"/>
- </edge>
- <edge id=":1545672999_8" function="internal">
- <lane id=":1545672999_8_0" index="0" speed="8.33" length="5.53" shape="1270.98,2140.67 1272.60,2140.13 1273.63,2140.33 1274.09,2141.29 1273.97,2142.99"/>
- </edge>
- <edge id=":1545673030_0" function="internal">
- <lane id=":1545673030_0_0" index="0" speed="8.33" length="10.52" shape="1285.01,2139.09 1283.72,2141.85 1282.54,2143.71 1281.02,2145.32 1278.71,2147.32"/>
- </edge>
- <edge id=":1545673030_1" function="internal">
- <lane id=":1545673030_1_0" index="0" speed="8.33" length="8.72" shape="1285.01,2139.09 1283.57,2141.72 1282.03,2143.21 1280.39,2143.56 1278.66,2142.77"/>
- </edge>
- <edge id=":1545673030_2" function="internal">
- <lane id=":1545673030_2_0" index="0" speed="8.33" length="4.85" shape="1285.01,2139.09 1283.64,2139.69 1282.71,2139.59 1282.23,2138.80 1282.20,2137.30"/>
- </edge>
- <edge id=":1545673030_3" function="internal">
- <lane id=":1545673030_3_0" index="0" speed="8.33" length="3.32" shape="1280.64,2140.18 1280.83,2140.08 1281.15,2139.56 1281.61,2138.63 1282.20,2137.30"/>
- </edge>
- <edge id=":1545673030_4" function="internal">
- <lane id=":1545673030_4_0" index="0" speed="8.33" length="8.62" shape="1280.64,2140.18 1281.75,2141.65 1281.80,2143.33 1280.78,2145.22 1278.71,2147.32"/>
- </edge>
- <edge id=":1545673030_5" function="internal">
- <lane id=":1545673030_5_0" index="0" speed="8.33" length="4.76" shape="1280.64,2140.18 1281.12,2141.57 1280.94,2142.47 1280.12,2142.86 1278.66,2142.77"/>
- </edge>
- <edge id=":1545673030_6" function="internal">
- <lane id=":1545673030_6_0" index="0" speed="8.33" length="3.30" shape="1276.31,2145.05 1277.40,2144.10 1278.16,2143.40 1278.58,2142.96 1278.66,2142.77"/>
- </edge>
- <edge id=":1545673030_7" function="internal">
- <lane id=":1545673030_7_0" index="0" speed="8.33" length="9.74" shape="1276.31,2145.05 1282.20,2137.30"/>
- </edge>
- <edge id=":1545673030_8" function="internal">
- <lane id=":1545673030_8_0" index="0" speed="8.33" length="4.83" shape="1276.31,2145.05 1277.76,2144.72 1278.65,2144.98 1278.96,2145.85 1278.71,2147.32"/>
- </edge>
- <edge id=":1545673031_0" function="internal">
- <lane id=":1545673031_0_0" index="0" speed="8.33" length="5.02" shape="1301.65,2147.56 1300.86,2146.44 1299.90,2145.84 1298.77,2145.77 1297.47,2146.24"/>
- </edge>
- <edge id=":1545673031_1" function="internal">
- <lane id=":1545673031_1_0" index="0" speed="8.33" length="9.44" shape="1301.65,2147.56 1297.22,2139.22"/>
- </edge>
- <edge id=":1545673031_2" function="internal">
- <lane id=":1545673031_2_0" index="0" speed="8.33" length="4.82" shape="1301.65,2147.56 1301.83,2146.08 1302.37,2145.34 1303.30,2145.34 1304.59,2146.06"/>
- </edge>
- <edge id=":1545673031_3" function="internal">
- <lane id=":1545673031_3_0" index="0" speed="8.33" length="9.42" shape="1300.33,2137.66 1304.59,2146.06"/>
- </edge>
- <edge id=":1545673031_4" function="internal">
- <lane id=":1545673031_4_0" index="0" speed="8.33" length="11.13" shape="1300.33,2137.66 1301.90,2139.93 1301.95,2142.11 1300.47,2144.21 1297.47,2146.24"/>
- </edge>
- <edge id=":1545673031_5" function="internal">
- <lane id=":1545673031_5_0" index="0" speed="8.33" length="5.09" shape="1300.33,2137.66 1300.14,2139.22 1299.56,2140.00 1298.58,2140.00 1297.22,2139.22"/>
- </edge>
- <edge id=":1545673031_6" function="internal">
- <lane id=":1545673031_6_0" index="0" speed="8.33" length="5.29" shape="1295.94,2143.32 1297.34,2142.36 1298.02,2141.36 1297.98,2140.32 1297.22,2139.22"/>
- </edge>
- <edge id=":1545673031_7" function="internal">
- <lane id=":1545673031_7_0" index="0" speed="8.33" length="10.39" shape="1295.94,2143.32 1298.62,2142.36 1300.96,2142.50 1302.95,2143.73 1304.59,2146.06"/>
- </edge>
- <edge id=":1545673031_8" function="internal">
- <lane id=":1545673031_8_0" index="0" speed="8.33" length="4.82" shape="1295.94,2143.32 1297.42,2143.47 1298.16,2144.01 1298.18,2144.93 1297.47,2146.24"/>
- </edge>
- <edge id=":1545673065_0" function="internal">
- <lane id=":1545673065_0_0" index="0" speed="8.33" length="4.63" shape="1124.39,2157.83 1123.25,2157.20 1122.14,2156.92 1121.07,2156.98 1120.03,2157.38"/>
- </edge>
- <edge id=":1545673065_1" function="internal">
- <lane id=":1545673065_1_0" index="0" speed="8.33" length="8.61" shape="1124.39,2157.83 1122.67,2156.29 1121.67,2154.53 1121.42,2152.54 1121.90,2150.32"/>
- </edge>
- <edge id=":1545673065_2" function="internal">
- <lane id=":1545673065_2_0" index="0" speed="8.33" length="4.84" shape="1124.39,2157.83 1124.04,2156.38 1124.29,2155.49 1125.15,2155.15 1126.63,2155.38"/>
- </edge>
- <edge id=":1545673065_3" function="internal">
- <lane id=":1545673065_3_0" index="0" speed="8.33" length="4.98" shape="1125.13,2151.07 1124.86,2152.34 1125.02,2153.48 1125.61,2154.49 1126.63,2155.38"/>
- </edge>
- <edge id=":1545673065_4" function="internal">
- <lane id=":1545673065_4_0" index="0" speed="8.33" length="8.11" shape="1125.13,2151.07 1120.03,2157.38"/>
- </edge>
- <edge id=":1545673065_5" function="internal">
- <lane id=":1545673065_5_0" index="0" speed="8.33" length="4.85" shape="1125.13,2151.07 1124.04,2152.09 1123.14,2152.31 1122.42,2151.72 1121.90,2150.32"/>
- </edge>
- <edge id=":1545673065_6" function="internal">
- <lane id=":1545673065_6_0" index="0" speed="8.33" length="5.61" shape="1118.26,2154.59 1121.90,2150.32"/>
- </edge>
- <edge id=":1545673065_7" function="internal">
- <lane id=":1545673065_7_0" index="0" speed="8.33" length="8.87" shape="1118.26,2154.59 1120.25,2153.82 1122.31,2153.70 1124.43,2154.22 1126.63,2155.38"/>
- </edge>
- <edge id=":1545673065_8" function="internal">
- <lane id=":1545673065_8_0" index="0" speed="8.33" length="4.82" shape="1118.26,2154.59 1119.74,2154.62 1120.54,2155.10 1120.63,2156.01 1120.03,2157.38"/>
- </edge>
- <edge id=":1545673067_0" function="internal">
- <lane id=":1545673067_0_0" index="0" speed="8.33" length="1.89" shape="1246.10,2154.46 1244.39,2153.67"/>
- </edge>
- <edge id=":1545673067_1" function="internal">
- <lane id=":1545673067_1_0" index="0" speed="8.33" length="1.93" shape="1246.10,2154.46 1244.42,2153.50"/>
- </edge>
- <edge id=":1545673067_2" function="internal">
- <lane id=":1545673067_2_0" index="0" speed="8.33" length="16.31" shape="1246.10,2154.46 1240.94,2151.23 1239.40,2149.57 1241.48,2149.49 1247.17,2150.98"/>
- </edge>
- <edge id=":1545673067_3" function="internal">
- <lane id=":1545673067_3_0" index="0" speed="8.33" length="4.93" shape="1246.10,2154.46 1245.14,2153.28 1244.98,2152.35 1245.64,2151.67 1247.09,2151.24"/>
- </edge>
- <edge id=":1545673067_4" function="internal">
- <lane id=":1545673067_4_0" index="0" speed="8.33" length="3.03" shape="1246.20,2154.13 1247.09,2151.24"/>
- </edge>
- <edge id=":1545673067_5" function="internal">
- <lane id=":1545673067_5_0" index="0" speed="8.33" length="1.87" shape="1246.20,2154.13 1244.39,2153.67"/>
- </edge>
- <edge id=":1545673067_6" function="internal">
- <lane id=":1545673067_6_0" index="0" speed="8.33" length="1.89" shape="1246.20,2154.13 1244.42,2153.50"/>
- </edge>
- <edge id=":1545673067_7" function="internal">
- <lane id=":1545673067_7_0" index="0" speed="8.33" length="4.82" shape="1246.20,2154.13 1245.26,2152.98 1245.11,2152.07 1245.75,2151.40 1247.17,2150.98"/>
- </edge>
- <edge id=":1545673067_8" function="internal">
- <lane id=":1545673067_8_0" index="0" speed="8.33" length="2.29" shape="1245.06,2150.11 1247.17,2150.98"/>
- </edge>
- <edge id=":1545673067_9" function="internal">
- <lane id=":1545673067_9_0" index="0" speed="8.33" length="2.33" shape="1245.06,2150.11 1247.09,2151.24"/>
- </edge>
- <edge id=":1545673067_10" function="internal">
- <lane id=":1545673067_10_0" index="0" speed="8.33" length="12.32" shape="1245.06,2150.11 1249.01,2152.44 1250.21,2153.81 1248.67,2154.22 1244.39,2153.67"/>
- </edge>
- <edge id=":1545673067_11" function="internal">
- <lane id=":1545673067_11_0" index="0" speed="8.33" length="5.04" shape="1245.06,2150.11 1246.17,2151.20 1246.44,2152.13 1245.85,2152.89 1244.42,2153.50"/>
- </edge>
- <edge id=":1545673067_12" function="internal">
- <lane id=":1545673067_12_0" index="0" speed="8.33" length="3.13" shape="1245.00,2150.43 1244.42,2153.50"/>
- </edge>
- <edge id=":1545673067_13" function="internal">
- <lane id=":1545673067_13_0" index="0" speed="8.33" length="2.24" shape="1245.00,2150.43 1247.17,2150.98"/>
- </edge>
- <edge id=":1545673067_14" function="internal">
- <lane id=":1545673067_14_0" index="0" speed="8.33" length="2.25" shape="1245.00,2150.43 1247.09,2151.24"/>
- </edge>
- <edge id=":1545673067_15" function="internal">
- <lane id=":1545673067_15_0" index="0" speed="8.33" length="4.81" shape="1245.00,2150.43 1246.06,2151.47 1246.31,2152.35 1245.76,2153.08 1244.39,2153.67"/>
- </edge>
- <edge id=":1545673092_0" function="internal">
- <lane id=":1545673092_0_0" index="0" speed="8.33" length="5.16" shape="1157.55,2160.41 1156.12,2160.37 1155.08,2160.83 1154.43,2161.77 1154.17,2163.20"/>
- </edge>
- <edge id=":1545673092_1" function="internal">
- <lane id=":1545673092_1_0" index="0" speed="8.33" length="9.85" shape="1157.55,2160.41 1147.70,2160.05"/>
- </edge>
- <edge id=":1545673092_2" function="internal">
- <lane id=":1545673092_2_0" index="0" speed="8.33" length="11.11" shape="1157.55,2160.41 1154.07,2159.42 1151.95,2157.90 1151.17,2155.83 1151.74,2153.21"/>
- </edge>
- <edge id=":1545673092_3" function="internal">
- <lane id=":1545673092_3_0" index="0" speed="8.33" length="4.82" shape="1157.55,2160.41 1156.45,2159.40 1156.17,2158.53 1156.70,2157.77 1158.05,2157.14"/>
- </edge>
- <edge id=":1545673092_4" function="internal">
- <lane id=":1545673092_4_0" index="0" speed="8.33" length="5.47" shape="1155.16,2153.62 1154.89,2154.90 1155.27,2155.91 1156.33,2156.66 1158.05,2157.14"/>
- </edge>
- <edge id=":1545673092_5" function="internal">
- <lane id=":1545673092_5_0" index="0" speed="8.33" length="9.62" shape="1155.16,2153.62 1154.17,2163.20"/>
- </edge>
- <edge id=":1545673092_6" function="internal">
- <lane id=":1545673092_6_0" index="0" speed="8.33" length="10.35" shape="1155.16,2153.62 1153.73,2156.27 1152.00,2158.23 1149.99,2159.49 1147.70,2160.05"/>
- </edge>
- <edge id=":1545673092_7" function="internal">
- <lane id=":1545673092_7_0" index="0" speed="8.33" length="5.03" shape="1155.16,2153.62 1154.15,2154.80 1153.25,2155.13 1152.44,2154.60 1151.74,2153.21"/>
- </edge>
- <edge id=":1545673092_8" function="internal">
- <lane id=":1545673092_8_0" index="0" speed="8.33" length="5.90" shape="1147.41,2156.76 1148.77,2156.45 1149.95,2155.75 1150.94,2154.67 1151.74,2153.21"/>
- </edge>
- <edge id=":1545673092_9" function="internal">
- <lane id=":1545673092_9_0" index="0" speed="8.33" length="10.69" shape="1147.41,2156.76 1150.48,2156.52 1152.75,2156.47 1155.01,2156.67 1158.05,2157.14"/>
- </edge>
- <edge id=":1545673092_10" function="internal">
- <lane id=":1545673092_10_0" index="0" speed="8.33" length="10.98" shape="1147.41,2156.76 1150.47,2156.93 1152.61,2158.06 1153.85,2160.15 1154.17,2163.20"/>
- </edge>
- <edge id=":1545673092_11" function="internal">
- <lane id=":1545673092_11_0" index="0" speed="8.33" length="4.82" shape="1147.41,2156.76 1148.71,2157.48 1149.20,2158.26 1148.86,2159.12 1147.70,2160.05"/>
- </edge>
- <edge id=":1545673092_12" function="internal">
- <lane id=":1545673092_12_0" index="0" speed="8.33" length="5.25" shape="1150.88,2163.07 1150.81,2161.63 1150.25,2160.65 1149.22,2160.12 1147.70,2160.05"/>
- </edge>
- <edge id=":1545673092_13" function="internal">
- <lane id=":1545673092_13_0" index="0" speed="8.33" length="9.90" shape="1150.88,2163.07 1151.74,2153.21"/>
- </edge>
- <edge id=":1545673092_14" function="internal">
- <lane id=":1545673092_14_0" index="0" speed="8.33" length="10.78" shape="1150.88,2163.07 1151.59,2160.06 1153.02,2158.07 1155.18,2157.10 1158.05,2157.14"/>
- </edge>
- <edge id=":1545673092_15" function="internal">
- <lane id=":1545673092_15_0" index="0" speed="8.33" length="4.81" shape="1150.88,2163.07 1151.75,2161.87 1152.59,2161.49 1153.40,2161.93 1154.17,2163.20"/>
- </edge>
- <edge id=":1545673105_0" function="internal">
- <lane id=":1545673105_0_0" index="0" speed="8.33" length="3.87" shape="1111.56,2165.71 1110.84,2164.53 1110.13,2163.79 1109.43,2163.51 1108.74,2163.67"/>
- </edge>
- <edge id=":1545673105_1" function="internal">
- <lane id=":1545673105_1_0" index="0" speed="8.33" length="9.74" shape="1111.56,2165.71 1107.13,2157.04"/>
- </edge>
- <edge id=":1545673105_2" function="internal">
- <lane id=":1545673105_2_0" index="0" speed="8.33" length="10.52" shape="1111.56,2165.71 1110.62,2163.00 1110.76,2160.61 1111.98,2158.55 1114.26,2156.81"/>
- </edge>
- <edge id=":1545673105_3" function="internal">
- <lane id=":1545673105_3_0" index="0" speed="8.33" length="4.82" shape="1111.56,2165.71 1111.73,2164.23 1112.27,2163.49 1113.20,2163.48 1114.49,2164.21"/>
- </edge>
- <edge id=":1545673105_4" function="internal">
- <lane id=":1545673105_4_0" index="0" speed="8.33" length="5.34" shape="1115.87,2159.70 1114.71,2160.58 1114.09,2161.62 1114.02,2162.83 1114.49,2164.21"/>
- </edge>
- <edge id=":1545673105_5" function="internal">
- <lane id=":1545673105_5_0" index="0" speed="8.33" length="8.16" shape="1115.87,2159.70 1108.74,2163.67"/>
- </edge>
- <edge id=":1545673105_6" function="internal">
- <lane id=":1545673105_6_0" index="0" speed="8.33" length="10.50" shape="1115.87,2159.70 1113.16,2160.73 1110.81,2160.63 1108.80,2159.40 1107.13,2157.04"/>
- </edge>
- <edge id=":1545673105_7" function="internal">
- <lane id=":1545673105_7_0" index="0" speed="8.33" length="4.82" shape="1115.87,2159.70 1114.38,2159.58 1113.62,2159.06 1113.58,2158.14 1114.26,2156.81"/>
- </edge>
- <edge id=":1545673105_8" function="internal">
- <lane id=":1545673105_8_0" index="0" speed="8.33" length="5.04" shape="1110.07,2155.54 1110.87,2156.67 1111.83,2157.26 1112.97,2157.31 1114.26,2156.81"/>
- </edge>
- <edge id=":1545673105_9" function="internal">
- <lane id=":1545673105_9_0" index="0" speed="8.33" length="9.74" shape="1110.07,2155.54 1114.49,2164.21"/>
- </edge>
- <edge id=":1545673105_10" function="internal">
- <lane id=":1545673105_10_0" index="0" speed="8.33" length="9.27" shape="1110.07,2155.54 1111.08,2158.20 1111.20,2160.44 1110.42,2162.27 1108.74,2163.67"/>
- </edge>
- <edge id=":1545673105_11" function="internal">
- <lane id=":1545673105_11_0" index="0" speed="8.33" length="4.82" shape="1110.07,2155.54 1109.89,2157.01 1109.35,2157.75 1108.42,2157.76 1107.13,2157.04"/>
- </edge>
- <edge id=":1545673105_12" function="internal">
- <lane id=":1545673105_12_0" index="0" speed="8.33" length="4.13" shape="1107.13,2160.78 1107.69,2160.24 1107.87,2159.43 1107.69,2158.36 1107.13,2157.04"/>
- </edge>
- <edge id=":1545673105_13" function="internal">
- <lane id=":1545673105_13_0" index="0" speed="8.33" length="8.16" shape="1107.13,2160.78 1114.26,2156.81"/>
- </edge>
- <edge id=":1545673105_14" function="internal">
- <lane id=":1545673105_14_0" index="0" speed="8.33" length="9.28" shape="1107.13,2160.78 1109.23,2160.08 1111.16,2160.42 1112.91,2161.80 1114.49,2164.21"/>
- </edge>
- <edge id=":1545673105_15" function="internal">
- <lane id=":1545673105_15_0" index="0" speed="8.33" length="4.82" shape="1107.13,2160.78 1108.62,2160.90 1109.38,2161.42 1109.42,2162.34 1108.74,2163.67"/>
- </edge>
- <edge id=":1545673118_0" function="internal">
- <lane id=":1545673118_0_0" index="0" speed="22.22" length="9.51" shape="1104.26,2169.47 1099.99,2160.98"/>
- </edge>
- <edge id=":1545673118_1" function="internal">
- <lane id=":1545673118_1_0" index="0" speed="15.28" length="7.44" shape="1104.26,2169.47 1103.31,2166.90 1103.24,2164.72 1104.06,2162.94 1104.49,2162.58"/>
- </edge>
- <edge id=":1545673118_9" function="internal">
- <lane id=":1545673118_9_0" index="0" speed="15.28" length="1.63" shape="1104.49,2162.58 1105.75,2161.55"/>
- </edge>
- <edge id=":1545673118_2" function="internal">
- <lane id=":1545673118_2_0" index="0" speed="22.22" length="2.41" shape="1104.26,2169.47 1104.44,2167.99 1104.99,2167.25"/>
- </edge>
- <edge id=":1545673118_10" function="internal">
- <lane id=":1545673118_10_0" index="0" speed="22.22" length="2.41" shape="1104.99,2167.25 1105.91,2167.25 1107.21,2167.99"/>
- </edge>
- <edge id=":1545673118_3" function="internal">
- <lane id=":1545673118_3_0" index="0" speed="15.28" length="3.94" shape="1107.36,2164.44 1106.78,2164.97 1106.57,2165.75 1106.71,2166.75 1107.21,2167.99"/>
- </edge>
- <edge id=":1545673118_4" function="internal">
- <lane id=":1545673118_4_0" index="0" speed="15.28" length="9.32" shape="1107.36,2164.44 1105.25,2165.14 1103.32,2164.80 1101.57,2163.41 1099.99,2160.98"/>
- </edge>
- <edge id=":1545673118_5" function="internal">
- <lane id=":1545673118_5_0" index="0" speed="8.33" length="4.82" shape="1107.36,2164.44 1105.88,2164.32 1105.11,2163.80 1105.07,2162.88 1105.75,2161.55"/>
- </edge>
- <edge id=":1545673118_6" function="internal">
- <lane id=":1545673118_6_0" index="0" speed="15.28" length="3.88" shape="1102.94,2159.49 1103.65,2160.69 1104.36,2161.43 1105.06,2161.72 1105.75,2161.55"/>
- </edge>
- <edge id=":1545673118_7" function="internal">
- <lane id=":1545673118_7_0" index="0" speed="22.22" length="9.51" shape="1102.94,2159.49 1107.21,2167.99"/>
- </edge>
- <edge id=":1545673118_8" function="internal">
- <lane id=":1545673118_8_0" index="0" speed="22.22" length="2.41" shape="1102.94,2159.49 1102.76,2160.97 1102.21,2161.71"/>
- </edge>
- <edge id=":1545673118_11" function="internal">
- <lane id=":1545673118_11_0" index="0" speed="22.22" length="2.41" shape="1102.21,2161.71 1101.29,2161.71 1099.99,2160.98"/>
- </edge>
- <edge id=":1545673123_0" function="internal">
- <lane id=":1545673123_0_0" index="0" speed="8.33" length="10.77" shape="1185.37,2163.61 1183.14,2164.92 1181.32,2166.72 1179.92,2169.01 1178.92,2171.78"/>
- </edge>
- <edge id=":1545673123_1" function="internal">
- <lane id=":1545673123_1_0" index="0" speed="8.33" length="10.91" shape="1185.37,2163.61 1182.47,2164.60 1180.18,2164.75 1177.82,2164.34 1174.73,2163.66"/>
- </edge>
- <edge id=":1545673123_2" function="internal">
- <lane id=":1545673123_2_0" index="0" speed="8.33" length="4.84" shape="1185.37,2163.61 1183.88,2163.53 1183.10,2163.03 1183.03,2162.11 1183.67,2160.76"/>
- </edge>
- <edge id=":1545673123_3" function="internal">
- <lane id=":1545673123_3_0" index="0" speed="8.33" length="8.32" shape="1175.36,2160.42 1183.67,2160.76"/>
- </edge>
- <edge id=":1545673123_4" function="internal">
- <lane id=":1545673123_4_0" index="0" speed="8.33" length="13.50" shape="1175.36,2160.42 1177.92,2161.59 1179.36,2163.87 1179.70,2167.26 1178.92,2171.78"/>
- </edge>
- <edge id=":1545673123_5" function="internal">
- <lane id=":1545673123_5_0" index="0" speed="8.33" length="4.82" shape="1175.36,2160.42 1176.42,2161.47 1176.67,2162.36 1176.11,2163.09 1174.73,2163.66"/>
- </edge>
- <edge id=":1545673123_6" function="internal">
- <lane id=":1545673123_6_0" index="0" speed="8.33" length="6.04" shape="1176.48,2168.45 1176.97,2166.60 1176.85,2165.19 1176.10,2164.21 1174.73,2163.66"/>
- </edge>
- <edge id=":1545673123_7" function="internal">
- <lane id=":1545673123_7_0" index="0" speed="8.33" length="10.97" shape="1176.48,2168.45 1177.72,2165.57 1179.04,2163.61 1180.88,2162.16 1183.67,2160.76"/>
- </edge>
- <edge id=":1545673123_8" function="internal">
- <lane id=":1545673123_8_0" index="0" speed="8.33" length="6.02" shape="1176.48,2168.45 1178.34,2168.37 1179.36,2168.89 1179.56,2170.03 1178.92,2171.78"/>
- </edge>
- <edge id=":1545673135_0" function="internal">
- <lane id=":1545673135_0_0" index="0" speed="8.33" length="9.49" shape="1261.04,2165.42 1252.64,2169.85"/>
- </edge>
- <edge id=":1545673135_1" function="internal">
- <lane id=":1545673135_1_0" index="0" speed="8.33" length="10.48" shape="1261.04,2165.42 1258.24,2166.45 1255.87,2166.33 1253.94,2165.08 1252.44,2162.68"/>
- </edge>
- <edge id=":1545673135_2" function="internal">
- <lane id=":1545673135_2_0" index="0" speed="8.33" length="4.82" shape="1261.04,2165.42 1259.56,2165.27 1258.81,2164.73 1258.80,2163.81 1259.51,2162.50"/>
- </edge>
- <edge id=":1545673135_3" function="internal">
- <lane id=":1545673135_3_0" index="0" speed="8.33" length="5.12" shape="1255.34,2161.08 1256.07,2162.28 1257.01,2162.91 1258.16,2162.99 1259.51,2162.50"/>
- </edge>
- <edge id=":1545673135_4" function="internal">
- <lane id=":1545673135_4_0" index="0" speed="8.33" length="10.28" shape="1255.34,2161.08 1256.13,2163.88 1255.95,2166.27 1254.79,2168.26 1252.64,2169.85"/>
- </edge>
- <edge id=":1545673135_5" function="internal">
- <lane id=":1545673135_5_0" index="0" speed="8.33" length="4.83" shape="1255.34,2161.08 1255.21,2162.57 1254.69,2163.33 1253.77,2163.37 1252.44,2162.68"/>
- </edge>
- <edge id=":1545673135_6" function="internal">
- <lane id=":1545673135_6_0" index="0" speed="8.33" length="4.99" shape="1251.11,2166.93 1252.16,2166.15 1252.73,2165.19 1252.82,2164.03 1252.44,2162.68"/>
- </edge>
- <edge id=":1545673135_7" function="internal">
- <lane id=":1545673135_7_0" index="0" speed="8.33" length="9.49" shape="1251.11,2166.93 1259.51,2162.50"/>
- </edge>
- <edge id=":1545673135_8" function="internal">
- <lane id=":1545673135_8_0" index="0" speed="8.33" length="4.82" shape="1251.11,2166.93 1252.59,2167.08 1253.33,2167.62 1253.35,2168.54 1252.64,2169.85"/>
- </edge>
- <edge id=":1545673150_0" function="internal">
- <lane id=":1545673150_0_0" index="0" speed="8.33" length="5.12" shape="1308.41,2173.92 1308.32,2172.57 1307.76,2171.61 1306.74,2171.04 1305.27,2170.87"/>
- </edge>
- <edge id=":1545673150_1" function="internal">
- <lane id=":1545673150_1_0" index="0" speed="8.33" length="9.38" shape="1308.41,2173.92 1308.65,2164.54"/>
- </edge>
- <edge id=":1545673150_2" function="internal">
- <lane id=":1545673150_2_0" index="0" speed="8.33" length="4.81" shape="1308.41,2173.92 1309.22,2172.67 1310.03,2172.25 1310.86,2172.65 1311.70,2173.87"/>
- </edge>
- <edge id=":1545673150_3" function="internal">
- <lane id=":1545673150_3_0" index="0" speed="8.33" length="9.14" shape="1311.95,2164.73 1311.70,2173.87"/>
- </edge>
- <edge id=":1545673150_4" function="internal">
- <lane id=":1545673150_4_0" index="0" speed="8.33" length="10.10" shape="1311.95,2164.73 1311.29,2167.39 1309.96,2169.30 1307.95,2170.46 1305.27,2170.87"/>
- </edge>
- <edge id=":1545673150_5" function="internal">
- <lane id=":1545673150_5_0" index="0" speed="8.33" length="4.82" shape="1311.95,2164.73 1311.06,2165.92 1310.21,2166.29 1309.41,2165.83 1308.65,2164.54"/>
- </edge>
- <edge id=":1545673150_6" function="internal">
- <lane id=":1545673150_6_0" index="0" speed="8.33" length="5.08" shape="1305.23,2167.57 1306.61,2167.36 1307.64,2166.79 1308.32,2165.85 1308.65,2164.54"/>
- </edge>
- <edge id=":1545673150_7" function="internal">
- <lane id=":1545673150_7_0" index="0" speed="8.33" length="10.29" shape="1305.23,2167.57 1308.02,2167.93 1310.03,2169.10 1311.26,2171.08 1311.70,2173.87"/>
- </edge>
- <edge id=":1545673150_8" function="internal">
- <lane id=":1545673150_8_0" index="0" speed="8.33" length="4.82" shape="1305.23,2167.57 1306.48,2168.38 1306.90,2169.20 1306.50,2170.03 1305.27,2170.87"/>
- </edge>
- <edge id=":1545673191_0" function="internal">
- <lane id=":1545673191_0_0" index="0" speed="8.33" length="5.06" shape="1221.58,2189.80 1220.81,2188.63 1219.87,2188.01 1218.74,2187.93 1217.42,2188.39"/>
- </edge>
- <edge id=":1545673191_1" function="internal">
- <lane id=":1545673191_1_0" index="0" speed="8.33" length="10.33" shape="1221.58,2189.80 1220.72,2187.05 1220.89,2184.68 1222.08,2182.68 1224.29,2181.05"/>
- </edge>
- <edge id=":1545673191_2" function="internal">
- <lane id=":1545673191_2_0" index="0" speed="8.33" length="4.81" shape="1221.58,2189.80 1221.80,2188.33 1222.37,2187.60 1223.30,2187.63 1224.56,2188.40"/>
- </edge>
- <edge id=":1545673191_3" function="internal">
- <lane id=":1545673191_3_0" index="0" speed="8.33" length="5.19" shape="1225.83,2183.97 1224.75,2184.78 1224.18,2185.79 1224.12,2186.99 1224.56,2188.40"/>
- </edge>
- <edge id=":1545673191_4" function="internal">
- <lane id=":1545673191_4_0" index="0" speed="8.33" length="9.50" shape="1225.83,2183.97 1217.42,2188.39"/>
- </edge>
- <edge id=":1545673191_5" function="internal">
- <lane id=":1545673191_5_0" index="0" speed="8.33" length="4.82" shape="1225.83,2183.97 1224.35,2183.82 1223.60,2183.28 1223.58,2182.36 1224.29,2181.05"/>
- </edge>
- <edge id=":1545673191_6" function="internal">
- <lane id=":1545673191_6_0" index="0" speed="8.33" length="9.49" shape="1215.89,2185.47 1224.29,2181.05"/>
- </edge>
- <edge id=":1545673191_7" function="internal">
- <lane id=":1545673191_7_0" index="0" speed="8.33" length="10.55" shape="1215.89,2185.47 1218.63,2184.50 1220.99,2184.66 1222.97,2185.96 1224.56,2188.40"/>
- </edge>
- <edge id=":1545673191_8" function="internal">
- <lane id=":1545673191_8_0" index="0" speed="8.33" length="4.82" shape="1215.89,2185.47 1217.37,2185.63 1218.12,2186.17 1218.13,2187.09 1217.42,2188.39"/>
- </edge>
- <edge id=":1545673218_0" function="internal">
- <lane id=":1545673218_0_0" index="0" speed="8.33" length="9.19" shape="1179.41,2193.22 1170.32,2191.85"/>
- </edge>
- <edge id=":1545673218_1" function="internal">
- <lane id=":1545673218_1_0" index="0" speed="8.33" length="10.30" shape="1179.41,2193.22 1177.16,2191.64 1175.53,2189.73 1174.50,2187.50 1174.09,2184.95"/>
- </edge>
- <edge id=":1545673218_2" function="internal">
- <lane id=":1545673218_2_0" index="0" speed="8.33" length="4.93" shape="1179.41,2193.22 1178.42,2192.07 1178.24,2191.14 1178.87,2190.44 1180.32,2189.97"/>
- </edge>
- <edge id=":1545673218_3" function="internal">
- <lane id=":1545673218_3_0" index="0" speed="8.33" length="6.75" shape="1177.37,2184.25 1177.58,2186.16 1178.15,2187.75 1179.06,2189.02 1180.32,2189.97"/>
- </edge>
- <edge id=":1545673218_4" function="internal">
- <lane id=":1545673218_4_0" index="0" speed="8.33" length="11.71" shape="1177.37,2184.25 1176.98,2187.40 1175.68,2189.72 1173.46,2191.20 1170.32,2191.85"/>
- </edge>
- <edge id=":1545673218_5" function="internal">
- <lane id=":1545673218_5_0" index="0" speed="8.33" length="4.89" shape="1177.37,2184.25 1176.81,2185.65 1176.08,2186.24 1175.17,2186.01 1174.09,2184.95"/>
- </edge>
- <edge id=":1545673218_6" function="internal">
- <lane id=":1545673218_6_0" index="0" speed="8.33" length="5.48" shape="1170.82,2188.52 1172.30,2188.21 1173.34,2187.51 1173.93,2186.43 1174.09,2184.95"/>
- </edge>
- <edge id=":1545673218_7" function="internal">
- <lane id=":1545673218_7_0" index="0" speed="8.33" length="9.61" shape="1170.82,2188.52 1180.32,2189.97"/>
- </edge>
- <edge id=":1545673218_8" function="internal">
- <lane id=":1545673218_8_0" index="0" speed="8.33" length="4.93" shape="1170.82,2188.52 1171.95,2189.54 1172.24,2190.43 1171.70,2191.21 1170.32,2191.85"/>
- </edge>
- <edge id=":1545673223_0" function="internal">
- <lane id=":1545673223_0_0" index="0" speed="8.33" length="8.63" shape="1168.81,2192.04 1166.98,2192.56 1165.24,2193.56 1163.58,2195.03 1162.01,2196.97"/>
- </edge>
- <edge id=":1545673223_1" function="internal">
- <lane id=":1545673223_1_0" index="0" speed="8.33" length="9.92" shape="1168.81,2192.04 1166.04,2192.21 1163.59,2191.83 1161.45,2190.91 1159.63,2189.44"/>
- </edge>
- <edge id=":1545673223_2" function="internal">
- <lane id=":1545673223_2_0" index="0" speed="8.33" length="5.03" shape="1168.81,2192.04 1167.28,2191.81 1166.52,2191.22 1166.54,2190.26 1167.33,2188.92"/>
- </edge>
- <edge id=":1545673223_3" function="internal">
- <lane id=":1545673223_3_0" index="0" speed="8.33" length="6.22" shape="1161.72,2186.86 1162.97,2187.94 1164.33,2188.65 1165.78,2188.97 1167.33,2188.92"/>
- </edge>
- <edge id=":1545673223_4" function="internal">
- <lane id=":1545673223_4_0" index="0" speed="8.33" length="11.09" shape="1161.72,2186.86 1163.33,2189.17 1163.91,2191.62 1163.47,2194.22 1162.01,2196.97"/>
- </edge>
- <edge id=":1545673223_5" function="internal">
- <lane id=":1545673223_5_0" index="0" speed="8.33" length="4.85" shape="1161.72,2186.86 1162.16,2188.29 1161.96,2189.20 1161.12,2189.58 1159.63,2189.44"/>
- </edge>
- <edge id=":1545673223_6" function="internal">
- <lane id=":1545673223_6_0" index="0" speed="8.33" length="5.32" shape="1159.86,2194.29 1160.54,2192.99 1160.73,2191.75 1160.43,2190.56 1159.63,2189.44"/>
- </edge>
- <edge id=":1545673223_7" function="internal">
- <lane id=":1545673223_7_0" index="0" speed="8.33" length="9.45" shape="1159.86,2194.29 1161.57,2192.17 1163.38,2190.58 1165.31,2189.49 1167.33,2188.92"/>
- </edge>
- <edge id=":1545673223_8" function="internal">
- <lane id=":1545673223_8_0" index="0" speed="8.33" length="5.02" shape="1159.86,2194.29 1161.40,2194.15 1162.28,2194.56 1162.48,2195.50 1162.01,2196.97"/>
- </edge>
- <edge id=":1545673240_0" function="internal">
- <lane id=":1545673240_0_0" index="0" speed="8.33" length="10.35" shape="1259.69,2192.60 1258.01,2194.37 1256.91,2196.52 1256.39,2199.05 1256.45,2201.95"/>
- </edge>
- <edge id=":1545673240_1" function="internal">
- <lane id=":1545673240_1_0" index="0" speed="8.33" length="11.79" shape="1259.69,2192.60 1257.15,2194.67 1254.99,2196.25 1252.64,2197.40 1249.51,2198.17"/>
- </edge>
- <edge id=":1545673240_2" function="internal">
- <lane id=":1545673240_2_0" index="0" speed="8.33" length="4.82" shape="1259.69,2192.60 1258.21,2192.73 1257.37,2192.34 1257.18,2191.44 1257.62,2190.02"/>
- </edge>
- <edge id=":1545673240_3" function="internal">
- <lane id=":1545673240_3_0" index="0" speed="8.33" length="11.21" shape="1247.85,2195.10 1250.91,2194.41 1253.12,2193.43 1255.15,2192.02 1257.62,2190.02"/>
- </edge>
- <edge id=":1545673240_4" function="internal">
- <lane id=":1545673240_4_0" index="0" speed="8.33" length="12.69" shape="1247.85,2195.10 1251.27,2195.06 1253.84,2196.18 1255.57,2198.48 1256.45,2201.95"/>
- </edge>
- <edge id=":1545673240_5" function="internal">
- <lane id=":1545673240_5_0" index="0" speed="8.33" length="5.10" shape="1247.85,2195.10 1249.41,2195.25 1250.21,2195.80 1250.25,2196.78 1249.51,2198.17"/>
- </edge>
- <edge id=":1545673240_6" function="internal">
- <lane id=":1545673240_6_0" index="0" speed="8.33" length="5.21" shape="1253.03,2201.01 1252.66,2199.57 1251.96,2198.62 1250.91,2198.16 1249.51,2198.17"/>
- </edge>
- <edge id=":1545673240_7" function="internal">
- <lane id=":1545673240_7_0" index="0" speed="8.33" length="12.45" shape="1253.03,2201.01 1253.03,2197.81 1253.80,2194.92 1255.33,2192.32 1257.62,2190.02"/>
- </edge>
- <edge id=":1545673240_8" function="internal">
- <lane id=":1545673240_8_0" index="0" speed="8.33" length="5.19" shape="1253.03,2201.01 1254.24,2199.96 1255.21,2199.77 1255.95,2200.43 1256.45,2201.95"/>
- </edge>
- <edge id=":1545673280_0" function="internal">
- <lane id=":1545673280_0_0" index="0" speed="8.33" length="9.72" shape="1194.65,2200.32 1186.04,2204.84"/>
- </edge>
- <edge id=":1545673280_1" function="internal">
- <lane id=":1545673280_1_0" index="0" speed="8.33" length="10.49" shape="1194.65,2200.32 1192.41,2201.03 1190.10,2200.82 1187.71,2199.71 1185.24,2197.70"/>
- </edge>
- <edge id=":1545673280_2" function="internal">
- <lane id=":1545673280_2_0" index="0" speed="8.33" length="4.82" shape="1194.65,2200.32 1193.17,2200.17 1192.42,2199.63 1192.41,2198.71 1193.12,2197.40"/>
- </edge>
- <edge id=":1545673280_3" function="internal">
- <lane id=":1545673280_3_0" index="0" speed="8.33" length="6.08" shape="1187.75,2195.54 1189.24,2196.80 1190.64,2197.53 1191.93,2197.73 1193.12,2197.40"/>
- </edge>
- <edge id=":1545673280_4" function="internal">
- <lane id=":1545673280_4_0" index="0" speed="8.33" length="11.76" shape="1187.75,2195.54 1189.72,2198.18 1190.10,2200.61 1188.87,2202.83 1186.04,2204.84"/>
- </edge>
- <edge id=":1545673280_5" function="internal">
- <lane id=":1545673280_5_0" index="0" speed="8.33" length="4.83" shape="1187.75,2195.54 1187.93,2197.02 1187.58,2197.87 1186.68,2198.10 1185.24,2197.70"/>
- </edge>
- <edge id=":1545673280_6" function="internal">
- <lane id=":1545673280_6_0" index="0" speed="8.33" length="5.33" shape="1184.51,2201.92 1185.78,2201.01 1186.33,2200.00 1186.15,2198.90 1185.24,2197.70"/>
- </edge>
- <edge id=":1545673280_7" function="internal">
- <lane id=":1545673280_7_0" index="0" speed="8.33" length="9.72" shape="1184.51,2201.92 1193.12,2197.40"/>
- </edge>
- <edge id=":1545673280_8" function="internal">
- <lane id=":1545673280_8_0" index="0" speed="8.33" length="4.82" shape="1184.51,2201.92 1185.99,2202.07 1186.74,2202.61 1186.76,2203.53 1186.04,2204.84"/>
- </edge>
- <edge id=":1545673304_0" function="internal">
- <lane id=":1545673304_0_0" index="0" speed="8.33" length="3.43" shape="1257.80,2211.12 1257.67,2210.71 1257.27,2210.13 1256.62,2209.37 1255.71,2208.45"/>
- </edge>
- <edge id=":1545673304_1" function="internal">
- <lane id=":1545673304_1_0" index="0" speed="8.33" length="8.81" shape="1257.80,2211.12 1258.19,2209.22 1259.40,2207.88 1261.44,2207.10 1264.30,2206.88"/>
- </edge>
- <edge id=":1545673304_2" function="internal">
- <lane id=":1545673304_2_0" index="0" speed="8.33" length="4.82" shape="1257.80,2211.12 1258.61,2209.88 1259.43,2209.46 1260.26,2209.86 1261.10,2211.09"/>
- </edge>
- <edge id=":1545673304_3" function="internal">
- <lane id=":1545673304_3_0" index="0" speed="8.33" length="3.49" shape="1264.24,2210.18 1262.86,2210.21 1261.88,2210.37 1261.29,2210.67 1261.10,2211.09"/>
- </edge>
- <edge id=":1545673304_4" function="internal">
- <lane id=":1545673304_4_0" index="0" speed="8.33" length="8.71" shape="1264.24,2210.18 1255.71,2208.45"/>
- </edge>
- <edge id=":1545673304_5" function="internal">
- <lane id=":1545673304_5_0" index="0" speed="8.33" length="4.82" shape="1264.24,2210.18 1263.02,2209.33 1262.62,2208.50 1263.05,2207.68 1264.30,2206.88"/>
- </edge>
- <edge id=":1545673304_6" function="internal">
- <lane id=":1545673304_6_0" index="0" speed="8.33" length="7.78" shape="1257.12,2204.72 1257.89,2205.62 1259.35,2206.28 1261.48,2206.70 1264.30,2206.88"/>
- </edge>
- <edge id=":1545673304_7" function="internal">
- <lane id=":1545673304_7_0" index="0" speed="8.33" length="7.51" shape="1257.12,2204.72 1261.10,2211.09"/>
- </edge>
- <edge id=":1545673304_8" function="internal">
- <lane id=":1545673304_8_0" index="0" speed="8.33" length="5.83" shape="1257.12,2204.72 1258.17,2206.18 1258.28,2207.29 1257.46,2208.05 1255.71,2208.45"/>
- </edge>
- <edge id=":1545673319_0" function="internal">
- <lane id=":1545673319_0_0" index="0" speed="6.94" length="3.45" shape="1261.12,2213.27 1261.32,2213.68 1261.91,2213.97 1262.87,2214.14 1264.23,2214.19"/>
- </edge>
- <edge id=":1545673319_1" function="internal">
- <lane id=":1545673319_1_0" index="0" speed="8.33" length="4.09" shape="1261.12,2213.27 1261.13,2217.35"/>
- </edge>
- <edge id=":1545673319_2" function="internal">
- <lane id=":1545673319_2_0" index="0" speed="8.33" length="4.82" shape="1261.12,2213.27 1260.31,2214.51 1259.49,2214.93 1258.66,2214.53 1257.82,2213.30"/>
- </edge>
- <edge id=":1545673319_3" function="internal">
- <lane id=":1545673319_3_0" index="0" speed="6.94" length="7.87" shape="1254.72,2214.25 1257.53,2214.43 1259.53,2215.01 1260.73,2215.98 1261.13,2217.35"/>
- </edge>
- <edge id=":1545673319_4" function="internal">
- <lane id=":1545673319_4_0" index="0" speed="6.94" length="3.45" shape="1254.72,2214.25 1256.08,2214.18 1257.05,2214.00 1257.63,2213.71 1257.82,2213.30"/>
- </edge>
- <edge id=":1545673319_5" function="internal">
- <lane id=":1545673319_5_0" index="0" speed="5.56" length="9.50" shape="1254.72,2214.25 1264.23,2214.19"/>
- </edge>
- <edge id=":1545673319_6" function="internal">
- <lane id=":1545673319_6_0" index="0" speed="8.33" length="4.04" shape="1257.83,2217.34 1257.82,2213.30"/>
- </edge>
- <edge id=":1545673319_7" function="internal">
- <lane id=":1545673319_7_0" index="0" speed="6.94" length="7.86" shape="1257.83,2217.34 1258.23,2215.98 1259.43,2215.00 1261.43,2214.40 1264.23,2214.19"/>
- </edge>
- <edge id=":1545673319_8" function="internal">
- <lane id=":1545673319_8_0" index="0" speed="8.33" length="4.82" shape="1257.83,2217.34 1258.66,2216.11 1259.48,2215.70 1260.31,2216.11 1261.13,2217.35"/>
- </edge>
- <edge id=":1545673333_0" function="internal">
- <lane id=":1545673333_0_0" index="0" speed="8.33" length="6.37" shape="1155.72,2218.67 1149.39,2219.37"/>
- </edge>
- <edge id=":1545673333_1" function="internal">
- <lane id=":1545673333_1_0" index="0" speed="8.33" length="9.90" shape="1155.72,2218.67 1152.87,2217.90 1151.03,2216.53 1150.23,2214.58 1150.44,2212.04"/>
- </edge>
- <edge id=":1545673333_2" function="internal">
- <lane id=":1545673333_2_0" index="0" speed="8.33" length="4.82" shape="1155.72,2218.67 1154.65,2217.65 1154.38,2216.76 1154.93,2216.02 1156.30,2215.42"/>
- </edge>
- <edge id=":1545673333_3" function="internal">
- <lane id=":1545673333_3_0" index="0" speed="8.33" length="4.81" shape="1153.82,2212.13 1153.70,2213.40 1154.08,2214.37 1154.94,2215.05 1156.30,2215.42"/>
- </edge>
- <edge id=":1545673333_4" function="internal">
- <lane id=":1545673333_4_0" index="0" speed="8.33" length="8.71" shape="1153.82,2212.13 1153.00,2214.72 1151.99,2216.79 1150.79,2218.34 1149.39,2219.37"/>
- </edge>
- <edge id=":1545673333_5" function="internal">
- <lane id=":1545673333_5_0" index="0" speed="8.33" length="4.94" shape="1153.82,2212.13 1152.94,2213.38 1152.08,2213.78 1151.25,2213.33 1150.44,2212.04"/>
- </edge>
- <edge id=":1545673333_6" function="internal">
- <lane id=":1545673333_6_0" index="0" speed="8.33" length="5.21" shape="1147.88,2216.43 1148.66,2215.84 1149.35,2214.91 1149.94,2213.64 1150.44,2212.04"/>
- </edge>
- <edge id=":1545673333_7" function="internal">
- <lane id=":1545673333_7_0" index="0" speed="8.33" length="8.48" shape="1147.88,2216.43 1156.30,2215.42"/>
- </edge>
- <edge id=":1545673333_8" function="internal">
- <lane id=":1545673333_8_0" index="0" speed="8.33" length="4.82" shape="1147.88,2216.43 1149.35,2216.60 1150.10,2217.14 1150.11,2218.07 1149.39,2219.37"/>
- </edge>
- <edge id=":1545673345_0" function="internal">
- <lane id=":1545673345_0_0" index="0" speed="8.33" length="4.28" shape="1142.53,2226.41 1141.79,2225.26 1140.99,2224.58 1140.12,2224.38 1139.19,2224.64"/>
- </edge>
- <edge id=":1545673345_1" function="internal">
- <lane id=":1545673345_1_0" index="0" speed="8.33" length="9.53" shape="1142.53,2226.41 1138.20,2217.92"/>
- </edge>
- <edge id=":1545673345_2" function="internal">
- <lane id=":1545673345_2_0" index="0" speed="8.33" length="10.35" shape="1142.53,2226.41 1141.61,2223.73 1141.77,2221.39 1143.00,2219.40 1145.31,2217.76"/>
- </edge>
- <edge id=":1545673345_3" function="internal">
- <lane id=":1545673345_3_0" index="0" speed="8.33" length="4.82" shape="1142.53,2226.41 1142.70,2224.93 1143.25,2224.19 1144.17,2224.18 1145.47,2224.91"/>
- </edge>
- <edge id=":1545673345_4" function="internal">
- <lane id=":1545673345_4_0" index="0" speed="8.33" length="5.05" shape="1146.82,2220.69 1145.70,2221.49 1145.10,2222.46 1145.02,2223.60 1145.47,2224.91"/>
- </edge>
- <edge id=":1545673345_5" function="internal">
- <lane id=":1545673345_5_0" index="0" speed="8.33" length="8.60" shape="1146.82,2220.69 1139.19,2224.64"/>
- </edge>
- <edge id=":1545673345_6" function="internal">
- <lane id=":1545673345_6_0" index="0" speed="8.33" length="10.35" shape="1146.82,2220.69 1144.14,2221.62 1141.81,2221.47 1139.83,2220.24 1138.20,2217.92"/>
- </edge>
- <edge id=":1545673345_7" function="internal">
- <lane id=":1545673345_7_0" index="0" speed="8.33" length="4.82" shape="1146.82,2220.69 1145.35,2220.53 1144.60,2219.98 1144.59,2219.06 1145.31,2217.76"/>
- </edge>
- <edge id=":1545673345_8" function="internal">
- <lane id=":1545673345_8_0" index="0" speed="8.33" length="5.01" shape="1141.14,2216.42 1141.93,2217.54 1142.89,2218.14 1144.01,2218.21 1145.31,2217.76"/>
- </edge>
- <edge id=":1545673345_9" function="internal">
- <lane id=":1545673345_9_0" index="0" speed="8.33" length="9.53" shape="1141.14,2216.42 1145.47,2224.91"/>
- </edge>
- <edge id=":1545673345_10" function="internal">
- <lane id=":1545673345_10_0" index="0" speed="8.33" length="9.61" shape="1141.14,2216.42 1142.11,2219.07 1142.10,2221.33 1141.13,2223.18 1139.19,2224.64"/>
- </edge>
- <edge id=":1545673345_11" function="internal">
- <lane id=":1545673345_11_0" index="0" speed="8.33" length="4.82" shape="1141.14,2216.42 1140.96,2217.90 1140.42,2218.64 1139.49,2218.65 1138.20,2217.92"/>
- </edge>
- <edge id=":1545673345_12" function="internal">
- <lane id=":1545673345_12_0" index="0" speed="8.33" length="4.32" shape="1137.67,2221.71 1138.43,2221.09 1138.77,2220.26 1138.70,2219.20 1138.20,2217.92"/>
- </edge>
- <edge id=":1545673345_13" function="internal">
- <lane id=":1545673345_13_0" index="0" speed="8.33" length="8.60" shape="1137.67,2221.71 1145.31,2217.76"/>
- </edge>
- <edge id=":1545673345_14" function="internal">
- <lane id=":1545673345_14_0" index="0" speed="8.33" length="9.61" shape="1137.67,2221.71 1139.99,2220.96 1142.06,2221.25 1143.89,2222.56 1145.47,2224.91"/>
- </edge>
- <edge id=":1545673345_15" function="internal">
- <lane id=":1545673345_15_0" index="0" speed="8.33" length="4.82" shape="1137.67,2221.71 1139.15,2221.87 1139.89,2222.42 1139.91,2223.34 1139.19,2224.64"/>
- </edge>
- <edge id=":1545673349_0" function="internal">
- <lane id=":1545673349_0_0" index="0" speed="22.22" length="9.50" shape="1134.81,2230.32 1130.55,2221.83"/>
- </edge>
- <edge id=":1545673349_1" function="internal">
- <lane id=":1545673349_1_0" index="0" speed="15.28" length="7.36" shape="1134.81,2230.32 1133.87,2227.69 1133.90,2225.44 1134.89,2223.59 1135.06,2223.46"/>
- </edge>
- <edge id=":1545673349_9" function="internal">
- <lane id=":1545673349_9_0" index="0" speed="15.28" length="2.22" shape="1135.06,2223.46 1136.84,2222.14"/>
- </edge>
- <edge id=":1545673349_2" function="internal">
- <lane id=":1545673349_2_0" index="0" speed="22.22" length="2.41" shape="1134.81,2230.32 1135.00,2228.85 1135.55,2228.11"/>
- </edge>
- <edge id=":1545673349_10" function="internal">
- <lane id=":1545673349_10_0" index="0" speed="22.22" length="2.41" shape="1135.55,2228.11 1136.47,2228.11 1137.76,2228.84"/>
- </edge>
- <edge id=":1545673349_3" function="internal">
- <lane id=":1545673349_3_0" index="0" speed="15.28" length="4.31" shape="1138.36,2225.07 1137.58,2225.69 1137.22,2226.52 1137.28,2227.58 1137.76,2228.84"/>
- </edge>
- <edge id=":1545673349_4" function="internal">
- <lane id=":1545673349_4_0" index="0" speed="15.28" length="9.64" shape="1138.36,2225.07 1136.03,2225.82 1133.95,2225.53 1132.12,2224.20 1130.55,2221.83"/>
- </edge>
- <edge id=":1545673349_5" function="internal">
- <lane id=":1545673349_5_0" index="0" speed="8.33" length="4.82" shape="1138.36,2225.07 1136.88,2224.90 1136.13,2224.36 1136.12,2223.44 1136.84,2222.14"/>
- </edge>
- <edge id=":1545673349_6" function="internal">
- <lane id=":1545673349_6_0" index="0" speed="15.28" length="4.29" shape="1133.50,2220.35 1134.23,2221.51 1135.03,2222.19 1135.90,2222.40 1136.84,2222.14"/>
- </edge>
- <edge id=":1545673349_7" function="internal">
- <lane id=":1545673349_7_0" index="0" speed="22.22" length="9.50" shape="1133.50,2220.35 1137.76,2228.84"/>
- </edge>
- <edge id=":1545673349_8" function="internal">
- <lane id=":1545673349_8_0" index="0" speed="22.22" length="2.41" shape="1133.50,2220.35 1133.32,2221.83 1132.77,2222.57"/>
- </edge>
- <edge id=":1545673349_11" function="internal">
- <lane id=":1545673349_11_0" index="0" speed="22.22" length="2.41" shape="1132.77,2222.57 1131.84,2222.57 1130.55,2221.83"/>
- </edge>
- <edge id=":1624003168_0" function="internal">
- <lane id=":1624003168_0_0" index="0" speed="22.22" length="5.04" shape="921.60,803.44 922.41,804.57 923.38,805.15 924.51,805.20 925.81,804.70"/>
- </edge>
- <edge id=":1624003168_1" function="internal">
- <lane id=":1624003168_1_0" index="0" speed="22.22" length="6.30" shape="921.60,803.44 924.52,809.03"/>
- </edge>
- <edge id=":1624003168_2" function="internal">
- <lane id=":1624003168_2_0" index="0" speed="22.22" length="6.30" shape="920.31,807.78 925.81,804.70"/>
- </edge>
- <edge id=":1624003168_3" function="internal">
- <lane id=":1624003168_3_0" index="0" speed="22.22" length="5.04" shape="920.31,807.78 921.60,807.28 922.74,807.32 923.71,807.90 924.52,809.03"/>
- </edge>
- <edge id=":1624003172_0" function="internal">
- <lane id=":1624003172_0_0" index="0" speed="22.22" length="5.03" shape="779.46,883.10 780.27,884.23 781.24,884.81 782.38,884.85 783.67,884.35"/>
- </edge>
- <edge id=":1624003172_1" function="internal">
- <lane id=":1624003172_1_0" index="0" speed="22.22" length="6.20" shape="779.46,883.10 782.34,888.60"/>
- </edge>
- <edge id=":1624003193_0" function="internal">
- <lane id=":1624003193_0_0" index="0" speed="22.22" length="6.30" shape="857.15,846.78 854.24,841.19"/>
- </edge>
- <edge id=":1624003193_1" function="internal">
- <lane id=":1624003193_1_0" index="0" speed="22.22" length="5.12" shape="857.15,846.78 856.68,845.47 856.74,844.30 857.33,843.30 858.44,842.45"/>
- </edge>
- <edge id=":1624003193_2" function="internal">
- <lane id=":1624003193_2_0" index="0" speed="22.22" length="5.12" shape="852.94,845.53 854.06,844.68 854.64,843.68 854.70,842.51 854.24,841.19"/>
- </edge>
- <edge id=":1624003193_3" function="internal">
- <lane id=":1624003193_3_0" index="0" speed="22.22" length="6.30" shape="852.94,845.53 858.44,842.45"/>
- </edge>
- <edge id=":1624003199_0" function="internal">
- <lane id=":1624003199_0_0" index="0" speed="22.22" length="6.20" shape="993.28,770.48 990.41,764.99"/>
- </edge>
- <edge id=":1624003199_1" function="internal">
- <lane id=":1624003199_1_0" index="0" speed="22.22" length="5.04" shape="989.08,769.23 990.19,768.39 990.78,767.40 990.86,766.27 990.41,764.99"/>
- </edge>
- <edge id=":1624020482_0" function="internal">
- <lane id=":1624020482_0_0" index="0" speed="22.22" length="6.20" shape="939.55,1005.21 936.69,999.71"/>
- </edge>
- <edge id=":1624020482_1" function="internal">
- <lane id=":1624020482_1_0" index="0" speed="22.22" length="5.06" shape="940.90,1000.92 939.61,1001.45 938.48,1001.42 937.50,1000.84 936.69,999.71"/>
- </edge>
- <edge id=":1624020484_0" function="internal">
- <lane id=":1624020484_0_0" index="0" speed="22.22" length="6.17" shape="1003.63,960.58 1006.54,966.01"/>
- </edge>
- <edge id=":1624020484_1" function="internal">
- <lane id=":1624020484_1_0" index="0" speed="22.22" length="5.04" shape="1003.63,960.58 1004.07,961.85 1004.00,962.98 1003.41,963.98 1002.31,964.85"/>
- </edge>
- <edge id=":1624060630_0" function="internal">
- <lane id=":1624060630_0_0" index="0" speed="13.89" length="11.60" shape="1420.99,878.17 1419.14,875.72 1416.96,874.52 1414.33,873.82 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_1" function="internal">
- <lane id=":1624060630_1_0" index="0" speed="11.11" length="11.60" shape="1420.99,878.17 1419.14,875.72 1416.96,874.52 1414.33,873.82 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_2" function="internal">
- <lane id=":1624060630_2_0" index="0" speed="11.11" length="12.86" shape="1420.99,878.17 1419.42,875.14 1418.03,872.46 1416.64,869.79 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_3" function="internal">
- <lane id=":1624060630_3_0" index="0" speed="13.89" length="12.86" shape="1420.99,878.17 1419.42,875.14 1418.03,872.46 1416.64,869.79 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_4" function="internal">
- <lane id=":1624060630_4_0" index="0" speed="13.89" length="2.41" shape="1420.99,878.17 1421.15,876.69 1421.69,875.94"/>
- </edge>
- <edge id=":1624060630_25" function="internal">
- <lane id=":1624060630_25_0" index="0" speed="13.89" length="2.41" shape="1421.69,875.94 1422.62,875.93 1423.92,876.65"/>
- </edge>
- <edge id=":1624060630_5" function="internal">
- <lane id=":1624060630_5_0" index="0" speed="13.89" length="12.86" shape="1417.99,865.24 1419.56,868.27 1420.95,870.94 1422.34,873.62 1423.92,876.65"/>
- </edge>
- <edge id=":1624060630_6" function="internal">
- <lane id=":1624060630_6_0" index="0" speed="13.89" length="9.70" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1418.73,873.81"/>
- </edge>
- <edge id=":1624060630_26" function="internal">
- <lane id=":1624060630_26_0" index="0" speed="13.89" length="7.84" shape="1418.73,873.81 1416.66,874.35 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_7" function="internal">
- <lane id=":1624060630_7_0" index="0" speed="11.11" length="9.70" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1418.73,873.81"/>
- </edge>
- <edge id=":1624060630_27" function="internal">
- <lane id=":1624060630_27_0" index="0" speed="11.11" length="7.84" shape="1418.73,873.81 1416.66,874.35 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_8" function="internal">
- <lane id=":1624060630_8_0" index="0" speed="11.11" length="3.30" shape="1417.99,865.24 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_9" function="internal">
- <lane id=":1624060630_9_0" index="0" speed="13.89" length="2.41" shape="1417.99,865.24 1417.83,866.71 1417.29,867.46"/>
- </edge>
- <edge id=":1624060630_28" function="internal">
- <lane id=":1624060630_28_0" index="0" speed="13.89" length="2.41" shape="1417.29,867.46 1416.36,867.47 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_10" function="internal">
- <lane id=":1624060630_10_0" index="0" speed="11.11" length="12.86" shape="1417.99,865.24 1419.56,868.27 1420.95,870.94 1422.34,873.62 1423.92,876.65"/>
- </edge>
- <edge id=":1624060630_11" function="internal">
- <lane id=":1624060630_11_0" index="0" speed="11.11" length="17.54" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1416.66,874.35 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_12" function="internal">
- <lane id=":1624060630_12_0" index="0" speed="8.33" length="17.54" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1416.66,874.35 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_13" function="internal">
- <lane id=":1624060630_13_0" index="0" speed="11.11" length="3.30" shape="1417.99,865.24 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_14" function="internal">
- <lane id=":1624060630_14_0" index="0" speed="8.33" length="4.82" shape="1417.99,865.24 1417.83,866.71 1417.29,867.46 1416.36,867.47 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_15" function="internal">
- <lane id=":1624060630_15_0" index="0" speed="8.33" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_16" function="internal">
- <lane id=":1624060630_16_0" index="0" speed="11.11" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_17" function="internal">
- <lane id=":1624060630_17_0" index="0" speed="11.11" length="13.80" shape="1412.35,869.77 1415.80,870.99 1419.02,872.23 1421.79,873.96 1423.92,876.65"/>
- </edge>
- <edge id=":1624060630_18" function="internal">
- <lane id=":1624060630_18_0" index="0" speed="8.33" length="3.30" shape="1412.35,869.77 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_19" function="internal">
- <lane id=":1624060630_19_0" index="0" speed="11.11" length="4.82" shape="1412.35,869.77 1413.21,870.99 1413.29,871.91 1412.61,872.53 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_20" function="internal">
- <lane id=":1624060630_20_0" index="0" speed="11.11" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_21" function="internal">
- <lane id=":1624060630_21_0" index="0" speed="13.89" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
- </edge>
- <edge id=":1624060630_22" function="internal">
- <lane id=":1624060630_22_0" index="0" speed="13.89" length="13.80" shape="1412.35,869.77 1415.80,870.99 1419.02,872.23 1421.79,873.96 1423.92,876.65"/>
- </edge>
- <edge id=":1624060630_23" function="internal">
- <lane id=":1624060630_23_0" index="0" speed="13.89" length="3.30" shape="1412.35,869.77 1411.16,872.85"/>
- </edge>
- <edge id=":1624060630_24" function="internal">
- <lane id=":1624060630_24_0" index="0" speed="11.11" length="4.82" shape="1412.35,869.77 1413.21,870.99 1413.29,871.91 1412.61,872.53 1411.16,872.85"/>
- </edge>
- <edge id=":1625774769_0" function="internal">
- <lane id=":1625774769_0_0" index="0" speed="8.33" length="4.82" shape="1640.25,2491.48 1640.09,2492.95 1639.55,2493.70 1638.63,2493.72 1637.32,2493.00"/>
- </edge>
- <edge id=":1627657715_0" function="internal">
- <lane id=":1627657715_0_0" index="0" speed="22.22" length="9.54" shape="707.58,1103.29 698.69,1106.73"/>
- </edge>
- <edge id=":1627657715_1" function="internal">
- <lane id=":1627657715_1_0" index="0" speed="13.89" length="6.98" shape="707.58,1103.29 704.97,1103.86 702.68,1103.43 701.08,1102.27"/>
- </edge>
- <edge id=":1627657715_9" function="internal">
- <lane id=":1627657715_9_0" index="0" speed="13.89" length="3.40" shape="701.08,1102.27 700.71,1102.00 699.06,1099.56"/>
- </edge>
- <edge id=":1627657715_2" function="internal">
- <lane id=":1627657715_2_0" index="0" speed="22.22" length="2.41" shape="707.58,1103.29 706.13,1102.97 705.44,1102.35"/>
- </edge>
- <edge id=":1627657715_10" function="internal">
- <lane id=":1627657715_10_0" index="0" speed="22.22" length="2.41" shape="705.44,1102.35 705.53,1101.43 706.39,1100.21"/>
- </edge>
- <edge id=":1627657715_3" function="internal">
- <lane id=":1627657715_3_0" index="0" speed="13.89" length="5.44" shape="702.00,1098.07 702.89,1099.41 703.92,1100.21 705.08,1100.48 706.39,1100.21"/>
- </edge>
- <edge id=":1627657715_4" function="internal">
- <lane id=":1627657715_4_0" index="0" speed="13.89" length="10.85" shape="702.00,1098.07 702.97,1100.92 702.74,1103.32 701.31,1105.26 698.69,1106.73"/>
- </edge>
- <edge id=":1627657715_5" function="internal">
- <lane id=":1627657715_5_0" index="0" speed="5.56" length="4.82" shape="702.00,1098.07 701.83,1099.54 701.28,1100.28 700.36,1100.29 699.06,1099.56"/>
- </edge>
- <edge id=":1627657715_6" function="internal">
- <lane id=":1627657715_6_0" index="0" speed="13.89" length="5.12" shape="697.49,1103.66 698.74,1102.96 699.41,1102.04 699.52,1100.91 699.06,1099.56"/>
- </edge>
- <edge id=":1627657715_7" function="internal">
- <lane id=":1627657715_7_0" index="0" speed="22.22" length="9.53" shape="697.49,1103.66 706.39,1100.21"/>
- </edge>
- <edge id=":1627657715_8" function="internal">
- <lane id=":1627657715_8_0" index="0" speed="22.22" length="2.41" shape="697.49,1103.66 698.95,1103.98 699.63,1104.60"/>
- </edge>
- <edge id=":1627657715_11" function="internal">
- <lane id=":1627657715_11_0" index="0" speed="22.22" length="2.41" shape="699.63,1104.60 699.54,1105.52 698.69,1106.73"/>
- </edge>
- <edge id=":1627657783_0" function="internal">
- <lane id=":1627657783_0_0" index="0" speed="13.89" length="2.02" shape="674.11,1050.47 673.81,1050.03 673.43,1049.74 672.97,1049.60 672.44,1049.62"/>
- </edge>
- <edge id=":1627657783_1" function="internal">
- <lane id=":1627657783_1_0" index="0" speed="5.56" length="4.82" shape="674.11,1050.47 674.28,1049.00 674.83,1048.26 675.75,1048.25 677.05,1048.98"/>
- </edge>
- <edge id=":1627657783_2" function="internal">
- <lane id=":1627657783_2_0" index="0" speed="13.89" length="6.20" shape="671.93,1046.36 673.56,1046.32 674.96,1046.74 676.13,1047.63 677.05,1048.98"/>
- </edge>
- <edge id=":1627657783_3" function="internal">
- <lane id=":1627657783_3_0" index="0" speed="22.22" length="4.82" shape="671.93,1046.36 673.28,1046.98 673.81,1047.73 673.53,1048.61 672.44,1049.62"/>
- </edge>
- <edge id=":1627657822_0" function="internal">
- <lane id=":1627657822_0_0" index="0" speed="13.89" length="6.59" shape="639.07,1059.44 637.94,1057.59 636.76,1056.33 635.53,1055.66 634.24,1055.57"/>
- </edge>
- <edge id=":1627657822_1" function="internal">
- <lane id=":1627657822_1_0" index="0" speed="13.89" length="12.14" shape="639.07,1059.44 637.92,1056.14 638.27,1053.59 640.12,1051.81 643.47,1050.79"/>
- </edge>
- <edge id=":1627657822_2" function="internal">
- <lane id=":1627657822_2_0" index="0" speed="5.56" length="4.82" shape="639.07,1059.44 639.24,1057.96 639.78,1057.22 640.70,1057.21 642.00,1057.93"/>
- </edge>
- <edge id=":1627657822_3" function="internal">
- <lane id=":1627657822_3_0" index="0" speed="13.89" length="5.44" shape="643.98,1054.05 642.48,1054.51 641.65,1055.31 641.49,1056.45 642.00,1057.93"/>
- </edge>
- <edge id=":1627657822_4" function="internal">
- <lane id=":1627657822_4_0" index="0" speed="22.22" length="9.85" shape="643.98,1054.05 634.24,1055.57"/>
- </edge>
- <edge id=":1627657822_5" function="internal">
- <lane id=":1627657822_5_0" index="0" speed="22.22" length="2.41" shape="643.98,1054.05 642.63,1053.43 642.09,1052.68"/>
- </edge>
- <edge id=":1627657822_9" function="internal">
- <lane id=":1627657822_9_0" index="0" speed="22.22" length="2.41" shape="642.09,1052.68 642.37,1051.80 643.47,1050.79"/>
- </edge>
- <edge id=":1627657822_6" function="internal">
- <lane id=":1627657822_6_0" index="0" speed="22.22" length="9.85" shape="633.73,1052.31 643.47,1050.79"/>
- </edge>
- <edge id=":1627657822_7" function="internal">
- <lane id=":1627657822_7_0" index="0" speed="13.89" length="6.78" shape="633.73,1052.31 636.12,1052.37 638.29,1053.33 639.76,1054.71"/>
- </edge>
- <edge id=":1627657822_10" function="internal">
- <lane id=":1627657822_10_0" index="0" speed="13.89" length="3.94" shape="639.76,1054.71 640.25,1055.18 642.00,1057.93"/>
- </edge>
- <edge id=":1627657822_8" function="internal">
- <lane id=":1627657822_8_0" index="0" speed="22.22" length="2.41" shape="633.73,1052.31 635.08,1052.93 635.62,1053.69"/>
- </edge>
- <edge id=":1627657822_11" function="internal">
- <lane id=":1627657822_11_0" index="0" speed="22.22" length="2.41" shape="635.62,1053.69 635.34,1054.56 634.24,1055.57"/>
- </edge>
- <edge id=":1627657825_0" function="internal">
- <lane id=":1627657825_0_0" index="0" speed="22.22" length="9.50" shape="675.95,1117.07 667.50,1121.42"/>
- </edge>
- <edge id=":1627657825_1" function="internal">
- <lane id=":1627657825_1_0" index="0" speed="13.89" length="7.14" shape="675.95,1117.07 673.27,1117.99 670.95,1117.84 669.26,1116.80"/>
- </edge>
- <edge id=":1627657825_9" function="internal">
- <lane id=":1627657825_9_0" index="0" speed="13.89" length="3.18" shape="669.26,1116.80 668.96,1116.61 667.32,1114.31"/>
- </edge>
- <edge id=":1627657825_2" function="internal">
- <lane id=":1627657825_2_0" index="0" speed="22.22" length="2.41" shape="675.95,1117.07 674.47,1116.90 673.72,1116.36"/>
- </edge>
- <edge id=":1627657825_10" function="internal">
- <lane id=":1627657825_10_0" index="0" speed="22.22" length="2.41" shape="673.72,1116.36 673.71,1115.43 674.43,1114.13"/>
- </edge>
- <edge id=":1627657825_3" function="internal">
- <lane id=":1627657825_3_0" index="0" speed="13.89" length="5.00" shape="670.26,1112.80 671.05,1113.91 672.01,1114.51 673.14,1114.58 674.43,1114.13"/>
- </edge>
- <edge id=":1627657825_4" function="internal">
- <lane id=":1627657825_4_0" index="0" speed="13.89" length="10.32" shape="670.26,1112.80 671.19,1115.47 671.03,1117.80 669.81,1119.78 667.50,1121.42"/>
- </edge>
- <edge id=":1627657825_5" function="internal">
- <lane id=":1627657825_5_0" index="0" speed="5.56" length="4.82" shape="670.26,1112.80 670.09,1114.27 669.55,1115.02 668.62,1115.03 667.32,1114.31"/>
- </edge>
- <edge id=":1627657825_6" function="internal">
- <lane id=":1627657825_6_0" index="0" speed="13.89" length="5.00" shape="665.99,1118.49 667.11,1117.69 667.70,1116.73 667.77,1115.60 667.32,1114.31"/>
- </edge>
- <edge id=":1627657825_7" function="internal">
- <lane id=":1627657825_7_0" index="0" speed="22.22" length="9.50" shape="665.99,1118.49 674.43,1114.13"/>
- </edge>
- <edge id=":1627657825_8" function="internal">
- <lane id=":1627657825_8_0" index="0" speed="22.22" length="2.41" shape="665.99,1118.49 667.47,1118.65 668.21,1119.20"/>
- </edge>
- <edge id=":1627657825_11" function="internal">
- <lane id=":1627657825_11_0" index="0" speed="22.22" length="2.41" shape="668.21,1119.20 668.22,1120.12 667.50,1121.42"/>
- </edge>
- <edge id=":1634988377_0" function="internal">
- <lane id=":1634988377_0_0" index="0" speed="13.89" length="5.13" shape="752.73,1448.80 751.31,1448.64 750.23,1449.00 749.48,1449.86 749.08,1451.23"/>
- </edge>
- <edge id=":1634988377_1" function="internal">
- <lane id=":1634988377_1_0" index="0" speed="13.89" length="10.38" shape="752.73,1448.80 749.99,1447.72 748.15,1446.11 747.22,1443.97 747.20,1441.31"/>
- </edge>
- <edge id=":1634988377_2" function="internal">
- <lane id=":1634988377_2_0" index="0" speed="5.56" length="4.82" shape="752.73,1448.80 751.74,1447.69 751.54,1446.79 752.15,1446.09 753.55,1445.60"/>
- </edge>
- <edge id=":1634988377_3" function="internal">
- <lane id=":1634988377_3_0" index="0" speed="13.89" length="5.46" shape="750.46,1441.79 750.50,1443.12 751.02,1444.20 752.04,1445.03 753.55,1445.60"/>
- </edge>
- <edge id=":1634988377_4" function="internal">
- <lane id=":1634988377_4_0" index="0" speed="22.22" length="9.54" shape="750.46,1441.79 749.08,1451.23"/>
- </edge>
- <edge id=":1634988377_5" function="internal">
- <lane id=":1634988377_5_0" index="0" speed="22.22" length="2.41" shape="750.46,1441.79 749.47,1442.90 748.59,1443.18"/>
- </edge>
- <edge id=":1634988377_9" function="internal">
- <lane id=":1634988377_9_0" index="0" speed="22.22" length="2.41" shape="748.59,1443.18 747.84,1442.65 747.20,1441.31"/>
- </edge>
- <edge id=":1634988377_6" function="internal">
- <lane id=":1634988377_6_0" index="0" speed="22.22" length="9.54" shape="745.81,1450.75 747.20,1441.31"/>
- </edge>
- <edge id=":1634988377_7" function="internal">
- <lane id=":1634988377_7_0" index="0" speed="13.89" length="7.20" shape="745.81,1450.75 746.67,1447.85 748.25,1446.02 749.92,1445.48"/>
- </edge>
- <edge id=":1634988377_10" function="internal">
- <lane id=":1634988377_10_0" index="0" speed="13.89" length="3.68" shape="749.92,1445.48 750.54,1445.28 753.55,1445.60"/>
- </edge>
- <edge id=":1634988377_8" function="internal">
- <lane id=":1634988377_8_0" index="0" speed="22.22" length="2.41" shape="745.81,1450.75 746.81,1449.64 747.68,1449.36"/>
- </edge>
- <edge id=":1634988377_11" function="internal">
- <lane id=":1634988377_11_0" index="0" speed="22.22" length="2.41" shape="747.68,1449.36 748.44,1449.88 749.08,1451.23"/>
- </edge>
- <edge id=":1639892546_0" function="internal">
- <lane id=":1639892546_0_0" index="0" speed="8.33" length="5.83" shape="1138.70,1025.47 1133.58,1028.26"/>
- </edge>
- <edge id=":1639892546_1" function="internal">
- <lane id=":1639892546_1_0" index="0" speed="8.33" length="7.84" shape="1138.70,1025.47 1137.38,1025.71 1136.02,1025.04 1134.63,1023.45 1133.20,1020.96"/>
- </edge>
- <edge id=":1639892546_2" function="internal">
- <lane id=":1639892546_2_0" index="0" speed="8.33" length="4.82" shape="1138.70,1025.47 1137.22,1025.32 1136.47,1024.79 1136.44,1023.87 1137.15,1022.56"/>
- </edge>
- <edge id=":1639892546_3" function="internal">
- <lane id=":1639892546_3_0" index="0" speed="8.33" length="3.27" shape="1136.16,1019.51 1136.75,1020.76 1137.10,1021.69 1137.24,1022.29 1137.15,1022.56"/>
- </edge>
- <edge id=":1639892546_4" function="internal">
- <lane id=":1639892546_4_0" index="0" speed="8.33" length="10.30" shape="1136.16,1019.51 1137.06,1022.22 1136.93,1024.59 1135.77,1026.60 1133.58,1028.26"/>
- </edge>
- <edge id=":1639892546_5" function="internal">
- <lane id=":1639892546_5_0" index="0" speed="8.33" length="4.82" shape="1136.16,1019.51 1135.97,1020.98 1135.41,1021.72 1134.49,1021.71 1133.20,1020.96"/>
- </edge>
- <edge id=":1639892546_6" function="internal">
- <lane id=":1639892546_6_0" index="0" speed="8.33" length="5.16" shape="1131.99,1025.37 1133.06,1024.55 1133.62,1023.54 1133.67,1022.34 1133.20,1020.96"/>
- </edge>
- <edge id=":1639892546_7" function="internal">
- <lane id=":1639892546_7_0" index="0" speed="8.33" length="5.87" shape="1131.99,1025.37 1137.15,1022.56"/>
- </edge>
- <edge id=":1639892546_8" function="internal">
- <lane id=":1639892546_8_0" index="0" speed="8.33" length="4.82" shape="1131.99,1025.37 1133.48,1025.50 1134.24,1026.02 1134.27,1026.94 1133.58,1028.26"/>
- </edge>
- <edge id=":1669480279_0" function="internal">
- <lane id=":1669480279_0_0" index="0" speed="13.89" length="3.28" shape="1458.55,1560.80 1457.96,1561.11 1457.72,1561.67 1457.83,1562.50 1458.30,1563.57"/>
- </edge>
- <edge id=":1669480279_1" function="internal">
- <lane id=":1669480279_1_0" index="0" speed="5.56" length="4.17" shape="1458.55,1560.80 1454.48,1561.74"/>
- </edge>
- <edge id=":1669480279_2" function="internal">
- <lane id=":1669480279_2_0" index="0" speed="5.56" length="4.83" shape="1458.55,1560.80 1457.19,1560.19 1456.64,1559.45 1456.91,1558.56 1458.00,1557.54"/>
- </edge>
- <edge id=":1669480279_3" function="internal">
- <lane id=":1669480279_3_0" index="0" speed="13.89" length="4.62" shape="1454.16,1555.72 1454.87,1556.74 1455.75,1557.39 1456.80,1557.65 1458.00,1557.54"/>
- </edge>
- <edge id=":1669480279_4" function="internal">
- <lane id=":1669480279_4_0" index="0" speed="22.22" length="8.88" shape="1454.16,1555.72 1458.30,1563.57"/>
- </edge>
- <edge id=":1669480279_5" function="internal">
- <lane id=":1669480279_5_0" index="0" speed="13.89" length="6.84" shape="1454.16,1555.72 1455.25,1558.14 1455.67,1559.95 1455.41,1561.15 1454.48,1561.74"/>
- </edge>
- <edge id=":1669480279_6" function="internal">
- <lane id=":1669480279_6_0" index="0" speed="5.56" length="4.11" shape="1454.00,1558.47 1458.00,1557.54"/>
- </edge>
- <edge id=":1669480279_7" function="internal">
- <lane id=":1669480279_7_0" index="0" speed="13.89" length="6.90" shape="1454.00,1558.47 1454.80,1558.66 1455.79,1559.58 1456.95,1561.22 1458.30,1563.57"/>
- </edge>
- <edge id=":1669480279_8" function="internal">
- <lane id=":1669480279_8_0" index="0" speed="5.56" length="4.83" shape="1454.00,1558.47 1455.35,1559.10 1455.88,1559.86 1455.59,1560.74 1454.48,1561.74"/>
- </edge>
- <edge id=":1669480280_0" function="internal">
- <lane id=":1669480280_0_0" index="0" speed="16.67" length="3.91" shape="1469.91,1580.45 1469.37,1579.20 1469.19,1578.19 1469.37,1577.44 1469.92,1576.93"/>
- </edge>
- <edge id=":1669480280_1" function="internal">
- <lane id=":1669480280_1_0" index="0" speed="5.56" length="9.51" shape="1469.91,1580.45 1465.49,1572.03"/>
- </edge>
- <edge id=":1669480280_2" function="internal">
- <lane id=":1669480280_2_0" index="0" speed="16.67" length="10.33" shape="1469.91,1580.45 1468.96,1577.78 1469.09,1575.45 1470.31,1573.46 1472.61,1571.80"/>
- </edge>
- <edge id=":1669480280_3" function="internal">
- <lane id=":1669480280_3_0" index="0" speed="5.56" length="4.82" shape="1469.91,1580.45 1470.06,1578.97 1470.60,1578.22 1471.53,1578.20 1472.83,1578.91"/>
- </edge>
- <edge id=":1669480280_4" function="internal">
- <lane id=":1669480280_4_0" index="0" speed="16.67" length="5.00" shape="1474.14,1574.73 1473.03,1575.53 1472.44,1576.49 1472.37,1577.62 1472.83,1578.91"/>
- </edge>
- <edge id=":1669480280_5" function="internal">
- <lane id=":1669480280_5_0" index="0" speed="27.78" length="4.76" shape="1474.14,1574.73 1469.92,1576.93"/>
- </edge>
- <edge id=":1669480280_6" function="internal">
- <lane id=":1669480280_6_0" index="0" speed="16.67" length="7.29" shape="1474.14,1574.73 1471.47,1575.67 1469.14,1575.54 1467.32,1574.43"/>
- </edge>
- <edge id=":1669480280_16" function="internal">
- <lane id=":1669480280_16_0" index="0" speed="16.67" length="3.04" shape="1467.32,1574.43 1467.14,1574.32 1465.49,1572.03"/>
- </edge>
- <edge id=":1669480280_7" function="internal">
- <lane id=":1669480280_7_0" index="0" speed="27.78" length="2.41" shape="1474.14,1574.73 1472.66,1574.57 1471.91,1574.03"/>
- </edge>
- <edge id=":1669480280_17" function="internal">
- <lane id=":1669480280_17_0" index="0" speed="27.78" length="2.41" shape="1471.91,1574.03 1471.90,1573.11 1472.61,1571.80"/>
- </edge>
- <edge id=":1669480280_8" function="internal">
- <lane id=":1669480280_8_0" index="0" speed="16.67" length="5.02" shape="1468.41,1570.49 1469.21,1571.61 1470.18,1572.20 1471.31,1572.26 1472.61,1571.80"/>
- </edge>
- <edge id=":1669480280_9" function="internal">
- <lane id=":1669480280_9_0" index="0" speed="5.56" length="9.51" shape="1468.41,1570.49 1472.83,1578.91"/>
- </edge>
- <edge id=":1669480280_10" function="internal">
- <lane id=":1669480280_10_0" index="0" speed="16.67" length="6.96" shape="1468.41,1570.49 1469.62,1573.02 1470.28,1574.94 1470.38,1576.24 1469.92,1576.93"/>
- </edge>
- <edge id=":1669480280_11" function="internal">
- <lane id=":1669480280_11_0" index="0" speed="5.56" length="4.82" shape="1468.41,1570.49 1468.25,1571.97 1467.71,1572.72 1466.79,1572.74 1465.49,1572.03"/>
- </edge>
- <edge id=":1669480280_12" function="internal">
- <lane id=":1669480280_12_0" index="0" speed="16.67" length="3.32" shape="1467.55,1574.45 1467.19,1574.42 1466.72,1574.00 1466.16,1573.21 1465.49,1572.03"/>
- </edge>
- <edge id=":1669480280_13" function="internal">
- <lane id=":1669480280_13_0" index="0" speed="27.78" length="5.71" shape="1467.55,1574.45 1472.61,1571.80"/>
- </edge>
- <edge id=":1669480280_14" function="internal">
- <lane id=":1669480280_14_0" index="0" speed="16.67" length="4.41" shape="1467.55,1574.45 1468.74,1574.28 1470.02,1574.96 1471.18,1576.28"/>
- </edge>
- <edge id=":1669480280_18" function="internal">
- <lane id=":1669480280_18_0" index="0" speed="16.67" length="3.12" shape="1471.18,1576.28 1471.38,1576.51 1472.83,1578.91"/>
- </edge>
- <edge id=":1669480280_15" function="internal">
- <lane id=":1669480280_15_0" index="0" speed="27.78" length="2.51" shape="1467.55,1574.45 1469.07,1574.18 1469.98,1574.50"/>
- </edge>
- <edge id=":1669480280_19" function="internal">
- <lane id=":1669480280_19_0" index="0" speed="27.78" length="2.51" shape="1469.98,1574.50 1470.26,1575.42 1469.92,1576.93"/>
- </edge>
- <edge id=":1669480281_0" function="internal">
- <lane id=":1669480281_0_0" index="0" speed="27.78" length="7.81" shape="1457.12,1583.62 1456.10,1584.61 1455.80,1586.11 1456.21,1588.14 1457.35,1590.68"/>
- </edge>
- <edge id=":1669480281_1" function="internal">
- <lane id=":1669480281_1_0" index="0" speed="27.78" length="8.32" shape="1457.12,1583.62 1451.87,1590.09"/>
- </edge>
- <edge id=":1669480281_2" function="internal">
- <lane id=":1669480281_2_0" index="0" speed="27.78" length="4.82" shape="1457.12,1583.62 1455.64,1583.47 1454.89,1582.93 1454.87,1582.00 1455.59,1580.70"/>
- </edge>
- <edge id=":1669480281_3" function="internal">
- <lane id=":1669480281_3_0" index="0" speed="27.78" length="7.92" shape="1449.78,1576.47 1451.28,1578.86 1452.75,1580.37 1454.18,1580.98 1455.59,1580.70"/>
- </edge>
- <edge id=":1669480281_4" function="internal">
- <lane id=":1669480281_4_0" index="0" speed="27.78" length="16.10" shape="1449.78,1576.47 1452.03,1580.69 1453.56,1583.57 1455.10,1586.46 1457.35,1590.68"/>
- </edge>
- <edge id=":1669480281_5" function="internal">
- <lane id=":1669480281_5_0" index="0" speed="27.78" length="16.10" shape="1446.87,1578.02 1449.11,1582.24 1450.65,1585.13 1452.19,1588.01 1454.43,1592.23"/>
- </edge>
- <edge id=":1669480281_6" function="internal">
- <lane id=":1669480281_6_0" index="0" speed="27.78" length="10.37" shape="1446.87,1578.02 1448.98,1581.71 1450.76,1584.21 1452.20,1585.51 1453.31,1585.62"/>
- </edge>
- <edge id=":1669480281_7" function="internal">
- <lane id=":1669480281_7_0" index="0" speed="27.78" length="8.33" shape="1447.29,1581.31 1455.59,1580.70"/>
- </edge>
- <edge id=":1669480281_8" function="internal">
- <lane id=":1669480281_8_0" index="0" speed="27.78" length="10.72" shape="1447.39,1584.98 1448.76,1584.95 1450.40,1586.14 1452.29,1588.57 1454.43,1592.23"/>
- </edge>
- <edge id=":1669480281_9" function="internal">
- <lane id=":1669480281_9_0" index="0" speed="27.78" length="8.69" shape="1447.39,1584.98 1449.10,1582.92 1450.66,1582.34 1452.06,1583.24 1453.31,1585.62"/>
- </edge>
- <edge id=":1669480282_0" function="internal">
- <lane id=":1669480282_0_0" index="0" speed="27.78" length="5.07" shape="1443.81,1597.82 1443.00,1596.70 1442.02,1596.11 1440.87,1596.05 1439.55,1596.52"/>
- </edge>
- <edge id=":1669480282_1" function="internal">
- <lane id=":1669480282_1_0" index="0" speed="27.78" length="16.13" shape="1443.81,1597.82 1441.57,1593.58 1440.04,1590.69 1438.51,1587.79 1436.28,1583.55"/>
- </edge>
- <edge id=":1669480282_2" function="internal">
- <lane id=":1669480282_2_0" index="0" speed="27.78" length="16.13" shape="1446.73,1596.28 1444.49,1592.04 1442.96,1589.14 1441.43,1586.25 1439.20,1582.01"/>
- </edge>
- <edge id=":1669480282_3" function="internal">
- <lane id=":1669480282_3_0" index="0" speed="27.78" length="10.31" shape="1446.73,1596.28 1444.63,1592.58 1442.88,1590.07 1441.47,1588.76 1440.40,1588.63"/>
- </edge>
- <edge id=":1669480282_4" function="internal">
- <lane id=":1669480282_4_0" index="0" speed="27.78" length="9.85" shape="1447.78,1592.22 1438.03,1593.59"/>
- </edge>
- <edge id=":1669480282_5" function="internal">
- <lane id=":1669480282_5_0" index="0" speed="27.78" length="10.76" shape="1446.25,1589.30 1444.87,1589.33 1443.23,1588.13 1441.34,1585.69 1439.20,1582.01"/>
- </edge>
- <edge id=":1669480282_6" function="internal">
- <lane id=":1669480282_6_0" index="0" speed="27.78" length="8.61" shape="1446.25,1589.30 1444.54,1591.33 1442.99,1591.89 1441.61,1590.99 1440.40,1588.63"/>
- </edge>
- <edge id=":1669480282_7" function="internal">
- <lane id=":1669480282_7_0" index="0" speed="27.78" length="5.01" shape="1434.97,1587.74 1436.09,1586.94 1436.68,1585.97 1436.74,1584.85 1436.28,1583.55"/>
- </edge>
- <edge id=":1669480282_8" function="internal">
- <lane id=":1669480282_8_0" index="0" speed="27.78" length="10.35" shape="1436.50,1590.66 1438.80,1589.01 1440.02,1587.02 1440.15,1584.68 1439.20,1582.01"/>
- </edge>
- <edge id=":1669480282_9" function="internal">
- <lane id=":1669480282_9_0" index="0" speed="27.78" length="8.36" shape="1436.50,1590.66 1441.79,1584.18"/>
- </edge>
- <edge id=":1669480282_10" function="internal">
- <lane id=":1669480282_10_0" index="0" speed="27.78" length="4.82" shape="1436.50,1590.66 1437.98,1590.82 1438.73,1591.36 1438.74,1592.29 1438.03,1593.59"/>
- </edge>
- <edge id=":1669480283_0" function="internal">
- <lane id=":1669480283_0_0" index="0" speed="13.89" length="4.67" shape="1475.99,1591.40 1475.04,1592.12 1474.57,1593.02 1474.58,1594.11 1475.06,1595.39"/>
- </edge>
- <edge id=":1669480283_1" function="internal">
- <lane id=":1669480283_1_0" index="0" speed="5.56" length="2.68" shape="1475.99,1591.40 1473.62,1592.65"/>
- </edge>
- <edge id=":1669480283_2" function="internal">
- <lane id=":1669480283_2_0" index="0" speed="5.56" length="4.98" shape="1475.99,1591.40 1474.47,1591.63 1473.58,1591.29 1473.32,1590.37 1473.69,1588.88"/>
- </edge>
- <edge id=":1669480283_3" function="internal">
- <lane id=":1669480283_3_0" index="0" speed="13.89" length="4.02" shape="1470.63,1586.98 1471.37,1588.13 1472.12,1588.83 1472.90,1589.08 1473.69,1588.88"/>
- </edge>
- <edge id=":1669480283_4" function="internal">
- <lane id=":1669480283_4_0" index="0" speed="22.22" length="9.50" shape="1470.63,1586.98 1475.06,1595.39"/>
- </edge>
- <edge id=":1669480283_5" function="internal">
- <lane id=":1669480283_5_0" index="0" speed="13.89" length="6.40" shape="1470.63,1586.98 1471.94,1589.46 1472.87,1591.23 1473.43,1592.29 1473.62,1592.65"/>
- </edge>
- <edge id=":1669480283_6" function="internal">
- <lane id=":1669480283_6_0" index="0" speed="5.56" length="1.82" shape="1472.08,1589.73 1473.69,1588.88"/>
- </edge>
- <edge id=":1669480283_7" function="internal">
- <lane id=":1669480283_7_0" index="0" speed="13.89" length="6.40" shape="1472.08,1589.73 1472.27,1590.08 1472.83,1591.14 1473.76,1592.91 1475.06,1595.39"/>
- </edge>
- <edge id=":1669480283_8" function="internal">
- <lane id=":1669480283_8_0" index="0" speed="5.56" length="4.82" shape="1472.08,1589.73 1473.56,1589.88 1474.31,1590.42 1474.33,1591.34 1473.62,1592.65"/>
- </edge>
- <edge id=":1669480284_0" function="internal">
- <lane id=":1669480284_0_0" index="0" speed="16.67" length="5.01" shape="1464.46,1597.42 1463.34,1598.22 1462.75,1599.18 1462.69,1600.31 1463.16,1601.60"/>
- </edge>
- <edge id=":1669480284_1" function="internal">
- <lane id=":1669480284_1_0" index="0" speed="5.56" length="5.05" shape="1464.46,1597.42 1459.98,1599.74"/>
- </edge>
- <edge id=":1669480284_2" function="internal">
- <lane id=":1669480284_2_0" index="0" speed="5.56" length="4.82" shape="1464.46,1597.42 1462.98,1597.25 1462.24,1596.71 1462.22,1595.79 1462.94,1594.49"/>
- </edge>
- <edge id=":1669480284_3" function="internal">
- <lane id=":1669480284_3_0" index="0" speed="16.67" length="5.10" shape="1458.66,1593.15 1459.48,1594.28 1460.47,1594.88 1461.63,1594.95 1462.94,1594.49"/>
- </edge>
- <edge id=":1669480284_4" function="internal">
- <lane id=":1669480284_4_0" index="0" speed="27.78" length="9.58" shape="1458.66,1593.15 1463.16,1601.60"/>
- </edge>
- <edge id=":1669480284_5" function="internal">
- <lane id=":1669480284_5_0" index="0" speed="27.78" length="9.58" shape="1455.75,1594.70 1460.25,1603.15"/>
- </edge>
- <edge id=":1669480284_6" function="internal">
- <lane id=":1669480284_6_0" index="0" speed="16.67" length="6.84" shape="1455.75,1594.70 1457.14,1597.14 1458.31,1598.79 1459.26,1599.66 1459.98,1599.74"/>
- </edge>
- <edge id=":1669480284_7" function="internal">
- <lane id=":1669480284_7_0" index="0" speed="5.56" length="5.05" shape="1458.46,1596.81 1462.94,1594.49"/>
- </edge>
- <edge id=":1669480284_8" function="internal">
- <lane id=":1669480284_8_0" index="0" speed="16.67" length="6.87" shape="1458.46,1596.81 1458.10,1597.45 1458.28,1598.72 1459.00,1600.62 1460.25,1603.15"/>
- </edge>
- <edge id=":1669480284_9" function="internal">
- <lane id=":1669480284_9_0" index="0" speed="5.56" length="4.82" shape="1458.46,1596.81 1459.93,1596.97 1460.68,1597.52 1460.69,1598.44 1459.98,1599.74"/>
- </edge>
- <edge id=":1669480286_0" function="internal">
- <lane id=":1669480286_0_0" index="0" speed="16.67" length="5.08" shape="1449.54,1608.67 1448.73,1607.54 1447.74,1606.95 1446.60,1606.88 1445.29,1607.34"/>
- </edge>
- <edge id=":1669480286_1" function="internal">
- <lane id=":1669480286_1_0" index="0" speed="27.78" length="9.55" shape="1449.54,1608.67 1445.08,1600.22"/>
- </edge>
- <edge id=":1669480286_2" function="internal">
- <lane id=":1669480286_2_0" index="0" speed="27.78" length="9.56" shape="1452.46,1607.13 1448.00,1598.68"/>
- </edge>
- <edge id=":1669480286_3" function="internal">
- <lane id=":1669480286_3_0" index="0" speed="16.67" length="7.25" shape="1452.46,1607.13 1451.03,1604.71 1449.74,1603.12 1448.59,1602.36 1447.58,1602.43"/>
- </edge>
- <edge id=":1669480286_4" function="internal">
- <lane id=":1669480286_4_0" index="0" speed="5.56" length="9.03" shape="1453.30,1603.19 1445.29,1607.34"/>
- </edge>
- <edge id=":1669480286_5" function="internal">
- <lane id=":1669480286_5_0" index="0" speed="16.67" length="7.56" shape="1453.30,1603.19 1452.11,1603.35 1450.83,1602.66 1449.46,1601.10 1448.00,1598.68"/>
- </edge>
- <edge id=":1669480286_6" function="internal">
- <lane id=":1669480286_6_0" index="0" speed="5.56" length="8.43" shape="1453.30,1603.19 1451.59,1605.15 1450.06,1605.67 1448.73,1604.77 1447.58,1602.43"/>
- </edge>
- <edge id=":1669480286_7" function="internal">
- <lane id=":1669480286_7_0" index="0" speed="16.67" length="5.01" shape="1443.77,1604.40 1444.89,1603.61 1445.48,1602.64 1445.54,1601.51 1445.08,1600.22"/>
- </edge>
- <edge id=":1669480286_8" function="internal">
- <lane id=":1669480286_8_0" index="0" speed="5.56" length="4.29" shape="1443.77,1604.40 1447.58,1602.43"/>
- </edge>
- <edge id=":1669480286_9" function="internal">
- <lane id=":1669480286_9_0" index="0" speed="5.56" length="4.82" shape="1443.77,1604.40 1445.25,1604.57 1445.99,1605.11 1446.01,1606.03 1445.29,1607.34"/>
- </edge>
- <edge id=":1669480287_0" function="internal">
- <lane id=":1669480287_0_0" index="0" speed="13.89" length="5.39" shape="1437.73,1614.83 1436.83,1613.73 1435.76,1613.16 1434.52,1613.13 1433.10,1613.64"/>
- </edge>
- <edge id=":1669480287_1" function="internal">
- <lane id=":1669480287_1_0" index="0" speed="22.22" length="9.69" shape="1437.73,1614.83 1432.79,1606.50"/>
- </edge>
- <edge id=":1669480287_2" function="internal">
- <lane id=":1669480287_2_0" index="0" speed="13.89" length="8.01" shape="1437.73,1614.83 1436.47,1612.29 1436.00,1610.25 1436.32,1608.72 1437.43,1607.69"/>
- </edge>
- <edge id=":1669480287_3" function="internal">
- <lane id=":1669480287_3_0" index="0" speed="5.56" length="6.58" shape="1438.94,1610.62 1433.10,1613.64"/>
- </edge>
- <edge id=":1669480287_4" function="internal">
- <lane id=":1669480287_4_0" index="0" speed="13.89" length="8.11" shape="1438.94,1610.62 1437.49,1610.91 1435.99,1610.32 1434.42,1608.85 1432.79,1606.50"/>
- </edge>
- <edge id=":1669480287_5" function="internal">
- <lane id=":1669480287_5_0" index="0" speed="5.56" length="4.82" shape="1438.94,1610.62 1437.46,1610.45 1436.72,1609.91 1436.71,1608.99 1437.43,1607.69"/>
- </edge>
- <edge id=":1669480287_6" function="internal">
- <lane id=":1669480287_6_0" index="0" speed="13.89" length="5.07" shape="1431.58,1610.71 1432.72,1609.90 1433.30,1608.92 1433.33,1607.79 1432.79,1606.50"/>
- </edge>
- <edge id=":1669480287_7" function="internal">
- <lane id=":1669480287_7_0" index="0" speed="5.56" length="6.58" shape="1431.58,1610.71 1437.43,1607.69"/>
- </edge>
- <edge id=":1669480287_8" function="internal">
- <lane id=":1669480287_8_0" index="0" speed="5.56" length="4.82" shape="1431.58,1610.71 1433.06,1610.88 1433.81,1611.42 1433.82,1612.34 1433.10,1613.64"/>
- </edge>
- <edge id=":1669480292_0" function="internal">
- <lane id=":1669480292_0_0" index="0" speed="5.56" length="6.23" shape="1587.29,1822.66 1584.40,1817.14"/>
- </edge>
- <edge id=":1669480292_1" function="internal">
- <lane id=":1669480292_1_0" index="0" speed="13.89" length="5.38" shape="1587.29,1822.66 1586.86,1821.35 1587.00,1820.18 1587.71,1819.15 1588.99,1818.25"/>
- </edge>
- <edge id=":1669480292_2" function="internal">
- <lane id=":1669480292_2_0" index="0" speed="5.56" length="4.82" shape="1587.29,1822.66 1587.45,1821.18 1587.99,1820.44 1588.91,1820.42 1590.22,1821.13"/>
- </edge>
- <edge id=":1669480292_3" function="internal">
- <lane id=":1669480292_3_0" index="0" speed="13.89" length="3.14" shape="1587.33,1815.61 1587.97,1816.81 1588.46,1817.65 1588.80,1818.13 1588.99,1818.25"/>
- </edge>
- <edge id=":1669480292_4" function="internal">
- <lane id=":1669480292_4_0" index="0" speed="5.56" length="6.23" shape="1587.33,1815.61 1590.22,1821.13"/>
- </edge>
- <edge id=":1669480292_5" function="internal">
- <lane id=":1669480292_5_0" index="0" speed="5.56" length="4.82" shape="1587.33,1815.61 1587.17,1817.09 1586.63,1817.84 1585.71,1817.86 1584.40,1817.14"/>
- </edge>
- <edge id=":1669480292_6" function="internal">
- <lane id=":1669480292_6_0" index="0" speed="13.89" length="5.03" shape="1583.10,1821.36 1584.22,1820.55 1584.80,1819.58 1584.87,1818.44 1584.40,1817.14"/>
- </edge>
- <edge id=":1669480292_7" function="internal">
- <lane id=":1669480292_7_0" index="0" speed="22.22" length="6.65" shape="1583.10,1821.36 1588.99,1818.25"/>
- </edge>
- <edge id=":1669480292_8" function="internal">
- <lane id=":1669480292_8_0" index="0" speed="13.89" length="7.86" shape="1583.10,1821.36 1585.67,1820.22 1587.71,1819.81 1589.23,1820.11 1590.22,1821.13"/>
- </edge>
- <edge id=":1718241040_0" function="internal">
- <lane id=":1718241040_0_0" index="0" speed="8.33" length="4.82" shape="754.04,306.75 753.61,305.33 753.81,304.43 754.65,304.05 756.13,304.20"/>
- </edge>
- <edge id=":1719213140_0" function="internal">
- <lane id=":1719213140_0_0" index="0" speed="5.56" length="6.23" shape="1244.78,1686.54 1241.84,1681.05"/>
- </edge>
- <edge id=":1719213140_1" function="internal">
- <lane id=":1719213140_1_0" index="0" speed="13.89" length="7.85" shape="1244.78,1686.54 1244.50,1685.15 1245.11,1683.74 1246.62,1682.29 1249.01,1680.82"/>
- </edge>
- <edge id=":1719213140_2" function="internal">
- <lane id=":1719213140_2_0" index="0" speed="5.56" length="4.82" shape="1244.78,1686.54 1244.93,1685.07 1245.47,1684.32 1246.40,1684.30 1247.70,1685.01"/>
- </edge>
- <edge id=":1719213140_3" function="internal">
- <lane id=":1719213140_3_0" index="0" speed="13.89" length="5.08" shape="1244.74,1679.47 1245.58,1680.60 1246.57,1681.21 1247.71,1681.28 1249.01,1680.82"/>
- </edge>
- <edge id=":1719213140_4" function="internal">
- <lane id=":1719213140_4_0" index="0" speed="5.56" length="6.28" shape="1244.74,1679.47 1247.70,1685.01"/>
- </edge>
- <edge id=":1719213140_5" function="internal">
- <lane id=":1719213140_5_0" index="0" speed="5.56" length="4.82" shape="1244.74,1679.47 1244.61,1680.95 1244.08,1681.71 1243.16,1681.74 1241.84,1681.05"/>
- </edge>
- <edge id=":1719213140_6" function="internal">
- <lane id=":1719213140_6_0" index="0" speed="13.89" length="5.02" shape="1240.57,1685.24 1241.68,1684.43 1242.27,1683.47 1242.32,1682.34 1241.84,1681.05"/>
- </edge>
- <edge id=":1719213140_7" function="internal">
- <lane id=":1719213140_7_0" index="0" speed="22.22" length="9.53" shape="1240.57,1685.24 1249.01,1680.82"/>
- </edge>
- <edge id=":1719213140_8" function="internal">
- <lane id=":1719213140_8_0" index="0" speed="13.89" length="7.87" shape="1240.57,1685.24 1243.15,1684.11 1245.20,1683.69 1246.71,1683.99 1247.70,1685.01"/>
- </edge>
- <edge id=":1719213141_0" function="internal">
- <lane id=":1719213141_0_0" index="0" speed="13.89" length="5.01" shape="1252.02,1700.32 1251.22,1699.21 1250.25,1698.62 1249.12,1698.56 1247.83,1699.03"/>
- </edge>
- <edge id=":1719213141_1" function="internal">
- <lane id=":1719213141_1_0" index="0" speed="5.56" length="6.23" shape="1252.02,1700.32 1249.12,1694.81"/>
- </edge>
- <edge id=":1719213141_2" function="internal">
- <lane id=":1719213141_2_0" index="0" speed="5.56" length="4.82" shape="1252.02,1700.32 1252.17,1698.85 1252.71,1698.10 1253.64,1698.08 1254.94,1698.79"/>
- </edge>
- <edge id=":1719213141_3" function="internal">
- <lane id=":1719213141_3_0" index="0" speed="13.89" length="5.03" shape="1256.23,1694.57 1255.12,1695.38 1254.54,1696.35 1254.48,1697.49 1254.94,1698.79"/>
- </edge>
- <edge id=":1719213141_4" function="internal">
- <lane id=":1719213141_4_0" index="0" speed="22.22" length="9.52" shape="1256.23,1694.57 1247.83,1699.03"/>
- </edge>
- <edge id=":1719213141_5" function="internal">
- <lane id=":1719213141_5_0" index="0" speed="13.89" length="7.86" shape="1256.23,1694.57 1253.67,1695.71 1251.63,1696.13 1250.11,1695.83 1249.12,1694.81"/>
- </edge>
- <edge id=":1719213141_6" function="internal">
- <lane id=":1719213141_6_0" index="0" speed="5.56" length="6.23" shape="1252.04,1693.27 1254.94,1698.79"/>
- </edge>
- <edge id=":1719213141_7" function="internal">
- <lane id=":1719213141_7_0" index="0" speed="13.89" length="7.87" shape="1252.04,1693.27 1252.32,1694.66 1251.71,1696.09 1250.22,1697.54 1247.83,1699.03"/>
- </edge>
- <edge id=":1719213141_8" function="internal">
- <lane id=":1719213141_8_0" index="0" speed="5.56" length="4.82" shape="1252.04,1693.27 1251.89,1694.75 1251.35,1695.50 1250.43,1695.52 1249.12,1694.81"/>
- </edge>
- <edge id=":1719213509_0" function="internal">
- <lane id=":1719213509_0_0" index="0" speed="5.56" length="6.74" shape="840.62,975.12 837.29,969.26"/>
- </edge>
- <edge id=":1719213509_1" function="internal">
- <lane id=":1719213509_1_0" index="0" speed="13.89" length="7.96" shape="840.62,975.12 840.22,973.70 840.75,972.23 842.19,970.72 844.56,969.17"/>
- </edge>
- <edge id=":1719213509_2" function="internal">
- <lane id=":1719213509_2_0" index="0" speed="5.56" length="4.82" shape="840.62,975.12 840.68,973.64 841.17,972.86 842.09,972.78 843.44,973.41"/>
- </edge>
- <edge id=":1719213509_3" function="internal">
- <lane id=":1719213509_3_0" index="0" speed="13.89" length="5.26" shape="840.20,967.71 841.07,968.93 842.09,969.57 843.25,969.65 844.56,969.17"/>
- </edge>
- <edge id=":1719213509_4" function="internal">
- <lane id=":1719213509_4_0" index="0" speed="5.56" length="6.55" shape="840.20,967.71 843.44,973.41"/>
- </edge>
- <edge id=":1719213509_5" function="internal">
- <lane id=":1719213509_5_0" index="0" speed="5.56" length="4.82" shape="840.20,967.71 840.05,969.19 839.52,969.95 838.60,969.97 837.29,969.26"/>
- </edge>
- <edge id=":1719213509_6" function="internal">
- <lane id=":1719213509_6_0" index="0" speed="13.89" length="5.12" shape="835.80,973.39 837.03,972.66 837.68,971.73 837.77,970.60 837.29,969.26"/>
- </edge>
- <edge id=":1719213509_7" function="internal">
- <lane id=":1719213509_7_0" index="0" speed="22.22" length="9.72" shape="835.80,973.39 844.56,969.17"/>
- </edge>
- <edge id=":1719213509_8" function="internal">
- <lane id=":1719213509_8_0" index="0" speed="13.89" length="8.21" shape="835.80,973.39 838.56,972.45 840.76,972.13 842.38,972.46 843.44,973.41"/>
- </edge>
- <edge id=":1719213668_0" function="internal">
- <lane id=":1719213668_0_0" index="0" speed="5.56" length="6.41" shape="789.29,884.81 786.33,879.12"/>
- </edge>
- <edge id=":1719213668_1" function="internal">
- <lane id=":1719213668_1_0" index="0" speed="13.89" length="7.99" shape="789.29,884.81 789.00,883.39 789.60,881.92 791.09,880.41 793.46,878.86"/>
- </edge>
- <edge id=":1719213668_2" function="internal">
- <lane id=":1719213668_2_0" index="0" speed="5.56" length="4.82" shape="789.29,884.81 789.45,883.33 789.99,882.59 790.91,882.57 792.21,883.29"/>
- </edge>
- <edge id=":1719213668_3" function="internal">
- <lane id=":1719213668_3_0" index="0" speed="13.89" length="5.04" shape="789.26,877.60 790.07,878.73 791.04,879.31 792.17,879.36 793.46,878.86"/>
- </edge>
- <edge id=":1719213668_4" function="internal">
- <lane id=":1719213668_4_0" index="0" speed="5.56" length="6.41" shape="789.26,877.60 792.21,883.29"/>
- </edge>
- <edge id=":1719213668_5" function="internal">
- <lane id=":1719213668_5_0" index="0" speed="5.56" length="4.82" shape="789.26,877.60 789.10,879.08 788.56,879.83 787.63,879.84 786.33,879.12"/>
- </edge>
- <edge id=":1719213668_6" function="internal">
- <lane id=":1719213668_6_0" index="0" speed="13.89" length="5.22" shape="785.08,883.56 786.19,882.70 786.77,881.68 786.82,880.48 786.33,879.12"/>
- </edge>
- <edge id=":1719213668_7" function="internal">
- <lane id=":1719213668_7_0" index="0" speed="22.22" length="9.61" shape="785.08,883.56 793.46,878.86"/>
- </edge>
- <edge id=":1719213668_8" function="internal">
- <lane id=":1719213668_8_0" index="0" speed="13.89" length="7.94" shape="785.08,883.56 787.64,882.36 789.68,881.91 791.21,882.22 792.21,883.29"/>
- </edge>
- <edge id=":1719223322_0" function="internal">
- <lane id=":1719223322_0_0" index="0" speed="15.28" length="5.03" shape="1075.84,1562.70 1075.04,1561.60 1074.06,1561.01 1072.92,1560.95 1071.60,1561.40"/>
- </edge>
- <edge id=":1719223322_1" function="internal">
- <lane id=":1719223322_1_0" index="0" speed="22.22" length="9.49" shape="1075.84,1562.70 1071.45,1554.29"/>
- </edge>
- <edge id=":1719223322_2" function="internal">
- <lane id=":1719223322_2_0" index="0" speed="15.28" length="5.01" shape="1070.11,1558.46 1071.23,1557.67 1071.83,1556.71 1071.90,1555.59 1071.45,1554.29"/>
- </edge>
- <edge id=":1719223322_3" function="internal">
- <lane id=":1719223322_3_0" index="0" speed="8.33" length="4.82" shape="1070.11,1558.46 1071.58,1558.64 1072.33,1559.18 1072.33,1560.11 1071.60,1561.40"/>
- </edge>
- <edge id=":1719223329_0" function="internal">
- <lane id=":1719223329_0_0" index="0" speed="8.33" length="5.65" shape="924.68,1598.78 919.48,1600.99"/>
- </edge>
- <edge id=":1719223329_1" function="internal">
- <lane id=":1719223329_1_0" index="0" speed="6.94" length="5.32" shape="924.68,1598.78 919.49,1599.97"/>
- </edge>
- <edge id=":1719223329_2" function="internal">
- <lane id=":1719223329_2_0" index="0" speed="8.33" length="2.41" shape="924.68,1598.78 923.21,1598.61 922.47,1598.06"/>
- </edge>
- <edge id=":1719223329_9" function="internal">
- <lane id=":1719223329_9_0" index="0" speed="8.33" length="2.41" shape="922.47,1598.06 922.46,1597.14 923.19,1595.84"/>
- </edge>
- <edge id=":1719223329_3" function="internal">
- <lane id=":1719223329_3_0" index="0" speed="6.94" length="3.75" shape="919.53,1596.67 923.19,1595.84"/>
- </edge>
- <edge id=":1719223329_4" function="internal">
- <lane id=":1719223329_4_0" index="0" speed="6.94" length="7.40" shape="919.53,1596.67 923.71,1597.03 925.10,1597.87 923.94,1598.95"/>
- </edge>
- <edge id=":1719223329_10" function="internal">
- <lane id=":1719223329_10_0" index="0" speed="6.94" length="4.92" shape="923.94,1598.95 923.69,1599.19 919.48,1600.99"/>
- </edge>
- <edge id=":1719223329_5" function="internal">
- <lane id=":1719223329_5_0" index="0" speed="5.56" length="2.41" shape="919.53,1596.67 920.76,1597.50 921.16,1598.33"/>
- </edge>
- <edge id=":1719223329_11" function="internal">
- <lane id=":1719223329_11_0" index="0" speed="5.56" length="2.41" shape="921.16,1598.33 920.74,1599.15 919.49,1599.97"/>
- </edge>
- <edge id=":1719223329_6" function="internal">
- <lane id=":1719223329_6_0" index="0" speed="8.33" length="4.01" shape="919.52,1597.47 923.19,1595.84"/>
- </edge>
- <edge id=":1719223329_7" function="internal">
- <lane id=":1719223329_7_0" index="0" speed="6.94" length="7.12" shape="919.52,1597.47 917.09,1598.51 916.28,1599.27 917.08,1599.75 919.49,1599.97"/>
- </edge>
- <edge id=":1719223329_8" function="internal">
- <lane id=":1719223329_8_0" index="0" speed="8.33" length="5.15" shape="919.52,1597.47 920.83,1598.36 921.26,1599.25 920.81,1600.12 919.48,1600.99"/>
- </edge>
- <edge id=":1726380179_0" function="internal">
- <lane id=":1726380179_0_0" index="0" speed="22.22" length="0.10" shape="820.60,440.63 820.60,440.63"/>
- </edge>
- <edge id=":1726380184_0" function="internal">
- <lane id=":1726380184_0_0" index="0" speed="22.22" length="5.03" shape="681.23,1356.86 680.41,1355.74 679.43,1355.17 678.30,1355.13 677.01,1355.64"/>
- </edge>
- <edge id=":1726380184_1" function="internal">
- <lane id=":1726380184_1_0" index="0" speed="22.22" length="2.41" shape="681.23,1356.86 681.37,1355.38 681.91,1354.63"/>
- </edge>
- <edge id=":1726380184_4" function="internal">
- <lane id=":1726380184_4_0" index="0" speed="22.22" length="2.41" shape="681.91,1354.63 682.83,1354.60 684.14,1355.30"/>
- </edge>
- <edge id=":1726380184_2" function="internal">
- <lane id=":1726380184_2_0" index="0" speed="22.22" length="5.11" shape="685.27,1350.94 684.21,1351.78 683.66,1352.79 683.64,1353.96 684.14,1355.30"/>
- </edge>
- <edge id=":1726380184_3" function="internal">
- <lane id=":1726380184_3_0" index="0" speed="22.22" length="9.50" shape="685.27,1350.94 677.01,1355.64"/>
- </edge>
- <edge id=":1726380187_0" function="internal">
- <lane id=":1726380187_0_0" index="0" speed="22.22" length="6.41" shape="715.88,1418.30 711.52,1413.60"/>
- </edge>
- <edge id=":1726380187_1" function="internal">
- <lane id=":1726380187_1_0" index="0" speed="22.22" length="7.59" shape="715.88,1418.30 714.91,1415.96 715.04,1414.71 716.29,1414.55 718.65,1415.47"/>
- </edge>
- <edge id=":1726380187_2" function="internal">
- <lane id=":1726380187_2_0" index="0" speed="22.22" length="5.43" shape="714.43,1412.05 718.65,1415.47"/>
- </edge>
- <edge id=":1726380187_3" function="internal">
- <lane id=":1726380187_3_0" index="0" speed="22.22" length="2.41" shape="714.43,1412.05 714.28,1413.53 713.75,1414.28"/>
- </edge>
- <edge id=":1726380187_4" function="internal">
- <lane id=":1726380187_4_0" index="0" speed="22.22" length="2.41" shape="713.75,1414.28 712.83,1414.31 711.52,1413.60"/>
- </edge>
- <edge id=":1726380193_0" function="internal">
- <lane id=":1726380193_0_0" index="0" speed="22.22" length="5.45" shape="731.95,1422.15 733.44,1422.65 734.58,1422.48 735.37,1421.64 735.80,1420.13"/>
- </edge>
- <edge id=":1726380193_1" function="internal">
- <lane id=":1726380193_1_0" index="0" speed="22.22" length="7.09" shape="731.95,1422.15 738.53,1424.78"/>
- </edge>
- <edge id=":1726380193_2" function="internal">
- <lane id=":1726380193_2_0" index="0" speed="22.22" length="7.12" shape="734.87,1427.18 735.80,1420.13"/>
- </edge>
- <edge id=":1726380193_3" function="internal">
- <lane id=":1726380193_3_0" index="0" speed="22.22" length="5.20" shape="734.87,1427.18 735.26,1425.78 736.00,1424.91 737.09,1424.57 738.53,1424.78"/>
- </edge>
- <edge id=":1726380194_0" function="internal">
- <lane id=":1726380194_0_0" index="0" speed="22.22" length="6.23" shape="752.93,1425.07 752.02,1431.24"/>
- </edge>
- <edge id=":1726380194_1" function="internal">
- <lane id=":1726380194_1_0" index="0" speed="22.22" length="2.41" shape="752.93,1425.07 751.93,1426.17 751.06,1426.46"/>
- </edge>
- <edge id=":1726380194_6" function="internal">
- <lane id=":1726380194_6_0" index="0" speed="22.22" length="2.41" shape="751.06,1426.46 750.30,1425.93 749.66,1424.59"/>
- </edge>
- <edge id=":1726380194_2" function="internal">
- <lane id=":1726380194_2_0" index="0" speed="22.22" length="5.17" shape="745.97,1426.96 747.41,1427.16 748.50,1426.83 749.25,1425.98 749.66,1424.59"/>
- </edge>
- <edge id=":1726380194_3" function="internal">
- <lane id=":1726380194_3_0" index="0" speed="22.22" length="7.88" shape="745.97,1426.96 748.75,1427.93 750.69,1428.96 751.78,1430.07 752.02,1431.24"/>
- </edge>
- <edge id=":1726380194_4" function="internal">
- <lane id=":1726380194_4_0" index="0" speed="22.22" length="6.23" shape="748.76,1430.76 749.66,1424.59"/>
- </edge>
- <edge id=":1726380194_5" function="internal">
- <lane id=":1726380194_5_0" index="0" speed="22.22" length="2.41" shape="748.76,1430.76 749.75,1429.65 750.63,1429.36"/>
- </edge>
- <edge id=":1726380194_7" function="internal">
- <lane id=":1726380194_7_0" index="0" speed="22.22" length="2.41" shape="750.63,1429.36 751.38,1429.89 752.02,1431.24"/>
- </edge>
- <edge id=":1726380195_0" function="internal">
- <lane id=":1726380195_0_0" index="0" speed="22.22" length="5.37" shape="732.35,1447.32 729.07,1443.07"/>
- </edge>
- <edge id=":1726380195_1" function="internal">
- <lane id=":1726380195_1_0" index="0" speed="22.22" length="5.00" shape="732.35,1447.32 732.96,1442.36"/>
- </edge>
- <edge id=":1726380204_0" function="internal">
- <lane id=":1726380204_0_0" index="0" speed="22.22" length="8.15" shape="647.79,1610.68 641.18,1605.90"/>
- </edge>
- <edge id=":1726380204_1" function="internal">
- <lane id=":1726380204_1_0" index="0" speed="22.22" length="2.41" shape="647.79,1610.68 647.27,1609.29 647.41,1608.38"/>
- </edge>
- <edge id=":1726380204_6" function="internal">
- <lane id=":1726380204_6_0" index="0" speed="22.22" length="2.41" shape="647.41,1608.38 648.23,1607.95 649.72,1608.01"/>
- </edge>
- <edge id=":1726380204_2" function="internal">
- <lane id=":1726380204_2_0" index="0" speed="22.22" length="7.82" shape="646.39,1600.93 649.72,1608.01"/>
- </edge>
- <edge id=":1726380204_3" function="internal">
- <lane id=":1726380204_3_0" index="0" speed="22.22" length="12.87" shape="646.39,1600.93 647.23,1605.36 646.64,1607.67 644.62,1607.85 641.18,1605.90"/>
- </edge>
- <edge id=":1726380204_4" function="internal">
- <lane id=":1726380204_4_0" index="0" speed="22.22" length="8.15" shape="643.11,1603.23 649.72,1608.01"/>
- </edge>
- <edge id=":1726380204_5" function="internal">
- <lane id=":1726380204_5_0" index="0" speed="22.22" length="2.41" shape="643.11,1603.23 643.63,1604.62 643.48,1605.53"/>
- </edge>
- <edge id=":1726380204_7" function="internal">
- <lane id=":1726380204_7_0" index="0" speed="22.22" length="2.41" shape="643.48,1605.53 642.66,1605.96 641.18,1605.90"/>
- </edge>
- <edge id=":1726394722_0" function="internal">
- <lane id=":1726394722_0_0" index="0" speed="27.78" length="4.82" shape="1058.47,852.01 1058.63,850.53 1059.17,849.78 1060.09,849.77 1061.39,850.48"/>
- </edge>
- <edge id=":1726394722_1" function="internal">
- <lane id=":1726394722_1_0" index="0" speed="25.00" length="14.21" shape="1051.33,852.28 1056.40,849.65 1060.26,848.22 1062.90,847.99 1064.32,848.96"/>
- </edge>
- <edge id=":1726394722_2" function="internal">
- <lane id=":1726394722_2_0" index="0" speed="25.00" length="11.05" shape="1051.33,852.28 1055.14,850.36 1058.09,849.42 1060.17,849.46 1061.39,850.48"/>
- </edge>
- <edge id=":1726394723_0" function="internal">
- <lane id=":1726394723_0_0" index="0" speed="27.78" length="3.92" shape="1159.78,1052.53 1161.61,1049.06"/>
- </edge>
- <edge id=":1726394723_1" function="internal">
- <lane id=":1726394723_1_0" index="0" speed="27.78" length="2.57" shape="1162.67,1050.94 1162.68,1050.65 1162.99,1050.28 1163.58,1049.81 1164.46,1049.25"/>
- </edge>
- <edge id=":1726394723_2" function="internal">
- <lane id=":1726394723_2_0" index="0" speed="27.78" length="4.82" shape="1162.67,1050.94 1162.80,1049.46 1163.33,1048.70 1164.25,1048.67 1165.57,1049.35"/>
- </edge>
- <edge id=":1726394723_3" function="internal">
- <lane id=":1726394723_3_0" index="0" speed="27.78" length="4.49" shape="1167.37,1045.84 1164.46,1049.25"/>
- </edge>
- <edge id=":1726394723_4" function="internal">
- <lane id=":1726394723_4_0" index="0" speed="27.78" length="4.01" shape="1164.47,1047.41 1168.46,1047.77"/>
- </edge>
- <edge id=":1726394723_5" function="internal">
- <lane id=":1726394723_5_0" index="0" speed="27.78" length="4.82" shape="1164.47,1047.41 1164.38,1048.89 1163.87,1049.66 1162.95,1049.72 1161.61,1049.06"/>
- </edge>
- <edge id=":1726394723_6" function="internal">
- <lane id=":1726394723_6_0" index="0" speed="27.78" length="5.54" shape="1163.83,1049.62 1161.91,1050.63 1160.43,1051.15 1159.38,1051.19 1158.77,1050.74"/>
- </edge>
- <edge id=":1726394723_7" function="internal">
- <lane id=":1726394723_7_0" index="0" speed="27.78" length="0.73" shape="1163.83,1049.62 1164.46,1049.25"/>
- </edge>
- <edge id=":1726394723_8" function="internal">
- <lane id=":1726394723_8_0" index="0" speed="27.78" length="1.91" shape="1163.83,1049.62 1164.47,1049.29 1164.98,1049.14 1165.34,1049.16 1165.57,1049.35"/>
- </edge>
- <edge id=":1726394724_0" function="internal">
- <lane id=":1726394724_0_0" index="0" speed="27.78" length="4.14" shape="1166.78,1065.92 1166.23,1065.25 1165.43,1064.99 1164.40,1065.16 1163.13,1065.73"/>
- </edge>
- <edge id=":1726394724_1" function="internal">
- <lane id=":1726394724_1_0" index="0" speed="27.78" length="14.35" shape="1169.74,1064.46 1167.85,1060.64 1166.53,1058.04 1165.15,1055.47 1163.11,1051.73"/>
- </edge>
- <edge id=":1726394724_2" function="internal">
- <lane id=":1726394724_2_0" index="0" speed="27.78" length="2.19" shape="1169.74,1064.46 1169.08,1062.37"/>
- </edge>
- <edge id=":1726394724_18" function="internal">
- <lane id=":1726394724_18_0" index="0" speed="27.78" length="12.92" shape="1169.08,1062.37 1168.57,1060.72 1168.94,1057.38 1170.85,1054.41 1174.30,1051.84"/>
- </edge>
- <edge id=":1726394724_3" function="internal">
- <lane id=":1726394724_3_0" index="0" speed="27.78" length="2.41" shape="1169.74,1064.46 1169.85,1062.97 1170.37,1062.21"/>
- </edge>
- <edge id=":1726394724_19" function="internal">
- <lane id=":1726394724_19_0" index="0" speed="27.78" length="2.41" shape="1170.37,1062.21 1171.30,1062.17 1172.62,1062.85"/>
- </edge>
- <edge id=":1726394724_4" function="internal">
- <lane id=":1726394724_4_0" index="0" speed="27.78" length="4.87" shape="1177.55,1057.58 1176.30,1058.46 1175.57,1059.41 1175.34,1060.42 1175.63,1061.49"/>
- </edge>
- <edge id=":1726394724_5" function="internal">
- <lane id=":1726394724_5_0" index="0" speed="27.78" length="16.56" shape="1177.55,1057.58 1173.27,1060.00 1170.34,1061.66 1167.41,1063.31 1163.13,1065.73"/>
- </edge>
- <edge id=":1726394724_6" function="internal">
- <lane id=":1726394724_6_0" index="0" speed="27.78" length="16.56" shape="1175.93,1054.71 1171.64,1057.13 1168.72,1058.79 1165.79,1060.44 1161.51,1062.86"/>
- </edge>
- <edge id=":1726394724_7" function="internal">
- <lane id=":1726394724_7_0" index="0" speed="27.78" length="6.87" shape="1175.93,1054.71 1171.92,1056.33 1169.38,1056.36"/>
- </edge>
- <edge id=":1726394724_20" function="internal">
- <lane id=":1726394724_20_0" index="0" speed="27.78" length="8.17" shape="1169.38,1056.36 1168.46,1056.38 1165.52,1054.84 1163.11,1051.73"/>
- </edge>
- <edge id=":1726394724_8" function="internal">
- <lane id=":1726394724_8_0" index="0" speed="27.78" length="2.41" shape="1175.93,1054.71 1174.44,1054.60 1173.68,1054.08"/>
- </edge>
- <edge id=":1726394724_21" function="internal">
- <lane id=":1726394724_21_0" index="0" speed="27.78" length="2.41" shape="1173.68,1054.08 1173.63,1053.16 1174.30,1051.84"/>
- </edge>
- <edge id=":1726394724_9" function="internal">
- <lane id=":1726394724_9_0" index="0" speed="27.78" length="4.30" shape="1168.90,1048.57 1169.53,1049.32 1170.37,1049.63 1171.42,1049.52 1172.68,1048.96"/>
- </edge>
- <edge id=":1726394724_10" function="internal">
- <lane id=":1726394724_10_0" index="0" speed="27.78" length="14.27" shape="1166.03,1050.20 1168.06,1053.91 1169.43,1056.47 1170.74,1059.05 1172.62,1062.85"/>
- </edge>
- <edge id=":1726394724_11" function="internal">
- <lane id=":1726394724_11_0" index="0" speed="27.78" length="2.23" shape="1166.03,1050.20 1166.78,1052.30"/>
- </edge>
- <edge id=":1726394724_22" function="internal">
- <lane id=":1726394724_22_0" index="0" speed="27.78" length="13.04" shape="1166.78,1052.30 1167.34,1053.88 1167.02,1057.22 1165.08,1060.21 1161.51,1062.86"/>
- </edge>
- <edge id=":1726394724_12" function="internal">
- <lane id=":1726394724_12_0" index="0" speed="27.78" length="2.41" shape="1166.03,1050.20 1165.87,1051.67 1165.33,1052.42"/>
- </edge>
- <edge id=":1726394724_23" function="internal">
- <lane id=":1726394724_23_0" index="0" speed="27.78" length="2.41" shape="1165.33,1052.42 1164.41,1052.44 1163.11,1051.73"/>
- </edge>
- <edge id=":1726394724_13" function="internal">
- <lane id=":1726394724_13_0" index="0" speed="27.78" length="4.80" shape="1158.26,1057.12 1159.54,1056.23 1160.29,1055.30 1160.52,1054.33 1160.21,1053.32"/>
- </edge>
- <edge id=":1726394724_14" function="internal">
- <lane id=":1726394724_14_0" index="0" speed="27.78" length="16.56" shape="1158.26,1057.12 1162.54,1054.70 1165.47,1053.04 1168.40,1051.38 1172.68,1048.96"/>
- </edge>
- <edge id=":1726394724_15" function="internal">
- <lane id=":1726394724_15_0" index="0" speed="27.78" length="16.56" shape="1159.88,1059.99 1164.16,1057.57 1167.09,1055.91 1170.02,1054.26 1174.30,1051.84"/>
- </edge>
- <edge id=":1726394724_16" function="internal">
- <lane id=":1726394724_16_0" index="0" speed="27.78" length="7.08" shape="1159.88,1059.99 1164.00,1058.29 1166.62,1058.22"/>
- </edge>
- <edge id=":1726394724_24" function="internal">
- <lane id=":1726394724_24_0" index="0" speed="27.78" length="7.98" shape="1166.62,1058.22 1167.50,1058.20 1170.37,1059.72 1172.62,1062.85"/>
- </edge>
- <edge id=":1726394724_17" function="internal">
- <lane id=":1726394724_17_0" index="0" speed="27.78" length="2.41" shape="1159.88,1059.99 1161.37,1060.10 1162.13,1060.61"/>
- </edge>
- <edge id=":1726394724_25" function="internal">
- <lane id=":1726394724_25_0" index="0" speed="27.78" length="2.41" shape="1162.13,1060.61 1162.18,1061.54 1161.51,1062.86"/>
- </edge>
- <edge id=":1726394725_0" function="internal">
- <lane id=":1726394725_0_0" index="0" speed="27.78" length="5.44" shape="1168.18,1068.70 1168.19,1068.03 1168.81,1067.21 1170.04,1066.22 1171.88,1065.08"/>
- </edge>
- <edge id=":1726394725_1" function="internal">
- <lane id=":1726394725_1_0" index="0" speed="27.78" length="3.79" shape="1171.11,1067.17 1167.32,1067.03"/>
- </edge>
- <edge id=":1726394725_2" function="internal">
- <lane id=":1726394725_2_0" index="0" speed="27.78" length="4.82" shape="1171.11,1067.17 1171.29,1065.69 1171.84,1064.95 1172.77,1064.95 1174.06,1065.69"/>
- </edge>
- <edge id=":1726394725_3" function="internal">
- <lane id=":1726394725_3_0" index="0" speed="27.78" length="4.37" shape="1172.63,1064.65 1176.97,1064.14"/>
- </edge>
- <edge id=":1726394725_4" function="internal">
- <lane id=":1726394725_4_0" index="0" speed="27.78" length="0.86" shape="1172.63,1064.65 1171.88,1065.08"/>
- </edge>
- <edge id=":1726394725_5" function="internal">
- <lane id=":1726394725_5_0" index="0" speed="27.78" length="2.58" shape="1172.63,1064.65 1171.67,1065.18 1170.95,1065.50 1170.49,1065.63 1170.28,1065.57"/>
- </edge>
- <edge id=":1726394725_6" function="internal">
- <lane id=":1726394725_6_0" index="0" speed="27.78" length="3.72" shape="1176.20,1062.65 1174.06,1065.69"/>
- </edge>
- <edge id=":1726394725_7" function="internal">
- <lane id=":1726394725_7_0" index="0" speed="27.78" length="1.69" shape="1173.24,1064.11 1173.19,1064.23 1172.94,1064.43 1172.51,1064.71 1171.88,1065.08"/>
- </edge>
- <edge id=":1726394725_8" function="internal">
- <lane id=":1726394725_8_0" index="0" speed="27.78" length="4.82" shape="1173.24,1064.11 1173.05,1065.58 1172.49,1066.32 1171.57,1066.31 1170.28,1065.57"/>
- </edge>
- <edge id=":1726394726_0" function="internal">
- <lane id=":1726394726_0_0" index="0" speed="27.78" length="5.13" shape="1443.09,1590.72 1448.03,1592.09"/>
- </edge>
- <edge id=":1726394726_1" function="internal">
- <lane id=":1726394726_1_0" index="0" speed="27.78" length="7.86" shape="1446.03,1589.22 1442.39,1582.26"/>
- </edge>
- <edge id=":1726394726_2" function="internal">
- <lane id=":1726394726_2_0" index="0" speed="27.78" length="4.80" shape="1446.03,1589.22 1445.56,1587.92 1445.59,1586.80 1446.10,1585.88 1447.10,1585.13"/>
- </edge>
- <edge id=":1726394726_3" function="internal">
- <lane id=":1726394726_3_0" index="0" speed="27.78" length="3.39" shape="1446.03,1589.22 1448.42,1588.01 1449.13,1588.04"/>
- </edge>
- <edge id=":1726394726_18" function="internal">
- <lane id=":1726394726_18_0" index="0" speed="27.78" length="5.30" shape="1449.13,1588.04 1450.08,1588.09 1451.01,1589.47 1451.21,1592.15"/>
- </edge>
- <edge id=":1726394726_4" function="internal">
- <lane id=":1726394726_4_0" index="0" speed="27.78" length="4.14" shape="1450.15,1590.99 1452.65,1587.68"/>
- </edge>
- <edge id=":1726394726_5" function="internal">
- <lane id=":1726394726_5_0" index="0" speed="27.78" length="2.39" shape="1450.15,1590.99 1448.03,1592.09"/>
- </edge>
- <edge id=":1726394726_6" function="internal">
- <lane id=":1726394726_6_0" index="0" speed="27.78" length="2.39" shape="1448.62,1588.06 1446.50,1589.17"/>
- </edge>
- <edge id=":1726394726_7" function="internal">
- <lane id=":1726394726_7_0" index="0" speed="27.78" length="7.55" shape="1448.62,1588.06 1447.30,1588.19 1445.82,1587.26 1444.18,1585.29 1443.21,1583.65"/>
- </edge>
- <edge id=":1726394726_19" function="internal">
- <lane id=":1726394726_19_0" index="0" speed="27.78" length="1.61" shape="1443.21,1583.65 1442.39,1582.26"/>
- </edge>
- <edge id=":1726394726_8" function="internal">
- <lane id=":1726394726_8_0" index="0" speed="27.78" length="2.41" shape="1448.62,1588.06 1447.14,1587.90 1446.40,1587.36"/>
- </edge>
- <edge id=":1726394726_20" function="internal">
- <lane id=":1726394726_20_0" index="0" speed="27.78" length="2.41" shape="1446.40,1587.36 1446.38,1586.44 1447.10,1585.13"/>
- </edge>
- <edge id=":1726394726_9" function="internal">
- <lane id=":1726394726_9_0" index="0" speed="27.78" length="4.18" shape="1449.75,1582.08 1445.57,1582.21"/>
- </edge>
- <edge id=":1726394726_10" function="internal">
- <lane id=":1726394726_10_0" index="0" speed="27.78" length="12.90" shape="1445.29,1580.69 1447.07,1584.08 1448.28,1586.40 1449.48,1588.73 1451.21,1592.15"/>
- </edge>
- <edge id=":1726394726_11" function="internal">
- <lane id=":1726394726_11_0" index="0" speed="27.78" length="9.23" shape="1445.29,1580.69 1446.77,1583.90 1447.47,1586.38 1447.38,1588.14 1446.50,1589.17"/>
- </edge>
- <edge id=":1726394726_12" function="internal">
- <lane id=":1726394726_12_0" index="0" speed="27.78" length="2.41" shape="1445.29,1580.69 1445.15,1582.17 1444.62,1582.93"/>
- </edge>
- <edge id=":1726394726_21" function="internal">
- <lane id=":1726394726_21_0" index="0" speed="27.78" length="2.41" shape="1444.62,1582.93 1443.70,1582.96 1442.39,1582.26"/>
- </edge>
- <edge id=":1726394726_13" function="internal">
- <lane id=":1726394726_13_0" index="0" speed="27.78" length="4.19" shape="1443.45,1583.32 1441.00,1586.71"/>
- </edge>
- <edge id=":1726394726_14" function="internal">
- <lane id=":1726394726_14_0" index="0" speed="27.78" length="2.39" shape="1443.45,1583.32 1445.57,1582.21"/>
- </edge>
- <edge id=":1726394726_15" function="internal">
- <lane id=":1726394726_15_0" index="0" speed="27.78" length="2.39" shape="1444.98,1586.24 1447.10,1585.13"/>
- </edge>
- <edge id=":1726394726_16" function="internal">
- <lane id=":1726394726_16_0" index="0" speed="27.78" length="7.58" shape="1444.98,1586.24 1446.33,1586.11 1447.82,1587.05 1449.44,1589.06 1450.38,1590.69"/>
- </edge>
- <edge id=":1726394726_22" function="internal">
- <lane id=":1726394726_22_0" index="0" speed="27.78" length="1.68" shape="1450.38,1590.69 1451.21,1592.15"/>
- </edge>
- <edge id=":1726394726_17" function="internal">
- <lane id=":1726394726_17_0" index="0" speed="27.78" length="2.41" shape="1444.98,1586.24 1446.46,1586.40 1447.20,1586.94"/>
- </edge>
- <edge id=":1726394726_23" function="internal">
- <lane id=":1726394726_23_0" index="0" speed="27.78" length="2.41" shape="1447.20,1586.94 1447.22,1587.86 1446.50,1589.17"/>
- </edge>
- <edge id=":1726394727_0" function="internal">
- <lane id=":1726394727_0_0" index="0" speed="16.67" length="3.97" shape="1450.19,1604.66 1453.77,1602.95"/>
- </edge>
- <edge id=":1726394727_1" function="internal">
- <lane id=":1726394727_1_0" index="0" speed="27.78" length="3.62" shape="1450.19,1604.66 1448.53,1601.44"/>
- </edge>
- <edge id=":1726394727_2" function="internal">
- <lane id=":1726394727_2_0" index="0" speed="27.78" length="4.72" shape="1453.11,1603.13 1450.96,1598.93"/>
- </edge>
- <edge id=":1726394727_3" function="internal">
- <lane id=":1726394727_3_0" index="0" speed="16.67" length="5.08" shape="1453.11,1603.13 1452.65,1601.82 1452.71,1600.67 1453.31,1599.69 1454.44,1598.89"/>
- </edge>
- <edge id=":1726394727_4" function="internal">
- <lane id=":1726394727_4_0" index="0" speed="27.78" length="2.71" shape="1453.11,1603.13 1454.03,1601.73 1454.96,1601.26"/>
- </edge>
- <edge id=":1726394727_18" function="internal">
- <lane id=":1726394727_18_0" index="0" speed="27.78" length="2.71" shape="1454.96,1601.26 1455.89,1601.72 1456.83,1603.10"/>
- </edge>
- <edge id=":1726394727_5" function="internal">
- <lane id=":1726394727_5_0" index="0" speed="16.67" length="3.54" shape="1455.96,1601.82 1457.32,1601.14 1458.31,1600.70 1458.95,1600.51 1459.21,1600.55"/>
- </edge>
- <edge id=":1726394727_6" function="internal">
- <lane id=":1726394727_6_0" index="0" speed="5.56" length="2.46" shape="1455.96,1601.82 1453.77,1602.95"/>
- </edge>
- <edge id=":1726394727_7" function="internal">
- <lane id=":1726394727_7_0" index="0" speed="16.67" length="6.50" shape="1455.96,1601.82 1454.59,1602.18 1453.31,1601.82 1452.10,1600.74 1450.96,1598.93"/>
- </edge>
- <edge id=":1726394727_8" function="internal">
- <lane id=":1726394727_8_0" index="0" speed="5.56" length="4.82" shape="1455.96,1601.82 1454.48,1601.65 1453.73,1601.11 1453.72,1600.19 1454.44,1598.89"/>
- </edge>
- <edge id=":1726394727_9" function="internal">
- <lane id=":1726394727_9_0" index="0" speed="16.67" length="3.54" shape="1457.36,1596.96 1457.24,1597.20 1456.71,1597.61 1455.78,1598.17 1454.44,1598.89"/>
- </edge>
- <edge id=":1726394727_10" function="internal">
- <lane id=":1726394727_10_0" index="0" speed="27.78" length="4.04" shape="1457.36,1596.96 1459.21,1600.55"/>
- </edge>
- <edge id=":1726394727_11" function="internal">
- <lane id=":1726394727_11_0" index="0" speed="27.78" length="6.38" shape="1453.90,1597.43 1456.83,1603.10"/>
- </edge>
- <edge id=":1726394727_12" function="internal">
- <lane id=":1726394727_12_0" index="0" speed="16.67" length="6.12" shape="1453.90,1597.43 1454.71,1599.40 1454.96,1600.97 1454.65,1602.15 1453.77,1602.95"/>
- </edge>
- <edge id=":1726394727_13" function="internal">
- <lane id=":1726394727_13_0" index="0" speed="27.78" length="2.41" shape="1453.90,1597.43 1453.73,1598.91 1453.18,1599.65"/>
- </edge>
- <edge id=":1726394727_19" function="internal">
- <lane id=":1726394727_19_0" index="0" speed="27.78" length="2.41" shape="1453.18,1599.65 1452.26,1599.66 1450.96,1598.93"/>
- </edge>
- <edge id=":1726394727_14" function="internal">
- <lane id=":1726394727_14_0" index="0" speed="16.67" length="4.05" shape="1452.26,1600.01 1450.70,1600.79 1449.56,1601.28 1448.84,1601.50 1448.53,1601.44"/>
- </edge>
- <edge id=":1726394727_15" function="internal">
- <lane id=":1726394727_15_0" index="0" speed="5.56" length="2.46" shape="1452.26,1600.01 1454.44,1598.89"/>
- </edge>
- <edge id=":1726394727_16" function="internal">
- <lane id=":1726394727_16_0" index="0" speed="16.67" length="6.12" shape="1452.26,1600.01 1453.41,1599.76 1454.56,1600.19 1455.70,1601.30 1456.83,1603.10"/>
- </edge>
- <edge id=":1726394727_17" function="internal">
- <lane id=":1726394727_17_0" index="0" speed="5.56" length="4.82" shape="1452.26,1600.01 1453.73,1600.18 1454.48,1600.72 1454.49,1601.65 1453.77,1602.95"/>
- </edge>
- <edge id=":1726394728_0" function="internal">
- <lane id=":1726394728_0_0" index="0" speed="27.78" length="6.32" shape="1569.58,1832.09 1566.72,1826.46"/>
- </edge>
- <edge id=":1726394728_1" function="internal">
- <lane id=":1726394728_1_0" index="0" speed="27.78" length="6.41" shape="1572.54,1830.64 1569.64,1824.92"/>
- </edge>
- <edge id=":1726394728_2" function="internal">
- <lane id=":1726394728_2_0" index="0" speed="25.00" length="7.90" shape="1572.54,1830.64 1572.44,1829.07 1573.60,1827.30 1576.00,1825.34 1576.96,1824.77"/>
- </edge>
- <edge id=":1726394728_11" function="internal">
- <lane id=":1726394728_11_0" index="0" speed="25.00" length="3.13" shape="1576.96,1824.77 1579.66,1823.18"/>
- </edge>
- <edge id=":1726394728_3" function="internal">
- <lane id=":1726394728_3_0" index="0" speed="27.78" length="2.41" shape="1572.54,1830.64 1572.73,1829.16 1573.29,1828.43"/>
- </edge>
- <edge id=":1726394728_12" function="internal">
- <lane id=":1726394728_12_0" index="0" speed="27.78" length="2.41" shape="1573.29,1828.43 1574.21,1828.43 1575.50,1829.18"/>
- </edge>
- <edge id=":1726394728_4" function="internal">
- <lane id=":1726394728_4_0" index="0" speed="25.00" length="5.00" shape="1575.48,1821.85 1576.29,1822.97 1577.25,1823.57 1578.38,1823.64 1579.66,1823.18"/>
- </edge>
- <edge id=":1726394728_5" function="internal">
- <lane id=":1726394728_5_0" index="0" speed="27.78" length="6.59" shape="1575.48,1821.85 1578.46,1827.73"/>
- </edge>
- <edge id=":1726394728_6" function="internal">
- <lane id=":1726394728_6_0" index="0" speed="27.78" length="6.50" shape="1572.56,1823.39 1575.50,1829.18"/>
- </edge>
- <edge id=":1726394728_7" function="internal">
- <lane id=":1726394728_7_0" index="0" speed="27.78" length="2.41" shape="1572.56,1823.39 1572.41,1824.87 1571.87,1825.62"/>
- </edge>
- <edge id=":1726394728_13" function="internal">
- <lane id=":1726394728_13_0" index="0" speed="27.78" length="2.41" shape="1571.87,1825.62 1570.95,1825.63 1569.64,1824.92"/>
- </edge>
- <edge id=":1726394728_8" function="internal">
- <lane id=":1726394728_8_0" index="0" speed="25.00" length="5.14" shape="1565.37,1830.76 1566.51,1829.93 1567.12,1828.93 1567.19,1827.78 1566.72,1826.46"/>
- </edge>
- <edge id=":1726394728_9" function="internal">
- <lane id=":1726394728_9_0" index="0" speed="22.22" length="16.18" shape="1565.37,1830.76 1568.84,1828.91 1572.51,1826.96 1576.18,1825.02 1579.66,1823.18"/>
- </edge>
- <edge id=":1726394728_10" function="internal">
- <lane id=":1726394728_10_0" index="0" speed="25.00" length="11.05" shape="1565.37,1830.76 1569.24,1828.93 1572.22,1828.06 1574.31,1828.14 1575.50,1829.18"/>
- </edge>
- <edge id=":1726394729_0" function="internal">
- <lane id=":1726394729_0_0" index="0" speed="27.78" length="11.16" shape="1575.84,1843.59 1574.61,1840.63 1574.54,1838.30 1574.57,1835.93 1573.61,1832.82"/>
- </edge>
- <edge id=":1726394729_1" function="internal">
- <lane id=":1726394729_1_0" index="0" speed="27.78" length="11.28" shape="1578.64,1841.84 1578.29,1840.11 1579.29,1838.25 1581.66,1836.25 1585.39,1834.12"/>
- </edge>
- <edge id=":1726394729_2" function="internal">
- <lane id=":1726394729_2_0" index="0" speed="27.78" length="4.82" shape="1578.64,1841.84 1578.69,1840.35 1579.17,1839.57 1580.09,1839.48 1581.44,1840.09"/>
- </edge>
- <edge id=":1726394729_3" function="internal">
- <lane id=":1726394729_3_0" index="0" speed="27.78" length="5.15" shape="1579.54,1829.91 1580.32,1831.03 1581.30,1831.62 1582.48,1831.67 1583.86,1831.20"/>
- </edge>
- <edge id=":1726394729_4" function="internal">
- <lane id=":1726394729_4_0" index="0" speed="27.78" length="10.55" shape="1576.57,1831.37 1578.18,1833.69 1580.19,1834.93 1582.59,1835.07 1585.39,1834.12"/>
- </edge>
- <edge id=":1726394729_5" function="internal">
- <lane id=":1726394729_5_0" index="0" speed="27.78" length="10.55" shape="1576.57,1831.37 1578.35,1833.80 1580.24,1834.95 1582.21,1836.06 1584.24,1838.35"/>
- </edge>
- <edge id=":1726394729_6" function="internal">
- <lane id=":1726394729_6_0" index="0" speed="27.78" length="4.82" shape="1576.57,1831.37 1576.38,1832.84 1575.82,1833.58 1574.90,1833.57 1573.61,1832.82"/>
- </edge>
- <edge id=":1726394729_7" function="internal">
- <lane id=":1726394729_7_0" index="0" speed="27.78" length="5.25" shape="1569.44,1838.75 1570.53,1837.94 1571.10,1836.92 1571.14,1835.70 1570.65,1834.28"/>
- </edge>
- <edge id=":1726394729_8" function="internal">
- <lane id=":1726394729_8_0" index="0" speed="27.78" length="16.28" shape="1569.44,1838.75 1573.71,1836.49 1576.62,1834.92 1579.55,1833.38 1583.86,1831.20"/>
- </edge>
- <edge id=":1726394729_9" function="internal">
- <lane id=":1726394729_9_0" index="0" speed="27.78" length="16.28" shape="1570.97,1841.67 1575.24,1839.41 1578.15,1837.84 1581.08,1836.30 1585.39,1834.12"/>
- </edge>
- <edge id=":1726394729_10" function="internal">
- <lane id=":1726394729_10_0" index="0" speed="27.78" length="11.32" shape="1570.97,1841.67 1574.86,1839.88 1577.90,1839.02 1580.10,1839.09 1581.44,1840.09"/>
- </edge>
- <edge id=":1780219331_0" function="internal">
- <lane id=":1780219331_0_0" index="0" speed="18.06" length="5.22" shape="819.49,1040.71 819.03,1039.40 819.12,1038.24 819.75,1037.22 820.93,1036.35"/>
- </edge>
- <edge id=":1780219331_1" function="internal">
- <lane id=":1780219331_1_0" index="0" speed="27.78" length="11.03" shape="819.49,1040.71 817.95,1037.82 816.89,1035.84 815.84,1033.87 814.29,1030.98"/>
- </edge>
- <edge id=":1780219331_2" function="internal">
- <lane id=":1780219331_2_0" index="0" speed="27.78" length="11.03" shape="822.40,1039.15 820.86,1036.26 819.81,1034.29 818.75,1032.31 817.20,1029.42"/>
- </edge>
- <edge id=":1780219331_3" function="internal">
- <lane id=":1780219331_3_0" index="0" speed="27.78" length="11.04" shape="825.31,1037.60 823.77,1034.71 822.72,1032.73 821.66,1030.75 820.11,1027.86"/>
- </edge>
- <edge id=":1780219331_4" function="internal">
- <lane id=":1780219331_4_0" index="0" speed="18.06" length="9.68" shape="825.31,1037.60 823.95,1034.57 823.34,1032.06 823.50,1030.05 824.42,1028.56"/>
- </edge>
- <edge id=":1780219331_5" function="internal">
- <lane id=":1780219331_5_0" index="0" speed="8.33" length="7.90" shape="826.69,1030.95 820.93,1036.35"/>
- </edge>
- <edge id=":1780219331_6" function="internal">
- <lane id=":1780219331_6_0" index="0" speed="18.06" length="8.70" shape="826.69,1030.95 825.06,1031.92 823.41,1031.73 821.76,1030.38 820.11,1027.86"/>
- </edge>
- <edge id=":1780219331_7" function="internal">
- <lane id=":1780219331_7_0" index="0" speed="8.33" length="4.82" shape="826.69,1030.95 825.23,1031.20 824.36,1030.89 824.09,1030.01 824.42,1028.56"/>
- </edge>
- <edge id=":1780219331_8" function="internal">
- <lane id=":1780219331_8_0" index="0" speed="18.06" length="4.70" shape="816.93,1034.78 816.59,1034.64 816.04,1033.96 815.27,1032.74 814.29,1030.98"/>
- </edge>
- <edge id=":1780219331_9" function="internal">
- <lane id=":1780219331_9_0" index="0" speed="8.33" length="9.74" shape="816.93,1034.78 824.42,1028.56"/>
- </edge>
- <edge id=":1780219331_10" function="internal">
- <lane id=":1780219331_10_0" index="0" speed="8.33" length="6.27" shape="816.93,1034.78 818.52,1033.68 819.72,1033.57 820.52,1034.46 820.93,1036.35"/>
- </edge>
- <edge id=":1780219332_0" function="internal">
- <lane id=":1780219332_0_0" index="0" speed="6.94" length="5.00" shape="935.23,1166.25 934.43,1165.13 933.47,1164.54 932.34,1164.47 931.05,1164.93"/>
- </edge>
- <edge id=":1780219332_1" function="internal">
- <lane id=":1780219332_1_0" index="0" speed="5.56" length="9.50" shape="935.23,1166.25 930.86,1157.81"/>
- </edge>
- <edge id=":1780219332_2" function="internal">
- <lane id=":1780219332_2_0" index="0" speed="5.56" length="4.82" shape="935.23,1166.25 935.39,1164.77 935.94,1164.02 936.86,1164.01 938.16,1164.73"/>
- </edge>
- <edge id=":1780219332_3" function="internal">
- <lane id=":1780219332_3_0" index="0" speed="5.56" length="9.50" shape="933.79,1156.29 938.16,1164.73"/>
- </edge>
- <edge id=":1780219332_4" function="internal">
- <lane id=":1780219332_4_0" index="0" speed="6.94" length="10.32" shape="933.79,1156.29 934.72,1158.96 934.57,1161.29 933.35,1163.27 931.05,1164.93"/>
- </edge>
- <edge id=":1780219332_5" function="internal">
- <lane id=":1780219332_5_0" index="0" speed="5.56" length="4.82" shape="933.79,1156.29 933.63,1157.77 933.08,1158.52 932.16,1158.53 930.86,1157.81"/>
- </edge>
- <edge id=":1780219332_6" function="internal">
- <lane id=":1780219332_6_0" index="0" speed="6.94" length="5.01" shape="929.52,1162.00 930.64,1161.20 931.24,1160.23 931.31,1159.10 930.86,1157.81"/>
- </edge>
- <edge id=":1780219332_7" function="internal">
- <lane id=":1780219332_7_0" index="0" speed="6.94" length="10.34" shape="929.52,1162.00 932.19,1161.06 934.52,1161.20 936.51,1162.42 938.16,1164.73"/>
- </edge>
- <edge id=":1780219332_8" function="internal">
- <lane id=":1780219332_8_0" index="0" speed="8.33" length="4.82" shape="929.52,1162.00 931.00,1162.16 931.75,1162.70 931.76,1163.62 931.05,1164.93"/>
- </edge>
- <edge id=":1780219335_0" function="internal">
- <lane id=":1780219335_0_0" index="0" speed="8.33" length="5.04" shape="861.64,1145.84 860.83,1144.74 859.85,1144.17 858.71,1144.11 857.39,1144.57"/>
- </edge>
- <edge id=":1780219335_1" function="internal">
- <lane id=":1780219335_1_0" index="0" speed="8.33" length="9.49" shape="861.64,1145.84 857.20,1137.45"/>
- </edge>
- <edge id=":1780219335_2" function="internal">
- <lane id=":1780219335_2_0" index="0" speed="8.33" length="4.82" shape="861.64,1145.84 861.78,1144.36 862.32,1143.61 863.24,1143.59 864.55,1144.29"/>
- </edge>
- <edge id=":1780219335_3" function="internal">
- <lane id=":1780219335_3_0" index="0" speed="8.33" length="9.47" shape="860.12,1135.92 864.55,1144.29"/>
- </edge>
- <edge id=":1780219335_4" function="internal">
- <lane id=":1780219335_4_0" index="0" speed="8.33" length="10.36" shape="860.12,1135.92 861.07,1138.60 860.94,1140.93 859.71,1142.92 857.39,1144.57"/>
- </edge>
- <edge id=":1780219335_5" function="internal">
- <lane id=":1780219335_5_0" index="0" speed="8.33" length="4.82" shape="860.12,1135.92 859.97,1137.40 859.43,1138.15 858.51,1138.17 857.20,1137.45"/>
- </edge>
- <edge id=":1780219335_6" function="internal">
- <lane id=":1780219335_6_0" index="0" speed="8.33" length="5.01" shape="855.88,1141.64 857.00,1140.84 857.59,1139.88 857.66,1138.75 857.20,1137.45"/>
- </edge>
- <edge id=":1780219335_7" function="internal">
- <lane id=":1780219335_7_0" index="0" speed="8.33" length="10.31" shape="855.88,1141.64 858.56,1140.70 860.89,1140.83 862.89,1142.03 864.55,1144.29"/>
- </edge>
- <edge id=":1780219335_8" function="internal">
- <lane id=":1780219335_8_0" index="0" speed="8.33" length="4.82" shape="855.88,1141.64 857.36,1141.80 858.10,1142.35 858.12,1143.27 857.39,1144.57"/>
- </edge>
- <edge id=":1780219341_0" function="internal">
- <lane id=":1780219341_0_0" index="0" speed="15.28" length="3.86" shape="908.85,1227.82 908.25,1226.49 907.64,1225.64 907.02,1225.28 906.39,1225.39"/>
- </edge>
- <edge id=":1780219341_1" function="internal">
- <lane id=":1780219341_1_0" index="0" speed="8.33" length="6.61" shape="908.85,1227.82 906.17,1221.77"/>
- </edge>
- <edge id=":1780219341_2" function="internal">
- <lane id=":1780219341_2_0" index="0" speed="8.33" length="4.82" shape="908.85,1227.82 909.18,1226.37 909.81,1225.69 910.72,1225.79 911.94,1226.65"/>
- </edge>
- <edge id=":1780219341_3" function="internal">
- <lane id=":1780219341_3_0" index="0" speed="15.28" length="5.87" shape="913.30,1221.51 912.19,1222.41 911.59,1223.56 911.51,1224.98 911.94,1226.65"/>
- </edge>
- <edge id=":1780219341_4" function="internal">
- <lane id=":1780219341_4_0" index="0" speed="22.22" length="7.93" shape="913.30,1221.51 906.39,1225.39"/>
- </edge>
- <edge id=":1780219341_5" function="internal">
- <lane id=":1780219341_5_0" index="0" speed="15.28" length="7.94" shape="913.30,1221.51 910.75,1222.71 908.71,1223.16 907.18,1222.84 906.17,1221.77"/>
- </edge>
- <edge id=":1780219341_6" function="internal">
- <lane id=":1780219341_6_0" index="0" speed="8.33" length="7.00" shape="909.10,1220.25 911.94,1226.65"/>
- </edge>
- <edge id=":1780219341_7" function="internal">
- <lane id=":1780219341_7_0" index="0" speed="15.28" length="6.50" shape="909.10,1220.25 909.48,1221.63 909.15,1222.94 908.12,1224.20 906.39,1225.39"/>
- </edge>
- <edge id=":1780219341_8" function="internal">
- <lane id=":1780219341_8_0" index="0" speed="8.33" length="4.82" shape="909.10,1220.25 908.94,1221.73 908.40,1222.48 907.47,1222.49 906.17,1221.77"/>
- </edge>
- <edge id=":1780219342_0" function="internal">
- <lane id=":1780219342_0_0" index="0" speed="18.06" length="9.85" shape="839.95,1017.14 838.64,1019.21 838.09,1021.44 838.29,1023.82 839.26,1026.35"/>
- </edge>
- <edge id=":1780219342_1" function="internal">
- <lane id=":1780219342_1_0" index="0" speed="8.33" length="15.83" shape="839.95,1017.14 837.40,1020.06 834.67,1023.03 831.87,1025.94 829.10,1028.66"/>
- </edge>
- <edge id=":1780219342_2" function="internal">
- <lane id=":1780219342_2_0" index="0" speed="8.33" length="4.82" shape="839.95,1017.14 838.52,1017.55 837.63,1017.33 837.27,1016.48 837.44,1015.00"/>
- </edge>
- <edge id=":1780219342_3" function="internal">
- <lane id=":1780219342_3_0" index="0" speed="18.06" length="5.56" shape="833.14,1014.51 834.08,1015.84 835.11,1016.36 836.23,1016.08 837.44,1015.00"/>
- </edge>
- <edge id=":1780219342_4" function="internal">
- <lane id=":1780219342_4_0" index="0" speed="27.78" length="13.33" shape="833.14,1014.51 834.96,1018.03 836.20,1020.43 837.45,1022.84 839.26,1026.35"/>
- </edge>
- <edge id=":1780219342_5" function="internal">
- <lane id=":1780219342_5_0" index="0" speed="27.78" length="13.33" shape="830.21,1016.03 832.03,1019.54 833.27,1021.95 834.51,1024.35 836.33,1027.87"/>
- </edge>
- <edge id=":1780219342_6" function="internal">
- <lane id=":1780219342_6_0" index="0" speed="27.78" length="13.33" shape="827.28,1017.54 829.10,1021.06 830.34,1023.46 831.58,1025.87 833.40,1029.38"/>
- </edge>
- <edge id=":1780219342_7" function="internal">
- <lane id=":1780219342_7_0" index="0" speed="18.06" length="11.84" shape="827.28,1017.54 829.06,1021.47 829.96,1024.63 829.97,1027.02 829.10,1028.66"/>
- </edge>
- <edge id=":1780219342_8" function="internal">
- <lane id=":1780219342_8_0" index="0" speed="8.33" length="15.48" shape="826.83,1026.27 829.56,1023.59 832.28,1020.77 834.93,1017.88 837.44,1015.00"/>
- </edge>
- <edge id=":1780219342_9" function="internal">
- <lane id=":1780219342_9_0" index="0" speed="18.06" length="8.75" shape="826.83,1026.27 828.49,1025.27 830.13,1025.46 831.77,1026.83 833.40,1029.38"/>
- </edge>
- <edge id=":1780219342_10" function="internal">
- <lane id=":1780219342_10_0" index="0" speed="8.33" length="4.82" shape="826.83,1026.27 828.29,1026.01 829.16,1026.33 829.43,1027.21 829.10,1028.66"/>
- </edge>
- <edge id=":1780219343_0" function="internal">
- <lane id=":1780219343_0_0" index="0" speed="18.06" length="5.10" shape="897.01,1186.26 896.18,1185.12 895.19,1184.52 894.04,1184.45 892.73,1184.91"/>
- </edge>
- <edge id=":1780219343_1" function="internal">
- <lane id=":1780219343_1_0" index="0" speed="27.78" length="9.59" shape="897.01,1186.26 892.50,1177.79"/>
- </edge>
- <edge id=":1780219343_2" function="internal">
- <lane id=":1780219343_2_0" index="0" speed="27.78" length="9.59" shape="899.92,1184.70 895.42,1176.24"/>
- </edge>
- <edge id=":1780219343_3" function="internal">
- <lane id=":1780219343_3_0" index="0" speed="27.78" length="9.59" shape="902.83,1183.15 898.33,1174.69"/>
- </edge>
- <edge id=":1780219343_4" function="internal">
- <lane id=":1780219343_4_0" index="0" speed="18.06" length="7.87" shape="902.83,1183.15 901.69,1180.59 901.27,1178.54 901.58,1177.03 902.61,1176.04"/>
- </edge>
- <edge id=":1780219343_5" function="internal">
- <lane id=":1780219343_5_0" index="0" speed="8.33" length="12.86" shape="904.13,1178.97 901.10,1180.54 898.43,1181.94 895.76,1183.33 892.73,1184.91"/>
- </edge>
- <edge id=":1780219343_6" function="internal">
- <lane id=":1780219343_6_0" index="0" speed="18.06" length="7.94" shape="904.13,1178.97 902.73,1179.24 901.30,1178.62 899.83,1177.10 898.33,1174.69"/>
- </edge>
- <edge id=":1780219343_7" function="internal">
- <lane id=":1780219343_7_0" index="0" speed="8.33" length="4.82" shape="904.13,1178.97 902.65,1178.81 901.91,1178.26 901.89,1177.34 902.61,1176.04"/>
- </edge>
- <edge id=":1780219343_8" function="internal">
- <lane id=":1780219343_8_0" index="0" speed="18.06" length="5.01" shape="891.21,1181.98 892.32,1181.18 892.91,1180.22 892.97,1179.09 892.50,1177.79"/>
- </edge>
- <edge id=":1780219343_9" function="internal">
- <lane id=":1780219343_9_0" index="0" speed="8.33" length="12.86" shape="891.21,1181.98 894.23,1180.40 896.91,1179.01 899.58,1177.62 902.61,1176.04"/>
- </edge>
- <edge id=":1780219343_10" function="internal">
- <lane id=":1780219343_10_0" index="0" speed="8.33" length="4.82" shape="891.21,1181.98 892.68,1182.14 893.43,1182.68 893.45,1183.60 892.73,1184.91"/>
- </edge>
- <edge id=":1780219344_0" function="internal">
- <lane id=":1780219344_0_0" index="0" speed="8.33" length="10.03" shape="852.81,1146.93 850.17,1148.29 848.36,1149.23 846.54,1150.17 843.91,1151.55"/>
- </edge>
- <edge id=":1780219344_1" function="internal">
- <lane id=":1780219344_1_0" index="0" speed="8.33" length="12.68" shape="852.81,1146.93 849.31,1148.16 846.72,1147.77 845.02,1145.76 844.24,1142.13"/>
- </edge>
- <edge id=":1780219344_2" function="internal">
- <lane id=":1780219344_2_0" index="0" speed="8.33" length="4.82" shape="852.81,1146.93 851.34,1146.76 850.59,1146.22 850.58,1145.30 851.30,1144.00"/>
- </edge>
- <edge id=":1780219344_3" function="internal">
- <lane id=":1780219344_3_0" index="0" speed="8.33" length="5.58" shape="847.53,1141.89 847.87,1143.48 848.62,1144.37 849.76,1144.54 851.30,1144.00"/>
- </edge>
- <edge id=":1780219344_4" function="internal">
- <lane id=":1780219344_4_0" index="0" speed="8.33" length="10.92" shape="847.53,1141.89 847.51,1145.29 846.90,1148.04 845.70,1150.12 843.91,1151.55"/>
- </edge>
- <edge id=":1780219344_5" function="internal">
- <lane id=":1780219344_5_0" index="0" speed="8.33" length="4.82" shape="847.53,1141.89 846.80,1143.18 846.01,1143.66 845.15,1143.31 844.24,1142.13"/>
- </edge>
- <edge id=":1780219344_6" function="internal">
- <lane id=":1780219344_6_0" index="0" speed="8.33" length="7.09" shape="842.38,1148.63 843.34,1147.78 843.97,1146.41 844.27,1144.53 844.24,1142.13"/>
- </edge>
- <edge id=":1780219344_7" function="internal">
- <lane id=":1780219344_7_0" index="0" speed="8.33" length="10.06" shape="842.38,1148.63 845.01,1147.25 846.83,1146.30 848.66,1145.36 851.30,1144.00"/>
- </edge>
- <edge id=":1780219344_8" function="internal">
- <lane id=":1780219344_8_0" index="0" speed="8.33" length="4.82" shape="842.38,1148.63 843.86,1148.78 844.60,1149.32 844.62,1150.24 843.91,1151.55"/>
- </edge>
- <edge id=":1780219345_0" function="internal">
- <lane id=":1780219345_0_0" index="0" speed="15.28" length="8.80" shape="794.26,1177.57 791.51,1179.13 789.49,1180.57 788.21,1181.89 787.67,1183.10"/>
- </edge>
- <edge id=":1780219345_1" function="internal">
- <lane id=":1780219345_1_0" index="0" speed="15.28" length="14.60" shape="794.26,1177.57 790.05,1179.12 787.28,1178.66 785.94,1176.18 786.05,1171.70"/>
- </edge>
- <edge id=":1780219345_2" function="internal">
- <lane id=":1780219345_2_0" index="0" speed="8.33" length="4.82" shape="794.26,1177.57 792.78,1177.40 792.04,1176.86 792.02,1175.94 792.74,1174.64"/>
- </edge>
- <edge id=":1780219345_3" function="internal">
- <lane id=":1780219345_3_0" index="0" speed="15.28" length="6.09" shape="789.32,1172.19 789.27,1174.06 789.83,1175.09 790.98,1175.28 792.74,1174.64"/>
- </edge>
- <edge id=":1780219345_4" function="internal">
- <lane id=":1780219345_4_0" index="0" speed="22.22" length="11.03" shape="789.32,1172.19 788.85,1175.28 788.49,1177.64 788.14,1180.00 787.67,1183.10"/>
- </edge>
- <edge id=":1780219345_5" function="internal">
- <lane id=":1780219345_5_0" index="0" speed="22.22" length="2.41" shape="789.32,1172.19 788.32,1173.29 787.44,1173.57"/>
- </edge>
- <edge id=":1780219345_9" function="internal">
- <lane id=":1780219345_9_0" index="0" speed="22.22" length="2.41" shape="787.44,1173.57 786.68,1173.04 786.05,1171.70"/>
- </edge>
- <edge id=":1780219345_6" function="internal">
- <lane id=":1780219345_6_0" index="0" speed="22.22" length="11.03" shape="784.41,1182.60 784.88,1179.51 785.23,1177.15 785.59,1174.79 786.05,1171.70"/>
- </edge>
- <edge id=":1780219345_7" function="internal">
- <lane id=":1780219345_7_0" index="0" speed="15.28" length="6.94" shape="784.41,1182.60 785.15,1180.62 786.79,1178.64 788.55,1177.24"/>
- </edge>
- <edge id=":1780219345_10" function="internal">
- <lane id=":1780219345_10_0" index="0" speed="15.28" length="4.94" shape="788.55,1177.24 789.32,1176.64 792.74,1174.64"/>
- </edge>
- <edge id=":1780219345_8" function="internal">
- <lane id=":1780219345_8_0" index="0" speed="22.22" length="2.41" shape="784.41,1182.60 785.41,1181.50 786.29,1181.22"/>
- </edge>
- <edge id=":1780219345_11" function="internal">
- <lane id=":1780219345_11_0" index="0" speed="22.22" length="2.41" shape="786.29,1181.22 787.04,1181.75 787.67,1183.10"/>
- </edge>
- <edge id=":1780219348_0" function="internal">
- <lane id=":1780219348_0_0" index="0" speed="8.33" length="7.20" shape="842.92,1124.65 847.37,1118.98"/>
- </edge>
- <edge id=":1780219348_1" function="internal">
- <lane id=":1780219348_1_0" index="0" speed="8.33" length="27.18" shape="842.92,1124.65 842.82,1115.06 844.43,1111.39 847.73,1113.65 852.73,1121.84"/>
- </edge>
- <edge id=":1780219348_2" function="internal">
- <lane id=":1780219348_2_0" index="0" speed="8.33" length="4.82" shape="842.92,1124.65 843.65,1123.35 844.44,1122.88 845.29,1123.23 846.21,1124.40"/>
- </edge>
- <edge id=":1780219348_3" function="internal">
- <lane id=":1780219348_3_0" index="0" speed="8.33" length="9.97" shape="849.81,1123.37 847.97,1120.37 846.76,1119.54 846.18,1120.88 846.21,1124.40"/>
- </edge>
- <edge id=":1780219348_4" function="internal">
- <lane id=":1780219348_4_0" index="0" speed="8.33" length="5.02" shape="849.81,1123.37 847.37,1118.98"/>
- </edge>
- <edge id=":1780219348_5" function="internal">
- <lane id=":1780219348_5_0" index="0" speed="8.33" length="4.82" shape="849.81,1123.37 849.96,1121.89 850.50,1121.14 851.42,1121.12 852.73,1121.84"/>
- </edge>
- <edge id=":1780219348_6" function="internal">
- <lane id=":1780219348_6_0" index="0" speed="8.33" length="4.99" shape="850.30,1117.48 852.73,1121.84"/>
- </edge>
- <edge id=":1780219348_7" function="internal">
- <lane id=":1780219348_7_0" index="0" speed="8.33" length="8.04" shape="850.30,1117.48 846.21,1124.40"/>
- </edge>
- <edge id=":1780219348_8" function="internal">
- <lane id=":1780219348_8_0" index="0" speed="8.33" length="4.82" shape="850.30,1117.48 850.13,1118.96 849.59,1119.70 848.66,1119.71 847.37,1118.98"/>
- </edge>
- <edge id=":1780219352_0" function="internal">
- <lane id=":1780219352_0_0" index="0" speed="18.06" length="5.04" shape="917.95,1171.76 916.83,1172.57 916.24,1173.54 916.17,1174.67 916.62,1175.98"/>
- </edge>
- <edge id=":1780219352_1" function="internal">
- <lane id=":1780219352_1_0" index="0" speed="8.33" length="12.82" shape="917.95,1171.76 914.93,1173.34 912.27,1174.73 909.61,1176.11 906.58,1177.69"/>
- </edge>
- <edge id=":1780219352_2" function="internal">
- <lane id=":1780219352_2_0" index="0" speed="8.33" length="4.82" shape="917.95,1171.76 916.47,1171.60 915.73,1171.06 915.71,1170.14 916.43,1168.84"/>
- </edge>
- <edge id=":1780219352_3" function="internal">
- <lane id=":1780219352_3_0" index="0" speed="18.06" length="5.00" shape="912.24,1167.51 913.04,1168.63 914.00,1169.22 915.13,1169.29 916.43,1168.84"/>
- </edge>
- <edge id=":1780219352_4" function="internal">
- <lane id=":1780219352_4_0" index="0" speed="27.78" length="9.53" shape="912.24,1167.51 916.62,1175.98"/>
- </edge>
- <edge id=":1780219352_5" function="internal">
- <lane id=":1780219352_5_0" index="0" speed="27.78" length="9.53" shape="909.31,1169.03 913.69,1177.50"/>
- </edge>
- <edge id=":1780219352_6" function="internal">
- <lane id=":1780219352_6_0" index="0" speed="27.78" length="9.53" shape="906.38,1170.54 910.76,1179.01"/>
- </edge>
- <edge id=":1780219352_7" function="internal">
- <lane id=":1780219352_7_0" index="0" speed="18.06" length="7.88" shape="906.38,1170.54 907.50,1173.13 907.91,1175.19 907.60,1176.71 906.58,1177.69"/>
- </edge>
- <edge id=":1780219352_8" function="internal">
- <lane id=":1780219352_8_0" index="0" speed="8.33" length="12.82" shape="905.06,1174.76 908.08,1173.19 910.74,1171.80 913.40,1170.41 916.43,1168.84"/>
- </edge>
- <edge id=":1780219352_9" function="internal">
- <lane id=":1780219352_9_0" index="0" speed="18.06" length="7.85" shape="905.06,1174.76 906.45,1174.49 907.86,1175.11 909.30,1176.61 910.76,1179.01"/>
- </edge>
- <edge id=":1780219352_10" function="internal">
- <lane id=":1780219352_10_0" index="0" speed="8.33" length="4.82" shape="905.06,1174.76 906.54,1174.92 907.28,1175.46 907.30,1176.39 906.58,1177.69"/>
- </edge>
- <edge id=":1780219353_0" function="internal">
- <lane id=":1780219353_0_0" index="0" speed="18.06" length="5.05" shape="903.64,1216.89 902.83,1215.75 901.86,1215.17 900.73,1215.13 899.43,1215.65"/>
- </edge>
- <edge id=":1780219353_1" function="internal">
- <lane id=":1780219353_1_0" index="0" speed="8.33" length="16.34" shape="903.64,1216.89 901.81,1213.37 899.87,1209.64 897.91,1205.91 896.07,1202.40"/>
- </edge>
- <edge id=":1780219353_2" function="internal">
- <lane id=":1780219353_2_0" index="0" speed="18.06" length="13.02" shape="903.64,1216.89 902.00,1212.90 901.58,1209.63 902.37,1207.07 904.39,1205.22"/>
- </edge>
- <edge id=":1780219353_3" function="internal">
- <lane id=":1780219353_3_0" index="0" speed="8.33" length="4.82" shape="903.64,1216.89 903.80,1215.41 904.34,1214.66 905.27,1214.65 906.57,1215.37"/>
- </edge>
- <edge id=":1780219353_4" function="internal">
- <lane id=":1780219353_4_0" index="0" speed="18.06" length="5.14" shape="907.66,1210.95 906.61,1211.78 906.08,1212.80 906.07,1213.99 906.57,1215.37"/>
- </edge>
- <edge id=":1780219353_5" function="internal">
- <lane id=":1780219353_5_0" index="0" speed="27.78" length="9.47" shape="907.66,1210.95 899.43,1215.65"/>
- </edge>
- <edge id=":1780219353_6" function="internal">
- <lane id=":1780219353_6_0" index="0" speed="27.78" length="9.47" shape="906.02,1208.08 897.80,1212.78"/>
- </edge>
- <edge id=":1780219353_7" function="internal">
- <lane id=":1780219353_7_0" index="0" speed="18.06" length="9.68" shape="906.02,1208.08 903.39,1208.87 900.86,1208.19 898.42,1206.03 897.85,1205.15"/>
- </edge>
- <edge id=":1780219353_18" function="internal">
- <lane id=":1780219353_18_0" index="0" speed="18.06" length="3.27" shape="897.85,1205.15 896.07,1202.40"/>
- </edge>
- <edge id=":1780219353_8" function="internal">
- <lane id=":1780219353_8_0" index="0" speed="27.78" length="2.41" shape="906.02,1208.08 904.54,1207.98 903.77,1207.47"/>
- </edge>
- <edge id=":1780219353_19" function="internal">
- <lane id=":1780219353_19_0" index="0" speed="27.78" length="2.41" shape="903.77,1207.47 903.72,1206.55 904.39,1205.22"/>
- </edge>
- <edge id=":1780219353_9" function="internal">
- <lane id=":1780219353_9_0" index="0" speed="18.06" length="4.63" shape="898.99,1200.87 899.78,1202.01 900.67,1202.63 901.66,1202.75 902.75,1202.35"/>
- </edge>
- <edge id=":1780219353_10" function="internal">
- <lane id=":1780219353_10_0" index="0" speed="8.33" length="16.36" shape="898.99,1200.87 900.84,1204.37 902.79,1208.11 904.74,1211.85 906.57,1215.37"/>
- </edge>
- <edge id=":1780219353_11" function="internal">
- <lane id=":1780219353_11_0" index="0" speed="18.06" length="13.42" shape="898.99,1200.87 900.62,1204.85 900.97,1208.16 900.02,1210.81 897.80,1212.78"/>
- </edge>
- <edge id=":1780219353_12" function="internal">
- <lane id=":1780219353_12_0" index="0" speed="8.33" length="4.82" shape="898.99,1200.87 898.84,1202.35 898.30,1203.09 897.38,1203.11 896.07,1202.40"/>
- </edge>
- <edge id=":1780219353_13" function="internal">
- <lane id=":1780219353_13_0" index="0" speed="18.06" length="5.54" shape="894.52,1207.05 895.77,1206.10 896.45,1205.01 896.55,1203.78 896.07,1202.40"/>
- </edge>
- <edge id=":1780219353_14" function="internal">
- <lane id=":1780219353_14_0" index="0" speed="27.78" length="9.47" shape="894.52,1207.05 902.75,1202.35"/>
- </edge>
- <edge id=":1780219353_15" function="internal">
- <lane id=":1780219353_15_0" index="0" speed="27.78" length="9.47" shape="896.16,1209.91 904.39,1205.22"/>
- </edge>
- <edge id=":1780219353_16" function="internal">
- <lane id=":1780219353_16_0" index="0" speed="18.06" length="10.07" shape="896.16,1209.91 899.00,1209.00 901.69,1209.61 904.21,1211.73 904.77,1212.60"/>
- </edge>
- <edge id=":1780219353_20" function="internal">
- <lane id=":1780219353_20_0" index="0" speed="18.06" length="3.30" shape="904.77,1212.60 906.57,1215.37"/>
- </edge>
- <edge id=":1780219353_17" function="internal">
- <lane id=":1780219353_17_0" index="0" speed="27.78" length="2.41" shape="896.16,1209.91 897.64,1210.02 898.41,1210.53"/>
- </edge>
- <edge id=":1780219353_21" function="internal">
- <lane id=":1780219353_21_0" index="0" speed="27.78" length="2.41" shape="898.41,1210.53 898.46,1211.45 897.80,1212.78"/>
- </edge>
- <edge id=":1780219355_0" function="internal">
- <lane id=":1780219355_0_0" index="0" speed="15.28" length="5.65" shape="795.96,1152.51 794.46,1151.77 793.30,1151.82 792.49,1152.64 792.02,1154.25"/>
- </edge>
- <edge id=":1780219355_1" function="internal">
- <lane id=":1780219355_1_0" index="0" speed="15.28" length="11.06" shape="795.96,1152.51 793.21,1150.35 791.35,1148.16 790.37,1145.94 790.27,1143.68"/>
- </edge>
- <edge id=":1780219355_2" function="internal">
- <lane id=":1780219355_2_0" index="0" speed="8.33" length="4.82" shape="795.96,1152.51 795.39,1151.13 795.51,1150.22 796.31,1149.76 797.79,1149.76"/>
- </edge>
- <edge id=":1780219355_3" function="internal">
- <lane id=":1780219355_3_0" index="0" speed="15.28" length="7.35" shape="793.53,1144.17 793.66,1145.45 794.41,1146.81 795.79,1148.25 797.79,1149.76"/>
- </edge>
- <edge id=":1780219355_4" function="internal">
- <lane id=":1780219355_4_0" index="0" speed="22.22" length="10.19" shape="793.53,1144.17 793.09,1147.14 792.77,1149.21 792.46,1151.28 792.02,1154.25"/>
- </edge>
- <edge id=":1780219355_5" function="internal">
- <lane id=":1780219355_5_0" index="0" speed="22.22" length="2.41" shape="793.53,1144.17 792.53,1145.27 791.65,1145.56"/>
- </edge>
- <edge id=":1780219355_9" function="internal">
- <lane id=":1780219355_9_0" index="0" speed="22.22" length="2.41" shape="791.65,1145.56 790.90,1145.03 790.27,1143.68"/>
- </edge>
- <edge id=":1780219355_6" function="internal">
- <lane id=":1780219355_6_0" index="0" speed="22.22" length="10.19" shape="788.75,1153.75 789.20,1150.79 789.51,1148.72 789.82,1146.64 790.27,1143.68"/>
- </edge>
- <edge id=":1780219355_7" function="internal">
- <lane id=":1780219355_7_0" index="0" speed="15.28" length="7.72" shape="788.75,1153.75 789.83,1150.08 791.70,1148.19 792.93,1148.14"/>
- </edge>
- <edge id=":1780219355_10" function="internal">
- <lane id=":1780219355_10_0" index="0" speed="15.28" length="5.25" shape="792.93,1148.14 794.35,1148.09 797.79,1149.76"/>
- </edge>
- <edge id=":1780219355_8" function="internal">
- <lane id=":1780219355_8_0" index="0" speed="22.22" length="2.41" shape="788.75,1153.75 789.75,1152.65 790.63,1152.37"/>
- </edge>
- <edge id=":1780219355_11" function="internal">
- <lane id=":1780219355_11_0" index="0" speed="22.22" length="2.41" shape="790.63,1152.37 791.38,1152.90 792.02,1154.25"/>
- </edge>
- <edge id=":1780219359_0" function="internal">
- <lane id=":1780219359_0_0" index="0" speed="18.06" length="5.05" shape="925.06,1232.66 924.27,1231.51 923.31,1230.91 922.18,1230.86 920.88,1231.35"/>
- </edge>
- <edge id=":1780219359_1" function="internal">
- <lane id=":1780219359_1_0" index="0" speed="27.78" length="9.73" shape="925.06,1232.66 920.72,1223.95"/>
- </edge>
- <edge id=":1780219359_2" function="internal">
- <lane id=":1780219359_2_0" index="0" speed="27.78" length="9.73" shape="928.02,1231.19 923.68,1222.47"/>
- </edge>
- <edge id=":1780219359_3" function="internal">
- <lane id=":1780219359_3_0" index="0" speed="18.06" length="8.11" shape="928.02,1231.19 926.91,1228.52 926.51,1226.39 926.83,1224.82 927.86,1223.80"/>
- </edge>
- <edge id=":1780219359_4" function="internal">
- <lane id=":1780219359_4_0" index="0" speed="8.33" length="9.72" shape="929.42,1226.70 920.88,1231.35"/>
- </edge>
- <edge id=":1780219359_5" function="internal">
- <lane id=":1780219359_5_0" index="0" speed="18.06" length="7.94" shape="929.42,1226.70 927.99,1227.02 926.55,1226.42 925.12,1224.90 923.68,1222.47"/>
- </edge>
- <edge id=":1780219359_6" function="internal">
- <lane id=":1780219359_6_0" index="0" speed="8.33" length="4.82" shape="929.42,1226.70 927.94,1226.56 927.19,1226.03 927.16,1225.11 927.86,1223.80"/>
- </edge>
- <edge id=":1780219359_7" function="internal">
- <lane id=":1780219359_7_0" index="0" speed="18.06" length="5.34" shape="919.30,1228.45 920.47,1227.58 921.10,1226.53 921.18,1225.32 920.72,1223.95"/>
- </edge>
- <edge id=":1780219359_8" function="internal">
- <lane id=":1780219359_8_0" index="0" speed="8.33" length="9.74" shape="919.30,1228.45 927.86,1223.80"/>
- </edge>
- <edge id=":1780219359_9" function="internal">
- <lane id=":1780219359_9_0" index="0" speed="8.33" length="4.82" shape="919.30,1228.45 920.78,1228.58 921.53,1229.11 921.57,1230.03 920.88,1231.35"/>
- </edge>
- <edge id=":1780219360_0" function="internal">
- <lane id=":1780219360_0_0" index="0" speed="8.33" length="6.50" shape="894.19,1198.84 890.60,1193.42"/>
- </edge>
- <edge id=":1780219360_1" function="internal">
- <lane id=":1780219360_1_0" index="0" speed="15.28" length="6.95" shape="894.19,1198.84 893.84,1197.46 894.26,1196.11 895.43,1194.77 897.37,1193.47"/>
- </edge>
- <edge id=":1780219360_2" function="internal">
- <lane id=":1780219360_2_0" index="0" speed="8.33" length="4.82" shape="894.19,1198.84 894.35,1197.36 894.88,1196.61 895.81,1196.59 897.11,1197.30"/>
- </edge>
- <edge id=":1780219360_3" function="internal">
- <lane id=":1780219360_3_0" index="0" speed="15.28" length="5.07" shape="893.19,1191.37 894.37,1192.65 895.46,1193.43 896.46,1193.70 897.37,1193.47"/>
- </edge>
- <edge id=":1780219360_4" function="internal">
- <lane id=":1780219360_4_0" index="0" speed="8.33" length="7.11" shape="893.19,1191.37 897.11,1197.30"/>
- </edge>
- <edge id=":1780219360_5" function="internal">
- <lane id=":1780219360_5_0" index="0" speed="8.33" length="4.82" shape="893.19,1191.37 893.31,1192.85 892.92,1193.68 892.02,1193.87 890.60,1193.42"/>
- </edge>
- <edge id=":1780219360_6" function="internal">
- <lane id=":1780219360_6_0" index="0" speed="15.28" length="5.21" shape="889.76,1197.72 890.92,1196.83 891.45,1195.82 891.34,1194.68 890.60,1193.42"/>
- </edge>
- <edge id=":1780219360_7" function="internal">
- <lane id=":1780219360_7_0" index="0" speed="22.22" length="8.72" shape="889.76,1197.72 897.37,1193.47"/>
- </edge>
- <edge id=":1780219360_8" function="internal">
- <lane id=":1780219360_8_0" index="0" speed="15.28" length="8.16" shape="889.76,1197.72 892.41,1196.47 894.52,1195.98 896.09,1196.26 897.11,1197.30"/>
- </edge>
- <edge id=":1780219361_0" function="internal">
- <lane id=":1780219361_0_0" index="0" speed="18.06" length="5.08" shape="940.01,1221.06 938.89,1221.87 938.30,1222.85 938.23,1224.00 938.70,1225.32"/>
- </edge>
- <edge id=":1780219361_1" function="internal">
- <lane id=":1780219361_1_0" index="0" speed="8.33" length="9.56" shape="940.01,1221.06 931.57,1225.54"/>
- </edge>
- <edge id=":1780219361_2" function="internal">
- <lane id=":1780219361_2_0" index="0" speed="8.33" length="4.82" shape="940.01,1221.06 938.53,1220.90 937.78,1220.36 937.76,1219.44 938.47,1218.13"/>
- </edge>
- <edge id=":1780219361_3" function="internal">
- <lane id=":1780219361_3_0" index="0" speed="18.06" length="5.01" shape="934.29,1216.82 935.09,1217.94 936.05,1218.53 937.18,1218.59 938.47,1218.13"/>
- </edge>
- <edge id=":1780219361_4" function="internal">
- <lane id=":1780219361_4_0" index="0" speed="27.78" length="9.57" shape="934.29,1216.82 938.70,1225.32"/>
- </edge>
- <edge id=":1780219361_5" function="internal">
- <lane id=":1780219361_5_0" index="0" speed="27.78" length="9.57" shape="931.36,1218.34 935.76,1226.84"/>
- </edge>
- <edge id=":1780219361_6" function="internal">
- <lane id=":1780219361_6_0" index="0" speed="18.06" length="7.94" shape="931.36,1218.34 932.49,1220.93 932.90,1223.00 932.59,1224.54 931.57,1225.54"/>
- </edge>
- <edge id=":1780219361_7" function="internal">
- <lane id=":1780219361_7_0" index="0" speed="8.33" length="9.59" shape="930.01,1222.64 938.47,1218.13"/>
- </edge>
- <edge id=":1780219361_8" function="internal">
- <lane id=":1780219361_8_0" index="0" speed="18.06" length="7.89" shape="930.01,1222.64 931.42,1222.34 932.85,1222.93 934.30,1224.43 935.76,1226.84"/>
- </edge>
- <edge id=":1780219361_9" function="internal">
- <lane id=":1780219361_9_0" index="0" speed="8.33" length="4.82" shape="930.01,1222.64 931.49,1222.78 932.24,1223.31 932.27,1224.23 931.57,1225.54"/>
- </edge>
- <edge id=":1780219362_0" function="internal">
- <lane id=":1780219362_0_0" index="0" speed="15.28" length="5.00" shape="930.02,1165.46 928.91,1166.26 928.32,1167.23 928.25,1168.36 928.71,1169.65"/>
- </edge>
- <edge id=":1780219362_1" function="internal">
- <lane id=":1780219362_1_0" index="0" speed="8.33" length="6.22" shape="930.02,1165.46 924.51,1168.34"/>
- </edge>
- <edge id=":1780219362_2" function="internal">
- <lane id=":1780219362_2_0" index="0" speed="8.33" length="4.82" shape="930.02,1165.46 928.54,1165.30 927.79,1164.76 927.78,1163.84 928.49,1162.54"/>
- </edge>
- <edge id=":1780219362_3" function="internal">
- <lane id=":1780219362_3_0" index="0" speed="15.28" length="5.01" shape="924.29,1161.23 925.10,1162.34 926.06,1162.93 927.20,1163.00 928.49,1162.54"/>
- </edge>
- <edge id=":1780219362_4" function="internal">
- <lane id=":1780219362_4_0" index="0" speed="22.22" length="9.51" shape="924.29,1161.23 928.71,1169.65"/>
- </edge>
- <edge id=":1780219362_5" function="internal">
- <lane id=":1780219362_5_0" index="0" speed="15.28" length="7.85" shape="924.29,1161.23 925.42,1163.80 925.84,1165.84 925.53,1167.35 924.51,1168.34"/>
- </edge>
- <edge id=":1780219362_6" function="internal">
- <lane id=":1780219362_6_0" index="0" speed="8.33" length="6.21" shape="922.98,1165.41 928.49,1162.54"/>
- </edge>
- <edge id=":1780219362_7" function="internal">
- <lane id=":1780219362_7_0" index="0" speed="15.28" length="7.86" shape="922.98,1165.41 924.37,1165.14 925.79,1165.75 927.24,1167.26 928.71,1169.65"/>
- </edge>
- <edge id=":1780219362_8" function="internal">
- <lane id=":1780219362_8_0" index="0" speed="8.33" length="4.82" shape="922.98,1165.41 924.46,1165.57 925.21,1166.11 925.23,1167.03 924.51,1168.34"/>
- </edge>
- <edge id=":1780219363_0" function="internal">
- <lane id=":1780219363_0_0" index="0" speed="15.28" length="5.87" shape="848.86,1007.14 848.06,1008.17 847.75,1009.42 847.92,1010.88 848.58,1012.56"/>
- </edge>
- <edge id=":1780219363_1" function="internal">
- <lane id=":1780219363_1_0" index="0" speed="8.33" length="6.71" shape="848.86,1007.14 844.28,1012.05"/>
- </edge>
- <edge id=":1780219363_2" function="internal">
- <lane id=":1780219363_2_0" index="0" speed="8.33" length="4.82" shape="848.86,1007.14 847.39,1007.35 846.53,1007.01 846.29,1006.12 846.66,1004.68"/>
- </edge>
- <edge id=":1780219363_3" function="internal">
- <lane id=":1780219363_3_0" index="0" speed="15.28" length="4.20" shape="843.64,1002.72 844.43,1004.05 845.20,1004.82 845.94,1005.03 846.66,1004.68"/>
- </edge>
- <edge id=":1780219363_4" function="internal">
- <lane id=":1780219363_4_0" index="0" speed="22.22" length="11.01" shape="843.64,1002.72 845.04,1005.52 846.11,1007.64 847.18,1009.77 848.58,1012.56"/>
- </edge>
- <edge id=":1780219363_5" function="internal">
- <lane id=":1780219363_5_0" index="0" speed="15.28" length="9.86" shape="843.64,1002.72 844.87,1005.68 845.39,1008.22 845.20,1010.35 844.28,1012.05"/>
- </edge>
- <edge id=":1780219363_6" function="internal">
- <lane id=":1780219363_6_0" index="0" speed="8.33" length="7.16" shape="841.77,1009.91 846.66,1004.68"/>
- </edge>
- <edge id=":1780219363_7" function="internal">
- <lane id=":1780219363_7_0" index="0" speed="15.28" length="9.22" shape="841.77,1009.91 843.49,1008.56 845.19,1008.55 846.89,1009.88 848.58,1012.56"/>
- </edge>
- <edge id=":1780219363_8" function="internal">
- <lane id=":1780219363_8_0" index="0" speed="8.33" length="4.82" shape="841.77,1009.91 843.20,1009.50 844.10,1009.72 844.46,1010.57 844.28,1012.05"/>
- </edge>
- <edge id=":1780219365_0" function="internal">
- <lane id=":1780219365_0_0" index="0" speed="6.94" length="4.80" shape="960.24,1212.87 959.16,1212.14 958.06,1211.82 956.95,1211.91 955.81,1212.41"/>
- </edge>
- <edge id=":1780219365_1" function="internal">
- <lane id=":1780219365_1_0" index="0" speed="5.56" length="8.99" shape="960.24,1212.87 955.45,1205.26"/>
- </edge>
- <edge id=":1780219365_2" function="internal">
- <lane id=":1780219365_2_0" index="0" speed="5.56" length="5.18" shape="960.24,1212.87 959.98,1211.30 960.32,1210.37 961.27,1210.09 962.83,1210.45"/>
- </edge>
- <edge id=":1780219365_3" function="internal">
- <lane id=":1780219365_3_0" index="0" speed="5.56" length="8.12" shape="958.38,1203.74 959.94,1206.63 961.21,1208.72 962.17,1209.99 962.83,1210.45"/>
- </edge>
- <edge id=":1780219365_4" function="internal">
- <lane id=":1780219365_4_0" index="0" speed="6.94" length="10.15" shape="958.38,1203.74 959.27,1206.30 959.14,1208.59 957.98,1210.63 955.81,1212.41"/>
- </edge>
- <edge id=":1780219365_5" function="internal">
- <lane id=":1780219365_5_0" index="0" speed="5.56" length="4.82" shape="958.38,1203.74 958.22,1205.22 957.68,1205.96 956.76,1205.98 955.45,1205.26"/>
- </edge>
- <edge id=":1780219365_6" function="internal">
- <lane id=":1780219365_6_0" index="0" speed="6.94" length="5.10" shape="954.09,1209.59 955.20,1208.69 955.80,1207.67 955.89,1206.52 955.45,1205.26"/>
- </edge>
- <edge id=":1780219365_7" function="internal">
- <lane id=":1780219365_7_0" index="0" speed="6.94" length="8.78" shape="954.09,1209.59 962.83,1210.45"/>
- </edge>
- <edge id=":1780219365_8" function="internal">
- <lane id=":1780219365_8_0" index="0" speed="8.33" length="4.82" shape="954.09,1209.59 955.57,1209.65 956.36,1210.14 956.44,1211.06 955.81,1212.41"/>
- </edge>
- <edge id=":1780219366_0" function="internal">
- <lane id=":1780219366_0_0" index="0" speed="8.33" length="4.96" shape="792.76,1036.61 791.40,1036.63 790.37,1037.07 789.65,1037.94 789.25,1039.23"/>
- </edge>
- <edge id=":1780219366_1" function="internal">
- <lane id=":1780219366_1_0" index="0" speed="8.33" length="8.98" shape="792.76,1036.61 790.23,1036.06 788.18,1035.11 786.60,1033.77 785.49,1032.04"/>
- </edge>
- <edge id=":1780219366_2" function="internal">
- <lane id=":1780219366_2_0" index="0" speed="8.33" length="4.82" shape="792.76,1036.61 791.64,1035.64 791.34,1034.76 791.85,1034.00 793.18,1033.34"/>
- </edge>
- <edge id=":1780219366_3" function="internal">
- <lane id=":1780219366_3_0" index="0" speed="8.33" length="5.62" shape="788.50,1030.68 789.16,1031.66 790.16,1032.43 791.50,1032.99 793.18,1033.34"/>
- </edge>
- <edge id=":1780219366_4" function="internal">
- <lane id=":1780219366_4_0" index="0" speed="8.33" length="8.59" shape="788.50,1030.68 789.25,1039.23"/>
- </edge>
- <edge id=":1780219366_5" function="internal">
- <lane id=":1780219366_5_0" index="0" speed="8.33" length="4.82" shape="788.50,1030.68 788.26,1032.15 787.68,1032.86 786.75,1032.82 785.49,1032.04"/>
- </edge>
- <edge id=":1780219366_6" function="internal">
- <lane id=":1780219366_6_0" index="0" speed="8.33" length="6.69" shape="785.99,1038.71 785.49,1032.04"/>
- </edge>
- <edge id=":1780219366_7" function="internal">
- <lane id=":1780219366_7_0" index="0" speed="8.33" length="10.17" shape="785.99,1038.71 786.81,1036.06 788.29,1034.28 790.41,1033.37 793.18,1033.34"/>
- </edge>
- <edge id=":1780219366_8" function="internal">
- <lane id=":1780219366_8_0" index="0" speed="8.33" length="4.82" shape="785.99,1038.71 787.00,1037.62 787.88,1037.34 788.63,1037.88 789.25,1039.23"/>
- </edge>
- <edge id=":1780219369_0" function="internal">
- <lane id=":1780219369_0_0" index="0" speed="8.33" length="9.83" shape="888.98,1191.38 883.03,1183.56"/>
- </edge>
- <edge id=":1780219369_1" function="internal">
- <lane id=":1780219369_1_0" index="0" speed="8.33" length="11.35" shape="888.98,1191.38 887.37,1188.62 887.16,1186.15 888.35,1183.99 890.95,1182.12"/>
- </edge>
- <edge id=":1780219369_2" function="internal">
- <lane id=":1780219369_2_0" index="0" speed="8.33" length="4.82" shape="888.98,1191.38 888.86,1189.90 889.25,1189.06 890.15,1188.87 891.56,1189.33"/>
- </edge>
- <edge id=":1780219369_3" function="internal">
- <lane id=":1780219369_3_0" index="0" speed="8.33" length="5.25" shape="892.47,1185.04 891.27,1185.91 890.72,1186.91 890.82,1188.05 891.56,1189.33"/>
- </edge>
- <edge id=":1780219369_4" function="internal">
- <lane id=":1780219369_4_0" index="0" speed="8.33" length="10.58" shape="892.47,1185.04 889.60,1186.14 887.06,1186.26 884.87,1185.40 883.03,1183.56"/>
- </edge>
- <edge id=":1780219369_5" function="internal">
- <lane id=":1780219369_5_0" index="0" speed="8.33" length="4.82" shape="892.47,1185.04 890.99,1184.88 890.25,1184.34 890.23,1183.42 890.95,1182.12"/>
- </edge>
- <edge id=":1780219369_6" function="internal">
- <lane id=":1780219369_6_0" index="0" speed="8.33" length="5.80" shape="885.70,1181.63 886.66,1182.54 887.86,1182.92 889.28,1182.78 890.95,1182.12"/>
- </edge>
- <edge id=":1780219369_7" function="internal">
- <lane id=":1780219369_7_0" index="0" speed="8.33" length="9.67" shape="885.70,1181.63 891.56,1189.33"/>
- </edge>
- <edge id=":1780219369_8" function="internal">
- <lane id=":1780219369_8_0" index="0" speed="8.33" length="4.81" shape="885.70,1181.63 885.75,1183.12 885.32,1183.93 884.42,1184.08 883.03,1183.56"/>
- </edge>
- <edge id=":1780219371_0" function="internal">
- <lane id=":1780219371_0_0" index="0" speed="6.94" length="4.17" shape="853.15,1007.93 852.35,1006.62 851.58,1005.86 850.84,1005.66 850.13,1006.00"/>
- </edge>
- <edge id=":1780219371_1" function="internal">
- <lane id=":1780219371_1_0" index="0" speed="5.56" length="9.71" shape="853.15,1007.93 848.69,999.31"/>
- </edge>
- <edge id=":1780219371_2" function="internal">
- <lane id=":1780219371_2_0" index="0" speed="5.56" length="4.82" shape="853.15,1007.93 853.32,1006.45 853.86,1005.70 854.78,1005.69 856.08,1006.41"/>
- </edge>
- <edge id=":1780219371_3" function="internal">
- <lane id=":1780219371_3_0" index="0" speed="5.56" length="9.71" shape="851.62,997.79 856.08,1006.41"/>
- </edge>
- <edge id=":1780219371_4" function="internal">
- <lane id=":1780219371_4_0" index="0" speed="6.94" length="9.08" shape="851.62,997.79 852.44,1000.07 852.46,1002.20 851.69,1004.17 850.13,1006.00"/>
- </edge>
- <edge id=":1780219371_5" function="internal">
- <lane id=":1780219371_5_0" index="0" speed="5.56" length="4.82" shape="851.62,997.79 851.45,999.27 850.91,1000.01 849.99,1000.03 848.69,999.31"/>
- </edge>
- <edge id=":1780219371_6" function="internal">
- <lane id=":1780219371_6_0" index="0" speed="6.94" length="4.68" shape="847.93,1003.54 848.73,1002.60 849.13,1001.58 849.11,1000.48 848.69,999.31"/>
- </edge>
- <edge id=":1780219371_7" function="internal">
- <lane id=":1780219371_7_0" index="0" speed="6.94" length="10.47" shape="847.93,1003.54 850.15,1002.19 852.25,1002.22 854.23,1003.63 856.08,1006.41"/>
- </edge>
- <edge id=":1780219371_8" function="internal">
- <lane id=":1780219371_8_0" index="0" speed="8.33" length="4.82" shape="847.93,1003.54 849.40,1003.33 850.26,1003.67 850.50,1004.56 850.13,1006.00"/>
- </edge>
- <edge id=":1780219373_0" function="internal">
- <lane id=":1780219373_0_0" index="0" speed="8.33" length="3.49" shape="815.62,1039.27 815.96,1039.30 816.18,1039.83 816.27,1040.87 816.25,1042.40"/>
- </edge>
- <edge id=":1780219373_1" function="internal">
- <lane id=":1780219373_1_0" index="0" speed="8.33" length="5.48" shape="815.62,1039.27 810.15,1038.88"/>
- </edge>
- <edge id=":1780219373_2" function="internal">
- <lane id=":1780219373_2_0" index="0" speed="8.33" length="4.82" shape="815.62,1039.27 814.14,1039.15 813.38,1038.62 813.34,1037.70 814.03,1036.38"/>
- </edge>
- <edge id=":1780219373_3" function="internal">
- <lane id=":1780219373_3_0" index="0" speed="8.33" length="3.54" shape="810.57,1035.61 814.03,1036.38"/>
- </edge>
- <edge id=":1780219373_4" function="internal">
- <lane id=":1780219373_4_0" index="0" speed="8.33" length="9.92" shape="810.57,1035.61 813.17,1036.32 814.98,1037.70 816.01,1039.72 816.25,1042.40"/>
- </edge>
- <edge id=":1780219373_5" function="internal">
- <lane id=":1780219373_5_0" index="0" speed="8.33" length="4.82" shape="810.57,1035.61 811.69,1036.59 812.00,1037.46 811.48,1038.22 810.15,1038.88"/>
- </edge>
- <edge id=":1780219373_6" function="internal">
- <lane id=":1780219373_6_0" index="0" speed="8.33" length="4.91" shape="812.95,1042.24 812.83,1040.91 812.32,1039.91 811.43,1039.23 810.15,1038.88"/>
- </edge>
- <edge id=":1780219373_7" function="internal">
- <lane id=":1780219373_7_0" index="0" speed="8.33" length="6.03" shape="812.95,1042.24 813.12,1039.84 813.35,1038.07 813.66,1036.91 814.03,1036.38"/>
- </edge>
- <edge id=":1780219373_8" function="internal">
- <lane id=":1780219373_8_0" index="0" speed="8.33" length="4.82" shape="812.95,1042.24 813.84,1041.04 814.68,1040.67 815.49,1041.12 816.25,1042.40"/>
- </edge>
- <edge id=":1780219374_0" function="internal">
- <lane id=":1780219374_0_0" index="0" speed="8.33" length="10.40" shape="820.11,1164.02 817.43,1165.43 815.51,1166.44 813.59,1167.44 810.90,1168.85"/>
- </edge>
- <edge id=":1780219374_1" function="internal">
- <lane id=":1780219374_1_0" index="0" speed="8.33" length="11.26" shape="820.11,1164.02 817.99,1164.64 815.53,1164.45 812.73,1163.46 809.60,1161.65"/>
- </edge>
- <edge id=":1780219374_2" function="internal">
- <lane id=":1780219374_2_0" index="0" speed="8.33" length="4.82" shape="820.11,1164.02 818.63,1163.87 817.88,1163.33 817.87,1162.41 818.58,1161.10"/>
- </edge>
- <edge id=":1780219374_3" function="internal">
- <lane id=":1780219374_3_0" index="0" speed="8.33" length="7.75" shape="811.44,1158.91 813.75,1160.29 815.71,1161.12 817.32,1161.39 818.58,1161.10"/>
- </edge>
- <edge id=":1780219374_4" function="internal">
- <lane id=":1780219374_4_0" index="0" speed="8.33" length="13.41" shape="811.44,1158.91 814.44,1161.56 815.35,1164.10 814.17,1166.53 810.90,1168.85"/>
- </edge>
- <edge id=":1780219374_5" function="internal">
- <lane id=":1780219374_5_0" index="0" speed="8.33" length="4.82" shape="811.44,1158.91 812.01,1160.28 811.89,1161.20 811.09,1161.65 809.60,1161.65"/>
- </edge>
- <edge id=":1780219374_6" function="internal">
- <lane id=":1780219374_6_0" index="0" speed="8.33" length="5.77" shape="809.37,1165.93 810.78,1164.93 811.28,1163.88 810.89,1162.79 809.60,1161.65"/>
- </edge>
- <edge id=":1780219374_7" function="internal">
- <lane id=":1780219374_7_0" index="0" speed="8.33" length="10.40" shape="809.37,1165.93 812.06,1164.52 813.98,1163.51 815.90,1162.51 818.58,1161.10"/>
- </edge>
- <edge id=":1780219374_8" function="internal">
- <lane id=":1780219374_8_0" index="0" speed="8.33" length="4.82" shape="809.37,1165.93 810.85,1166.08 811.60,1166.62 811.62,1167.54 810.90,1168.85"/>
- </edge>
- <edge id=":1780219377_0" function="internal">
- <lane id=":1780219377_0_0" index="0" speed="15.28" length="5.31" shape="954.82,1213.01 953.60,1214.00 952.98,1215.06 952.98,1216.20 953.59,1217.42"/>
- </edge>
- <edge id=":1780219377_1" function="internal">
- <lane id=":1780219377_1_0" index="0" speed="8.33" length="6.48" shape="954.82,1213.01 949.20,1216.23"/>
- </edge>
- <edge id=":1780219377_2" function="internal">
- <lane id=":1780219377_2_0" index="0" speed="8.33" length="4.82" shape="954.82,1213.01 953.34,1212.96 952.55,1212.47 952.47,1211.55 953.10,1210.20"/>
- </edge>
- <edge id=":1780219377_3" function="internal">
- <lane id=":1780219377_3_0" index="0" speed="15.28" length="5.10" shape="948.87,1209.01 949.69,1210.17 950.66,1210.75 951.80,1210.76 953.10,1210.20"/>
- </edge>
- <edge id=":1780219377_4" function="internal">
- <lane id=":1780219377_4_0" index="0" speed="22.22" length="9.64" shape="948.87,1209.01 953.59,1217.42"/>
- </edge>
- <edge id=":1780219377_5" function="internal">
- <lane id=":1780219377_5_0" index="0" speed="15.28" length="7.92" shape="948.87,1209.01 950.01,1211.65 950.44,1213.73 950.17,1215.26 949.20,1216.23"/>
- </edge>
- <edge id=":1780219377_6" function="internal">
- <lane id=":1780219377_6_0" index="0" speed="8.33" length="6.26" shape="947.66,1213.31 953.10,1210.20"/>
- </edge>
- <edge id=":1780219377_7" function="internal">
- <lane id=":1780219377_7_0" index="0" speed="15.28" length="7.69" shape="947.66,1213.31 948.83,1213.14 950.21,1213.78 951.80,1215.20 953.59,1217.42"/>
- </edge>
- <edge id=":1780219377_8" function="internal">
- <lane id=":1780219377_8_0" index="0" speed="8.33" length="4.82" shape="947.66,1213.31 949.14,1213.46 949.89,1214.00 949.91,1214.92 949.20,1216.23"/>
- </edge>
- <edge id=":1780381201_0" function="internal">
- <lane id=":1780381201_0_0" index="0" speed="5.56" length="4.82" shape="780.44,287.22 780.54,285.74 781.04,284.97 781.96,284.91 783.30,285.57"/>
- </edge>
- <edge id=":1780623649_0" function="internal">
- <lane id=":1780623649_0_0" index="0" speed="5.56" length="4.82" shape="944.71,1748.57 943.24,1748.40 942.49,1747.85 942.49,1746.92 943.22,1745.63"/>
- </edge>
- <edge id=":1903640411_0" function="internal">
- <lane id=":1903640411_0_0" index="0" speed="22.22" length="3.42" shape="661.17,1136.60 658.27,1134.78"/>
- </edge>
- <edge id=":1903640411_1" function="internal">
- <lane id=":1903640411_1_0" index="0" speed="22.22" length="2.41" shape="661.15,1133.17 661.03,1134.66 660.51,1135.42"/>
- </edge>
- <edge id=":1903640411_2" function="internal">
- <lane id=":1903640411_2_0" index="0" speed="22.22" length="2.41" shape="660.51,1135.42 659.59,1135.46 658.27,1134.78"/>
- </edge>
- <edge id=":1913728534_0" function="internal">
- <lane id=":1913728534_0_0" index="0" speed="27.78" length="0.10" shape="1291.59,1303.22 1291.59,1303.22"/>
- </edge>
- <edge id=":1913728534_1" function="internal">
- <lane id=":1913728534_1_0" index="0" speed="27.78" length="0.10" shape="1294.51,1301.68 1294.51,1301.68"/>
- </edge>
- <edge id=":1913728534_2" function="internal">
- <lane id=":1913728534_2_0" index="0" speed="27.78" length="2.41" shape="1294.51,1301.68 1294.67,1300.20 1295.20,1299.45"/>
- </edge>
- <edge id=":1913728534_6" function="internal">
- <lane id=":1913728534_6_0" index="0" speed="27.78" length="2.41" shape="1295.20,1299.45 1296.13,1299.43 1297.43,1300.14"/>
- </edge>
- <edge id=":1913728534_3" function="internal">
- <lane id=":1913728534_3_0" index="0" speed="27.78" length="0.10" shape="1300.35,1298.60 1300.35,1298.60"/>
- </edge>
- <edge id=":1913728534_4" function="internal">
- <lane id=":1913728534_4_0" index="0" speed="27.78" length="0.10" shape="1297.43,1300.14 1297.43,1300.14"/>
- </edge>
- <edge id=":1913728534_5" function="internal">
- <lane id=":1913728534_5_0" index="0" speed="27.78" length="2.41" shape="1297.43,1300.14 1297.28,1301.62 1296.74,1302.37"/>
- </edge>
- <edge id=":1913728534_7" function="internal">
- <lane id=":1913728534_7_0" index="0" speed="27.78" length="2.41" shape="1296.74,1302.37 1295.82,1302.39 1294.51,1301.68"/>
- </edge>
- <edge id=":2004733211_0" function="internal">
- <lane id=":2004733211_0_0" index="0" speed="22.22" length="4.82" shape="1466.74,2867.53 1466.21,2868.92 1465.50,2869.50 1464.60,2869.28 1463.52,2868.26"/>
- </edge>
- <edge id=":2006433692_0" function="internal">
- <lane id=":2006433692_0_0" index="0" speed="22.22" length="0.10" shape="1336.70,2034.88 1336.70,2034.88"/>
- </edge>
- <edge id=":2006433692_1" function="internal">
- <lane id=":2006433692_1_0" index="0" speed="22.22" length="2.41" shape="1336.70,2034.88 1336.86,2033.41 1337.40,2032.66"/>
- </edge>
- <edge id=":2006433692_4" function="internal">
- <lane id=":2006433692_4_0" index="0" speed="22.22" length="2.41" shape="1337.40,2032.66 1338.32,2032.64 1339.62,2033.36"/>
- </edge>
- <edge id=":2006433692_2" function="internal">
- <lane id=":2006433692_2_0" index="0" speed="22.22" length="0.10" shape="1339.62,2033.36 1339.62,2033.36"/>
- </edge>
- <edge id=":2006433692_3" function="internal">
- <lane id=":2006433692_3_0" index="0" speed="22.22" length="2.41" shape="1339.62,2033.36 1339.47,2034.83 1338.93,2035.58"/>
- </edge>
- <edge id=":2006433692_5" function="internal">
- <lane id=":2006433692_5_0" index="0" speed="22.22" length="2.41" shape="1338.93,2035.58 1338.00,2035.60 1336.70,2034.88"/>
- </edge>
- <edge id=":2016414184_0" function="internal">
- <lane id=":2016414184_0_0" index="0" speed="5.56" length="5.00" shape="846.76,1631.88 842.01,1633.45"/>
- </edge>
- <edge id=":2016414184_1" function="internal">
- <lane id=":2016414184_1_0" index="0" speed="5.56" length="4.82" shape="846.76,1631.88 845.33,1631.49 844.68,1630.83 844.81,1629.92 845.73,1628.75"/>
- </edge>
- <edge id=":2016414184_2" function="internal">
- <lane id=":2016414184_2_0" index="0" speed="5.56" length="8.09" shape="843.57,1625.52 842.01,1633.45"/>
- </edge>
- <edge id=":2016414184_3" function="internal">
- <lane id=":2016414184_3_0" index="0" speed="5.56" length="8.22" shape="843.57,1625.52 841.93,1627.78 841.74,1629.08 843.00,1629.40 845.73,1628.75"/>
- </edge>
- <edge id=":2016414184_4" function="internal">
- <lane id=":2016414184_4_0" index="0" speed="5.56" length="5.00" shape="840.98,1630.32 845.73,1628.75"/>
- </edge>
- <edge id=":2016414184_5" function="internal">
- <lane id=":2016414184_5_0" index="0" speed="5.56" length="4.82" shape="840.98,1630.32 842.42,1630.72 843.07,1631.37 842.93,1632.28 842.01,1633.45"/>
- </edge>
- <edge id=":2016414185_0" function="internal">
- <lane id=":2016414185_0_0" index="0" speed="22.22" length="2.18" shape="825.62,1637.36 824.62,1635.42"/>
- </edge>
- <edge id=":2016414185_1" function="internal">
- <lane id=":2016414185_1_0" index="0" speed="13.89" length="3.87" shape="825.62,1637.36 825.60,1636.49 826.43,1635.59 827.98,1634.74"/>
- </edge>
- <edge id=":2016414185_9" function="internal">
- <lane id=":2016414185_9_0" index="0" speed="13.89" length="2.85" shape="827.98,1634.74 828.11,1634.66 830.64,1633.71"/>
- </edge>
- <edge id=":2016414185_2" function="internal">
- <lane id=":2016414185_2_0" index="0" speed="22.22" length="2.41" shape="825.62,1637.36 825.79,1635.89 826.33,1635.14"/>
- </edge>
- <edge id=":2016414185_10" function="internal">
- <lane id=":2016414185_10_0" index="0" speed="22.22" length="2.41" shape="826.33,1635.14 827.25,1635.13 828.55,1635.86"/>
- </edge>
- <edge id=":2016414185_3" function="internal">
- <lane id=":2016414185_3_0" index="0" speed="13.89" length="3.26" shape="831.66,1636.85 828.55,1635.86"/>
- </edge>
- <edge id=":2016414185_4" function="internal">
- <lane id=":2016414185_4_0" index="0" speed="13.89" length="7.86" shape="831.66,1636.85 829.20,1637.42 827.20,1637.38 825.68,1636.71 824.62,1635.42"/>
- </edge>
- <edge id=":2016414185_5" function="internal">
- <lane id=":2016414185_5_0" index="0" speed="5.56" length="4.82" shape="831.66,1636.85 830.23,1636.45 829.58,1635.79 829.72,1634.88 830.64,1633.71"/>
- </edge>
- <edge id=":2016414185_6" function="internal">
- <lane id=":2016414185_6_0" index="0" speed="13.89" length="3.22" shape="827.56,1633.92 827.89,1634.16 828.51,1634.21 829.42,1634.06 830.64,1633.71"/>
- </edge>
- <edge id=":2016414185_7" function="internal">
- <lane id=":2016414185_7_0" index="0" speed="22.22" length="2.18" shape="827.56,1633.92 828.55,1635.86"/>
- </edge>
- <edge id=":2016414185_8" function="internal">
- <lane id=":2016414185_8_0" index="0" speed="22.22" length="2.41" shape="827.56,1633.92 827.39,1635.40 826.84,1636.14"/>
- </edge>
- <edge id=":2016414185_11" function="internal">
- <lane id=":2016414185_11_0" index="0" speed="22.22" length="2.41" shape="826.84,1636.14 825.92,1636.15 824.62,1635.42"/>
- </edge>
- <edge id=":2017759586_0" function="internal">
- <lane id=":2017759586_0_0" index="0" speed="8.33" length="2.51" shape="858.91,1726.86 858.50,1726.32 858.01,1726.03 857.44,1726.00 856.79,1726.22"/>
- </edge>
- <edge id=":2017759586_1" function="internal">
- <lane id=":2017759586_1_0" index="0" speed="8.33" length="2.41" shape="858.91,1726.86 859.03,1725.38 859.54,1724.62"/>
- </edge>
- <edge id=":2017759586_4" function="internal">
- <lane id=":2017759586_4_0" index="0" speed="8.33" length="2.41" shape="859.54,1724.62 860.47,1724.58 861.79,1725.25"/>
- </edge>
- <edge id=":2017759586_2" function="internal">
- <lane id=":2017759586_2_0" index="0" speed="8.33" length="7.67" shape="855.30,1723.28 857.28,1722.60 859.02,1722.70 860.52,1723.59 861.79,1725.25"/>
- </edge>
- <edge id=":2017759586_3" function="internal">
- <lane id=":2017759586_3_0" index="0" speed="8.33" length="2.41" shape="855.30,1723.28 856.77,1723.45 857.51,1724.00"/>
- </edge>
- <edge id=":2017759586_5" function="internal">
- <lane id=":2017759586_5_0" index="0" speed="8.33" length="2.41" shape="857.51,1724.00 857.52,1724.92 856.79,1726.22"/>
- </edge>
- <edge id=":2017759588_0" function="internal">
- <lane id=":2017759588_0_0" index="0" speed="18.06" length="6.17" shape="875.53,1730.67 874.71,1729.66 873.52,1729.09 871.95,1728.94 870.00,1729.23"/>
- </edge>
- <edge id=":2017759588_1" function="internal">
- <lane id=":2017759588_1_0" index="0" speed="27.78" length="9.70" shape="875.53,1730.67 871.07,1722.05"/>
- </edge>
- <edge id=":2017759588_2" function="internal">
- <lane id=":2017759588_2_0" index="0" speed="27.78" length="2.41" shape="875.53,1730.67 875.70,1729.19 876.24,1728.45"/>
- </edge>
- <edge id=":2017759588_9" function="internal">
- <lane id=":2017759588_9_0" index="0" speed="27.78" length="2.41" shape="876.24,1728.45 877.16,1728.43 878.46,1729.15"/>
- </edge>
- <edge id=":2017759588_3" function="internal">
- <lane id=":2017759588_3_0" index="0" speed="27.78" length="9.70" shape="874.01,1720.53 878.46,1729.15"/>
- </edge>
- <edge id=":2017759588_4" function="internal">
- <lane id=":2017759588_4_0" index="0" speed="18.06" length="7.34" shape="874.01,1720.53 875.10,1723.67 874.79,1726.17 873.78,1727.28"/>
- </edge>
- <edge id=":2017759588_10" function="internal">
- <lane id=":2017759588_10_0" index="0" speed="18.06" length="4.33" shape="873.78,1727.28 873.09,1728.02 870.00,1729.23"/>
- </edge>
- <edge id=":2017759588_5" function="internal">
- <lane id=":2017759588_5_0" index="0" speed="27.78" length="2.41" shape="874.01,1720.53 873.84,1722.01 873.30,1722.76"/>
- </edge>
- <edge id=":2017759588_11" function="internal">
- <lane id=":2017759588_11_0" index="0" speed="27.78" length="2.41" shape="873.30,1722.76 872.38,1722.77 871.07,1722.05"/>
- </edge>
- <edge id=":2017759588_6" function="internal">
- <lane id=":2017759588_6_0" index="0" speed="18.06" length="5.33" shape="869.25,1726.02 870.66,1725.47 871.43,1724.62 871.57,1723.48 871.07,1722.05"/>
- </edge>
- <edge id=":2017759588_7" function="internal">
- <lane id=":2017759588_7_0" index="0" speed="18.06" length="10.57" shape="869.25,1726.02 872.36,1725.62 874.94,1726.01 876.97,1727.19 878.46,1729.15"/>
- </edge>
- <edge id=":2017759588_8" function="internal">
- <lane id=":2017759588_8_0" index="0" speed="8.33" length="4.82" shape="869.25,1726.02 870.64,1726.54 871.23,1727.25 871.02,1728.14 870.00,1729.23"/>
- </edge>
- <edge id=":2017759592_0" function="internal">
- <lane id=":2017759592_0_0" index="0" speed="8.33" length="0.47" shape="862.29,1732.86 862.04,1732.46"/>
- </edge>
- <edge id=":2017759592_1" function="internal">
- <lane id=":2017759592_1_0" index="0" speed="8.33" length="2.41" shape="862.29,1732.86 862.26,1731.37 862.71,1730.56"/>
- </edge>
- <edge id=":2017759592_4" function="internal">
- <lane id=":2017759592_4_0" index="0" speed="8.33" length="2.41" shape="862.71,1730.56 863.62,1730.43 865.00,1730.98"/>
- </edge>
- <edge id=":2017759592_2" function="internal">
- <lane id=":2017759592_2_0" index="0" speed="8.33" length="0.15" shape="864.92,1730.85 865.00,1730.98"/>
- </edge>
- <edge id=":2017759592_3" function="internal">
- <lane id=":2017759592_3_0" index="0" speed="8.33" length="2.41" shape="864.92,1730.85 864.81,1732.33 864.29,1733.09"/>
- </edge>
- <edge id=":2017759592_5" function="internal">
- <lane id=":2017759592_5_0" index="0" speed="8.33" length="2.41" shape="864.29,1733.09 863.37,1733.14 862.04,1732.46"/>
- </edge>
- <edge id=":2017759594_0" function="internal">
- <lane id=":2017759594_0_0" index="0" speed="8.33" length="2.18" shape="867.38,1740.61 866.34,1738.70"/>
- </edge>
- <edge id=":2017759594_1" function="internal">
- <lane id=":2017759594_1_0" index="0" speed="8.33" length="2.22" shape="867.38,1740.61 866.56,1738.55"/>
- </edge>
- <edge id=":2017759594_2" function="internal">
- <lane id=":2017759594_2_0" index="0" speed="8.33" length="13.23" shape="867.38,1740.61 865.62,1736.01 865.50,1734.09 867.02,1734.86 870.17,1738.32"/>
- </edge>
- <edge id=":2017759594_3" function="internal">
- <lane id=":2017759594_3_0" index="0" speed="8.33" length="5.01" shape="867.38,1740.61 867.23,1739.07 867.62,1738.19 868.55,1737.98 870.03,1738.43"/>
- </edge>
- <edge id=":2017759594_4" function="internal">
- <lane id=":2017759594_4_0" index="0" speed="8.33" length="3.12" shape="867.62,1740.41 870.03,1738.43"/>
- </edge>
- <edge id=":2017759594_5" function="internal">
- <lane id=":2017759594_5_0" index="0" speed="8.33" length="2.14" shape="867.62,1740.41 866.34,1738.70"/>
- </edge>
- <edge id=":2017759594_6" function="internal">
- <lane id=":2017759594_6_0" index="0" speed="8.33" length="2.15" shape="867.62,1740.41 866.56,1738.55"/>
- </edge>
- <edge id=":2017759594_7" function="internal">
- <lane id=":2017759594_7_0" index="0" speed="8.33" length="4.82" shape="867.62,1740.41 867.48,1738.93 867.85,1738.09 868.75,1737.88 870.17,1738.32"/>
- </edge>
- <edge id=":2017759594_8" function="internal">
- <lane id=":2017759594_8_0" index="0" speed="8.33" length="1.88" shape="869.39,1736.61 870.17,1738.32"/>
- </edge>
- <edge id=":2017759594_9" function="internal">
- <lane id=":2017759594_9_0" index="0" speed="8.33" length="1.93" shape="869.39,1736.61 870.03,1738.43"/>
- </edge>
- <edge id=":2017759594_10" function="internal">
- <lane id=":2017759594_10_0" index="0" speed="8.33" length="13.49" shape="869.39,1736.61 870.77,1741.44 870.72,1743.40 869.25,1742.48 866.34,1738.70"/>
- </edge>
- <edge id=":2017759594_11" function="internal">
- <lane id=":2017759594_11_0" index="0" speed="8.33" length="5.01" shape="869.39,1736.61 869.41,1738.16 868.94,1738.99 867.99,1739.12 866.56,1738.55"/>
- </edge>
- <edge id=":2017759594_12" function="internal">
- <lane id=":2017759594_12_0" index="0" speed="8.33" length="3.03" shape="869.06,1736.83 866.56,1738.55"/>
- </edge>
- <edge id=":2017759594_13" function="internal">
- <lane id=":2017759594_13_0" index="0" speed="8.33" length="1.85" shape="869.06,1736.83 870.17,1738.32"/>
- </edge>
- <edge id=":2017759594_14" function="internal">
- <lane id=":2017759594_14_0" index="0" speed="8.33" length="1.87" shape="869.06,1736.83 870.03,1738.43"/>
- </edge>
- <edge id=":2017759594_15" function="internal">
- <lane id=":2017759594_15_0" index="0" speed="8.33" length="4.82" shape="869.06,1736.83 869.08,1738.32 868.63,1739.13 867.72,1739.25 866.34,1738.70"/>
- </edge>
- <edge id=":2017759596_0" function="internal">
- <lane id=":2017759596_0_0" index="0" speed="8.33" length="0.57" shape="869.60,1745.64 869.34,1745.13"/>
- </edge>
- <edge id=":2017759596_1" function="internal">
- <lane id=":2017759596_1_0" index="0" speed="8.33" length="2.41" shape="869.60,1745.64 869.69,1744.15 870.20,1743.38"/>
- </edge>
- <edge id=":2017759596_4" function="internal">
- <lane id=":2017759596_4_0" index="0" speed="8.33" length="2.41" shape="870.20,1743.38 871.12,1743.33 872.45,1743.98"/>
- </edge>
- <edge id=":2017759596_2" function="internal">
- <lane id=":2017759596_2_0" index="0" speed="8.33" length="0.19" shape="872.37,1743.82 872.45,1743.98"/>
- </edge>
- <edge id=":2017759596_3" function="internal">
- <lane id=":2017759596_3_0" index="0" speed="8.33" length="2.41" shape="872.37,1743.82 872.10,1745.28 871.51,1745.99"/>
- </edge>
- <edge id=":2017759596_5" function="internal">
- <lane id=":2017759596_5_0" index="0" speed="8.33" length="2.41" shape="871.51,1745.99 870.59,1745.94 869.34,1745.13"/>
- </edge>
- <edge id=":2017759615_0" function="internal">
- <lane id=":2017759615_0_0" index="0" speed="8.33" length="4.82" shape="859.03,1764.26 857.55,1764.08 856.81,1763.53 856.81,1762.61 857.54,1761.32"/>
- </edge>
- <edge id=":2079750190_0" function="internal">
- <lane id=":2079750190_0_0" index="0" speed="8.33" length="5.03" shape="1478.24,2189.32 1477.43,2188.20 1476.46,2187.60 1475.33,2187.52 1474.04,2187.97"/>
- </edge>
- <edge id=":2079750190_1" function="internal">
- <lane id=":2079750190_1_0" index="0" speed="8.33" length="10.36" shape="1478.24,2189.32 1477.29,2186.65 1477.42,2184.31 1478.65,2182.32 1480.96,2180.67"/>
- </edge>
- <edge id=":2079750190_2" function="internal">
- <lane id=":2079750190_2_0" index="0" speed="8.33" length="4.82" shape="1478.24,2189.32 1478.40,2187.84 1478.93,2187.09 1479.86,2187.08 1481.16,2187.79"/>
- </edge>
- <edge id=":2079750190_3" function="internal">
- <lane id=":2079750190_3_0" index="0" speed="8.33" length="5.01" shape="1482.48,2183.60 1481.36,2184.40 1480.77,2185.36 1480.70,2186.49 1481.16,2187.79"/>
- </edge>
- <edge id=":2079750190_4" function="internal">
- <lane id=":2079750190_4_0" index="0" speed="8.33" length="9.50" shape="1482.48,2183.60 1474.04,2187.97"/>
- </edge>
- <edge id=":2079750190_5" function="internal">
- <lane id=":2079750190_5_0" index="0" speed="8.33" length="4.82" shape="1482.48,2183.60 1481.00,2183.44 1480.25,2182.90 1480.24,2181.97 1480.96,2180.67"/>
- </edge>
- <edge id=":2079750190_6" function="internal">
- <lane id=":2079750190_6_0" index="0" speed="8.33" length="9.50" shape="1472.52,2185.04 1480.96,2180.67"/>
- </edge>
- <edge id=":2079750190_7" function="internal">
- <lane id=":2079750190_7_0" index="0" speed="8.33" length="10.32" shape="1472.52,2185.04 1475.18,2184.11 1477.51,2184.26 1479.50,2185.49 1481.16,2187.79"/>
- </edge>
- <edge id=":2079750190_8" function="internal">
- <lane id=":2079750190_8_0" index="0" speed="8.33" length="4.82" shape="1472.52,2185.04 1474.00,2185.20 1474.75,2185.74 1474.76,2186.67 1474.04,2187.97"/>
- </edge>
- <edge id=":2081499947_0" function="internal">
- <lane id=":2081499947_0_0" index="0" speed="22.22" length="9.50" shape="1163.43,1005.03 1167.78,1013.47"/>
- </edge>
- <edge id=":2081499947_1" function="internal">
- <lane id=":2081499947_1_0" index="0" speed="15.28" length="7.86" shape="1163.43,1005.03 1164.53,1007.60 1164.93,1009.65 1164.62,1011.17 1163.60,1012.16"/>
- </edge>
- <edge id=":2081499947_2" function="internal">
- <lane id=":2081499947_2_0" index="0" speed="15.28" length="7.88" shape="1162.05,1009.24 1163.46,1008.95 1164.88,1009.56 1166.32,1011.07 1167.78,1013.47"/>
- </edge>
- <edge id=":2081499947_3" function="internal">
- <lane id=":2081499947_3_0" index="0" speed="8.33" length="4.82" shape="1162.05,1009.24 1163.53,1009.39 1164.28,1009.93 1164.30,1010.85 1163.60,1012.16"/>
- </edge>
- <edge id=":2081499948_0" function="internal">
- <lane id=":2081499948_0_0" index="0" speed="6.94" length="4.05" shape="1156.31,1019.66 1155.77,1018.38 1155.59,1017.34 1155.78,1016.55 1156.34,1016.00"/>
- </edge>
- <edge id=":2081499948_1" function="internal">
- <lane id=":2081499948_1_0" index="0" speed="5.56" length="9.66" shape="1156.31,1019.66 1151.86,1011.09"/>
- </edge>
- <edge id=":2081499948_2" function="internal">
- <lane id=":2081499948_2_0" index="0" speed="6.94" length="10.45" shape="1156.31,1019.66 1155.35,1016.94 1155.47,1014.57 1156.68,1012.55 1158.97,1010.87"/>
- </edge>
- <edge id=":2081499948_3" function="internal">
- <lane id=":2081499948_3_0" index="0" speed="5.56" length="4.82" shape="1156.31,1019.66 1156.47,1018.18 1157.02,1017.44 1157.94,1017.42 1159.24,1018.14"/>
- </edge>
- <edge id=":2081499948_4" function="internal">
- <lane id=":2081499948_4_0" index="0" speed="6.94" length="5.16" shape="1160.52,1013.79 1159.40,1014.61 1158.81,1015.61 1158.76,1016.79 1159.24,1018.14"/>
- </edge>
- <edge id=":2081499948_5" function="internal">
- <lane id=":2081499948_5_0" index="0" speed="8.33" length="4.72" shape="1160.52,1013.79 1156.34,1016.00"/>
- </edge>
- <edge id=":2081499948_6" function="internal">
- <lane id=":2081499948_6_0" index="0" speed="6.94" length="8.32" shape="1160.52,1013.79 1157.84,1014.75 1155.51,1014.62 1153.51,1013.40 1153.05,1012.75"/>
- </edge>
- <edge id=":2081499948_16" function="internal">
- <lane id=":2081499948_16_0" index="0" speed="6.94" length="2.04" shape="1153.05,1012.75 1151.86,1011.09"/>
- </edge>
- <edge id=":2081499948_7" function="internal">
- <lane id=":2081499948_7_0" index="0" speed="8.33" length="2.41" shape="1160.52,1013.79 1159.04,1013.64 1158.29,1013.10"/>
- </edge>
- <edge id=":2081499948_17" function="internal">
- <lane id=":2081499948_17_0" index="0" speed="8.33" length="2.41" shape="1158.29,1013.10 1158.26,1012.18 1158.97,1010.87"/>
- </edge>
- <edge id=":2081499948_8" function="internal">
- <lane id=":2081499948_8_0" index="0" speed="6.94" length="5.01" shape="1154.79,1009.57 1155.59,1010.69 1156.55,1011.28 1157.68,1011.34 1158.97,1010.87"/>
- </edge>
- <edge id=":2081499948_9" function="internal">
- <lane id=":2081499948_9_0" index="0" speed="5.56" length="9.66" shape="1154.79,1009.57 1159.24,1018.14"/>
- </edge>
- <edge id=":2081499948_10" function="internal">
- <lane id=":2081499948_10_0" index="0" speed="6.94" length="6.93" shape="1154.79,1009.57 1155.98,1012.09 1156.64,1014.00 1156.76,1015.30 1156.34,1016.00"/>
- </edge>
- <edge id=":2081499948_11" function="internal">
- <lane id=":2081499948_11_0" index="0" speed="5.56" length="4.82" shape="1154.79,1009.57 1154.62,1011.05 1154.08,1011.79 1153.16,1011.81 1151.86,1011.09"/>
- </edge>
- <edge id=":2081499948_12" function="internal">
- <lane id=":2081499948_12_0" index="0" speed="6.94" length="3.90" shape="1154.71,1013.14 1154.01,1013.30 1153.31,1013.02 1152.59,1012.28 1151.86,1011.09"/>
- </edge>
- <edge id=":2081499948_13" function="internal">
- <lane id=":2081499948_13_0" index="0" speed="8.33" length="4.83" shape="1154.71,1013.14 1158.97,1010.87"/>
- </edge>
- <edge id=":2081499948_14" function="internal">
- <lane id=":2081499948_14_0" index="0" speed="6.94" length="3.88" shape="1154.71,1013.14 1155.55,1013.13 1156.58,1013.96 1157.60,1015.34"/>
- </edge>
- <edge id=":2081499948_18" function="internal">
- <lane id=":2081499948_18_0" index="0" speed="6.94" length="3.25" shape="1157.60,1015.34 1157.82,1015.63 1159.24,1018.14"/>
- </edge>
- <edge id=":2081499948_15" function="internal">
- <lane id=":2081499948_15_0" index="0" speed="8.33" length="2.41" shape="1154.71,1013.14 1156.19,1013.24 1156.96,1013.75"/>
- </edge>
- <edge id=":2081499948_19" function="internal">
- <lane id=":2081499948_19_0" index="0" speed="8.33" length="2.41" shape="1156.96,1013.75 1157.01,1014.67 1156.34,1016.00"/>
- </edge>
- <edge id=":2081499949_0" function="internal">
- <lane id=":2081499949_0_0" index="0" speed="18.06" length="1.61" shape="1153.30,1017.74 1153.90,1017.39 1154.33,1017.12 1154.57,1016.95 1154.64,1016.86"/>
- </edge>
- <edge id=":2081499949_1" function="internal">
- <lane id=":2081499949_1_0" index="0" speed="8.33" length="0.11" shape="1153.30,1017.74 1153.40,1017.69"/>
- </edge>
- <edge id=":2081499949_2" function="internal">
- <lane id=":2081499949_2_0" index="0" speed="8.33" length="4.82" shape="1153.30,1017.74 1151.82,1017.64 1151.05,1017.13 1151.00,1016.20 1151.66,1014.87"/>
- </edge>
- <edge id=":2081499949_3" function="internal">
- <lane id=":2081499949_3_0" index="0" speed="18.06" length="4.02" shape="1151.67,1011.24 1152.22,1012.51 1152.40,1013.54 1152.22,1014.33 1151.66,1014.87"/>
- </edge>
- <edge id=":2081499949_4" function="internal">
- <lane id=":2081499949_4_0" index="0" speed="27.78" length="6.36" shape="1151.67,1011.24 1154.64,1016.86"/>
- </edge>
- <edge id=":2081499949_5" function="internal">
- <lane id=":2081499949_5_0" index="0" speed="27.78" length="6.36" shape="1148.75,1012.79 1151.72,1018.40"/>
- </edge>
- <edge id=":2081499949_6" function="internal">
- <lane id=":2081499949_6_0" index="0" speed="18.06" length="7.15" shape="1148.75,1012.79 1150.18,1015.25 1151.43,1016.89 1152.51,1017.70 1153.40,1017.69"/>
- </edge>
- <edge id=":2081499949_7" function="internal">
- <lane id=":2081499949_7_0" index="0" speed="8.33" length="0.10" shape="1151.61,1014.90 1151.66,1014.87"/>
- </edge>
- <edge id=":2081499949_8" function="internal">
- <lane id=":2081499949_8_0" index="0" speed="18.06" length="3.87" shape="1151.61,1014.90 1151.11,1015.39 1150.96,1016.14 1151.16,1017.14 1151.72,1018.40"/>
- </edge>
- <edge id=":2081499949_9" function="internal">
- <lane id=":2081499949_9_0" index="0" speed="8.33" length="4.84" shape="1151.61,1014.90 1153.10,1014.93 1153.90,1015.40 1153.99,1016.32 1153.40,1017.69"/>
- </edge>
- <edge id=":2081499950_0" function="internal">
- <lane id=":2081499950_0_0" index="0" speed="18.06" length="4.13" shape="1143.39,1022.78 1147.13,1021.01"/>
- </edge>
- <edge id=":2081499950_1" function="internal">
- <lane id=":2081499950_1_0" index="0" speed="27.78" length="3.55" shape="1143.39,1022.78 1141.76,1019.62"/>
- </edge>
- <edge id=":2081499950_2" function="internal">
- <lane id=":2081499950_2_0" index="0" speed="27.78" length="4.70" shape="1146.32,1021.25 1144.16,1017.09"/>
- </edge>
- <edge id=":2081499950_3" function="internal">
- <lane id=":2081499950_3_0" index="0" speed="18.06" length="4.95" shape="1146.32,1021.25 1145.85,1019.95 1145.90,1018.82 1146.45,1017.86 1147.51,1017.07"/>
- </edge>
- <edge id=":2081499950_4" function="internal">
- <lane id=":2081499950_4_0" index="0" speed="27.78" length="2.71" shape="1146.32,1021.25 1147.24,1019.86 1148.17,1019.39"/>
- </edge>
- <edge id=":2081499950_18" function="internal">
- <lane id=":2081499950_18_0" index="0" speed="27.78" length="2.71" shape="1148.17,1019.39 1149.10,1019.85 1150.03,1021.24"/>
- </edge>
- <edge id=":2081499950_5" function="internal">
- <lane id=":2081499950_5_0" index="0" speed="18.06" length="3.67" shape="1149.06,1019.99 1150.46,1019.28 1151.49,1018.83 1152.15,1018.64 1152.43,1018.70"/>
- </edge>
- <edge id=":2081499950_6" function="internal">
- <lane id=":2081499950_6_0" index="0" speed="8.33" length="2.18" shape="1149.06,1019.99 1147.13,1021.01"/>
- </edge>
- <edge id=":2081499950_7" function="internal">
- <lane id=":2081499950_7_0" index="0" speed="18.06" length="6.40" shape="1149.06,1019.99 1147.75,1020.34 1146.50,1019.97 1145.30,1018.89 1144.16,1017.09"/>
- </edge>
- <edge id=":2081499950_8" function="internal">
- <lane id=":2081499950_8_0" index="0" speed="8.33" length="4.82" shape="1149.06,1019.99 1147.58,1019.84 1146.83,1019.30 1146.81,1018.38 1147.51,1017.07"/>
- </edge>
- <edge id=":2081499950_9" function="internal">
- <lane id=":2081499950_9_0" index="0" speed="18.06" length="3.68" shape="1150.54,1015.06 1150.41,1015.30 1149.87,1015.72 1148.90,1016.31 1147.51,1017.07"/>
- </edge>
- <edge id=":2081499950_10" function="internal">
- <lane id=":2081499950_10_0" index="0" speed="27.78" length="4.11" shape="1150.54,1015.06 1152.43,1018.70"/>
- </edge>
- <edge id=":2081499950_11" function="internal">
- <lane id=":2081499950_11_0" index="0" speed="27.78" length="6.40" shape="1147.08,1015.56 1150.03,1021.24"/>
- </edge>
- <edge id=":2081499950_12" function="internal">
- <lane id=":2081499950_12_0" index="0" speed="18.06" length="6.03" shape="1147.08,1015.56 1147.92,1017.51 1148.21,1019.07 1147.95,1020.24 1147.13,1021.01"/>
- </edge>
- <edge id=":2081499950_13" function="internal">
- <lane id=":2081499950_13_0" index="0" speed="27.78" length="2.41" shape="1147.08,1015.56 1146.92,1017.04 1146.38,1017.79"/>
- </edge>
- <edge id=":2081499950_19" function="internal">
- <lane id=":2081499950_19_0" index="0" speed="27.78" length="2.41" shape="1146.38,1017.79 1145.46,1017.80 1144.16,1017.09"/>
- </edge>
- <edge id=":2081499950_14" function="internal">
- <lane id=":2081499950_14_0" index="0" speed="18.06" length="4.19" shape="1145.59,1018.09 1143.99,1018.90 1142.81,1019.43 1142.07,1019.67 1141.76,1019.62"/>
- </edge>
- <edge id=":2081499950_15" function="internal">
- <lane id=":2081499950_15_0" index="0" speed="8.33" length="2.17" shape="1145.59,1018.09 1147.51,1017.07"/>
- </edge>
- <edge id=":2081499950_16" function="internal">
- <lane id=":2081499950_16_0" index="0" speed="18.06" length="6.04" shape="1145.59,1018.09 1146.70,1017.85 1147.80,1018.30 1148.92,1019.43 1150.03,1021.24"/>
- </edge>
- <edge id=":2081499950_17" function="internal">
- <lane id=":2081499950_17_0" index="0" speed="8.33" length="4.82" shape="1145.59,1018.09 1147.07,1018.24 1147.82,1018.78 1147.84,1019.70 1147.13,1021.01"/>
- </edge>
- <edge id=":2081499951_0" function="internal">
- <lane id=":2081499951_0_0" index="0" speed="18.06" length="1.69" shape="1140.76,1022.67 1141.09,1023.24 1141.39,1023.61 1141.65,1023.79 1141.89,1023.77"/>
- </edge>
- <edge id=":2081499951_1" function="internal">
- <lane id=":2081499951_1_0" index="0" speed="27.78" length="4.93" shape="1140.76,1022.67 1138.48,1018.30"/>
- </edge>
- <edge id=":2081499951_2" function="internal">
- <lane id=":2081499951_2_0" index="0" speed="27.78" length="4.93" shape="1143.68,1021.15 1141.41,1016.78"/>
- </edge>
- <edge id=":2081499951_3" function="internal">
- <lane id=":2081499951_3_0" index="0" speed="18.06" length="3.30" shape="1143.68,1021.15 1143.19,1020.51 1142.55,1020.20 1141.77,1020.23 1140.83,1020.59"/>
- </edge>
- <edge id=":2081499951_4" function="internal">
- <lane id=":2081499951_4_0" index="0" speed="8.33" length="5.26" shape="1146.54,1021.32 1141.89,1023.77"/>
- </edge>
- <edge id=":2081499951_5" function="internal">
- <lane id=":2081499951_5_0" index="0" speed="18.06" length="7.42" shape="1146.54,1021.32 1145.40,1021.47 1144.17,1020.76 1142.84,1019.19 1141.41,1016.78"/>
- </edge>
- <edge id=":2081499951_6" function="internal">
- <lane id=":2081499951_6_0" index="0" speed="8.33" length="8.39" shape="1146.54,1021.32 1144.84,1023.28 1143.32,1023.81 1141.99,1022.91 1140.83,1020.59"/>
- </edge>
- <edge id=":2081499951_7" function="internal">
- <lane id=":2081499951_7_0" index="0" speed="18.06" length="3.23" shape="1140.34,1020.86 1140.07,1020.78 1139.67,1020.33 1139.14,1019.50 1138.48,1018.30"/>
- </edge>
- <edge id=":2081499951_8" function="internal">
- <lane id=":2081499951_8_0" index="0" speed="8.33" length="0.56" shape="1140.34,1020.86 1140.83,1020.59"/>
- </edge>
- <edge id=":2081499951_9" function="internal">
- <lane id=":2081499951_9_0" index="0" speed="8.33" length="4.82" shape="1140.34,1020.86 1141.82,1021.01 1142.57,1021.54 1142.59,1022.46 1141.89,1023.77"/>
- </edge>
- <edge id=":2081499952_0" function="internal">
- <lane id=":2081499952_0_0" index="0" speed="22.22" length="9.50" shape="1130.90,1033.28 1126.32,1024.95"/>
- </edge>
- <edge id=":2081499952_1" function="internal">
- <lane id=":2081499952_1_0" index="0" speed="15.28" length="7.85" shape="1130.90,1033.28 1129.72,1030.73 1129.27,1028.70 1129.54,1027.18 1130.53,1026.17"/>
- </edge>
- <edge id=":2081499952_2" function="internal">
- <lane id=":2081499952_2_0" index="0" speed="15.28" length="7.85" shape="1132.12,1029.07 1130.74,1029.37 1129.31,1028.78 1127.84,1027.31 1126.32,1024.95"/>
- </edge>
- <edge id=":2081499952_3" function="internal">
- <lane id=":2081499952_3_0" index="0" speed="8.33" length="4.82" shape="1132.12,1029.07 1130.64,1028.94 1129.88,1028.41 1129.85,1027.49 1130.53,1026.17"/>
- </edge>
- <edge id=":2265767389_0" function="internal">
- <lane id=":2265767389_0_0" index="0" speed="22.22" length="3.84" shape="1432.00,899.34 1430.23,895.93"/>
- </edge>
- <edge id=":2265767389_1" function="internal">
- <lane id=":2265767389_1_0" index="0" speed="25.00" length="6.76" shape="1432.00,899.34 1432.55,899.52 1433.76,899.18 1435.64,898.34 1438.17,896.99"/>
- </edge>
- <edge id=":2265767389_2" function="internal">
- <lane id=":2265767389_2_0" index="0" speed="22.22" length="4.82" shape="1432.00,899.34 1432.16,897.86 1432.70,897.12 1433.62,897.10 1434.93,897.82"/>
- </edge>
- <edge id=":2265767389_3" function="internal">
- <lane id=":2265767389_3_0" index="0" speed="25.00" length="3.75" shape="1433.15,894.41 1433.61,894.86 1434.33,894.96 1435.31,894.71 1436.55,894.11"/>
- </edge>
- <edge id=":2265767389_4" function="internal">
- <lane id=":2265767389_4_0" index="0" speed="22.22" length="3.84" shape="1433.15,894.41 1434.93,897.82"/>
- </edge>
- <edge id=":2265767389_5" function="internal">
- <lane id=":2265767389_5_0" index="0" speed="22.22" length="4.82" shape="1433.15,894.41 1432.99,895.89 1432.45,896.64 1431.53,896.65 1430.23,895.93"/>
- </edge>
- <edge id=":2265767389_6" function="internal">
- <lane id=":2265767389_6_0" index="0" speed="25.00" length="3.98" shape="1428.08,898.87 1429.28,898.09 1430.04,897.34 1430.35,896.62 1430.23,895.93"/>
- </edge>
- <edge id=":2265767389_7" function="internal">
- <lane id=":2265767389_7_0" index="0" speed="27.78" length="9.71" shape="1428.08,898.87 1436.55,894.11"/>
- </edge>
- <edge id=":2265767389_8" function="internal">
- <lane id=":2265767389_8_0" index="0" speed="27.78" length="9.72" shape="1429.70,901.75 1438.17,896.99"/>
- </edge>
- <edge id=":2265767389_9" function="internal">
- <lane id=":2265767389_9_0" index="0" speed="25.00" length="6.66" shape="1429.70,901.75 1432.13,900.32 1433.82,899.18 1434.75,898.35 1434.93,897.82"/>
- </edge>
- <edge id=":2265767392_0" function="internal">
- <lane id=":2265767392_0_0" index="0" speed="25.00" length="5.05" shape="1442.27,918.00 1441.43,916.91 1440.43,916.34 1439.29,916.31 1438.00,916.82"/>
- </edge>
- <edge id=":2265767392_1" function="internal">
- <lane id=":2265767392_1_0" index="0" speed="22.22" length="5.01" shape="1442.27,918.00 1439.79,913.65"/>
- </edge>
- <edge id=":2265767392_2" function="internal">
- <lane id=":2265767392_2_0" index="0" speed="22.22" length="4.82" shape="1442.27,918.00 1442.38,916.51 1442.89,915.75 1443.81,915.70 1445.14,916.36"/>
- </edge>
- <edge id=":2265767392_3" function="internal">
- <lane id=":2265767392_3_0" index="0" speed="25.00" length="5.01" shape="1446.31,912.14 1445.22,912.97 1444.66,913.95 1444.63,915.08 1445.14,916.36"/>
- </edge>
- <edge id=":2265767392_4" function="internal">
- <lane id=":2265767392_4_0" index="0" speed="27.78" length="9.54" shape="1446.31,912.14 1438.00,916.82"/>
- </edge>
- <edge id=":2265767392_5" function="internal">
- <lane id=":2265767392_5_0" index="0" speed="27.78" length="9.54" shape="1444.69,909.26 1436.38,913.94"/>
- </edge>
- <edge id=":2265767392_6" function="internal">
- <lane id=":2265767392_6_0" index="0" speed="25.00" length="6.86" shape="1444.69,909.26 1442.28,910.72 1440.66,911.93 1439.83,912.91 1439.79,913.65"/>
- </edge>
- <edge id=":2265767392_7" function="internal">
- <lane id=":2265767392_7_0" index="0" speed="22.22" length="5.00" shape="1442.66,912.01 1445.14,916.36"/>
- </edge>
- <edge id=":2265767392_8" function="internal">
- <lane id=":2265767392_8_0" index="0" speed="25.00" length="6.84" shape="1442.66,912.01 1442.01,911.68 1440.74,911.89 1438.87,912.64 1436.38,913.94"/>
- </edge>
- <edge id=":2265767392_9" function="internal">
- <lane id=":2265767392_9_0" index="0" speed="22.22" length="4.82" shape="1442.66,912.01 1442.56,913.50 1442.04,914.27 1441.12,914.32 1439.79,913.65"/>
- </edge>
- <edge id=":2265767394_0" function="internal">
- <lane id=":2265767394_0_0" index="0" speed="22.22" length="3.43" shape="1340.62,950.31 1339.56,947.04"/>
- </edge>
- <edge id=":2265767394_1" function="internal">
- <lane id=":2265767394_1_0" index="0" speed="25.00" length="7.62" shape="1340.62,950.31 1341.21,950.64 1342.56,950.35 1344.68,949.44 1347.56,947.92"/>
- </edge>
- <edge id=":2265767394_2" function="internal">
- <lane id=":2265767394_2_0" index="0" speed="22.22" length="4.82" shape="1340.62,950.31 1341.02,948.87 1341.68,948.23 1342.59,948.36 1343.76,949.28"/>
- </edge>
- <edge id=":2265767394_3" function="internal">
- <lane id=":2265767394_3_0" index="0" speed="25.00" length="3.56" shape="1342.70,946.02 1342.99,946.23 1343.62,946.13 1344.61,945.74 1345.94,945.04"/>
- </edge>
- <edge id=":2265767394_4" function="internal">
- <lane id=":2265767394_4_0" index="0" speed="22.22" length="3.43" shape="1342.70,946.02 1343.76,949.28"/>
- </edge>
- <edge id=":2265767394_5" function="internal">
- <lane id=":2265767394_5_0" index="0" speed="22.22" length="4.82" shape="1342.70,946.02 1342.30,947.45 1341.64,948.10 1340.73,947.96 1339.56,947.04"/>
- </edge>
- <edge id=":2265767394_6" function="internal">
- <lane id=":2265767394_6_0" index="0" speed="25.00" length="4.86" shape="1336.41,950.40 1337.95,949.43 1338.99,948.55 1339.53,947.75 1339.56,947.04"/>
- </edge>
- <edge id=":2265767394_7" function="internal">
- <lane id=":2265767394_7_0" index="0" speed="27.78" length="10.93" shape="1336.41,950.40 1339.24,948.81 1341.18,947.72 1343.11,946.63 1345.94,945.04"/>
- </edge>
- <edge id=":2265767394_8" function="internal">
- <lane id=":2265767394_8_0" index="0" speed="27.78" length="10.93" shape="1338.03,953.28 1340.86,951.68 1342.79,950.60 1344.73,949.51 1347.56,947.92"/>
- </edge>
- <edge id=":2265767394_9" function="internal">
- <lane id=":2265767394_9_0" index="0" speed="25.00" length="7.05" shape="1338.03,953.28 1340.61,951.77 1342.43,950.61 1343.48,949.78 1343.76,949.28"/>
- </edge>
- <edge id=":2265767395_0" function="internal">
- <lane id=":2265767395_0_0" index="0" speed="25.00" length="4.74" shape="1347.40,971.01 1346.84,969.97 1346.01,969.47 1344.91,969.51 1343.54,970.09"/>
- </edge>
- <edge id=":2265767395_1" function="internal">
- <lane id=":2265767395_1_0" index="0" speed="22.22" length="4.76" shape="1347.40,971.01 1345.91,966.49"/>
- </edge>
- <edge id=":2265767395_2" function="internal">
- <lane id=":2265767395_2_0" index="0" speed="22.22" length="4.82" shape="1347.40,971.01 1347.80,969.58 1348.45,968.93 1349.37,969.06 1350.54,969.98"/>
- </edge>
- <edge id=":2265767395_3" function="internal">
- <lane id=":2265767395_3_0" index="0" speed="25.00" length="6.39" shape="1353.05,964.72 1351.55,965.81 1350.63,967.05 1350.29,968.44 1350.54,969.98"/>
- </edge>
- <edge id=":2265767395_4" function="internal">
- <lane id=":2265767395_4_0" index="0" speed="27.78" length="10.92" shape="1353.05,964.72 1350.22,966.32 1348.29,967.41 1346.36,968.50 1343.54,970.09"/>
- </edge>
- <edge id=":2265767395_5" function="internal">
- <lane id=":2265767395_5_0" index="0" speed="27.78" length="10.92" shape="1351.42,961.85 1348.60,963.44 1346.67,964.53 1344.74,965.62 1341.92,967.22"/>
- </edge>
- <edge id=":2265767395_6" function="internal">
- <lane id=":2265767395_6_0" index="0" speed="25.00" length="7.41" shape="1351.42,961.85 1348.85,963.39 1347.08,964.68 1346.10,965.71 1345.91,966.49"/>
- </edge>
- <edge id=":2265767395_7" function="internal">
- <lane id=":2265767395_7_0" index="0" speed="22.22" length="4.77" shape="1349.05,965.45 1350.54,969.98"/>
- </edge>
- <edge id=":2265767395_8" function="internal">
- <lane id=":2265767395_8_0" index="0" speed="25.00" length="7.87" shape="1349.05,965.45 1348.37,964.85 1346.95,964.94 1344.80,965.73 1341.92,967.22"/>
- </edge>
- <edge id=":2265767395_9" function="internal">
- <lane id=":2265767395_9_0" index="0" speed="22.22" length="4.82" shape="1349.05,965.45 1348.65,966.89 1348.00,967.54 1347.08,967.40 1345.91,966.49"/>
- </edge>
- <edge id=":243489891_0" function="internal">
- <lane id=":243489891_0_0" index="0" speed="25.00" length="5.40" shape="745.92,2299.76 745.47,2298.28 744.68,2297.45 743.54,2297.27 742.07,2297.74"/>
- </edge>
- <edge id=":243489891_1" function="internal">
- <lane id=":243489891_1_0" index="0" speed="22.22" length="9.43" shape="745.92,2299.76 744.48,2290.44"/>
- </edge>
- <edge id=":243489891_2" function="internal">
- <lane id=":243489891_2_0" index="0" speed="22.22" length="4.82" shape="745.92,2299.76 746.55,2298.42 747.30,2297.88 748.18,2298.16 749.18,2299.26"/>
- </edge>
- <edge id=":243489891_3" function="internal">
- <lane id=":243489891_3_0" index="0" speed="22.22" length="9.93" shape="751.30,2290.61 749.86,2291.07 749.03,2292.66 748.80,2295.39 749.18,2299.26"/>
- </edge>
- <edge id=":243489891_4" function="internal">
- <lane id=":243489891_4_0" index="0" speed="25.00" length="11.67" shape="751.30,2290.61 748.25,2290.78 746.03,2291.64 743.77,2293.02 740.63,2294.77"/>
- </edge>
- <edge id=":243489891_5" function="internal">
- <lane id=":243489891_5_0" index="0" speed="22.22" length="6.83" shape="751.30,2290.61 748.31,2290.44 746.17,2290.35 744.90,2290.35 744.48,2290.44"/>
- </edge>
- <edge id=":243489891_6" function="internal">
- <lane id=":243489891_6_0" index="0" speed="22.22" length="16.51" shape="757.66,2287.09 753.41,2288.88 750.58,2291.51 749.17,2294.97 749.18,2299.26"/>
- </edge>
- <edge id=":243489891_7" function="internal">
- <lane id=":243489891_7_0" index="0" speed="25.00" length="19.14" shape="757.66,2287.09 753.95,2287.80 749.84,2288.39 745.02,2289.50 739.20,2291.79"/>
- </edge>
- <edge id=":243489891_8" function="internal">
- <lane id=":243489891_8_0" index="0" speed="22.22" length="13.61" shape="757.66,2287.09 751.91,2288.66 747.79,2289.75 745.32,2290.34 744.48,2290.44"/>
- </edge>
- <edge id=":243489891_9" function="internal">
- <lane id=":243489891_9_0" index="0" speed="25.00" length="16.16" shape="757.36,2285.74 753.53,2290.03 750.89,2293.72 749.44,2296.79 749.18,2299.26"/>
- </edge>
- <edge id=":243489891_10" function="internal">
- <lane id=":243489891_10_0" index="0" speed="27.78" length="19.63" shape="757.36,2285.74 753.36,2289.98 750.47,2292.78 747.20,2295.07 742.07,2297.74"/>
- </edge>
- <edge id=":243489891_11" function="internal">
- <lane id=":243489891_11_0" index="0" speed="27.78" length="18.45" shape="754.98,2283.45 751.22,2287.44 748.52,2290.09 745.45,2292.25 740.63,2294.77"/>
- </edge>
- <edge id=":243489891_12" function="internal">
- <lane id=":243489891_12_0" index="0" speed="27.78" length="17.28" shape="752.60,2281.16 749.09,2284.90 746.56,2287.40 743.71,2289.43 739.20,2291.79"/>
- </edge>
- <edge id=":243489891_13" function="internal">
- <lane id=":243489891_13_0" index="0" speed="27.78" length="16.10" shape="750.22,2278.88 746.95,2282.37 744.61,2284.71 741.96,2286.61 737.76,2288.82"/>
- </edge>
- <edge id=":243489891_14" function="internal">
- <lane id=":243489891_14_0" index="0" speed="25.00" length="13.27" shape="750.22,2278.88 747.52,2282.04 745.67,2285.01 744.65,2287.82 744.48,2290.44"/>
- </edge>
- <edge id=":243489891_15" function="internal">
- <lane id=":243489891_15_0" index="0" speed="22.22" length="11.21" shape="747.58,2288.17 747.93,2291.31 748.28,2293.73 748.68,2296.14 749.18,2299.26"/>
- </edge>
- <edge id=":243489891_16" function="internal">
- <lane id=":243489891_16_0" index="0" speed="25.00" length="11.13" shape="747.58,2288.17 746.82,2286.75 744.93,2286.38 741.91,2287.07 737.76,2288.82"/>
- </edge>
- <edge id=":243489891_17" function="internal">
- <lane id=":243489891_17_0" index="0" speed="22.22" length="5.60" shape="747.58,2288.17 747.66,2289.90 747.17,2290.85 746.11,2291.03 744.48,2290.44"/>
- </edge>
- <edge id=":248913124_0" function="internal">
- <lane id=":248913124_0_0" index="0" speed="25.00" length="3.37" shape="1420.44,1928.03 1419.21,1928.62 1418.29,1928.94 1417.66,1928.99 1417.32,1928.78"/>
- </edge>
- <edge id=":248913124_1" function="internal">
- <lane id=":248913124_1_0" index="0" speed="27.78" length="6.21" shape="1420.44,1928.03 1414.94,1930.92"/>
- </edge>
- <edge id=":248913124_2" function="internal">
- <lane id=":248913124_2_0" index="0" speed="27.78" length="2.41" shape="1420.44,1928.03 1418.96,1927.88 1418.21,1927.34"/>
- </edge>
- <edge id=":248913124_9" function="internal">
- <lane id=":248913124_9_0" index="0" speed="27.78" length="2.41" shape="1418.21,1927.34 1418.20,1926.41 1418.91,1925.11"/>
- </edge>
- <edge id=":248913124_3" function="internal">
- <lane id=":248913124_3_0" index="0" speed="25.00" length="3.10" shape="1416.15,1926.52 1416.32,1926.44 1416.84,1926.18 1417.70,1925.74 1418.91,1925.11"/>
- </edge>
- <edge id=":248913124_4" function="internal">
- <lane id=":248913124_4_0" index="0" speed="22.22" length="2.54" shape="1416.15,1926.52 1417.32,1928.78"/>
- </edge>
- <edge id=":248913124_5" function="internal">
- <lane id=":248913124_5_0" index="0" speed="25.00" length="5.20" shape="1416.15,1926.52 1416.65,1927.90 1416.62,1929.10 1416.05,1930.10 1414.94,1930.92"/>
- </edge>
- <edge id=":248913124_6" function="internal">
- <lane id=":248913124_6_0" index="0" speed="27.78" length="6.22" shape="1413.40,1928.00 1418.91,1925.11"/>
- </edge>
- <edge id=":248913124_7" function="internal">
- <lane id=":248913124_7_0" index="0" speed="25.00" length="4.55" shape="1413.40,1928.00 1414.68,1927.51 1415.76,1927.47 1416.64,1927.89 1417.32,1928.78"/>
- </edge>
- <edge id=":248913124_8" function="internal">
- <lane id=":248913124_8_0" index="0" speed="27.78" length="2.41" shape="1413.40,1928.00 1414.88,1928.15 1415.63,1928.69"/>
- </edge>
- <edge id=":248913124_10" function="internal">
- <lane id=":248913124_10_0" index="0" speed="27.78" length="2.41" shape="1415.63,1928.69 1415.65,1929.61 1414.94,1930.92"/>
- </edge>
- <edge id=":248913130_0" function="internal">
- <lane id=":248913130_0_0" index="0" speed="18.06" length="5.01" shape="1266.71,1808.95 1265.59,1809.74 1264.99,1810.70 1264.93,1811.83 1265.38,1813.13"/>
- </edge>
- <edge id=":248913130_1" function="internal">
- <lane id=":248913130_1_0" index="0" speed="13.89" length="4.82" shape="1266.71,1808.95 1265.23,1808.78 1264.48,1808.24 1264.47,1807.31 1265.19,1806.01"/>
- </edge>
- <edge id=":248913130_2" function="internal">
- <lane id=":248913130_2_0" index="0" speed="18.06" length="5.04" shape="1260.94,1804.75 1261.75,1805.84 1262.73,1806.42 1263.88,1806.48 1265.19,1806.01"/>
- </edge>
- <edge id=":248913130_3" function="internal">
- <lane id=":248913130_3_0" index="0" speed="22.22" length="9.48" shape="1260.94,1804.75 1265.38,1813.13"/>
- </edge>
- <edge id=":248913131_0" function="internal">
- <lane id=":248913131_0_0" index="0" speed="13.89" length="5.06" shape="1338.97,1770.79 1337.85,1771.61 1337.25,1772.59 1337.17,1773.73 1337.63,1775.03"/>
- </edge>
- <edge id=":248913131_1" function="internal">
- <lane id=":248913131_1_0" index="0" speed="13.89" length="6.26" shape="1338.97,1770.79 1333.44,1773.73"/>
- </edge>
- <edge id=":248913131_2" function="internal">
- <lane id=":248913131_2_0" index="0" speed="13.89" length="2.41" shape="1338.97,1770.79 1337.49,1770.64 1336.74,1770.11"/>
- </edge>
- <edge id=":248913131_9" function="internal">
- <lane id=":248913131_9_0" index="0" speed="13.89" length="2.41" shape="1336.74,1770.11 1336.72,1769.18 1337.43,1767.88"/>
- </edge>
- <edge id=":248913131_3" function="internal">
- <lane id=":248913131_3_0" index="0" speed="13.89" length="5.01" shape="1333.24,1766.57 1334.04,1767.69 1335.00,1768.28 1336.13,1768.34 1337.43,1767.88"/>
- </edge>
- <edge id=":248913131_4" function="internal">
- <lane id=":248913131_4_0" index="0" speed="13.89" length="9.53" shape="1333.24,1766.57 1337.63,1775.03"/>
- </edge>
- <edge id=":248913131_5" function="internal">
- <lane id=":248913131_5_0" index="0" speed="13.89" length="7.89" shape="1333.24,1766.57 1334.36,1769.15 1334.77,1771.21 1334.46,1772.73 1333.44,1773.73"/>
- </edge>
- <edge id=":248913131_6" function="internal">
- <lane id=":248913131_6_0" index="0" speed="13.89" length="6.26" shape="1331.89,1770.81 1337.43,1767.88"/>
- </edge>
- <edge id=":248913131_7" function="internal">
- <lane id=":248913131_7_0" index="0" speed="13.89" length="4.74" shape="1331.89,1770.81 1333.30,1770.52 1334.72,1771.13 1335.94,1772.40"/>
- </edge>
- <edge id=":248913131_10" function="internal">
- <lane id=":248913131_10_0" index="0" speed="13.89" length="3.13" shape="1335.94,1772.40 1336.16,1772.63 1337.63,1775.03"/>
- </edge>
- <edge id=":248913131_8" function="internal">
- <lane id=":248913131_8_0" index="0" speed="13.89" length="2.41" shape="1331.89,1770.81 1333.37,1770.96 1334.13,1771.50"/>
- </edge>
- <edge id=":248913131_11" function="internal">
- <lane id=":248913131_11_0" index="0" speed="13.89" length="2.41" shape="1334.13,1771.50 1334.15,1772.42 1333.44,1773.73"/>
- </edge>
- <edge id=":248913133_0" function="internal">
- <lane id=":248913133_0_0" index="0" speed="13.89" length="5.01" shape="1409.96,1736.65 1409.16,1735.53 1408.19,1734.94 1407.06,1734.88 1405.77,1735.34"/>
- </edge>
- <edge id=":248913133_1" function="internal">
- <lane id=":248913133_1_0" index="0" speed="13.89" length="9.52" shape="1409.96,1736.65 1405.58,1728.19"/>
- </edge>
- <edge id=":248913133_2" function="internal">
- <lane id=":248913133_2_0" index="0" speed="13.89" length="7.87" shape="1409.96,1736.65 1408.84,1734.07 1408.43,1732.02 1408.74,1730.50 1409.76,1729.51"/>
- </edge>
- <edge id=":248913133_3" function="internal">
- <lane id=":248913133_3_0" index="0" speed="13.89" length="6.24" shape="1411.29,1732.44 1405.77,1735.34"/>
- </edge>
- <edge id=":248913133_4" function="internal">
- <lane id=":248913133_4_0" index="0" speed="13.89" length="4.72" shape="1411.29,1732.44 1409.90,1732.71 1408.48,1732.10 1407.27,1730.83"/>
- </edge>
- <edge id=":248913133_9" function="internal">
- <lane id=":248913133_9_0" index="0" speed="13.89" length="3.13" shape="1407.27,1730.83 1407.04,1730.59 1405.58,1728.19"/>
- </edge>
- <edge id=":248913133_5" function="internal">
- <lane id=":248913133_5_0" index="0" speed="13.89" length="2.41" shape="1411.29,1732.44 1409.81,1732.28 1409.06,1731.74"/>
- </edge>
- <edge id=":248913133_10" function="internal">
- <lane id=":248913133_10_0" index="0" speed="13.89" length="2.41" shape="1409.06,1731.74 1409.05,1730.82 1409.76,1729.51"/>
- </edge>
- <edge id=":248913133_6" function="internal">
- <lane id=":248913133_6_0" index="0" speed="13.89" length="5.06" shape="1404.22,1732.43 1405.35,1731.61 1405.96,1730.63 1406.03,1729.49 1405.58,1728.19"/>
- </edge>
- <edge id=":248913133_7" function="internal">
- <lane id=":248913133_7_0" index="0" speed="13.89" length="6.26" shape="1404.22,1732.43 1409.76,1729.51"/>
- </edge>
- <edge id=":248913133_8" function="internal">
- <lane id=":248913133_8_0" index="0" speed="13.89" length="2.41" shape="1404.22,1732.43 1405.70,1732.58 1406.45,1733.11"/>
- </edge>
- <edge id=":248913133_11" function="internal">
- <lane id=":248913133_11_0" index="0" speed="13.89" length="2.41" shape="1406.45,1733.11 1406.48,1734.03 1405.77,1735.34"/>
- </edge>
- <edge id=":248913142_0" function="internal">
- <lane id=":248913142_0_0" index="0" speed="13.89" length="5.02" shape="1446.76,1807.79 1445.96,1806.67 1444.99,1806.07 1443.86,1806.01 1442.57,1806.49"/>
- </edge>
- <edge id=":248913142_1" function="internal">
- <lane id=":248913142_1_0" index="0" speed="13.89" length="9.54" shape="1446.76,1807.79 1442.37,1799.31"/>
- </edge>
- <edge id=":248913142_2" function="internal">
- <lane id=":248913142_2_0" index="0" speed="13.89" length="7.91" shape="1446.76,1807.79 1445.64,1805.20 1445.23,1803.14 1445.54,1801.61 1446.56,1800.61"/>
- </edge>
- <edge id=":248913142_3" function="internal">
- <lane id=":248913142_3_0" index="0" speed="13.89" length="6.29" shape="1448.12,1803.52 1442.57,1806.49"/>
- </edge>
- <edge id=":248913142_4" function="internal">
- <lane id=":248913142_4_0" index="0" speed="13.89" length="4.75" shape="1448.12,1803.52 1446.71,1803.82 1445.28,1803.21 1444.06,1801.94"/>
- </edge>
- <edge id=":248913142_9" function="internal">
- <lane id=":248913142_9_0" index="0" speed="13.89" length="3.14" shape="1444.06,1801.94 1443.84,1801.71 1442.37,1799.31"/>
- </edge>
- <edge id=":248913142_5" function="internal">
- <lane id=":248913142_5_0" index="0" speed="13.89" length="2.41" shape="1448.12,1803.52 1446.63,1803.38 1445.88,1802.84"/>
- </edge>
- <edge id=":248913142_10" function="internal">
- <lane id=":248913142_10_0" index="0" speed="13.89" length="2.41" shape="1445.88,1802.84 1445.86,1801.92 1446.56,1800.61"/>
- </edge>
- <edge id=":248913142_6" function="internal">
- <lane id=":248913142_6_0" index="0" speed="13.89" length="5.09" shape="1441.01,1803.58 1442.14,1802.75 1442.75,1801.76 1442.82,1800.61 1442.37,1799.31"/>
- </edge>
- <edge id=":248913142_7" function="internal">
- <lane id=":248913142_7_0" index="0" speed="13.89" length="6.29" shape="1441.01,1803.58 1446.56,1800.61"/>
- </edge>
- <edge id=":248913142_8" function="internal">
- <lane id=":248913142_8_0" index="0" speed="13.89" length="2.41" shape="1441.01,1803.58 1442.49,1803.72 1443.25,1804.25"/>
- </edge>
- <edge id=":248913142_11" function="internal">
- <lane id=":248913142_11_0" index="0" speed="13.89" length="2.41" shape="1443.25,1804.25 1443.27,1805.17 1442.57,1806.49"/>
- </edge>
- <edge id=":248913144_0" function="internal">
- <lane id=":248913144_0_0" index="0" speed="13.89" length="5.09" shape="1375.96,1842.10 1374.83,1842.93 1374.22,1843.92 1374.15,1845.06 1374.60,1846.37"/>
- </edge>
- <edge id=":248913144_1" function="internal">
- <lane id=":248913144_1_0" index="0" speed="13.89" length="6.29" shape="1375.96,1842.10 1370.42,1845.07"/>
- </edge>
- <edge id=":248913144_2" function="internal">
- <lane id=":248913144_2_0" index="0" speed="13.89" length="2.41" shape="1375.96,1842.10 1374.48,1841.96 1373.73,1841.43"/>
- </edge>
- <edge id=":248913144_9" function="internal">
- <lane id=":248913144_9_0" index="0" speed="13.89" length="2.41" shape="1373.73,1841.43 1373.70,1840.50 1374.40,1839.19"/>
- </edge>
- <edge id=":248913144_3" function="internal">
- <lane id=":248913144_3_0" index="0" speed="13.89" length="5.01" shape="1370.21,1837.89 1371.01,1839.01 1371.98,1839.60 1373.11,1839.66 1374.40,1839.19"/>
- </edge>
- <edge id=":248913144_4" function="internal">
- <lane id=":248913144_4_0" index="0" speed="13.89" length="9.54" shape="1370.21,1837.89 1374.60,1846.37"/>
- </edge>
- <edge id=":248913144_5" function="internal">
- <lane id=":248913144_5_0" index="0" speed="13.89" length="7.90" shape="1370.21,1837.89 1371.33,1840.48 1371.74,1842.54 1371.44,1844.07 1370.42,1845.07"/>
- </edge>
- <edge id=":248913144_6" function="internal">
- <lane id=":248913144_6_0" index="0" speed="13.89" length="6.29" shape="1368.86,1842.16 1374.40,1839.19"/>
- </edge>
- <edge id=":248913144_7" function="internal">
- <lane id=":248913144_7_0" index="0" speed="13.89" length="4.75" shape="1368.86,1842.16 1370.27,1841.86 1371.69,1842.46 1372.91,1843.73"/>
- </edge>
- <edge id=":248913144_10" function="internal">
- <lane id=":248913144_10_0" index="0" speed="13.89" length="3.14" shape="1372.91,1843.73 1373.14,1843.97 1374.60,1846.37"/>
- </edge>
- <edge id=":248913144_8" function="internal">
- <lane id=":248913144_8_0" index="0" speed="13.89" length="2.41" shape="1368.86,1842.16 1370.34,1842.30 1371.09,1842.83"/>
- </edge>
- <edge id=":248913144_11" function="internal">
- <lane id=":248913144_11_0" index="0" speed="13.89" length="2.41" shape="1371.09,1842.83 1371.12,1843.76 1370.42,1845.07"/>
- </edge>
- <edge id=":248913145_0" function="internal">
- <lane id=":248913145_0_0" index="0" speed="18.06" length="5.05" shape="1304.18,1880.49 1303.05,1881.31 1302.44,1882.29 1302.35,1883.42 1302.79,1884.71"/>
- </edge>
- <edge id=":248913145_1" function="internal">
- <lane id=":248913145_1_0" index="0" speed="13.89" length="4.82" shape="1304.18,1880.49 1302.70,1880.34 1301.95,1879.81 1301.93,1878.89 1302.63,1877.58"/>
- </edge>
- <edge id=":248913145_2" function="internal">
- <lane id=":248913145_2_0" index="0" speed="18.06" length="5.01" shape="1298.44,1876.29 1299.24,1877.40 1300.21,1877.99 1301.34,1878.05 1302.63,1877.58"/>
- </edge>
- <edge id=":248913145_3" function="internal">
- <lane id=":248913145_3_0" index="0" speed="22.22" length="9.48" shape="1298.44,1876.29 1302.79,1884.71"/>
- </edge>
- <edge id=":248913154_0" function="internal">
- <lane id=":248913154_0_0" index="0" speed="27.78" length="4.82" shape="1815.47,1392.80 1816.95,1392.96 1817.70,1393.50 1817.71,1394.42 1817.00,1395.72"/>
- </edge>
- <edge id=":248913200_0" function="internal">
- <lane id=":248913200_0_0" index="0" speed="8.33" length="8.23" shape="1290.98,1235.15 1290.22,1233.01 1290.35,1231.18 1291.37,1229.65 1293.28,1228.42"/>
- </edge>
- <edge id=":248913200_1" function="internal">
- <lane id=":248913200_1_0" index="0" speed="8.33" length="2.41" shape="1290.98,1235.15 1291.13,1233.67 1291.67,1232.93"/>
- </edge>
- <edge id=":248913200_4" function="internal">
- <lane id=":248913200_4_0" index="0" speed="8.33" length="2.41" shape="1291.67,1232.93 1292.59,1232.91 1293.90,1233.62"/>
- </edge>
- <edge id=":248913200_2" function="internal">
- <lane id=":248913200_2_0" index="0" speed="8.33" length="2.69" shape="1294.65,1231.42 1294.03,1231.82 1293.69,1232.32 1293.65,1232.92 1293.90,1233.62"/>
- </edge>
- <edge id=":248913200_3" function="internal">
- <lane id=":248913200_3_0" index="0" speed="8.33" length="2.41" shape="1294.65,1231.42 1293.18,1231.18 1292.47,1230.60"/>
- </edge>
- <edge id=":248913200_5" function="internal">
- <lane id=":248913200_5_0" index="0" speed="8.33" length="2.41" shape="1292.47,1230.60 1292.50,1229.68 1293.28,1228.42"/>
- </edge>
- <edge id=":249404225_0" function="internal">
- <lane id=":249404225_0_0" index="0" speed="83.33" length="0.10" shape="1742.68,2818.37 1742.69,2818.37"/>
- </edge>
- <edge id=":249404225_1" function="internal">
- <lane id=":249404225_1_0" index="0" speed="83.33" length="0.10" shape="1742.68,2818.37 1742.67,2818.38"/>
- </edge>
- <edge id=":249404225_4" function="internal">
- <lane id=":249404225_4_0" index="0" speed="83.33" length="0.10" shape="1742.67,2818.38 1742.65,2818.38"/>
- </edge>
- <edge id=":249404225_2" function="internal">
- <lane id=":249404225_2_0" index="0" speed="83.33" length="0.10" shape="1742.65,2818.38 1742.65,2818.38"/>
- </edge>
- <edge id=":249404225_3" function="internal">
- <lane id=":249404225_3_0" index="0" speed="83.33" length="0.10" shape="1742.65,2818.38 1742.67,2818.38"/>
- </edge>
- <edge id=":249404225_5" function="internal">
- <lane id=":249404225_5_0" index="0" speed="83.33" length="0.10" shape="1742.67,2818.38 1742.69,2818.37"/>
- </edge>
- <edge id=":250683336_0" function="internal">
- <lane id=":250683336_0_0" index="0" speed="22.22" length="6.29" shape="1210.80,2377.38 1207.86,2371.82"/>
- </edge>
- <edge id=":250683336_1" function="internal">
- <lane id=":250683336_1_0" index="0" speed="22.22" length="4.77" shape="1210.80,2377.38 1210.50,2375.96 1211.10,2374.53 1212.38,2373.32"/>
- </edge>
- <edge id=":250683336_9" function="internal">
- <lane id=":250683336_9_0" index="0" speed="22.22" length="3.14" shape="1212.38,2373.32 1212.62,2373.10 1215.04,2371.65"/>
- </edge>
- <edge id=":250683336_2" function="internal">
- <lane id=":250683336_2_0" index="0" speed="22.22" length="2.41" shape="1210.80,2377.38 1210.94,2375.90 1211.48,2375.15"/>
- </edge>
- <edge id=":250683336_10" function="internal">
- <lane id=":250683336_10_0" index="0" speed="22.22" length="2.41" shape="1211.48,2375.15 1212.40,2375.13 1213.71,2375.83"/>
- </edge>
- <edge id=":250683336_3" function="internal">
- <lane id=":250683336_3_0" index="0" speed="22.22" length="5.07" shape="1210.79,2370.29 1211.60,2371.42 1212.58,2372.02 1213.72,2372.10 1215.04,2371.65"/>
- </edge>
- <edge id=":250683336_4" function="internal">
- <lane id=":250683336_4_0" index="0" speed="22.22" length="6.26" shape="1210.79,2370.29 1213.71,2375.83"/>
- </edge>
- <edge id=":250683336_5" function="internal">
- <lane id=":250683336_5_0" index="0" speed="22.22" length="2.41" shape="1210.79,2370.29 1210.63,2371.77 1210.09,2372.52"/>
- </edge>
- <edge id=":250683336_11" function="internal">
- <lane id=":250683336_11_0" index="0" speed="22.22" length="2.41" shape="1210.09,2372.52 1209.17,2372.53 1207.86,2371.82"/>
- </edge>
- <edge id=":250683336_6" function="internal">
- <lane id=":250683336_6_0" index="0" speed="22.22" length="5.00" shape="1206.55,2376.00 1207.66,2375.20 1208.25,2374.24 1208.32,2373.11 1207.86,2371.82"/>
- </edge>
- <edge id=":250683336_7" function="internal">
- <lane id=":250683336_7_0" index="0" speed="22.22" length="9.54" shape="1206.55,2376.00 1215.04,2371.65"/>
- </edge>
- <edge id=":250683336_8" function="internal">
- <lane id=":250683336_8_0" index="0" speed="22.22" length="7.91" shape="1206.55,2376.00 1209.12,2374.88 1211.18,2374.48 1212.71,2374.80 1213.71,2375.83"/>
- </edge>
- <edge id=":250683337_0" function="internal">
- <lane id=":250683337_0_0" index="0" speed="22.22" length="6.20" shape="1435.82,2260.95 1432.93,2255.47"/>
- </edge>
- <edge id=":250683337_1" function="internal">
- <lane id=":250683337_1_0" index="0" speed="22.22" length="5.00" shape="1431.63,2259.65 1432.74,2258.85 1433.33,2257.89 1433.39,2256.76 1432.93,2255.47"/>
- </edge>
- <edge id=":250683362_0" function="internal">
- <lane id=":250683362_0_0" index="0" speed="13.89" length="6.24" shape="1325.16,2318.33 1322.32,2312.78"/>
- </edge>
- <edge id=":250683362_1" function="internal">
- <lane id=":250683362_1_0" index="0" speed="18.06" length="5.02" shape="1325.16,2318.33 1324.70,2317.04 1324.77,2315.91 1325.36,2314.94 1326.49,2314.14"/>
- </edge>
- <edge id=":250683362_2" function="internal">
- <lane id=":250683362_2_0" index="0" speed="18.06" length="5.05" shape="1320.97,2317.02 1322.08,2316.22 1322.68,2315.24 1322.76,2314.10 1322.32,2312.78"/>
- </edge>
- <edge id=":250683362_3" function="internal">
- <lane id=":250683362_3_0" index="0" speed="22.22" length="6.23" shape="1320.97,2317.02 1326.49,2314.14"/>
- </edge>
- <edge id=":250683402_0" function="internal">
- <lane id=":250683402_0_0" index="0" speed="22.22" length="5.02" shape="1266.32,2342.31 1267.11,2343.44 1268.07,2344.04 1269.20,2344.11 1270.50,2343.64"/>
- </edge>
- <edge id=":250683402_1" function="internal">
- <lane id=":250683402_1_0" index="0" speed="22.22" length="6.23" shape="1264.96,2346.50 1270.50,2343.64"/>
- </edge>
- <edge id=":250684983_0" function="internal">
- <lane id=":250684983_0_0" index="0" speed="22.22" length="0.10" shape="1311.62,2568.91 1311.62,2568.91"/>
- </edge>
- <edge id=":250684983_1" function="internal">
- <lane id=":250684983_1_0" index="0" speed="22.22" length="2.41" shape="1311.62,2568.91 1311.78,2567.43 1312.32,2566.69"/>
- </edge>
- <edge id=":250684983_4" function="internal">
- <lane id=":250684983_4_0" index="0" speed="22.22" length="2.41" shape="1312.32,2566.69 1313.24,2566.67 1314.55,2567.39"/>
- </edge>
- <edge id=":250684983_2" function="internal">
- <lane id=":250684983_2_0" index="0" speed="22.22" length="0.10" shape="1314.55,2567.39 1314.55,2567.39"/>
- </edge>
- <edge id=":250684983_3" function="internal">
- <lane id=":250684983_3_0" index="0" speed="22.22" length="2.41" shape="1314.55,2567.39 1314.39,2568.87 1313.84,2569.61"/>
- </edge>
- <edge id=":250684983_5" function="internal">
- <lane id=":250684983_5_0" index="0" speed="22.22" length="2.41" shape="1313.84,2569.61 1312.92,2569.63 1311.62,2568.91"/>
- </edge>
- <edge id=":250685721_0" function="internal">
- <lane id=":250685721_0_0" index="0" speed="22.22" length="7.25" shape="774.24,2476.57 774.79,2478.89 775.63,2479.80 776.75,2479.29 778.17,2477.37"/>
- </edge>
- <edge id=":250685721_1" function="internal">
- <lane id=":250685721_1_0" index="0" speed="22.22" length="4.82" shape="774.24,2476.57 773.59,2477.90 772.83,2478.42 771.95,2478.12 770.97,2477.00"/>
- </edge>
- <edge id=":250685766_0" function="internal">
- <lane id=":250685766_0_0" index="0" speed="22.22" length="5.01" shape="1164.61,2288.89 1163.81,2287.78 1162.84,2287.19 1161.71,2287.13 1160.42,2287.58"/>
- </edge>
- <edge id=":250685766_1" function="internal">
- <lane id=":250685766_1_0" index="0" speed="22.22" length="6.21" shape="1164.61,2288.89 1161.72,2283.40"/>
- </edge>
- <edge id=":250685766_2" function="internal">
- <lane id=":250685766_2_0" index="0" speed="22.22" length="2.41" shape="1164.61,2288.89 1164.77,2287.42 1165.31,2286.67"/>
- </edge>
- <edge id=":250685766_9" function="internal">
- <lane id=":250685766_9_0" index="0" speed="22.22" length="2.41" shape="1165.31,2286.67 1166.23,2286.65 1167.53,2287.37"/>
- </edge>
- <edge id=":250685766_3" function="internal">
- <lane id=":250685766_3_0" index="0" speed="22.22" length="5.02" shape="1168.84,2283.16 1167.73,2283.97 1167.14,2284.94 1167.08,2286.07 1167.53,2287.37"/>
- </edge>
- <edge id=":250685766_4" function="internal">
- <lane id=":250685766_4_0" index="0" speed="22.22" length="9.51" shape="1168.84,2283.16 1160.42,2287.58"/>
- </edge>
- <edge id=":250685766_5" function="internal">
- <lane id=":250685766_5_0" index="0" speed="22.22" length="3.13" shape="1168.84,2283.16 1166.27,2284.30 1165.96,2284.36"/>
- </edge>
- <edge id=":250685766_10" function="internal">
- <lane id=":250685766_10_0" index="0" speed="22.22" length="4.73" shape="1165.96,2284.36 1164.23,2284.72 1162.72,2284.42 1161.72,2283.40"/>
- </edge>
- <edge id=":250685766_6" function="internal">
- <lane id=":250685766_6_0" index="0" speed="22.22" length="6.23" shape="1164.64,2281.86 1167.53,2287.37"/>
- </edge>
- <edge id=":250685766_7" function="internal">
- <lane id=":250685766_7_0" index="0" speed="22.22" length="4.74" shape="1164.64,2281.86 1164.93,2283.25 1164.32,2284.67 1163.04,2285.90"/>
- </edge>
- <edge id=":250685766_11" function="internal">
- <lane id=":250685766_11_0" index="0" speed="22.22" length="3.12" shape="1163.04,2285.90 1162.81,2286.12 1160.42,2287.58"/>
- </edge>
- <edge id=":250685766_8" function="internal">
- <lane id=":250685766_8_0" index="0" speed="22.22" length="2.41" shape="1164.64,2281.86 1164.49,2283.34 1163.95,2284.09"/>
- </edge>
- <edge id=":250685766_12" function="internal">
- <lane id=":250685766_12_0" index="0" speed="22.22" length="2.41" shape="1163.95,2284.09 1163.03,2284.11 1161.72,2283.40"/>
- </edge>
- <edge id=":250685816_0" function="internal">
- <lane id=":250685816_0_0" index="0" speed="18.06" length="6.34" shape="1280.72,2229.27 1279.63,2227.51 1278.46,2226.47 1277.19,2226.14 1275.85,2226.52"/>
- </edge>
- <edge id=":250685816_1" function="internal">
- <lane id=":250685816_1_0" index="0" speed="18.06" length="7.82" shape="1280.72,2229.27 1279.65,2226.69 1279.27,2224.64 1279.58,2223.13 1280.58,2222.14"/>
- </edge>
- <edge id=":250685816_2" function="internal">
- <lane id=":250685816_2_0" index="0" speed="22.22" length="6.45" shape="1282.13,2225.06 1275.85,2226.52"/>
- </edge>
- <edge id=":250685816_3" function="internal">
- <lane id=":250685816_3_0" index="0" speed="22.22" length="4.82" shape="1282.13,2225.06 1280.65,2224.91 1279.90,2224.38 1279.88,2223.45 1280.58,2222.14"/>
- </edge>
- <edge id=":250685816_4" function="internal">
- <lane id=":250685816_4_0" index="0" speed="18.06" length="5.00" shape="1276.39,2220.86 1277.20,2221.97 1278.17,2222.55 1279.29,2222.61 1280.58,2222.14"/>
- </edge>
- <edge id=":250685816_5" function="internal">
- <lane id=":250685816_5_0" index="0" speed="18.06" length="6.40" shape="1276.39,2220.86 1277.19,2222.79 1277.37,2224.37 1276.92,2225.61 1275.85,2226.52"/>
- </edge>
- <edge id=":250685829_0" function="internal">
- <lane id=":250685829_0_0" index="0" speed="22.22" length="4.10" shape="1388.60,2171.07 1388.00,2170.29 1387.20,2169.93 1386.22,2169.98 1385.05,2170.45"/>
- </edge>
- <edge id=":250685829_1" function="internal">
- <lane id=":250685829_1_0" index="0" speed="22.22" length="8.62" shape="1388.60,2171.07 1384.54,2163.46"/>
- </edge>
- <edge id=":250685829_2" function="internal">
- <lane id=":250685829_2_0" index="0" speed="22.22" length="10.66" shape="1388.60,2171.07 1387.91,2168.71 1388.38,2166.52 1390.02,2164.51 1392.84,2162.66"/>
- </edge>
- <edge id=":250685829_3" function="internal">
- <lane id=":250685829_3_0" index="0" speed="13.89" length="9.68" shape="1388.60,2171.07 1387.75,2168.71 1388.36,2167.69 1390.44,2168.00 1393.97,2169.63"/>
- </edge>
- <edge id=":250685829_4" function="internal">
- <lane id=":250685829_4_0" index="0" speed="13.89" length="7.83" shape="1392.41,2172.53 1389.85,2171.27 1387.77,2170.51 1386.17,2170.23 1385.05,2170.45"/>
- </edge>
- <edge id=":250685829_5" function="internal">
- <lane id=":250685829_5_0" index="0" speed="13.89" length="12.24" shape="1392.41,2172.53 1389.66,2170.73 1387.72,2168.76 1386.15,2166.40 1384.54,2163.46"/>
- </edge>
- <edge id=":250685829_6" function="internal">
- <lane id=":250685829_6_0" index="0" speed="13.89" length="14.04" shape="1392.41,2172.53 1389.01,2170.07 1387.95,2167.61 1389.23,2165.14 1392.84,2162.66"/>
- </edge>
- <edge id=":250685829_7" function="internal">
- <lane id=":250685829_7_0" index="0" speed="5.56" length="4.82" shape="1392.41,2172.53 1391.71,2171.22 1391.74,2170.30 1392.49,2169.77 1393.97,2169.63"/>
- </edge>
- <edge id=":250685829_8" function="internal">
- <lane id=":250685829_8_0" index="0" speed="13.89" length="5.75" shape="1394.36,2165.59 1392.83,2166.62 1392.25,2167.64 1392.63,2168.64 1393.97,2169.63"/>
- </edge>
- <edge id=":250685829_9" function="internal">
- <lane id=":250685829_9_0" index="0" speed="22.22" length="10.50" shape="1394.36,2165.59 1391.65,2166.99 1389.70,2168.00 1387.74,2169.03 1385.05,2170.45"/>
- </edge>
- <edge id=":250685829_10" function="internal">
- <lane id=":250685829_10_0" index="0" speed="22.22" length="8.15" shape="1394.36,2165.59 1391.21,2166.77 1388.52,2166.81 1386.64,2165.88"/>
- </edge>
- <edge id=":250685829_16" function="internal">
- <lane id=":250685829_16_0" index="0" speed="22.22" length="3.24" shape="1386.64,2165.88 1386.30,2165.71 1384.54,2163.46"/>
- </edge>
- <edge id=":250685829_11" function="internal">
- <lane id=":250685829_11_0" index="0" speed="22.22" length="2.41" shape="1394.36,2165.59 1392.88,2165.43 1392.13,2164.88"/>
- </edge>
- <edge id=":250685829_17" function="internal">
- <lane id=":250685829_17_0" index="0" speed="22.22" length="2.41" shape="1392.13,2164.88 1392.12,2163.96 1392.84,2162.66"/>
- </edge>
- <edge id=":250685829_12" function="internal">
- <lane id=":250685829_12_0" index="0" speed="22.22" length="4.80" shape="1383.50,2167.53 1384.51,2166.78 1385.02,2165.85 1385.03,2164.74 1384.54,2163.46"/>
- </edge>
- <edge id=":250685829_13" function="internal">
- <lane id=":250685829_13_0" index="0" speed="22.22" length="10.53" shape="1383.50,2167.53 1386.20,2166.11 1388.16,2165.08 1390.13,2164.06 1392.84,2162.66"/>
- </edge>
- <edge id=":250685829_14" function="internal">
- <lane id=":250685829_14_0" index="0" speed="13.89" length="6.66" shape="1383.50,2167.53 1385.40,2167.01 1387.78,2167.18 1389.98,2167.85"/>
- </edge>
- <edge id=":250685829_18" function="internal">
- <lane id=":250685829_18_0" index="0" speed="13.89" length="4.37" shape="1389.98,2167.85 1390.63,2168.05 1393.97,2169.63"/>
- </edge>
- <edge id=":250685829_15" function="internal">
- <lane id=":250685829_15_0" index="0" speed="22.22" length="2.41" shape="1383.50,2167.53 1384.98,2167.68 1385.73,2168.22"/>
- </edge>
- <edge id=":250685829_19" function="internal">
- <lane id=":250685829_19_0" index="0" speed="22.22" length="2.41" shape="1385.73,2168.22 1385.76,2169.14 1385.05,2170.45"/>
- </edge>
- <edge id=":250686694_0" function="internal">
- <lane id=":250686694_0_0" index="0" speed="22.22" length="5.03" shape="1225.09,2253.31 1223.99,2254.11 1223.41,2255.08 1223.34,2256.23 1223.78,2257.54"/>
- </edge>
- <edge id=":250686694_1" function="internal">
- <lane id=":250686694_1_0" index="0" speed="22.22" length="6.20" shape="1225.09,2253.31 1219.60,2256.21"/>
- </edge>
- <edge id=":250688445_0" function="internal">
- <lane id=":250688445_0_0" index="0" speed="22.22" length="2.56" shape="1157.65,1257.29 1158.07,1257.85 1158.56,1258.15 1159.14,1258.19 1159.80,1257.95"/>
- </edge>
- <edge id=":250688540_0" function="internal">
- <lane id=":250688540_0_0" index="0" speed="22.22" length="5.05" shape="1120.58,1187.63 1121.38,1188.77 1122.35,1189.35 1123.48,1189.39 1124.78,1188.89"/>
- </edge>
- <edge id=":250688540_1" function="internal">
- <lane id=":250688540_1_0" index="0" speed="22.22" length="6.22" shape="1120.58,1187.63 1123.47,1193.15"/>
- </edge>
- <edge id=":250689131_0" function="internal">
- <lane id=":250689131_0_0" index="0" speed="8.33" length="9.18" shape="1381.90,1270.34 1380.00,1261.36"/>
- </edge>
- <edge id=":250689131_1" function="internal">
- <lane id=":250689131_1_0" index="0" speed="8.33" length="10.31" shape="1381.90,1270.34 1381.98,1268.03 1382.89,1265.91 1384.63,1263.99 1387.20,1262.26"/>
- </edge>
- <edge id=":250689131_2" function="internal">
- <lane id=":250689131_2_0" index="0" speed="8.33" length="4.81" shape="1381.90,1270.34 1382.55,1269.01 1383.31,1268.49 1384.18,1268.79 1385.16,1269.90"/>
- </edge>
- <edge id=":250689131_3" function="internal">
- <lane id=":250689131_3_0" index="0" speed="8.33" length="6.32" shape="1388.78,1265.16 1387.06,1266.27 1385.89,1267.42 1385.26,1268.64 1385.16,1269.90"/>
- </edge>
- <edge id=":250689131_4" function="internal">
- <lane id=":250689131_4_0" index="0" speed="8.33" length="11.65" shape="1388.78,1265.16 1385.67,1266.31 1383.17,1266.07 1381.28,1264.42 1380.00,1261.36"/>
- </edge>
- <edge id=":250689131_5" function="internal">
- <lane id=":250689131_5_0" index="0" speed="8.33" length="4.82" shape="1388.78,1265.16 1387.29,1265.03 1386.54,1264.50 1386.51,1263.58 1387.20,1262.26"/>
- </edge>
- <edge id=":250689131_6" function="internal">
- <lane id=":250689131_6_0" index="0" speed="8.33" length="5.32" shape="1383.19,1260.53 1383.77,1261.92 1384.64,1262.68 1385.78,1262.79 1387.20,1262.26"/>
- </edge>
- <edge id=":250689131_7" function="internal">
- <lane id=":250689131_7_0" index="0" speed="8.33" length="9.58" shape="1383.19,1260.53 1385.16,1269.90"/>
- </edge>
- <edge id=":250689131_8" function="internal">
- <lane id=":250689131_8_0" index="0" speed="8.33" length="4.82" shape="1383.19,1260.53 1382.70,1261.93 1382.01,1262.54 1381.11,1262.35 1380.00,1261.36"/>
- </edge>
- <edge id=":250689186_0" function="internal">
- <lane id=":250689186_0_0" index="0" speed="8.33" length="8.04" shape="1351.73,1227.31 1344.40,1224.03"/>
- </edge>
- <edge id=":250689186_1" function="internal">
- <lane id=":250689186_1_0" index="0" speed="8.33" length="9.95" shape="1351.73,1227.31 1349.67,1225.57 1348.60,1223.56 1348.52,1221.29 1349.44,1218.74"/>
- </edge>
- <edge id=":250689186_2" function="internal">
- <lane id=":250689186_2_0" index="0" speed="8.33" length="4.81" shape="1351.73,1227.31 1351.13,1225.95 1351.22,1225.04 1352.00,1224.56 1353.49,1224.52"/>
- </edge>
- <edge id=":250689186_3" function="internal">
- <lane id=":250689186_3_0" index="0" speed="8.33" length="4.91" shape="1352.36,1220.29 1351.90,1221.54 1351.94,1222.67 1352.47,1223.66 1353.49,1224.52"/>
- </edge>
- <edge id=":250689186_4" function="internal">
- <lane id=":250689186_4_0" index="0" speed="8.33" length="9.61" shape="1352.36,1220.29 1350.83,1222.46 1349.00,1223.80 1346.85,1224.33 1344.40,1224.03"/>
- </edge>
- <edge id=":250689186_5" function="internal">
- <lane id=":250689186_5_0" index="0" speed="8.33" length="4.82" shape="1352.36,1220.29 1351.05,1221.00 1350.13,1220.98 1349.59,1220.22 1349.44,1218.74"/>
- </edge>
- <edge id=":250689186_6" function="internal">
- <lane id=":250689186_6_0" index="0" speed="8.33" length="5.11" shape="1345.26,1220.84 1346.53,1220.99 1347.65,1220.68 1348.62,1219.94 1349.44,1218.74"/>
- </edge>
- <edge id=":250689186_7" function="internal">
- <lane id=":250689186_7_0" index="0" speed="8.33" length="9.01" shape="1345.26,1220.84 1353.49,1224.52"/>
- </edge>
- <edge id=":250689186_8" function="internal">
- <lane id=":250689186_8_0" index="0" speed="8.33" length="4.82" shape="1345.26,1220.84 1346.24,1221.96 1346.42,1222.87 1345.81,1223.56 1344.40,1224.03"/>
- </edge>
- <edge id=":250689201_0" function="internal">
- <lane id=":250689201_0_0" index="0" speed="8.33" length="5.47" shape="1389.13,1291.47 1387.50,1291.60 1386.20,1292.04 1385.24,1292.80 1384.61,1293.87"/>
- </edge>
- <edge id=":250689201_1" function="internal">
- <lane id=":250689201_1_0" index="0" speed="8.33" length="10.33" shape="1389.13,1291.47 1386.33,1291.03 1384.35,1289.80 1383.18,1287.78 1382.83,1284.97"/>
- </edge>
- <edge id=":250689201_2" function="internal">
- <lane id=":250689201_2_0" index="0" speed="8.33" length="4.82" shape="1389.13,1291.47 1387.90,1290.62 1387.50,1289.79 1387.93,1288.97 1389.17,1288.17"/>
- </edge>
- <edge id=":250689201_3" function="internal">
- <lane id=":250689201_3_0" index="0" speed="8.33" length="5.00" shape="1386.12,1285.02 1386.29,1286.38 1386.86,1287.36 1387.82,1287.95 1389.17,1288.17"/>
- </edge>
- <edge id=":250689201_4" function="internal">
- <lane id=":250689201_4_0" index="0" speed="8.33" length="8.98" shape="1386.12,1285.02 1384.61,1293.87"/>
- </edge>
- <edge id=":250689201_5" function="internal">
- <lane id=":250689201_5_0" index="0" speed="8.33" length="4.81" shape="1386.12,1285.02 1385.28,1286.24 1384.45,1286.64 1383.63,1286.21 1382.83,1284.97"/>
- </edge>
- <edge id=":250689201_6" function="internal">
- <lane id=":250689201_6_0" index="0" speed="8.33" length="7.85" shape="1381.52,1292.71 1382.83,1284.97"/>
- </edge>
- <edge id=":250689201_7" function="internal">
- <lane id=":250689201_7_0" index="0" speed="8.33" length="9.54" shape="1381.52,1292.71 1382.65,1290.69 1384.31,1289.26 1386.48,1288.42 1389.17,1288.17"/>
- </edge>
- <edge id=":250689201_8" function="internal">
- <lane id=":250689201_8_0" index="0" speed="8.33" length="4.82" shape="1381.52,1292.71 1382.73,1291.84 1383.65,1291.75 1384.28,1292.42 1384.61,1293.87"/>
- </edge>
- <edge id=":250689290_0" function="internal">
- <lane id=":250689290_0_0" index="0" speed="22.22" length="4.96" shape="1164.06,1609.78 1162.98,1610.58 1162.40,1611.55 1162.32,1612.67 1162.75,1613.96"/>
- </edge>
- <edge id=":250689290_1" function="internal">
- <lane id=":250689290_1_0" index="0" speed="22.22" length="6.04" shape="1159.79,1608.70 1162.75,1613.96"/>
- </edge>
- <edge id=":252417165_0" function="internal">
- <lane id=":252417165_0_0" index="0" speed="22.22" length="6.17" shape="1224.95,1564.19 1230.47,1561.43"/>
- </edge>
- <edge id=":252417165_1" function="internal">
- <lane id=":252417165_1_0" index="0" speed="18.06" length="5.01" shape="1224.95,1564.19 1226.25,1563.77 1227.37,1563.87 1228.34,1564.48 1229.13,1565.60"/>
- </edge>
- <edge id=":252417189_0" function="internal">
- <lane id=":252417189_0_0" index="0" speed="20.83" length="5.00" shape="1360.62,1641.23 1359.82,1640.11 1358.86,1639.52 1357.73,1639.45 1356.44,1639.91"/>
- </edge>
- <edge id=":252417189_1" function="internal">
- <lane id=":252417189_1_0" index="0" speed="13.89" length="16.11" shape="1360.62,1641.23 1358.82,1637.74 1356.92,1634.07 1355.02,1630.40 1353.22,1626.91"/>
- </edge>
- <edge id=":252417189_2" function="internal">
- <lane id=":252417189_2_0" index="0" speed="20.83" length="10.91" shape="1360.62,1641.23 1358.84,1637.36 1357.97,1634.40 1357.99,1632.33 1358.92,1631.16"/>
- </edge>
- <edge id=":252417189_3" function="internal">
- <lane id=":252417189_3_0" index="0" speed="27.78" length="6.25" shape="1361.98,1637.01 1356.44,1639.91"/>
- </edge>
- <edge id=":252417189_4" function="internal">
- <lane id=":252417189_4_0" index="0" speed="27.78" length="6.25" shape="1360.45,1634.09 1354.91,1636.98"/>
- </edge>
- <edge id=":252417189_5" function="internal">
- <lane id=":252417189_5_0" index="0" speed="20.83" length="7.79" shape="1360.45,1634.09 1358.96,1634.18 1357.25,1633.02 1355.34,1630.60 1354.77,1629.61"/>
- </edge>
- <edge id=":252417189_11" function="internal">
- <lane id=":252417189_11_0" index="0" speed="20.83" length="3.11" shape="1354.77,1629.61 1353.22,1626.91"/>
- </edge>
- <edge id=":252417189_6" function="internal">
- <lane id=":252417189_6_0" index="0" speed="27.78" length="2.41" shape="1360.45,1634.09 1358.97,1633.93 1358.23,1633.39"/>
- </edge>
- <edge id=":252417189_12" function="internal">
- <lane id=":252417189_12_0" index="0" speed="27.78" length="2.41" shape="1358.23,1633.39 1358.21,1632.47 1358.92,1631.16"/>
- </edge>
- <edge id=":252417189_7" function="internal">
- <lane id=":252417189_7_0" index="0" speed="20.83" length="5.05" shape="1351.85,1631.13 1352.99,1630.32 1353.59,1629.35 1353.67,1628.21 1353.22,1626.91"/>
- </edge>
- <edge id=":252417189_8" function="internal">
- <lane id=":252417189_8_0" index="0" speed="27.78" length="6.25" shape="1351.85,1631.13 1357.40,1628.24"/>
- </edge>
- <edge id=":252417189_9" function="internal">
- <lane id=":252417189_9_0" index="0" speed="27.78" length="6.25" shape="1353.38,1634.06 1358.92,1631.16"/>
- </edge>
- <edge id=":252417189_10" function="internal">
- <lane id=":252417189_10_0" index="0" speed="27.78" length="2.41" shape="1353.38,1634.06 1354.86,1634.21 1355.61,1634.75"/>
- </edge>
- <edge id=":252417189_13" function="internal">
- <lane id=":252417189_13_0" index="0" speed="27.78" length="2.41" shape="1355.61,1634.75 1355.62,1635.68 1354.91,1636.98"/>
- </edge>
- <edge id=":252417190_0" function="internal">
- <lane id=":252417190_0_0" index="0" speed="18.06" length="5.00" shape="1302.16,1528.18 1301.71,1526.89 1301.76,1525.75 1302.33,1524.78 1303.41,1523.96"/>
- </edge>
- <edge id=":252417190_1" function="internal">
- <lane id=":252417190_1_0" index="0" speed="22.22" length="6.15" shape="1297.99,1526.85 1303.41,1523.96"/>
- </edge>
- <edge id=":252418151_0" function="internal">
- <lane id=":252418151_0_0" index="0" speed="22.22" length="6.20" shape="1458.51,2047.24 1455.67,2041.73"/>
- </edge>
- <edge id=":252418151_1" function="internal">
- <lane id=":252418151_1_0" index="0" speed="22.22" length="5.03" shape="1459.86,2043.01 1458.57,2043.50 1457.44,2043.45 1456.47,2042.86 1455.67,2041.73"/>
- </edge>
- <edge id=":252418152_0" function="internal">
- <lane id=":252418152_0_0" index="0" speed="22.22" length="5.00" shape="1410.09,1953.14 1409.30,1952.03 1408.34,1951.43 1407.21,1951.36 1405.91,1951.81"/>
- </edge>
- <edge id=":252418152_1" function="internal">
- <lane id=":252418152_1_0" index="0" speed="22.22" length="6.21" shape="1411.43,1948.97 1405.91,1951.81"/>
- </edge>
- <edge id=":252418937_0" function="internal">
- <lane id=":252418937_0_0" index="0" speed="22.22" length="5.03" shape="1082.70,2126.55 1081.91,2125.42 1080.95,2124.82 1079.83,2124.75 1078.53,2125.22"/>
- </edge>
- <edge id=":252418937_1" function="internal">
- <lane id=":252418937_1_0" index="0" speed="22.22" length="6.50" shape="1082.70,2126.55 1079.87,2120.70"/>
- </edge>
- <edge id=":252418937_2" function="internal">
- <lane id=":252418937_2_0" index="0" speed="22.22" length="2.41" shape="1082.70,2126.55 1082.88,2125.07 1083.44,2124.33"/>
- </edge>
- <edge id=":252418937_9" function="internal">
- <lane id=":252418937_9_0" index="0" speed="22.22" length="2.41" shape="1083.44,2124.33 1084.36,2124.33 1085.65,2125.07"/>
- </edge>
- <edge id=":252418937_3" function="internal">
- <lane id=":252418937_3_0" index="0" speed="22.22" length="5.20" shape="1087.03,2120.70 1085.88,2121.53 1085.27,2122.54 1085.20,2123.72 1085.65,2125.07"/>
- </edge>
- <edge id=":252418937_4" function="internal">
- <lane id=":252418937_4_0" index="0" speed="22.22" length="9.63" shape="1087.03,2120.70 1078.53,2125.22"/>
- </edge>
- <edge id=":252418937_5" function="internal">
- <lane id=":252418937_5_0" index="0" speed="22.22" length="3.15" shape="1087.03,2120.70 1084.43,2121.84 1084.12,2121.90"/>
- </edge>
- <edge id=":252418937_10" function="internal">
- <lane id=":252418937_10_0" index="0" speed="22.22" length="4.85" shape="1084.12,2121.90 1082.37,2122.22 1080.85,2121.84 1079.87,2120.70"/>
- </edge>
- <edge id=":252418937_6" function="internal">
- <lane id=":252418937_6_0" index="0" speed="22.22" length="6.40" shape="1082.87,2119.31 1085.65,2125.07"/>
- </edge>
- <edge id=":252418937_7" function="internal">
- <lane id=":252418937_7_0" index="0" speed="22.22" length="4.82" shape="1082.87,2119.31 1083.10,2120.76 1082.45,2122.23 1081.20,2123.45"/>
- </edge>
- <edge id=":252418937_11" function="internal">
- <lane id=":252418937_11_0" index="0" speed="22.22" length="3.22" shape="1081.20,2123.45 1080.93,2123.72 1078.53,2125.22"/>
- </edge>
- <edge id=":252418937_8" function="internal">
- <lane id=":252418937_8_0" index="0" speed="22.22" length="2.41" shape="1082.87,2119.31 1082.64,2120.78 1082.07,2121.50"/>
- </edge>
- <edge id=":252418937_12" function="internal">
- <lane id=":252418937_12_0" index="0" speed="22.22" length="2.41" shape="1082.07,2121.50 1081.14,2121.47 1079.87,2120.70"/>
- </edge>
- <edge id=":255227471_0" function="internal">
- <lane id=":255227471_0_0" index="0" speed="25.00" length="5.18" shape="1344.21,961.30 1344.38,962.51 1344.08,963.61 1343.30,964.61 1342.03,965.50"/>
- </edge>
- <edge id=":255227471_1" function="internal">
- <lane id=":255227471_1_0" index="0" speed="22.22" length="6.77" shape="1344.21,961.30 1342.10,954.87"/>
- </edge>
- <edge id=":255227471_2" function="internal">
- <lane id=":255227471_2_0" index="0" speed="25.00" length="9.95" shape="1344.21,961.30 1344.06,959.38 1344.89,957.48 1346.69,955.60 1349.47,953.74"/>
- </edge>
- <edge id=":255227471_3" function="internal">
- <lane id=":255227471_3_0" index="0" speed="22.22" length="6.23" shape="1344.21,961.30 1343.43,959.54 1343.55,958.35 1344.57,957.74 1346.50,957.69"/>
- </edge>
- <edge id=":255227471_4" function="internal">
- <lane id=":255227471_4_0" index="0" speed="25.00" length="7.76" shape="1352.72,959.48 1350.55,960.38 1348.79,960.38 1347.44,959.49 1346.50,957.69"/>
- </edge>
- <edge id=":255227471_5" function="internal">
- <lane id=":255227471_5_0" index="0" speed="27.78" length="12.27" shape="1352.72,959.48 1349.56,961.27 1347.39,962.50 1345.21,963.72 1342.03,965.50"/>
- </edge>
- <edge id=":255227471_6" function="internal">
- <lane id=":255227471_6_0" index="0" speed="27.78" length="12.25" shape="1351.10,956.61 1347.93,958.40 1345.77,959.63 1343.60,960.84 1340.42,962.62"/>
- </edge>
- <edge id=":255227471_7" function="internal">
- <lane id=":255227471_7_0" index="0" speed="25.00" length="10.89" shape="1351.10,956.61 1347.87,958.01 1345.29,958.19 1343.37,957.14 1342.10,954.87"/>
- </edge>
- <edge id=":255227471_8" function="internal">
- <lane id=":255227471_8_0" index="0" speed="27.78" length="2.41" shape="1351.10,956.61 1349.61,956.50 1348.85,955.99"/>
- </edge>
- <edge id=":255227471_18" function="internal">
- <lane id=":255227471_18_0" index="0" speed="27.78" length="2.41" shape="1348.85,955.99 1348.80,955.07 1349.47,953.74"/>
- </edge>
- <edge id=":255227471_9" function="internal">
- <lane id=":255227471_9_0" index="0" speed="25.00" length="4.19" shape="1345.24,953.85 1345.25,953.18 1345.68,952.47 1346.55,951.69 1347.84,950.87"/>
- </edge>
- <edge id=":255227471_10" function="internal">
- <lane id=":255227471_10_0" index="0" speed="22.22" length="4.05" shape="1345.24,953.85 1346.50,957.69"/>
- </edge>
- <edge id=":255227471_11" function="internal">
- <lane id=":255227471_11_0" index="0" speed="25.00" length="10.94" shape="1345.24,953.85 1345.57,956.32 1344.87,958.61 1343.16,960.71 1340.42,962.62"/>
- </edge>
- <edge id=":255227471_12" function="internal">
- <lane id=":255227471_12_0" index="0" speed="22.22" length="4.82" shape="1345.24,953.85 1344.84,955.28 1344.18,955.92 1343.27,955.79 1342.10,954.87"/>
- </edge>
- <edge id=":255227471_13" function="internal">
- <lane id=":255227471_13_0" index="0" speed="25.00" length="5.40" shape="1337.20,956.86 1339.27,955.75 1340.78,955.05 1341.72,954.75 1342.10,954.87"/>
- </edge>
- <edge id=":255227471_14" function="internal">
- <lane id=":255227471_14_0" index="0" speed="27.78" length="12.21" shape="1337.20,956.86 1340.37,955.09 1342.53,953.88 1344.69,952.66 1347.84,950.87"/>
- </edge>
- <edge id=":255227471_15" function="internal">
- <lane id=":255227471_15_0" index="0" speed="27.78" length="12.23" shape="1338.81,959.74 1341.98,957.97 1344.15,956.75 1346.31,955.53 1349.47,953.74"/>
- </edge>
- <edge id=":255227471_16" function="internal">
- <lane id=":255227471_16_0" index="0" speed="25.00" length="8.45" shape="1338.81,959.74 1341.94,958.13 1344.26,957.26 1345.78,957.11 1346.50,957.69"/>
- </edge>
- <edge id=":255227471_17" function="internal">
- <lane id=":255227471_17_0" index="0" speed="27.78" length="2.41" shape="1338.81,959.74 1340.30,959.85 1341.06,960.37"/>
- </edge>
- <edge id=":255227471_19" function="internal">
- <lane id=":255227471_19_0" index="0" speed="27.78" length="2.41" shape="1341.06,960.37 1341.10,961.29 1340.42,962.62"/>
- </edge>
- <edge id=":255227472_0" function="internal">
- <lane id=":255227472_0_0" index="0" speed="22.22" length="4.96" shape="1269.63,818.64 1268.77,817.59 1267.78,817.05 1266.65,817.03 1265.39,817.52"/>
- </edge>
- <edge id=":255227472_1" function="internal">
- <lane id=":255227472_1_0" index="0" speed="22.22" length="4.82" shape="1269.63,818.64 1269.69,817.15 1270.18,816.37 1271.10,816.29 1272.45,816.93"/>
- </edge>
- <edge id=":255227475_0" function="internal">
- <lane id=":255227475_0_0" index="0" speed="22.22" length="9.11" shape="1307.71,882.17 1303.30,874.21"/>
- </edge>
- <edge id=":255227475_1" function="internal">
- <lane id=":255227475_1_0" index="0" speed="18.06" length="6.79" shape="1307.71,882.17 1306.87,879.62 1307.03,877.33 1307.93,875.77"/>
- </edge>
- <edge id=":255227475_12" function="internal">
- <lane id=":255227475_12_0" index="0" speed="18.06" length="3.34" shape="1307.93,875.77 1308.20,875.30 1310.38,873.54"/>
- </edge>
- <edge id=":255227475_2" function="internal">
- <lane id=":255227475_2_0" index="0" speed="22.22" length="2.41" shape="1307.71,882.17 1307.90,880.70 1308.45,879.96"/>
- </edge>
- <edge id=":255227475_13" function="internal">
- <lane id=":255227475_13_0" index="0" speed="22.22" length="2.41" shape="1308.45,879.96 1309.37,879.96 1310.66,880.70"/>
- </edge>
- <edge id=":255227475_3" function="internal">
- <lane id=":255227475_3_0" index="0" speed="18.06" length="5.12" shape="1312.10,876.36 1310.97,877.26 1310.36,878.28 1310.25,879.43 1310.66,880.70"/>
- </edge>
- <edge id=":255227475_4" function="internal">
- <lane id=":255227475_4_0" index="0" speed="18.06" length="10.33" shape="1312.10,876.36 1309.49,877.47 1307.16,877.48 1305.10,876.40 1303.30,874.21"/>
- </edge>
- <edge id=":255227475_5" function="internal">
- <lane id=":255227475_5_0" index="0" speed="13.89" length="4.82" shape="1312.10,876.36 1310.61,876.30 1309.83,875.81 1309.75,874.89 1310.38,873.54"/>
- </edge>
- <edge id=":255227475_6" function="internal">
- <lane id=":255227475_6_0" index="0" speed="18.06" length="5.00" shape="1306.12,872.50 1306.99,873.56 1307.99,874.08 1309.12,874.08 1310.38,873.54"/>
- </edge>
- <edge id=":255227475_7" function="internal">
- <lane id=":255227475_7_0" index="0" speed="22.22" length="9.37" shape="1306.12,872.50 1310.66,880.70"/>
- </edge>
- <edge id=":255227475_8" function="internal">
- <lane id=":255227475_8_0" index="0" speed="22.22" length="2.41" shape="1306.12,872.50 1306.06,873.98 1305.57,874.76"/>
- </edge>
- <edge id=":255227475_14" function="internal">
- <lane id=":255227475_14_0" index="0" speed="22.22" length="2.41" shape="1305.57,874.76 1304.65,874.84 1303.30,874.21"/>
- </edge>
- <edge id=":255227475_9" function="internal">
- <lane id=":255227475_9_0" index="0" speed="22.22" length="6.33" shape="1302.96,879.77 1304.02,878.84 1304.43,877.61 1304.19,876.06 1303.30,874.21"/>
- </edge>
- <edge id=":255227475_10" function="internal">
- <lane id=":255227475_10_0" index="0" speed="18.06" length="9.69" shape="1302.96,879.77 1310.38,873.54"/>
- </edge>
- <edge id=":255227475_11" function="internal">
- <lane id=":255227475_11_0" index="0" speed="22.22" length="8.85" shape="1302.96,879.77 1305.57,878.64 1307.72,878.42 1309.42,879.11 1310.66,880.70"/>
- </edge>
- <edge id=":255227478_0" function="internal">
- <lane id=":255227478_0_0" index="0" speed="13.89" length="4.82" shape="1257.88,792.54 1256.40,792.37 1255.65,791.83 1255.64,790.91 1256.36,789.61"/>
- </edge>
- <edge id=":255227480_0" function="internal">
- <lane id=":255227480_0_0" index="0" speed="11.11" length="11.75" shape="1361.07,853.33 1357.83,852.35 1354.86,852.05 1352.16,852.43 1349.73,853.48"/>
- </edge>
- <edge id=":255227480_1" function="internal">
- <lane id=":255227480_1_0" index="0" speed="11.11" length="14.63" shape="1361.07,853.33 1357.66,851.90 1354.40,850.31 1351.28,848.47 1348.28,846.33"/>
- </edge>
- <edge id=":255227480_2" function="internal">
- <lane id=":255227480_2_0" index="0" speed="8.33" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_3" function="internal">
- <lane id=":255227480_3_0" index="0" speed="11.11" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_4" function="internal">
- <lane id=":255227480_4_0" index="0" speed="8.33" length="3.30" shape="1361.07,853.33 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_5" function="internal">
- <lane id=":255227480_5_0" index="0" speed="11.11" length="4.82" shape="1361.07,853.33 1360.22,852.11 1360.13,851.19 1360.82,850.57 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_6" function="internal">
- <lane id=":255227480_6_0" index="0" speed="13.89" length="11.75" shape="1361.07,853.33 1357.83,852.35 1354.86,852.05 1352.16,852.43 1349.73,853.48"/>
- </edge>
- <edge id=":255227480_7" function="internal">
- <lane id=":255227480_7_0" index="0" speed="13.89" length="14.63" shape="1361.07,853.33 1357.66,851.90 1354.40,850.31 1351.28,848.47 1348.28,846.33"/>
- </edge>
- <edge id=":255227480_8" function="internal">
- <lane id=":255227480_8_0" index="0" speed="11.11" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_9" function="internal">
- <lane id=":255227480_9_0" index="0" speed="13.89" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_10" function="internal">
- <lane id=":255227480_10_0" index="0" speed="13.89" length="3.30" shape="1361.07,853.33 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_11" function="internal">
- <lane id=":255227480_11_0" index="0" speed="11.11" length="4.82" shape="1361.07,853.33 1360.22,852.11 1360.13,851.19 1360.82,850.57 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_12" function="internal">
- <lane id=":255227480_12_0" index="0" speed="13.89" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_13" function="internal">
- <lane id=":255227480_13_0" index="0" speed="11.11" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_14" function="internal">
- <lane id=":255227480_14_0" index="0" speed="13.89" length="14.25" shape="1361.90,846.07 1358.80,847.96 1355.82,849.78 1352.83,851.59 1349.73,853.48"/>
- </edge>
- <edge id=":255227480_15" function="internal">
- <lane id=":255227480_15_0" index="0" speed="13.89" length="14.57" shape="1361.90,846.07 1358.10,847.89 1354.56,848.53 1351.29,848.02 1348.28,846.33"/>
- </edge>
- <edge id=":255227480_16" function="internal">
- <lane id=":255227480_16_0" index="0" speed="11.11" length="3.30" shape="1361.90,846.07 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_17" function="internal">
- <lane id=":255227480_17_0" index="0" speed="13.89" length="2.41" shape="1361.90,846.07 1360.41,846.01 1359.63,845.52"/>
- </edge>
- <edge id=":255227480_36" function="internal">
- <lane id=":255227480_36_0" index="0" speed="13.89" length="2.41" shape="1359.63,845.52 1359.55,844.60 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_18" function="internal">
- <lane id=":255227480_18_0" index="0" speed="11.11" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_19" function="internal">
- <lane id=":255227480_19_0" index="0" speed="8.33" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_20" function="internal">
- <lane id=":255227480_20_0" index="0" speed="11.11" length="14.25" shape="1361.90,846.07 1358.80,847.96 1355.82,849.78 1352.83,851.59 1349.73,853.48"/>
- </edge>
- <edge id=":255227480_21" function="internal">
- <lane id=":255227480_21_0" index="0" speed="11.11" length="14.57" shape="1361.90,846.07 1358.10,847.89 1354.56,848.53 1351.29,848.02 1348.28,846.33"/>
- </edge>
- <edge id=":255227480_22" function="internal">
- <lane id=":255227480_22_0" index="0" speed="11.11" length="3.30" shape="1361.90,846.07 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_23" function="internal">
- <lane id=":255227480_23_0" index="0" speed="8.33" length="4.82" shape="1361.90,846.07 1360.41,846.01 1359.63,845.52 1359.55,844.60 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_24" function="internal">
- <lane id=":255227480_24_0" index="0" speed="11.11" length="10.54" shape="1350.32,843.74 1352.42,844.88 1354.76,845.18 1357.35,844.63 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_25" function="internal">
- <lane id=":255227480_25_0" index="0" speed="13.89" length="10.54" shape="1350.32,843.74 1352.42,844.88 1354.76,845.18 1357.35,844.63 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_26" function="internal">
- <lane id=":255227480_26_0" index="0" speed="13.89" length="13.66" shape="1350.32,843.74 1353.19,845.81 1356.02,847.48 1358.99,848.90 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_27" function="internal">
- <lane id=":255227480_27_0" index="0" speed="11.11" length="13.66" shape="1350.32,843.74 1353.19,845.81 1356.02,847.48 1358.99,848.90 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_28" function="internal">
- <lane id=":255227480_28_0" index="0" speed="13.89" length="12.37" shape="1350.32,843.74 1352.81,846.34 1353.54,848.82 1352.51,851.21 1349.73,853.48"/>
- </edge>
- <edge id=":255227480_29" function="internal">
- <lane id=":255227480_29_0" index="0" speed="13.89" length="4.82" shape="1350.32,843.74 1350.78,845.15 1350.60,846.06 1349.76,846.45 1348.28,846.33"/>
- </edge>
- <edge id=":255227480_30" function="internal">
- <lane id=":255227480_30_0" index="0" speed="13.89" length="5.50" shape="1348.02,850.66 1349.25,849.65 1349.71,848.59 1349.38,847.49 1348.28,846.33"/>
- </edge>
- <edge id=":255227480_31" function="internal">
- <lane id=":255227480_31_0" index="0" speed="11.11" length="14.24" shape="1348.02,850.66 1351.12,848.78 1354.10,846.96 1357.08,845.14 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_32" function="internal">
- <lane id=":255227480_32_0" index="0" speed="13.89" length="14.24" shape="1348.02,850.66 1351.12,848.78 1354.10,846.96 1357.08,845.14 1360.18,843.25"/>
- </edge>
- <edge id=":255227480_33" function="internal">
- <lane id=":255227480_33_0" index="0" speed="13.89" length="9.47" shape="1348.02,850.66 1351.15,849.27 1354.57,848.74 1357.14,848.97"/>
- </edge>
- <edge id=":255227480_37" function="internal">
- <lane id=":255227480_37_0" index="0" speed="13.89" length="5.30" shape="1357.14,848.97 1358.28,849.07 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_34" function="internal">
- <lane id=":255227480_34_0" index="0" speed="11.11" length="9.47" shape="1348.02,850.66 1351.15,849.27 1354.57,848.74 1357.14,848.97"/>
- </edge>
- <edge id=":255227480_38" function="internal">
- <lane id=":255227480_38_0" index="0" speed="11.11" length="5.30" shape="1357.14,848.97 1358.28,849.07 1362.27,850.25"/>
- </edge>
- <edge id=":255227480_35" function="internal">
- <lane id=":255227480_35_0" index="0" speed="13.89" length="2.41" shape="1348.02,850.66 1349.50,850.72 1350.28,851.22"/>
- </edge>
- <edge id=":255227480_39" function="internal">
- <lane id=":255227480_39_0" index="0" speed="13.89" length="2.41" shape="1350.28,851.22 1350.36,852.13 1349.73,853.48"/>
- </edge>
- <edge id=":255227482_0" function="internal">
- <lane id=":255227482_0_0" index="0" speed="11.11" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_1" function="internal">
- <lane id=":255227482_1_0" index="0" speed="13.89" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_2" function="internal">
- <lane id=":255227482_2_0" index="0" speed="13.89" length="10.36" shape="1395.58,829.28 1394.59,826.55 1394.63,824.15 1395.69,822.08 1397.78,820.33"/>
- </edge>
- <edge id=":255227482_3" function="internal">
- <lane id=":255227482_3_0" index="0" speed="11.11" length="3.30" shape="1395.58,829.28 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_4" function="internal">
- <lane id=":255227482_4_0" index="0" speed="13.89" length="4.82" shape="1395.58,829.28 1395.74,827.80 1396.28,827.06 1397.21,827.04 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_5" function="internal">
- <lane id=":255227482_5_0" index="0" speed="8.33" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_6" function="internal">
- <lane id=":255227482_6_0" index="0" speed="11.11" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_7" function="internal">
- <lane id=":255227482_7_0" index="0" speed="11.11" length="10.36" shape="1395.58,829.28 1394.59,826.55 1394.63,824.15 1395.69,822.08 1397.78,820.33"/>
- </edge>
- <edge id=":255227482_8" function="internal">
- <lane id=":255227482_8_0" index="0" speed="11.11" length="3.30" shape="1395.58,829.28 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_9" function="internal">
- <lane id=":255227482_9_0" index="0" speed="8.33" length="4.82" shape="1395.58,829.28 1395.74,827.80 1396.28,827.06 1397.21,827.04 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_10" function="internal">
- <lane id=":255227482_10_0" index="0" speed="11.11" length="5.29" shape="1399.49,823.16 1398.47,824.03 1397.96,825.08 1397.98,826.33 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_11" function="internal">
- <lane id=":255227482_11_0" index="0" speed="13.89" length="5.29" shape="1399.49,823.16 1398.47,824.03 1397.96,825.08 1397.98,826.33 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_12" function="internal">
- <lane id=":255227482_12_0" index="0" speed="11.11" length="9.52" shape="1399.49,823.16 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_13" function="internal">
- <lane id=":255227482_13_0" index="0" speed="13.89" length="9.52" shape="1399.49,823.16 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_14" function="internal">
- <lane id=":255227482_14_0" index="0" speed="13.89" length="2.41" shape="1399.49,823.16 1398.00,823.09 1397.22,822.60"/>
- </edge>
- <edge id=":255227482_25" function="internal">
- <lane id=":255227482_25_0" index="0" speed="13.89" length="2.41" shape="1397.22,822.60 1397.15,821.68 1397.78,820.33"/>
- </edge>
- <edge id=":255227482_15" function="internal">
- <lane id=":255227482_15_0" index="0" speed="13.89" length="9.53" shape="1389.64,825.29 1397.78,820.33"/>
- </edge>
- <edge id=":255227482_16" function="internal">
- <lane id=":255227482_16_0" index="0" speed="11.11" length="7.18" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.32,825.08"/>
- </edge>
- <edge id=":255227482_26" function="internal">
- <lane id=":255227482_26_0" index="0" speed="11.11" length="3.50" shape="1396.32,825.08 1396.79,825.36 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_17" function="internal">
- <lane id=":255227482_17_0" index="0" speed="13.89" length="7.18" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.32,825.08"/>
- </edge>
- <edge id=":255227482_27" function="internal">
- <lane id=":255227482_27_0" index="0" speed="13.89" length="3.50" shape="1396.32,825.08 1396.79,825.36 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_18" function="internal">
- <lane id=":255227482_18_0" index="0" speed="11.11" length="3.30" shape="1389.64,825.29 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_19" function="internal">
- <lane id=":255227482_19_0" index="0" speed="13.89" length="2.41" shape="1389.64,825.29 1391.12,825.35 1391.90,825.84"/>
- </edge>
- <edge id=":255227482_28" function="internal">
- <lane id=":255227482_28_0" index="0" speed="13.89" length="2.41" shape="1391.90,825.84 1391.98,826.75 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_20" function="internal">
- <lane id=":255227482_20_0" index="0" speed="11.11" length="9.53" shape="1389.64,825.29 1397.78,820.33"/>
- </edge>
- <edge id=":255227482_21" function="internal">
- <lane id=":255227482_21_0" index="0" speed="8.33" length="10.67" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.79,825.36 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_22" function="internal">
- <lane id=":255227482_22_0" index="0" speed="11.11" length="10.67" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.79,825.36 1398.51,827.76"/>
- </edge>
- <edge id=":255227482_23" function="internal">
- <lane id=":255227482_23_0" index="0" speed="11.11" length="3.30" shape="1389.64,825.29 1391.36,828.10"/>
- </edge>
- <edge id=":255227482_24" function="internal">
- <lane id=":255227482_24_0" index="0" speed="8.33" length="4.82" shape="1389.64,825.29 1391.12,825.35 1391.90,825.84 1391.98,826.75 1391.36,828.10"/>
- </edge>
- <edge id=":255227483_0" function="internal">
- <lane id=":255227483_0_0" index="0" speed="25.00" length="3.74" shape="1437.55,909.71 1437.69,910.35 1437.40,911.02 1436.69,911.73 1435.56,912.47"/>
- </edge>
- <edge id=":255227483_1" function="internal">
- <lane id=":255227483_1_0" index="0" speed="22.22" length="7.64" shape="1437.55,909.71 1433.90,903.00"/>
- </edge>
- <edge id=":255227483_2" function="internal">
- <lane id=":255227483_2_0" index="0" speed="25.00" length="9.55" shape="1437.55,909.71 1436.78,907.54 1437.06,905.52 1438.39,903.65 1440.76,901.94"/>
- </edge>
- <edge id=":255227483_3" function="internal">
- <lane id=":255227483_3_0" index="0" speed="22.22" length="4.82" shape="1437.55,909.71 1437.65,908.23 1438.16,907.46 1439.09,907.41 1440.41,908.08"/>
- </edge>
- <edge id=":255227483_4" function="internal">
- <lane id=":255227483_4_0" index="0" speed="25.00" length="3.94" shape="1444.00,907.69 1442.70,908.32 1441.66,908.60 1440.90,908.52 1440.41,908.08"/>
- </edge>
- <edge id=":255227483_5" function="internal">
- <lane id=":255227483_5_0" index="0" speed="27.78" length="9.71" shape="1444.00,907.69 1435.56,912.47"/>
- </edge>
- <edge id=":255227483_6" function="internal">
- <lane id=":255227483_6_0" index="0" speed="27.78" length="9.71" shape="1442.38,904.82 1433.93,909.60"/>
- </edge>
- <edge id=":255227483_7" function="internal">
- <lane id=":255227483_7_0" index="0" speed="25.00" length="9.95" shape="1442.38,904.82 1439.66,905.94 1437.35,906.01 1435.43,905.03 1433.90,903.00"/>
- </edge>
- <edge id=":255227483_8" function="internal">
- <lane id=":255227483_8_0" index="0" speed="27.78" length="2.41" shape="1442.38,904.82 1440.90,904.71 1440.13,904.19"/>
- </edge>
- <edge id=":255227483_18" function="internal">
- <lane id=":255227483_18_0" index="0" speed="27.78" length="2.41" shape="1440.13,904.19 1440.08,903.27 1440.76,901.94"/>
- </edge>
- <edge id=":255227483_9" function="internal">
- <lane id=":255227483_9_0" index="0" speed="25.00" length="3.54" shape="1436.83,901.48 1436.81,901.01 1437.18,900.45 1437.96,899.80 1439.13,899.07"/>
- </edge>
- <edge id=":255227483_10" function="internal">
- <lane id=":255227483_10_0" index="0" speed="22.22" length="7.51" shape="1436.83,901.48 1440.41,908.08"/>
- </edge>
- <edge id=":255227483_11" function="internal">
- <lane id=":255227483_11_0" index="0" speed="25.00" length="9.75" shape="1436.83,901.48 1437.62,903.86 1437.40,906.01 1436.17,907.92 1433.93,909.60"/>
- </edge>
- <edge id=":255227483_12" function="internal">
- <lane id=":255227483_12_0" index="0" speed="22.22" length="4.82" shape="1436.83,901.48 1436.67,902.96 1436.13,903.70 1435.20,903.72 1433.90,903.00"/>
- </edge>
- <edge id=":255227483_13" function="internal">
- <lane id=":255227483_13_0" index="0" speed="25.00" length="3.53" shape="1430.67,903.86 1431.94,903.20 1432.90,902.84 1433.55,902.77 1433.90,903.00"/>
- </edge>
- <edge id=":255227483_14" function="internal">
- <lane id=":255227483_14_0" index="0" speed="27.78" length="9.73" shape="1430.67,903.86 1439.13,899.07"/>
- </edge>
- <edge id=":255227483_15" function="internal">
- <lane id=":255227483_15_0" index="0" speed="27.78" length="9.72" shape="1432.30,906.73 1440.76,901.94"/>
- </edge>
- <edge id=":255227483_16" function="internal">
- <lane id=":255227483_16_0" index="0" speed="25.00" length="9.35" shape="1432.30,906.73 1434.89,905.63 1437.10,905.49 1438.95,906.31 1440.41,908.08"/>
- </edge>
- <edge id=":255227483_17" function="internal">
- <lane id=":255227483_17_0" index="0" speed="27.78" length="2.41" shape="1432.30,906.73 1433.78,906.84 1434.55,907.35"/>
- </edge>
- <edge id=":255227483_19" function="internal">
- <lane id=":255227483_19_0" index="0" speed="27.78" length="2.41" shape="1434.55,907.35 1434.60,908.27 1433.93,909.60"/>
- </edge>
- <edge id=":256633248_0" function="internal">
- <lane id=":256633248_0_0" index="0" speed="83.33" length="0.10" shape="763.20,924.92 763.20,924.92"/>
- </edge>
- <edge id=":257907508_0" function="internal">
- <lane id=":257907508_0_0" index="0" speed="8.33" length="4.82" shape="1601.41,1285.75 1602.67,1286.54 1603.10,1287.35 1602.72,1288.19 1601.51,1289.05"/>
- </edge>
- <edge id=":267169554_0" function="internal">
- <lane id=":267169554_0_0" index="0" speed="22.22" length="5.12" shape="1045.46,1030.10 1044.36,1030.95 1043.79,1031.96 1043.74,1033.13 1044.21,1034.45"/>
- </edge>
- <edge id=":267169554_1" function="internal">
- <lane id=":267169554_1_0" index="0" speed="22.22" length="6.28" shape="1045.46,1030.10 1040.00,1033.21"/>
- </edge>
- <edge id=":267169554_2" function="internal">
- <lane id=":267169554_2_0" index="0" speed="22.22" length="6.28" shape="1041.24,1028.91 1044.21,1034.45"/>
- </edge>
- <edge id=":267169554_3" function="internal">
- <lane id=":267169554_3_0" index="0" speed="22.22" length="5.08" shape="1041.24,1028.91 1041.73,1030.21 1041.68,1031.35 1041.11,1032.35 1040.00,1033.21"/>
- </edge>
- <edge id=":267169591_0" function="internal">
- <lane id=":267169591_0_0" index="0" speed="22.22" length="5.07" shape="901.93,1111.78 900.81,1112.64 900.21,1113.63 900.13,1114.77 900.58,1116.05"/>
- </edge>
- <edge id=":267169591_1" function="internal">
- <lane id=":267169591_1_0" index="0" speed="22.22" length="6.23" shape="897.73,1110.51 900.58,1116.05"/>
- </edge>
- <edge id=":267169592_0" function="internal">
- <lane id=":267169592_0_0" index="0" speed="22.22" length="5.05" shape="975.17,1073.70 974.36,1072.57 973.38,1071.99 972.25,1071.95 970.96,1072.46"/>
- </edge>
- <edge id=":267169592_1" function="internal">
- <lane id=":267169592_1_0" index="0" speed="22.22" length="6.32" shape="975.17,1073.70 972.25,1068.09"/>
- </edge>
- <edge id=":267169592_2" function="internal">
- <lane id=":267169592_2_0" index="0" speed="22.22" length="6.32" shape="976.45,1069.33 970.96,1072.46"/>
- </edge>
- <edge id=":267169592_3" function="internal">
- <lane id=":267169592_3_0" index="0" speed="22.22" length="5.04" shape="976.45,1069.33 975.16,1069.84 974.03,1069.80 973.06,1069.22 972.25,1068.09"/>
- </edge>
- <edge id=":267169634_0" function="internal">
- <lane id=":267169634_0_0" index="0" speed="15.28" length="10.98" shape="1477.42,987.15 1476.18,985.97 1474.60,986.51 1472.66,988.78 1470.38,992.78"/>
- </edge>
- <edge id=":267169634_1" function="internal">
- <lane id=":267169634_1_0" index="0" speed="15.28" length="14.61" shape="1477.42,987.15 1475.58,985.26 1472.82,984.90 1469.14,986.06 1464.54,988.75"/>
- </edge>
- <edge id=":267169634_2" function="internal">
- <lane id=":267169634_2_0" index="0" speed="22.22" length="12.21" shape="1477.42,987.15 1475.90,984.21 1474.61,981.73 1473.34,979.25 1471.84,976.29"/>
- </edge>
- <edge id=":267169634_3" function="internal">
- <lane id=":267169634_3_0" index="0" speed="22.22" length="2.41" shape="1477.42,987.15 1477.59,985.67 1478.13,984.93"/>
- </edge>
- <edge id=":267169634_16" function="internal">
- <lane id=":267169634_16_0" index="0" speed="22.22" length="2.41" shape="1478.13,984.93 1479.05,984.91 1480.35,985.63"/>
- </edge>
- <edge id=":267169634_4" function="internal">
- <lane id=":267169634_4_0" index="0" speed="22.22" length="12.17" shape="1474.79,974.81 1476.29,977.76 1477.55,980.23 1478.83,982.70 1480.35,985.63"/>
- </edge>
- <edge id=":267169634_5" function="internal">
- <lane id=":267169634_5_0" index="0" speed="15.28" length="7.28" shape="1474.79,974.81 1475.39,977.66 1474.85,981.61 1474.73,981.97"/>
- </edge>
- <edge id=":267169634_17" function="internal">
- <lane id=":267169634_17_0" index="0" speed="15.28" length="11.67" shape="1474.73,981.97 1473.18,986.65 1470.38,992.78"/>
- </edge>
- <edge id=":267169634_6" function="internal">
- <lane id=":267169634_6_0" index="0" speed="15.28" length="5.75" shape="1474.79,974.81 1475.13,977.62 1473.85,980.23"/>
- </edge>
- <edge id=":267169634_18" function="internal">
- <lane id=":267169634_18_0" index="0" speed="15.28" length="12.71" shape="1473.85,980.23 1473.53,980.88 1470.00,984.59 1464.54,988.75"/>
- </edge>
- <edge id=":267169634_7" function="internal">
- <lane id=":267169634_7_0" index="0" speed="22.22" length="2.41" shape="1474.79,974.81 1474.61,976.28 1474.06,977.02"/>
- </edge>
- <edge id=":267169634_19" function="internal">
- <lane id=":267169634_19_0" index="0" speed="22.22" length="2.41" shape="1474.06,977.02 1473.14,977.02 1471.84,976.29"/>
- </edge>
- <edge id=":267169634_8" function="internal">
- <lane id=":267169634_8_0" index="0" speed="15.28" length="13.88" shape="1462.68,986.03 1467.18,982.74 1470.21,980.02 1471.76,977.87 1471.84,976.29"/>
- </edge>
- <edge id=":267169634_9" function="internal">
- <lane id=":267169634_9_0" index="0" speed="15.28" length="20.30" shape="1462.68,986.03 1468.73,982.62 1473.70,981.42 1477.57,982.43 1480.35,985.63"/>
- </edge>
- <edge id=":267169634_10" function="internal">
- <lane id=":267169634_10_0" index="0" speed="8.33" length="22.90" shape="1462.68,986.03 1469.52,982.11 1473.08,981.93 1473.37,985.48 1470.38,992.78"/>
- </edge>
- <edge id=":267169634_11" function="internal">
- <lane id=":267169634_11_0" index="0" speed="8.33" length="4.82" shape="1462.68,986.03 1464.17,986.01 1464.97,986.46 1465.10,987.37 1464.54,988.75"/>
- </edge>
- <edge id=":267169634_12" function="internal">
- <lane id=":267169634_12_0" index="0" speed="8.33" length="8.60" shape="1467.44,991.29 1468.56,988.55 1468.45,987.21 1467.11,987.28 1464.54,988.75"/>
- </edge>
- <edge id=":267169634_13" function="internal">
- <lane id=":267169634_13_0" index="0" speed="15.28" length="15.93" shape="1467.44,991.29 1469.96,985.90 1471.53,981.61 1472.16,978.40 1471.84,976.29"/>
- </edge>
- <edge id=":267169634_14" function="internal">
- <lane id=":267169634_14_0" index="0" speed="15.28" length="19.10" shape="1467.44,991.29 1471.17,985.13 1474.57,982.13 1477.63,982.30 1480.35,985.63"/>
- </edge>
- <edge id=":267169634_15" function="internal">
- <lane id=":267169634_15_0" index="0" speed="8.33" length="4.82" shape="1467.44,991.29 1468.73,990.56 1469.65,990.56 1470.20,991.30 1470.38,992.78"/>
- </edge>
- <edge id=":267169686_0" function="internal">
- <lane id=":267169686_0_0" index="0" speed="8.33" length="6.11" shape="1419.13,1102.38 1418.10,1100.81 1417.06,1100.27 1416.00,1100.77 1414.92,1102.30"/>
- </edge>
- <edge id=":267169686_1" function="internal">
- <lane id=":267169686_1_0" index="0" speed="8.33" length="15.37" shape="1419.13,1102.38 1417.44,1098.97 1415.67,1095.52 1413.85,1092.10 1412.00,1088.77"/>
- </edge>
- <edge id=":267169686_2" function="internal">
- <lane id=":267169686_2_0" index="0" speed="8.33" length="15.91" shape="1419.13,1102.38 1417.70,1098.48 1417.22,1094.62 1417.69,1090.81 1419.10,1087.04"/>
- </edge>
- <edge id=":267169686_3" function="internal">
- <lane id=":267169686_3_0" index="0" speed="8.33" length="4.82" shape="1419.13,1102.38 1419.33,1100.91 1419.89,1100.18 1420.82,1100.19 1422.10,1100.95"/>
- </edge>
- <edge id=":267169686_4" function="internal">
- <lane id=":267169686_4_0" index="0" speed="8.33" length="12.88" shape="1422.05,1088.53 1420.91,1091.56 1420.54,1094.65 1420.94,1097.77 1422.10,1100.95"/>
- </edge>
- <edge id=":267169686_5" function="internal">
- <lane id=":267169686_5_0" index="0" speed="8.33" length="15.51" shape="1422.05,1088.53 1420.31,1091.94 1418.52,1095.43 1416.70,1098.92 1414.92,1102.30"/>
- </edge>
- <edge id=":267169686_6" function="internal">
- <lane id=":267169686_6_0" index="0" speed="8.33" length="14.20" shape="1422.05,1088.53 1419.62,1092.11 1417.14,1093.34 1414.60,1092.23 1412.00,1088.77"/>
- </edge>
- <edge id=":267169686_7" function="internal">
- <lane id=":267169686_7_0" index="0" speed="8.33" length="4.82" shape="1422.05,1088.53 1420.76,1089.26 1419.83,1089.26 1419.28,1088.52 1419.10,1087.04"/>
- </edge>
- <edge id=":267169686_8" function="internal">
- <lane id=":267169686_8_0" index="0" speed="8.33" length="5.98" shape="1414.87,1087.14 1415.96,1088.60 1417.03,1089.07 1418.08,1088.55 1419.10,1087.04"/>
- </edge>
- <edge id=":267169686_9" function="internal">
- <lane id=":267169686_9_0" index="0" speed="8.33" length="15.58" shape="1414.87,1087.14 1416.73,1090.50 1418.59,1093.99 1420.40,1097.50 1422.10,1100.95"/>
- </edge>
- <edge id=":267169686_10" function="internal">
- <lane id=":267169686_10_0" index="0" speed="8.33" length="15.85" shape="1414.87,1087.14 1416.44,1090.85 1416.97,1094.62 1416.46,1098.43 1414.92,1102.30"/>
- </edge>
- <edge id=":267169686_11" function="internal">
- <lane id=":267169686_11_0" index="0" speed="8.33" length="4.82" shape="1414.87,1087.14 1414.76,1088.63 1414.25,1089.39 1413.33,1089.44 1412.00,1088.77"/>
- </edge>
- <edge id=":267169686_12" function="internal">
- <lane id=":267169686_12_0" index="0" speed="8.33" length="12.53" shape="1412.00,1100.76 1413.23,1097.69 1413.64,1094.67 1413.23,1091.70 1412.00,1088.77"/>
- </edge>
- <edge id=":267169686_13" function="internal">
- <lane id=":267169686_13_0" index="0" speed="8.33" length="15.45" shape="1412.00,1100.76 1413.78,1097.38 1415.59,1093.92 1417.37,1090.45 1419.10,1087.04"/>
- </edge>
- <edge id=":267169686_14" function="internal">
- <lane id=":267169686_14_0" index="0" speed="8.33" length="14.65" shape="1412.00,1100.76 1414.60,1097.07 1417.14,1095.87 1419.64,1097.16 1422.10,1100.95"/>
- </edge>
- <edge id=":267169686_15" function="internal">
- <lane id=":267169686_15_0" index="0" speed="8.33" length="4.82" shape="1412.00,1100.76 1413.31,1100.05 1414.23,1100.07 1414.77,1100.82 1414.92,1102.30"/>
- </edge>
- <edge id=":267169690_0" function="internal">
- <lane id=":267169690_0_0" index="0" speed="8.33" length="5.00" shape="1387.23,1045.14 1386.39,1044.05 1385.40,1043.50 1384.27,1043.47 1383.00,1043.98"/>
- </edge>
- <edge id=":267169690_1" function="internal">
- <lane id=":267169690_1_0" index="0" speed="15.28" length="9.87" shape="1387.23,1045.14 1382.42,1036.52"/>
- </edge>
- <edge id=":267169690_2" function="internal">
- <lane id=":267169690_2_0" index="0" speed="8.33" length="7.25" shape="1387.23,1045.14 1386.21,1042.52 1386.27,1040.12 1387.20,1038.30"/>
- </edge>
- <edge id=":267169690_16" function="internal">
- <lane id=":267169690_16_0" index="0" speed="8.33" length="3.37" shape="1387.20,1038.30 1387.39,1037.93 1389.58,1035.96"/>
- </edge>
- <edge id=":267169690_3" function="internal">
- <lane id=":267169690_3_0" index="0" speed="8.33" length="2.41" shape="1387.23,1045.14 1387.33,1043.65 1387.85,1042.89"/>
- </edge>
- <edge id=":267169690_17" function="internal">
- <lane id=":267169690_17_0" index="0" speed="8.33" length="2.41" shape="1387.85,1042.89 1388.77,1042.84 1390.10,1043.51"/>
- </edge>
- <edge id=":267169690_4" function="internal">
- <lane id=":267169690_4_0" index="0" speed="8.33" length="5.61" shape="1391.44,1038.68 1390.25,1039.74 1389.63,1040.90 1389.58,1042.15 1390.10,1043.51"/>
- </edge>
- <edge id=":267169690_5" function="internal">
- <lane id=":267169690_5_0" index="0" speed="8.33" length="9.97" shape="1391.44,1038.68 1383.00,1043.98"/>
- </edge>
- <edge id=":267169690_6" function="internal">
- <lane id=":267169690_6_0" index="0" speed="15.28" length="10.83" shape="1391.44,1038.68 1388.74,1040.01 1386.34,1040.09 1384.23,1038.93 1382.42,1036.52"/>
- </edge>
- <edge id=":267169690_7" function="internal">
- <lane id=":267169690_7_0" index="0" speed="8.33" length="4.82" shape="1391.44,1038.68 1389.96,1038.70 1389.15,1038.25 1389.03,1037.34 1389.58,1035.96"/>
- </edge>
- <edge id=":267169690_8" function="internal">
- <lane id=":267169690_8_0" index="0" speed="15.28" length="5.12" shape="1385.32,1034.93 1386.17,1036.07 1387.17,1036.62 1388.31,1036.58 1389.58,1035.96"/>
- </edge>
- <edge id=":267169690_9" function="internal">
- <lane id=":267169690_9_0" index="0" speed="15.28" length="9.82" shape="1385.32,1034.93 1390.10,1043.51"/>
- </edge>
- <edge id=":267169690_10" function="internal">
- <lane id=":267169690_10_0" index="0" speed="15.28" length="7.38" shape="1385.32,1034.93 1386.38,1037.71 1386.35,1040.14 1385.41,1041.88"/>
- </edge>
- <edge id=":267169690_18" function="internal">
- <lane id=":267169690_18_0" index="0" speed="15.28" length="3.23" shape="1385.41,1041.88 1385.22,1042.23 1383.00,1043.98"/>
- </edge>
- <edge id=":267169690_11" function="internal">
- <lane id=":267169690_11_0" index="0" speed="22.22" length="2.41" shape="1385.32,1034.93 1385.19,1036.41 1384.66,1037.17"/>
- </edge>
- <edge id=":267169690_19" function="internal">
- <lane id=":267169690_19_0" index="0" speed="22.22" length="2.41" shape="1384.66,1037.17 1383.74,1037.21 1382.42,1036.52"/>
- </edge>
- <edge id=":267169690_12" function="internal">
- <lane id=":267169690_12_0" index="0" speed="15.28" length="5.35" shape="1381.36,1041.11 1382.45,1040.24 1382.99,1039.19 1382.98,1037.94 1382.42,1036.52"/>
- </edge>
- <edge id=":267169690_13" function="internal">
- <lane id=":267169690_13_0" index="0" speed="8.33" length="9.70" shape="1381.36,1041.11 1389.58,1035.96"/>
- </edge>
- <edge id=":267169690_14" function="internal">
- <lane id=":267169690_14_0" index="0" speed="8.33" length="10.33" shape="1381.36,1041.11 1384.00,1040.07 1386.33,1040.12 1388.36,1041.27 1390.10,1043.51"/>
- </edge>
- <edge id=":267169690_15" function="internal">
- <lane id=":267169690_15_0" index="0" speed="8.33" length="4.82" shape="1381.36,1041.11 1382.85,1041.21 1383.61,1041.73 1383.66,1042.65 1383.00,1043.98"/>
- </edge>
- <edge id=":267169714_0" function="internal">
- <lane id=":267169714_0_0" index="0" speed="22.22" length="5.01" shape="1519.25,1067.75 1518.45,1066.63 1517.49,1066.04 1516.36,1065.97 1515.07,1066.44"/>
- </edge>
- <edge id=":267169714_1" function="internal">
- <lane id=":267169714_1_0" index="0" speed="22.22" length="9.60" shape="1519.25,1067.75 1514.84,1059.23"/>
- </edge>
- <edge id=":267169714_2" function="internal">
- <lane id=":267169714_2_0" index="0" speed="22.22" length="10.41" shape="1519.25,1067.75 1518.32,1065.07 1518.47,1062.72 1519.68,1060.69 1521.97,1058.98"/>
- </edge>
- <edge id=":267169714_3" function="internal">
- <lane id=":267169714_3_0" index="0" speed="22.22" length="4.82" shape="1519.25,1067.75 1519.42,1066.28 1519.96,1065.53 1520.88,1065.52 1522.18,1066.25"/>
- </edge>
- <edge id=":267169714_4" function="internal">
- <lane id=":267169714_4_0" index="0" speed="22.22" length="5.19" shape="1523.55,1061.88 1522.41,1062.73 1521.80,1063.74 1521.72,1064.91 1522.18,1066.25"/>
- </edge>
- <edge id=":267169714_5" function="internal">
- <lane id=":267169714_5_0" index="0" speed="22.22" length="9.63" shape="1523.55,1061.88 1515.07,1066.44"/>
- </edge>
- <edge id=":267169714_6" function="internal">
- <lane id=":267169714_6_0" index="0" speed="22.22" length="7.19" shape="1523.55,1061.88 1520.86,1062.88 1518.52,1062.78 1516.83,1061.75"/>
- </edge>
- <edge id=":267169714_16" function="internal">
- <lane id=":267169714_16_0" index="0" speed="22.22" length="3.23" shape="1516.83,1061.75 1516.51,1061.56 1514.84,1059.23"/>
- </edge>
- <edge id=":267169714_7" function="internal">
- <lane id=":267169714_7_0" index="0" speed="22.22" length="2.41" shape="1523.55,1061.88 1522.07,1061.75 1521.31,1061.22"/>
- </edge>
- <edge id=":267169714_17" function="internal">
- <lane id=":267169714_17_0" index="0" speed="22.22" length="2.41" shape="1521.31,1061.22 1521.28,1060.30 1521.97,1058.98"/>
- </edge>
- <edge id=":267169714_8" function="internal">
- <lane id=":267169714_8_0" index="0" speed="22.22" length="5.03" shape="1517.77,1057.70 1518.57,1058.83 1519.54,1059.42 1520.67,1059.47 1521.97,1058.98"/>
- </edge>
- <edge id=":267169714_9" function="internal">
- <lane id=":267169714_9_0" index="0" speed="22.22" length="9.61" shape="1517.77,1057.70 1522.18,1066.25"/>
- </edge>
- <edge id=":267169714_10" function="internal">
- <lane id=":267169714_10_0" index="0" speed="22.22" length="10.41" shape="1517.77,1057.70 1518.72,1060.40 1518.58,1062.75 1517.37,1064.77 1515.07,1066.44"/>
- </edge>
- <edge id=":267169714_11" function="internal">
- <lane id=":267169714_11_0" index="0" speed="22.22" length="4.82" shape="1517.77,1057.70 1517.61,1059.18 1517.07,1059.93 1516.14,1059.94 1514.84,1059.23"/>
- </edge>
- <edge id=":267169714_12" function="internal">
- <lane id=":267169714_12_0" index="0" speed="22.22" length="5.12" shape="1513.52,1063.52 1514.65,1062.70 1515.25,1061.71 1515.31,1060.55 1514.84,1059.23"/>
- </edge>
- <edge id=":267169714_13" function="internal">
- <lane id=":267169714_13_0" index="0" speed="22.22" length="9.58" shape="1513.52,1063.52 1521.97,1058.98"/>
- </edge>
- <edge id=":267169714_14" function="internal">
- <lane id=":267169714_14_0" index="0" speed="22.22" length="7.10" shape="1513.52,1063.52 1516.21,1062.56 1518.54,1062.69 1520.17,1063.70"/>
- </edge>
- <edge id=":267169714_18" function="internal">
- <lane id=":267169714_18_0" index="0" speed="22.22" length="3.28" shape="1520.17,1063.70 1520.54,1063.92 1522.18,1066.25"/>
- </edge>
- <edge id=":267169714_15" function="internal">
- <lane id=":267169714_15_0" index="0" speed="22.22" length="2.41" shape="1513.52,1063.52 1515.00,1063.67 1515.75,1064.21"/>
- </edge>
- <edge id=":267169714_19" function="internal">
- <lane id=":267169714_19_0" index="0" speed="22.22" length="2.41" shape="1515.75,1064.21 1515.77,1065.13 1515.07,1066.44"/>
- </edge>
- <edge id=":267169715_0" function="internal">
- <lane id=":267169715_0_0" index="0" speed="8.33" length="9.47" shape="1426.05,1116.79 1421.96,1108.25"/>
- </edge>
- <edge id=":267169715_1" function="internal">
- <lane id=":267169715_1_0" index="0" speed="15.28" length="10.32" shape="1426.05,1116.79 1425.25,1114.15 1425.49,1111.84 1426.77,1109.85 1429.10,1108.18"/>
- </edge>
- <edge id=":267169715_2" function="internal">
- <lane id=":267169715_2_0" index="0" speed="8.33" length="4.82" shape="1426.05,1116.79 1426.27,1115.31 1426.84,1114.59 1427.76,1114.61 1429.03,1115.37"/>
- </edge>
- <edge id=":267169715_3" function="internal">
- <lane id=":267169715_3_0" index="0" speed="15.28" length="5.16" shape="1430.64,1111.09 1429.45,1111.94 1428.79,1112.93 1428.65,1114.08 1429.03,1115.37"/>
- </edge>
- <edge id=":267169715_4" function="internal">
- <lane id=":267169715_4_0" index="0" speed="15.28" length="10.51" shape="1430.64,1111.09 1427.92,1112.07 1425.56,1111.92 1423.58,1110.65 1421.96,1108.25"/>
- </edge>
- <edge id=":267169715_5" function="internal">
- <lane id=":267169715_5_0" index="0" speed="22.22" length="4.82" shape="1430.64,1111.09 1429.16,1110.94 1428.41,1110.41 1428.39,1109.48 1429.10,1108.18"/>
- </edge>
- <edge id=":267169715_6" function="internal">
- <lane id=":267169715_6_0" index="0" speed="15.28" length="5.04" shape="1424.93,1106.81 1425.71,1107.96 1426.66,1108.57 1427.79,1108.65 1429.10,1108.18"/>
- </edge>
- <edge id=":267169715_7" function="internal">
- <lane id=":267169715_7_0" index="0" speed="8.33" length="9.49" shape="1424.93,1106.81 1429.03,1115.37"/>
- </edge>
- <edge id=":267169715_8" function="internal">
- <lane id=":267169715_8_0" index="0" speed="8.33" length="4.82" shape="1424.93,1106.81 1424.73,1108.28 1424.16,1109.01 1423.24,1109.00 1421.96,1108.25"/>
- </edge>
- <edge id=":267169795_0" function="internal">
- <lane id=":267169795_0_0" index="0" speed="22.22" length="4.82" shape="1578.23,1161.81 1578.36,1163.29 1577.98,1164.13 1577.08,1164.32 1575.66,1163.88"/>
- </edge>
- <edge id=":267169964_0" function="internal">
- <lane id=":267169964_0_0" index="0" speed="22.22" length="5.08" shape="1232.24,1128.05 1231.10,1128.89 1230.49,1129.88 1230.41,1131.02 1230.87,1132.30"/>
- </edge>
- <edge id=":267169964_1" function="internal">
- <lane id=":267169964_1_0" index="0" speed="22.22" length="2.41" shape="1232.24,1128.05 1230.76,1127.92 1230.00,1127.39"/>
- </edge>
- <edge id=":267169964_4" function="internal">
- <lane id=":267169964_4_0" index="0" speed="22.22" length="2.41" shape="1230.00,1127.39 1229.97,1126.47 1230.66,1125.15"/>
- </edge>
- <edge id=":267169964_2" function="internal">
- <lane id=":267169964_2_0" index="0" speed="22.22" length="5.03" shape="1226.47,1123.87 1227.27,1124.99 1228.23,1125.58 1229.36,1125.64 1230.66,1125.15"/>
- </edge>
- <edge id=":267169964_3" function="internal">
- <lane id=":267169964_3_0" index="0" speed="22.22" length="9.52" shape="1226.47,1123.87 1230.87,1132.30"/>
- </edge>
- <edge id=":30406565_0" function="internal">
- <lane id=":30406565_0_0" index="0" speed="22.22" length="1.28" shape="687.04,1858.39 687.05,1857.10"/>
- </edge>
- <edge id=":30406565_1" function="internal">
- <lane id=":30406565_1_0" index="0" speed="22.22" length="2.41" shape="687.04,1858.39 687.71,1857.06 688.47,1856.55"/>
- </edge>
- <edge id=":30406565_4" function="internal">
- <lane id=":30406565_4_0" index="0" speed="22.22" length="2.41" shape="688.47,1856.55 689.34,1856.86 690.31,1857.98"/>
- </edge>
- <edge id=":30406565_2" function="internal">
- <lane id=":30406565_2_0" index="0" speed="22.22" length="0.42" shape="690.32,1857.57 690.31,1857.98"/>
- </edge>
- <edge id=":30406565_3" function="internal">
- <lane id=":30406565_3_0" index="0" speed="22.22" length="2.41" shape="690.32,1857.57 689.33,1858.68 688.45,1858.97"/>
- </edge>
- <edge id=":30406565_5" function="internal">
- <lane id=":30406565_5_0" index="0" speed="22.22" length="2.41" shape="688.45,1858.97 687.69,1858.45 687.05,1857.10"/>
- </edge>
- <edge id=":30406599_0" function="internal">
- <lane id=":30406599_0_0" index="0" speed="25.00" length="11.94" shape="783.15,1282.02 778.65,1284.30 775.52,1285.23 773.76,1284.81 773.36,1283.04"/>
- </edge>
- <edge id=":30406599_1" function="internal">
- <lane id=":30406599_1_0" index="0" speed="27.78" length="20.51" shape="783.15,1282.02 777.92,1285.01 774.25,1287.12 770.59,1289.26 765.40,1292.30"/>
- </edge>
- <edge id=":30406599_2" function="internal">
- <lane id=":30406599_2_0" index="0" speed="27.78" length="20.55" shape="781.51,1279.16 776.28,1282.15 772.60,1284.27 768.92,1286.41 763.73,1289.46"/>
- </edge>
- <edge id=":30406599_3" function="internal">
- <lane id=":30406599_3_0" index="0" speed="25.00" length="13.01" shape="781.51,1279.16 776.37,1281.90 772.75,1283.40 770.65,1283.65 770.08,1282.66"/>
- </edge>
- <edge id=":30406599_4" function="internal">
- <lane id=":30406599_4_0" index="0" speed="27.78" length="2.41" shape="781.51,1279.16 780.03,1279.05 779.26,1278.54"/>
- </edge>
- <edge id=":30406599_18" function="internal">
- <lane id=":30406599_18_0" index="0" speed="27.78" length="2.41" shape="779.26,1278.54 779.21,1277.62 779.88,1276.29"/>
- </edge>
- <edge id=":30406599_5" function="internal">
- <lane id=":30406599_5_0" index="0" speed="25.00" length="5.94" shape="774.01,1277.38 774.34,1276.52 775.16,1275.57 776.46,1274.54 778.24,1273.42"/>
- </edge>
- <edge id=":30406599_6" function="internal">
- <lane id=":30406599_6_0" index="0" speed="22.22" length="5.69" shape="774.01,1277.38 773.36,1283.04"/>
- </edge>
- <edge id=":30406599_7" function="internal">
- <lane id=":30406599_7_0" index="0" speed="25.00" length="2.83" shape="774.01,1277.38 773.22,1280.10"/>
- </edge>
- <edge id=":30406599_19" function="internal">
- <lane id=":30406599_19_0" index="0" speed="25.00" length="13.56" shape="773.22,1280.10 773.08,1280.56 771.07,1283.64 767.95,1286.60 763.73,1289.46"/>
- </edge>
- <edge id=":30406599_8" function="internal">
- <lane id=":30406599_8_0" index="0" speed="22.22" length="4.80" shape="774.01,1277.38 775.00,1280.17 774.68,1281.98"/>
- </edge>
- <edge id=":30406599_20" function="internal">
- <lane id=":30406599_20_0" index="0" speed="22.22" length="4.80" shape="774.68,1281.98 773.04,1282.81 770.08,1282.66"/>
- </edge>
- <edge id=":30406599_9" function="internal">
- <lane id=":30406599_9_0" index="0" speed="25.00" length="11.89" shape="760.38,1283.77 764.84,1281.44 767.94,1280.48 769.68,1280.88 770.08,1282.66"/>
- </edge>
- <edge id=":30406599_10" function="internal">
- <lane id=":30406599_10_0" index="0" speed="27.78" length="20.64" shape="760.38,1283.77 765.59,1280.71 769.29,1278.56 773.00,1276.42 778.24,1273.42"/>
- </edge>
- <edge id=":30406599_11" function="internal">
- <lane id=":30406599_11_0" index="0" speed="27.78" length="20.59" shape="762.06,1286.61 767.26,1283.56 770.94,1281.41 774.64,1279.28 779.88,1276.29"/>
- </edge>
- <edge id=":30406599_12" function="internal">
- <lane id=":30406599_12_0" index="0" speed="25.00" length="12.94" shape="762.06,1286.61 767.14,1283.82 770.72,1282.29 772.79,1282.03 773.36,1283.04"/>
- </edge>
- <edge id=":30406599_13" function="internal">
- <lane id=":30406599_13_0" index="0" speed="27.78" length="2.41" shape="762.06,1286.61 763.54,1286.70 764.32,1287.20"/>
- </edge>
- <edge id=":30406599_21" function="internal">
- <lane id=":30406599_21_0" index="0" speed="27.78" length="2.41" shape="764.32,1287.20 764.38,1288.12 763.73,1289.46"/>
- </edge>
- <edge id=":30406599_14" function="internal">
- <lane id=":30406599_14_0" index="0" speed="25.00" length="6.55" shape="769.52,1287.49 769.15,1288.75 768.34,1289.98 767.09,1291.16 765.40,1292.30"/>
- </edge>
- <edge id=":30406599_15" function="internal">
- <lane id=":30406599_15_0" index="0" speed="22.22" length="4.86" shape="769.52,1287.49 770.08,1282.66"/>
- </edge>
- <edge id=":30406599_16" function="internal">
- <lane id=":30406599_16_0" index="0" speed="25.00" length="1.84" shape="769.52,1287.49 770.07,1285.74"/>
- </edge>
- <edge id=":30406599_22" function="internal">
- <lane id=":30406599_22_0" index="0" speed="25.00" length="13.90" shape="770.07,1285.74 770.41,1284.67 772.44,1281.86 775.59,1279.07 779.88,1276.29"/>
- </edge>
- <edge id=":30406599_17" function="internal">
- <lane id=":30406599_17_0" index="0" speed="22.22" length="4.29" shape="769.52,1287.49 768.81,1284.94 769.21,1283.35"/>
- </edge>
- <edge id=":30406599_23" function="internal">
- <lane id=":30406599_23_0" index="0" speed="22.22" length="4.29" shape="769.21,1283.35 770.73,1282.71 773.36,1283.04"/>
- </edge>
- <edge id=":314636763_0" function="internal">
- <lane id=":314636763_0_0" index="0" speed="6.94" length="3.54" shape="1396.75,2177.58 1396.06,2176.40 1395.43,2175.63 1394.86,2175.26 1394.36,2175.30"/>
- </edge>
- <edge id=":314636763_1" function="internal">
- <lane id=":314636763_1_0" index="0" speed="5.56" length="4.90" shape="1396.75,2177.58 1394.11,2173.45"/>
- </edge>
- <edge id=":314636763_2" function="internal">
- <lane id=":314636763_2_0" index="0" speed="6.94" length="10.31" shape="1396.75,2177.58 1395.81,2174.91 1395.96,2172.59 1397.17,2170.60 1399.47,2168.95"/>
- </edge>
- <edge id=":314636763_3" function="internal">
- <lane id=":314636763_3_0" index="0" speed="5.56" length="4.82" shape="1396.75,2177.58 1396.91,2176.10 1397.45,2175.35 1398.37,2175.34 1399.67,2176.06"/>
- </edge>
- <edge id=":314636763_4" function="internal">
- <lane id=":314636763_4_0" index="0" speed="6.94" length="5.00" shape="1401.00,2171.88 1399.88,2172.68 1399.29,2173.64 1399.22,2174.77 1399.67,2176.06"/>
- </edge>
- <edge id=":314636763_5" function="internal">
- <lane id=":314636763_5_0" index="0" speed="8.33" length="7.47" shape="1401.00,2171.88 1394.36,2175.30"/>
- </edge>
- <edge id=":314636763_6" function="internal">
- <lane id=":314636763_6_0" index="0" speed="6.94" length="7.27" shape="1401.00,2171.88 1398.70,2172.95 1396.78,2173.57 1395.25,2173.74 1394.11,2173.45"/>
- </edge>
- <edge id=":314636763_7" function="internal">
- <lane id=":314636763_7_0" index="0" speed="8.33" length="2.41" shape="1401.00,2171.88 1399.52,2171.72 1398.77,2171.18"/>
- </edge>
- <edge id=":314636763_16" function="internal">
- <lane id=":314636763_16_0" index="0" speed="8.33" length="2.41" shape="1398.77,2171.18 1398.75,2170.26 1399.47,2168.95"/>
- </edge>
- <edge id=":314636763_8" function="internal">
- <lane id=":314636763_8_0" index="0" speed="6.94" length="4.14" shape="1395.67,2170.54 1396.05,2170.52 1396.80,2170.24 1397.95,2169.72 1399.47,2168.95"/>
- </edge>
- <edge id=":314636763_9" function="internal">
- <lane id=":314636763_9_0" index="0" speed="5.56" length="6.81" shape="1395.67,2170.54 1399.67,2176.06"/>
- </edge>
- <edge id=":314636763_10" function="internal">
- <lane id=":314636763_10_0" index="0" speed="6.94" length="6.88" shape="1395.67,2170.54 1397.06,2171.63 1397.30,2172.79 1396.40,2174.01 1394.36,2175.30"/>
- </edge>
- <edge id=":314636763_11" function="internal">
- <lane id=":314636763_11_0" index="0" speed="5.56" length="4.82" shape="1395.67,2170.54 1396.37,2171.86 1396.34,2172.78 1395.59,2173.31 1394.11,2173.45"/>
- </edge>
- <edge id=":314636763_12" function="internal">
- <lane id=":314636763_12_0" index="0" speed="6.94" length="1.80" shape="1392.87,2172.36 1392.79,2172.50 1392.97,2172.73 1393.41,2173.05 1394.11,2173.45"/>
- </edge>
- <edge id=":314636763_13" function="internal">
- <lane id=":314636763_13_0" index="0" speed="8.33" length="7.43" shape="1392.87,2172.36 1399.47,2168.95"/>
- </edge>
- <edge id=":314636763_14" function="internal">
- <lane id=":314636763_14_0" index="0" speed="6.94" length="5.58" shape="1392.87,2172.36 1394.74,2171.85 1396.50,2172.30 1397.89,2173.48"/>
- </edge>
- <edge id=":314636763_17" function="internal">
- <lane id=":314636763_17_0" index="0" speed="6.94" length="3.15" shape="1397.89,2173.48 1398.15,2173.70 1399.67,2176.06"/>
- </edge>
- <edge id=":314636763_15" function="internal">
- <lane id=":314636763_15_0" index="0" speed="8.33" length="2.41" shape="1392.87,2172.36 1394.34,2172.53 1395.09,2173.08"/>
- </edge>
- <edge id=":314636763_18" function="internal">
- <lane id=":314636763_18_0" index="0" speed="8.33" length="2.41" shape="1395.09,2173.08 1395.09,2174.01 1394.36,2175.30"/>
- </edge>
- <edge id=":320879142_0" function="internal">
- <lane id=":320879142_0_0" index="0" speed="22.22" length="8.24" shape="1318.96,2000.93 1317.95,1999.92 1316.36,1999.66 1314.20,2000.12 1311.45,2001.33"/>
- </edge>
- <edge id=":320879142_1" function="internal">
- <lane id=":320879142_1_0" index="0" speed="22.22" length="7.20" shape="1318.96,2000.93 1317.91,1999.42 1316.57,1998.37 1314.95,1997.76 1313.03,1997.59"/>
- </edge>
- <edge id=":320879142_2" function="internal">
- <lane id=":320879142_2_0" index="0" speed="22.22" length="2.41" shape="1318.96,2000.93 1319.12,1999.45 1319.66,1998.70"/>
- </edge>
- <edge id=":320879142_6" function="internal">
- <lane id=":320879142_6_0" index="0" speed="22.22" length="2.41" shape="1319.66,1998.70 1320.58,1998.68 1321.88,1999.40"/>
- </edge>
- <edge id=":320879142_3" function="internal">
- <lane id=":320879142_3_0" index="0" speed="22.22" length="5.01" shape="1323.16,1995.18 1322.06,1995.99 1321.48,1996.97 1321.42,1998.10 1321.88,1999.40"/>
- </edge>
- <edge id=":320879142_4" function="internal">
- <lane id=":320879142_4_0" index="0" speed="22.22" length="13.22" shape="1323.16,1995.18 1320.09,1996.82 1317.32,1998.28 1314.54,1999.73 1311.45,2001.33"/>
- </edge>
- <edge id=":320879142_5" function="internal">
- <lane id=":320879142_5_0" index="0" speed="22.22" length="10.57" shape="1323.16,1995.18 1320.42,1996.54 1318.32,1997.22 1316.10,1997.49 1313.03,1997.59"/>
- </edge>
- <edge id=":356693794_0" function="internal">
- <lane id=":356693794_0_0" index="0" speed="27.78" length="4.82" shape="273.82,1568.09 272.34,1567.97 271.57,1567.45 271.53,1566.53 272.21,1565.21"/>
- </edge>
- <edge id=":410296508_0" function="internal">
- <lane id=":410296508_0_0" index="0" speed="27.78" length="9.66" shape="681.08,1341.52 672.71,1346.33"/>
- </edge>
- <edge id=":410296508_1" function="internal">
- <lane id=":410296508_1_0" index="0" speed="27.78" length="9.62" shape="679.42,1338.67 671.08,1343.46"/>
- </edge>
- <edge id=":410296508_2" function="internal">
- <lane id=":410296508_2_0" index="0" speed="25.00" length="7.21" shape="679.42,1338.67 676.85,1340.05 674.89,1340.82 673.56,1340.98 672.84,1340.53"/>
- </edge>
- <edge id=":410296508_3" function="internal">
- <lane id=":410296508_3_0" index="0" speed="27.78" length="2.41" shape="679.42,1338.67 677.94,1338.58 677.17,1338.07"/>
- </edge>
- <edge id=":410296508_11" function="internal">
- <lane id=":410296508_11_0" index="0" speed="27.78" length="2.41" shape="677.17,1338.07 677.11,1337.15 677.76,1335.82"/>
- </edge>
- <edge id=":410296508_4" function="internal">
- <lane id=":410296508_4_0" index="0" speed="25.00" length="3.15" shape="673.36,1334.54 673.54,1334.45 674.05,1334.15 674.90,1333.66 676.10,1332.97"/>
- </edge>
- <edge id=":410296508_5" function="internal">
- <lane id=":410296508_5_0" index="0" speed="25.00" length="10.45" shape="673.36,1334.54 674.40,1337.29 674.37,1339.69 673.26,1341.75 671.08,1343.46"/>
- </edge>
- <edge id=":410296508_6" function="internal">
- <lane id=":410296508_6_0" index="0" speed="22.22" length="8.79" shape="673.36,1334.54 675.48,1336.23 676.10,1337.79 675.22,1339.23 672.84,1340.53"/>
- </edge>
- <edge id=":410296508_7" function="internal">
- <lane id=":410296508_7_0" index="0" speed="25.00" length="6.47" shape="667.84,1337.71 669.15,1337.32 670.42,1337.66 671.65,1338.73 672.84,1340.53"/>
- </edge>
- <edge id=":410296508_8" function="internal">
- <lane id=":410296508_8_0" index="0" speed="27.78" length="9.52" shape="667.84,1337.71 676.10,1332.97"/>
- </edge>
- <edge id=":410296508_9" function="internal">
- <lane id=":410296508_9_0" index="0" speed="27.78" length="9.57" shape="669.46,1340.58 677.76,1335.82"/>
- </edge>
- <edge id=":410296508_10" function="internal">
- <lane id=":410296508_10_0" index="0" speed="27.78" length="2.41" shape="669.46,1340.58 670.94,1340.69 671.71,1341.21"/>
- </edge>
- <edge id=":410296508_12" function="internal">
- <lane id=":410296508_12_0" index="0" speed="27.78" length="2.41" shape="671.71,1341.21 671.76,1342.13 671.08,1343.46"/>
- </edge>
- <edge id=":427996791_0" function="internal">
- <lane id=":427996791_0_0" index="0" speed="25.00" length="3.34" shape="1075.43,2111.18 1075.36,2111.49 1074.90,2111.92 1074.07,2112.48 1072.85,2113.16"/>
- </edge>
- <edge id=":427996791_1" function="internal">
- <lane id=":427996791_1_0" index="0" speed="22.22" length="1.18" shape="1075.43,2111.18 1074.93,2110.11"/>
- </edge>
- <edge id=":427996791_2" function="internal">
- <lane id=":427996791_2_0" index="0" speed="25.00" length="3.59" shape="1075.43,2111.18 1075.01,2110.04 1074.90,2109.12 1075.12,2108.42 1075.67,2107.95"/>
- </edge>
- <edge id=":427996791_3" function="internal">
- <lane id=":427996791_3_0" index="0" speed="22.22" length="2.41" shape="1075.43,2111.18 1075.65,2109.71 1076.23,2108.98"/>
- </edge>
- <edge id=":427996791_16" function="internal">
- <lane id=":427996791_16_0" index="0" speed="22.22" length="2.41" shape="1076.23,2108.98 1077.15,2109.01 1078.42,2109.78"/>
- </edge>
- <edge id=":427996791_4" function="internal">
- <lane id=":427996791_4_0" index="0" speed="25.00" length="0.57" shape="1078.87,2110.00 1078.74,2110.04 1078.62,2110.02 1078.51,2109.93 1078.42,2109.78"/>
- </edge>
- <edge id=":427996791_5" function="internal">
- <lane id=":427996791_5_0" index="0" speed="27.78" length="6.80" shape="1078.87,2110.00 1072.85,2113.16"/>
- </edge>
- <edge id=":427996791_6" function="internal">
- <lane id=":427996791_6_0" index="0" speed="25.00" length="4.37" shape="1078.87,2110.00 1077.42,2110.63 1076.28,2110.86 1075.45,2110.69 1074.93,2110.11"/>
- </edge>
- <edge id=":427996791_7" function="internal">
- <lane id=":427996791_7_0" index="0" speed="27.78" length="2.78" shape="1078.87,2110.00 1077.30,2110.69 1076.24,2110.58"/>
- </edge>
- <edge id=":427996791_17" function="internal">
- <lane id=":427996791_17_0" index="0" speed="27.78" length="2.78" shape="1076.24,2110.58 1075.70,2109.66 1075.67,2107.95"/>
- </edge>
- <edge id=":427996791_8" function="internal">
- <lane id=":427996791_8_0" index="0" speed="25.00" length="2.04" shape="1076.90,2106.52 1076.93,2106.85 1076.74,2107.19 1076.32,2107.56 1075.67,2107.95"/>
- </edge>
- <edge id=":427996791_9" function="internal">
- <lane id=":427996791_9_0" index="0" speed="22.22" length="3.59" shape="1076.90,2106.52 1078.42,2109.78"/>
- </edge>
- <edge id=":427996791_10" function="internal">
- <lane id=":427996791_10_0" index="0" speed="25.00" length="5.78" shape="1076.90,2106.52 1077.28,2108.29 1076.73,2109.99 1075.26,2111.61"/>
- </edge>
- <edge id=":427996791_18" function="internal">
- <lane id=":427996791_18_0" index="0" speed="25.00" length="2.86" shape="1075.26,2111.61 1072.85,2113.16"/>
- </edge>
- <edge id=":427996791_11" function="internal">
- <lane id=":427996791_11_0" index="0" speed="22.22" length="2.99" shape="1076.90,2106.52 1077.75,2108.16 1077.71,2109.30"/>
- </edge>
- <edge id=":427996791_19" function="internal">
- <lane id=":427996791_19_0" index="0" speed="22.22" length="2.99" shape="1077.71,2109.30 1076.77,2109.95 1074.93,2110.11"/>
- </edge>
- <edge id=":427996791_12" function="internal">
- <lane id=":427996791_12_0" index="0" speed="25.00" length="4.01" shape="1071.32,2110.23 1072.65,2109.64 1073.69,2109.43 1074.46,2109.58 1074.93,2110.11"/>
- </edge>
- <edge id=":427996791_13" function="internal">
- <lane id=":427996791_13_0" index="0" speed="27.78" length="4.92" shape="1071.32,2110.23 1075.67,2107.95"/>
- </edge>
- <edge id=":427996791_14" function="internal">
- <lane id=":427996791_14_0" index="0" speed="25.00" length="7.85" shape="1071.32,2110.23 1073.96,2109.05 1076.03,2108.58 1077.51,2108.82 1078.42,2109.78"/>
- </edge>
- <edge id=":427996791_15" function="internal">
- <lane id=":427996791_15_0" index="0" speed="27.78" length="2.41" shape="1071.32,2110.23 1072.79,2110.39 1073.54,2110.93"/>
- </edge>
- <edge id=":427996791_20" function="internal">
- <lane id=":427996791_20_0" index="0" speed="27.78" length="2.41" shape="1073.54,2110.93 1073.56,2111.85 1072.85,2113.16"/>
- </edge>
- <edge id=":427996792_0" function="internal">
- <lane id=":427996792_0_0" index="0" speed="25.00" length="2.53" shape="1068.32,2095.93 1067.26,2093.63"/>
- </edge>
- <edge id=":427996792_1" function="internal">
- <lane id=":427996792_1_0" index="0" speed="22.22" length="0.70" shape="1068.32,2095.93 1068.31,2095.22"/>
- </edge>
- <edge id=":427996792_25" function="internal">
- <lane id=":427996792_25_0" index="0" speed="22.22" length="8.16" shape="1068.31,2095.22 1068.31,2094.73 1069.28,2093.34 1071.25,2091.77 1074.22,2090.02"/>
- </edge>
- <edge id=":427996792_2" function="internal">
- <lane id=":427996792_2_0" index="0" speed="25.00" length="1.07" shape="1068.32,2095.93 1068.09,2094.88"/>
- </edge>
- <edge id=":427996792_26" function="internal">
- <lane id=":427996792_26_0" index="0" speed="25.00" length="7.43" shape="1068.09,2094.88 1067.92,2094.16 1068.75,2093.24 1070.82,2093.17 1074.12,2093.95"/>
- </edge>
- <edge id=":427996792_3" function="internal">
- <lane id=":427996792_3_0" index="0" speed="25.00" length="1.92" shape="1068.32,2095.93 1067.57,2094.16"/>
- </edge>
- <edge id=":427996792_27" function="internal">
- <lane id=":427996792_27_0" index="0" speed="25.00" length="19.21" shape="1067.57,2094.16 1065.26,2088.81 1064.79,2086.18 1066.91,2088.04 1071.61,2094.38"/>
- </edge>
- <edge id=":427996792_4" function="internal">
- <lane id=":427996792_4_0" index="0" speed="22.22" length="2.41" shape="1068.32,2095.93 1068.55,2094.46 1069.12,2093.74"/>
- </edge>
- <edge id=":427996792_28" function="internal">
- <lane id=":427996792_28_0" index="0" speed="22.22" length="2.41" shape="1069.12,2093.74 1070.05,2093.76 1071.32,2094.53"/>
- </edge>
- <edge id=":427996792_5" function="internal">
- <lane id=":427996792_5_0" index="0" speed="27.78" length="3.11" shape="1068.98,2096.22 1067.26,2093.63"/>
- </edge>
- <edge id=":427996792_6" function="internal">
- <lane id=":427996792_6_0" index="0" speed="25.00" length="0.99" shape="1068.98,2096.22 1068.76,2095.26"/>
- </edge>
- <edge id=":427996792_29" function="internal">
- <lane id=":427996792_29_0" index="0" speed="25.00" length="7.92" shape="1068.76,2095.26 1068.67,2094.90 1069.44,2093.42 1071.29,2091.79 1074.22,2090.02"/>
- </edge>
- <edge id=":427996792_7" function="internal">
- <lane id=":427996792_7_0" index="0" speed="27.78" length="1.39" shape="1068.98,2096.22 1068.40,2094.96"/>
- </edge>
- <edge id=":427996792_30" function="internal">
- <lane id=":427996792_30_0" index="0" speed="27.78" length="7.54" shape="1068.40,2094.96 1068.07,2094.26 1068.63,2093.23 1070.64,2093.12 1074.12,2093.95"/>
- </edge>
- <edge id=":427996792_8" function="internal">
- <lane id=":427996792_8_0" index="0" speed="25.00" length="2.88" shape="1068.98,2096.22 1071.32,2094.53"/>
- </edge>
- <edge id=":427996792_9" function="internal">
- <lane id=":427996792_9_0" index="0" speed="27.78" length="2.35" shape="1068.98,2096.22 1068.95,2094.77 1069.37,2093.98"/>
- </edge>
- <edge id=":427996792_31" function="internal">
- <lane id=":427996792_31_0" index="0" speed="27.78" length="2.35" shape="1069.37,2093.98 1070.26,2093.85 1071.61,2094.38"/>
- </edge>
- <edge id=":427996792_10" function="internal">
- <lane id=":427996792_10_0" index="0" speed="27.78" length="3.26" shape="1072.13,2096.79 1072.66,2096.81 1072.74,2096.41 1072.40,2095.60 1071.61,2094.38"/>
- </edge>
- <edge id=":427996792_11" function="internal">
- <lane id=":427996792_11_0" index="0" speed="25.00" length="2.40" shape="1072.13,2096.79 1071.32,2094.53"/>
- </edge>
- <edge id=":427996792_12" function="internal">
- <lane id=":427996792_12_0" index="0" speed="27.78" length="5.96" shape="1072.13,2096.79 1070.34,2096.14 1068.93,2095.40 1067.90,2094.56 1067.26,2093.63"/>
- </edge>
- <edge id=":427996792_13" function="internal">
- <lane id=":427996792_13_0" index="0" speed="25.00" length="4.76" shape="1072.13,2096.79 1069.73,2095.60 1069.28,2094.07 1069.58,2093.69"/>
- </edge>
- <edge id=":427996792_32" function="internal">
- <lane id=":427996792_32_0" index="0" speed="25.00" length="5.98" shape="1069.58,2093.69 1070.78,2092.21 1074.22,2090.02"/>
- </edge>
- <edge id=":427996792_14" function="internal">
- <lane id=":427996792_14_0" index="0" speed="27.78" length="2.53" shape="1072.13,2096.79 1071.56,2095.33 1071.71,2094.38"/>
- </edge>
- <edge id=":427996792_33" function="internal">
- <lane id=":427996792_33_0" index="0" speed="27.78" length="2.53" shape="1071.71,2094.38 1072.56,2093.92 1074.12,2093.95"/>
- </edge>
- <edge id=":427996792_15" function="internal">
- <lane id=":427996792_15_0" index="0" speed="25.00" length="4.55" shape="1070.25,2092.24 1070.48,2092.07 1071.22,2091.64 1072.47,2090.96 1074.22,2090.02"/>
- </edge>
- <edge id=":427996792_16" function="internal">
- <lane id=":427996792_16_0" index="0" speed="27.78" length="4.27" shape="1070.25,2092.24 1070.60,2092.57 1071.36,2092.97 1072.53,2093.43 1074.12,2093.95"/>
- </edge>
- <edge id=":427996792_17" function="internal">
- <lane id=":427996792_17_0" index="0" speed="27.78" length="2.54" shape="1070.25,2092.24 1071.61,2094.38"/>
- </edge>
- <edge id=":427996792_18" function="internal">
- <lane id=":427996792_18_0" index="0" speed="25.00" length="2.53" shape="1070.25,2092.24 1071.32,2094.53"/>
- </edge>
- <edge id=":427996792_19" function="internal">
- <lane id=":427996792_19_0" index="0" speed="27.78" length="2.41" shape="1070.25,2092.24 1070.02,2093.71 1069.45,2094.43"/>
- </edge>
- <edge id=":427996792_34" function="internal">
- <lane id=":427996792_34_0" index="0" speed="27.78" length="2.41" shape="1069.45,2094.43 1068.53,2094.41 1067.26,2093.63"/>
- </edge>
- <edge id=":427996792_20" function="internal">
- <lane id=":427996792_20_0" index="0" speed="25.00" length="3.52" shape="1064.60,2095.89 1065.81,2095.01 1066.65,2094.33 1067.14,2093.88 1067.26,2093.63"/>
- </edge>
- <edge id=":427996792_21" function="internal">
- <lane id=":427996792_21_0" index="0" speed="22.22" length="11.29" shape="1064.60,2095.89 1067.20,2094.08 1069.28,2092.75 1071.43,2091.52 1074.22,2090.02"/>
- </edge>
- <edge id=":427996792_22" function="internal">
- <lane id=":427996792_22_0" index="0" speed="25.00" length="3.38" shape="1064.60,2095.89 1066.98,2094.50 1067.57,2094.30"/>
- </edge>
- <edge id=":427996792_35" function="internal">
- <lane id=":427996792_35_0" index="0" speed="25.00" length="6.69" shape="1067.57,2094.30 1069.37,2093.71 1071.74,2093.53 1074.12,2093.95"/>
- </edge>
- <edge id=":427996792_23" function="internal">
- <lane id=":427996792_23_0" index="0" speed="25.00" length="3.39" shape="1064.60,2095.89 1067.06,2094.36 1067.51,2094.18"/>
- </edge>
- <edge id=":427996792_36" function="internal">
- <lane id=":427996792_36_0" index="0" speed="25.00" length="4.47" shape="1067.51,2094.18 1069.05,2093.60 1070.57,2093.60 1071.61,2094.38"/>
- </edge>
- <edge id=":427996792_24" function="internal">
- <lane id=":427996792_24_0" index="0" speed="22.22" length="3.39" shape="1064.60,2095.89 1067.09,2094.33 1067.51,2094.17"/>
- </edge>
- <edge id=":427996792_37" function="internal">
- <lane id=":427996792_37_0" index="0" speed="22.22" length="4.29" shape="1067.51,2094.17 1069.04,2093.59 1070.45,2093.66 1071.32,2094.53"/>
- </edge>
- <edge id=":428097664_0" function="internal">
- <lane id=":428097664_0_0" index="0" speed="22.22" length="6.16" shape="1355.22,1978.02 1349.76,1980.88"/>
- </edge>
- <edge id=":428097664_1" function="internal">
- <lane id=":428097664_1_0" index="0" speed="22.22" length="3.09" shape="1352.49,1979.41 1352.32,1979.50 1351.81,1979.78 1350.96,1980.24 1349.76,1980.88"/>
- </edge>
- <edge id=":428303370_0" function="internal">
- <lane id=":428303370_0_0" index="0" speed="22.22" length="19.07" shape="740.24,2247.28 739.82,2242.92 739.27,2237.80 738.68,2232.68 738.11,2228.33"/>
- </edge>
- <edge id=":428303370_1" function="internal">
- <lane id=":428303370_1_0" index="0" speed="22.22" length="7.76" shape="740.24,2247.28 740.32,2243.20 741.50,2241.52 743.04,2242.01"/>
- </edge>
- <edge id=":428303370_9" function="internal">
- <lane id=":428303370_9_0" index="0" speed="22.22" length="5.40" shape="743.04,2242.01 743.78,2242.24 747.18,2245.37"/>
- </edge>
- <edge id=":428303370_2" function="internal">
- <lane id=":428303370_2_0" index="0" speed="22.22" length="2.41" shape="740.24,2247.28 740.95,2245.97 741.74,2245.49"/>
- </edge>
- <edge id=":428303370_10" function="internal">
- <lane id=":428303370_10_0" index="0" speed="22.22" length="2.41" shape="741.74,2245.49 742.60,2245.82 743.53,2246.98"/>
- </edge>
- <edge id=":428303370_3" function="internal">
- <lane id=":428303370_3_0" index="0" speed="22.22" length="17.65" shape="741.38,2227.87 742.14,2231.44 743.57,2234.96 745.96,2238.75 749.62,2243.15"/>
- </edge>
- <edge id=":428303370_4" function="internal">
- <lane id=":428303370_4_0" index="0" speed="22.22" length="19.23" shape="741.38,2227.87 741.95,2232.24 742.55,2237.41 743.10,2242.59 743.53,2246.98"/>
- </edge>
- <edge id=":428303370_5" function="internal">
- <lane id=":428303370_5_0" index="0" speed="22.22" length="2.41" shape="741.38,2227.87 740.74,2229.21 739.98,2229.74"/>
- </edge>
- <edge id=":428303370_11" function="internal">
- <lane id=":428303370_11_0" index="0" speed="22.22" length="2.41" shape="739.98,2229.74 739.10,2229.44 738.11,2228.33"/>
- </edge>
- <edge id=":428303370_6" function="internal">
- <lane id=":428303370_6_0" index="0" speed="22.22" length="6.13" shape="734.65,2230.73 736.42,2231.42 737.58,2231.26 738.14,2230.23 738.11,2228.33"/>
- </edge>
- <edge id=":428303370_7" function="internal">
- <lane id=":428303370_7_0" index="0" speed="22.22" length="18.52" shape="733.07,2233.62 737.80,2236.36 740.83,2238.61 743.50,2241.29 747.18,2245.37"/>
- </edge>
- <edge id=":428303370_8" function="internal">
- <lane id=":428303370_8_0" index="0" speed="22.22" length="17.66" shape="733.07,2233.62 737.37,2236.45 740.55,2239.62 742.60,2243.13 743.53,2246.98"/>
- </edge>
- <edge id=":429179805_0" function="internal">
- <lane id=":429179805_0_0" index="0" speed="22.22" length="7.64" shape="758.37,1506.10 757.00,1503.94 755.90,1503.33 755.06,1504.27 754.48,1506.76"/>
- </edge>
- <edge id=":429179805_1" function="internal">
- <lane id=":429179805_1_0" index="0" speed="22.22" length="9.60" shape="758.37,1506.10 753.80,1497.66"/>
- </edge>
- <edge id=":429179805_2" function="internal">
- <lane id=":429179805_2_0" index="0" speed="22.22" length="2.41" shape="758.37,1506.10 758.54,1504.62 759.09,1503.88"/>
- </edge>
- <edge id=":429179805_6" function="internal">
- <lane id=":429179805_6_0" index="0" speed="22.22" length="2.41" shape="759.09,1503.88 760.01,1503.87 761.31,1504.59"/>
- </edge>
- <edge id=":429179805_3" function="internal">
- <lane id=":429179805_3_0" index="0" speed="22.22" length="10.49" shape="756.27,1495.47 758.14,1497.84 759.18,1499.76 760.03,1501.82 761.31,1504.59"/>
- </edge>
- <edge id=":429179805_4" function="internal">
- <lane id=":429179805_4_0" index="0" speed="22.22" length="5.15" shape="756.27,1495.47 756.08,1496.08 755.71,1498.17 755.36,1500.53"/>
- </edge>
- <edge id=":429179805_7" function="internal">
- <lane id=":429179805_7_0" index="0" speed="22.22" length="6.29" shape="755.36,1500.53 755.18,1501.73 754.48,1506.76"/>
- </edge>
- <edge id=":429179805_5" function="internal">
- <lane id=":429179805_5_0" index="0" speed="22.22" length="2.41" shape="756.27,1495.47 756.48,1496.94 756.13,1497.79"/>
- </edge>
- <edge id=":429179805_8" function="internal">
- <lane id=":429179805_8_0" index="0" speed="22.22" length="2.41" shape="756.13,1497.79 755.24,1498.03 753.80,1497.66"/>
- </edge>
- <edge id=":432548414_0" function="internal">
- <lane id=":432548414_0_0" index="0" speed="13.89" length="4.82" shape="1482.63,768.89 1484.12,768.95 1484.90,769.44 1484.97,770.36 1484.34,771.71"/>
- </edge>
- <edge id=":435668511_0" function="internal">
- <lane id=":435668511_0_0" index="0" speed="22.22" length="8.69" shape="742.93,2275.91 742.07,2267.26"/>
- </edge>
- <edge id=":435668511_1" function="internal">
- <lane id=":435668511_1_0" index="0" speed="22.22" length="2.15" shape="742.93,2275.91 743.02,2275.78 743.28,2275.47 743.74,2274.98 744.37,2274.32"/>
- </edge>
- <edge id=":435668511_2" function="internal">
- <lane id=":435668511_2_0" index="0" speed="25.00" length="4.96" shape="742.93,2275.91 746.67,2279.16"/>
- </edge>
- <edge id=":435668511_3" function="internal">
- <lane id=":435668511_3_0" index="0" speed="22.22" length="5.22" shape="742.93,2275.91 743.02,2274.31 743.56,2273.47 744.56,2273.40 746.01,2274.10"/>
- </edge>
- <edge id=":435668511_4" function="internal">
- <lane id=":435668511_4_0" index="0" speed="22.22" length="4.02" shape="745.69,2270.65 745.68,2271.67 745.46,2272.62 745.02,2273.51 744.37,2274.32"/>
- </edge>
- <edge id=":435668511_5" function="internal">
- <lane id=":435668511_5_0" index="0" speed="25.00" length="2.92" shape="745.69,2270.65 745.78,2270.06 746.17,2269.61 746.85,2269.33 747.83,2269.19"/>
- </edge>
- <edge id=":435668511_6" function="internal">
- <lane id=":435668511_6_0" index="0" speed="22.22" length="3.46" shape="745.69,2270.65 746.01,2274.10"/>
- </edge>
- <edge id=":435668511_7" function="internal">
- <lane id=":435668511_7_0" index="0" speed="22.22" length="7.25" shape="745.69,2270.65 743.52,2271.16 742.19,2270.77 741.71,2269.47 742.07,2267.26"/>
- </edge>
- <edge id=":435668511_8" function="internal">
- <lane id=":435668511_8_0" index="0" speed="25.00" length="4.55" shape="740.04,2271.02 741.02,2270.33 741.68,2269.48 742.03,2268.45 742.07,2267.26"/>
- </edge>
- <edge id=":435668511_9" function="internal">
- <lane id=":435668511_9_0" index="0" speed="25.00" length="2.80" shape="741.60,2273.93 744.37,2274.32"/>
- </edge>
- <edge id=":435668511_10" function="internal">
- <lane id=":435668511_10_0" index="0" speed="27.78" length="5.00" shape="743.15,2276.84 745.79,2272.60"/>
- </edge>
- <edge id=":435668511_11" function="internal">
- <lane id=":435668511_11_0" index="0" speed="27.78" length="4.93" shape="744.71,2279.75 747.67,2275.81"/>
- </edge>
- <edge id=":435668511_12" function="internal">
- <lane id=":435668511_12_0" index="0" speed="27.78" length="2.05" shape="744.71,2279.75 746.67,2279.16"/>
- </edge>
- <edge id=":435668511_13" function="internal">
- <lane id=":435668511_13_0" index="0" speed="25.00" length="5.80" shape="744.71,2279.75 746.01,2274.10"/>
- </edge>
- <edge id=":435668513_0" function="internal">
- <lane id=":435668513_0_0" index="0" speed="18.06" length="5.01" shape="1407.93,1910.74 1408.72,1911.86 1409.68,1912.45 1410.81,1912.52 1412.11,1912.06"/>
- </edge>
- <edge id=":435668513_1" function="internal">
- <lane id=":435668513_1_0" index="0" speed="18.06" length="5.01" shape="1407.93,1910.74 1410.23,1915.19"/>
- </edge>
- <edge id=":435668513_2" function="internal">
- <lane id=":435668513_2_0" index="0" speed="22.22" length="6.22" shape="1406.61,1914.97 1412.11,1912.06"/>
- </edge>
- <edge id=":435668513_3" function="internal">
- <lane id=":435668513_3_0" index="0" speed="22.22" length="4.08" shape="1406.61,1914.97 1407.86,1914.43 1408.89,1914.29 1409.68,1914.54 1410.23,1915.19"/>
- </edge>
- <edge id=":435668516_0" function="internal">
- <lane id=":435668516_0_0" index="0" speed="22.22" length="7.06" shape="1335.08,1947.79 1336.38,1949.85 1337.70,1951.08 1339.04,1951.48 1340.40,1951.05"/>
- </edge>
- <edge id=":435668516_1" function="internal">
- <lane id=":435668516_1_0" index="0" speed="22.22" length="6.21" shape="1335.08,1947.79 1337.99,1953.28"/>
- </edge>
- <edge id=":435668516_2" function="internal">
- <lane id=":435668516_2_0" index="0" speed="22.22" length="8.24" shape="1332.41,1950.87 1334.88,1951.58 1337.03,1951.85 1338.87,1951.67 1340.40,1951.05"/>
- </edge>
- <edge id=":435668516_3" function="internal">
- <lane id=":435668516_3_0" index="0" speed="22.22" length="6.08" shape="1332.41,1950.87 1337.99,1953.28"/>
- </edge>
- <edge id=":435668521_0" function="internal">
- <lane id=":435668521_0_0" index="0" speed="18.06" length="5.02" shape="1479.04,1876.99 1480.15,1876.19 1480.74,1875.22 1480.80,1874.09 1480.34,1872.78"/>
- </edge>
- <edge id=":435668521_1" function="internal">
- <lane id=":435668521_1_0" index="0" speed="22.22" length="6.22" shape="1479.04,1876.99 1484.53,1874.08"/>
- </edge>
- <edge id=":435668534_0" function="internal">
- <lane id=":435668534_0_0" index="0" speed="25.00" length="3.33" shape="1298.74,1993.74 1298.42,1993.55 1297.80,1993.62 1296.88,1993.95 1295.67,1994.55"/>
- </edge>
- <edge id=":435668534_1" function="internal">
- <lane id=":435668534_1_0" index="0" speed="22.22" length="2.38" shape="1298.74,1993.74 1297.62,1991.64"/>
- </edge>
- <edge id=":435668534_2" function="internal">
- <lane id=":435668534_2_0" index="0" speed="25.00" length="5.90" shape="1298.74,1993.74 1298.09,1992.09 1298.03,1990.68 1298.57,1989.53 1299.70,1988.62"/>
- </edge>
- <edge id=":435668534_3" function="internal">
- <lane id=":435668534_3_0" index="0" speed="27.78" length="6.38" shape="1301.28,1991.52 1295.67,1994.55"/>
- </edge>
- <edge id=":435668534_4" function="internal">
- <lane id=":435668534_4_0" index="0" speed="25.00" length="4.09" shape="1301.28,1991.52 1299.95,1992.13 1298.89,1992.36 1298.11,1992.19 1297.62,1991.64"/>
- </edge>
- <edge id=":435668534_5" function="internal">
- <lane id=":435668534_5_0" index="0" speed="27.78" length="2.41" shape="1301.28,1991.52 1299.80,1991.39 1299.04,1990.86"/>
- </edge>
- <edge id=":435668534_9" function="internal">
- <lane id=":435668534_9_0" index="0" speed="27.78" length="2.41" shape="1299.04,1990.86 1299.01,1989.94 1299.70,1988.62"/>
- </edge>
- <edge id=":435668534_6" function="internal">
- <lane id=":435668534_6_0" index="0" speed="25.00" length="3.91" shape="1294.12,1991.64 1295.38,1991.08 1296.39,1990.90 1297.13,1991.08 1297.62,1991.64"/>
- </edge>
- <edge id=":435668534_7" function="internal">
- <lane id=":435668534_7_0" index="0" speed="27.78" length="6.35" shape="1294.12,1991.64 1299.70,1988.62"/>
- </edge>
- <edge id=":435668534_8" function="internal">
- <lane id=":435668534_8_0" index="0" speed="27.78" length="2.41" shape="1294.12,1991.64 1295.60,1991.78 1296.35,1992.32"/>
- </edge>
- <edge id=":435668534_10" function="internal">
- <lane id=":435668534_10_0" index="0" speed="27.78" length="2.41" shape="1296.35,1992.32 1296.37,1993.24 1295.67,1994.55"/>
- </edge>
- <edge id=":435668539_0" function="internal">
- <lane id=":435668539_0_0" index="0" speed="25.00" length="5.43" shape="767.16,2273.98 765.12,2274.94 763.64,2275.37 762.73,2275.26 762.39,2274.63"/>
- </edge>
- <edge id=":435668539_1" function="internal">
- <lane id=":435668539_1_0" index="0" speed="27.78" length="12.93" shape="767.16,2273.98 764.74,2275.94 763.35,2278.29 761.90,2281.00 759.28,2284.04"/>
- </edge>
- <edge id=":435668539_2" function="internal">
- <lane id=":435668539_2_0" index="0" speed="27.78" length="2.41" shape="767.16,2273.98 765.68,2273.83 764.94,2273.29"/>
- </edge>
- <edge id=":435668539_11" function="internal">
- <lane id=":435668539_11_0" index="0" speed="27.78" length="2.41" shape="764.94,2273.29 764.92,2272.37 765.63,2271.06"/>
- </edge>
- <edge id=":435668539_3" function="internal">
- <lane id=":435668539_3_0" index="0" speed="25.00" length="5.54" shape="761.81,2269.02 762.20,2270.59 762.96,2271.45 764.11,2271.61 765.63,2271.06"/>
- </edge>
- <edge id=":435668539_4" function="internal">
- <lane id=":435668539_4_0" index="0" speed="22.22" length="5.65" shape="761.81,2269.02 762.39,2274.63"/>
- </edge>
- <edge id=":435668539_5" function="internal">
- <lane id=":435668539_5_0" index="0" speed="25.00" length="13.95" shape="761.81,2269.02 761.81,2272.67 761.02,2275.98 759.45,2278.95 757.08,2281.58"/>
- </edge>
- <edge id=":435668539_6" function="internal">
- <lane id=":435668539_6_0" index="0" speed="25.00" length="12.56" shape="761.81,2269.02 761.52,2270.99 760.26,2273.34 758.05,2276.04 754.89,2279.12"/>
- </edge>
- <edge id=":435668539_7" function="internal">
- <lane id=":435668539_7_0" index="0" speed="27.78" length="4.69" shape="761.17,2269.60 765.63,2271.06"/>
- </edge>
- <edge id=":435668539_8" function="internal">
- <lane id=":435668539_8_0" index="0" speed="25.00" length="2.47" shape="760.98,2272.90 761.55,2273.03 761.98,2273.37 762.25,2273.90 762.39,2274.63"/>
- </edge>
- <edge id=":435668539_9" function="internal">
- <lane id=":435668539_9_0" index="0" speed="27.78" length="6.74" shape="760.79,2276.19 759.50,2276.32 758.08,2276.85 756.54,2277.78 754.89,2279.12"/>
- </edge>
- <edge id=":435668539_10" function="internal">
- <lane id=":435668539_10_0" index="0" speed="27.78" length="5.50" shape="757.72,2279.32 755.14,2274.46"/>
- </edge>
- <edge id=":438042367_0" function="internal">
- <lane id=":438042367_0_0" index="0" speed="27.78" length="4.66" shape="912.26,1208.61 911.95,1208.66 911.16,1209.02 909.88,1209.70 908.11,1210.69"/>
- </edge>
- <edge id=":438042367_1" function="internal">
- <lane id=":438042367_1_0" index="0" speed="27.78" length="13.50" shape="912.26,1208.61 910.39,1205.08 909.45,1202.49 908.52,1199.89 906.64,1196.37"/>
- </edge>
- <edge id=":438042367_2" function="internal">
- <lane id=":438042367_2_0" index="0" speed="27.78" length="13.50" shape="915.07,1206.88 913.20,1203.35 912.26,1200.75 911.32,1198.16 909.45,1194.63"/>
- </edge>
- <edge id=":438042367_3" function="internal">
- <lane id=":438042367_3_0" index="0" speed="27.78" length="0.92" shape="915.07,1206.88 914.66,1206.05"/>
- </edge>
- <edge id=":438042367_11" function="internal">
- <lane id=":438042367_11_0" index="0" speed="27.78" length="8.19" shape="914.66,1206.05 913.77,1204.23 913.41,1202.01 913.99,1200.22 915.51,1198.87"/>
- </edge>
- <edge id=":438042367_4" function="internal">
- <lane id=":438042367_4_0" index="0" speed="27.78" length="12.86" shape="918.78,1204.61 915.30,1205.99 912.63,1206.22 909.95,1206.44 906.47,1207.83"/>
- </edge>
- <edge id=":438042367_5" function="internal">
- <lane id=":438042367_5_0" index="0" speed="27.78" length="7.27" shape="917.14,1201.74 915.75,1201.82 914.00,1200.66 911.90,1198.27 911.57,1197.78"/>
- </edge>
- <edge id=":438042367_12" function="internal">
- <lane id=":438042367_12_0" index="0" speed="27.78" length="3.79" shape="911.57,1197.78 909.45,1194.63"/>
- </edge>
- <edge id=":438042367_6" function="internal">
- <lane id=":438042367_6_0" index="0" speed="27.78" length="2.41" shape="917.14,1201.74 915.66,1201.64 914.89,1201.12"/>
- </edge>
- <edge id=":438042367_13" function="internal">
- <lane id=":438042367_13_0" index="0" speed="27.78" length="2.41" shape="914.89,1201.12 914.84,1200.20 915.51,1198.87"/>
- </edge>
- <edge id=":438042367_7" function="internal">
- <lane id=":438042367_7_0" index="0" speed="27.78" length="4.63" shape="903.20,1202.09 904.10,1201.35 904.51,1200.44 904.42,1199.36 903.83,1198.10"/>
- </edge>
- <edge id=":438042367_8" function="internal">
- <lane id=":438042367_8_0" index="0" speed="27.78" length="10.09" shape="904.84,1204.96 906.92,1203.30 907.92,1201.31 907.82,1199.00 906.64,1196.37"/>
- </edge>
- <edge id=":438042367_9" function="internal">
- <lane id=":438042367_9_0" index="0" speed="27.78" length="12.86" shape="904.84,1204.96 907.80,1202.67 909.36,1200.48 910.91,1198.29 913.87,1196.01"/>
- </edge>
- <edge id=":438042367_10" function="internal">
- <lane id=":438042367_10_0" index="0" speed="27.78" length="2.41" shape="904.84,1204.96 906.32,1205.06 907.09,1205.58"/>
- </edge>
- <edge id=":438042367_14" function="internal">
- <lane id=":438042367_14_0" index="0" speed="27.78" length="2.41" shape="907.09,1205.58 907.14,1206.50 906.47,1207.83"/>
- </edge>
- <edge id=":438042369_0" function="internal">
- <lane id=":438042369_0_0" index="0" speed="27.78" length="8.33" shape="931.33,1197.45 929.02,1198.42 927.08,1198.49 925.52,1197.65 924.32,1195.91"/>
- </edge>
- <edge id=":438042369_1" function="internal">
- <lane id=":438042369_1_0" index="0" speed="27.78" length="9.17" shape="929.70,1194.59 926.32,1196.38 923.79,1197.43 922.13,1197.74 921.32,1197.29"/>
- </edge>
- <edge id=":438042369_2" function="internal">
- <lane id=":438042369_2_0" index="0" speed="27.78" length="13.38" shape="929.70,1194.59 926.59,1196.95 924.94,1199.19 923.29,1201.44 920.18,1203.80"/>
- </edge>
- <edge id=":438042369_3" function="internal">
- <lane id=":438042369_3_0" index="0" speed="27.78" length="2.41" shape="929.70,1194.59 928.21,1194.48 927.44,1193.97"/>
- </edge>
- <edge id=":438042369_11" function="internal">
- <lane id=":438042369_11_0" index="0" speed="27.78" length="2.41" shape="927.44,1193.97 927.40,1193.05 928.06,1191.72"/>
- </edge>
- <edge id=":438042369_4" function="internal">
- <lane id=":438042369_4_0" index="0" speed="27.78" length="5.10" shape="922.25,1187.51 923.02,1188.70 923.98,1189.32 925.11,1189.37 926.43,1188.85"/>
- </edge>
- <edge id=":438042369_5" function="internal">
- <lane id=":438042369_5_0" index="0" speed="27.78" length="8.65" shape="922.25,1187.51 924.32,1195.91"/>
- </edge>
- <edge id=":438042369_6" function="internal">
- <lane id=":438042369_6_0" index="0" speed="27.78" length="8.65" shape="919.26,1188.90 921.32,1197.29"/>
- </edge>
- <edge id=":438042369_7" function="internal">
- <lane id=":438042369_7_0" index="0" speed="27.78" length="4.19" shape="916.26,1190.28 917.90,1194.14"/>
- </edge>
- <edge id=":438042369_12" function="internal">
- <lane id=":438042369_12_0" index="0" speed="27.78" length="7.15" shape="917.90,1194.14 918.05,1194.50 919.02,1197.68 919.19,1199.82 918.55,1200.94"/>
- </edge>
- <edge id=":438042369_8" function="internal">
- <lane id=":438042369_8_0" index="0" speed="27.78" length="13.38" shape="915.28,1195.20 918.89,1193.74 921.67,1193.46 924.45,1193.18 928.06,1191.72"/>
- </edge>
- <edge id=":438042369_9" function="internal">
- <lane id=":438042369_9_0" index="0" speed="27.78" length="4.86" shape="916.91,1198.07 918.60,1197.22 919.90,1196.80 920.81,1196.83 921.32,1197.29"/>
- </edge>
- <edge id=":438042369_10" function="internal">
- <lane id=":438042369_10_0" index="0" speed="27.78" length="2.41" shape="916.91,1198.07 918.40,1198.17 919.16,1198.69"/>
- </edge>
- <edge id=":438042369_13" function="internal">
- <lane id=":438042369_13_0" index="0" speed="27.78" length="2.41" shape="919.16,1198.69 919.22,1199.61 918.55,1200.94"/>
- </edge>
- <edge id=":438042372_0" function="internal">
- <lane id=":438042372_0_0" index="0" speed="18.06" length="6.04" shape="1289.95,1675.29 1288.91,1676.66 1288.38,1678.04 1288.35,1679.42 1288.81,1680.80"/>
- </edge>
- <edge id=":438042372_1" function="internal">
- <lane id=":438042372_1_0" index="0" speed="22.22" length="6.79" shape="1289.95,1675.29 1284.63,1679.49"/>
- </edge>
- <edge id=":438042372_2" function="internal">
- <lane id=":438042372_2_0" index="0" speed="13.89" length="6.88" shape="1285.65,1674.69 1288.81,1680.80"/>
- </edge>
- <edge id=":438042372_3" function="internal">
- <lane id=":438042372_3_0" index="0" speed="18.06" length="5.57" shape="1285.65,1674.69 1286.23,1676.25 1286.26,1677.56 1285.72,1678.65 1284.63,1679.49"/>
- </edge>
- <edge id=":438042373_0" function="internal">
- <lane id=":438042373_0_0" index="0" speed="22.22" length="4.71" shape="1245.44,1700.30 1241.94,1703.46"/>
- </edge>
- <edge id=":438042373_1" function="internal">
- <lane id=":438042373_1_0" index="0" speed="22.22" length="4.68" shape="1241.31,1698.82 1241.94,1703.46"/>
- </edge>
- <edge id=":438042374_0" function="internal">
- <lane id=":438042374_0_0" index="0" speed="22.22" length="7.38" shape="1232.54,1728.41 1231.48,1735.71"/>
- </edge>
- <edge id=":438042374_1" function="internal">
- <lane id=":438042374_1_0" index="0" speed="22.22" length="7.29" shape="1232.54,1728.41 1227.80,1733.94"/>
- </edge>
- <edge id=":438042376_0" function="internal">
- <lane id=":438042376_0_0" index="0" speed="18.06" length="6.28" shape="1278.91,1661.69 1279.78,1662.88 1280.96,1663.69 1282.46,1664.12 1284.28,1664.19"/>
- </edge>
- <edge id=":438042376_1" function="internal">
- <lane id=":438042376_1_0" index="0" speed="13.89" length="7.04" shape="1278.91,1661.69 1282.15,1667.95"/>
- </edge>
- <edge id=":438042376_2" function="internal">
- <lane id=":438042376_2_0" index="0" speed="22.22" length="6.91" shape="1277.58,1665.88 1284.28,1664.19"/>
- </edge>
- <edge id=":438042376_3" function="internal">
- <lane id=":438042376_3_0" index="0" speed="18.06" length="5.70" shape="1277.58,1665.88 1278.90,1665.47 1280.10,1665.68 1281.18,1666.50 1282.15,1667.95"/>
- </edge>
- <edge id=":438042377_0" function="internal">
- <lane id=":438042377_0_0" index="0" speed="22.22" length="4.76" shape="1233.12,1688.03 1237.70,1686.74"/>
- </edge>
- <edge id=":438042377_1" function="internal">
- <lane id=":438042377_1_0" index="0" speed="22.22" length="4.73" shape="1233.12,1688.03 1236.79,1691.02"/>
- </edge>
- <edge id=":438042378_0" function="internal">
- <lane id=":438042378_0_0" index="0" speed="22.22" length="6.46" shape="1198.48,1677.87 1203.48,1681.95"/>
- </edge>
- <edge id=":438042378_1" function="internal">
- <lane id=":438042378_1_0" index="0" speed="22.22" length="6.75" shape="1196.73,1681.69 1203.48,1681.95"/>
- </edge>
- <edge id=":438042379_0" function="internal">
- <lane id=":438042379_0_0" index="0" speed="13.89" length="4.92" shape="1127.25,1657.08 1122.83,1659.23"/>
- </edge>
- <edge id=":438042379_1" function="internal">
- <lane id=":438042379_1_0" index="0" speed="22.22" length="6.59" shape="1127.25,1657.08 1122.96,1652.07"/>
- </edge>
- <edge id=":438042379_2" function="internal">
- <lane id=":438042379_2_0" index="0" speed="13.89" length="5.09" shape="1121.51,1656.21 1122.71,1655.47 1123.35,1654.53 1123.43,1653.40 1122.96,1652.07"/>
- </edge>
- <edge id=":438042379_3" function="internal">
- <lane id=":438042379_3_0" index="0" speed="5.56" length="2.41" shape="1121.51,1656.21 1122.97,1656.47 1123.68,1657.06"/>
- </edge>
- <edge id=":438042379_4" function="internal">
- <lane id=":438042379_4_0" index="0" speed="5.56" length="2.41" shape="1123.68,1657.06 1123.64,1657.98 1122.83,1659.23"/>
- </edge>
- <edge id=":438042380_0" function="internal">
- <lane id=":438042380_0_0" index="0" speed="25.00" length="5.46" shape="1206.28,1786.24 1207.55,1780.93"/>
- </edge>
- <edge id=":438042380_1" function="internal">
- <lane id=":438042380_1_0" index="0" speed="27.78" length="5.15" shape="1210.38,1785.23 1207.55,1780.93"/>
- </edge>
- <edge id=":438042380_2" function="internal">
- <lane id=":438042380_2_0" index="0" speed="27.78" length="4.94" shape="1213.30,1783.69 1210.56,1779.58"/>
- </edge>
- <edge id=":438042381_0" function="internal">
- <lane id=":438042381_0_0" index="0" speed="25.00" length="8.04" shape="1166.34,1700.30 1163.66,1692.72"/>
- </edge>
- <edge id=":438042381_1" function="internal">
- <lane id=":438042381_1_0" index="0" speed="25.00" length="9.14" shape="1166.34,1700.30 1166.57,1691.16"/>
- </edge>
- <edge id=":438042381_2" function="internal">
- <lane id=":438042381_2_0" index="0" speed="22.22" length="9.82" shape="1166.34,1700.30 1170.87,1691.59"/>
- </edge>
- <edge id=":438042385_0" function="internal">
- <lane id=":438042385_0_0" index="0" speed="25.00" length="7.92" shape="1215.51,1744.91 1214.28,1746.33 1213.66,1748.02 1213.63,1749.97 1214.21,1752.19"/>
- </edge>
- <edge id=":438042385_1" function="internal">
- <lane id=":438042385_1_0" index="0" speed="22.22" length="11.33" shape="1215.51,1744.91 1213.14,1747.03 1211.31,1748.74 1209.40,1750.32 1206.77,1752.09"/>
- </edge>
- <edge id=":438042385_2" function="internal">
- <lane id=":438042385_2_0" index="0" speed="27.78" length="8.98" shape="1211.38,1743.67 1214.21,1752.19"/>
- </edge>
- <edge id=":438042385_3" function="internal">
- <lane id=":438042385_3_0" index="0" speed="27.78" length="9.22" shape="1208.21,1744.60 1211.12,1753.35"/>
- </edge>
- <edge id=":438042385_4" function="internal">
- <lane id=":438042385_4_0" index="0" speed="25.00" length="8.21" shape="1208.21,1744.60 1208.74,1747.17 1208.68,1749.28 1208.02,1750.92 1206.77,1752.09"/>
- </edge>
- <edge id=":438042386_0" function="internal">
- <lane id=":438042386_0_0" index="0" speed="25.00" length="5.89" shape="1176.05,1683.98 1176.89,1685.06 1178.03,1685.57 1179.46,1685.50 1181.19,1684.86"/>
- </edge>
- <edge id=":438042386_1" function="internal">
- <lane id=":438042386_1_0" index="0" speed="27.78" length="6.97" shape="1176.05,1683.98 1180.71,1689.15"/>
- </edge>
- <edge id=":438042386_2" function="internal">
- <lane id=":438042386_2_0" index="0" speed="27.78" length="8.33" shape="1173.11,1685.49 1178.64,1691.72"/>
- </edge>
- <edge id=":438042386_3" function="internal">
- <lane id=":438042386_3_0" index="0" speed="22.22" length="10.29" shape="1172.45,1690.24 1174.84,1688.40 1176.61,1687.22 1178.48,1686.20 1181.19,1684.86"/>
- </edge>
- <edge id=":438042386_4" function="internal">
- <lane id=":438042386_4_0" index="0" speed="25.00" length="6.86" shape="1172.45,1690.24 1173.66,1689.68 1175.10,1689.73 1176.76,1690.42 1178.64,1691.72"/>
- </edge>
- <edge id=":438042387_0" function="internal">
- <lane id=":438042387_0_0" index="0" speed="25.00" length="7.92" shape="1198.02,1759.55 1193.90,1752.78"/>
- </edge>
- <edge id=":438042387_1" function="internal">
- <lane id=":438042387_1_0" index="0" speed="22.22" length="9.37" shape="1202.83,1754.21 1200.51,1754.68 1198.24,1754.61 1196.04,1753.97 1193.90,1752.78"/>
- </edge>
- <edge id=":441236049_0" function="internal">
- <lane id=":441236049_0_0" index="0" speed="25.00" length="6.93" shape="813.48,1029.46 812.20,1027.58 811.11,1027.03 810.21,1027.81 809.48,1029.93"/>
- </edge>
- <edge id=":441236049_1" function="internal">
- <lane id=":441236049_1_0" index="0" speed="25.00" length="16.56" shape="813.48,1029.46 810.45,1024.25 807.69,1020.46 805.21,1018.08 803.01,1017.11"/>
- </edge>
- <edge id=":441236049_2" function="internal">
- <lane id=":441236049_2_0" index="0" speed="27.78" length="17.77" shape="813.48,1029.46 810.97,1024.82 809.27,1021.63 807.65,1018.41 805.37,1013.65"/>
- </edge>
- <edge id=":441236049_3" function="internal">
- <lane id=":441236049_3_0" index="0" speed="27.78" length="17.60" shape="816.39,1027.90 813.91,1023.30 812.22,1020.15 810.61,1016.95 808.35,1012.24"/>
- </edge>
- <edge id=":441236049_4" function="internal">
- <lane id=":441236049_4_0" index="0" speed="27.78" length="17.44" shape="819.30,1026.34 816.84,1021.79 815.17,1018.66 813.57,1015.50 811.34,1010.83"/>
- </edge>
- <edge id=":441236049_5" function="internal">
- <lane id=":441236049_5_0" index="0" speed="22.22" length="16.79" shape="817.56,1015.92 815.09,1017.37 812.92,1020.19 811.05,1024.37 809.48,1029.93"/>
- </edge>
- <edge id=":441236049_6" function="internal">
- <lane id=":441236049_6_0" index="0" speed="22.22" length="14.71" shape="817.56,1015.92 813.96,1016.78 810.35,1017.27 806.70,1017.38 803.01,1017.11"/>
- </edge>
- <edge id=":441236049_7" function="internal">
- <lane id=":441236049_7_0" index="0" speed="25.00" length="8.71" shape="817.56,1015.92 815.91,1015.97 814.33,1015.14 812.80,1013.42 811.34,1010.83"/>
- </edge>
- <edge id=":441236049_8" function="internal">
- <lane id=":441236049_8_0" index="0" speed="22.22" length="13.95" shape="806.30,1029.05 807.05,1024.11 806.75,1020.46 805.40,1018.13 803.01,1017.11"/>
- </edge>
- <edge id=":441236049_9" function="internal">
- <lane id=":441236049_9_0" index="0" speed="25.00" length="15.83" shape="806.30,1029.05 807.08,1025.57 807.48,1022.14 807.06,1018.32 805.37,1013.65"/>
- </edge>
- <edge id=":441236049_10" function="internal">
- <lane id=":441236049_10_0" index="0" speed="22.22" length="4.82" shape="806.30,1029.05 807.42,1028.08 808.33,1027.90 809.02,1028.52 809.48,1029.93"/>
- </edge>
- <edge id=":441236060_0" function="internal">
- <lane id=":441236060_0_0" index="0" speed="27.78" length="9.92" shape="788.33,977.61 783.95,968.71"/>
- </edge>
- <edge id=":441236060_1" function="internal">
- <lane id=":441236060_1_0" index="0" speed="27.78" length="10.06" shape="791.32,976.20 790.04,973.50 789.16,971.65 788.25,969.82 786.87,967.17"/>
- </edge>
- <edge id=":441236060_2" function="internal">
- <lane id=":441236060_2_0" index="0" speed="27.78" length="10.20" shape="794.30,974.79 793.01,972.05 792.12,970.18 791.19,968.33 789.79,965.64"/>
- </edge>
- <edge id=":441236060_3" function="internal">
- <lane id=":441236060_3_0" index="0" speed="25.00" length="8.79" shape="794.30,974.79 793.19,971.96 792.78,969.66 793.07,967.87 794.07,966.61"/>
- </edge>
- <edge id=":441236060_4" function="internal">
- <lane id=":441236060_4_0" index="0" speed="25.00" length="9.00" shape="784.08,977.25 785.00,975.38 785.29,973.33 784.94,971.11 783.95,968.71"/>
- </edge>
- <edge id=":441236060_5" function="internal">
- <lane id=":441236060_5_0" index="0" speed="22.22" length="14.66" shape="784.08,977.25 786.28,974.28 788.64,971.51 791.22,968.96 794.07,966.61"/>
- </edge>
- <edge id=":441266854_0" function="internal">
- <lane id=":441266854_0_0" index="0" speed="27.78" length="0.10" shape="1801.71,1403.73 1801.71,1403.73"/>
- </edge>
- <edge id=":441266854_1" function="internal">
- <lane id=":441266854_1_0" index="0" speed="27.78" length="2.41" shape="1801.71,1403.73 1800.23,1403.58 1799.49,1403.04"/>
- </edge>
- <edge id=":441266854_4" function="internal">
- <lane id=":441266854_4_0" index="0" speed="27.78" length="2.41" shape="1799.49,1403.04 1799.47,1402.11 1800.18,1400.81"/>
- </edge>
- <edge id=":441266854_2" function="internal">
- <lane id=":441266854_2_0" index="0" speed="27.78" length="0.10" shape="1800.18,1400.81 1800.18,1400.81"/>
- </edge>
- <edge id=":441266854_3" function="internal">
- <lane id=":441266854_3_0" index="0" speed="27.78" length="2.41" shape="1800.18,1400.81 1801.66,1400.97 1802.41,1401.51"/>
- </edge>
- <edge id=":441266854_5" function="internal">
- <lane id=":441266854_5_0" index="0" speed="27.78" length="2.41" shape="1802.41,1401.51 1802.43,1402.43 1801.71,1403.73"/>
- </edge>
- <edge id=":441266865_0" function="internal">
- <lane id=":441266865_0_0" index="0" speed="22.22" length="4.82" shape="1603.87,1014.24 1605.36,1014.37 1606.11,1014.90 1606.15,1015.82 1605.46,1017.13"/>
- </edge>
- <edge id=":441266870_0" function="internal">
- <lane id=":441266870_0_0" index="0" speed="8.33" length="8.52" shape="1372.01,1244.76 1366.34,1238.41"/>
- </edge>
- <edge id=":441266870_1" function="internal">
- <lane id=":441266870_1_0" index="0" speed="8.33" length="10.99" shape="1372.01,1244.76 1370.57,1242.06 1370.42,1239.63 1371.57,1237.50 1374.01,1235.64"/>
- </edge>
- <edge id=":441266870_2" function="internal">
- <lane id=":441266870_2_0" index="0" speed="8.33" length="4.82" shape="1372.01,1244.76 1371.95,1243.28 1372.37,1242.46 1373.28,1242.30 1374.67,1242.81"/>
- </edge>
- <edge id=":441266870_3" function="internal">
- <lane id=":441266870_3_0" index="0" speed="8.33" length="5.16" shape="1375.61,1238.53 1374.47,1239.40 1373.93,1240.40 1374.00,1241.54 1374.67,1242.81"/>
- </edge>
- <edge id=":441266870_4" function="internal">
- <lane id=":441266870_4_0" index="0" speed="8.33" length="9.91" shape="1375.61,1238.53 1372.95,1239.67 1370.52,1240.03 1368.32,1239.61 1366.34,1238.41"/>
- </edge>
- <edge id=":441266870_5" function="internal">
- <lane id=":441266870_5_0" index="0" speed="8.33" length="4.82" shape="1375.61,1238.53 1374.13,1238.41 1373.37,1237.88 1373.33,1236.96 1374.01,1235.64"/>
- </edge>
- <edge id=":441266870_6" function="internal">
- <lane id=":441266870_6_0" index="0" speed="8.33" length="5.89" shape="1368.49,1235.91 1369.58,1236.53 1370.86,1236.69 1372.34,1236.39 1374.01,1235.64"/>
- </edge>
- <edge id=":441266870_7" function="internal">
- <lane id=":441266870_7_0" index="0" speed="8.33" length="9.27" shape="1368.49,1235.91 1374.67,1242.81"/>
- </edge>
- <edge id=":441266870_8" function="internal">
- <lane id=":441266870_8_0" index="0" speed="8.33" length="4.81" shape="1368.49,1235.91 1368.89,1237.34 1368.67,1238.23 1367.82,1238.59 1366.34,1238.41"/>
- </edge>
- <edge id=":441266874_0" function="internal">
- <lane id=":441266874_0_0" index="0" speed="8.33" length="6.61" shape="1460.41,1177.69 1454.43,1180.50"/>
- </edge>
- <edge id=":441266874_1" function="internal">
- <lane id=":441266874_1_0" index="0" speed="8.33" length="8.95" shape="1460.41,1177.69 1458.04,1177.74 1456.04,1177.11 1454.39,1175.79 1453.10,1173.80"/>
- </edge>
- <edge id=":441266874_2" function="internal">
- <lane id=":441266874_2_0" index="0" speed="8.33" length="4.82" shape="1460.41,1177.69 1459.06,1177.06 1458.53,1176.31 1458.81,1175.43 1459.91,1174.43"/>
- </edge>
- <edge id=":441266874_3" function="internal">
- <lane id=":441266874_3_0" index="0" speed="8.33" length="4.69" shape="1456.09,1172.38 1456.76,1173.43 1457.62,1174.12 1458.67,1174.46 1459.91,1174.43"/>
- </edge>
- <edge id=":441266874_4" function="internal">
- <lane id=":441266874_4_0" index="0" speed="8.33" length="8.97" shape="1456.09,1172.38 1456.81,1174.65 1456.78,1176.76 1455.99,1178.71 1454.43,1180.50"/>
- </edge>
- <edge id=":441266874_5" function="internal">
- <lane id=":441266874_5_0" index="0" speed="8.33" length="4.82" shape="1456.09,1172.38 1455.87,1173.86 1455.30,1174.58 1454.38,1174.56 1453.10,1173.80"/>
- </edge>
- <edge id=":441266874_6" function="internal">
- <lane id=":441266874_6_0" index="0" speed="8.33" length="4.68" shape="1452.24,1178.03 1453.05,1177.10 1453.47,1176.08 1453.48,1174.98 1453.10,1173.80"/>
- </edge>
- <edge id=":441266874_7" function="internal">
- <lane id=":441266874_7_0" index="0" speed="8.33" length="8.47" shape="1452.24,1178.03 1459.91,1174.43"/>
- </edge>
- <edge id=":441266874_8" function="internal">
- <lane id=":441266874_8_0" index="0" speed="8.33" length="4.82" shape="1452.24,1178.03 1453.71,1177.83 1454.57,1178.17 1454.81,1179.07 1454.43,1180.50"/>
- </edge>
- <edge id=":441266876_0" function="internal">
- <lane id=":441266876_0_0" index="0" speed="22.22" length="5.03" shape="1142.99,965.46 1143.80,966.58 1144.77,967.16 1145.90,967.20 1147.19,966.71"/>
- </edge>
- <edge id=":441266876_1" function="internal">
- <lane id=":441266876_1_0" index="0" speed="22.22" length="6.19" shape="1142.99,965.46 1145.85,970.95"/>
- </edge>
- <edge id=":441266879_0" function="internal">
- <lane id=":441266879_0_0" index="0" speed="22.22" length="5.01" shape="1416.14,1476.90 1415.03,1477.71 1414.45,1478.69 1414.38,1479.82 1414.84,1481.10"/>
- </edge>
- <edge id=":441266879_1" function="internal">
- <lane id=":441266879_1_0" index="0" speed="22.22" length="6.20" shape="1411.95,1475.62 1414.84,1481.10"/>
- </edge>
- <edge id=":441266880_0" function="internal">
- <lane id=":441266880_0_0" index="0" speed="25.00" length="3.11" shape="1466.32,1578.81 1466.42,1578.98 1466.69,1579.50 1467.14,1580.36 1467.78,1581.56"/>
- </edge>
- <edge id=":441266880_1" function="internal">
- <lane id=":441266880_1_0" index="0" speed="27.78" length="3.11" shape="1466.32,1578.81 1463.56,1580.25"/>
- </edge>
- <edge id=":441266880_2" function="internal">
- <lane id=":441266880_2_0" index="0" speed="27.78" length="2.41" shape="1466.32,1578.81 1464.84,1578.66 1464.10,1578.12"/>
- </edge>
- <edge id=":441266880_9" function="internal">
- <lane id=":441266880_9_0" index="0" speed="27.78" length="2.41" shape="1464.10,1578.12 1464.08,1577.19 1464.79,1575.89"/>
- </edge>
- <edge id=":441266880_3" function="internal">
- <lane id=":441266880_3_0" index="0" speed="25.00" length="3.11" shape="1463.34,1573.14 1463.97,1574.35 1464.43,1575.20 1464.70,1575.72 1464.79,1575.89"/>
- </edge>
- <edge id=":441266880_4" function="internal">
- <lane id=":441266880_4_0" index="0" speed="22.22" length="9.51" shape="1463.34,1573.14 1467.78,1581.56"/>
- </edge>
- <edge id=":441266880_5" function="internal">
- <lane id=":441266880_5_0" index="0" speed="25.00" length="3.12" shape="1463.34,1573.14 1464.47,1575.71 1464.54,1576.02"/>
- </edge>
- <edge id=":441266880_10" function="internal">
- <lane id=":441266880_10_0" index="0" speed="25.00" length="4.73" shape="1464.54,1576.02 1464.89,1577.76 1464.59,1579.27 1463.56,1580.25"/>
- </edge>
- <edge id=":441266880_6" function="internal">
- <lane id=":441266880_6_0" index="0" speed="27.78" length="3.11" shape="1462.04,1577.33 1464.79,1575.89"/>
- </edge>
- <edge id=":441266880_7" function="internal">
- <lane id=":441266880_7_0" index="0" speed="25.00" length="4.74" shape="1462.04,1577.33 1463.43,1577.05 1464.85,1577.67 1466.08,1578.94"/>
- </edge>
- <edge id=":441266880_11" function="internal">
- <lane id=":441266880_11_0" index="0" speed="25.00" length="3.13" shape="1466.08,1578.94 1466.30,1579.17 1467.78,1581.56"/>
- </edge>
- <edge id=":441266880_8" function="internal">
- <lane id=":441266880_8_0" index="0" speed="27.78" length="2.41" shape="1462.04,1577.33 1463.52,1577.49 1464.26,1578.03"/>
- </edge>
- <edge id=":441266880_12" function="internal">
- <lane id=":441266880_12_0" index="0" speed="27.78" length="2.41" shape="1464.26,1578.03 1464.28,1578.95 1463.56,1580.25"/>
- </edge>
- <edge id=":441266884_0" function="internal">
- <lane id=":441266884_0_0" index="0" speed="22.22" length="5.00" shape="1590.28,1814.06 1591.09,1815.17 1592.05,1815.75 1593.18,1815.82 1594.48,1815.36"/>
- </edge>
- <edge id=":441266884_1" function="internal">
- <lane id=":441266884_1_0" index="0" speed="22.22" length="6.20" shape="1590.28,1814.06 1593.18,1819.54"/>
- </edge>
- <edge id=":441266884_2" function="internal">
- <lane id=":441266884_2_0" index="0" speed="22.22" length="3.34" shape="1591.52,1816.91 1594.48,1815.36"/>
- </edge>
- <edge id=":441266884_3" function="internal">
- <lane id=":441266884_3_0" index="0" speed="22.22" length="3.14" shape="1591.52,1816.91 1591.70,1817.03 1592.04,1817.51 1592.53,1818.35 1593.18,1819.54"/>
- </edge>
- <edge id=":443089060_0" function="internal">
- <lane id=":443089060_0_0" index="0" speed="22.22" length="6.26" shape="1554.37,1840.16 1551.52,1834.58"/>
- </edge>
- <edge id=":443089060_1" function="internal">
- <lane id=":443089060_1_0" index="0" speed="22.22" length="5.05" shape="1554.37,1840.16 1553.90,1838.87 1553.97,1837.73 1554.57,1836.75 1555.69,1835.93"/>
- </edge>
- <edge id=":443089060_2" function="internal">
- <lane id=":443089060_2_0" index="0" speed="22.22" length="5.10" shape="1550.17,1838.89 1551.28,1838.07 1551.88,1837.08 1551.96,1835.92 1551.52,1834.58"/>
- </edge>
- <edge id=":443089060_3" function="internal">
- <lane id=":443089060_3_0" index="0" speed="22.22" length="6.26" shape="1550.17,1838.89 1555.69,1835.93"/>
- </edge>
- <edge id=":443089061_0" function="internal">
- <lane id=":443089061_0_0" index="0" speed="18.06" length="5.04" shape="1519.35,1769.01 1518.57,1767.86 1517.61,1767.25 1516.48,1767.19 1515.18,1767.66"/>
- </edge>
- <edge id=":443089061_1" function="internal">
- <lane id=":443089061_1_0" index="0" speed="22.22" length="9.55" shape="1519.35,1769.01 1515.03,1760.49"/>
- </edge>
- <edge id=":443089061_2" function="internal">
- <lane id=":443089061_2_0" index="0" speed="18.06" length="5.10" shape="1513.62,1764.75 1514.78,1763.91 1515.40,1762.93 1515.48,1761.79 1515.03,1760.49"/>
- </edge>
- <edge id=":443089061_3" function="internal">
- <lane id=":443089061_3_0" index="0" speed="13.89" length="4.82" shape="1513.62,1764.75 1515.10,1764.89 1515.86,1765.43 1515.88,1766.35 1515.18,1767.66"/>
- </edge>
- <edge id=":443089062_0" function="internal">
- <lane id=":443089062_0_0" index="0" speed="18.06" length="5.02" shape="1482.57,1698.68 1481.77,1697.58 1480.80,1696.99 1479.67,1696.93 1478.37,1697.39"/>
- </edge>
- <edge id=":443089062_1" function="internal">
- <lane id=":443089062_1_0" index="0" speed="22.22" length="9.51" shape="1482.57,1698.68 1478.14,1690.28"/>
- </edge>
- <edge id=":443089062_2" function="internal">
- <lane id=":443089062_2_0" index="0" speed="18.06" length="5.01" shape="1476.84,1694.46 1477.95,1693.66 1478.54,1692.70 1478.60,1691.57 1478.14,1690.28"/>
- </edge>
- <edge id=":443089062_3" function="internal">
- <lane id=":443089062_3_0" index="0" speed="13.89" length="4.82" shape="1476.84,1694.46 1478.32,1694.62 1479.06,1695.16 1479.08,1696.08 1478.37,1697.39"/>
- </edge>
- <edge id=":443089063_0" function="internal">
- <lane id=":443089063_0_0" index="0" speed="25.00" length="5.27" shape="1431.50,1604.31 1430.60,1603.21 1429.56,1602.63 1428.35,1602.59 1426.99,1603.07"/>
- </edge>
- <edge id=":443089063_1" function="internal">
- <lane id=":443089063_1_0" index="0" speed="22.22" length="16.22" shape="1431.50,1604.31 1429.52,1600.90 1427.49,1597.26 1425.53,1593.58 1423.73,1590.08"/>
- </edge>
- <edge id=":443089063_2" function="internal">
- <lane id=":443089063_2_0" index="0" speed="25.00" length="3.18" shape="1431.50,1604.31 1430.02,1601.49"/>
- </edge>
- <edge id=":443089063_11" function="internal">
- <lane id=":443089063_11_0" index="0" speed="25.00" length="7.93" shape="1430.02,1601.49 1429.51,1600.52 1428.53,1597.58 1428.58,1595.49 1429.64,1594.24"/>
- </edge>
- <edge id=":443089063_3" function="internal">
- <lane id=":443089063_3_0" index="0" speed="27.78" length="6.44" shape="1432.70,1600.09 1426.99,1603.07"/>
- </edge>
- <edge id=":443089063_4" function="internal">
- <lane id=":443089063_4_0" index="0" speed="27.78" length="6.44" shape="1431.17,1597.17 1425.46,1600.15"/>
- </edge>
- <edge id=":443089063_5" function="internal">
- <lane id=":443089063_5_0" index="0" speed="25.00" length="4.63" shape="1431.17,1597.17 1429.55,1597.33 1427.76,1596.20 1427.21,1595.51"/>
- </edge>
- <edge id=":443089063_12" function="internal">
- <lane id=":443089063_12_0" index="0" speed="25.00" length="6.47" shape="1427.21,1595.51 1425.83,1593.78 1423.73,1590.08"/>
- </edge>
- <edge id=":443089063_6" function="internal">
- <lane id=":443089063_6_0" index="0" speed="27.78" length="2.41" shape="1431.17,1597.17 1429.69,1597.01 1428.94,1596.47"/>
- </edge>
- <edge id=":443089063_13" function="internal">
- <lane id=":443089063_13_0" index="0" speed="27.78" length="2.41" shape="1428.94,1596.47 1428.93,1595.55 1429.64,1594.24"/>
- </edge>
- <edge id=":443089063_7" function="internal">
- <lane id=":443089063_7_0" index="0" speed="25.00" length="5.02" shape="1422.41,1594.30 1423.51,1593.50 1424.10,1592.53 1424.17,1591.39 1423.73,1590.08"/>
- </edge>
- <edge id=":443089063_8" function="internal">
- <lane id=":443089063_8_0" index="0" speed="27.78" length="6.44" shape="1422.41,1594.30 1428.12,1591.32"/>
- </edge>
- <edge id=":443089063_9" function="internal">
- <lane id=":443089063_9_0" index="0" speed="27.78" length="6.44" shape="1423.93,1597.22 1429.64,1594.24"/>
- </edge>
- <edge id=":443089063_10" function="internal">
- <lane id=":443089063_10_0" index="0" speed="27.78" length="2.41" shape="1423.93,1597.22 1425.41,1597.38 1426.16,1597.92"/>
- </edge>
- <edge id=":443089063_14" function="internal">
- <lane id=":443089063_14_0" index="0" speed="27.78" length="2.41" shape="1426.16,1597.92 1426.18,1598.84 1425.46,1600.15"/>
- </edge>
- <edge id=":443089064_0" function="internal">
- <lane id=":443089064_0_0" index="0" speed="22.22" length="5.03" shape="1379.33,1501.14 1378.55,1500.00 1377.59,1499.40 1376.46,1499.34 1375.16,1499.81"/>
- </edge>
- <edge id=":443089064_1" function="internal">
- <lane id=":443089064_1_0" index="0" speed="22.22" length="6.26" shape="1379.33,1501.14 1376.42,1495.59"/>
- </edge>
- <edge id=":443089065_0" function="internal">
- <lane id=":443089065_0_0" index="0" speed="22.22" length="6.21" shape="1232.06,1224.01 1229.16,1218.52"/>
- </edge>
- <edge id=":443089065_1" function="internal">
- <lane id=":443089065_1_0" index="0" speed="22.22" length="5.01" shape="1227.86,1222.71 1228.98,1221.91 1229.57,1220.94 1229.63,1219.81 1229.16,1218.52"/>
- </edge>
- <edge id=":443089066_0" function="internal">
- <lane id=":443089066_0_0" index="0" speed="22.22" length="6.22" shape="1194.45,1153.07 1191.51,1147.59"/>
- </edge>
- <edge id=":443089066_1" function="internal">
- <lane id=":443089066_1_0" index="0" speed="22.22" length="5.04" shape="1190.24,1151.84 1191.35,1150.99 1191.93,1150.00 1191.98,1148.87 1191.51,1147.59"/>
- </edge>
- <edge id=":443089068_0" function="internal">
- <lane id=":443089068_0_0" index="0" speed="22.22" length="5.02" shape="1110.64,996.49 1109.81,995.39 1108.83,994.83 1107.70,994.80 1106.42,995.30"/>
- </edge>
- <edge id=":443089068_1" function="internal">
- <lane id=":443089068_1_0" index="0" speed="22.22" length="6.16" shape="1110.64,996.49 1107.74,991.06"/>
- </edge>
- <edge id=":443089069_0" function="internal">
- <lane id=":443089069_0_0" index="0" speed="22.22" length="5.14" shape="1152.57,1596.90 1153.39,1597.98 1154.39,1598.54 1155.58,1598.59 1156.95,1598.12"/>
- </edge>
- <edge id=":443089069_1" function="internal">
- <lane id=":443089069_1_0" index="0" speed="22.22" length="6.31" shape="1152.57,1596.90 1155.77,1602.34"/>
- </edge>
- <edge id=":443089070_0" function="internal">
- <lane id=":443089070_0_0" index="0" speed="22.22" length="6.19" shape="1372.85,1489.12 1369.89,1483.69"/>
- </edge>
- <edge id=":443089070_1" function="internal">
- <lane id=":443089070_1_0" index="0" speed="22.22" length="5.00" shape="1368.64,1487.90 1369.74,1487.07 1370.31,1486.10 1370.36,1484.97 1369.89,1483.69"/>
- </edge>
- <edge id=":443089071_0" function="internal">
- <lane id=":443089071_0_0" index="0" speed="18.06" length="5.01" shape="1235.99,1572.06 1234.86,1572.85 1234.26,1573.81 1234.18,1574.94 1234.64,1576.23"/>
- </edge>
- <edge id=":443089071_1" function="internal">
- <lane id=":443089071_1_0" index="0" speed="22.22" length="6.22" shape="1235.99,1572.06 1230.45,1574.90"/>
- </edge>
- <edge id=":443089071_2" function="internal">
- <lane id=":443089071_2_0" index="0" speed="13.89" length="6.21" shape="1231.78,1570.72 1234.64,1576.23"/>
- </edge>
- <edge id=":443089071_3" function="internal">
- <lane id=":443089071_3_0" index="0" speed="18.06" length="5.00" shape="1231.78,1570.72 1232.23,1572.01 1232.16,1573.14 1231.57,1574.10 1230.45,1574.90"/>
- </edge>
- <edge id=":443089072_0" function="internal">
- <lane id=":443089072_0_0" index="0" speed="18.06" length="5.01" shape="1307.88,1539.24 1307.08,1538.13 1306.12,1537.53 1304.98,1537.46 1303.68,1537.90"/>
- </edge>
- <edge id=":443089072_1" function="internal">
- <lane id=":443089072_1_0" index="0" speed="13.89" length="6.21" shape="1307.88,1539.24 1305.02,1533.72"/>
- </edge>
- <edge id=":443089072_2" function="internal">
- <lane id=":443089072_2_0" index="0" speed="22.22" length="6.24" shape="1309.21,1535.03 1303.68,1537.90"/>
- </edge>
- <edge id=":443089072_3" function="internal">
- <lane id=":443089072_3_0" index="0" speed="18.06" length="5.02" shape="1309.21,1535.03 1307.92,1535.50 1306.79,1535.44 1305.82,1534.85 1305.02,1533.72"/>
- </edge>
- <edge id=":443089074_0" function="internal">
- <lane id=":443089074_0_0" index="0" speed="22.22" length="5.02" shape="1404.59,1461.64 1405.40,1462.76 1406.37,1463.34 1407.50,1463.39 1408.79,1462.90"/>
- </edge>
- <edge id=":443089074_1" function="internal">
- <lane id=":443089074_1_0" index="0" speed="22.22" length="6.20" shape="1404.59,1461.64 1407.48,1467.13"/>
- </edge>
- <edge id=":443101905_0" function="internal">
- <lane id=":443101905_0_0" index="0" speed="22.22" length="5.05" shape="1445.68,924.31 1444.89,923.16 1443.92,922.57 1442.79,922.52 1441.49,923.02"/>
- </edge>
- <edge id=":443101905_1" function="internal">
- <lane id=":443101905_1_0" index="0" speed="22.22" length="6.28" shape="1445.68,924.31 1442.71,918.77"/>
- </edge>
- <edge id=":443101905_2" function="internal">
- <lane id=":443101905_2_0" index="0" speed="22.22" length="2.41" shape="1445.68,924.31 1445.86,922.83 1446.41,922.09"/>
- </edge>
- <edge id=":443101905_9" function="internal">
- <lane id=":443101905_9_0" index="0" speed="22.22" length="2.41" shape="1446.41,922.09 1447.34,922.09 1448.63,922.82"/>
- </edge>
- <edge id=":443101905_3" function="internal">
- <lane id=":443101905_3_0" index="0" speed="22.22" length="5.22" shape="1449.83,918.36 1448.75,919.21 1448.19,920.23 1448.15,921.43 1448.63,922.82"/>
- </edge>
- <edge id=":443101905_4" function="internal">
- <lane id=":443101905_4_0" index="0" speed="22.22" length="9.56" shape="1449.83,918.36 1441.49,923.02"/>
- </edge>
- <edge id=":443101905_5" function="internal">
- <lane id=":443101905_5_0" index="0" speed="22.22" length="7.86" shape="1449.83,918.36 1447.30,919.55 1445.26,920.02 1443.74,919.76 1442.71,918.77"/>
- </edge>
- <edge id=":443101905_6" function="internal">
- <lane id=":443101905_6_0" index="0" speed="22.22" length="6.46" shape="1445.58,917.13 1448.63,922.82"/>
- </edge>
- <edge id=":443101905_7" function="internal">
- <lane id=":443101905_7_0" index="0" speed="22.22" length="4.81" shape="1445.58,917.13 1445.91,918.52 1445.34,919.97 1444.06,921.27"/>
- </edge>
- <edge id=":443101905_10" function="internal">
- <lane id=":443101905_10_0" index="0" speed="22.22" length="3.11" shape="1444.06,921.27 1443.86,921.47 1441.49,923.02"/>
- </edge>
- <edge id=":443101905_8" function="internal">
- <lane id=":443101905_8_0" index="0" speed="22.22" length="2.41" shape="1445.58,917.13 1445.48,918.61 1444.96,919.38"/>
- </edge>
- <edge id=":443101905_11" function="internal">
- <lane id=":443101905_11_0" index="0" speed="22.22" length="2.41" shape="1444.96,919.38 1444.04,919.43 1442.71,918.77"/>
- </edge>
- <edge id=":443101906_0" function="internal">
- <lane id=":443101906_0_0" index="0" speed="22.22" length="5.01" shape="1350.20,977.61 1349.37,976.51 1348.40,975.94 1347.27,975.90 1345.98,976.40"/>
- </edge>
- <edge id=":443101906_1" function="internal">
- <lane id=":443101906_1_0" index="0" speed="22.22" length="6.47" shape="1350.20,977.61 1347.62,971.67"/>
- </edge>
- <edge id=":443101906_2" function="internal">
- <lane id=":443101906_2_0" index="0" speed="22.22" length="2.41" shape="1350.20,977.61 1350.33,976.13 1350.85,975.37"/>
- </edge>
- <edge id=":443101906_9" function="internal">
- <lane id=":443101906_9_0" index="0" speed="22.22" length="2.41" shape="1350.85,975.37 1351.78,975.33 1353.09,976.02"/>
- </edge>
- <edge id=":443101906_3" function="internal">
- <lane id=":443101906_3_0" index="0" speed="22.22" length="5.35" shape="1354.61,971.57 1353.38,972.48 1352.72,973.53 1352.62,974.71 1353.09,976.02"/>
- </edge>
- <edge id=":443101906_4" function="internal">
- <lane id=":443101906_4_0" index="0" speed="22.22" length="9.89" shape="1354.61,971.57 1345.98,976.40"/>
- </edge>
- <edge id=":443101906_5" function="internal">
- <lane id=":443101906_5_0" index="0" speed="22.22" length="8.00" shape="1354.61,971.57 1351.95,972.82 1349.90,973.26 1348.45,972.87 1347.62,971.67"/>
- </edge>
- <edge id=":443101906_6" function="internal">
- <lane id=":443101906_6_0" index="0" speed="22.22" length="5.87" shape="1350.75,970.64 1353.09,976.02"/>
- </edge>
- <edge id=":443101906_7" function="internal">
- <lane id=":443101906_7_0" index="0" speed="22.22" length="4.53" shape="1350.75,970.64 1350.78,971.98 1349.99,973.38 1348.83,974.45"/>
- </edge>
- <edge id=":443101906_10" function="internal">
- <lane id=":443101906_10_0" index="0" speed="22.22" length="3.45" shape="1348.83,974.45 1348.39,974.86 1345.98,976.40"/>
- </edge>
- <edge id=":443101906_8" function="internal">
- <lane id=":443101906_8_0" index="0" speed="22.22" length="2.41" shape="1350.75,970.64 1350.36,972.08 1349.70,972.72"/>
- </edge>
- <edge id=":443101906_11" function="internal">
- <lane id=":443101906_11_0" index="0" speed="22.22" length="2.41" shape="1349.70,972.72 1348.79,972.59 1347.62,971.67"/>
- </edge>
- <edge id=":443101911_0" function="internal">
- <lane id=":443101911_0_0" index="0" speed="22.22" length="5.06" shape="1089.77,1121.37 1088.72,1122.21 1088.17,1123.21 1088.14,1124.37 1088.61,1125.70"/>
- </edge>
- <edge id=":443101911_1" function="internal">
- <lane id=":443101911_1_0" index="0" speed="22.22" length="6.19" shape="1089.77,1121.37 1084.40,1124.45"/>
- </edge>
- <edge id=":443101912_0" function="internal">
- <lane id=":443101912_0_0" index="0" speed="22.22" length="5.14" shape="948.66,1201.67 947.54,1202.52 946.96,1203.53 946.89,1204.70 947.35,1206.03"/>
- </edge>
- <edge id=":443101912_1" function="internal">
- <lane id=":443101912_1_0" index="0" speed="22.22" length="6.31" shape="948.66,1201.67 943.15,1204.76"/>
- </edge>
- <edge id=":443101912_2" function="internal">
- <lane id=":443101912_2_0" index="0" speed="22.22" length="6.31" shape="944.45,1200.42 947.35,1206.03"/>
- </edge>
- <edge id=":443101912_3" function="internal">
- <lane id=":443101912_3_0" index="0" speed="22.22" length="5.13" shape="944.45,1200.42 944.92,1201.74 944.86,1202.90 944.27,1203.91 943.15,1204.76"/>
- </edge>
- <edge id=":443101913_0" function="internal">
- <lane id=":443101913_0_0" index="0" speed="22.22" length="5.04" shape="929.76,1171.64 930.57,1172.76 931.54,1173.34 932.67,1173.38 933.96,1172.88"/>
- </edge>
- <edge id=":443101913_1" function="internal">
- <lane id=":443101913_1_0" index="0" speed="22.22" length="6.31" shape="929.76,1171.64 932.66,1177.25"/>
- </edge>
- <edge id=":443101913_2" function="internal">
- <lane id=":443101913_2_0" index="0" speed="22.22" length="6.31" shape="928.46,1175.98 933.96,1172.88"/>
- </edge>
- <edge id=":443101913_3" function="internal">
- <lane id=":443101913_3_0" index="0" speed="22.22" length="5.05" shape="928.46,1175.98 929.76,1175.48 930.89,1175.52 931.86,1176.11 932.66,1177.25"/>
- </edge>
- <edge id=":443101914_0" function="internal">
- <lane id=":443101914_0_0" index="0" speed="22.22" length="5.05" shape="1003.08,1133.94 1004.15,1133.11 1004.70,1132.12 1004.75,1130.96 1004.27,1129.64"/>
- </edge>
- <edge id=":443101914_1" function="internal">
- <lane id=":443101914_1_0" index="0" speed="22.22" length="6.21" shape="1003.08,1133.94 1008.48,1130.89"/>
- </edge>
- <edge id=":443101915_0" function="internal">
- <lane id=":443101915_0_0" index="0" speed="22.22" length="5.02" shape="1073.46,1090.50 1074.26,1091.62 1075.23,1092.20 1076.36,1092.26 1077.65,1091.77"/>
- </edge>
- <edge id=":443101915_1" function="internal">
- <lane id=":443101915_1_0" index="0" speed="22.22" length="6.18" shape="1072.26,1094.78 1077.65,1091.77"/>
- </edge>
- <edge id=":443101920_0" function="internal">
- <lane id=":443101920_0_0" index="0" speed="22.22" length="4.06" shape="1338.73,944.47 1337.03,940.77"/>
- </edge>
- <edge id=":443101920_1" function="internal">
- <lane id=":443101920_1_0" index="0" speed="22.22" length="3.47" shape="1338.73,944.47 1338.98,943.96 1339.98,943.15 1341.33,942.27"/>
- </edge>
- <edge id=":443101920_9" function="internal">
- <lane id=":443101920_9_0" index="0" speed="22.22" length="3.31" shape="1341.33,942.27 1341.71,942.02 1344.18,940.58"/>
- </edge>
- <edge id=":443101920_2" function="internal">
- <lane id=":443101920_2_0" index="0" speed="22.22" length="2.41" shape="1338.73,944.47 1339.13,943.04 1339.79,942.39"/>
- </edge>
- <edge id=":443101920_10" function="internal">
- <lane id=":443101920_10_0" index="0" speed="22.22" length="2.41" shape="1339.79,942.39 1340.70,942.53 1341.86,943.45"/>
- </edge>
- <edge id=":443101920_3" function="internal">
- <lane id=":443101920_3_0" index="0" speed="22.22" length="5.06" shape="1339.99,939.30 1340.78,940.44 1341.74,941.04 1342.88,941.09 1344.18,940.58"/>
- </edge>
- <edge id=":443101920_4" function="internal">
- <lane id=":443101920_4_0" index="0" speed="22.22" length="4.56" shape="1339.99,939.30 1341.86,943.45"/>
- </edge>
- <edge id=":443101920_5" function="internal">
- <lane id=":443101920_5_0" index="0" speed="22.22" length="2.41" shape="1339.99,939.30 1339.80,940.77 1339.25,941.51"/>
- </edge>
- <edge id=":443101920_11" function="internal">
- <lane id=":443101920_11_0" index="0" speed="22.22" length="2.41" shape="1339.25,941.51 1338.33,941.51 1337.03,940.77"/>
- </edge>
- <edge id=":443101920_6" function="internal">
- <lane id=":443101920_6_0" index="0" speed="22.22" length="5.55" shape="1335.49,945.44 1336.72,944.51 1337.39,943.43 1337.50,942.18 1337.03,940.77"/>
- </edge>
- <edge id=":443101920_7" function="internal">
- <lane id=":443101920_7_0" index="0" speed="22.22" length="9.95" shape="1335.49,945.44 1344.18,940.58"/>
- </edge>
- <edge id=":443101920_8" function="internal">
- <lane id=":443101920_8_0" index="0" speed="22.22" length="6.99" shape="1335.49,945.44 1338.12,944.07 1340.06,943.29 1341.30,943.08 1341.86,943.45"/>
- </edge>
- <edge id=":443101921_0" function="internal">
- <lane id=":443101921_0_0" index="0" speed="18.06" length="4.68" shape="1429.42,894.38 1427.26,890.23"/>
- </edge>
- <edge id=":443101921_1" function="internal">
- <lane id=":443101921_1_0" index="0" speed="22.22" length="2.05" shape="1429.42,894.38 1429.49,893.64 1430.34,892.66"/>
- </edge>
- <edge id=":443101921_9" function="internal">
- <lane id=":443101921_9_0" index="0" speed="22.22" length="4.88" shape="1430.34,892.66 1431.98,891.43 1434.39,889.95"/>
- </edge>
- <edge id=":443101921_2" function="internal">
- <lane id=":443101921_2_0" index="0" speed="22.22" length="1.49" shape="1429.42,894.38 1429.58,892.90"/>
- </edge>
- <edge id=":443101921_10" function="internal">
- <lane id=":443101921_10_0" index="0" speed="22.22" length="3.33" shape="1429.58,892.90 1430.12,892.16 1431.04,892.14 1432.35,892.86"/>
- </edge>
- <edge id=":443101921_3" function="internal">
- <lane id=":443101921_3_0" index="0" speed="18.06" length="5.05" shape="1430.19,888.71 1431.00,889.84 1431.97,890.42 1433.10,890.46 1434.39,889.95"/>
- </edge>
- <edge id=":443101921_4" function="internal">
- <lane id=":443101921_4_0" index="0" speed="18.06" length="4.68" shape="1430.19,888.71 1432.35,892.86"/>
- </edge>
- <edge id=":443101921_5" function="internal">
- <lane id=":443101921_5_0" index="0" speed="13.89" length="4.82" shape="1430.19,888.71 1430.03,890.19 1429.48,890.93 1428.56,890.95 1427.26,890.23"/>
- </edge>
- <edge id=":443101921_6" function="internal">
- <lane id=":443101921_6_0" index="0" speed="18.06" length="5.23" shape="1426.02,894.68 1427.13,893.82 1427.71,892.80 1427.75,891.60 1427.26,890.23"/>
- </edge>
- <edge id=":443101921_7" function="internal">
- <lane id=":443101921_7_0" index="0" speed="22.22" length="9.62" shape="1426.02,894.68 1434.39,889.95"/>
- </edge>
- <edge id=":443101921_8" function="internal">
- <lane id=":443101921_8_0" index="0" speed="22.22" length="6.89" shape="1426.02,894.68 1428.53,893.38 1430.42,892.65 1431.69,892.47 1432.35,892.86"/>
- </edge>
- <edge id=":443101938_0" function="internal">
- <lane id=":443101938_0_0" index="0" speed="22.22" length="0.10" shape="1568.44,1866.64 1568.44,1866.64"/>
- </edge>
- <edge id=":444026884_0" function="internal">
- <lane id=":444026884_0_0" index="0" speed="27.78" length="18.86" shape="765.16,1292.44 760.34,1295.28 757.03,1297.22 753.72,1299.15 748.89,1301.97"/>
- </edge>
- <edge id=":444026884_1" function="internal">
- <lane id=":444026884_1_0" index="0" speed="27.78" length="18.85" shape="763.49,1289.60 758.67,1292.43 755.36,1294.37 752.06,1296.30 747.23,1299.12"/>
- </edge>
- <edge id=":444026884_2" function="internal">
- <lane id=":444026884_2_0" index="0" speed="25.00" length="10.10" shape="763.49,1289.60 759.45,1291.85 756.63,1293.15 755.02,1293.50 754.64,1292.89"/>
- </edge>
- <edge id=":444026884_3" function="internal">
- <lane id=":444026884_3_0" index="0" speed="27.78" length="2.41" shape="763.49,1289.60 762.01,1289.51 761.23,1289.01"/>
- </edge>
- <edge id=":444026884_11" function="internal">
- <lane id=":444026884_11_0" index="0" speed="27.78" length="2.41" shape="761.23,1289.01 761.17,1288.09 761.82,1286.75"/>
- </edge>
- <edge id=":444026884_4" function="internal">
- <lane id=":444026884_4_0" index="0" speed="25.00" length="13.90" shape="743.90,1293.42 749.10,1290.74 752.63,1289.76 754.47,1290.48 754.64,1292.89"/>
- </edge>
- <edge id=":444026884_5" function="internal">
- <lane id=":444026884_5_0" index="0" speed="27.78" length="18.82" shape="743.90,1293.42 748.73,1290.60 752.03,1288.67 755.33,1286.74 760.15,1283.91"/>
- </edge>
- <edge id=":444026884_6" function="internal">
- <lane id=":444026884_6_0" index="0" speed="27.78" length="18.84" shape="745.56,1296.27 750.39,1293.45 753.70,1291.52 757.00,1289.59 761.82,1286.75"/>
- </edge>
- <edge id=":444026884_7" function="internal">
- <lane id=":444026884_7_0" index="0" speed="27.78" length="2.41" shape="745.56,1296.27 747.05,1296.36 747.82,1296.86"/>
- </edge>
- <edge id=":444026884_12" function="internal">
- <lane id=":444026884_12_0" index="0" speed="27.78" length="2.41" shape="747.82,1296.86 747.88,1297.79 747.23,1299.12"/>
- </edge>
- <edge id=":444026884_8" function="internal">
- <lane id=":444026884_8_0" index="0" speed="25.00" length="5.04" shape="753.27,1299.48 753.00,1299.61 752.18,1300.07 750.81,1300.85 748.89,1301.97"/>
- </edge>
- <edge id=":444026884_9" function="internal">
- <lane id=":444026884_9_0" index="0" speed="22.22" length="6.73" shape="753.27,1299.48 754.64,1292.89"/>
- </edge>
- <edge id=":444026884_10" function="internal">
- <lane id=":444026884_10_0" index="0" speed="25.00" length="5.09" shape="753.27,1299.48 754.49,1295.39 754.87,1294.66"/>
- </edge>
- <edge id=":444026884_13" function="internal">
- <lane id=":444026884_13_0" index="0" speed="25.00" length="10.69" shape="754.87,1294.66 756.32,1291.91 758.76,1289.03 761.82,1286.75"/>
- </edge>
- <edge id=":444026886_0" function="internal">
- <lane id=":444026886_0_0" index="0" speed="22.22" length="0.30" shape="783.32,1096.26 783.38,1095.97"/>
- </edge>
- <edge id=":444026889_0" function="internal">
- <lane id=":444026889_0_0" index="0" speed="22.22" length="6.87" shape="803.15,1079.82 802.19,1086.63"/>
- </edge>
- <edge id=":444026889_1" function="internal">
- <lane id=":444026889_1_0" index="0" speed="22.22" length="2.41" shape="803.15,1079.82 802.20,1080.96 801.33,1081.28"/>
- </edge>
- <edge id=":444026889_6" function="internal">
- <lane id=":444026889_6_0" index="0" speed="22.22" length="2.41" shape="801.33,1081.28 800.56,1080.77 799.88,1079.45"/>
- </edge>
- <edge id=":444026889_2" function="internal">
- <lane id=":444026889_2_0" index="0" speed="22.22" length="6.15" shape="795.59,1083.47 797.36,1082.63 798.66,1081.68 799.50,1080.62 799.88,1079.45"/>
- </edge>
- <edge id=":444026889_3" function="internal">
- <lane id=":444026889_3_0" index="0" speed="22.22" length="9.79" shape="795.59,1083.47 798.82,1082.56 801.00,1082.79 802.12,1084.14 802.19,1086.63"/>
- </edge>
- <edge id=":444026889_4" function="internal">
- <lane id=":444026889_4_0" index="0" speed="22.22" length="6.75" shape="798.93,1086.14 799.88,1079.45"/>
- </edge>
- <edge id=":444026889_5" function="internal">
- <lane id=":444026889_5_0" index="0" speed="22.22" length="2.41" shape="798.93,1086.14 799.93,1085.03 800.80,1084.75"/>
- </edge>
- <edge id=":444026889_7" function="internal">
- <lane id=":444026889_7_0" index="0" speed="22.22" length="2.41" shape="800.80,1084.75 801.56,1085.28 802.19,1086.63"/>
- </edge>
- <edge id=":444026917_0" function="internal">
- <lane id=":444026917_0_0" index="0" speed="22.22" length="6.33" shape="1040.99,861.82 1038.07,856.21"/>
- </edge>
- <edge id=":444026917_1" function="internal">
- <lane id=":444026917_1_0" index="0" speed="22.22" length="5.16" shape="1040.99,861.82 1040.52,860.49 1040.58,859.32 1041.17,858.31 1042.28,857.45"/>
- </edge>
- <edge id=":444026917_2" function="internal">
- <lane id=":444026917_2_0" index="0" speed="22.22" length="5.15" shape="1036.78,860.57 1037.89,859.71 1038.48,858.70 1038.54,857.53 1038.07,856.21"/>
- </edge>
- <edge id=":444026917_3" function="internal">
- <lane id=":444026917_3_0" index="0" speed="22.22" length="6.33" shape="1036.78,860.57 1042.28,857.45"/>
- </edge>
- <edge id=":445506213_0" function="internal">
- <lane id=":445506213_0_0" index="0" speed="22.22" length="0.52" shape="703.62,1856.95 703.63,1857.47"/>
- </edge>
- <edge id=":445506215_0" function="internal">
- <lane id=":445506215_0_0" index="0" speed="22.22" length="12.04" shape="759.69,2250.12 760.59,2253.21 762.37,2254.96 765.02,2255.35 768.55,2254.40"/>
- </edge>
- <edge id=":445506215_1" function="internal">
- <lane id=":445506215_1_0" index="0" speed="22.22" length="11.70" shape="759.69,2250.12 760.44,2252.77 761.97,2254.96 764.29,2256.71 767.40,2258.01"/>
- </edge>
- <edge id=":445506215_2" function="internal">
- <lane id=":445506215_2_0" index="0" speed="22.22" length="8.42" shape="759.69,2250.12 760.70,2258.48"/>
- </edge>
- <edge id=":445506215_3" function="internal">
- <lane id=":445506215_3_0" index="0" speed="22.22" length="14.34" shape="755.87,2250.00 759.05,2252.89 762.23,2254.59 765.39,2255.10 768.55,2254.40"/>
- </edge>
- <edge id=":445506215_4" function="internal">
- <lane id=":445506215_4_0" index="0" speed="22.22" length="14.34" shape="755.87,2250.00 758.73,2253.15 760.90,2255.18 763.44,2256.62 767.40,2258.01"/>
- </edge>
- <edge id=":445506215_5" function="internal">
- <lane id=":445506215_5_0" index="0" speed="22.22" length="16.11" shape="753.43,2252.23 756.65,2255.75 759.10,2258.01 761.97,2259.61 766.43,2261.17"/>
- </edge>
- <edge id=":445506215_6" function="internal">
- <lane id=":445506215_6_0" index="0" speed="22.22" length="9.59" shape="753.43,2252.23 760.70,2258.48"/>
- </edge>
- <edge id=":445506215_7" function="internal">
- <lane id=":445506215_7_0" index="0" speed="22.22" length="13.33" shape="757.19,2261.16 759.79,2258.86 762.44,2257.15 765.31,2255.75 768.55,2254.40"/>
- </edge>
- <edge id=":445506215_8" function="internal">
- <lane id=":445506215_8_0" index="0" speed="22.22" length="9.60" shape="757.19,2261.16 758.57,2260.34 760.57,2260.07 763.19,2260.35 766.43,2261.17"/>
- </edge>
- <edge id=":445506215_9" function="internal">
- <lane id=":445506215_9_0" index="0" speed="22.22" length="4.62" shape="757.19,2261.16 758.69,2259.68 759.78,2258.74 760.45,2258.34 760.70,2258.48"/>
- </edge>
- <edge id=":445506216_0" function="internal">
- <lane id=":445506216_0_0" index="0" speed="25.00" length="5.00" shape="976.84,1924.81 976.03,1923.71 975.06,1923.13 973.93,1923.08 972.64,1923.55"/>
- </edge>
- <edge id=":445506216_1" function="internal">
- <lane id=":445506216_1_0" index="0" speed="27.78" length="6.18" shape="976.84,1924.81 973.95,1919.35"/>
- </edge>
- <edge id=":445506216_2" function="internal">
- <lane id=":445506216_2_0" index="0" speed="27.78" length="2.41" shape="976.84,1924.81 976.98,1923.33 977.52,1922.58"/>
- </edge>
- <edge id=":445506216_6" function="internal">
- <lane id=":445506216_6_0" index="0" speed="27.78" length="2.41" shape="977.52,1922.58 978.44,1922.55 979.75,1923.25"/>
- </edge>
- <edge id=":445506216_3" function="internal">
- <lane id=":445506216_3_0" index="0" speed="27.78" length="6.15" shape="976.87,1917.82 979.75,1923.25"/>
- </edge>
- <edge id=":445506216_4" function="internal">
- <lane id=":445506216_4_0" index="0" speed="25.00" length="4.69" shape="976.87,1917.82 977.13,1919.19 976.52,1920.60 975.26,1921.82"/>
- </edge>
- <edge id=":445506216_7" function="internal">
- <lane id=":445506216_7_0" index="0" speed="25.00" length="3.14" shape="975.26,1921.82 975.02,1922.05 972.64,1923.55"/>
- </edge>
- <edge id=":445506216_5" function="internal">
- <lane id=":445506216_5_0" index="0" speed="27.78" length="2.41" shape="976.87,1917.82 976.71,1919.30 976.17,1920.05"/>
- </edge>
- <edge id=":445506216_8" function="internal">
- <lane id=":445506216_8_0" index="0" speed="27.78" length="2.41" shape="976.17,1920.05 975.25,1920.06 973.95,1919.35"/>
- </edge>
- <edge id=":445506217_0" function="internal">
- <lane id=":445506217_0_0" index="0" speed="22.22" length="6.61" shape="734.00,2051.66 732.55,2052.68 731.59,2053.93 731.12,2055.41 731.14,2057.12"/>
- </edge>
- <edge id=":445506217_1" function="internal">
- <lane id=":445506217_1_0" index="0" speed="22.22" length="7.54" shape="734.00,2051.66 727.29,2055.09"/>
- </edge>
- <edge id=":445506217_2" function="internal">
- <lane id=":445506217_2_0" index="0" speed="22.22" length="7.54" shape="730.16,2049.64 731.14,2057.12"/>
- </edge>
- <edge id=":445506217_3" function="internal">
- <lane id=":445506217_3_0" index="0" speed="22.22" length="6.61" shape="730.16,2049.64 730.15,2051.42 729.66,2052.92 728.71,2054.14 727.29,2055.09"/>
- </edge>
- <edge id=":445506220_0" function="internal">
- <lane id=":445506220_0_0" index="0" speed="22.22" length="6.31" shape="747.17,1490.20 745.69,1488.89 744.53,1488.65 743.70,1489.49 743.18,1491.39"/>
- </edge>
- <edge id=":445506220_1" function="internal">
- <lane id=":445506220_1_0" index="0" speed="22.22" length="12.30" shape="747.17,1490.20 744.52,1486.94 742.71,1484.09 741.73,1481.62 741.59,1479.55"/>
- </edge>
- <edge id=":445506220_2" function="internal">
- <lane id=":445506220_2_0" index="0" speed="22.22" length="4.82" shape="747.17,1490.20 746.96,1488.72 747.31,1487.87 748.20,1487.63 749.64,1488.00"/>
- </edge>
- <edge id=":445506220_3" function="internal">
- <lane id=":445506220_3_0" index="0" speed="22.22" length="9.46" shape="744.85,1480.03 745.03,1481.36 745.89,1483.14 747.42,1485.35 749.64,1488.00"/>
- </edge>
- <edge id=":445506220_4" function="internal">
- <lane id=":445506220_4_0" index="0" speed="22.22" length="11.48" shape="744.85,1480.03 744.39,1483.20 744.02,1485.71 743.64,1488.22 743.18,1491.39"/>
- </edge>
- <edge id=":445506220_5" function="internal">
- <lane id=":445506220_5_0" index="0" speed="22.22" length="2.41" shape="744.85,1480.03 743.86,1481.14 742.98,1481.43"/>
- </edge>
- <edge id=":445506220_9" function="internal">
- <lane id=":445506220_9_0" index="0" speed="22.22" length="2.41" shape="742.98,1481.43 742.22,1480.90 741.59,1479.55"/>
- </edge>
- <edge id=":445506220_6" function="internal">
- <lane id=":445506220_6_0" index="0" speed="22.22" length="11.47" shape="739.91,1490.90 740.38,1487.74 740.75,1485.23 741.12,1482.72 741.59,1479.55"/>
- </edge>
- <edge id=":445506220_7" function="internal">
- <lane id=":445506220_7_0" index="0" speed="22.22" length="8.68" shape="739.91,1490.90 741.18,1486.27 743.22,1484.25 744.20,1484.45"/>
- </edge>
- <edge id=":445506220_10" function="internal">
- <lane id=":445506220_10_0" index="0" speed="22.22" length="6.68" shape="744.20,1484.45 746.04,1484.82 749.64,1488.00"/>
- </edge>
- <edge id=":445506220_8" function="internal">
- <lane id=":445506220_8_0" index="0" speed="22.22" length="2.41" shape="739.91,1490.90 740.91,1489.80 741.78,1489.51"/>
- </edge>
- <edge id=":445506220_11" function="internal">
- <lane id=":445506220_11_0" index="0" speed="22.22" length="2.41" shape="741.78,1489.51 742.54,1490.04 743.18,1491.39"/>
- </edge>
- <edge id=":445506221_0" function="internal">
- <lane id=":445506221_0_0" index="0" speed="22.22" length="6.40" shape="714.57,2063.01 713.69,2056.67"/>
- </edge>
- <edge id=":445506221_1" function="internal">
- <lane id=":445506221_1_0" index="0" speed="22.22" length="2.41" shape="714.57,2063.01 715.21,2061.67 715.97,2061.15"/>
- </edge>
- <edge id=":445506221_6" function="internal">
- <lane id=":445506221_6_0" index="0" speed="22.22" length="2.41" shape="715.97,2061.15 716.84,2061.44 717.83,2062.55"/>
- </edge>
- <edge id=":445506221_2" function="internal">
- <lane id=":445506221_2_0" index="0" speed="22.22" length="5.58" shape="720.80,2058.27 719.36,2059.16 718.39,2060.16 717.88,2061.29 717.83,2062.55"/>
- </edge>
- <edge id=":445506221_3" function="internal">
- <lane id=":445506221_3_0" index="0" speed="22.22" length="8.89" shape="720.80,2058.27 717.93,2059.36 715.79,2059.46 714.38,2058.56 713.69,2056.67"/>
- </edge>
- <edge id=":445506221_4" function="internal">
- <lane id=":445506221_4_0" index="0" speed="22.22" length="6.38" shape="716.96,2056.23 717.83,2062.55"/>
- </edge>
- <edge id=":445506221_5" function="internal">
- <lane id=":445506221_5_0" index="0" speed="22.22" length="2.41" shape="716.96,2056.23 716.31,2057.57 715.55,2058.09"/>
- </edge>
- <edge id=":445506221_7" function="internal">
- <lane id=":445506221_7_0" index="0" speed="22.22" length="2.41" shape="715.55,2058.09 714.67,2057.79 713.69,2056.67"/>
- </edge>
- <edge id=":445823604_0" function="internal">
- <lane id=":445823604_0_0" index="0" speed="22.22" length="5.87" shape="767.16,2289.61 765.68,2290.56 764.68,2291.64 764.16,2292.84 764.11,2294.17"/>
- </edge>
- <edge id=":445823604_1" function="internal">
- <lane id=":445823604_1_0" index="0" speed="22.22" length="3.86" shape="767.16,2289.61 763.73,2291.39"/>
- </edge>
- <edge id=":445823604_2" function="internal">
- <lane id=":445823604_2_0" index="0" speed="22.22" length="2.81" shape="763.73,2291.39 764.11,2294.17"/>
- </edge>
- <edge id=":445823604_3" function="internal">
- <lane id=":445823604_3_0" index="0" speed="22.22" length="0.10" shape="763.73,2291.39 763.73,2291.39"/>
- </edge>
- <edge id=":446017735_0" function="internal">
- <lane id=":446017735_0_0" index="0" speed="22.22" length="5.38" shape="723.93,2226.63 725.47,2226.63 726.50,2226.12 727.01,2225.09 727.00,2223.55"/>
- </edge>
- <edge id=":446017735_1" function="internal">
- <lane id=":446017735_1_0" index="0" speed="22.22" length="6.71" shape="723.93,2226.63 730.40,2228.40"/>
- </edge>
- <edge id=":446017735_2" function="internal">
- <lane id=":446017735_2_0" index="0" speed="22.22" length="5.54" shape="723.46,2229.90 728.82,2231.30"/>
- </edge>
- <edge id=":446017738_0" function="internal">
- <lane id=":446017738_0_0" index="0" speed="22.22" length="10.32" shape="667.32,1330.28 666.10,1327.56 665.77,1325.50 666.01,1323.33 666.51,1320.30"/>
- </edge>
- <edge id=":446017738_1" function="internal">
- <lane id=":446017738_1_0" index="0" speed="22.22" length="6.10" shape="667.32,1330.28 667.15,1328.81 668.08,1327.12 670.03,1325.28"/>
- </edge>
- <edge id=":446017738_9" function="internal">
- <lane id=":446017738_9_0" index="0" speed="22.22" length="3.92" shape="670.03,1325.28 670.12,1325.20 673.27,1323.06"/>
- </edge>
- <edge id=":446017738_2" function="internal">
- <lane id=":446017738_2_0" index="0" speed="22.22" length="2.41" shape="667.32,1330.28 667.46,1328.80 667.99,1328.05"/>
- </edge>
- <edge id=":446017738_10" function="internal">
- <lane id=":446017738_10_0" index="0" speed="22.22" length="2.41" shape="667.99,1328.05 668.91,1328.02 670.23,1328.72"/>
- </edge>
- <edge id=":446017738_3" function="internal">
- <lane id=":446017738_3_0" index="0" speed="22.22" length="6.28" shape="669.78,1320.76 669.74,1322.72 670.31,1323.76 671.49,1323.87 673.27,1323.06"/>
- </edge>
- <edge id=":446017738_4" function="internal">
- <lane id=":446017738_4_0" index="0" speed="22.22" length="7.97" shape="669.78,1320.76 670.23,1328.72"/>
- </edge>
- <edge id=":446017738_5" function="internal">
- <lane id=":446017738_5_0" index="0" speed="22.22" length="2.41" shape="669.78,1320.76 668.79,1321.87 667.92,1322.17"/>
- </edge>
- <edge id=":446017738_11" function="internal">
- <lane id=":446017738_11_0" index="0" speed="22.22" length="2.41" shape="667.92,1322.17 667.16,1321.64 666.51,1320.30"/>
- </edge>
- <edge id=":446017738_6" function="internal">
- <lane id=":446017738_6_0" index="0" speed="22.22" length="7.14" shape="666.23,1327.30 665.96,1327.02 665.92,1325.77 666.10,1323.53 666.51,1320.30"/>
- </edge>
- <edge id=":446017738_7" function="internal">
- <lane id=":446017738_7_0" index="0" speed="22.22" length="8.22" shape="666.23,1327.30 673.27,1323.06"/>
- </edge>
- <edge id=":446017738_8" function="internal">
- <lane id=":446017738_8_0" index="0" speed="22.22" length="4.86" shape="666.23,1327.30 667.41,1326.86 668.47,1326.95 669.41,1327.57 670.23,1328.72"/>
- </edge>
- <edge id=":446017739_0" function="internal">
- <lane id=":446017739_0_0" index="0" speed="22.22" length="9.28" shape="754.78,1273.45 756.76,1271.98 758.26,1270.25 759.30,1268.27 759.86,1266.05"/>
- </edge>
- <edge id=":446017739_1" function="internal">
- <lane id=":446017739_1_0" index="0" speed="22.22" length="9.93" shape="754.78,1273.45 763.33,1268.39"/>
- </edge>
- <edge id=":446017739_2" function="internal">
- <lane id=":446017739_2_0" index="0" speed="22.22" length="9.93" shape="758.16,1275.83 759.86,1266.05"/>
- </edge>
- <edge id=":446017739_3" function="internal">
- <lane id=":446017739_3_0" index="0" speed="22.22" length="9.34" shape="758.16,1275.83 758.88,1273.46 759.98,1271.43 761.46,1269.74 763.33,1268.39"/>
- </edge>
- <edge id=":446017740_0" function="internal">
- <lane id=":446017740_0_0" index="0" speed="22.22" length="9.83" shape="754.67,1311.39 746.16,1316.30"/>
- </edge>
- <edge id=":446017740_1" function="internal">
- <lane id=":446017740_1_0" index="0" speed="22.22" length="6.14" shape="754.67,1311.39 752.81,1312.23 751.61,1312.19 751.08,1311.26 751.21,1309.44"/>
- </edge>
- <edge id=":446017740_2" function="internal">
- <lane id=":446017740_2_0" index="0" speed="22.22" length="6.17" shape="749.64,1318.65 749.66,1316.75 749.09,1315.72 747.92,1315.57 746.16,1316.30"/>
- </edge>
- <edge id=":446017740_3" function="internal">
- <lane id=":446017740_3_0" index="0" speed="22.22" length="9.35" shape="749.64,1318.65 751.21,1309.44"/>
- </edge>
- <edge id=":446017741_0" function="internal">
- <lane id=":446017741_0_0" index="0" speed="22.22" length="6.18" shape="776.62,1256.52 776.57,1258.43 777.13,1259.47 778.30,1259.63 780.07,1258.91"/>
- </edge>
- <edge id=":446017741_1" function="internal">
- <lane id=":446017741_1_0" index="0" speed="22.22" length="8.95" shape="776.62,1256.52 775.39,1265.38"/>
- </edge>
- <edge id=":446017741_2" function="internal">
- <lane id=":446017741_2_0" index="0" speed="22.22" length="2.41" shape="776.62,1256.52 775.62,1257.62 774.74,1257.90"/>
- </edge>
- <edge id=":446017741_9" function="internal">
- <lane id=":446017741_9_0" index="0" speed="22.22" length="2.41" shape="774.74,1257.90 773.99,1257.37 773.36,1256.03"/>
- </edge>
- <edge id=":446017741_3" function="internal">
- <lane id=":446017741_3_0" index="0" speed="22.22" length="11.17" shape="768.26,1265.58 770.08,1264.12 771.54,1262.04 772.63,1259.35 773.36,1256.03"/>
- </edge>
- <edge id=":446017741_4" function="internal">
- <lane id=":446017741_4_0" index="0" speed="22.22" length="13.56" shape="768.26,1265.58 771.33,1263.83 774.16,1262.22 776.99,1260.63 780.07,1258.91"/>
- </edge>
- <edge id=":446017741_5" function="internal">
- <lane id=":446017741_5_0" index="0" speed="22.22" length="4.43" shape="768.26,1265.58 771.56,1263.93 772.29,1263.75"/>
- </edge>
- <edge id=":446017741_10" function="internal">
- <lane id=":446017741_10_0" index="0" speed="22.22" length="4.55" shape="772.29,1263.75 773.85,1263.35 775.12,1263.83 775.39,1265.38"/>
- </edge>
- <edge id=":446017741_6" function="internal">
- <lane id=":446017741_6_0" index="0" speed="22.22" length="9.06" shape="772.11,1265.00 773.36,1256.03"/>
- </edge>
- <edge id=":446017741_7" function="internal">
- <lane id=":446017741_7_0" index="0" speed="22.22" length="5.34" shape="772.11,1265.00 772.69,1263.96 774.20,1262.59 775.94,1261.40"/>
- </edge>
- <edge id=":446017741_11" function="internal">
- <lane id=":446017741_11_0" index="0" speed="22.22" length="4.83" shape="775.94,1261.40 776.67,1260.91 780.07,1258.91"/>
- </edge>
- <edge id=":446017741_8" function="internal">
- <lane id=":446017741_8_0" index="0" speed="22.22" length="2.41" shape="772.11,1265.00 773.07,1263.87 773.94,1263.55"/>
- </edge>
- <edge id=":446017741_12" function="internal">
- <lane id=":446017741_12_0" index="0" speed="22.22" length="2.41" shape="773.94,1263.55 774.71,1264.06 775.39,1265.38"/>
- </edge>
- <edge id=":446017742_0" function="internal">
- <lane id=":446017742_0_0" index="0" speed="27.78" length="6.72" shape="901.86,1194.90 898.51,1189.07"/>
- </edge>
- <edge id=":446017742_1" function="internal">
- <lane id=":446017742_1_0" index="0" speed="27.78" length="6.51" shape="904.67,1193.17 901.42,1187.52"/>
- </edge>
- <edge id=":446017742_2" function="internal">
- <lane id=":446017742_2_0" index="0" speed="27.78" length="6.30" shape="907.47,1191.43 904.34,1185.97"/>
- </edge>
- <edge id=":446017742_3" function="internal">
- <lane id=":446017742_3_0" index="0" speed="25.00" length="5.05" shape="907.47,1191.43 906.92,1190.16 906.92,1189.03 907.47,1188.04 908.57,1187.19"/>
- </edge>
- <edge id=":446017742_4" function="internal">
- <lane id=":446017742_4_0" index="0" speed="25.00" length="4.35" shape="898.29,1192.96 898.96,1192.35 899.23,1191.49 899.07,1190.40 898.51,1189.07"/>
- </edge>
- <edge id=":446017742_5" function="internal">
- <lane id=":446017742_5_0" index="0" speed="22.22" length="11.79" shape="898.29,1192.96 901.12,1191.37 903.43,1190.08 905.74,1188.78 908.57,1187.19"/>
- </edge>
- <edge id=":446017743_0" function="internal">
- <lane id=":446017743_0_0" index="0" speed="25.00" length="5.04" shape="917.84,1178.34 918.65,1179.47 919.62,1180.05 920.75,1180.10 922.05,1179.59"/>
- </edge>
- <edge id=":446017743_1" function="internal">
- <lane id=":446017743_1_0" index="0" speed="27.78" length="6.92" shape="917.84,1178.34 920.88,1184.55"/>
- </edge>
- <edge id=":446017743_2" function="internal">
- <lane id=":446017743_2_0" index="0" speed="27.78" length="6.77" shape="914.91,1179.85 917.89,1185.94"/>
- </edge>
- <edge id=":446017743_3" function="internal">
- <lane id=":446017743_3_0" index="0" speed="27.78" length="6.63" shape="911.98,1181.37 914.89,1187.32"/>
- </edge>
- <edge id=":446017743_4" function="internal">
- <lane id=":446017743_4_0" index="0" speed="22.22" length="13.00" shape="910.72,1185.98 913.71,1184.29 916.38,1182.78 919.05,1181.28 922.05,1179.59"/>
- </edge>
- <edge id=":446017743_5" function="internal">
- <lane id=":446017743_5_0" index="0" speed="25.00" length="3.17" shape="910.72,1185.98 913.30,1184.77 913.61,1184.71"/>
- </edge>
- <edge id=":446017743_7" function="internal">
- <lane id=":446017743_7_0" index="0" speed="25.00" length="4.91" shape="913.61,1184.71 915.36,1184.36 916.89,1184.75 917.89,1185.94"/>
- </edge>
- <edge id=":446017743_6" function="internal">
- <lane id=":446017743_6_0" index="0" speed="25.00" length="5.10" shape="910.72,1185.98 912.03,1185.46 913.17,1185.52 914.12,1186.14 914.89,1187.32"/>
- </edge>
- <edge id=":446017744_0" function="internal">
- <lane id=":446017744_0_0" index="0" speed="22.22" length="11.34" shape="775.12,1299.55 773.25,1301.03 771.77,1303.13 770.66,1305.87 769.93,1309.23"/>
- </edge>
- <edge id=":446017744_1" function="internal">
- <lane id=":446017744_1_0" index="0" speed="22.22" length="13.75" shape="775.12,1299.55 772.03,1301.31 769.14,1302.96 766.27,1304.62 763.20,1306.41"/>
- </edge>
- <edge id=":446017744_2" function="internal">
- <lane id=":446017744_2_0" index="0" speed="22.22" length="4.45" shape="775.12,1299.55 771.77,1301.18 771.06,1301.35"/>
- </edge>
- <edge id=":446017744_9" function="internal">
- <lane id=":446017744_9_0" index="0" speed="22.22" length="4.73" shape="771.06,1301.35 769.47,1301.71 768.22,1301.12 768.01,1299.42"/>
- </edge>
- <edge id=":446017744_3" function="internal">
- <lane id=":446017744_3_0" index="0" speed="22.22" length="9.45" shape="771.28,1299.87 769.93,1309.23"/>
- </edge>
- <edge id=":446017744_4" function="internal">
- <lane id=":446017744_4_0" index="0" speed="22.22" length="5.57" shape="771.28,1299.87 770.67,1301.02 769.12,1302.49 767.39,1303.74"/>
- </edge>
- <edge id=":446017744_10" function="internal">
- <lane id=":446017744_10_0" index="0" speed="22.22" length="4.96" shape="767.39,1303.74 766.63,1304.29 763.20,1306.41"/>
- </edge>
- <edge id=":446017744_5" function="internal">
- <lane id=":446017744_5_0" index="0" speed="22.22" length="2.41" shape="771.28,1299.87 770.29,1300.99 769.42,1301.28"/>
- </edge>
- <edge id=":446017744_11" function="internal">
- <lane id=":446017744_11_0" index="0" speed="22.22" length="2.41" shape="769.42,1301.28 768.65,1300.76 768.01,1299.42"/>
- </edge>
- <edge id=":446017744_6" function="internal">
- <lane id=":446017744_6_0" index="0" speed="22.22" length="6.24" shape="766.67,1308.75 766.71,1306.81 766.15,1305.77 764.98,1305.64 763.20,1306.41"/>
- </edge>
- <edge id=":446017744_7" function="internal">
- <lane id=":446017744_7_0" index="0" speed="22.22" length="9.42" shape="766.67,1308.75 768.01,1299.42"/>
- </edge>
- <edge id=":446017744_8" function="internal">
- <lane id=":446017744_8_0" index="0" speed="22.22" length="2.41" shape="766.67,1308.75 767.66,1307.64 768.54,1307.35"/>
- </edge>
- <edge id=":446017744_12" function="internal">
- <lane id=":446017744_12_0" index="0" speed="22.22" length="2.41" shape="768.54,1307.35 769.29,1307.88 769.93,1309.23"/>
- </edge>
- <edge id=":446017746_0" function="internal">
- <lane id=":446017746_0_0" index="0" speed="25.00" length="5.06" shape="919.57,1221.63 918.78,1220.49 917.81,1219.89 916.68,1219.84 915.38,1220.35"/>
- </edge>
- <edge id=":446017746_1" function="internal">
- <lane id=":446017746_1_0" index="0" speed="27.78" length="6.28" shape="919.57,1221.63 916.63,1216.08"/>
- </edge>
- <edge id=":446017746_2" function="internal">
- <lane id=":446017746_2_0" index="0" speed="27.78" length="6.45" shape="922.52,1220.16 919.50,1214.46"/>
- </edge>
- <edge id=":446017746_3" function="internal">
- <lane id=":446017746_3_0" index="0" speed="22.22" length="9.58" shape="923.73,1215.66 915.38,1220.35"/>
- </edge>
- <edge id=":446017746_4" function="internal">
- <lane id=":446017746_4_0" index="0" speed="25.00" length="5.01" shape="923.73,1215.66 922.45,1216.15 921.32,1216.12 920.34,1215.55 919.50,1214.46"/>
- </edge>
- <edge id=":446017747_0" function="internal">
- <lane id=":446017747_0_0" index="0" speed="25.00" length="5.29" shape="934.27,1209.75 933.13,1210.62 932.53,1211.66 932.47,1212.86 932.95,1214.23"/>
- </edge>
- <edge id=":446017747_1" function="internal">
- <lane id=":446017747_1_0" index="0" speed="22.22" length="9.69" shape="934.27,1209.75 925.82,1214.49"/>
- </edge>
- <edge id=":446017747_2" function="internal">
- <lane id=":446017747_2_0" index="0" speed="27.78" length="6.49" shape="930.10,1208.40 932.95,1214.23"/>
- </edge>
- <edge id=":446017747_3" function="internal">
- <lane id=":446017747_3_0" index="0" speed="27.78" length="6.64" shape="927.10,1209.78 930.02,1215.75"/>
- </edge>
- <edge id=":446017747_4" function="internal">
- <lane id=":446017747_4_0" index="0" speed="25.00" length="5.47" shape="927.10,1209.78 927.57,1211.26 927.51,1212.54 926.93,1213.62 925.82,1214.49"/>
- </edge>
- <edge id=":446766148_0" function="internal">
- <lane id=":446766148_0_0" index="0" speed="22.22" length="4.82" shape="59.07,2230.05 57.59,2229.95 56.82,2229.44 56.77,2228.52 57.43,2227.19"/>
- </edge>
- <edge id=":446766149_0" function="internal">
- <lane id=":446766149_0_0" index="0" speed="22.22" length="5.54" shape="676.66,1878.08 676.20,1876.53 675.40,1875.70 674.25,1875.59 672.76,1876.19"/>
- </edge>
- <edge id=":446766149_1" function="internal">
- <lane id=":446766149_1_0" index="0" speed="22.22" length="10.24" shape="676.66,1878.08 676.22,1875.11 675.93,1873.01 675.68,1870.91 675.34,1867.92"/>
- </edge>
- <edge id=":446766149_2" function="internal">
- <lane id=":446766149_2_0" index="0" speed="22.22" length="8.80" shape="676.66,1878.08 676.43,1874.92 676.81,1872.65 677.79,1871.29 679.38,1870.82"/>
- </edge>
- <edge id=":446766149_3" function="internal">
- <lane id=":446766149_3_0" index="0" speed="22.22" length="6.97" shape="679.41,1874.12 672.76,1876.19"/>
- </edge>
- <edge id=":446766149_4" function="internal">
- <lane id=":446766149_4_0" index="0" speed="22.22" length="4.15" shape="679.41,1874.12 677.89,1873.75 676.70,1872.59 676.33,1871.74"/>
- </edge>
- <edge id=":446766149_9" function="internal">
- <lane id=":446766149_9_0" index="0" speed="22.22" length="3.97" shape="676.33,1871.74 675.85,1870.65 675.34,1867.92"/>
- </edge>
- <edge id=":446766149_5" function="internal">
- <lane id=":446766149_5_0" index="0" speed="22.22" length="2.41" shape="679.41,1874.12 678.17,1873.31 677.75,1872.49"/>
- </edge>
- <edge id=":446766149_10" function="internal">
- <lane id=":446766149_10_0" index="0" speed="22.22" length="2.41" shape="677.75,1872.49 678.15,1871.66 679.38,1870.82"/>
- </edge>
- <edge id=":446766149_6" function="internal">
- <lane id=":446766149_6_0" index="0" speed="22.22" length="7.23" shape="671.11,1873.33 673.08,1872.01 674.44,1870.67 675.19,1869.31 675.34,1867.92"/>
- </edge>
- <edge id=":446766149_7" function="internal">
- <lane id=":446766149_7_0" index="0" speed="22.22" length="8.64" shape="671.11,1873.33 679.38,1870.82"/>
- </edge>
- <edge id=":446766149_8" function="internal">
- <lane id=":446766149_8_0" index="0" speed="22.22" length="2.41" shape="671.11,1873.33 672.59,1873.43 673.36,1873.94"/>
- </edge>
- <edge id=":446766149_11" function="internal">
- <lane id=":446766149_11_0" index="0" speed="22.22" length="2.41" shape="673.36,1873.94 673.42,1874.86 672.76,1876.19"/>
- </edge>
- <edge id=":446770956_0" function="internal">
- <lane id=":446770956_0_0" index="0" speed="22.22" length="4.82" shape="0.79,2039.12 -0.69,2038.98 -1.45,2038.46 -1.48,2037.54 -0.79,2036.22"/>
- </edge>
- <edge id=":446770959_0" function="internal">
- <lane id=":446770959_0_0" index="0" speed="22.22" length="5.00" shape="694.32,1682.82 695.69,1682.83 696.73,1682.39 697.45,1681.52 697.83,1680.20"/>
- </edge>
- <edge id=":446770959_1" function="internal">
- <lane id=":446770959_1_0" index="0" speed="22.22" length="2.41" shape="694.32,1682.82 695.42,1683.82 695.71,1684.70"/>
- </edge>
- <edge id=":446770959_4" function="internal">
- <lane id=":446770959_4_0" index="0" speed="22.22" length="2.41" shape="695.71,1684.70 695.19,1685.45 693.84,1686.09"/>
- </edge>
- <edge id=":446770959_2" function="internal">
- <lane id=":446770959_2_0" index="0" speed="22.22" length="5.01" shape="696.47,1689.60 696.47,1688.23 696.04,1687.19 695.16,1686.48 693.84,1686.09"/>
- </edge>
- <edge id=":446770959_3" function="internal">
- <lane id=":446770959_3_0" index="0" speed="22.22" length="9.50" shape="696.47,1689.60 697.83,1680.20"/>
- </edge>
- <edge id=":450564002_0" function="internal">
- <lane id=":450564002_0_0" index="0" speed="22.22" length="5.47" shape="787.66,2466.00 788.09,2467.52 788.88,2468.36 790.02,2468.52 791.52,2468.00"/>
- </edge>
- <edge id=":450564002_1" function="internal">
- <lane id=":450564002_1_0" index="0" speed="22.22" length="7.95" shape="787.66,2466.00 788.71,2473.87"/>
- </edge>
- <edge id=":450564002_2" function="internal">
- <lane id=":450564002_2_0" index="0" speed="22.22" length="7.93" shape="784.78,2472.17 791.52,2468.00"/>
- </edge>
- <edge id=":450564002_3" function="internal">
- <lane id=":450564002_3_0" index="0" speed="22.22" length="5.76" shape="784.78,2472.17 786.30,2471.36 787.46,2471.37 788.26,2472.21 788.71,2473.87"/>
- </edge>
- <edge id=":450564003_0" function="internal">
- <lane id=":450564003_0_0" index="0" speed="22.22" length="6.24" shape="1160.20,2280.52 1157.31,2274.98"/>
- </edge>
- <edge id=":450564003_1" function="internal">
- <lane id=":450564003_1_0" index="0" speed="22.22" length="4.73" shape="1160.20,2280.52 1159.93,2279.14 1160.54,2277.72 1161.82,2276.48"/>
- </edge>
- <edge id=":450564003_9" function="internal">
- <lane id=":450564003_9_0" index="0" speed="22.22" length="3.12" shape="1161.82,2276.48 1162.04,2276.26 1164.43,2274.78"/>
- </edge>
- <edge id=":450564003_2" function="internal">
- <lane id=":450564003_2_0" index="0" speed="22.22" length="2.41" shape="1160.20,2280.52 1160.35,2279.04 1160.89,2278.29"/>
- </edge>
- <edge id=":450564003_10" function="internal">
- <lane id=":450564003_10_0" index="0" speed="22.22" length="2.41" shape="1160.89,2278.29 1161.81,2278.27 1163.12,2278.98"/>
- </edge>
- <edge id=":450564003_3" function="internal">
- <lane id=":450564003_3_0" index="0" speed="22.22" length="5.01" shape="1160.24,2273.47 1161.04,2274.59 1162.01,2275.18 1163.13,2275.24 1164.43,2274.78"/>
- </edge>
- <edge id=":450564003_4" function="internal">
- <lane id=":450564003_4_0" index="0" speed="22.22" length="6.21" shape="1160.24,2273.47 1163.12,2278.98"/>
- </edge>
- <edge id=":450564003_5" function="internal">
- <lane id=":450564003_5_0" index="0" speed="22.22" length="2.41" shape="1160.24,2273.47 1160.08,2274.95 1159.53,2275.69"/>
- </edge>
- <edge id=":450564003_11" function="internal">
- <lane id=":450564003_11_0" index="0" speed="22.22" length="2.41" shape="1159.53,2275.69 1158.61,2275.71 1157.31,2274.98"/>
- </edge>
- <edge id=":450564003_6" function="internal">
- <lane id=":450564003_6_0" index="0" speed="22.22" length="5.03" shape="1156.00,2279.20 1157.11,2278.40 1157.70,2277.43 1157.77,2276.29 1157.31,2274.98"/>
- </edge>
- <edge id=":450564003_7" function="internal">
- <lane id=":450564003_7_0" index="0" speed="22.22" length="9.52" shape="1156.00,2279.20 1164.43,2274.78"/>
- </edge>
- <edge id=":450564003_8" function="internal">
- <lane id=":450564003_8_0" index="0" speed="22.22" length="3.13" shape="1156.00,2279.20 1158.58,2278.08 1158.90,2278.02"/>
- </edge>
- <edge id=":450564003_12" function="internal">
- <lane id=":450564003_12_0" index="0" speed="22.22" length="4.71" shape="1158.90,2278.02 1160.62,2277.67 1162.14,2277.97 1163.12,2278.98"/>
- </edge>
- <edge id=":450564004_0" function="internal">
- <lane id=":450564004_0_0" index="0" speed="22.22" length="5.04" shape="1383.42,2161.40 1382.94,2160.10 1383.00,2158.97 1383.60,2158.00 1384.73,2157.21"/>
- </edge>
- <edge id=":450564004_1" function="internal">
- <lane id=":450564004_1_0" index="0" speed="22.22" length="6.24" shape="1379.19,2160.09 1384.73,2157.21"/>
- </edge>
- <edge id=":450564005_0" function="internal">
- <lane id=":450564005_0_0" index="0" speed="22.22" length="6.41" shape="1398.78,2146.58 1400.22,2152.83"/>
- </edge>
- <edge id=":450564005_1" function="internal">
- <lane id=":450564005_1_0" index="0" speed="22.22" length="2.41" shape="1398.78,2146.58 1398.62,2148.06 1398.08,2148.81"/>
- </edge>
- <edge id=":450564005_4" function="internal">
- <lane id=":450564005_4_0" index="0" speed="22.22" length="2.41" shape="1398.08,2148.81 1397.16,2148.83 1395.85,2148.11"/>
- </edge>
- <edge id=":450564005_2" function="internal">
- <lane id=":450564005_2_0" index="0" speed="22.22" length="5.02" shape="1394.51,2152.29 1395.64,2151.50 1396.24,2150.54 1396.31,2149.41 1395.85,2148.11"/>
- </edge>
- <edge id=":450564005_3" function="internal">
- <lane id=":450564005_3_0" index="0" speed="22.22" length="6.42" shape="1394.51,2152.29 1396.46,2151.51 1398.07,2151.35 1399.32,2151.79 1400.22,2152.83"/>
- </edge>
- <edge id=":450564006_0" function="internal">
- <lane id=":450564006_0_0" index="0" speed="22.22" length="8.59" shape="1401.26,2154.77 1405.43,2162.27"/>
- </edge>
- <edge id=":450564006_1" function="internal">
- <lane id=":450564006_1_0" index="0" speed="22.22" length="7.89" shape="1401.26,2154.77 1402.41,2157.33 1402.84,2159.38 1402.53,2160.89 1401.49,2161.89"/>
- </edge>
- <edge id=":450564006_2" function="internal">
- <lane id=":450564006_2_0" index="0" speed="22.22" length="2.97" shape="1399.97,2158.96 1401.33,2158.63 1402.69,2159.08 1402.79,2159.17"/>
- </edge>
- <edge id=":450564006_4" function="internal">
- <lane id=":450564006_4_0" index="0" speed="22.22" length="4.10" shape="1402.79,2159.17 1404.06,2160.29 1405.43,2162.27"/>
- </edge>
- <edge id=":450564006_3" function="internal">
- <lane id=":450564006_3_0" index="0" speed="22.22" length="2.41" shape="1399.97,2158.96 1401.44,2159.12 1402.19,2159.66"/>
- </edge>
- <edge id=":450564006_5" function="internal">
- <lane id=":450564006_5_0" index="0" speed="22.22" length="2.41" shape="1402.19,2159.66 1402.20,2160.58 1401.49,2161.89"/>
- </edge>
- <edge id=":452425486_0" function="internal">
- <lane id=":452425486_0_0" index="0" speed="5.56" length="4.96" shape="1348.31,1947.87 1346.19,1943.38"/>
- </edge>
- <edge id=":452425486_1" function="internal">
- <lane id=":452425486_1_0" index="0" speed="13.89" length="7.01" shape="1348.31,1947.87 1348.36,1947.08 1349.21,1946.08 1350.88,1944.87 1353.35,1943.44"/>
- </edge>
- <edge id=":452425486_2" function="internal">
- <lane id=":452425486_2_0" index="0" speed="5.56" length="4.82" shape="1348.31,1947.87 1348.47,1946.39 1349.01,1945.64 1349.93,1945.62 1351.23,1946.34"/>
- </edge>
- <edge id=":452425486_3" function="internal">
- <lane id=":452425486_3_0" index="0" speed="13.89" length="5.08" shape="1349.20,1942.03 1349.95,1943.21 1350.89,1943.84 1352.03,1943.92 1353.35,1943.44"/>
- </edge>
- <edge id=":452425486_4" function="internal">
- <lane id=":452425486_4_0" index="0" speed="5.56" length="4.77" shape="1349.20,1942.03 1351.23,1946.34"/>
- </edge>
- <edge id=":452425486_5" function="internal">
- <lane id=":452425486_5_0" index="0" speed="5.56" length="4.82" shape="1349.20,1942.03 1348.95,1943.49 1348.37,1944.21 1347.45,1944.17 1346.19,1943.38"/>
- </edge>
- <edge id=":452425486_6" function="internal">
- <lane id=":452425486_6_0" index="0" speed="13.89" length="5.63" shape="1344.91,1948.28 1346.01,1947.35 1346.59,1946.22 1346.65,1944.90 1346.19,1943.38"/>
- </edge>
- <edge id=":452425486_7" function="internal">
- <lane id=":452425486_7_0" index="0" speed="22.22" length="9.73" shape="1344.91,1948.28 1353.35,1943.44"/>
- </edge>
- <edge id=":452425486_8" function="internal">
- <lane id=":452425486_8_0" index="0" speed="13.89" length="6.99" shape="1344.91,1948.28 1347.39,1946.88 1349.27,1946.09 1350.55,1945.91 1351.23,1946.34"/>
- </edge>
- <edge id=":452425487_0" function="internal">
- <lane id=":452425487_0_0" index="0" speed="9.72" length="5.02" shape="1316.67,1877.36 1315.88,1876.23 1314.91,1875.63 1313.78,1875.57 1312.49,1876.04"/>
- </edge>
- <edge id=":452425487_1" function="internal">
- <lane id=":452425487_1_0" index="0" speed="5.56" length="9.60" shape="1316.67,1877.36 1312.29,1868.81"/>
- </edge>
- <edge id=":452425487_2" function="internal">
- <lane id=":452425487_2_0" index="0" speed="9.72" length="10.42" shape="1316.67,1877.36 1315.75,1874.66 1315.89,1872.30 1317.11,1870.28 1319.41,1868.60"/>
- </edge>
- <edge id=":452425487_3" function="internal">
- <lane id=":452425487_3_0" index="0" speed="5.56" length="4.82" shape="1316.67,1877.36 1316.84,1875.88 1317.39,1875.14 1318.31,1875.13 1319.61,1875.85"/>
- </edge>
- <edge id=":452425487_4" function="internal">
- <lane id=":452425487_4_0" index="0" speed="9.72" length="5.16" shape="1320.96,1871.51 1319.83,1872.35 1319.22,1873.35 1319.15,1874.52 1319.61,1875.85"/>
- </edge>
- <edge id=":452425487_5" function="internal">
- <lane id=":452425487_5_0" index="0" speed="13.89" length="9.61" shape="1320.96,1871.51 1312.49,1876.04"/>
- </edge>
- <edge id=":452425487_6" function="internal">
- <lane id=":452425487_6_0" index="0" speed="9.72" length="7.15" shape="1320.96,1871.51 1318.28,1872.49 1315.94,1872.36 1314.28,1871.34"/>
- </edge>
- <edge id=":452425487_16" function="internal">
- <lane id=":452425487_16_0" index="0" speed="9.72" length="3.25" shape="1314.28,1871.34 1313.94,1871.14 1312.29,1868.81"/>
- </edge>
- <edge id=":452425487_7" function="internal">
- <lane id=":452425487_7_0" index="0" speed="13.89" length="2.41" shape="1320.96,1871.51 1319.48,1871.37 1318.73,1870.83"/>
- </edge>
- <edge id=":452425487_17" function="internal">
- <lane id=":452425487_17_0" index="0" speed="13.89" length="2.41" shape="1318.73,1870.83 1318.70,1869.91 1319.41,1868.60"/>
- </edge>
- <edge id=":452425487_8" function="internal">
- <lane id=":452425487_8_0" index="0" speed="9.72" length="5.02" shape="1315.22,1867.30 1316.02,1868.42 1316.98,1869.01 1318.11,1869.07 1319.41,1868.60"/>
- </edge>
- <edge id=":452425487_9" function="internal">
- <lane id=":452425487_9_0" index="0" speed="5.56" length="9.62" shape="1315.22,1867.30 1319.61,1875.85"/>
- </edge>
- <edge id=":452425487_10" function="internal">
- <lane id=":452425487_10_0" index="0" speed="9.72" length="10.41" shape="1315.22,1867.30 1316.15,1869.99 1316.01,1872.34 1314.79,1874.36 1312.49,1876.04"/>
- </edge>
- <edge id=":452425487_11" function="internal">
- <lane id=":452425487_11_0" index="0" speed="5.56" length="4.82" shape="1315.22,1867.30 1315.05,1868.78 1314.51,1869.52 1313.59,1869.53 1312.29,1868.81"/>
- </edge>
- <edge id=":452425487_12" function="internal">
- <lane id=":452425487_12_0" index="0" speed="9.72" length="5.15" shape="1310.93,1873.13 1312.07,1872.30 1312.68,1871.30 1312.75,1870.14 1312.29,1868.81"/>
- </edge>
- <edge id=":452425487_13" function="internal">
- <lane id=":452425487_13_0" index="0" speed="13.89" length="9.61" shape="1310.93,1873.13 1319.41,1868.60"/>
- </edge>
- <edge id=":452425487_14" function="internal">
- <lane id=":452425487_14_0" index="0" speed="9.72" length="7.15" shape="1310.93,1873.13 1313.62,1872.16 1315.96,1872.28 1317.62,1873.30"/>
- </edge>
- <edge id=":452425487_18" function="internal">
- <lane id=":452425487_18_0" index="0" speed="9.72" length="3.27" shape="1317.62,1873.30 1317.96,1873.52 1319.61,1875.85"/>
- </edge>
- <edge id=":452425487_15" function="internal">
- <lane id=":452425487_15_0" index="0" speed="13.89" length="2.41" shape="1310.93,1873.13 1312.41,1873.28 1313.16,1873.81"/>
- </edge>
- <edge id=":452425487_19" function="internal">
- <lane id=":452425487_19_0" index="0" speed="13.89" length="2.41" shape="1313.16,1873.81 1313.19,1874.73 1312.49,1876.04"/>
- </edge>
- <edge id=":452425488_0" function="internal">
- <lane id=":452425488_0_0" index="0" speed="9.72" length="5.03" shape="1279.75,1805.70 1278.96,1804.59 1277.99,1804.00 1276.86,1803.93 1275.55,1804.38"/>
- </edge>
- <edge id=":452425488_1" function="internal">
- <lane id=":452425488_1_0" index="0" speed="5.56" length="9.52" shape="1279.75,1805.70 1275.35,1797.27"/>
- </edge>
- <edge id=":452425488_2" function="internal">
- <lane id=":452425488_2_0" index="0" speed="9.72" length="10.33" shape="1279.75,1805.70 1278.83,1803.04 1278.97,1800.70 1280.19,1798.70 1282.47,1797.04"/>
- </edge>
- <edge id=":452425488_3" function="internal">
- <lane id=":452425488_3_0" index="0" speed="5.56" length="4.82" shape="1279.75,1805.70 1279.92,1804.23 1280.46,1803.48 1281.39,1803.47 1282.69,1804.19"/>
- </edge>
- <edge id=":452425488_4" function="internal">
- <lane id=":452425488_4_0" index="0" speed="9.72" length="5.05" shape="1284.02,1799.95 1282.90,1800.77 1282.30,1801.75 1282.23,1802.89 1282.69,1804.19"/>
- </edge>
- <edge id=":452425488_5" function="internal">
- <lane id=":452425488_5_0" index="0" speed="13.89" length="9.56" shape="1284.02,1799.95 1275.55,1804.38"/>
- </edge>
- <edge id=":452425488_6" function="internal">
- <lane id=":452425488_6_0" index="0" speed="9.72" length="7.18" shape="1284.02,1799.95 1281.35,1800.91 1279.02,1800.78 1277.30,1799.74"/>
- </edge>
- <edge id=":452425488_16" function="internal">
- <lane id=":452425488_16_0" index="0" speed="9.72" length="3.18" shape="1277.30,1799.74 1277.02,1799.57 1275.35,1797.27"/>
- </edge>
- <edge id=":452425488_7" function="internal">
- <lane id=":452425488_7_0" index="0" speed="13.89" length="2.41" shape="1284.02,1799.95 1282.54,1799.80 1281.79,1799.27"/>
- </edge>
- <edge id=":452425488_17" function="internal">
- <lane id=":452425488_17_0" index="0" speed="13.89" length="2.41" shape="1281.79,1799.27 1281.76,1798.35 1282.47,1797.04"/>
- </edge>
- <edge id=":452425488_8" function="internal">
- <lane id=":452425488_8_0" index="0" speed="9.72" length="5.02" shape="1278.27,1795.73 1279.08,1796.85 1280.05,1797.44 1281.18,1797.50 1282.47,1797.04"/>
- </edge>
- <edge id=":452425488_9" function="internal">
- <lane id=":452425488_9_0" index="0" speed="5.56" length="9.55" shape="1278.27,1795.73 1282.69,1804.19"/>
- </edge>
- <edge id=":452425488_10" function="internal">
- <lane id=":452425488_10_0" index="0" speed="9.72" length="10.37" shape="1278.27,1795.73 1279.23,1798.40 1279.09,1800.74 1277.87,1802.73 1275.55,1804.38"/>
- </edge>
- <edge id=":452425488_11" function="internal">
- <lane id=":452425488_11_0" index="0" speed="5.56" length="4.82" shape="1278.27,1795.73 1278.12,1797.21 1277.58,1797.96 1276.66,1797.98 1275.35,1797.27"/>
- </edge>
- <edge id=":452425488_12" function="internal">
- <lane id=":452425488_12_0" index="0" speed="9.72" length="5.01" shape="1274.04,1801.45 1275.16,1800.65 1275.75,1799.69 1275.81,1798.56 1275.35,1797.27"/>
- </edge>
- <edge id=":452425488_13" function="internal">
- <lane id=":452425488_13_0" index="0" speed="13.89" length="9.52" shape="1274.04,1801.45 1282.47,1797.04"/>
- </edge>
- <edge id=":452425488_14" function="internal">
- <lane id=":452425488_14_0" index="0" speed="9.72" length="7.13" shape="1274.04,1801.45 1276.72,1800.52 1279.06,1800.66 1280.71,1801.68"/>
- </edge>
- <edge id=":452425488_18" function="internal">
- <lane id=":452425488_18_0" index="0" speed="9.72" length="3.22" shape="1280.71,1801.68 1281.05,1801.89 1282.69,1804.19"/>
- </edge>
- <edge id=":452425488_15" function="internal">
- <lane id=":452425488_15_0" index="0" speed="13.89" length="2.41" shape="1274.04,1801.45 1275.51,1801.62 1276.26,1802.16"/>
- </edge>
- <edge id=":452425488_19" function="internal">
- <lane id=":452425488_19_0" index="0" speed="13.89" length="2.41" shape="1276.26,1802.16 1276.27,1803.08 1275.55,1804.38"/>
- </edge>
- <edge id=":452425489_0" function="internal">
- <lane id=":452425489_0_0" index="0" speed="5.56" length="3.45" shape="1245.99,1739.57 1245.77,1736.13"/>
- </edge>
- <edge id=":452425489_1" function="internal">
- <lane id=":452425489_1_0" index="0" speed="5.56" length="2.41" shape="1245.99,1739.57 1246.23,1738.11 1246.82,1737.39"/>
- </edge>
- <edge id=":452425489_4" function="internal">
- <lane id=":452425489_4_0" index="0" speed="5.56" length="2.41" shape="1246.82,1737.39 1247.74,1737.43 1249.00,1738.22"/>
- </edge>
- <edge id=":452425489_2" function="internal">
- <lane id=":452425489_2_0" index="0" speed="5.56" length="1.13" shape="1248.93,1737.10 1249.00,1738.22"/>
- </edge>
- <edge id=":452425489_3" function="internal">
- <lane id=":452425489_3_0" index="0" speed="5.56" length="2.41" shape="1248.93,1737.10 1247.78,1738.04 1246.87,1738.19"/>
- </edge>
- <edge id=":452425489_5" function="internal">
- <lane id=":452425489_5_0" index="0" speed="5.56" length="2.41" shape="1246.87,1738.19 1246.20,1737.56 1245.77,1736.13"/>
- </edge>
- <edge id=":452425490_0" function="internal">
- <lane id=":452425490_0_0" index="0" speed="5.56" length="3.80" shape="1261.78,1705.02 1258.30,1706.54"/>
- </edge>
- <edge id=":452425490_1" function="internal">
- <lane id=":452425490_1_0" index="0" speed="5.56" length="10.39" shape="1261.78,1705.02 1259.11,1706.01 1256.77,1705.90 1254.76,1704.69 1253.09,1702.38"/>
- </edge>
- <edge id=":452425490_2" function="internal">
- <lane id=":452425490_2_0" index="0" speed="5.56" length="4.82" shape="1261.78,1705.02 1260.30,1704.89 1259.54,1704.36 1259.51,1703.44 1260.21,1702.12"/>
- </edge>
- <edge id=":452425490_3" function="internal">
- <lane id=":452425490_3_0" index="0" speed="5.56" length="5.01" shape="1256.02,1700.84 1256.82,1701.96 1257.79,1702.54 1258.92,1702.60 1260.21,1702.12"/>
- </edge>
- <edge id=":452425490_4" function="internal">
- <lane id=":452425490_4_0" index="0" speed="5.56" length="6.13" shape="1256.02,1700.84 1258.30,1706.54"/>
- </edge>
- <edge id=":452425490_5" function="internal">
- <lane id=":452425490_5_0" index="0" speed="5.56" length="4.82" shape="1256.02,1700.84 1255.86,1702.32 1255.32,1703.07 1254.40,1703.09 1253.09,1702.38"/>
- </edge>
- <edge id=":452425490_6" function="internal">
- <lane id=":452425490_6_0" index="0" speed="5.56" length="3.79" shape="1255.14,1705.57 1253.09,1702.38"/>
- </edge>
- <edge id=":452425490_7" function="internal">
- <lane id=":452425490_7_0" index="0" speed="5.56" length="6.13" shape="1255.14,1705.57 1260.21,1702.12"/>
- </edge>
- <edge id=":452425490_8" function="internal">
- <lane id=":452425490_8_0" index="0" speed="5.56" length="4.82" shape="1255.14,1705.57 1256.29,1704.63 1257.20,1704.47 1257.87,1705.11 1258.30,1706.54"/>
- </edge>
- <edge id=":452425491_0" function="internal">
- <lane id=":452425491_0_0" index="0" speed="9.72" length="5.14" shape="1295.51,1686.77 1294.37,1687.61 1293.76,1688.61 1293.69,1689.77 1294.14,1691.08"/>
- </edge>
- <edge id=":452425491_1" function="internal">
- <lane id=":452425491_1_0" index="0" speed="5.56" length="6.33" shape="1295.51,1686.77 1289.95,1689.79"/>
- </edge>
- <edge id=":452425491_2" function="internal">
- <lane id=":452425491_2_0" index="0" speed="5.56" length="4.82" shape="1295.51,1686.77 1294.03,1686.64 1293.27,1686.11 1293.24,1685.19 1293.93,1683.87"/>
- </edge>
- <edge id=":452425491_3" function="internal">
- <lane id=":452425491_3_0" index="0" speed="9.72" length="5.02" shape="1289.74,1682.59 1290.54,1683.71 1291.51,1684.30 1292.64,1684.35 1293.93,1683.87"/>
- </edge>
- <edge id=":452425491_4" function="internal">
- <lane id=":452425491_4_0" index="0" speed="13.89" length="9.56" shape="1289.74,1682.59 1294.14,1691.08"/>
- </edge>
- <edge id=":452425491_5" function="internal">
- <lane id=":452425491_5_0" index="0" speed="9.72" length="7.93" shape="1289.74,1682.59 1290.86,1685.18 1291.27,1687.25 1290.97,1688.78 1289.95,1689.79"/>
- </edge>
- <edge id=":452425491_6" function="internal">
- <lane id=":452425491_6_0" index="0" speed="5.56" length="6.32" shape="1288.38,1686.89 1293.93,1683.87"/>
- </edge>
- <edge id=":452425491_7" function="internal">
- <lane id=":452425491_7_0" index="0" speed="9.72" length="7.90" shape="1288.38,1686.89 1289.79,1686.58 1291.22,1687.18 1292.67,1688.68 1294.14,1691.08"/>
- </edge>
- <edge id=":452425491_8" function="internal">
- <lane id=":452425491_8_0" index="0" speed="5.56" length="4.82" shape="1288.38,1686.89 1289.86,1687.03 1290.61,1687.55 1290.64,1688.48 1289.95,1689.79"/>
- </edge>
- <edge id=":452425493_0" function="internal">
- <lane id=":452425493_0_0" index="0" speed="9.72" length="5.03" shape="1366.11,1651.85 1365.31,1650.73 1364.34,1650.14 1363.21,1650.09 1361.92,1650.57"/>
- </edge>
- <edge id=":452425493_1" function="internal">
- <lane id=":452425493_1_0" index="0" speed="13.89" length="9.54" shape="1366.11,1651.85 1361.73,1643.38"/>
- </edge>
- <edge id=":452425493_2" function="internal">
- <lane id=":452425493_2_0" index="0" speed="9.72" length="7.88" shape="1366.11,1651.85 1364.99,1649.26 1364.58,1647.21 1364.89,1645.69 1365.91,1644.71"/>
- </edge>
- <edge id=":452425493_3" function="internal">
- <lane id=":452425493_3_0" index="0" speed="5.56" length="6.24" shape="1367.43,1647.64 1361.92,1650.57"/>
- </edge>
- <edge id=":452425493_4" function="internal">
- <lane id=":452425493_4_0" index="0" speed="9.72" length="7.85" shape="1367.43,1647.64 1366.04,1647.91 1364.62,1647.29 1363.19,1645.78 1361.73,1643.38"/>
- </edge>
- <edge id=":452425493_5" function="internal">
- <lane id=":452425493_5_0" index="0" speed="5.56" length="4.82" shape="1367.43,1647.64 1365.95,1647.48 1365.20,1646.93 1365.19,1646.01 1365.91,1644.71"/>
- </edge>
- <edge id=":452425493_6" function="internal">
- <lane id=":452425493_6_0" index="0" speed="9.72" length="5.12" shape="1360.34,1647.67 1361.48,1646.83 1362.09,1645.83 1362.18,1644.68 1361.73,1643.38"/>
- </edge>
- <edge id=":452425493_7" function="internal">
- <lane id=":452425493_7_0" index="0" speed="5.56" length="6.31" shape="1360.34,1647.67 1365.91,1644.71"/>
- </edge>
- <edge id=":452425493_8" function="internal">
- <lane id=":452425493_8_0" index="0" speed="5.56" length="4.82" shape="1360.34,1647.67 1361.82,1647.80 1362.58,1648.33 1362.61,1649.25 1361.92,1650.57"/>
- </edge>
- <edge id=":452425497_0" function="internal">
- <lane id=":452425497_0_0" index="0" speed="5.56" length="5.00" shape="1469.87,1598.11 1469.07,1596.99 1468.11,1596.40 1466.98,1596.33 1465.69,1596.78"/>
- </edge>
- <edge id=":452425497_1" function="internal">
- <lane id=":452425497_1_0" index="0" speed="5.56" length="6.95" shape="1469.87,1598.11 1468.67,1595.58 1468.01,1593.67 1467.91,1592.37 1468.37,1591.68"/>
- </edge>
- <edge id=":452425497_2" function="internal">
- <lane id=":452425497_2_0" index="0" speed="5.56" length="4.82" shape="1469.87,1598.11 1470.03,1596.63 1470.57,1595.88 1471.49,1595.86 1472.79,1596.58"/>
- </edge>
- <edge id=":452425497_3" function="internal">
- <lane id=":452425497_3_0" index="0" speed="5.56" length="3.25" shape="1470.87,1594.09 1471.17,1594.15 1471.60,1594.58 1472.14,1595.39 1472.79,1596.58"/>
- </edge>
- <edge id=":452425497_4" function="internal">
- <lane id=":452425497_4_0" index="0" speed="5.56" length="5.84" shape="1470.87,1594.09 1465.69,1596.78"/>
- </edge>
- <edge id=":452425497_5" function="internal">
- <lane id=":452425497_5_0" index="0" speed="5.56" length="5.08" shape="1470.87,1594.09 1469.34,1594.43 1468.41,1594.13 1468.09,1593.22 1468.37,1591.68"/>
- </edge>
- <edge id=":452425497_6" function="internal">
- <lane id=":452425497_6_0" index="0" speed="5.56" length="4.73" shape="1464.17,1593.85 1468.37,1591.68"/>
- </edge>
- <edge id=":452425497_7" function="internal">
- <lane id=":452425497_7_0" index="0" speed="5.56" length="10.31" shape="1464.17,1593.85 1466.83,1592.92 1469.16,1593.07 1471.15,1594.28 1472.79,1596.58"/>
- </edge>
- <edge id=":452425497_8" function="internal">
- <lane id=":452425497_8_0" index="0" speed="5.56" length="4.82" shape="1464.17,1593.85 1465.65,1594.02 1466.39,1594.56 1466.41,1595.48 1465.69,1596.78"/>
- </edge>
- <edge id=":452425499_0" function="internal">
- <lane id=":452425499_0_0" index="0" speed="5.56" length="4.35" shape="1208.00,1667.83 1206.94,1667.47 1206.04,1666.91 1205.30,1666.16 1204.71,1665.21"/>
- </edge>
- <edge id=":452425499_1" function="internal">
- <lane id=":452425499_1_0" index="0" speed="5.56" length="2.41" shape="1208.00,1667.83 1206.98,1666.75 1206.77,1665.85"/>
- </edge>
- <edge id=":452425499_4" function="internal">
- <lane id=":452425499_4_0" index="0" speed="5.56" length="2.41" shape="1206.77,1665.85 1207.36,1665.14 1208.75,1664.62"/>
- </edge>
- <edge id=":452425499_2" function="internal">
- <lane id=":452425499_2_0" index="0" speed="5.56" length="1.42" shape="1207.68,1663.76 1207.87,1664.07 1208.11,1664.32 1208.41,1664.50 1208.75,1664.62"/>
- </edge>
- <edge id=":452425499_3" function="internal">
- <lane id=":452425499_3_0" index="0" speed="5.56" length="2.41" shape="1207.68,1663.76 1207.48,1665.24 1206.92,1665.97"/>
- </edge>
- <edge id=":452425499_5" function="internal">
- <lane id=":452425499_5_0" index="0" speed="5.56" length="2.41" shape="1206.92,1665.97 1206.00,1665.96 1204.71,1665.21"/>
- </edge>
- <edge id=":452425500_0" function="internal">
- <lane id=":452425500_0_0" index="0" speed="13.89" length="5.05" shape="1176.17,1606.78 1175.38,1605.62 1174.43,1605.02 1173.29,1604.96 1171.99,1605.45"/>
- </edge>
- <edge id=":452425500_1" function="internal">
- <lane id=":452425500_1_0" index="0" speed="5.56" length="6.26" shape="1176.17,1606.78 1173.33,1601.20"/>
- </edge>
- <edge id=":452425500_2" function="internal">
- <lane id=":452425500_2_0" index="0" speed="5.56" length="4.82" shape="1176.17,1606.78 1176.37,1605.30 1176.93,1604.57 1177.85,1604.58 1179.13,1605.33"/>
- </edge>
- <edge id=":452425500_3" function="internal">
- <lane id=":452425500_3_0" index="0" speed="13.89" length="5.18" shape="1180.43,1600.95 1179.32,1601.75 1178.73,1602.75 1178.67,1603.95 1179.13,1605.33"/>
- </edge>
- <edge id=":452425500_4" function="internal">
- <lane id=":452425500_4_0" index="0" speed="22.22" length="9.56" shape="1180.43,1600.95 1171.99,1605.45"/>
- </edge>
- <edge id=":452425500_5" function="internal">
- <lane id=":452425500_5_0" index="0" speed="13.89" length="7.82" shape="1180.43,1600.95 1177.86,1602.07 1175.82,1602.48 1174.31,1602.19 1173.33,1601.20"/>
- </edge>
- <edge id=":452425500_6" function="internal">
- <lane id=":452425500_6_0" index="0" speed="5.56" length="6.38" shape="1176.24,1599.65 1179.13,1605.33"/>
- </edge>
- <edge id=":452425500_7" function="internal">
- <lane id=":452425500_7_0" index="0" speed="13.89" length="7.90" shape="1176.24,1599.65 1176.51,1601.02 1175.89,1602.44 1174.39,1603.92 1171.99,1605.45"/>
- </edge>
- <edge id=":452425500_8" function="internal">
- <lane id=":452425500_8_0" index="0" speed="5.56" length="4.82" shape="1176.24,1599.65 1176.09,1601.13 1175.56,1601.88 1174.63,1601.90 1173.33,1601.20"/>
- </edge>
- <edge id=":452425501_0" function="internal">
- <lane id=":452425501_0_0" index="0" speed="5.56" length="6.33" shape="1170.11,1595.15 1167.18,1589.54"/>
- </edge>
- <edge id=":452425501_1" function="internal">
- <lane id=":452425501_1_0" index="0" speed="13.89" length="7.90" shape="1170.11,1595.15 1169.81,1593.73 1170.42,1592.30 1171.93,1590.87 1174.35,1589.42"/>
- </edge>
- <edge id=":452425501_2" function="internal">
- <lane id=":452425501_2_0" index="0" speed="5.56" length="4.82" shape="1170.11,1595.15 1170.26,1593.67 1170.79,1592.92 1171.71,1592.89 1173.02,1593.60"/>
- </edge>
- <edge id=":452425501_3" function="internal">
- <lane id=":452425501_3_0" index="0" speed="13.89" length="5.07" shape="1170.12,1588.03 1170.92,1589.17 1171.89,1589.78 1173.03,1589.86 1174.35,1589.42"/>
- </edge>
- <edge id=":452425501_4" function="internal">
- <lane id=":452425501_4_0" index="0" speed="5.56" length="6.28" shape="1170.12,1588.03 1173.02,1593.60"/>
- </edge>
- <edge id=":452425501_5" function="internal">
- <lane id=":452425501_5_0" index="0" speed="5.56" length="4.82" shape="1170.12,1588.03 1169.95,1589.51 1169.40,1590.26 1168.48,1590.26 1167.18,1589.54"/>
- </edge>
- <edge id=":452425501_6" function="internal">
- <lane id=":452425501_6_0" index="0" speed="13.89" length="5.01" shape="1165.81,1593.70 1166.94,1592.92 1167.55,1591.97 1167.63,1590.84 1167.18,1589.54"/>
- </edge>
- <edge id=":452425501_7" function="internal">
- <lane id=":452425501_7_0" index="0" speed="22.22" length="9.55" shape="1165.81,1593.70 1174.35,1589.42"/>
- </edge>
- <edge id=":452425501_8" function="internal">
- <lane id=":452425501_8_0" index="0" speed="13.89" length="7.93" shape="1165.81,1593.70 1168.42,1592.62 1170.49,1592.25 1172.02,1592.57 1173.02,1593.60"/>
- </edge>
- <edge id=":452425502_0" function="internal">
- <lane id=":452425502_0_0" index="0" speed="13.89" length="5.04" shape="953.93,1202.33 953.13,1201.20 952.16,1200.61 951.03,1200.57 949.73,1201.07"/>
- </edge>
- <edge id=":452425502_1" function="internal">
- <lane id=":452425502_1_0" index="0" speed="5.56" length="6.42" shape="953.93,1202.33 950.97,1196.62"/>
- </edge>
- <edge id=":452425502_2" function="internal">
- <lane id=":452425502_2_0" index="0" speed="5.56" length="2.41" shape="953.93,1202.33 954.10,1200.85 954.64,1200.10"/>
- </edge>
- <edge id=":452425502_9" function="internal">
- <lane id=":452425502_9_0" index="0" speed="5.56" length="2.41" shape="954.64,1200.10 955.56,1200.09 956.86,1200.81"/>
- </edge>
- <edge id=":452425502_3" function="internal">
- <lane id=":452425502_3_0" index="0" speed="13.89" length="5.24" shape="958.11,1196.34 957.00,1197.20 956.42,1198.24 956.38,1199.44 956.86,1200.81"/>
- </edge>
- <edge id=":452425502_4" function="internal">
- <lane id=":452425502_4_0" index="0" speed="22.22" length="9.62" shape="958.11,1196.34 949.73,1201.07"/>
- </edge>
- <edge id=":452425502_5" function="internal">
- <lane id=":452425502_5_0" index="0" speed="13.89" length="3.18" shape="958.11,1196.34 955.55,1197.56 955.21,1197.63"/>
- </edge>
- <edge id=":452425502_10" function="internal">
- <lane id=":452425502_10_0" index="0" speed="13.89" length="4.78" shape="955.21,1197.63 953.51,1198.01 951.99,1197.70 950.97,1196.62"/>
- </edge>
- <edge id=":452425502_6" function="internal">
- <lane id=":452425502_6_0" index="0" speed="5.56" length="6.43" shape="953.90,1195.10 956.86,1200.81"/>
- </edge>
- <edge id=":452425502_7" function="internal">
- <lane id=":452425502_7_0" index="0" speed="13.89" length="4.82" shape="953.90,1195.10 954.19,1196.53 953.59,1198.00 952.35,1199.27"/>
- </edge>
- <edge id=":452425502_11" function="internal">
- <lane id=":452425502_11_0" index="0" speed="13.89" length="3.18" shape="952.35,1199.27 952.11,1199.51 949.73,1201.07"/>
- </edge>
- <edge id=":452425502_8" function="internal">
- <lane id=":452425502_8_0" index="0" speed="5.56" length="2.41" shape="953.90,1195.10 953.74,1196.58 953.20,1197.33"/>
- </edge>
- <edge id=":452425502_12" function="internal">
- <lane id=":452425502_12_0" index="0" speed="5.56" length="2.41" shape="953.20,1197.33 952.28,1197.34 950.97,1196.62"/>
- </edge>
- <edge id=":452446339_0" function="internal">
- <lane id=":452446339_0_0" index="0" speed="22.22" length="0.10" shape="1304.14,2005.12 1304.14,2005.12"/>
- </edge>
- <edge id=":452446340_0" function="internal">
- <lane id=":452446340_0_0" index="0" speed="25.00" length="5.41" shape="1298.91,1959.79 1299.75,1958.82 1300.12,1957.67 1300.01,1956.35 1299.44,1954.85"/>
- </edge>
- <edge id=":452446340_1" function="internal">
- <lane id=":452446340_1_0" index="0" speed="25.00" length="7.81" shape="1298.91,1959.79 1300.91,1957.92 1302.15,1956.22 1302.64,1954.70 1302.38,1953.35"/>
- </edge>
- <edge id=":452446340_2" function="internal">
- <lane id=":452446340_2_0" index="0" speed="22.22" length="9.22" shape="1298.91,1959.79 1306.57,1954.65"/>
- </edge>
- <edge id=":452446345_0" function="internal">
- <lane id=":452446345_0_0" index="0" speed="25.00" length="5.68" shape="1313.95,1946.95 1314.95,1948.37 1316.03,1949.32 1317.20,1949.80 1318.44,1949.81"/>
- </edge>
- <edge id=":452446345_1" function="internal">
- <lane id=":452446345_1_0" index="0" speed="22.22" length="9.05" shape="1309.92,1952.83 1318.44,1949.81"/>
- </edge>
- <edge id=":477486714_0" function="internal">
- <lane id=":477486714_0_0" index="0" speed="27.78" length="14.69" shape="672.46,2233.72 670.14,2230.84 667.62,2228.20 665.12,2225.53 662.87,2222.61"/>
- </edge>
- <edge id=":477486714_1" function="internal">
- <lane id=":477486714_1_0" index="0" speed="25.00" length="5.97" shape="672.46,2233.72 671.02,2230.95 671.08,2228.90 671.68,2228.38"/>
- </edge>
- <edge id=":477486714_9" function="internal">
- <lane id=":477486714_9_0" index="0" speed="25.00" length="4.35" shape="671.68,2228.38 672.62,2227.56 675.66,2226.94"/>
- </edge>
- <edge id=":477486714_2" function="internal">
- <lane id=":477486714_2_0" index="0" speed="27.78" length="10.27" shape="672.46,2233.72 670.57,2230.61 670.37,2229.13 671.86,2229.27 675.04,2231.04"/>
- </edge>
- <edge id=":477486714_3" function="internal">
- <lane id=":477486714_3_0" index="0" speed="25.00" length="10.65" shape="665.62,2220.80 667.07,2222.24 669.19,2223.20 671.97,2223.67 675.43,2223.65"/>
- </edge>
- <edge id=":477486714_4" function="internal">
- <lane id=":477486714_4_0" index="0" speed="27.78" length="14.02" shape="665.62,2220.80 667.66,2223.78 669.79,2226.47 672.18,2228.89 675.04,2231.04"/>
- </edge>
- <edge id=":477486714_5" function="internal">
- <lane id=":477486714_5_0" index="0" speed="27.78" length="2.41" shape="665.62,2220.80 665.62,2222.29 665.15,2223.08"/>
- </edge>
- <edge id=":477486714_10" function="internal">
- <lane id=":477486714_10_0" index="0" speed="27.78" length="2.41" shape="665.15,2223.08 664.24,2223.19 662.87,2222.61"/>
- </edge>
- <edge id=":477486714_6" function="internal">
- <lane id=":477486714_6_0" index="0" speed="25.00" length="5.09" shape="661.83,2226.87 662.95,2226.02 663.49,2225.02 663.47,2223.89 662.87,2222.61"/>
- </edge>
- <edge id=":477486714_7" function="internal">
- <lane id=":477486714_7_0" index="0" speed="22.22" length="12.73" shape="663.44,2229.76 666.78,2228.09 669.25,2227.36 671.88,2227.13 675.66,2226.94"/>
- </edge>
- <edge id=":477486714_8" function="internal">
- <lane id=":477486714_8_0" index="0" speed="25.00" length="12.28" shape="663.44,2229.76 666.09,2228.76 668.90,2228.64 671.89,2229.40 675.04,2231.04"/>
- </edge>
- <edge id=":477486717_0" function="internal">
- <lane id=":477486717_0_0" index="0" speed="25.00" length="5.44" shape="505.62,1976.41 504.65,1975.29 503.55,1974.72 502.31,1974.71 500.94,1975.26"/>
- </edge>
- <edge id=":477486717_1" function="internal">
- <lane id=":477486717_1_0" index="0" speed="27.78" length="9.81" shape="505.62,1976.41 500.34,1968.14"/>
- </edge>
- <edge id=":477486717_2" function="internal">
- <lane id=":477486717_2_0" index="0" speed="25.00" length="7.18" shape="505.62,1976.41 504.41,1973.76 504.37,1971.39 505.26,1969.73"/>
- </edge>
- <edge id=":477486717_16" function="internal">
- <lane id=":477486717_16_0" index="0" speed="25.00" length="3.39" shape="505.26,1969.73 505.49,1969.31 507.78,1967.51"/>
- </edge>
- <edge id=":477486717_3" function="internal">
- <lane id=":477486717_3_0" index="0" speed="27.78" length="2.41" shape="505.62,1976.41 505.64,1974.92 506.12,1974.13"/>
- </edge>
- <edge id=":477486717_17" function="internal">
- <lane id=":477486717_17_0" index="0" speed="27.78" length="2.41" shape="506.12,1974.13 507.03,1974.03 508.40,1974.63"/>
- </edge>
- <edge id=":477486717_4" function="internal">
- <lane id=":477486717_4_0" index="0" speed="25.00" length="5.06" shape="509.43,1970.37 508.33,1971.23 507.80,1972.23 507.82,1973.36 508.40,1974.63"/>
- </edge>
- <edge id=":477486717_5" function="internal">
- <lane id=":477486717_5_0" index="0" speed="22.22" length="9.80" shape="509.43,1970.37 500.94,1975.26"/>
- </edge>
- <edge id=":477486717_6" function="internal">
- <lane id=":477486717_6_0" index="0" speed="25.00" length="10.58" shape="509.43,1970.37 506.75,1971.44 504.35,1971.43 502.21,1970.33 500.34,1968.14"/>
- </edge>
- <edge id=":477486717_7" function="internal">
- <lane id=":477486717_7_0" index="0" speed="22.22" length="4.82" shape="509.43,1970.37 507.95,1970.27 507.18,1969.76 507.12,1968.84 507.78,1967.51"/>
- </edge>
- <edge id=":477486717_8" function="internal">
- <lane id=":477486717_8_0" index="0" speed="25.00" length="5.42" shape="503.12,1966.37 504.08,1967.49 505.18,1968.06 506.41,1968.06 507.78,1967.51"/>
- </edge>
- <edge id=":477486717_9" function="internal">
- <lane id=":477486717_9_0" index="0" speed="27.78" length="9.79" shape="503.12,1966.37 508.40,1974.63"/>
- </edge>
- <edge id=":477486717_10" function="internal">
- <lane id=":477486717_10_0" index="0" speed="25.00" length="7.14" shape="503.12,1966.37 504.32,1969.02 504.35,1971.39 503.46,1973.03"/>
- </edge>
- <edge id=":477486717_18" function="internal">
- <lane id=":477486717_18_0" index="0" speed="25.00" length="3.40" shape="503.46,1973.03 503.22,1973.47 500.94,1975.26"/>
- </edge>
- <edge id=":477486717_11" function="internal">
- <lane id=":477486717_11_0" index="0" speed="27.78" length="2.41" shape="503.12,1966.37 503.09,1967.86 502.61,1968.65"/>
- </edge>
- <edge id=":477486717_19" function="internal">
- <lane id=":477486717_19_0" index="0" speed="27.78" length="2.41" shape="502.61,1968.65 501.70,1968.75 500.34,1968.14"/>
- </edge>
- <edge id=":477486717_12" function="internal">
- <lane id=":477486717_12_0" index="0" speed="25.00" length="5.05" shape="499.29,1972.40 500.39,1971.54 500.93,1970.55 500.91,1969.41 500.34,1968.14"/>
- </edge>
- <edge id=":477486717_13" function="internal">
- <lane id=":477486717_13_0" index="0" speed="22.22" length="9.80" shape="499.29,1972.40 507.78,1967.51"/>
- </edge>
- <edge id=":477486717_14" function="internal">
- <lane id=":477486717_14_0" index="0" speed="25.00" length="10.58" shape="499.29,1972.40 501.96,1971.33 504.37,1971.35 506.51,1972.44 508.40,1974.63"/>
- </edge>
- <edge id=":477486717_15" function="internal">
- <lane id=":477486717_15_0" index="0" speed="22.22" length="4.82" shape="499.29,1972.40 500.77,1972.50 501.54,1973.01 501.60,1973.93 500.94,1975.26"/>
- </edge>
- <edge id=":477486719_0" function="internal">
- <lane id=":477486719_0_0" index="0" speed="25.00" length="5.72" shape="406.80,1821.31 405.81,1820.16 404.65,1819.58 403.33,1819.56 401.85,1820.11"/>
- </edge>
- <edge id=":477486719_1" function="internal">
- <lane id=":477486719_1_0" index="0" speed="27.78" length="9.97" shape="406.80,1821.31 401.37,1812.95"/>
- </edge>
- <edge id=":477486719_2" function="internal">
- <lane id=":477486719_2_0" index="0" speed="25.00" length="7.14" shape="406.80,1821.31 405.60,1818.65 405.56,1816.27 406.45,1814.66"/>
- </edge>
- <edge id=":477486719_16" function="internal">
- <lane id=":477486719_16_0" index="0" speed="25.00" length="3.45" shape="406.45,1814.66 406.70,1814.19 409.02,1812.41"/>
- </edge>
- <edge id=":477486719_3" function="internal">
- <lane id=":477486719_3_0" index="0" speed="27.78" length="2.41" shape="406.80,1821.31 406.83,1819.82 407.31,1819.03"/>
- </edge>
- <edge id=":477486719_17" function="internal">
- <lane id=":477486719_17_0" index="0" speed="27.78" length="2.41" shape="407.31,1819.03 408.22,1818.93 409.59,1819.53"/>
- </edge>
- <edge id=":477486719_4" function="internal">
- <lane id=":477486719_4_0" index="0" speed="25.00" length="5.06" shape="410.64,1815.28 409.54,1816.13 408.99,1817.13 409.01,1818.26 409.59,1819.53"/>
- </edge>
- <edge id=":477486719_5" function="internal">
- <lane id=":477486719_5_0" index="0" speed="22.22" length="10.04" shape="410.64,1815.28 408.05,1816.74 406.27,1817.73 404.47,1818.71 401.85,1820.11"/>
- </edge>
- <edge id=":477486719_6" function="internal">
- <lane id=":477486719_6_0" index="0" speed="25.00" length="10.74" shape="410.64,1815.28 407.95,1816.33 405.51,1816.29 403.32,1815.16 401.37,1812.95"/>
- </edge>
- <edge id=":477486719_7" function="internal">
- <lane id=":477486719_7_0" index="0" speed="22.22" length="4.82" shape="410.64,1815.28 409.16,1815.17 408.40,1814.65 408.35,1813.73 409.02,1812.41"/>
- </edge>
- <edge id=":477486719_8" function="internal">
- <lane id=":477486719_8_0" index="0" speed="25.00" length="5.68" shape="404.13,1811.13 405.16,1812.31 406.32,1812.92 407.61,1812.95 409.02,1812.41"/>
- </edge>
- <edge id=":477486719_9" function="internal">
- <lane id=":477486719_9_0" index="0" speed="27.78" length="10.02" shape="404.13,1811.13 405.76,1813.61 406.88,1815.31 407.99,1817.03 409.59,1819.53"/>
- </edge>
- <edge id=":477486719_10" function="internal">
- <lane id=":477486719_10_0" index="0" speed="25.00" length="7.24" shape="404.13,1811.13 405.41,1813.84 405.45,1816.25 404.55,1817.84"/>
- </edge>
- <edge id=":477486719_18" function="internal">
- <lane id=":477486719_18_0" index="0" speed="25.00" length="3.57" shape="404.55,1817.84 404.27,1818.33 401.85,1820.11"/>
- </edge>
- <edge id=":477486719_11" function="internal">
- <lane id=":477486719_11_0" index="0" speed="27.78" length="2.41" shape="404.13,1811.13 404.12,1812.62 403.66,1813.41"/>
- </edge>
- <edge id=":477486719_19" function="internal">
- <lane id=":477486719_19_0" index="0" speed="27.78" length="2.41" shape="403.66,1813.41 402.74,1813.53 401.37,1812.95"/>
- </edge>
- <edge id=":477486719_12" function="internal">
- <lane id=":477486719_12_0" index="0" speed="25.00" length="5.12" shape="400.29,1817.20 401.44,1816.36 402.00,1815.37 401.98,1814.23 401.37,1812.95"/>
- </edge>
- <edge id=":477486719_13" function="internal">
- <lane id=":477486719_13_0" index="0" speed="22.22" length="9.95" shape="400.29,1817.20 409.02,1812.41"/>
- </edge>
- <edge id=":477486719_14" function="internal">
- <lane id=":477486719_14_0" index="0" speed="25.00" length="10.75" shape="400.29,1817.20 403.06,1816.18 405.53,1816.23 407.70,1817.35 409.59,1819.53"/>
- </edge>
- <edge id=":477486719_15" function="internal">
- <lane id=":477486719_15_0" index="0" speed="22.22" length="4.82" shape="400.29,1817.20 401.77,1817.34 402.53,1817.88 402.55,1818.80 401.85,1820.11"/>
- </edge>
- <edge id=":484282948_0" function="internal">
- <lane id=":484282948_0_0" index="0" speed="22.22" length="4.82" shape="576.52,948.34 575.16,947.74 574.61,947.00 574.88,946.11 575.96,945.09"/>
- </edge>
- <edge id=":484282955_0" function="internal">
- <lane id=":484282955_0_0" index="0" speed="22.22" length="6.46" shape="667.87,932.66 661.51,933.80"/>
- </edge>
- <edge id=":484282955_1" function="internal">
- <lane id=":484282955_1_0" index="0" speed="22.22" length="2.41" shape="667.87,932.66 666.50,932.09 665.94,931.35"/>
- </edge>
- <edge id=":484282955_6" function="internal">
- <lane id=":484282955_6_0" index="0" speed="22.22" length="2.41" shape="665.94,931.35 666.19,930.47 667.25,929.42"/>
- </edge>
- <edge id=":484282955_2" function="internal">
- <lane id=":484282955_2_0" index="0" speed="22.22" length="5.57" shape="662.88,926.64 663.80,928.05 664.83,928.98 665.98,929.44 667.25,929.42"/>
- </edge>
- <edge id=":484282955_3" function="internal">
- <lane id=":484282955_3_0" index="0" speed="22.22" length="8.86" shape="662.88,926.64 664.04,929.47 664.20,931.61 663.36,933.05 661.51,933.80"/>
- </edge>
- <edge id=":484282955_4" function="internal">
- <lane id=":484282955_4_0" index="0" speed="22.22" length="6.39" shape="660.95,930.54 667.25,929.42"/>
- </edge>
- <edge id=":484282955_5" function="internal">
- <lane id=":484282955_5_0" index="0" speed="22.22" length="2.41" shape="660.95,930.54 662.31,931.15 662.86,931.89"/>
- </edge>
- <edge id=":484282955_7" function="internal">
- <lane id=":484282955_7_0" index="0" speed="22.22" length="2.41" shape="662.86,931.89 662.59,932.77 661.51,933.80"/>
- </edge>
- <edge id=":484282961_0" function="internal">
- <lane id=":484282961_0_0" index="0" speed="22.22" length="4.82" shape="514.23,1034.65 512.87,1034.06 512.31,1033.32 512.57,1032.44 513.64,1031.40"/>
- </edge>
- <edge id=":503954409_0" function="internal">
- <lane id=":503954409_0_0" index="0" speed="22.22" length="5.50" shape="802.53,2583.43 802.95,2584.97 803.73,2585.82 804.87,2585.97 806.37,2585.44"/>
- </edge>
- <edge id=":503954409_1" function="internal">
- <lane id=":503954409_1_0" index="0" speed="22.22" length="6.42" shape="802.53,2583.43 803.33,2589.79"/>
- </edge>
- <edge id=":538265860_0" function="internal">
- <lane id=":538265860_0_0" index="0" speed="22.22" length="0.72" shape="724.40,778.36 724.87,778.91"/>
- </edge>
- <edge id=":538265864_0" function="internal">
- <lane id=":538265864_0_0" index="0" speed="22.22" length="6.42" shape="743.69,920.70 742.86,919.71 741.62,919.13 739.96,918.96 737.89,919.19"/>
- </edge>
- <edge id=":538265864_1" function="internal">
- <lane id=":538265864_1_0" index="0" speed="22.22" length="9.79" shape="743.69,920.70 739.15,912.03"/>
- </edge>
- <edge id=":538265864_2" function="internal">
- <lane id=":538265864_2_0" index="0" speed="22.22" length="5.39" shape="737.26,915.95 738.73,915.45 739.53,914.63 739.67,913.48 739.15,912.03"/>
- </edge>
- <edge id=":538265864_3" function="internal">
- <lane id=":538265864_3_0" index="0" speed="22.22" length="2.41" shape="737.26,915.95 738.63,916.53 739.19,917.26"/>
- </edge>
- <edge id=":538265864_4" function="internal">
- <lane id=":538265864_4_0" index="0" speed="22.22" length="2.41" shape="739.19,917.26 738.94,918.15 737.89,919.19"/>
- </edge>
- <edge id=":538265866_0" function="internal">
- <lane id=":538265866_0_0" index="0" speed="22.22" length="0.48" shape="687.64,813.72 687.48,813.26"/>
- </edge>
- <edge id=":538265870_0" function="internal">
- <lane id=":538265870_0_0" index="0" speed="22.22" length="5.14" shape="905.12,1229.86 904.38,1228.64 903.44,1227.99 902.30,1227.93 900.97,1228.45"/>
- </edge>
- <edge id=":538265870_1" function="internal">
- <lane id=":538265870_1_0" index="0" speed="22.22" length="4.32" shape="904.73,1226.32 900.97,1228.45"/>
- </edge>
- <edge id=":538810722_0" function="internal">
- <lane id=":538810722_0_0" index="0" speed="22.22" length="0.10" shape="934.86,658.06 934.86,658.06"/>
- </edge>
- <edge id=":538810724_0" function="internal">
- <lane id=":538810724_0_0" index="0" speed="22.22" length="6.31" shape="905.15,939.07 902.24,933.47"/>
- </edge>
- <edge id=":538810724_1" function="internal">
- <lane id=":538810724_1_0" index="0" speed="22.22" length="5.14" shape="905.15,939.07 904.69,937.75 904.75,936.58 905.33,935.57 906.45,934.71"/>
- </edge>
- <edge id=":538810724_2" function="internal">
- <lane id=":538810724_2_0" index="0" speed="22.22" length="5.12" shape="900.95,937.81 902.06,936.96 902.65,935.96 902.71,934.80 902.24,933.47"/>
- </edge>
- <edge id=":538810724_3" function="internal">
- <lane id=":538810724_3_0" index="0" speed="22.22" length="6.31" shape="900.95,937.81 906.45,934.71"/>
- </edge>
- <edge id=":538810726_0" function="internal">
- <lane id=":538810726_0_0" index="0" speed="22.22" length="5.04" shape="969.51,895.18 970.32,896.31 971.29,896.89 972.42,896.93 973.71,896.42"/>
- </edge>
- <edge id=":538810726_1" function="internal">
- <lane id=":538810726_1_0" index="0" speed="22.22" length="6.32" shape="969.51,895.18 972.43,900.78"/>
- </edge>
- <edge id=":538810726_2" function="internal">
- <lane id=":538810726_2_0" index="0" speed="22.22" length="6.32" shape="968.22,899.55 973.71,896.42"/>
- </edge>
- <edge id=":538810726_3" function="internal">
- <lane id=":538810726_3_0" index="0" speed="22.22" length="5.04" shape="968.22,899.55 969.51,899.04 970.65,899.07 971.62,899.66 972.43,900.78"/>
- </edge>
- <edge id=":543360161_0" function="internal">
- <lane id=":543360161_0_0" index="0" speed="16.67" length="5.02" shape="1596.39,1840.08 1595.59,1838.96 1594.62,1838.37 1593.49,1838.31 1592.20,1838.79"/>
- </edge>
- <edge id=":543360161_1" function="internal">
- <lane id=":543360161_1_0" index="0" speed="5.56" length="6.25" shape="1596.39,1840.08 1593.50,1834.54"/>
- </edge>
- <edge id=":543360161_2" function="internal">
- <lane id=":543360161_2_0" index="0" speed="5.56" length="4.82" shape="1596.39,1840.08 1596.55,1838.60 1597.09,1837.85 1598.01,1837.84 1599.32,1838.55"/>
- </edge>
- <edge id=":543360161_3" function="internal">
- <lane id=":543360161_3_0" index="0" speed="16.67" length="5.04" shape="1600.61,1834.32 1599.50,1835.12 1598.91,1836.10 1598.85,1837.24 1599.32,1838.55"/>
- </edge>
- <edge id=":543360161_4" function="internal">
- <lane id=":543360161_4_0" index="0" speed="27.78" length="9.52" shape="1600.61,1834.32 1592.20,1838.79"/>
- </edge>
- <edge id=":543360161_5" function="internal">
- <lane id=":543360161_5_0" index="0" speed="16.67" length="7.85" shape="1600.61,1834.32 1598.04,1835.45 1596.00,1835.86 1594.48,1835.56 1593.50,1834.54"/>
- </edge>
- <edge id=":543360161_6" function="internal">
- <lane id=":543360161_6_0" index="0" speed="5.56" length="6.25" shape="1596.43,1833.01 1599.32,1838.55"/>
- </edge>
- <edge id=":543360161_7" function="internal">
- <lane id=":543360161_7_0" index="0" speed="16.67" length="7.88" shape="1596.43,1833.01 1596.70,1834.39 1596.08,1835.82 1594.58,1837.28 1592.20,1838.79"/>
- </edge>
- <edge id=":543360161_8" function="internal">
- <lane id=":543360161_8_0" index="0" speed="5.56" length="4.82" shape="1596.43,1833.01 1596.27,1834.49 1595.73,1835.24 1594.81,1835.25 1593.50,1834.54"/>
- </edge>
- <edge id=":552842254_0" function="internal">
- <lane id=":552842254_0_0" index="0" speed="25.00" length="2.56" shape="454.23,1469.83 454.35,1470.10 454.12,1470.47 453.55,1470.94 452.62,1471.51"/>
- </edge>
- <edge id=":552842254_1" function="internal">
- <lane id=":552842254_1_0" index="0" speed="25.00" length="12.29" shape="454.23,1469.83 452.50,1467.84 452.57,1465.66 454.44,1463.30 458.11,1460.76"/>
- </edge>
- <edge id=":552842254_2" function="internal">
- <lane id=":552842254_2_0" index="0" speed="22.22" length="7.51" shape="454.23,1469.83 452.04,1469.06 451.10,1467.97 451.41,1466.56 452.97,1464.84"/>
- </edge>
- <edge id=":552842254_3" function="internal">
- <lane id=":552842254_3_0" index="0" speed="25.00" length="9.08" shape="461.40,1466.48 459.58,1467.12 457.57,1467.06 455.37,1466.30 452.97,1464.84"/>
- </edge>
- <edge id=":552842254_4" function="internal">
- <lane id=":552842254_4_0" index="0" speed="27.78" length="10.11" shape="461.40,1466.48 458.80,1467.98 457.02,1469.01 455.23,1470.03 452.62,1471.51"/>
- </edge>
- <edge id=":552842254_5" function="internal">
- <lane id=":552842254_5_0" index="0" speed="27.78" length="10.09" shape="459.75,1463.62 457.16,1465.12 455.38,1466.14 453.60,1467.16 451.00,1468.64"/>
- </edge>
- <edge id=":552842254_6" function="internal">
- <lane id=":552842254_6_0" index="0" speed="27.78" length="2.41" shape="459.75,1463.62 458.27,1463.52 457.50,1463.01"/>
- </edge>
- <edge id=":552842254_11" function="internal">
- <lane id=":552842254_11_0" index="0" speed="27.78" length="2.41" shape="457.50,1463.01 457.45,1462.09 458.11,1460.76"/>
- </edge>
- <edge id=":552842254_7" function="internal">
- <lane id=":552842254_7_0" index="0" speed="27.78" length="10.05" shape="447.74,1462.90 450.34,1461.43 452.11,1460.41 453.88,1459.39 456.46,1457.90"/>
- </edge>
- <edge id=":552842254_8" function="internal">
- <lane id=":552842254_8_0" index="0" speed="27.78" length="10.07" shape="449.37,1465.77 451.97,1464.30 453.74,1463.28 455.52,1462.26 458.11,1460.76"/>
- </edge>
- <edge id=":552842254_9" function="internal">
- <lane id=":552842254_9_0" index="0" speed="25.00" length="3.85" shape="449.37,1465.77 450.62,1465.13 451.64,1464.76 452.42,1464.67 452.97,1464.84"/>
- </edge>
- <edge id=":552842254_10" function="internal">
- <lane id=":552842254_10_0" index="0" speed="27.78" length="2.41" shape="449.37,1465.77 450.85,1465.88 451.62,1466.40"/>
- </edge>
- <edge id=":552842254_12" function="internal">
- <lane id=":552842254_12_0" index="0" speed="27.78" length="2.41" shape="451.62,1466.40 451.67,1467.32 451.00,1468.64"/>
- </edge>
- <edge id=":552842255_0" function="internal">
- <lane id=":552842255_0_0" index="0" speed="22.22" length="8.41" shape="468.41,1480.15 466.27,1478.87 464.25,1478.24 462.35,1478.25 460.57,1478.92"/>
- </edge>
- <edge id=":552842255_1" function="internal">
- <lane id=":552842255_1_0" index="0" speed="22.22" length="8.08" shape="468.41,1480.15 461.89,1475.40"/>
- </edge>
- <edge id=":552842255_2" function="internal">
- <lane id=":552842255_2_0" index="0" speed="22.22" length="2.41" shape="468.41,1480.15 467.90,1478.76 468.05,1477.85"/>
- </edge>
- <edge id=":552842255_9" function="internal">
- <lane id=":552842255_9_0" index="0" speed="22.22" length="2.41" shape="468.05,1477.85 468.87,1477.43 470.36,1477.49"/>
- </edge>
- <edge id=":552842255_3" function="internal">
- <lane id=":552842255_3_0" index="0" speed="22.22" length="5.62" shape="470.60,1473.18 469.29,1474.19 468.82,1475.24 469.17,1476.34 470.36,1477.49"/>
- </edge>
- <edge id=":552842255_4" function="internal">
- <lane id=":552842255_4_0" index="0" speed="22.22" length="11.56" shape="470.60,1473.18 467.81,1474.77 465.58,1476.04 463.36,1477.32 460.57,1478.92"/>
- </edge>
- <edge id=":552842255_5" function="internal">
- <lane id=":552842255_5_0" index="0" speed="22.22" length="9.33" shape="470.60,1473.18 467.59,1474.73 465.13,1475.61 463.23,1475.84 461.89,1475.40"/>
- </edge>
- <edge id=":552842255_6" function="internal">
- <lane id=":552842255_6_0" index="0" speed="22.22" length="8.08" shape="463.83,1472.73 470.36,1477.49"/>
- </edge>
- <edge id=":552842255_7" function="internal">
- <lane id=":552842255_7_0" index="0" speed="22.22" length="4.72" shape="463.83,1472.73 464.87,1474.02 464.67,1475.48 463.63,1476.67"/>
- </edge>
- <edge id=":552842255_10" function="internal">
- <lane id=":552842255_10_0" index="0" speed="22.22" length="3.82" shape="463.63,1476.67 463.24,1477.12 460.57,1478.92"/>
- </edge>
- <edge id=":552842255_8" function="internal">
- <lane id=":552842255_8_0" index="0" speed="22.22" length="2.41" shape="463.83,1472.73 464.34,1474.12 464.19,1475.03"/>
- </edge>
- <edge id=":552842255_11" function="internal">
- <lane id=":552842255_11_0" index="0" speed="22.22" length="2.41" shape="464.19,1475.03 463.37,1475.46 461.89,1475.40"/>
- </edge>
- <edge id=":552842256_0" function="internal">
- <lane id=":552842256_0_0" index="0" speed="22.22" length="5.59" shape="721.22,1660.69 719.91,1660.37 718.89,1660.76 718.15,1661.84 717.71,1663.63"/>
- </edge>
- <edge id=":552842256_1" function="internal">
- <lane id=":552842256_1_0" index="0" speed="25.00" length="15.77" shape="721.22,1660.69 717.56,1659.62 713.58,1659.25 709.52,1659.17 705.63,1658.93"/>
- </edge>
- <edge id=":552842256_2" function="internal">
- <lane id=":552842256_2_0" index="0" speed="22.22" length="16.06" shape="721.22,1660.69 717.63,1659.09 713.87,1657.40 710.21,1655.53 706.91,1653.45"/>
- </edge>
- <edge id=":552842256_3" function="internal">
- <lane id=":552842256_3_0" index="0" speed="22.22" length="11.31" shape="721.22,1660.69 718.64,1659.08 716.93,1657.02 716.09,1654.52 716.13,1651.57"/>
- </edge>
- <edge id=":552842256_4" function="internal">
- <lane id=":552842256_4_0" index="0" speed="22.22" length="5.80" shape="721.22,1660.69 719.59,1659.75 719.20,1659.01 720.02,1658.44 722.07,1658.07"/>
- </edge>
- <edge id=":552842256_5" function="internal">
- <lane id=":552842256_5_0" index="0" speed="25.00" length="10.78" shape="721.22,1660.69 717.76,1658.88 716.75,1657.77 718.17,1657.34 722.04,1657.61"/>
- </edge>
- <edge id=":552842256_6" function="internal">
- <lane id=":552842256_6_0" index="0" speed="25.00" length="5.07" shape="721.20,1660.83 719.84,1660.87 718.80,1661.35 718.09,1662.27 717.71,1663.63"/>
- </edge>
- <edge id=":552842256_7" function="internal">
- <lane id=":552842256_7_0" index="0" speed="27.78" length="15.68" shape="721.20,1660.83 717.37,1660.37 713.41,1659.88 709.46,1659.40 705.63,1658.93"/>
- </edge>
- <edge id=":552842256_8" function="internal">
- <lane id=":552842256_8_0" index="0" speed="25.00" length="16.23" shape="721.20,1660.83 717.44,1659.84 713.70,1658.03 710.15,1655.77 706.91,1653.45"/>
- </edge>
- <edge id=":552842256_9" function="internal">
- <lane id=":552842256_9_0" index="0" speed="25.00" length="5.76" shape="721.20,1660.83 718.51,1659.96 716.76,1658.13 716.65,1657.74"/>
- </edge>
- <edge id=":552842256_36" function="internal">
- <lane id=":552842256_36_0" index="0" speed="25.00" length="6.27" shape="716.65,1657.74 715.97,1655.33 716.13,1651.57"/>
- </edge>
- <edge id=":552842256_10" function="internal">
- <lane id=":552842256_10_0" index="0" speed="25.00" length="12.65" shape="721.20,1660.83 716.82,1660.12 715.51,1659.43 717.26,1658.75 722.07,1658.07"/>
- </edge>
- <edge id=":552842256_11" function="internal">
- <lane id=":552842256_11_0" index="0" speed="27.78" length="2.43" shape="721.20,1660.83 720.20,1659.70 720.01,1658.79"/>
- </edge>
- <edge id=":552842256_37" function="internal">
- <lane id=":552842256_37_0" index="0" speed="27.78" length="2.43" shape="720.01,1658.79 720.62,1658.09 722.04,1657.61"/>
- </edge>
- <edge id=":552842256_12" function="internal">
- <lane id=":552842256_12_0" index="0" speed="22.22" length="7.74" shape="719.39,1652.05 719.20,1654.83 719.59,1656.76 720.54,1657.84 722.07,1658.07"/>
- </edge>
- <edge id=":552842256_13" function="internal">
- <lane id=":552842256_13_0" index="0" speed="25.00" length="6.98" shape="719.39,1652.05 719.27,1654.33 719.67,1656.01 720.60,1657.11 722.04,1657.61"/>
- </edge>
- <edge id=":552842256_14" function="internal">
- <lane id=":552842256_14_0" index="0" speed="22.22" length="11.70" shape="719.39,1652.05 718.92,1655.25 718.54,1657.84 718.16,1660.42 717.71,1663.63"/>
- </edge>
- <edge id=":552842256_15" function="internal">
- <lane id=":552842256_15_0" index="0" speed="25.00" length="17.27" shape="719.39,1652.05 718.06,1655.64 715.33,1657.98 711.18,1659.08 705.63,1658.93"/>
- </edge>
- <edge id=":552842256_16" function="internal">
- <lane id=":552842256_16_0" index="0" speed="22.22" length="16.35" shape="719.39,1652.05 718.08,1655.71 715.57,1657.17 711.84,1656.41 706.91,1653.45"/>
- </edge>
- <edge id=":552842256_17" function="internal">
- <lane id=":552842256_17_0" index="0" speed="22.22" length="4.82" shape="719.39,1652.05 718.39,1653.15 717.52,1653.44 716.76,1652.91 716.13,1651.57"/>
- </edge>
- <edge id=":552842256_18" function="internal">
- <lane id=":552842256_18_0" index="0" speed="22.22" length="8.94" shape="708.87,1650.79 711.82,1652.67 714.01,1653.43 715.44,1653.06 716.13,1651.57"/>
- </edge>
- <edge id=":552842256_19" function="internal">
- <lane id=":552842256_19_0" index="0" speed="22.22" length="15.42" shape="708.87,1650.79 711.93,1653.25 715.12,1655.74 718.48,1657.57 722.07,1658.07"/>
- </edge>
- <edge id=":552842256_20" function="internal">
- <lane id=":552842256_20_0" index="0" speed="25.00" length="15.00" shape="708.87,1650.79 711.93,1653.02 715.11,1655.09 718.46,1656.71 722.04,1657.61"/>
- </edge>
- <edge id=":552842256_21" function="internal">
- <lane id=":552842256_21_0" index="0" speed="22.22" length="16.24" shape="708.87,1650.79 713.04,1654.25 715.90,1657.55 717.46,1660.67 717.71,1663.63"/>
- </edge>
- <edge id=":552842256_22" function="internal">
- <lane id=":552842256_22_0" index="0" speed="25.00" length="19.35" shape="708.87,1650.79 713.89,1655.14 715.03,1657.95 712.27,1659.21 705.63,1658.93"/>
- </edge>
- <edge id=":552842256_23" function="internal">
- <lane id=":552842256_23_0" index="0" speed="22.22" length="4.82" shape="708.87,1650.79 709.38,1652.19 709.22,1653.10 708.40,1653.52 706.91,1653.45"/>
- </edge>
- <edge id=":552842256_24" function="internal">
- <lane id=":552842256_24_0" index="0" speed="25.00" length="5.25" shape="706.03,1655.65 707.83,1655.73 708.58,1655.39 708.28,1654.63 706.91,1653.45"/>
- </edge>
- <edge id=":552842256_25" function="internal">
- <lane id=":552842256_25_0" index="0" speed="25.00" length="12.10" shape="706.03,1655.65 710.16,1655.83 713.22,1655.20 715.20,1653.78 716.13,1651.57"/>
- </edge>
- <edge id=":552842256_26" function="internal">
- <lane id=":552842256_26_0" index="0" speed="25.00" length="16.27" shape="706.03,1655.65 709.93,1656.36 714.05,1657.29 718.16,1658.00 722.07,1658.07"/>
- </edge>
- <edge id=":552842256_27" function="internal">
- <lane id=":552842256_27_0" index="0" speed="27.78" length="16.13" shape="706.03,1655.65 709.93,1656.13 714.04,1656.64 718.15,1657.14 722.04,1657.61"/>
- </edge>
- <edge id=":552842256_28" function="internal">
- <lane id=":552842256_28_0" index="0" speed="25.00" length="12.23" shape="706.03,1655.65 711.48,1656.73 715.24,1658.42 716.96,1660.32"/>
- </edge>
- <edge id=":552842256_38" function="internal">
- <lane id=":552842256_38_0" index="0" speed="25.00" length="3.48" shape="716.96,1660.32 717.32,1660.72 717.71,1663.63"/>
- </edge>
- <edge id=":552842256_29" function="internal">
- <lane id=":552842256_29_0" index="0" speed="27.78" length="2.41" shape="706.03,1655.65 707.16,1656.62 707.47,1657.49"/>
- </edge>
- <edge id=":552842256_39" function="internal">
- <lane id=":552842256_39_0" index="0" speed="27.78" length="2.41" shape="707.47,1657.49 706.96,1658.26 705.63,1658.93"/>
- </edge>
- <edge id=":552842256_30" function="internal">
- <lane id=":552842256_30_0" index="0" speed="25.00" length="10.51" shape="714.44,1663.16 714.06,1661.74 712.46,1660.56 709.65,1659.62 705.63,1658.93"/>
- </edge>
- <edge id=":552842256_31" function="internal">
- <lane id=":552842256_31_0" index="0" speed="22.22" length="12.73" shape="714.44,1663.16 714.17,1661.14 712.83,1658.84 710.41,1656.28 706.91,1653.45"/>
- </edge>
- <edge id=":552842256_32" function="internal">
- <lane id=":552842256_32_0" index="0" speed="22.22" length="11.72" shape="714.44,1663.16 714.90,1659.96 715.27,1657.36 715.65,1654.77 716.13,1651.57"/>
- </edge>
- <edge id=":552842256_33" function="internal">
- <lane id=":552842256_33_0" index="0" speed="22.22" length="9.90" shape="714.44,1663.16 715.15,1661.21 716.66,1659.71 718.96,1658.67 722.07,1658.07"/>
- </edge>
- <edge id=":552842256_34" function="internal">
- <lane id=":552842256_34_0" index="0" speed="25.00" length="10.69" shape="714.44,1663.16 715.25,1660.43 716.79,1658.59 719.06,1657.65 722.04,1657.61"/>
- </edge>
- <edge id=":552842256_35" function="internal">
- <lane id=":552842256_35_0" index="0" speed="22.22" length="4.82" shape="714.44,1663.16 715.43,1662.05 716.31,1661.76 717.07,1662.28 717.71,1663.63"/>
- </edge>
- <edge id=":552842257_0" function="internal">
- <lane id=":552842257_0_0" index="0" speed="27.78" length="4.90" shape="702.73,1658.57 697.87,1657.99"/>
- </edge>
- <edge id=":552842257_1" function="internal">
- <lane id=":552842257_1_0" index="0" speed="25.00" length="4.18" shape="702.73,1658.57 701.82,1658.20 701.50,1657.36 701.77,1656.08 702.20,1655.19"/>
- </edge>
- <edge id=":552842257_9" function="internal">
- <lane id=":552842257_9_0" index="0" speed="25.00" length="0.95" shape="702.20,1655.19 702.62,1654.34"/>
- </edge>
- <edge id=":552842257_2" function="internal">
- <lane id=":552842257_2_0" index="0" speed="27.78" length="2.41" shape="702.73,1658.57 701.60,1657.60 701.30,1656.73"/>
- </edge>
- <edge id=":552842257_10" function="internal">
- <lane id=":552842257_10_0" index="0" speed="27.78" length="2.41" shape="701.30,1656.73 701.81,1655.96 703.13,1655.30"/>
- </edge>
- <edge id=":552842257_3" function="internal">
- <lane id=":552842257_3_0" index="0" speed="25.00" length="4.50" shape="698.25,1654.71 699.98,1654.86 701.29,1654.85 702.16,1654.67 702.62,1654.34"/>
- </edge>
- <edge id=":552842257_4" function="internal">
- <lane id=":552842257_4_0" index="0" speed="27.78" length="4.92" shape="698.25,1654.71 703.13,1655.30"/>
- </edge>
- <edge id=":552842257_5" function="internal">
- <lane id=":552842257_5_0" index="0" speed="27.78" length="2.41" shape="698.25,1654.71 699.39,1655.68 699.70,1656.55"/>
- </edge>
- <edge id=":552842257_11" function="internal">
- <lane id=":552842257_11_0" index="0" speed="27.78" length="2.41" shape="699.70,1656.55 699.19,1657.32 697.87,1657.99"/>
- </edge>
- <edge id=":552842257_6" function="internal">
- <lane id=":552842257_6_0" index="0" speed="25.00" length="5.03" shape="700.54,1661.47 700.54,1660.09 700.10,1659.04 699.21,1658.35 697.87,1657.99"/>
- </edge>
- <edge id=":552842257_7" function="internal">
- <lane id=":552842257_7_0" index="0" speed="22.22" length="7.43" shape="700.54,1661.47 702.62,1654.34"/>
- </edge>
- <edge id=":552842257_8" function="internal">
- <lane id=":552842257_8_0" index="0" speed="25.00" length="7.04" shape="700.54,1661.47 701.05,1658.69 701.65,1656.74 702.35,1655.61 703.13,1655.30"/>
- </edge>
- <edge id=":560472377_0" function="internal">
- <lane id=":560472377_0_0" index="0" speed="22.22" length="6.25" shape="830.60,1983.09 827.73,1977.53"/>
- </edge>
- <edge id=":560472377_1" function="internal">
- <lane id=":560472377_1_0" index="0" speed="22.22" length="2.41" shape="830.60,1983.09 830.79,1981.61 831.35,1980.88"/>
- </edge>
- <edge id=":560472377_6" function="internal">
- <lane id=":560472377_6_0" index="0" speed="22.22" length="2.41" shape="831.35,1980.88 832.27,1980.88 833.56,1981.62"/>
- </edge>
- <edge id=":560472377_2" function="internal">
- <lane id=":560472377_2_0" index="0" speed="22.22" length="6.37" shape="830.64,1975.96 833.56,1981.62"/>
- </edge>
- <edge id=":560472377_3" function="internal">
- <lane id=":560472377_3_0" index="0" speed="22.22" length="2.41" shape="830.64,1975.96 830.50,1977.45 829.97,1978.20"/>
- </edge>
- <edge id=":560472377_7" function="internal">
- <lane id=":560472377_7_0" index="0" speed="22.22" length="2.41" shape="829.97,1978.20 829.04,1978.23 827.73,1977.53"/>
- </edge>
- <edge id=":560472377_4" function="internal">
- <lane id=":560472377_4_0" index="0" speed="22.22" length="5.04" shape="826.42,1981.75 827.55,1980.93 828.14,1979.95 828.20,1978.82 827.73,1977.53"/>
- </edge>
- <edge id=":560472377_5" function="internal">
- <lane id=":560472377_5_0" index="0" speed="22.22" length="7.93" shape="826.42,1981.75 829.00,1980.60 831.05,1980.20 832.57,1980.54 833.56,1981.62"/>
- </edge>
- <edge id=":560472378_0" function="internal">
- <lane id=":560472378_0_0" index="0" speed="22.22" length="9.51" shape="843.00,1993.60 834.61,1998.10"/>
- </edge>
- <edge id=":560472378_1" function="internal">
- <lane id=":560472378_1_0" index="0" speed="22.22" length="7.95" shape="843.00,1993.60 840.42,1994.76 838.37,1995.17 836.85,1994.83 835.86,1993.73"/>
- </edge>
- <edge id=":560472378_2" function="internal">
- <lane id=":560472378_2_0" index="0" speed="22.22" length="3.03" shape="838.82,1992.27 839.08,1993.70 838.47,1995.15"/>
- </edge>
- <edge id=":560472378_4" function="internal">
- <lane id=":560472378_4_0" index="0" speed="22.22" length="4.88" shape="838.47,1995.15 836.98,1996.61 834.61,1998.10"/>
- </edge>
- <edge id=":560472378_3" function="internal">
- <lane id=":560472378_3_0" index="0" speed="22.22" length="2.41" shape="838.82,1992.27 838.63,1993.75 838.07,1994.48"/>
- </edge>
- <edge id=":560472378_5" function="internal">
- <lane id=":560472378_5_0" index="0" speed="22.22" length="2.41" shape="838.07,1994.48 837.15,1994.48 835.86,1993.73"/>
- </edge>
- <edge id=":560472379_0" function="internal">
- <lane id=":560472379_0_0" index="0" speed="22.22" length="5.50" shape="727.84,2030.26 728.28,2031.80 729.07,2032.64 730.21,2032.78 731.71,2032.24"/>
- </edge>
- <edge id=":560472379_1" function="internal">
- <lane id=":560472379_1_0" index="0" speed="22.22" length="6.39" shape="727.84,2030.26 728.65,2036.60"/>
- </edge>
- <edge id=":561204538_0" function="internal">
- <lane id=":561204538_0_0" index="0" speed="22.22" length="5.57" shape="704.56,1651.71 700.04,1648.44"/>
- </edge>
- <edge id=":561204538_1" function="internal">
- <lane id=":561204538_1_0" index="0" speed="22.22" length="3.62" shape="704.56,1651.71 704.76,1651.32 705.05,1649.92 705.32,1648.19"/>
- </edge>
- <edge id=":561204538_9" function="internal">
- <lane id=":561204538_9_0" index="0" speed="22.22" length="4.16" shape="705.32,1648.19 705.43,1647.50 705.91,1644.08"/>
- </edge>
- <edge id=":561204538_2" function="internal">
- <lane id=":561204538_2_0" index="0" speed="22.22" length="2.41" shape="704.56,1651.71 704.05,1650.32 704.21,1649.41"/>
- </edge>
- <edge id=":561204538_10" function="internal">
- <lane id=":561204538_10_0" index="0" speed="22.22" length="2.41" shape="704.21,1649.41 705.03,1648.99 706.51,1649.06"/>
- </edge>
- <edge id=":561204538_3" function="internal">
- <lane id=":561204538_3_0" index="0" speed="22.22" length="5.76" shape="701.98,1645.77 703.49,1646.58 704.65,1646.57 705.46,1645.74 705.91,1644.08"/>
- </edge>
- <edge id=":561204538_4" function="internal">
- <lane id=":561204538_4_0" index="0" speed="22.22" length="5.60" shape="701.98,1645.77 706.51,1649.06"/>
- </edge>
- <edge id=":561204538_5" function="internal">
- <lane id=":561204538_5_0" index="0" speed="22.22" length="2.41" shape="701.98,1645.77 702.50,1647.16 702.35,1648.07"/>
- </edge>
- <edge id=":561204538_11" function="internal">
- <lane id=":561204538_11_0" index="0" speed="22.22" length="2.41" shape="702.35,1648.07 701.53,1648.50 700.04,1648.44"/>
- </edge>
- <edge id=":561204538_6" function="internal">
- <lane id=":561204538_6_0" index="0" speed="22.22" length="5.29" shape="704.11,1651.78 703.92,1651.47 703.18,1650.81 701.88,1649.80 700.04,1648.44"/>
- </edge>
- <edge id=":561204538_7" function="internal">
- <lane id=":561204538_7_0" index="0" speed="22.22" length="7.91" shape="704.11,1651.78 705.91,1644.08"/>
- </edge>
- <edge id=":561204538_8" function="internal">
- <lane id=":561204538_8_0" index="0" speed="22.22" length="3.78" shape="704.11,1651.78 704.95,1650.43 705.63,1649.53 706.15,1649.07 706.51,1649.06"/>
- </edge>
- <edge id=":566579336_0" function="internal">
- <lane id=":566579336_0_0" index="0" speed="22.22" length="0.10" shape="970.87,637.71 970.87,637.70"/>
- </edge>
- <edge id=":566579338_0" function="internal">
- <lane id=":566579338_0_0" index="0" speed="22.22" length="0.10" shape="1076.57,837.91 1076.57,837.91"/>
- </edge>
- <edge id=":566579339_0" function="internal">
- <lane id=":566579339_0_0" index="0" speed="22.22" length="5.05" shape="1113.48,902.52 1112.36,903.36 1111.77,904.35 1111.70,905.48 1112.15,906.76"/>
- </edge>
- <edge id=":566579339_1" function="internal">
- <lane id=":566579339_1_0" index="0" speed="22.22" length="6.21" shape="1109.28,901.25 1112.15,906.76"/>
- </edge>
- <edge id=":566579340_0" function="internal">
- <lane id=":566579340_0_0" index="0" speed="25.00" length="5.01" shape="1557.39,1852.48 1558.51,1851.68 1559.09,1850.72 1559.15,1849.59 1558.69,1848.30"/>
- </edge>
- <edge id=":566579340_1" function="internal">
- <lane id=":566579340_1_0" index="0" speed="27.78" length="4.82" shape="1557.39,1852.48 1558.87,1852.64 1559.62,1853.18 1559.64,1854.10 1558.93,1855.41"/>
- </edge>
- <edge id=":566670951_0" function="internal">
- <lane id=":566670951_0_0" index="0" speed="5.56" length="4.82" shape="1804.54,1409.41 1806.02,1409.56 1806.78,1410.09 1806.80,1411.02 1806.09,1412.32"/>
- </edge>
- <edge id=":650318340_0" function="internal">
- <lane id=":650318340_0_0" index="0" speed="5.56" length="4.82" shape="652.51,307.34 653.52,306.25 654.40,305.97 655.15,306.50 655.77,307.86"/>
- </edge>
- <edge id=":719463587_0" function="internal">
- <lane id=":719463587_0_0" index="0" speed="5.56" length="6.43" shape="939.06,1173.63 936.10,1167.92"/>
- </edge>
- <edge id=":719463587_1" function="internal">
- <lane id=":719463587_1_0" index="0" speed="13.89" length="4.82" shape="939.06,1173.63 938.77,1172.21 939.38,1170.74 940.62,1169.47"/>
- </edge>
- <edge id=":719463587_9" function="internal">
- <lane id=":719463587_9_0" index="0" speed="13.89" length="3.19" shape="940.62,1169.47 940.86,1169.22 943.23,1167.66"/>
- </edge>
- <edge id=":719463587_2" function="internal">
- <lane id=":719463587_2_0" index="0" speed="5.56" length="2.41" shape="939.06,1173.63 939.22,1172.15 939.76,1171.41"/>
- </edge>
- <edge id=":719463587_10" function="internal">
- <lane id=":719463587_10_0" index="0" speed="5.56" length="2.41" shape="939.76,1171.41 940.69,1171.40 941.99,1172.12"/>
- </edge>
- <edge id=":719463587_3" function="internal">
- <lane id=":719463587_3_0" index="0" speed="13.89" length="5.04" shape="939.03,1166.41 939.84,1167.54 940.81,1168.12 941.94,1168.16 943.23,1167.66"/>
- </edge>
- <edge id=":719463587_4" function="internal">
- <lane id=":719463587_4_0" index="0" speed="5.56" length="6.43" shape="939.03,1166.41 941.99,1172.12"/>
- </edge>
- <edge id=":719463587_5" function="internal">
- <lane id=":719463587_5_0" index="0" speed="5.56" length="2.41" shape="939.03,1166.41 938.87,1167.88 938.32,1168.63"/>
- </edge>
- <edge id=":719463587_11" function="internal">
- <lane id=":719463587_11_0" index="0" speed="5.56" length="2.41" shape="938.32,1168.63 937.40,1168.64 936.10,1167.92"/>
- </edge>
- <edge id=":719463587_6" function="internal">
- <lane id=":719463587_6_0" index="0" speed="13.89" length="5.23" shape="934.86,1172.38 935.96,1171.52 936.54,1170.49 936.59,1169.29 936.10,1167.92"/>
- </edge>
- <edge id=":719463587_7" function="internal">
- <lane id=":719463587_7_0" index="0" speed="22.22" length="9.62" shape="934.86,1172.38 943.23,1167.66"/>
- </edge>
- <edge id=":719463587_8" function="internal">
- <lane id=":719463587_8_0" index="0" speed="13.89" length="3.17" shape="934.86,1172.38 937.41,1171.17 937.75,1171.10"/>
- </edge>
- <edge id=":719463587_12" function="internal">
- <lane id=":719463587_12_0" index="0" speed="13.89" length="4.78" shape="937.75,1171.10 939.45,1170.73 940.98,1171.04 941.99,1172.12"/>
- </edge>
- <edge id=":719463795_0" function="internal">
- <lane id=":719463795_0_0" index="0" speed="13.89" length="5.05" shape="907.30,1112.36 906.49,1111.23 905.52,1110.64 904.38,1110.61 903.09,1111.12"/>
- </edge>
- <edge id=":719463795_1" function="internal">
- <lane id=":719463795_1_0" index="0" speed="5.56" length="6.46" shape="907.30,1112.36 904.32,1106.62"/>
- </edge>
- <edge id=":719463795_2" function="internal">
- <lane id=":719463795_2_0" index="0" speed="5.56" length="4.82" shape="907.30,1112.36 907.46,1110.88 908.00,1110.13 908.92,1110.12 910.23,1110.84"/>
- </edge>
- <edge id=":719463795_3" function="internal">
- <lane id=":719463795_3_0" index="0" speed="13.89" length="5.27" shape="911.46,1106.35 910.35,1107.22 909.78,1108.25 909.74,1109.46 910.23,1110.84"/>
- </edge>
- <edge id=":719463795_4" function="internal">
- <lane id=":719463795_4_0" index="0" speed="22.22" length="9.63" shape="911.46,1106.35 903.09,1111.12"/>
- </edge>
- <edge id=":719463795_5" function="internal">
- <lane id=":719463795_5_0" index="0" speed="13.89" length="7.96" shape="911.46,1106.35 908.91,1107.56 906.87,1108.02 905.34,1107.70 904.32,1106.62"/>
- </edge>
- <edge id=":719463795_6" function="internal">
- <lane id=":719463795_6_0" index="0" speed="5.56" length="6.46" shape="907.25,1105.10 910.23,1110.84"/>
- </edge>
- <edge id=":719463795_7" function="internal">
- <lane id=":719463795_7_0" index="0" speed="13.89" length="8.03" shape="907.25,1105.10 907.54,1106.53 906.94,1108.01 905.46,1109.54 903.09,1111.12"/>
- </edge>
- <edge id=":719463795_8" function="internal">
- <lane id=":719463795_8_0" index="0" speed="5.56" length="4.82" shape="907.25,1105.10 907.09,1106.58 906.55,1107.33 905.63,1107.34 904.32,1106.62"/>
- </edge>
- <edge id=":719464017_0" function="internal">
- <lane id=":719464017_0_0" index="0" speed="5.56" length="0.10" shape="653.98,319.17 653.98,319.17"/>
- </edge>
- <edge id=":719464017_1" function="internal">
- <lane id=":719464017_1_0" index="0" speed="5.56" length="2.41" shape="653.98,319.17 652.96,320.26 652.08,320.53"/>
- </edge>
- <edge id=":719464017_4" function="internal">
- <lane id=":719464017_4_0" index="0" speed="5.56" length="2.41" shape="652.08,320.53 651.33,319.99 650.72,318.64"/>
- </edge>
- <edge id=":719464017_2" function="internal">
- <lane id=":719464017_2_0" index="0" speed="5.56" length="0.10" shape="650.73,318.60 650.72,318.64"/>
- </edge>
- <edge id=":719464017_3" function="internal">
- <lane id=":719464017_3_0" index="0" speed="5.56" length="2.41" shape="650.73,318.60 651.75,317.52 652.64,317.26"/>
- </edge>
- <edge id=":719464017_5" function="internal">
- <lane id=":719464017_5_0" index="0" speed="5.56" length="2.41" shape="652.64,317.26 653.38,317.81 653.98,319.17"/>
- </edge>
- <edge id=":724002953_0" function="internal">
- <lane id=":724002953_0_0" index="0" speed="27.78" length="6.35" shape="728.93,2289.33 728.03,2283.05"/>
- </edge>
- <edge id=":724002953_1" function="internal">
- <lane id=":724002953_1_0" index="0" speed="27.78" length="5.45" shape="728.93,2289.33 728.73,2287.30 728.76,2285.75 729.03,2284.69 729.54,2284.11"/>
- </edge>
- <edge id=":724002953_2" function="internal">
- <lane id=":724002953_2_0" index="0" speed="27.78" length="3.32" shape="728.93,2289.33 729.01,2288.78 729.40,2288.22 730.09,2287.63 731.09,2287.02"/>
- </edge>
- <edge id=":724002953_3" function="internal">
- <lane id=":724002953_3_0" index="0" speed="27.78" length="9.39" shape="720.76,2281.33 723.75,2280.08 725.95,2279.95 727.38,2280.94 728.03,2283.05"/>
- </edge>
- <edge id=":724002953_4" function="internal">
- <lane id=":724002953_4_0" index="0" speed="27.78" length="9.21" shape="723.88,2287.14 726.43,2278.29"/>
- </edge>
- <edge id=":724002953_5" function="internal">
- <lane id=":724002953_5_0" index="0" speed="27.78" length="9.21" shape="725.44,2290.05 727.98,2281.20"/>
- </edge>
- <edge id=":728492341_0" function="internal">
- <lane id=":728492341_0_0" index="0" speed="27.78" length="9.50" shape="441.88,1876.27 436.77,1868.25"/>
- </edge>
- <edge id=":728492341_1" function="internal">
- <lane id=":728492341_1_0" index="0" speed="25.00" length="7.15" shape="441.88,1876.27 440.69,1873.63 440.64,1871.27 441.53,1869.59"/>
- </edge>
- <edge id=":728492341_9" function="internal">
- <lane id=":728492341_9_0" index="0" speed="25.00" length="3.35" shape="441.53,1869.59 441.75,1869.19 444.00,1867.38"/>
- </edge>
- <edge id=":728492341_2" function="internal">
- <lane id=":728492341_2_0" index="0" speed="27.78" length="2.41" shape="441.88,1876.27 441.91,1874.78 442.38,1873.99"/>
- </edge>
- <edge id=":728492341_10" function="internal">
- <lane id=":728492341_10_0" index="0" speed="27.78" length="2.41" shape="442.38,1873.99 443.30,1873.89 444.66,1874.49"/>
- </edge>
- <edge id=":728492341_3" function="internal">
- <lane id=":728492341_3_0" index="0" speed="25.00" length="5.04" shape="445.68,1870.22 444.60,1871.09 444.07,1872.09 444.09,1873.23 444.66,1874.49"/>
- </edge>
- <edge id=":728492341_4" function="internal">
- <lane id=":728492341_4_0" index="0" speed="25.00" length="10.33" shape="445.68,1870.22 443.04,1871.33 440.67,1871.37 438.58,1870.35 436.77,1868.25"/>
- </edge>
- <edge id=":728492341_5" function="internal">
- <lane id=":728492341_5_0" index="0" speed="22.22" length="4.82" shape="445.68,1870.22 444.20,1870.14 443.42,1869.64 443.36,1868.72 444.00,1867.38"/>
- </edge>
- <edge id=":728492341_6" function="internal">
- <lane id=":728492341_6_0" index="0" speed="25.00" length="5.14" shape="439.55,1866.48 440.44,1867.50 441.48,1867.99 442.67,1867.95 444.00,1867.38"/>
- </edge>
- <edge id=":728492341_7" function="internal">
- <lane id=":728492341_7_0" index="0" speed="27.78" length="9.50" shape="439.55,1866.48 444.66,1874.49"/>
- </edge>
- <edge id=":728492341_8" function="internal">
- <lane id=":728492341_8_0" index="0" speed="27.78" length="2.41" shape="439.55,1866.48 439.52,1867.97 439.04,1868.76"/>
- </edge>
- <edge id=":728492341_11" function="internal">
- <lane id=":728492341_11_0" index="0" speed="27.78" length="2.41" shape="439.04,1868.76 438.13,1868.85 436.77,1868.25"/>
- </edge>
- <edge id=":728492348_0" function="internal">
- <lane id=":728492348_0_0" index="0" speed="22.22" length="4.82" shape="538.49,1883.87 537.01,1883.77 536.24,1883.26 536.19,1882.34 536.85,1881.01"/>
- </edge>
- <edge id=":728492353_0" function="internal">
- <lane id=":728492353_0_0" index="0" speed="25.00" length="5.00" shape="633.52,1650.45 632.15,1650.48 631.12,1650.95 630.43,1651.84 630.07,1653.16"/>
- </edge>
- <edge id=":728492353_1" function="internal">
- <lane id=":728492353_1_0" index="0" speed="27.78" length="9.48" shape="633.52,1650.45 624.10,1649.30"/>
- </edge>
- <edge id=":728492353_2" function="internal">
- <lane id=":728492353_2_0" index="0" speed="27.78" length="2.41" shape="633.52,1650.45 632.38,1649.49 632.07,1648.62"/>
- </edge>
- <edge id=":728492353_9" function="internal">
- <lane id=":728492353_9_0" index="0" speed="27.78" length="2.41" shape="632.07,1648.62 632.58,1647.85 633.90,1647.17"/>
- </edge>
- <edge id=":728492353_3" function="internal">
- <lane id=":728492353_3_0" index="0" speed="27.78" length="9.45" shape="624.52,1646.02 633.90,1647.17"/>
- </edge>
- <edge id=":728492353_4" function="internal">
- <lane id=":728492353_4_0" index="0" speed="25.00" length="7.10" shape="624.52,1646.02 627.24,1646.77 629.07,1648.21 629.86,1650.00"/>
- </edge>
- <edge id=":728492353_10" function="internal">
- <lane id=":728492353_10_0" index="0" speed="25.00" length="3.19" shape="629.86,1650.00 630.01,1650.34 630.07,1653.16"/>
- </edge>
- <edge id=":728492353_5" function="internal">
- <lane id=":728492353_5_0" index="0" speed="27.78" length="2.41" shape="624.52,1646.02 625.64,1647.00 625.95,1647.87"/>
- </edge>
- <edge id=":728492353_11" function="internal">
- <lane id=":728492353_11_0" index="0" speed="27.78" length="2.41" shape="625.95,1647.87 625.44,1648.63 624.10,1649.30"/>
- </edge>
- <edge id=":728492353_6" function="internal">
- <lane id=":728492353_6_0" index="0" speed="25.00" length="5.00" shape="626.80,1652.77 626.77,1651.39 626.31,1650.36 625.42,1649.66 624.10,1649.30"/>
- </edge>
- <edge id=":728492353_7" function="internal">
- <lane id=":728492353_7_0" index="0" speed="25.00" length="10.31" shape="626.80,1652.77 627.53,1650.04 628.95,1648.20 631.08,1647.24 633.90,1647.17"/>
- </edge>
- <edge id=":728492353_8" function="internal">
- <lane id=":728492353_8_0" index="0" speed="22.22" length="4.82" shape="626.80,1652.77 627.76,1651.64 628.63,1651.33 629.40,1651.83 630.07,1653.16"/>
- </edge>
- <edge id=":728492360_0" function="internal">
- <lane id=":728492360_0_0" index="0" speed="22.22" length="6.85" shape="617.85,1777.20 616.41,1777.30 615.35,1778.13 614.66,1779.71 614.35,1782.02"/>
- </edge>
- <edge id=":728492360_1" function="internal">
- <lane id=":728492360_1_0" index="0" speed="22.22" length="10.98" shape="617.85,1777.20 614.77,1776.90 612.45,1777.20 610.24,1778.10 607.45,1779.58"/>
- </edge>
- <edge id=":728492360_2" function="internal">
- <lane id=":728492360_2_0" index="0" speed="22.22" length="10.57" shape="617.85,1777.20 614.99,1776.33 613.06,1774.83 612.07,1772.69 612.00,1769.92"/>
- </edge>
- <edge id=":728492360_3" function="internal">
- <lane id=":728492360_3_0" index="0" speed="22.22" length="4.82" shape="617.85,1777.20 616.77,1776.18 616.49,1775.30 617.03,1774.55 618.39,1773.94"/>
- </edge>
- <edge id=":728492360_4" function="internal">
- <lane id=":728492360_4_0" index="0" speed="22.22" length="5.38" shape="615.27,1770.34 615.32,1771.70 615.86,1772.75 616.88,1773.50 618.39,1773.94"/>
- </edge>
- <edge id=":728492360_5" function="internal">
- <lane id=":728492360_5_0" index="0" speed="22.22" length="11.72" shape="615.27,1770.34 614.89,1773.56 614.66,1776.17 614.50,1778.78 614.35,1782.02"/>
- </edge>
- <edge id=":728492360_6" function="internal">
- <lane id=":728492360_6_0" index="0" speed="22.22" length="7.86" shape="615.27,1770.34 614.52,1772.96 612.96,1775.37 611.31,1776.92"/>
- </edge>
- <edge id=":728492360_16" function="internal">
- <lane id=":728492360_16_0" index="0" speed="22.22" length="4.70" shape="611.31,1776.92 610.61,1777.58 607.45,1779.58"/>
- </edge>
- <edge id=":728492360_7" function="internal">
- <lane id=":728492360_7_0" index="0" speed="22.22" length="2.41" shape="615.27,1770.34 614.30,1771.46 613.43,1771.77"/>
- </edge>
- <edge id=":728492360_17" function="internal">
- <lane id=":728492360_17_0" index="0" speed="22.22" length="2.41" shape="613.43,1771.77 612.66,1771.25 612.00,1769.92"/>
- </edge>
- <edge id=":728492360_8" function="internal">
- <lane id=":728492360_8_0" index="0" speed="22.22" length="9.43" shape="605.90,1776.67 608.38,1775.12 610.23,1773.48 611.44,1771.75 612.00,1769.92"/>
- </edge>
- <edge id=":728492360_9" function="internal">
- <lane id=":728492360_9_0" index="0" speed="22.22" length="13.06" shape="605.90,1776.67 609.02,1775.13 611.95,1774.12 614.98,1773.69 618.39,1773.94"/>
- </edge>
- <edge id=":728492360_10" function="internal">
- <lane id=":728492360_10_0" index="0" speed="22.22" length="13.74" shape="605.90,1776.67 609.77,1775.22 612.47,1775.63 614.00,1777.89 614.35,1782.02"/>
- </edge>
- <edge id=":728492360_11" function="internal">
- <lane id=":728492360_11_0" index="0" speed="22.22" length="4.82" shape="605.90,1776.67 607.38,1776.81 608.13,1777.35 608.15,1778.27 607.45,1779.58"/>
- </edge>
- <edge id=":728492360_12" function="internal">
- <lane id=":728492360_12_0" index="0" speed="22.22" length="5.86" shape="611.05,1781.86 610.90,1780.10 610.25,1779.14 609.10,1778.96 607.45,1779.58"/>
- </edge>
- <edge id=":728492360_13" function="internal">
- <lane id=":728492360_13_0" index="0" speed="22.22" length="11.99" shape="611.05,1781.86 611.21,1778.58 611.37,1775.87 611.61,1773.17 612.00,1769.92"/>
- </edge>
- <edge id=":728492360_14" function="internal">
- <lane id=":728492360_14_0" index="0" speed="22.22" length="8.93" shape="611.05,1781.86 611.67,1777.97 613.10,1775.35 614.82,1774.32"/>
- </edge>
- <edge id=":728492360_18" function="internal">
- <lane id=":728492360_18_0" index="0" speed="22.22" length="3.65" shape="614.82,1774.32 615.34,1774.01 618.39,1773.94"/>
- </edge>
- <edge id=":728492360_15" function="internal">
- <lane id=":728492360_15_0" index="0" speed="22.22" length="2.41" shape="611.05,1781.86 611.93,1780.66 612.78,1780.29"/>
- </edge>
- <edge id=":728492360_19" function="internal">
- <lane id=":728492360_19_0" index="0" speed="22.22" length="2.41" shape="612.78,1780.29 613.58,1780.74 614.35,1782.02"/>
- </edge>
- <edge id=":728492361_0" function="internal">
- <lane id=":728492361_0_0" index="0" speed="22.22" length="7.09" shape="614.69,1843.16 613.27,1843.31 612.21,1844.22 611.52,1845.90 611.21,1848.32"/>
- </edge>
- <edge id=":728492361_1" function="internal">
- <lane id=":728492361_1_0" index="0" speed="22.22" length="11.09" shape="614.69,1843.16 611.59,1842.95 609.26,1843.37 607.04,1844.37 604.29,1845.96"/>
- </edge>
- <edge id=":728492361_2" function="internal">
- <lane id=":728492361_2_0" index="0" speed="22.22" length="10.37" shape="614.69,1843.16 611.86,1842.39 609.88,1840.98 608.75,1838.95 608.47,1836.28"/>
- </edge>
- <edge id=":728492361_3" function="internal">
- <lane id=":728492361_3_0" index="0" speed="22.22" length="4.82" shape="614.69,1843.16 613.58,1842.17 613.29,1841.30 613.81,1840.54 615.15,1839.89"/>
- </edge>
- <edge id=":728492361_4" function="internal">
- <lane id=":728492361_4_0" index="0" speed="22.22" length="5.40" shape="611.76,1836.44 611.92,1837.76 612.54,1838.78 613.61,1839.49 615.15,1839.89"/>
- </edge>
- <edge id=":728492361_5" function="internal">
- <lane id=":728492361_5_0" index="0" speed="22.22" length="11.90" shape="611.76,1836.44 611.61,1839.70 611.48,1842.38 611.36,1845.06 611.21,1848.32"/>
- </edge>
- <edge id=":728492361_6" function="internal">
- <lane id=":728492361_6_0" index="0" speed="22.22" length="7.80" shape="611.76,1836.44 611.20,1839.05 609.77,1841.50 608.15,1843.12"/>
- </edge>
- <edge id=":728492361_16" function="internal">
- <lane id=":728492361_16_0" index="0" speed="22.22" length="4.81" shape="608.15,1843.12 607.46,1843.81 604.29,1845.96"/>
- </edge>
- <edge id=":728492361_7" function="internal">
- <lane id=":728492361_7_0" index="0" speed="22.22" length="2.41" shape="611.76,1836.44 610.88,1837.64 610.04,1838.01"/>
- </edge>
- <edge id=":728492361_17" function="internal">
- <lane id=":728492361_17_0" index="0" speed="22.22" length="2.41" shape="610.04,1838.01 609.23,1837.56 608.47,1836.28"/>
- </edge>
- <edge id=":728492361_8" function="internal">
- <lane id=":728492361_8_0" index="0" speed="22.22" length="9.32" shape="602.64,1843.10 605.12,1841.46 606.92,1839.77 608.04,1838.04 608.47,1836.28"/>
- </edge>
- <edge id=":728492361_9" function="internal">
- <lane id=":728492361_9_0" index="0" speed="22.22" length="13.19" shape="602.64,1843.10 605.72,1841.45 608.66,1840.30 611.71,1839.75 615.15,1839.89"/>
- </edge>
- <edge id=":728492361_10" function="internal">
- <lane id=":728492361_10_0" index="0" speed="22.22" length="14.02" shape="602.64,1843.10 606.57,1841.47 609.31,1841.80 610.85,1844.08 611.21,1848.32"/>
- </edge>
- <edge id=":728492361_11" function="internal">
- <lane id=":728492361_11_0" index="0" speed="22.22" length="4.82" shape="602.64,1843.10 604.12,1843.20 604.89,1843.71 604.95,1844.63 604.29,1845.96"/>
- </edge>
- <edge id=":728492361_12" function="internal">
- <lane id=":728492361_12_0" index="0" speed="22.22" length="5.94" shape="607.91,1848.17 607.76,1846.38 607.11,1845.41 605.95,1845.27 604.29,1845.96"/>
- </edge>
- <edge id=":728492361_13" function="internal">
- <lane id=":728492361_13_0" index="0" speed="22.22" length="11.90" shape="607.91,1848.17 608.06,1844.91 608.19,1842.23 608.31,1839.55 608.47,1836.28"/>
- </edge>
- <edge id=":728492361_14" function="internal">
- <lane id=":728492361_14_0" index="0" speed="22.22" length="9.04" shape="607.91,1848.17 608.52,1844.19 609.93,1841.48 611.58,1840.42"/>
- </edge>
- <edge id=":728492361_18" function="internal">
- <lane id=":728492361_18_0" index="0" speed="22.22" length="3.69" shape="611.58,1840.42 612.14,1840.05 615.15,1839.89"/>
- </edge>
- <edge id=":728492361_15" function="internal">
- <lane id=":728492361_15_0" index="0" speed="22.22" length="2.41" shape="607.91,1848.17 608.79,1846.97 609.64,1846.60"/>
- </edge>
- <edge id=":728492361_19" function="internal">
- <lane id=":728492361_19_0" index="0" speed="22.22" length="2.41" shape="609.64,1846.60 610.44,1847.05 611.21,1848.32"/>
- </edge>
- <edge id=":728492364_0" function="internal">
- <lane id=":728492364_0_0" index="0" speed="22.22" length="5.02" shape="679.68,1784.01 681.06,1784.04 682.11,1783.62 682.83,1782.75 683.22,1781.42"/>
- </edge>
- <edge id=":728492364_1" function="internal">
- <lane id=":728492364_1_0" index="0" speed="22.22" length="2.41" shape="679.68,1784.01 680.77,1785.03 681.04,1785.91"/>
- </edge>
- <edge id=":728492364_4" function="internal">
- <lane id=":728492364_4_0" index="0" speed="22.22" length="2.41" shape="681.04,1785.91 680.50,1786.66 679.14,1787.27"/>
- </edge>
- <edge id=":728492364_2" function="internal">
- <lane id=":728492364_2_0" index="0" speed="22.22" length="5.08" shape="681.86,1790.83 681.85,1789.47 681.40,1788.42 680.50,1787.69 679.14,1787.27"/>
- </edge>
- <edge id=":728492364_3" function="internal">
- <lane id=":728492364_3_0" index="0" speed="22.22" length="9.50" shape="681.86,1790.83 683.22,1781.42"/>
- </edge>
- <edge id=":728492366_0" function="internal">
- <lane id=":728492366_0_0" index="0" speed="22.22" length="5.40" shape="606.34,1918.53 605.78,1917.09 604.93,1916.32 603.78,1916.22 602.35,1916.80"/>
- </edge>
- <edge id=":728492366_1" function="internal">
- <lane id=":728492366_1_0" index="0" speed="22.22" length="13.69" shape="606.34,1918.53 605.67,1915.05 605.31,1911.77 605.21,1908.47 605.31,1904.92"/>
- </edge>
- <edge id=":728492366_2" function="internal">
- <lane id=":728492366_2_0" index="0" speed="22.22" length="13.70" shape="606.34,1918.53 606.11,1915.23 607.01,1912.26 609.05,1909.61 612.23,1907.28"/>
- </edge>
- <edge id=":728492366_3" function="internal">
- <lane id=":728492366_3_0" index="0" speed="22.22" length="4.82" shape="606.34,1918.53 606.87,1917.14 607.58,1916.55 608.47,1916.76 609.56,1917.78"/>
- </edge>
- <edge id=":728492366_4" function="internal">
- <lane id=":728492366_4_0" index="0" speed="22.22" length="9.46" shape="613.88,1910.14 611.59,1911.78 610.11,1913.60 609.43,1915.60 609.56,1917.78"/>
- </edge>
- <edge id=":728492366_5" function="internal">
- <lane id=":728492366_5_0" index="0" speed="22.22" length="13.32" shape="613.88,1910.14 610.86,1911.88 608.11,1913.47 605.37,1915.05 602.35,1916.80"/>
- </edge>
- <edge id=":728492366_6" function="internal">
- <lane id=":728492366_6_0" index="0" speed="22.22" length="8.12" shape="613.88,1910.14 609.95,1911.77 607.21,1911.45 606.59,1910.54"/>
- </edge>
- <edge id=":728492366_16" function="internal">
- <lane id=":728492366_16_0" index="0" speed="22.22" length="5.92" shape="606.59,1910.54 605.66,1909.16 605.31,1904.92"/>
- </edge>
- <edge id=":728492366_7" function="internal">
- <lane id=":728492366_7_0" index="0" speed="22.22" length="2.41" shape="613.88,1910.14 612.40,1910.04 611.63,1909.54"/>
- </edge>
- <edge id=":728492366_17" function="internal">
- <lane id=":728492366_17_0" index="0" speed="22.22" length="2.41" shape="611.63,1909.54 611.57,1908.62 612.23,1907.28"/>
- </edge>
- <edge id=":728492366_8" function="internal">
- <lane id=":728492366_8_0" index="0" speed="22.22" length="5.94" shape="608.60,1905.07 608.75,1906.87 609.41,1907.83 610.57,1907.97 612.23,1907.28"/>
- </edge>
- <edge id=":728492366_9" function="internal">
- <lane id=":728492366_9_0" index="0" speed="22.22" length="12.79" shape="608.60,1905.07 608.50,1908.48 608.57,1911.47 608.90,1914.44 609.56,1917.78"/>
- </edge>
- <edge id=":728492366_10" function="internal">
- <lane id=":728492366_10_0" index="0" speed="22.22" length="13.88" shape="608.60,1905.07 608.07,1908.93 606.85,1912.17 604.94,1914.79 602.35,1916.80"/>
- </edge>
- <edge id=":728492366_11" function="internal">
- <lane id=":728492366_11_0" index="0" speed="22.22" length="4.82" shape="608.60,1905.07 607.72,1906.27 606.88,1906.65 606.08,1906.20 605.31,1904.92"/>
- </edge>
- <edge id=":728492366_12" function="internal">
- <lane id=":728492366_12_0" index="0" speed="22.22" length="10.57" shape="600.70,1913.94 602.60,1912.44 604.00,1910.44 604.91,1907.93 605.31,1904.92"/>
- </edge>
- <edge id=":728492366_13" function="internal">
- <lane id=":728492366_13_0" index="0" speed="22.22" length="13.32" shape="600.70,1913.94 603.72,1912.20 606.46,1910.61 609.21,1909.02 612.23,1907.28"/>
- </edge>
- <edge id=":728492366_14" function="internal">
- <lane id=":728492366_14_0" index="0" speed="22.22" length="7.41" shape="600.70,1913.94 603.88,1912.66 606.42,1912.87 607.48,1913.83"/>
- </edge>
- <edge id=":728492366_18" function="internal">
- <lane id=":728492366_18_0" index="0" speed="22.22" length="4.55" shape="607.48,1913.83 608.31,1914.58 609.56,1917.78"/>
- </edge>
- <edge id=":728492366_15" function="internal">
- <lane id=":728492366_15_0" index="0" speed="22.22" length="2.41" shape="600.70,1913.94 602.18,1914.03 602.95,1914.54"/>
- </edge>
- <edge id=":728492366_19" function="internal">
- <lane id=":728492366_19_0" index="0" speed="22.22" length="2.41" shape="602.95,1914.54 603.01,1915.46 602.35,1916.80"/>
- </edge>
- <edge id=":728492371_0" function="internal">
- <lane id=":728492371_0_0" index="0" speed="22.22" length="5.37" shape="673.84,1854.10 673.50,1852.88 672.75,1851.93 671.61,1851.27 670.08,1850.89"/>
- </edge>
- <edge id=":728492371_1" function="internal">
- <lane id=":728492371_1_0" index="0" speed="22.22" length="9.12" shape="673.84,1854.10 674.04,1844.99"/>
- </edge>
- <edge id=":728492371_2" function="internal">
- <lane id=":728492371_2_0" index="0" speed="22.22" length="4.99" shape="670.53,1847.62 671.90,1847.61 672.94,1847.17 673.65,1846.30 674.04,1844.99"/>
- </edge>
- <edge id=":728492371_3" function="internal">
- <lane id=":728492371_3_0" index="0" speed="22.22" length="2.41" shape="670.53,1847.62 671.65,1848.61 671.94,1849.48"/>
- </edge>
- <edge id=":728492371_4" function="internal">
- <lane id=":728492371_4_0" index="0" speed="22.22" length="2.41" shape="671.94,1849.48 671.42,1850.24 670.08,1850.89"/>
- </edge>
- <edge id=":728492372_0" function="internal">
- <lane id=":728492372_0_0" index="0" speed="22.22" length="13.05" shape="630.73,1695.58 627.96,1697.55 625.86,1699.94 624.42,1702.74 623.64,1705.97"/>
- </edge>
- <edge id=":728492372_1" function="internal">
- <lane id=":728492372_1_0" index="0" speed="22.22" length="15.75" shape="630.73,1695.58 627.36,1697.47 623.85,1699.41 620.32,1701.31 616.90,1703.12"/>
- </edge>
- <edge id=":728492372_2" function="internal">
- <lane id=":728492372_2_0" index="0" speed="22.22" length="14.69" shape="630.73,1695.58 626.54,1697.31 623.75,1696.95 622.34,1694.51 622.31,1689.98"/>
- </edge>
- <edge id=":728492372_3" function="internal">
- <lane id=":728492372_3_0" index="0" speed="22.22" length="4.82" shape="630.73,1695.58 629.24,1695.47 628.48,1694.96 628.43,1694.04 629.09,1692.71"/>
- </edge>
- <edge id=":728492372_4" function="internal">
- <lane id=":728492372_4_0" index="0" speed="22.22" length="6.12" shape="625.59,1690.38 625.60,1692.26 626.19,1693.28 627.35,1693.43 629.09,1692.71"/>
- </edge>
- <edge id=":728492372_5" function="internal">
- <lane id=":728492372_5_0" index="0" speed="22.22" length="15.71" shape="625.59,1690.38 625.12,1694.21 624.63,1698.17 624.13,1702.14 623.64,1705.97"/>
- </edge>
- <edge id=":728492372_6" function="internal">
- <lane id=":728492372_6_0" index="0" speed="22.22" length="10.81" shape="625.59,1690.38 624.65,1694.46 622.89,1697.94 621.08,1699.97"/>
- </edge>
- <edge id=":728492372_16" function="internal">
- <lane id=":728492372_16_0" index="0" speed="22.22" length="5.26" shape="621.08,1699.97 620.31,1700.83 616.90,1703.12"/>
- </edge>
- <edge id=":728492372_7" function="internal">
- <lane id=":728492372_7_0" index="0" speed="22.22" length="2.41" shape="625.59,1690.38 624.62,1691.51 623.75,1691.82"/>
- </edge>
- <edge id=":728492372_17" function="internal">
- <lane id=":728492372_17_0" index="0" speed="22.22" length="2.41" shape="623.75,1691.82 622.99,1691.31 622.31,1689.98"/>
- </edge>
- <edge id=":728492372_8" function="internal">
- <lane id=":728492372_8_0" index="0" speed="22.22" length="12.87" shape="615.37,1700.20 618.09,1698.37 620.16,1696.05 621.56,1693.26 622.31,1689.98"/>
- </edge>
- <edge id=":728492372_9" function="internal">
- <lane id=":728492372_9_0" index="0" speed="22.22" length="15.63" shape="615.37,1700.20 618.78,1698.40 622.27,1696.51 625.74,1694.60 629.09,1692.71"/>
- </edge>
- <edge id=":728492372_10" function="internal">
- <lane id=":728492372_10_0" index="0" speed="22.22" length="14.43" shape="615.37,1700.20 619.52,1698.66 622.28,1699.11 623.65,1701.55 623.64,1705.97"/>
- </edge>
- <edge id=":728492372_11" function="internal">
- <lane id=":728492372_11_0" index="0" speed="22.22" length="4.82" shape="615.37,1700.20 616.85,1700.36 617.60,1700.90 617.62,1701.82 616.90,1703.12"/>
- </edge>
- <edge id=":728492372_12" function="internal">
- <lane id=":728492372_12_0" index="0" speed="22.22" length="6.05" shape="620.37,1705.54 620.37,1703.69 619.80,1702.67 618.64,1702.48 616.90,1703.12"/>
- </edge>
- <edge id=":728492372_13" function="internal">
- <lane id=":728492372_13_0" index="0" speed="22.22" length="15.68" shape="620.37,1705.54 620.86,1701.72 621.36,1697.76 621.85,1693.81 622.31,1689.98"/>
- </edge>
- <edge id=":728492372_14" function="internal">
- <lane id=":728492372_14_0" index="0" speed="22.22" length="10.72" shape="620.37,1705.54 621.33,1701.55 623.10,1698.08 624.90,1696.04"/>
- </edge>
- <edge id=":728492372_18" function="internal">
- <lane id=":728492372_18_0" index="0" speed="22.22" length="5.38" shape="624.90,1696.04 625.69,1695.14 629.09,1692.71"/>
- </edge>
- <edge id=":728492372_15" function="internal">
- <lane id=":728492372_15_0" index="0" speed="22.22" length="2.41" shape="620.37,1705.54 621.35,1704.42 622.22,1704.12"/>
- </edge>
- <edge id=":728492372_19" function="internal">
- <lane id=":728492372_19_0" index="0" speed="22.22" length="2.41" shape="622.22,1704.12 622.98,1704.63 623.64,1705.97"/>
- </edge>
- <edge id=":733663070_0" function="internal">
- <lane id=":733663070_0_0" index="0" speed="22.22" length="3.58" shape="718.53,1767.92 717.91,1768.38 717.42,1769.03 717.06,1769.88 716.82,1770.92"/>
- </edge>
- <edge id=":733663070_1" function="internal">
- <lane id=":733663070_1_0" index="0" speed="22.22" length="6.94" shape="717.82,1764.06 716.82,1770.92"/>
- </edge>
- <edge id=":733663071_0" function="internal">
- <lane id=":733663071_0_0" index="0" speed="8.33" length="7.26" shape="1458.51,1228.70 1451.60,1230.95"/>
- </edge>
- <edge id=":733663071_1" function="internal">
- <lane id=":733663071_1_0" index="0" speed="8.33" length="9.41" shape="1458.51,1228.70 1450.52,1223.74"/>
- </edge>
- <edge id=":733663071_2" function="internal">
- <lane id=":733663071_2_0" index="0" speed="8.33" length="4.82" shape="1458.51,1228.70 1457.45,1227.66 1457.21,1226.77 1457.77,1226.04 1459.14,1225.47"/>
- </edge>
- <edge id=":733663071_3" function="internal">
- <lane id=":733663071_3_0" index="0" speed="8.33" length="7.69" shape="1452.70,1221.27 1459.14,1225.47"/>
- </edge>
- <edge id=":733663071_4" function="internal">
- <lane id=":733663071_4_0" index="0" speed="8.33" length="12.31" shape="1452.70,1221.27 1455.02,1223.98 1455.61,1226.50 1454.47,1228.83 1451.60,1230.95"/>
- </edge>
- <edge id=":733663071_5" function="internal">
- <lane id=":733663071_5_0" index="0" speed="8.33" length="4.82" shape="1452.70,1221.27 1453.08,1222.71 1452.85,1223.60 1451.99,1223.94 1450.52,1223.74"/>
- </edge>
- <edge id=":733663071_6" function="internal">
- <lane id=":733663071_6_0" index="0" speed="8.33" length="5.48" shape="1450.03,1228.05 1451.30,1227.11 1451.81,1226.07 1451.55,1224.95 1450.52,1223.74"/>
- </edge>
- <edge id=":733663071_7" function="internal">
- <lane id=":733663071_7_0" index="0" speed="8.33" length="9.48" shape="1450.03,1228.05 1459.14,1225.47"/>
- </edge>
- <edge id=":733663071_8" function="internal">
- <lane id=":733663071_8_0" index="0" speed="8.33" length="4.82" shape="1450.03,1228.05 1451.51,1228.19 1452.26,1228.71 1452.30,1229.64 1451.60,1230.95"/>
- </edge>
- <edge id=":733663076_0" function="internal">
- <lane id=":733663076_0_0" index="0" speed="25.00" length="19.34" shape="847.51,1676.50 845.87,1675.64 842.15,1675.41 836.35,1675.81 828.48,1676.85"/>
- </edge>
- <edge id=":733663076_1" function="internal">
- <lane id=":733663076_1_0" index="0" speed="27.78" length="19.37" shape="847.51,1676.50 846.12,1675.90 842.48,1675.16 836.60,1674.29 828.47,1673.29"/>
- </edge>
- <edge id=":733663076_2" function="internal">
- <lane id=":733663076_2_0" index="0" speed="25.00" length="9.00" shape="847.51,1676.50 843.38,1668.51"/>
- </edge>
- <edge id=":733663076_3" function="internal">
- <lane id=":733663076_3_0" index="0" speed="27.78" length="2.41" shape="847.51,1676.50 847.68,1675.02 848.22,1674.28"/>
- </edge>
- <edge id=":733663076_16" function="internal">
- <lane id=":733663076_16_0" index="0" speed="27.78" length="2.41" shape="848.22,1674.28 849.14,1674.26 850.45,1674.98"/>
- </edge>
- <edge id=":733663076_4" function="internal">
- <lane id=":733663076_4_0" index="0" speed="25.00" length="9.00" shape="846.30,1666.99 850.45,1674.98"/>
- </edge>
- <edge id=":733663076_5" function="internal">
- <lane id=":733663076_5_0" index="0" speed="22.22" length="22.75" shape="846.30,1666.99 846.48,1670.10 843.57,1672.77 837.57,1675.02 828.48,1676.85"/>
- </edge>
- <edge id=":733663076_6" function="internal">
- <lane id=":733663076_6_0" index="0" speed="25.00" length="23.13" shape="846.30,1666.99 846.92,1670.72 844.15,1673.01 838.00,1673.87 828.47,1673.29"/>
- </edge>
- <edge id=":733663076_7" function="internal">
- <lane id=":733663076_7_0" index="0" speed="22.22" length="4.81" shape="846.30,1666.99 846.14,1668.47 845.60,1669.21 844.68,1669.23 843.38,1668.51"/>
- </edge>
- <edge id=":733663076_8" function="internal">
- <lane id=":733663076_8_0" index="0" speed="22.22" length="16.25" shape="829.26,1668.17 836.35,1670.08 841.07,1670.78 843.41,1670.25 843.38,1668.51"/>
- </edge>
- <edge id=":733663076_9" function="internal">
- <lane id=":733663076_9_0" index="0" speed="25.00" length="22.26" shape="829.26,1668.17 838.45,1670.99 845.04,1673.07 849.04,1674.40 850.45,1674.98"/>
- </edge>
- <edge id=":733663076_10" function="internal">
- <lane id=":733663076_10_0" index="0" speed="22.22" length="21.53" shape="829.26,1668.17 836.25,1670.86 838.44,1673.20 835.85,1675.20 828.48,1676.85"/>
- </edge>
- <edge id=":733663076_11" function="internal">
- <lane id=":733663076_11_0" index="0" speed="25.00" length="29.15" shape="829.26,1668.17 839.54,1671.64 842.84,1673.65 839.15,1674.20 828.47,1673.29"/>
- </edge>
- <edge id=":733663076_12" function="internal">
- <lane id=":733663076_12_0" index="0" speed="25.00" length="15.67" shape="828.98,1670.02 835.93,1670.63 840.65,1670.58 843.13,1669.87 843.38,1668.51"/>
- </edge>
- <edge id=":733663076_13" function="internal">
- <lane id=":733663076_13_0" index="0" speed="27.78" length="22.25" shape="828.98,1670.02 837.86,1671.21 844.40,1672.43 848.59,1673.69 850.45,1674.98"/>
- </edge>
- <edge id=":733663076_14" function="internal">
- <lane id=":733663076_14_0" index="0" speed="25.00" length="16.07" shape="828.98,1670.02 838.42,1671.55 841.48,1673.19 838.81,1674.62"/>
- </edge>
- <edge id=":733663076_17" function="internal">
- <lane id=":733663076_17_0" index="0" speed="25.00" length="10.60" shape="838.81,1674.62 838.17,1674.96 828.48,1676.85"/>
- </edge>
- <edge id=":733663076_15" function="internal">
- <lane id=":733663076_15_0" index="0" speed="27.78" length="2.41" shape="828.98,1670.02 830.07,1671.03 830.36,1671.91"/>
- </edge>
- <edge id=":733663076_18" function="internal">
- <lane id=":733663076_18_0" index="0" speed="27.78" length="2.41" shape="830.36,1671.91 829.82,1672.66 828.47,1673.29"/>
- </edge>
- <edge id=":733663078_0" function="internal">
- <lane id=":733663078_0_0" index="0" speed="8.33" length="5.30" shape="1440.88,1206.29 1440.27,1204.92 1439.39,1204.18 1438.25,1204.08 1436.84,1204.61"/>
- </edge>
- <edge id=":733663078_1" function="internal">
- <lane id=":733663078_1_0" index="0" speed="8.33" length="9.01" shape="1440.88,1206.29 1440.24,1197.30"/>
- </edge>
- <edge id=":733663078_2" function="internal">
- <lane id=":733663078_2_0" index="0" speed="8.33" length="4.82" shape="1440.88,1206.29 1441.34,1204.88 1442.02,1204.26 1442.92,1204.43 1444.05,1205.39"/>
- </edge>
- <edge id=":733663078_3" function="internal">
- <lane id=":733663078_3_0" index="0" speed="8.33" length="7.10" shape="1443.38,1198.33 1444.05,1205.39"/>
- </edge>
- <edge id=":733663078_4" function="internal">
- <lane id=":733663078_4_0" index="0" speed="8.33" length="9.06" shape="1443.38,1198.33 1436.84,1204.61"/>
- </edge>
- <edge id=":733663078_5" function="internal">
- <lane id=":733663078_5_0" index="0" speed="8.33" length="4.82" shape="1443.38,1198.33 1442.21,1199.25 1441.29,1199.38 1440.64,1198.74 1440.24,1197.30"/>
- </edge>
- <edge id=":733663078_6" function="internal">
- <lane id=":733663078_6_0" index="0" speed="8.33" length="6.67" shape="1435.24,1201.72 1440.24,1197.30"/>
- </edge>
- <edge id=":733663078_7" function="internal">
- <lane id=":733663078_7_0" index="0" speed="8.33" length="11.57" shape="1435.24,1201.72 1438.31,1200.56 1440.81,1200.78 1442.72,1202.39 1444.05,1205.39"/>
- </edge>
- <edge id=":733663078_8" function="internal">
- <lane id=":733663078_8_0" index="0" speed="8.33" length="4.82" shape="1435.24,1201.72 1436.73,1201.85 1437.49,1202.37 1437.53,1203.29 1436.84,1204.61"/>
- </edge>
- <edge id=":733663082_0" function="internal">
- <lane id=":733663082_0_0" index="0" speed="22.22" length="6.62" shape="710.79,1872.33 708.97,1873.44 707.73,1874.62 707.06,1875.88 706.96,1877.23"/>
- </edge>
- <edge id=":733663082_1" function="internal">
- <lane id=":733663082_1_0" index="0" speed="22.22" length="8.51" shape="710.79,1872.33 702.52,1874.29"/>
- </edge>
- <edge id=":733663082_2" function="internal">
- <lane id=":733663082_2_0" index="0" speed="22.22" length="2.41" shape="710.79,1872.33 709.32,1872.15 708.57,1871.60"/>
- </edge>
- <edge id=":733663082_9" function="internal">
- <lane id=":733663082_9_0" index="0" speed="22.22" length="2.41" shape="708.57,1871.60 708.57,1870.68 709.30,1869.39"/>
- </edge>
- <edge id=":733663082_3" function="internal">
- <lane id=":733663082_3_0" index="0" speed="22.22" length="5.39" shape="705.40,1867.44 705.89,1868.91 706.70,1869.73 707.84,1869.88 709.30,1869.39"/>
- </edge>
- <edge id=":733663082_4" function="internal">
- <lane id=":733663082_4_0" index="0" speed="22.22" length="9.91" shape="705.40,1867.44 706.96,1877.23"/>
- </edge>
- <edge id=":733663082_5" function="internal">
- <lane id=":733663082_5_0" index="0" speed="22.22" length="8.66" shape="705.40,1867.44 705.69,1870.47 705.30,1872.63 704.24,1873.90 702.52,1874.29"/>
- </edge>
- <edge id=":733663082_6" function="internal">
- <lane id=":733663082_6_0" index="0" speed="22.22" length="6.90" shape="702.59,1870.99 709.30,1869.39"/>
- </edge>
- <edge id=":733663082_7" function="internal">
- <lane id=":733663082_7_0" index="0" speed="22.22" length="4.37" shape="702.59,1870.99 704.19,1871.41 705.45,1872.59 705.88,1873.50"/>
- </edge>
- <edge id=":733663082_10" function="internal">
- <lane id=":733663082_10_0" index="0" speed="22.22" length="3.90" shape="705.88,1873.50 706.37,1874.53 706.96,1877.23"/>
- </edge>
- <edge id=":733663082_8" function="internal">
- <lane id=":733663082_8_0" index="0" speed="22.22" length="2.41" shape="702.59,1870.99 703.81,1871.85 704.20,1872.68"/>
- </edge>
- <edge id=":733663082_11" function="internal">
- <lane id=":733663082_11_0" index="0" speed="22.22" length="2.41" shape="704.20,1872.68 703.77,1873.50 702.52,1874.29"/>
- </edge>
- <edge id=":733663089_0" function="internal">
- <lane id=":733663089_0_0" index="0" speed="18.06" length="5.36" shape="1241.77,1761.65 1240.50,1762.56 1239.81,1763.60 1239.68,1764.77 1240.13,1766.06"/>
- </edge>
- <edge id=":733663089_1" function="internal">
- <lane id=":733663089_1_0" index="0" speed="13.89" length="4.82" shape="1241.77,1761.65 1240.29,1761.52 1239.53,1760.99 1239.49,1760.07 1240.18,1758.75"/>
- </edge>
- <edge id=":733663089_2" function="internal">
- <lane id=":733663089_2_0" index="0" speed="18.06" length="5.16" shape="1236.06,1757.26 1236.77,1758.51 1237.70,1759.18 1238.84,1759.26 1240.18,1758.75"/>
- </edge>
- <edge id=":733663089_3" function="internal">
- <lane id=":733663089_3_0" index="0" speed="22.22" length="9.70" shape="1236.06,1757.26 1240.13,1766.06"/>
- </edge>
- <edge id=":733663093_0" function="internal">
- <lane id=":733663093_0_0" index="0" speed="13.89" length="5.00" shape="1372.18,1663.60 1371.39,1662.48 1370.42,1661.89 1369.30,1661.82 1368.00,1662.27"/>
- </edge>
- <edge id=":733663093_1" function="internal">
- <lane id=":733663093_1_0" index="0" speed="13.89" length="9.52" shape="1372.18,1663.60 1367.81,1655.14"/>
- </edge>
- <edge id=":733663093_2" function="internal">
- <lane id=":733663093_2_0" index="0" speed="13.89" length="7.88" shape="1372.18,1663.60 1371.07,1661.02 1370.66,1658.97 1370.97,1657.45 1371.99,1656.45"/>
- </edge>
- <edge id=":733663093_3" function="internal">
- <lane id=":733663093_3_0" index="0" speed="13.89" length="6.25" shape="1373.54,1659.37 1368.00,1662.27"/>
- </edge>
- <edge id=":733663093_4" function="internal">
- <lane id=":733663093_4_0" index="0" speed="13.89" length="4.75" shape="1373.54,1659.37 1372.14,1659.66 1370.71,1659.05 1369.49,1657.77"/>
- </edge>
- <edge id=":733663093_9" function="internal">
- <lane id=":733663093_9_0" index="0" speed="13.89" length="3.12" shape="1369.49,1657.77 1369.27,1657.55 1367.81,1655.14"/>
- </edge>
- <edge id=":733663093_5" function="internal">
- <lane id=":733663093_5_0" index="0" speed="13.89" length="2.41" shape="1373.54,1659.37 1372.06,1659.22 1371.31,1658.68"/>
- </edge>
- <edge id=":733663093_10" function="internal">
- <lane id=":733663093_10_0" index="0" speed="13.89" length="2.41" shape="1371.31,1658.68 1371.29,1657.76 1371.99,1656.45"/>
- </edge>
- <edge id=":733663093_6" function="internal">
- <lane id=":733663093_6_0" index="0" speed="13.89" length="5.02" shape="1366.48,1659.34 1367.60,1658.55 1368.19,1657.58 1368.26,1656.44 1367.81,1655.14"/>
- </edge>
- <edge id=":733663093_7" function="internal">
- <lane id=":733663093_7_0" index="0" speed="13.89" length="6.22" shape="1366.48,1659.34 1371.99,1656.45"/>
- </edge>
- <edge id=":733663093_8" function="internal">
- <lane id=":733663093_8_0" index="0" speed="13.89" length="2.41" shape="1366.48,1659.34 1367.96,1659.51 1368.71,1660.05"/>
- </edge>
- <edge id=":733663093_11" function="internal">
- <lane id=":733663093_11_0" index="0" speed="13.89" length="2.41" shape="1368.71,1660.05 1368.72,1660.97 1368.00,1662.27"/>
- </edge>
- <edge id=":733663096_0" function="internal">
- <lane id=":733663096_0_0" index="0" speed="9.72" length="5.02" shape="1254.67,1758.14 1253.86,1757.03 1252.89,1756.44 1251.76,1756.40 1250.47,1756.88"/>
- </edge>
- <edge id=":733663096_1" function="internal">
- <lane id=":733663096_1_0" index="0" speed="5.56" length="13.48" shape="1254.67,1758.14 1253.06,1755.02 1251.66,1752.11 1250.31,1749.18 1248.87,1745.98"/>
- </edge>
- <edge id=":733663096_2" function="internal">
- <lane id=":733663096_2_0" index="0" speed="9.72" length="14.00" shape="1254.67,1758.14 1253.77,1755.43 1253.70,1752.29 1254.45,1748.70 1256.04,1744.66"/>
- </edge>
- <edge id=":733663096_3" function="internal">
- <lane id=":733663096_3_0" index="0" speed="5.56" length="4.82" shape="1254.67,1758.14 1254.82,1756.66 1255.36,1755.91 1256.28,1755.89 1257.59,1756.60"/>
- </edge>
- <edge id=":733663096_4" function="internal">
- <lane id=":733663096_4_0" index="0" speed="9.72" length="10.96" shape="1259.01,1746.06 1257.69,1749.35 1257.01,1752.20 1256.98,1754.62 1257.59,1756.60"/>
- </edge>
- <edge id=":733663096_5" function="internal">
- <lane id=":733663096_5_0" index="0" speed="13.89" length="14.03" shape="1259.01,1746.06 1257.40,1749.32 1255.59,1752.27 1253.36,1754.81 1250.47,1756.88"/>
- </edge>
- <edge id=":733663096_6" function="internal">
- <lane id=":733663096_6_0" index="0" speed="9.72" length="9.16" shape="1259.01,1746.06 1256.44,1750.19 1253.90,1751.55 1252.66,1750.87"/>
- </edge>
- <edge id=":733663096_16" function="internal">
- <lane id=":733663096_16_0" index="0" speed="9.72" length="6.34" shape="1252.66,1750.87 1251.37,1750.15 1248.87,1745.98"/>
- </edge>
- <edge id=":733663096_7" function="internal">
- <lane id=":733663096_7_0" index="0" speed="13.89" length="2.40" shape="1259.01,1746.06 1257.74,1746.82 1256.82,1746.85"/>
- </edge>
- <edge id=":733663096_17" function="internal">
- <lane id=":733663096_17_0" index="0" speed="13.89" length="2.40" shape="1256.82,1746.85 1256.26,1746.13 1256.04,1744.66"/>
- </edge>
- <edge id=":733663096_8" function="internal">
- <lane id=":733663096_8_0" index="0" speed="9.72" length="6.35" shape="1251.88,1744.63 1252.90,1746.33 1253.94,1746.91 1254.98,1746.35 1256.04,1744.66"/>
- </edge>
- <edge id=":733663096_9" function="internal">
- <lane id=":733663096_9_0" index="0" speed="5.56" length="13.26" shape="1251.88,1744.63 1253.30,1747.80 1254.62,1750.67 1256.00,1753.50 1257.59,1756.60"/>
- </edge>
- <edge id=":733663096_10" function="internal">
- <lane id=":733663096_10_0" index="0" speed="9.72" length="13.65" shape="1251.88,1744.63 1253.34,1748.85 1253.59,1752.30 1252.64,1754.97 1250.47,1756.88"/>
- </edge>
- <edge id=":733663096_11" function="internal">
- <lane id=":733663096_11_0" index="0" speed="5.56" length="4.82" shape="1251.88,1744.63 1251.63,1746.09 1251.05,1746.81 1250.13,1746.77 1248.87,1745.98"/>
- </edge>
- <edge id=":733663096_12" function="internal">
- <lane id=":733663096_12_0" index="0" speed="9.72" length="8.71" shape="1248.88,1753.99 1249.96,1752.89 1250.31,1751.20 1249.95,1748.89 1248.87,1745.98"/>
- </edge>
- <edge id=":733663096_13" function="internal">
- <lane id=":733663096_13_0" index="0" speed="13.89" length="12.03" shape="1248.88,1753.99 1251.55,1752.15 1253.31,1750.12 1254.64,1747.69 1256.04,1744.66"/>
- </edge>
- <edge id=":733663096_14" function="internal">
- <lane id=":733663096_14_0" index="0" speed="9.72" length="5.94" shape="1248.88,1753.99 1251.56,1752.98 1253.90,1753.08 1254.54,1753.47"/>
- </edge>
- <edge id=":733663096_18" function="internal">
- <lane id=":733663096_18_0" index="0" speed="9.72" length="4.45" shape="1254.54,1753.47 1255.91,1754.29 1257.59,1756.60"/>
- </edge>
- <edge id=":733663096_15" function="internal">
- <lane id=":733663096_15_0" index="0" speed="13.89" length="2.41" shape="1248.88,1753.99 1250.36,1754.11 1251.12,1754.64"/>
- </edge>
- <edge id=":733663096_19" function="internal">
- <lane id=":733663096_19_0" index="0" speed="13.89" length="2.41" shape="1251.12,1754.64 1251.16,1755.56 1250.47,1756.88"/>
- </edge>
- <edge id=":733663116_0" function="internal">
- <lane id=":733663116_0_0" index="0" speed="25.00" length="5.01" shape="858.46,1697.66 857.66,1696.54 856.70,1695.95 855.57,1695.89 854.28,1696.35"/>
- </edge>
- <edge id=":733663116_1" function="internal">
- <lane id=":733663116_1_0" index="0" speed="27.78" length="6.20" shape="858.46,1697.66 855.61,1692.15"/>
- </edge>
- <edge id=":733663116_2" function="internal">
- <lane id=":733663116_2_0" index="0" speed="27.78" length="2.41" shape="858.46,1697.66 858.63,1696.18 859.17,1695.44"/>
- </edge>
- <edge id=":733663116_6" function="internal">
- <lane id=":733663116_6_0" index="0" speed="27.78" length="2.41" shape="859.17,1695.44 860.09,1695.42 861.39,1696.15"/>
- </edge>
- <edge id=":733663116_3" function="internal">
- <lane id=":733663116_3_0" index="0" speed="27.78" length="6.20" shape="858.54,1690.64 861.39,1696.15"/>
- </edge>
- <edge id=":733663116_4" function="internal">
- <lane id=":733663116_4_0" index="0" speed="25.00" length="4.71" shape="858.54,1690.64 858.80,1692.01 858.18,1693.42 856.90,1694.65"/>
- </edge>
- <edge id=":733663116_7" function="internal">
- <lane id=":733663116_7_0" index="0" speed="25.00" length="3.13" shape="856.90,1694.65 856.67,1694.87 854.28,1696.35"/>
- </edge>
- <edge id=":733663116_5" function="internal">
- <lane id=":733663116_5_0" index="0" speed="27.78" length="2.41" shape="858.54,1690.64 858.38,1692.12 857.84,1692.86"/>
- </edge>
- <edge id=":733663116_8" function="internal">
- <lane id=":733663116_8_0" index="0" speed="27.78" length="2.41" shape="857.84,1692.86 856.91,1692.87 855.61,1692.15"/>
- </edge>
- <edge id=":733663121_0" function="internal">
- <lane id=":733663121_0_0" index="0" speed="13.89" length="5.04" shape="1300.78,1697.16 1299.67,1697.96 1299.08,1698.93 1299.02,1700.08 1299.48,1701.39"/>
- </edge>
- <edge id=":733663121_1" function="internal">
- <lane id=":733663121_1_0" index="0" speed="13.89" length="6.25" shape="1300.78,1697.16 1295.28,1700.13"/>
- </edge>
- <edge id=":733663121_2" function="internal">
- <lane id=":733663121_2_0" index="0" speed="13.89" length="2.41" shape="1300.78,1697.16 1299.31,1697.00 1298.56,1696.46"/>
- </edge>
- <edge id=":733663121_9" function="internal">
- <lane id=":733663121_9_0" index="0" speed="13.89" length="2.41" shape="1298.56,1696.46 1298.55,1695.54 1299.26,1694.23"/>
- </edge>
- <edge id=":733663121_3" function="internal">
- <lane id=":733663121_3_0" index="0" speed="13.89" length="5.00" shape="1295.08,1692.91 1295.88,1694.02 1296.84,1694.62 1297.97,1694.69 1299.26,1694.23"/>
- </edge>
- <edge id=":733663121_4" function="internal">
- <lane id=":733663121_4_0" index="0" speed="13.89" length="9.55" shape="1295.08,1692.91 1299.48,1701.39"/>
- </edge>
- <edge id=":733663121_5" function="internal">
- <lane id=":733663121_5_0" index="0" speed="13.89" length="7.94" shape="1295.08,1692.91 1296.20,1695.49 1296.60,1697.56 1296.30,1699.10 1295.28,1700.13"/>
- </edge>
- <edge id=":733663121_6" function="internal">
- <lane id=":733663121_6_0" index="0" speed="13.89" length="6.35" shape="1293.67,1697.24 1299.26,1694.23"/>
- </edge>
- <edge id=":733663121_7" function="internal">
- <lane id=":733663121_7_0" index="0" speed="13.89" length="4.81" shape="1293.67,1697.24 1295.10,1696.91 1296.54,1697.49 1297.79,1698.77"/>
- </edge>
- <edge id=":733663121_10" function="internal">
- <lane id=":733663121_10_0" index="0" speed="13.89" length="3.12" shape="1297.79,1698.77 1298.00,1698.98 1299.48,1701.39"/>
- </edge>
- <edge id=":733663121_8" function="internal">
- <lane id=":733663121_8_0" index="0" speed="13.89" length="2.41" shape="1293.67,1697.24 1295.15,1697.36 1295.92,1697.88"/>
- </edge>
- <edge id=":733663121_11" function="internal">
- <lane id=":733663121_11_0" index="0" speed="13.89" length="2.41" shape="1295.92,1697.88 1295.96,1698.80 1295.28,1700.13"/>
- </edge>
- <edge id=":733663131_0" function="internal">
- <lane id=":733663131_0_0" index="0" speed="18.06" length="5.13" shape="1443.87,1625.63 1443.05,1624.53 1442.06,1623.96 1440.89,1623.92 1439.54,1624.42"/>
- </edge>
- <edge id=":733663131_1" function="internal">
- <lane id=":733663131_1_0" index="0" speed="22.22" length="9.58" shape="1443.87,1625.63 1439.18,1617.28"/>
- </edge>
- <edge id=":733663131_2" function="internal">
- <lane id=":733663131_2_0" index="0" speed="18.06" length="5.06" shape="1437.99,1621.50 1439.12,1620.68 1439.70,1619.70 1439.72,1618.57 1439.18,1617.28"/>
- </edge>
- <edge id=":733663131_3" function="internal">
- <lane id=":733663131_3_0" index="0" speed="13.89" length="4.82" shape="1437.99,1621.50 1439.47,1621.65 1440.22,1622.19 1440.25,1623.11 1439.54,1624.42"/>
- </edge>
- <edge id=":733663136_0" function="internal">
- <lane id=":733663136_0_0" index="0" speed="25.00" length="5.02" shape="900.49,1778.89 899.69,1777.78 898.72,1777.19 897.58,1777.12 896.28,1777.58"/>
- </edge>
- <edge id=":733663136_1" function="internal">
- <lane id=":733663136_1_0" index="0" speed="27.78" length="9.49" shape="900.49,1778.89 896.11,1770.46"/>
- </edge>
- <edge id=":733663136_2" function="internal">
- <lane id=":733663136_2_0" index="0" speed="27.78" length="2.41" shape="900.49,1778.89 900.65,1777.41 901.19,1776.66"/>
- </edge>
- <edge id=":733663136_9" function="internal">
- <lane id=":733663136_9_0" index="0" speed="27.78" length="2.41" shape="901.19,1776.66 902.11,1776.64 903.41,1777.36"/>
- </edge>
- <edge id=":733663136_3" function="internal">
- <lane id=":733663136_3_0" index="0" speed="27.78" length="9.48" shape="899.04,1768.95 903.41,1777.36"/>
- </edge>
- <edge id=":733663136_4" function="internal">
- <lane id=":733663136_4_0" index="0" speed="25.00" length="7.13" shape="899.04,1768.95 899.97,1771.63 899.82,1773.96 898.79,1775.62"/>
- </edge>
- <edge id=":733663136_10" function="internal">
- <lane id=":733663136_10_0" index="0" speed="25.00" length="3.21" shape="898.79,1775.62 898.59,1775.94 896.28,1777.58"/>
- </edge>
- <edge id=":733663136_5" function="internal">
- <lane id=":733663136_5_0" index="0" speed="27.78" length="2.41" shape="899.04,1768.95 898.88,1770.43 898.33,1771.17"/>
- </edge>
- <edge id=":733663136_11" function="internal">
- <lane id=":733663136_11_0" index="0" speed="27.78" length="2.41" shape="898.33,1771.17 897.41,1771.18 896.11,1770.46"/>
- </edge>
- <edge id=":733663136_6" function="internal">
- <lane id=":733663136_6_0" index="0" speed="25.00" length="5.00" shape="894.77,1774.64 895.89,1773.85 896.49,1772.89 896.56,1771.76 896.11,1770.46"/>
- </edge>
- <edge id=":733663136_7" function="internal">
- <lane id=":733663136_7_0" index="0" speed="25.00" length="10.31" shape="894.77,1774.64 897.45,1773.72 899.78,1773.86 901.77,1775.07 903.41,1777.36"/>
- </edge>
- <edge id=":733663136_8" function="internal">
- <lane id=":733663136_8_0" index="0" speed="22.22" length="4.82" shape="894.77,1774.64 896.25,1774.81 896.99,1775.36 897.00,1776.28 896.28,1777.58"/>
- </edge>
- <edge id=":767282288_0" function="internal">
- <lane id=":767282288_0_0" index="0" speed="16.67" length="3.19" shape="946.92,1188.82 946.70,1188.83 946.16,1189.07 945.28,1189.52 944.07,1190.20"/>
- </edge>
- <edge id=":767282288_1" function="internal">
- <lane id=":767282288_1_0" index="0" speed="5.56" length="10.42" shape="946.92,1188.82 945.53,1186.12 944.53,1184.19 943.53,1182.25 942.13,1179.56"/>
- </edge>
- <edge id=":767282288_2" function="internal">
- <lane id=":767282288_2_0" index="0" speed="16.67" length="0.22" shape="946.92,1188.82 946.85,1188.61"/>
- </edge>
- <edge id=":767282288_18" function="internal">
- <lane id=":767282288_18_0" index="0" speed="16.67" length="10.72" shape="946.85,1188.61 945.91,1185.96 946.01,1183.46 947.21,1181.30 949.52,1179.50"/>
- </edge>
- <edge id=":767282288_3" function="internal">
- <lane id=":767282288_3_0" index="0" speed="5.56" length="2.41" shape="946.92,1188.82 947.08,1187.34 947.63,1186.59"/>
- </edge>
- <edge id=":767282288_19" function="internal">
- <lane id=":767282288_19_0" index="0" speed="5.56" length="2.41" shape="947.63,1186.59 948.55,1186.58 949.85,1187.30"/>
- </edge>
- <edge id=":767282288_4" function="internal">
- <lane id=":767282288_4_0" index="0" speed="16.67" length="3.62" shape="952.78,1185.24 951.44,1186.02 950.50,1186.63 949.97,1187.06 949.85,1187.30"/>
- </edge>
- <edge id=":767282288_5" function="internal">
- <lane id=":767282288_5_0" index="0" speed="27.78" length="10.02" shape="952.78,1185.24 950.19,1186.71 948.42,1187.71 946.65,1188.72 944.07,1190.20"/>
- </edge>
- <edge id=":767282288_6" function="internal">
- <lane id=":767282288_6_0" index="0" speed="27.78" length="10.03" shape="951.15,1182.37 948.56,1183.84 946.79,1184.85 945.02,1185.85 942.43,1187.33"/>
- </edge>
- <edge id=":767282288_7" function="internal">
- <lane id=":767282288_7_0" index="0" speed="16.67" length="3.51" shape="951.15,1182.37 948.40,1183.44 947.84,1183.41"/>
- </edge>
- <edge id=":767282288_20" function="internal">
- <lane id=":767282288_20_0" index="0" speed="16.67" length="7.36" shape="947.84,1183.41 945.97,1183.33 943.89,1182.03 942.13,1179.56"/>
- </edge>
- <edge id=":767282288_8" function="internal">
- <lane id=":767282288_8_0" index="0" speed="27.78" length="2.41" shape="951.15,1182.37 949.67,1182.26 948.90,1181.75"/>
- </edge>
- <edge id=":767282288_21" function="internal">
- <lane id=":767282288_21_0" index="0" speed="27.78" length="2.41" shape="948.90,1181.75 948.85,1180.83 949.52,1179.50"/>
- </edge>
- <edge id=":767282288_9" function="internal">
- <lane id=":767282288_9_0" index="0" speed="16.67" length="3.17" shape="945.06,1178.04 945.27,1178.01 945.81,1177.76 946.68,1177.30 947.89,1176.63"/>
- </edge>
- <edge id=":767282288_10" function="internal">
- <lane id=":767282288_10_0" index="0" speed="5.56" length="10.43" shape="945.06,1178.04 946.46,1180.73 947.46,1182.67 948.46,1184.61 949.85,1187.30"/>
- </edge>
- <edge id=":767282288_11" function="internal">
- <lane id=":767282288_11_0" index="0" speed="16.67" length="0.18" shape="945.06,1178.04 945.12,1178.20"/>
- </edge>
- <edge id=":767282288_22" function="internal">
- <lane id=":767282288_22_0" index="0" speed="16.67" length="10.74" shape="945.12,1178.20 946.06,1180.87 945.96,1183.37 944.75,1185.52 942.43,1187.33"/>
- </edge>
- <edge id=":767282288_12" function="internal">
- <lane id=":767282288_12_0" index="0" speed="5.56" length="2.41" shape="945.06,1178.04 944.90,1179.52 944.35,1180.26"/>
- </edge>
- <edge id=":767282288_23" function="internal">
- <lane id=":767282288_23_0" index="0" speed="5.56" length="2.41" shape="944.35,1180.26 943.43,1180.28 942.13,1179.56"/>
- </edge>
- <edge id=":767282288_13" function="internal">
- <lane id=":767282288_13_0" index="0" speed="16.67" length="3.63" shape="939.16,1181.60 940.51,1180.81 941.46,1180.20 942.00,1179.79 942.13,1179.56"/>
- </edge>
- <edge id=":767282288_14" function="internal">
- <lane id=":767282288_14_0" index="0" speed="27.78" length="10.04" shape="939.16,1181.60 941.75,1180.12 943.52,1179.11 945.30,1178.10 947.89,1176.63"/>
- </edge>
- <edge id=":767282288_15" function="internal">
- <lane id=":767282288_15_0" index="0" speed="27.78" length="10.03" shape="940.80,1184.46 943.39,1182.99 945.16,1181.98 946.93,1180.97 949.52,1179.50"/>
- </edge>
- <edge id=":767282288_16" function="internal">
- <lane id=":767282288_16_0" index="0" speed="16.67" length="3.53" shape="940.80,1184.46 943.56,1183.39 944.13,1183.41"/>
- </edge>
- <edge id=":767282288_24" function="internal">
- <lane id=":767282288_24_0" index="0" speed="16.67" length="7.39" shape="944.13,1183.41 945.99,1183.50 948.09,1184.81 949.85,1187.30"/>
- </edge>
- <edge id=":767282288_17" function="internal">
- <lane id=":767282288_17_0" index="0" speed="27.78" length="2.41" shape="940.80,1184.46 942.28,1184.57 943.05,1185.08"/>
- </edge>
- <edge id=":767282288_25" function="internal">
- <lane id=":767282288_25_0" index="0" speed="27.78" length="2.41" shape="943.05,1185.08 943.10,1186.00 942.43,1187.33"/>
- </edge>
- <edge id=":945146413_0" function="internal">
- <lane id=":945146413_0_0" index="0" speed="22.22" length="5.00" shape="1427.14,1940.88 1426.03,1941.68 1425.43,1942.65 1425.37,1943.78 1425.82,1945.07"/>
- </edge>
- <edge id=":945146413_1" function="internal">
- <lane id=":945146413_1_0" index="0" speed="22.22" length="6.22" shape="1427.14,1940.88 1421.62,1943.74"/>
- </edge>
- <edge id=":945146413_2" function="internal">
- <lane id=":945146413_2_0" index="0" speed="22.22" length="6.21" shape="1422.95,1939.56 1425.82,1945.07"/>
- </edge>
- <edge id=":945146413_3" function="internal">
- <lane id=":945146413_3_0" index="0" speed="22.22" length="5.01" shape="1422.95,1939.56 1423.41,1940.86 1423.34,1941.99 1422.74,1942.95 1421.62,1943.74"/>
- </edge>
- <edge id=":945146437_0" function="internal">
- <lane id=":945146437_0_0" index="0" speed="18.06" length="5.03" shape="1475.89,2034.30 1474.78,2035.09 1474.19,2036.06 1474.13,2037.20 1474.59,2038.50"/>
- </edge>
- <edge id=":945146437_1" function="internal">
- <lane id=":945146437_1_0" index="0" speed="18.06" length="6.24" shape="1475.89,2034.30 1470.39,2037.23"/>
- </edge>
- <edge id=":945146437_2" function="internal">
- <lane id=":945146437_2_0" index="0" speed="22.22" length="6.23" shape="1471.70,2032.98 1474.59,2038.50"/>
- </edge>
- <edge id=":945146437_3" function="internal">
- <lane id=":945146437_3_0" index="0" speed="22.22" length="5.05" shape="1471.70,2032.98 1472.16,2034.28 1472.09,2035.42 1471.50,2036.40 1470.39,2037.23"/>
- </edge>
- <edge id=":948350565_0" function="internal">
- <lane id=":948350565_0_0" index="0" speed="27.78" length="9.22" shape="734.83,2322.42 734.53,2325.73 734.15,2326.78 733.69,2325.58 733.16,2322.12"/>
- </edge>
- <edge id=":948350565_1" function="internal">
- <lane id=":948350565_1_0" index="0" speed="27.78" length="4.82" shape="734.83,2322.42 733.93,2323.61 733.09,2323.97 732.29,2323.50 731.54,2322.22"/>
- </edge>
- <edge id=":948350588_0" function="internal">
- <lane id=":948350588_0_0" index="0" speed="25.00" length="7.82" shape="769.58,2268.95 761.77,2268.58"/>
- </edge>
- <edge id=":948350588_1" function="internal">
- <lane id=":948350588_1_0" index="0" speed="27.78" length="6.56" shape="769.58,2268.95 763.93,2272.28"/>
- </edge>
- <edge id=":948350588_2" function="internal">
- <lane id=":948350588_2_0" index="0" speed="27.78" length="6.55" shape="767.91,2266.11 762.26,2269.43"/>
- </edge>
- <edge id=":948350588_3" function="internal">
- <lane id=":948350588_3_0" index="0" speed="27.78" length="2.41" shape="767.91,2266.11 766.42,2266.03 765.65,2265.52"/>
- </edge>
- <edge id=":948350588_11" function="internal">
- <lane id=":948350588_11_0" index="0" speed="27.78" length="2.41" shape="765.65,2265.52 765.58,2264.60 766.23,2263.27"/>
- </edge>
- <edge id=":948350588_4" function="internal">
- <lane id=":948350588_4_0" index="0" speed="25.00" length="4.54" shape="761.22,2263.34 761.39,2262.82 762.00,2262.16 763.06,2261.36 764.56,2260.42"/>
- </edge>
- <edge id=":948350588_5" function="internal">
- <lane id=":948350588_5_0" index="0" speed="22.22" length="5.27" shape="761.22,2263.34 761.77,2268.58"/>
- </edge>
- <edge id=":948350588_6" function="internal">
- <lane id=":948350588_6_0" index="0" speed="25.00" length="6.23" shape="761.22,2263.34 761.53,2266.09 761.81,2268.02 762.05,2269.13 762.26,2269.43"/>
- </edge>
- <edge id=":948350588_7" function="internal">
- <lane id=":948350588_7_0" index="0" speed="27.78" length="6.52" shape="758.93,2263.73 764.56,2260.42"/>
- </edge>
- <edge id=":948350588_8" function="internal">
- <lane id=":948350588_8_0" index="0" speed="27.78" length="6.54" shape="760.60,2266.58 766.23,2263.27"/>
- </edge>
- <edge id=":948350588_9" function="internal">
- <lane id=":948350588_9_0" index="0" speed="25.00" length="2.69" shape="760.60,2266.58 761.01,2266.51 761.34,2266.82 761.60,2267.51 761.77,2268.58"/>
- </edge>
- <edge id=":948350588_10" function="internal">
- <lane id=":948350588_10_0" index="0" speed="27.78" length="2.41" shape="760.60,2266.58 762.08,2266.67 762.86,2267.17"/>
- </edge>
- <edge id=":948350588_12" function="internal">
- <lane id=":948350588_12_0" index="0" speed="27.78" length="2.41" shape="762.86,2267.17 762.92,2268.09 762.26,2269.43"/>
- </edge>
- <edge id=":948350595_0" function="internal">
- <lane id=":948350595_0_0" index="0" speed="25.00" length="4.54" shape="760.36,2291.17 759.63,2291.36 759.00,2292.01 758.47,2293.13 758.04,2294.71"/>
- </edge>
- <edge id=":948350595_1" function="internal">
- <lane id=":948350595_1_0" index="0" speed="22.22" length="1.99" shape="760.36,2291.17 758.37,2291.05"/>
- </edge>
- <edge id=":948350595_2" function="internal">
- <lane id=":948350595_2_0" index="0" speed="27.78" length="4.42" shape="759.86,2290.68 758.04,2294.71"/>
- </edge>
- <edge id=":948350595_3" function="internal">
- <lane id=":948350595_3_0" index="0" speed="25.00" length="1.59" shape="759.86,2290.68 759.65,2290.87 759.34,2290.99 758.91,2291.06 758.37,2291.05"/>
- </edge>
- <edge id=":948350597_0" function="internal">
- <lane id=":948350597_0_0" index="0" speed="27.78" length="4.97" shape="739.18,2299.13 738.01,2299.84 737.11,2300.69 736.49,2301.68 736.14,2302.82"/>
- </edge>
- <edge id=":948350597_1" function="internal">
- <lane id=":948350597_1_0" index="0" speed="27.78" length="0.36" shape="737.54,2296.26 737.19,2296.35"/>
- </edge>
- <edge id=":948350597_2" function="internal">
- <lane id=":948350597_2_0" index="0" speed="27.78" length="0.16" shape="735.91,2293.38 735.75,2293.37"/>
- </edge>
- <edge id=":948350597_3" function="internal">
- <lane id=":948350597_3_0" index="0" speed="27.78" length="2.75" shape="737.12,2289.13 736.48,2289.33 736.22,2289.12 736.33,2288.51 736.81,2287.49"/>
- </edge>
- <edge id=":948350597_4" function="internal">
- <lane id=":948350597_4_0" index="0" speed="27.78" length="14.70" shape="739.90,2288.68 738.42,2292.05 737.45,2295.55 736.75,2299.15 736.14,2302.82"/>
- </edge>
- <edge id=":948350597_5" function="internal">
- <lane id=":948350597_5_0" index="0" speed="27.78" length="5.93" shape="739.90,2288.68 734.23,2290.44"/>
- </edge>
- <edge id=":948350597_6" function="internal">
- <lane id=":948350597_6_0" index="0" speed="27.78" length="2.42" shape="739.90,2288.68 738.68,2289.55 737.76,2289.63"/>
- </edge>
- <edge id=":948350597_10" function="internal">
- <lane id=":948350597_10_0" index="0" speed="27.78" length="2.42" shape="737.76,2289.63 737.13,2288.95 736.81,2287.49"/>
- </edge>
- <edge id=":948350597_7" function="internal">
- <lane id=":948350597_7_0" index="0" speed="27.78" length="5.57" shape="732.85,2302.55 737.72,2299.84"/>
- </edge>
- <edge id=":948350597_8" function="internal">
- <lane id=":948350597_8_0" index="0" speed="27.78" length="15.64" shape="732.85,2302.55 733.49,2298.74 734.25,2294.82 735.30,2291.00 736.81,2287.49"/>
- </edge>
- <edge id=":948350597_9" function="internal">
- <lane id=":948350597_9_0" index="0" speed="27.78" length="2.41" shape="732.85,2302.55 733.77,2301.39 734.63,2301.04"/>
- </edge>
- <edge id=":948350597_11" function="internal">
- <lane id=":948350597_11_0" index="0" speed="27.78" length="2.41" shape="734.63,2301.04 735.42,2301.52 736.14,2302.82"/>
- </edge>
- <edge id=":948350607_0" function="internal">
- <lane id=":948350607_0_0" index="0" speed="25.00" length="6.83" shape="768.96,2282.19 766.45,2283.97 764.65,2285.13 763.56,2285.66 763.17,2285.56"/>
- </edge>
- <edge id=":948350607_1" function="internal">
- <lane id=":948350607_1_0" index="0" speed="27.78" length="8.90" shape="768.96,2282.19 761.87,2287.57"/>
- </edge>
- <edge id=":948350607_2" function="internal">
- <lane id=":948350607_2_0" index="0" speed="25.00" length="5.90" shape="753.14,2289.70 758.33,2286.90"/>
- </edge>
- <edge id=":948350607_3" function="internal">
- <lane id=":948350607_3_0" index="0" speed="22.22" length="0.10" shape="763.17,2285.56 763.17,2285.56"/>
- </edge>
- <edge id=":948350607_4" function="internal">
- <lane id=":948350607_4_0" index="0" speed="25.00" length="2.39" shape="763.17,2285.56 761.87,2287.57"/>
- </edge>
- <edge id=":948350607_5" function="internal">
- <lane id=":948350607_5_0" index="0" speed="22.22" length="5.02" shape="763.17,2285.56 762.86,2285.65 761.96,2285.90 760.45,2286.32 758.33,2286.90"/>
- </edge>
- <edge id=":948350615_0" function="internal">
- <lane id=":948350615_0_0" index="0" speed="22.22" length="4.99" shape="741.66,2262.80 741.21,2257.83"/>
- </edge>
- <edge id=":948350615_1" function="internal">
- <lane id=":948350615_1_0" index="0" speed="25.00" length="2.26" shape="741.66,2262.80 741.90,2262.22 742.79,2262.57 743.31,2263.00"/>
- </edge>
- <edge id=":948350615_9" function="internal">
- <lane id=":948350615_9_0" index="0" speed="25.00" length="4.48" shape="743.31,2263.00 744.34,2263.86 746.54,2266.09"/>
- </edge>
- <edge id=":948350615_2" function="internal">
- <lane id=":948350615_2_0" index="0" speed="22.22" length="1.47" shape="741.66,2262.80 743.12,2262.63"/>
- </edge>
- <edge id=":948350615_10" function="internal">
- <lane id=":948350615_10_0" index="0" speed="22.22" length="6.93" shape="743.12,2262.63 744.24,2262.50 745.72,2263.14 746.10,2264.70 745.38,2267.19"/>
- </edge>
- <edge id=":948350615_3" function="internal">
- <lane id=":948350615_3_0" index="0" speed="25.00" length="4.65" shape="744.88,2261.75 746.54,2266.09"/>
- </edge>
- <edge id=":948350615_4" function="internal">
- <lane id=":948350615_4_0" index="0" speed="22.22" length="5.46" shape="744.88,2261.75 745.38,2267.19"/>
- </edge>
- <edge id=":948350615_5" function="internal">
- <lane id=":948350615_5_0" index="0" speed="22.22" length="7.84" shape="744.88,2261.75 742.49,2262.15 741.09,2261.63 740.66,2260.19 741.21,2257.83"/>
- </edge>
- <edge id=":948350615_6" function="internal">
- <lane id=":948350615_6_0" index="0" speed="25.00" length="4.40" shape="742.78,2261.94 741.21,2257.83"/>
- </edge>
- <edge id=":948350615_7" function="internal">
- <lane id=":948350615_7_0" index="0" speed="27.78" length="5.60" shape="742.78,2261.94 746.54,2266.09"/>
- </edge>
- <edge id=":948350615_8" function="internal">
- <lane id=":948350615_8_0" index="0" speed="25.00" length="5.85" shape="742.78,2261.94 745.38,2267.19"/>
- </edge>
- <edge id=":948350621_0" function="internal">
- <lane id=":948350621_0_0" index="0" speed="27.78" length="3.81" shape="757.58,2285.56 756.27,2286.67 755.33,2287.35 754.74,2287.60 754.51,2287.42"/>
- </edge>
- <edge id=":948350621_1" function="internal">
- <lane id=":948350621_1_0" index="0" speed="27.78" length="6.58" shape="752.80,2280.98 757.55,2285.54"/>
- </edge>
- <edge id=":948350621_2" function="internal">
- <lane id=":948350621_2_0" index="0" speed="27.78" length="7.05" shape="752.69,2276.65 755.17,2283.25"/>
- </edge>
- <edge id=":948350621_3" function="internal">
- <lane id=":948350621_3_0" index="0" speed="27.78" length="5.16" shape="753.79,2282.31 754.51,2287.42"/>
- </edge>
- <edge id=":948350621_4" function="internal">
- <lane id=":948350621_4_0" index="0" speed="27.78" length="1.90" shape="753.79,2282.31 753.52,2281.55 753.26,2281.07 753.02,2280.88 752.79,2280.96"/>
- </edge>
- <edge id=":948350621_5" function="internal">
- <lane id=":948350621_5_0" index="0" speed="27.78" length="5.91" shape="753.79,2282.31 752.95,2280.06 752.10,2278.70 751.26,2278.24 750.41,2278.68"/>
- </edge>
- <edge id=":948350630_0" function="internal">
- <lane id=":948350630_0_0" index="0" speed="27.78" length="3.07" shape="776.47,2264.97 773.79,2266.47"/>
- </edge>
- <edge id=":948350630_1" function="internal">
- <lane id=":948350630_1_0" index="0" speed="27.78" length="3.22" shape="774.93,2262.06 772.12,2263.63"/>
- </edge>
- <edge id=":948350630_2" function="internal">
- <lane id=":948350630_2_0" index="0" speed="27.78" length="2.41" shape="774.93,2262.06 773.45,2261.91 772.70,2261.37"/>
- </edge>
- <edge id=":948350630_8" function="internal">
- <lane id=":948350630_8_0" index="0" speed="27.78" length="2.41" shape="772.70,2261.37 772.68,2260.45 773.39,2259.14"/>
- </edge>
- <edge id=":948350630_3" function="internal">
- <lane id=":948350630_3_0" index="0" speed="25.00" length="3.13" shape="771.75,2259.35 771.84,2256.22"/>
- </edge>
- <edge id=":948350630_4" function="internal">
- <lane id=":948350630_4_0" index="0" speed="25.00" length="3.14" shape="769.73,2262.18 771.07,2262.64 771.92,2263.03 772.27,2263.36 772.12,2263.63"/>
- </edge>
- <edge id=":948350630_5" function="internal">
- <lane id=":948350630_5_0" index="0" speed="27.78" length="3.89" shape="768.45,2258.13 771.84,2256.22"/>
- </edge>
- <edge id=":948350630_6" function="internal">
- <lane id=":948350630_6_0" index="0" speed="27.78" length="4.50" shape="769.47,2261.36 773.39,2259.14"/>
- </edge>
- <edge id=":948350630_7" function="internal">
- <lane id=":948350630_7_0" index="0" speed="27.78" length="2.55" shape="769.47,2261.36 770.98,2260.93 771.93,2261.17"/>
- </edge>
- <edge id=":948350630_9" function="internal">
- <lane id=":948350630_9_0" index="0" speed="27.78" length="2.55" shape="771.93,2261.17 772.31,2262.07 772.12,2263.63"/>
- </edge>
- <edge id=":948350640_0" function="internal">
- <lane id=":948350640_0_0" index="0" speed="25.00" length="9.30" shape="743.32,2278.71 743.27,2280.43 742.79,2282.46 741.88,2284.81 740.56,2287.47"/>
- </edge>
- <edge id=":948350640_1" function="internal">
- <lane id=":948350640_1_0" index="0" speed="22.22" length="2.12" shape="743.32,2278.71 743.03,2276.60"/>
- </edge>
- <edge id=":948350640_2" function="internal">
- <lane id=":948350640_2_0" index="0" speed="25.00" length="5.55" shape="743.32,2278.71 743.53,2278.11 744.24,2277.28 745.47,2276.19 747.20,2274.86"/>
- </edge>
- <edge id=":948350640_3" function="internal">
- <lane id=":948350640_3_0" index="0" speed="22.22" length="4.82" shape="743.32,2278.71 744.02,2277.39 744.80,2276.90 745.66,2277.23 746.61,2278.38"/>
- </edge>
- <edge id=":948350640_4" function="internal">
- <lane id=":948350640_4_0" index="0" speed="25.00" length="2.22" shape="748.42,2278.06 747.66,2278.55 747.11,2278.77 746.75,2278.71 746.61,2278.38"/>
- </edge>
- <edge id=":948350640_5" function="internal">
- <lane id=":948350640_5_0" index="0" speed="27.78" length="12.39" shape="748.42,2278.06 745.83,2280.16 743.87,2282.23 742.23,2284.56 740.56,2287.47"/>
- </edge>
- <edge id=":948350640_6" function="internal">
- <lane id=":948350640_6_0" index="0" speed="25.00" length="5.93" shape="748.42,2278.06 746.32,2279.26 744.72,2279.42 743.62,2278.53 743.48,2278.06"/>
- </edge>
- <edge id=":948350640_16" function="internal">
- <lane id=":948350640_16_0" index="0" speed="25.00" length="1.53" shape="743.48,2278.06 743.03,2276.60"/>
- </edge>
- <edge id=":948350640_7" function="internal">
- <lane id=":948350640_7_0" index="0" speed="27.78" length="2.50" shape="748.42,2278.06 746.92,2277.72 746.21,2277.07"/>
- </edge>
- <edge id=":948350640_17" function="internal">
- <lane id=":948350640_17_0" index="0" speed="27.78" length="2.50" shape="746.21,2277.07 746.31,2276.12 747.20,2274.86"/>
- </edge>
- <edge id=":948350640_8" function="internal">
- <lane id=":948350640_8_0" index="0" speed="25.00" length="1.22" shape="746.22,2275.58 746.28,2275.53 746.46,2275.40 746.77,2275.18 747.20,2274.86"/>
- </edge>
- <edge id=":948350640_9" function="internal">
- <lane id=":948350640_9_0" index="0" speed="22.22" length="2.83" shape="746.22,2275.58 746.61,2278.38"/>
- </edge>
- <edge id=":948350640_10" function="internal">
- <lane id=":948350640_10_0" index="0" speed="25.00" length="13.49" shape="746.22,2275.58 745.96,2278.91 744.54,2281.73 742.55,2284.46 740.56,2287.47"/>
- </edge>
- <edge id=":948350640_11" function="internal">
- <lane id=":948350640_11_0" index="0" speed="22.22" length="4.89" shape="746.22,2275.58 745.80,2277.03 745.13,2277.68 744.21,2277.54 743.03,2276.60"/>
- </edge>
- <edge id=":948350640_12" function="internal">
- <lane id=":948350640_12_0" index="0" speed="25.00" length="10.60" shape="737.95,2285.40 739.85,2282.87 741.65,2281.22 742.86,2279.45 743.03,2276.60"/>
- </edge>
- <edge id=":948350640_13" function="internal">
- <lane id=":948350640_13_0" index="0" speed="27.78" length="14.14" shape="737.95,2285.40 739.84,2282.32 741.96,2279.60 744.39,2277.14 747.20,2274.86"/>
- </edge>
- <edge id=":948350640_14" function="internal">
- <lane id=":948350640_14_0" index="0" speed="25.00" length="15.15" shape="737.95,2285.40 741.46,2279.54 744.07,2276.42 745.79,2276.03 746.61,2278.38"/>
- </edge>
- <edge id=":948350640_15" function="internal">
- <lane id=":948350640_15_0" index="0" speed="27.78" length="2.43" shape="737.95,2285.40 739.38,2284.94 740.29,2285.13"/>
- </edge>
- <edge id=":948350640_18" function="internal">
- <lane id=":948350640_18_0" index="0" speed="27.78" length="2.43" shape="740.29,2285.13 740.68,2285.97 740.56,2287.47"/>
- </edge>
- <edge id=":948350673_0" function="internal">
- <lane id=":948350673_0_0" index="0" speed="27.78" length="5.54" shape="731.36,2307.52 730.94,2305.96 730.16,2305.11 729.02,2304.97 727.51,2305.54"/>
- </edge>
- <edge id=":948350673_1" function="internal">
- <lane id=":948350673_1_0" index="0" speed="27.78" length="9.13" shape="731.36,2307.52 730.68,2304.46 729.55,2302.62 727.96,2302.02 725.92,2302.65"/>
- </edge>
- <edge id=":948350673_2" function="internal">
- <lane id=":948350673_2_0" index="0" speed="27.78" length="15.64" shape="731.36,2307.52 730.89,2303.70 730.38,2299.76 729.85,2295.82 729.32,2292.01"/>
- </edge>
- <edge id=":948350673_3" function="internal">
- <lane id=":948350673_3_0" index="0" speed="27.78" length="9.05" shape="732.94,2302.56 724.33,2299.76"/>
- </edge>
- <edge id=":948350673_4" function="internal">
- <lane id=":948350673_4_0" index="0" speed="27.78" length="12.95" shape="732.94,2302.56 729.92,2302.49 727.86,2299.74 725.78,2296.98 722.75,2296.86"/>
- </edge>
- <edge id=":948350673_5" function="internal">
- <lane id=":948350673_5_0" index="0" speed="27.78" length="10.59" shape="736.09,2296.98 733.57,2297.86 731.60,2297.32 730.18,2295.37 729.32,2292.01"/>
- </edge>
- <edge id=":948350676_0" function="internal">
- <lane id=":948350676_0_0" index="0" speed="27.78" length="5.16" shape="739.87,2257.51 744.95,2258.40"/>
- </edge>
- <edge id=":948350676_1" function="internal">
- <lane id=":948350676_1_0" index="0" speed="27.78" length="5.04" shape="739.87,2257.51 742.63,2261.73"/>
- </edge>
- <edge id=":948350693_0" function="internal">
- <lane id=":948350693_0_0" index="0" speed="25.00" length="5.43" shape="746.90,2266.68 747.81,2267.95 748.83,2268.48 749.96,2268.26 751.20,2267.31"/>
- </edge>
- <edge id=":948350693_1" function="internal">
- <lane id=":948350693_1_0" index="0" speed="27.78" length="4.77" shape="746.90,2266.68 749.19,2270.85"/>
- </edge>
- <edge id=":948350693_2" function="internal">
- <lane id=":948350693_2_0" index="0" speed="22.22" length="3.71" shape="748.62,2269.96 751.20,2267.31"/>
- </edge>
- <edge id=":948350693_3" function="internal">
- <lane id=":948350693_3_0" index="0" speed="25.00" length="1.06" shape="748.62,2269.96 748.65,2270.02 748.76,2270.18 748.94,2270.46 749.19,2270.85"/>
- </edge>
- <edge id=":948350705_0" function="internal">
- <lane id=":948350705_0_0" index="0" speed="27.78" length="28.86" shape="752.71,2288.88 754.08,2287.92 765.12,2281.71 776.31,2275.73 778.13,2275.47"/>
- </edge>
- <edge id=":948350705_1" function="internal">
- <lane id=":948350705_1_0" index="0" speed="27.78" length="6.35" shape="751.17,2285.96 757.50,2286.50"/>
- </edge>
- <edge id=":948350705_2" function="internal">
- <lane id=":948350705_2_0" index="0" speed="27.78" length="3.05" shape="751.17,2285.96 748.30,2286.99"/>
- </edge>
- <edge id=":948350707_0" function="internal">
- <lane id=":948350707_0_0" index="0" speed="27.78" length="7.12" shape="756.73,2276.48 757.15,2269.37"/>
- </edge>
- <edge id=":948350707_1" function="internal">
- <lane id=":948350707_1_0" index="0" speed="27.78" length="7.35" shape="756.73,2276.48 754.88,2277.21 753.34,2277.03 752.11,2275.96 751.19,2273.98"/>
- </edge>
- <edge id=":948350707_2" function="internal">
- <lane id=":948350707_2_0" index="0" speed="27.78" length="9.90" shape="756.96,2272.53 748.65,2277.89"/>
- </edge>
- <edge id=":948350707_3" function="internal">
- <lane id=":948350707_3_0" index="0" speed="27.78" length="4.00" shape="756.96,2272.53 755.54,2271.45 755.10,2270.43 755.65,2269.47"/>
- </edge>
- <edge id=":948350707_17" function="internal">
- <lane id=":948350707_17_0" index="0" speed="27.78" length="1.79" shape="755.65,2269.47 757.19,2268.57"/>
- </edge>
- <edge id=":948350707_4" function="internal">
- <lane id=":948350707_4_0" index="0" speed="27.78" length="4.01" shape="750.51,2272.92 750.00,2268.95"/>
- </edge>
- <edge id=":948350707_5" function="internal">
- <lane id=":948350707_5_0" index="0" speed="27.78" length="6.57" shape="750.51,2272.92 750.76,2272.66 751.91,2272.53 753.98,2272.53 756.96,2272.66"/>
- </edge>
- <edge id=":948350707_6" function="internal">
- <lane id=":948350707_6_0" index="0" speed="27.78" length="1.26" shape="750.51,2272.92 751.19,2273.98"/>
- </edge>
- <edge id=":948350707_7" function="internal">
- <lane id=":948350707_7_0" index="0" speed="27.78" length="5.92" shape="750.51,2272.92 750.99,2274.15 750.83,2275.39 750.05,2276.64 748.65,2277.89"/>
- </edge>
- <edge id=":948350707_8" function="internal">
- <lane id=":948350707_8_0" index="0" speed="27.78" length="0.74" shape="749.29,2269.12 750.00,2268.95"/>
- </edge>
- <edge id=":948350707_9" function="internal">
- <lane id=":948350707_9_0" index="0" speed="27.78" length="8.97" shape="749.10,2272.44 757.19,2268.57"/>
- </edge>
- <edge id=":948350707_10" function="internal">
- <lane id=":948350707_10_0" index="0" speed="27.78" length="6.99" shape="749.78,2275.71 756.76,2275.96"/>
- </edge>
- <edge id=":948350707_11" function="internal">
- <lane id=":948350707_11_0" index="0" speed="27.78" length="2.72" shape="749.78,2275.71 750.59,2275.56 751.09,2275.23 751.30,2274.70 751.19,2273.98"/>
- </edge>
- <edge id=":948350707_12" function="internal">
- <lane id=":948350707_12_0" index="0" speed="27.78" length="1.22" shape="749.04,2279.05 748.65,2277.89"/>
- </edge>
- <edge id=":948350707_13" function="internal">
- <lane id=":948350707_13_0" index="0" speed="27.78" length="9.53" shape="749.04,2273.51 757.19,2268.57"/>
- </edge>
- <edge id=":948350707_14" function="internal">
- <lane id=":948350707_14_0" index="0" speed="27.78" length="9.47" shape="749.04,2273.51 756.57,2279.25"/>
- </edge>
- <edge id=":948350707_15" function="internal">
- <lane id=":948350707_15_0" index="0" speed="27.78" length="2.75" shape="749.04,2273.51 749.79,2273.10 750.40,2273.03 750.87,2273.33 751.19,2273.98"/>
- </edge>
- <edge id=":948350707_16" function="internal">
- <lane id=":948350707_16_0" index="0" speed="27.78" length="4.09" shape="749.04,2273.51 750.59,2274.76 751.03,2275.90 750.57,2276.65"/>
- </edge>
- <edge id=":948350707_18" function="internal">
- <lane id=":948350707_18_0" index="0" speed="27.78" length="2.33" shape="750.57,2276.65 750.39,2276.95 748.65,2277.89"/>
- </edge>
- <edge id=":948350715_0" function="internal">
- <lane id=":948350715_0_0" index="0" speed="25.00" length="3.49" shape="755.65,2290.89 755.38,2291.08 755.24,2291.70 755.23,2292.74 755.35,2294.22"/>
- </edge>
- <edge id=":948350715_1" function="internal">
- <lane id=":948350715_1_0" index="0" speed="22.22" length="4.13" shape="755.65,2290.89 751.53,2290.62"/>
- </edge>
- <edge id=":948350715_2" function="internal">
- <lane id=":948350715_2_0" index="0" speed="27.78" length="3.70" shape="754.94,2290.54 755.35,2294.22"/>
- </edge>
- <edge id=":948350715_3" function="internal">
- <lane id=":948350715_3_0" index="0" speed="25.00" length="3.45" shape="754.94,2290.54 754.75,2290.66 754.11,2290.71 753.04,2290.70 751.53,2290.62"/>
- </edge>
- <edge id=":950094314_0" function="internal">
- <lane id=":950094314_0_0" index="0" speed="25.00" length="3.95" shape="1352.36,1972.41 1351.10,1973.00 1350.09,1973.21 1349.33,1973.05 1348.81,1972.51"/>
- </edge>
- <edge id=":950094314_1" function="internal">
- <lane id=":950094314_1_0" index="0" speed="27.78" length="6.31" shape="1352.36,1972.41 1346.82,1975.43"/>
- </edge>
- <edge id=":950094314_2" function="internal">
- <lane id=":950094314_2_0" index="0" speed="27.78" length="6.23" shape="1350.75,1969.53 1345.27,1972.52"/>
- </edge>
- <edge id=":950094314_3" function="internal">
- <lane id=":950094314_3_0" index="0" speed="22.22" length="2.84" shape="1347.46,1970.01 1348.81,1972.51"/>
- </edge>
- <edge id=":950094314_4" function="internal">
- <lane id=":950094314_4_0" index="0" speed="25.00" length="3.61" shape="1347.46,1970.01 1347.53,1970.56 1347.20,1971.16 1346.44,1971.81 1345.27,1972.52"/>
- </edge>
- <edge id=":950094380_0" function="internal">
- <lane id=":950094380_0_0" index="0" speed="25.00" length="12.10" shape="1310.50,1997.66 1307.34,1997.83 1304.86,1998.26 1302.32,1999.20 1299.00,2000.85"/>
- </edge>
- <edge id=":950094380_1" function="internal">
- <lane id=":950094380_1_0" index="0" speed="22.22" length="11.07" shape="1310.50,1997.66 1306.27,1997.65 1303.09,1997.34 1300.95,1996.73 1299.86,1995.82"/>
- </edge>
- <edge id=":950094380_2" function="internal">
- <lane id=":950094380_2_0" index="0" speed="27.78" length="14.78" shape="1312.06,1993.92 1308.19,1995.98 1305.54,1997.39 1302.88,1998.80 1299.00,2000.85"/>
- </edge>
- <edge id=":950094380_3" function="internal">
- <lane id=":950094380_3_0" index="0" speed="27.78" length="14.77" shape="1310.51,1991.00 1306.64,1993.06 1303.99,1994.48 1301.34,1995.88 1297.46,1997.93"/>
- </edge>
- <edge id=":950094380_4" function="internal">
- <lane id=":950094380_4_0" index="0" speed="25.00" length="11.75" shape="1310.51,1991.00 1305.98,1993.36 1302.70,1994.95 1300.66,1995.77 1299.86,1995.82"/>
- </edge>
- <edge id=":950094412_0" function="internal">
- <lane id=":950094412_0_0" index="0" speed="25.00" length="5.06" shape="1079.58,2120.06 1078.81,2118.90 1077.87,2118.27 1076.74,2118.20 1075.42,2118.67"/>
- </edge>
- <edge id=":950094412_1" function="internal">
- <lane id=":950094412_1_0" index="0" speed="22.22" length="6.08" shape="1079.58,2120.06 1077.01,2114.55"/>
- </edge>
- <edge id=":950094412_2" function="internal">
- <lane id=":950094412_2_0" index="0" speed="22.22" length="4.82" shape="1079.58,2120.06 1079.80,2118.59 1080.38,2117.87 1081.30,2117.90 1082.57,2118.67"/>
- </edge>
- <edge id=":950094412_3" function="internal">
- <lane id=":950094412_3_0" index="0" speed="25.00" length="3.35" shape="1081.28,2115.58 1081.32,2115.80 1081.54,2116.39 1081.96,2117.34 1082.57,2118.67"/>
- </edge>
- <edge id=":950094412_4" function="internal">
- <lane id=":950094412_4_0" index="0" speed="27.78" length="6.62" shape="1081.28,2115.58 1075.42,2118.67"/>
- </edge>
- <edge id=":950094412_5" function="internal">
- <lane id=":950094412_5_0" index="0" speed="27.78" length="6.64" shape="1079.75,2112.66 1073.88,2115.75"/>
- </edge>
- <edge id=":950094412_6" function="internal">
- <lane id=":950094412_6_0" index="0" speed="25.00" length="3.39" shape="1079.75,2112.66 1078.49,2113.35 1077.61,2113.89 1077.11,2114.30 1077.01,2114.55"/>
- </edge>
- <edge id=":950094412_7" function="internal">
- <lane id=":950094412_7_0" index="0" speed="22.22" length="6.08" shape="1080.00,2113.16 1082.57,2118.67"/>
- </edge>
- <edge id=":950094412_8" function="internal">
- <lane id=":950094412_8_0" index="0" speed="25.00" length="6.70" shape="1080.00,2113.16 1079.53,2113.13 1078.35,2113.55 1076.47,2114.42 1073.88,2115.75"/>
- </edge>
- <edge id=":950094412_9" function="internal">
- <lane id=":950094412_9_0" index="0" speed="22.22" length="4.82" shape="1080.00,2113.16 1079.78,2114.63 1079.20,2115.35 1078.28,2115.33 1077.01,2114.55"/>
- </edge>
- <edge id=":950094425_0" function="internal">
- <lane id=":950094425_0_0" index="0" speed="25.00" length="4.41" shape="1072.87,2105.68 1073.09,2106.63 1072.85,2107.53 1072.15,2108.37 1070.97,2109.14"/>
- </edge>
- <edge id=":950094425_1" function="internal">
- <lane id=":950094425_1_0" index="0" speed="22.22" length="9.81" shape="1072.87,2105.68 1068.72,2096.79"/>
- </edge>
- <edge id=":950094425_2" function="internal">
- <lane id=":950094425_2_0" index="0" speed="25.00" length="5.14" shape="1072.87,2105.68 1072.13,2103.86 1071.81,2102.46 1071.90,2101.48 1072.41,2100.91"/>
- </edge>
- <edge id=":950094425_3" function="internal">
- <lane id=":950094425_3_0" index="0" speed="22.22" length="4.82" shape="1072.87,2105.68 1073.09,2104.21 1073.66,2103.48 1074.59,2103.51 1075.86,2104.28"/>
- </edge>
- <edge id=":950094425_4" function="internal">
- <lane id=":950094425_4_0" index="0" speed="25.00" length="2.90" shape="1075.37,2106.81 1075.91,2106.40 1076.17,2105.84 1076.15,2105.14 1075.86,2104.28"/>
- </edge>
- <edge id=":950094425_5" function="internal">
- <lane id=":950094425_5_0" index="0" speed="27.78" length="4.97" shape="1075.37,2106.81 1070.97,2109.14"/>
- </edge>
- <edge id=":950094425_6" function="internal">
- <lane id=":950094425_6_0" index="0" speed="27.78" length="5.05" shape="1073.89,2103.86 1069.43,2106.22"/>
- </edge>
- <edge id=":950094425_7" function="internal">
- <lane id=":950094425_7_0" index="0" speed="25.00" length="7.02" shape="1073.89,2103.86 1073.00,2103.70 1071.84,2102.47 1070.42,2100.17 1069.65,2098.64"/>
- </edge>
- <edge id=":950094425_18" function="internal">
- <lane id=":950094425_18_0" index="0" speed="25.00" length="2.07" shape="1069.65,2098.64 1068.72,2096.79"/>
- </edge>
- <edge id=":950094425_8" function="internal">
- <lane id=":950094425_8_0" index="0" speed="27.78" length="2.41" shape="1073.89,2103.86 1072.42,2103.68 1071.68,2103.12"/>
- </edge>
- <edge id=":950094425_19" function="internal">
- <lane id=":950094425_19_0" index="0" speed="27.78" length="2.41" shape="1071.68,2103.12 1071.68,2102.20 1072.41,2100.91"/>
- </edge>
- <edge id=":950094425_9" function="internal">
- <lane id=":950094425_9_0" index="0" speed="25.00" length="1.91" shape="1072.27,2096.59 1070.94,2097.96"/>
- </edge>
- <edge id=":950094425_10" function="internal">
- <lane id=":950094425_10_0" index="0" speed="22.22" length="8.49" shape="1072.27,2096.59 1075.86,2104.28"/>
- </edge>
- <edge id=":950094425_11" function="internal">
- <lane id=":950094425_11_0" index="0" speed="25.00" length="11.33" shape="1072.27,2096.59 1073.23,2099.64 1073.08,2102.26 1071.81,2104.45 1069.43,2106.22"/>
- </edge>
- <edge id=":950094425_12" function="internal">
- <lane id=":950094425_12_0" index="0" speed="22.22" length="5.19" shape="1072.27,2096.59 1071.46,2097.97 1070.60,2098.46 1069.69,2098.07 1068.72,2096.79"/>
- </edge>
- <edge id=":950094425_13" function="internal">
- <lane id=":950094425_13_0" index="0" speed="25.00" length="4.78" shape="1066.34,2100.39 1067.71,2099.52 1068.57,2098.63 1068.90,2097.72 1068.72,2096.79"/>
- </edge>
- <edge id=":950094425_14" function="internal">
- <lane id=":950094425_14_0" index="0" speed="27.78" length="5.20" shape="1066.34,2100.39 1070.94,2097.96"/>
- </edge>
- <edge id=":950094425_15" function="internal">
- <lane id=":950094425_15_0" index="0" speed="27.78" length="5.12" shape="1067.89,2103.31 1072.41,2100.91"/>
- </edge>
- <edge id=":950094425_16" function="internal">
- <lane id=":950094425_16_0" index="0" speed="25.00" length="9.15" shape="1067.89,2103.31 1070.64,2102.17 1072.89,2101.96 1074.63,2102.66 1075.86,2104.28"/>
- </edge>
- <edge id=":950094425_17" function="internal">
- <lane id=":950094425_17_0" index="0" speed="27.78" length="2.41" shape="1067.89,2103.31 1069.37,2103.46 1070.12,2103.99"/>
- </edge>
- <edge id=":950094425_20" function="internal">
- <lane id=":950094425_20_0" index="0" speed="27.78" length="2.41" shape="1070.12,2103.99 1070.14,2104.92 1069.43,2106.22"/>
- </edge>
- <edge id=":950094434_0" function="internal">
- <lane id=":950094434_0_0" index="0" speed="25.00" length="5.06" shape="1423.05,1933.00 1421.93,1933.81 1421.34,1934.79 1421.28,1935.93 1421.74,1937.25"/>
- </edge>
- <edge id=":950094434_1" function="internal">
- <lane id=":950094434_1_0" index="0" speed="27.78" length="6.26" shape="1423.05,1933.00 1417.54,1935.99"/>
- </edge>
- <edge id=":950094434_2" function="internal">
- <lane id=":950094434_2_0" index="0" speed="27.78" length="6.35" shape="1421.51,1930.08 1415.93,1933.11"/>
- </edge>
- <edge id=":950094434_3" function="internal">
- <lane id=":950094434_3_0" index="0" speed="22.22" length="5.66" shape="1419.13,1932.23 1421.74,1937.25"/>
- </edge>
- <edge id=":950094434_4" function="internal">
- <lane id=":950094434_4_0" index="0" speed="25.00" length="3.48" shape="1419.13,1932.23 1418.79,1932.02 1418.15,1932.10 1417.19,1932.46 1415.93,1933.11"/>
- </edge>
- <edge id=":950094458_0" function="internal">
- <lane id=":950094458_0_0" index="0" speed="25.00" length="6.75" shape="1410.79,1916.27 1412.01,1918.18 1413.28,1919.34 1414.58,1919.75 1415.93,1919.41"/>
- </edge>
- <edge id=":950094458_1" function="internal">
- <lane id=":950094458_1_0" index="0" speed="22.22" length="8.50" shape="1410.79,1916.27 1414.72,1923.80"/>
- </edge>
- <edge id=":950094458_2" function="internal">
- <lane id=":950094458_2_0" index="0" speed="25.00" length="12.81" shape="1410.79,1916.27 1413.01,1920.92 1414.21,1924.45 1414.39,1926.85 1413.55,1928.12"/>
- </edge>
- <edge id=":950094458_3" function="internal">
- <lane id=":950094458_3_0" index="0" speed="25.00" length="9.72" shape="1410.79,1916.27 1412.34,1919.64 1413.06,1922.26 1412.95,1924.11 1412.01,1925.21"/>
- </edge>
- <edge id=":950094458_4" function="internal">
- <lane id=":950094458_4_0" index="0" speed="27.78" length="7.01" shape="1408.93,1919.37 1415.93,1919.41"/>
- </edge>
- <edge id=":950094458_5" function="internal">
- <lane id=":950094458_5_0" index="0" speed="27.78" length="7.00" shape="1410.47,1922.29 1417.47,1922.33"/>
- </edge>
- <edge id=":950094458_6" function="internal">
- <lane id=":950094458_6_0" index="0" speed="25.00" length="5.15" shape="1410.47,1922.29 1411.75,1921.84 1412.89,1921.95 1413.88,1922.60 1414.72,1923.80"/>
- </edge>
- <edge id=":950094458_7" function="internal">
- <lane id=":950094458_7_0" index="0" speed="27.78" length="4.82" shape="1410.47,1922.29 1411.95,1922.44 1412.70,1922.98 1412.72,1923.90 1412.01,1925.21"/>
- </edge>
- <edge id=":950094494_0" function="internal">
- <lane id=":950094494_0_0" index="0" speed="25.00" length="5.06" shape="1295.53,1987.28 1295.94,1988.58 1295.83,1989.72 1295.20,1990.69 1294.06,1991.49"/>
- </edge>
- <edge id=":950094494_1" function="internal">
- <lane id=":950094494_1_0" index="0" speed="22.22" length="10.24" shape="1295.53,1987.28 1294.22,1984.56 1293.37,1982.63 1292.76,1980.61 1292.18,1977.66"/>
- </edge>
- <edge id=":950094494_2" function="internal">
- <lane id=":950094494_2_0" index="0" speed="25.00" length="6.19" shape="1295.53,1987.28 1295.09,1985.77 1295.28,1984.42 1296.12,1983.22 1297.59,1982.19"/>
- </edge>
- <edge id=":950094494_3" function="internal">
- <lane id=":950094494_3_0" index="0" speed="27.78" length="7.50" shape="1300.70,1988.01 1294.06,1991.49"/>
- </edge>
- <edge id=":950094494_4" function="internal">
- <lane id=":950094494_4_0" index="0" speed="27.78" length="7.44" shape="1299.15,1985.10 1292.56,1988.55"/>
- </edge>
- <edge id=":950094494_5" function="internal">
- <lane id=":950094494_5_0" index="0" speed="25.00" length="8.87" shape="1299.15,1985.10 1296.76,1985.67 1294.81,1984.63 1293.28,1981.96 1293.00,1980.87"/>
- </edge>
- <edge id=":950094494_11" function="internal">
- <lane id=":950094494_11_0" index="0" speed="25.00" length="3.31" shape="1293.00,1980.87 1292.18,1977.66"/>
- </edge>
- <edge id=":950094494_6" function="internal">
- <lane id=":950094494_6_0" index="0" speed="27.78" length="2.41" shape="1299.15,1985.10 1297.67,1984.95 1296.91,1984.42"/>
- </edge>
- <edge id=":950094494_12" function="internal">
- <lane id=":950094494_12_0" index="0" speed="27.78" length="2.41" shape="1296.91,1984.42 1296.89,1983.50 1297.59,1982.19"/>
- </edge>
- <edge id=":950094494_7" function="internal">
- <lane id=":950094494_7_0" index="0" speed="25.00" length="6.11" shape="1289.55,1982.68 1290.92,1981.75 1291.82,1980.60 1292.24,1979.24 1292.18,1977.66"/>
- </edge>
- <edge id=":950094494_8" function="internal">
- <lane id=":950094494_8_0" index="0" speed="27.78" length="7.33" shape="1289.55,1982.68 1296.04,1979.28"/>
- </edge>
- <edge id=":950094494_9" function="internal">
- <lane id=":950094494_9_0" index="0" speed="27.78" length="7.38" shape="1291.05,1985.61 1297.59,1982.19"/>
- </edge>
- <edge id=":950094494_10" function="internal">
- <lane id=":950094494_10_0" index="0" speed="27.78" length="2.41" shape="1291.05,1985.61 1292.53,1985.78 1293.27,1986.33"/>
- </edge>
- <edge id=":950094494_13" function="internal">
- <lane id=":950094494_13_0" index="0" speed="27.78" length="2.41" shape="1293.27,1986.33 1293.28,1987.25 1292.56,1988.55"/>
- </edge>
- <edge id=":950640351_0" function="internal">
- <lane id=":950640351_0_0" index="0" speed="5.56" length="3.56" shape="940.75,1176.91 939.11,1173.74"/>
- </edge>
- <edge id=":950640351_1" function="internal">
- <lane id=":950640351_1_0" index="0" speed="16.67" length="6.50" shape="940.75,1176.91 941.05,1176.60 942.06,1175.93 943.80,1174.88 946.25,1173.47"/>
- </edge>
- <edge id=":950640351_2" function="internal">
- <lane id=":950640351_2_0" index="0" speed="5.56" length="4.82" shape="940.75,1176.91 940.92,1175.43 941.46,1174.68 942.38,1174.67 943.68,1175.39"/>
- </edge>
- <edge id=":950640351_3" function="internal">
- <lane id=":950640351_3_0" index="0" speed="16.67" length="5.05" shape="942.04,1172.22 942.85,1173.35 943.82,1173.94 944.95,1173.98 946.25,1173.47"/>
- </edge>
- <edge id=":950640351_4" function="internal">
- <lane id=":950640351_4_0" index="0" speed="5.56" length="3.56" shape="942.04,1172.22 943.68,1175.39"/>
- </edge>
- <edge id=":950640351_5" function="internal">
- <lane id=":950640351_5_0" index="0" speed="5.56" length="4.82" shape="942.04,1172.22 941.88,1173.70 941.34,1174.45 940.41,1174.46 939.11,1173.74"/>
- </edge>
- <edge id=":950640351_6" function="internal">
- <lane id=":950640351_6_0" index="0" speed="16.67" length="5.38" shape="937.91,1178.38 939.01,1177.46 939.58,1176.38 939.61,1175.14 939.11,1173.74"/>
- </edge>
- <edge id=":950640351_7" function="internal">
- <lane id=":950640351_7_0" index="0" speed="27.78" length="9.68" shape="937.91,1178.38 946.25,1173.47"/>
- </edge>
- <edge id=":950640351_8" function="internal">
- <lane id=":950640351_8_0" index="0" speed="16.67" length="6.55" shape="937.91,1178.38 940.36,1176.92 942.13,1175.93 943.24,1175.42 943.68,1175.39"/>
- </edge>
- <edge id=":950640361_0" function="internal">
- <lane id=":950640361_0_0" index="0" speed="25.00" length="9.72" shape="752.62,1283.98 754.59,1282.59 756.16,1280.84 757.32,1278.74 758.06,1276.29"/>
- </edge>
- <edge id=":950640361_1" function="internal">
- <lane id=":950640361_1_0" index="0" speed="27.78" length="10.36" shape="752.62,1283.98 755.25,1282.50 757.11,1281.41 758.93,1280.25 761.46,1278.59"/>
- </edge>
- <edge id=":950640361_2" function="internal">
- <lane id=":950640361_2_0" index="0" speed="22.22" length="5.37" shape="756.98,1281.55 758.06,1276.29"/>
- </edge>
- <edge id=":950640361_3" function="internal">
- <lane id=":950640361_3_0" index="0" speed="25.00" length="5.37" shape="756.98,1281.55 761.46,1278.59"/>
- </edge>
- <edge id=":950640371_0" function="internal">
- <lane id=":950640371_0_0" index="0" speed="22.22" length="3.26" shape="668.95,1333.31 667.40,1330.44"/>
- </edge>
- <edge id=":950640371_1" function="internal">
- <lane id=":950640371_1_0" index="0" speed="25.00" length="6.48" shape="668.95,1333.31 669.31,1333.13 670.37,1332.52 672.11,1331.49 674.54,1330.03"/>
- </edge>
- <edge id=":950640371_2" function="internal">
- <lane id=":950640371_2_0" index="0" speed="22.22" length="4.82" shape="668.95,1333.31 669.11,1331.83 669.65,1331.08 670.57,1331.06 671.87,1331.78"/>
- </edge>
- <edge id=":950640371_3" function="internal">
- <lane id=":950640371_3_0" index="0" speed="25.00" length="5.06" shape="670.31,1328.87 671.14,1329.99 672.12,1330.56 673.26,1330.57 674.54,1330.03"/>
- </edge>
- <edge id=":950640371_4" function="internal">
- <lane id=":950640371_4_0" index="0" speed="22.22" length="3.30" shape="670.31,1328.87 671.87,1331.78"/>
- </edge>
- <edge id=":950640371_5" function="internal">
- <lane id=":950640371_5_0" index="0" speed="22.22" length="4.82" shape="670.31,1328.87 670.17,1330.35 669.64,1331.11 668.72,1331.13 667.40,1330.44"/>
- </edge>
- <edge id=":950640371_6" function="internal">
- <lane id=":950640371_6_0" index="0" speed="25.00" length="5.22" shape="666.24,1334.89 667.34,1334.03 667.90,1333.00 667.92,1331.80 667.40,1330.44"/>
- </edge>
- <edge id=":950640371_7" function="internal">
- <lane id=":950640371_7_0" index="0" speed="27.78" length="9.62" shape="666.24,1334.89 674.54,1330.03"/>
- </edge>
- <edge id=":950640371_8" function="internal">
- <lane id=":950640371_8_0" index="0" speed="25.00" length="6.44" shape="666.24,1334.89 668.69,1333.50 670.45,1332.52 671.51,1331.95 671.87,1331.78"/>
- </edge>
- <edge id=":950640393_0" function="internal">
- <lane id=":950640393_0_0" index="0" speed="25.00" length="7.26" shape="460.80,1474.61 459.12,1473.67 457.42,1473.27 455.71,1473.43 453.98,1474.14"/>
- </edge>
- <edge id=":950640393_1" function="internal">
- <lane id=":950640393_1_0" index="0" speed="22.22" length="3.38" shape="460.80,1474.61 458.07,1472.62"/>
- </edge>
- <edge id=":950640393_2" function="internal">
- <lane id=":950640393_2_0" index="0" speed="22.22" length="4.82" shape="460.80,1474.61 460.29,1473.21 460.44,1472.30 461.26,1471.88 462.74,1471.94"/>
- </edge>
- <edge id=":950640393_3" function="internal">
- <lane id=":950640393_3_0" index="0" speed="25.00" length="4.74" shape="464.07,1468.42 462.69,1469.38 462.01,1470.28 462.03,1471.14 462.74,1471.94"/>
- </edge>
- <edge id=":950640393_4" function="internal">
- <lane id=":950640393_4_0" index="0" speed="27.78" length="11.60" shape="464.07,1468.42 461.27,1470.01 459.03,1471.29 456.78,1472.56 453.98,1474.14"/>
- </edge>
- <edge id=":950640393_5" function="internal">
- <lane id=":950640393_5_0" index="0" speed="25.00" length="7.42" shape="464.07,1468.42 461.22,1470.09 459.27,1471.35 458.22,1472.19 458.07,1472.62"/>
- </edge>
- <edge id=":950640393_6" function="internal">
- <lane id=":950640393_6_0" index="0" speed="22.22" length="3.38" shape="460.01,1469.95 462.74,1471.94"/>
- </edge>
- <edge id=":950640393_7" function="internal">
- <lane id=":950640393_7_0" index="0" speed="25.00" length="7.44" shape="460.01,1469.95 459.86,1470.38 458.81,1471.22 456.85,1472.47 453.98,1474.14"/>
- </edge>
- <edge id=":950640393_8" function="internal">
- <lane id=":950640393_8_0" index="0" speed="22.22" length="4.82" shape="460.01,1469.95 460.52,1471.34 460.37,1472.25 459.55,1472.68 458.07,1472.62"/>
- </edge>
- <edge id=":950640399_0" function="internal">
- <lane id=":950640399_0_0" index="0" speed="25.00" length="5.09" shape="932.88,1177.67 933.69,1178.82 934.67,1179.41 935.80,1179.42 937.10,1178.87"/>
- </edge>
- <edge id=":950640399_1" function="internal">
- <lane id=":950640399_1_0" index="0" speed="22.22" length="3.35" shape="932.88,1177.67 934.40,1180.66"/>
- </edge>
- <edge id=":950640399_2" function="internal">
- <lane id=":950640399_2_0" index="0" speed="27.78" length="6.42" shape="931.59,1182.16 937.10,1178.87"/>
- </edge>
- <edge id=":950640399_3" function="internal">
- <lane id=":950640399_3_0" index="0" speed="25.00" length="3.20" shape="931.59,1182.16 932.80,1181.46 933.67,1180.98 934.21,1180.71 934.40,1180.66"/>
- </edge>
- <edge id=":950640411_0" function="internal">
- <lane id=":950640411_0_0" index="0" speed="25.00" length="4.56" shape="775.05,1268.27 775.22,1268.87 775.92,1268.98 777.14,1268.60 778.89,1267.73"/>
- </edge>
- <edge id=":950640411_1" function="internal">
- <lane id=":950640411_1_0" index="0" speed="22.22" length="2.86" shape="775.05,1268.27 774.73,1271.11"/>
- </edge>
- <edge id=":950640411_2" function="internal">
- <lane id=":950640411_2_0" index="0" speed="22.22" length="4.82" shape="775.05,1268.27 774.09,1269.41 773.23,1269.72 772.45,1269.22 771.78,1267.89"/>
- </edge>
- <edge id=":950640411_3" function="internal">
- <lane id=":950640411_3_0" index="0" speed="25.00" length="8.59" shape="767.18,1274.82 769.01,1273.37 770.38,1271.73 771.31,1269.91 771.78,1267.89"/>
- </edge>
- <edge id=":950640411_4" function="internal">
- <lane id=":950640411_4_0" index="0" speed="27.78" length="13.70" shape="767.18,1274.82 770.15,1272.89 772.96,1271.15 775.80,1269.47 778.89,1267.73"/>
- </edge>
- <edge id=":950640411_5" function="internal">
- <lane id=":950640411_5_0" index="0" speed="25.00" length="8.70" shape="767.18,1274.82 770.54,1272.68 772.92,1271.35 774.31,1270.83 774.73,1271.11"/>
- </edge>
- <edge id=":950640411_6" function="internal">
- <lane id=":950640411_6_0" index="0" speed="22.22" length="2.86" shape="771.45,1270.74 771.78,1267.89"/>
- </edge>
- <edge id=":950640411_7" function="internal">
- <lane id=":950640411_7_0" index="0" speed="25.00" length="8.25" shape="771.45,1270.74 771.86,1270.98 773.24,1270.57 775.58,1269.48 778.89,1267.73"/>
- </edge>
- <edge id=":950640411_8" function="internal">
- <lane id=":950640411_8_0" index="0" speed="22.22" length="4.82" shape="771.45,1270.74 772.41,1269.60 773.27,1269.29 774.05,1269.79 774.73,1271.11"/>
- </edge>
- <edge id=":950640413_0" function="internal">
- <lane id=":950640413_0_0" index="0" speed="25.00" length="8.73" shape="776.31,1290.18 774.51,1291.49 773.14,1293.09 772.18,1294.99 771.64,1297.19"/>
- </edge>
- <edge id=":950640413_1" function="internal">
- <lane id=":950640413_1_0" index="0" speed="27.78" length="13.69" shape="776.31,1290.18 773.24,1291.95 770.39,1293.62 767.56,1295.30 764.52,1297.12"/>
- </edge>
- <edge id=":950640413_2" function="internal">
- <lane id=":950640413_2_0" index="0" speed="25.00" length="8.34" shape="776.31,1290.18 772.99,1292.02 770.64,1293.15 769.26,1293.59 768.85,1293.34"/>
- </edge>
- <edge id=":950640413_3" function="internal">
- <lane id=":950640413_3_0" index="0" speed="22.22" length="3.51" shape="772.12,1293.71 771.64,1297.19"/>
- </edge>
- <edge id=":950640413_4" function="internal">
- <lane id=":950640413_4_0" index="0" speed="25.00" length="8.59" shape="772.12,1293.71 771.70,1293.45 770.29,1293.93 767.90,1295.16 764.52,1297.12"/>
- </edge>
- <edge id=":950640413_5" function="internal">
- <lane id=":950640413_5_0" index="0" speed="22.22" length="4.82" shape="772.12,1293.71 771.16,1294.85 770.30,1295.16 769.52,1294.66 768.85,1293.34"/>
- </edge>
- <edge id=":950640413_6" function="internal">
- <lane id=":950640413_6_0" index="0" speed="25.00" length="4.84" shape="768.38,1296.74 768.24,1295.97 767.56,1295.78 766.31,1296.16 764.52,1297.12"/>
- </edge>
- <edge id=":950640413_7" function="internal">
- <lane id=":950640413_7_0" index="0" speed="22.22" length="3.44" shape="768.38,1296.74 768.85,1293.34"/>
- </edge>
- <edge id=":950640413_8" function="internal">
- <lane id=":950640413_8_0" index="0" speed="22.22" length="4.82" shape="768.38,1296.74 769.36,1295.63 770.24,1295.33 771.00,1295.86 771.64,1297.19"/>
- </edge>
- <edge id=":950640428_0" function="internal">
- <lane id=":950640428_0_0" index="0" speed="27.78" length="8.66" shape="687.84,2240.81 679.23,2241.77"/>
- </edge>
- <edge id=":950640428_1" function="internal">
- <lane id=":950640428_1_0" index="0" speed="27.78" length="8.60" shape="687.84,2240.81 679.75,2237.88"/>
- </edge>
- <edge id=":950640474_0" function="internal">
- <lane id=":950640474_0_0" index="0" speed="27.78" length="10.17" shape="756.64,1301.87 754.08,1303.41 752.28,1304.47 750.47,1305.51 747.86,1306.99"/>
- </edge>
- <edge id=":950640474_1" function="internal">
- <lane id=":950640474_1_0" index="0" speed="25.00" length="5.07" shape="756.64,1301.87 754.71,1303.02 753.34,1303.83 752.52,1304.29 752.25,1304.39"/>
- </edge>
- <edge id=":950640474_2" function="internal">
- <lane id=":950640474_2_0" index="0" speed="25.00" length="6.08" shape="751.31,1308.98 751.44,1307.18 750.90,1306.25 749.71,1306.19 747.86,1306.99"/>
- </edge>
- <edge id=":950640474_3" function="internal">
- <lane id=":950640474_3_0" index="0" speed="22.22" length="4.68" shape="751.31,1308.98 752.25,1304.39"/>
- </edge>
- <edge id=":950640525_0" function="internal">
- <lane id=":950640525_0_0" index="0" speed="25.00" length="5.15" shape="944.61,1193.87 943.49,1194.73 942.90,1195.74 942.83,1196.90 943.30,1198.22"/>
- </edge>
- <edge id=":950640525_1" function="internal">
- <lane id=":950640525_1_0" index="0" speed="27.78" length="6.33" shape="944.61,1193.87 939.09,1196.98"/>
- </edge>
- <edge id=":950640525_2" function="internal">
- <lane id=":950640525_2_0" index="0" speed="22.22" length="3.41" shape="941.72,1195.20 943.30,1198.22"/>
- </edge>
- <edge id=":950640525_3" function="internal">
- <lane id=":950640525_3_0" index="0" speed="25.00" length="3.20" shape="941.72,1195.20 941.60,1195.40 941.12,1195.76 940.29,1196.29 939.09,1196.98"/>
- </edge>
- <edge id=":950640531_0" function="internal">
- <lane id=":950640531_0_0" index="0" speed="16.67" length="5.04" shape="949.88,1194.53 949.07,1193.40 948.10,1192.82 946.97,1192.78 945.68,1193.28"/>
- </edge>
- <edge id=":950640531_1" function="internal">
- <lane id=":950640531_1_0" index="0" speed="5.56" length="3.48" shape="949.88,1194.53 948.27,1191.44"/>
- </edge>
- <edge id=":950640531_2" function="internal">
- <lane id=":950640531_2_0" index="0" speed="5.56" length="4.82" shape="949.88,1194.53 950.04,1193.05 950.58,1192.30 951.50,1192.29 952.81,1193.01"/>
- </edge>
- <edge id=":950640531_3" function="internal">
- <lane id=":950640531_3_0" index="0" speed="16.67" length="5.23" shape="954.06,1188.56 952.94,1189.42 952.37,1190.45 952.32,1191.64 952.81,1193.01"/>
- </edge>
- <edge id=":950640531_4" function="internal">
- <lane id=":950640531_4_0" index="0" speed="27.78" length="9.62" shape="954.06,1188.56 945.68,1193.28"/>
- </edge>
- <edge id=":950640531_5" function="internal">
- <lane id=":950640531_5_0" index="0" speed="16.67" length="6.49" shape="954.06,1188.56 951.58,1189.93 949.80,1190.87 948.69,1191.38 948.27,1191.44"/>
- </edge>
- <edge id=":950640531_6" function="internal">
- <lane id=":950640531_6_0" index="0" speed="5.56" length="3.47" shape="951.21,1189.93 952.81,1193.01"/>
- </edge>
- <edge id=":950640531_7" function="internal">
- <lane id=":950640531_7_0" index="0" speed="16.67" length="6.47" shape="951.21,1189.93 950.90,1190.21 949.87,1190.86 948.13,1191.89 945.68,1193.28"/>
- </edge>
- <edge id=":950640531_8" function="internal">
- <lane id=":950640531_8_0" index="0" speed="5.56" length="4.82" shape="951.21,1189.93 951.04,1191.41 950.50,1192.15 949.57,1192.16 948.27,1191.44"/>
- </edge>
- <edge id=":950640550_0" function="internal">
- <lane id=":950640550_0_0" index="0" speed="27.78" length="5.04" shape="915.45,1214.00 914.61,1212.91 913.62,1212.36 912.47,1212.34 911.18,1212.86"/>
- </edge>
- <edge id=":950640550_1" function="internal">
- <lane id=":950640550_1_0" index="0" speed="27.78" length="4.63" shape="918.32,1212.38 913.85,1211.18"/>
- </edge>
- <edge id=":950640550_2" function="internal">
- <lane id=":950640550_2_0" index="0" speed="27.78" length="9.55" shape="919.47,1208.12 911.18,1212.86"/>
- </edge>
- <edge id=":950640550_3" function="internal">
- <lane id=":950640550_3_0" index="0" speed="27.78" length="3.13" shape="919.47,1208.12 918.29,1208.78 917.42,1209.22 916.88,1209.44 916.66,1209.45"/>
- </edge>
- <edge id=":950640558_0" function="internal">
- <lane id=":950640558_0_0" index="0" speed="27.78" length="5.57" shape="930.59,1201.79 929.45,1202.69 928.85,1203.78 928.78,1205.08 929.25,1206.58"/>
- </edge>
- <edge id=":950640558_1" function="internal">
- <lane id=":950640558_1_0" index="0" speed="27.78" length="9.79" shape="930.59,1201.79 922.08,1206.63"/>
- </edge>
- <edge id=":950640558_2" function="internal">
- <lane id=":950640558_2_0" index="0" speed="27.78" length="4.73" shape="927.83,1203.51 926.26,1207.96"/>
- </edge>
- <edge id=":950640558_3" function="internal">
- <lane id=":950640558_3_0" index="0" speed="27.78" length="3.27" shape="924.84,1204.89 924.69,1205.05 924.18,1205.39 923.31,1205.92 922.08,1206.63"/>
- </edge>
- <edge id=":950640617_0" function="internal">
- <lane id=":950640617_0_0" index="0" speed="27.78" length="4.82" shape="276.62,1619.29 276.64,1617.80 277.11,1617.00 278.03,1616.90 279.39,1617.50"/>
- </edge>
- <edge id=":951739420_0" function="internal">
- <lane id=":951739420_0_0" index="0" speed="5.56" length="9.50" shape="838.54,1317.02 834.06,1308.65"/>
- </edge>
- <edge id=":951739420_1" function="internal">
- <lane id=":951739420_1_0" index="0" speed="5.56" length="10.32" shape="838.54,1317.02 837.58,1314.38 837.69,1312.05 838.89,1310.04 841.17,1308.35"/>
- </edge>
- <edge id=":951739420_2" function="internal">
- <lane id=":951739420_2_0" index="0" speed="5.56" length="4.82" shape="838.54,1317.02 838.69,1315.54 839.22,1314.79 840.14,1314.77 841.45,1315.47"/>
- </edge>
- <edge id=":951739420_3" function="internal">
- <lane id=":951739420_3_0" index="0" speed="5.56" length="5.02" shape="842.74,1311.25 841.63,1312.07 841.04,1313.05 840.98,1314.18 841.45,1315.47"/>
- </edge>
- <edge id=":951739420_4" function="internal">
- <lane id=":951739420_4_0" index="0" speed="5.56" length="10.35" shape="842.74,1311.25 840.08,1312.24 837.75,1312.13 835.74,1310.94 834.06,1308.65"/>
- </edge>
- <edge id=":951739420_5" function="internal">
- <lane id=":951739420_5_0" index="0" speed="5.56" length="4.82" shape="842.74,1311.25 841.26,1311.11 840.50,1310.59 840.47,1309.66 841.17,1308.35"/>
- </edge>
- <edge id=":951739420_6" function="internal">
- <lane id=":951739420_6_0" index="0" speed="5.56" length="5.01" shape="836.96,1307.09 837.78,1308.20 838.75,1308.78 839.88,1308.83 841.17,1308.35"/>
- </edge>
- <edge id=":951739420_7" function="internal">
- <lane id=":951739420_7_0" index="0" speed="5.56" length="9.50" shape="836.96,1307.09 841.45,1315.47"/>
- </edge>
- <edge id=":951739420_8" function="internal">
- <lane id=":951739420_8_0" index="0" speed="5.56" length="4.82" shape="836.96,1307.09 836.82,1308.57 836.29,1309.33 835.37,1309.35 834.06,1308.65"/>
- </edge>
- <edge id=":951739443_0" function="internal">
- <lane id=":951739443_0_0" index="0" speed="27.78" length="6.54" shape="1158.46,1056.46 1155.43,1050.67"/>
- </edge>
- <edge id=":951739443_1" function="internal">
- <lane id=":951739443_1_0" index="0" speed="27.78" length="6.54" shape="1161.39,1054.93 1158.36,1049.14"/>
- </edge>
- <edge id=":951739443_2" function="internal">
- <lane id=":951739443_2_0" index="0" speed="27.78" length="4.09" shape="1161.39,1054.93 1160.62,1053.68 1159.86,1052.91 1159.12,1052.61 1158.40,1052.79"/>
- </edge>
- <edge id=":951739443_3" function="internal">
- <lane id=":951739443_3_0" index="0" speed="27.78" length="5.36" shape="1154.24,1055.27 1155.34,1054.37 1155.91,1053.30 1155.94,1052.07 1155.43,1050.67"/>
- </edge>
- <edge id=":951739443_4" function="internal">
- <lane id=":951739443_4_0" index="0" speed="27.78" length="4.84" shape="1154.24,1055.27 1158.40,1052.79"/>
- </edge>
- <edge id=":951739458_0" function="internal">
- <lane id=":951739458_0_0" index="0" speed="5.56" length="9.50" shape="846.77,1332.39 842.29,1324.01"/>
- </edge>
- <edge id=":951739458_1" function="internal">
- <lane id=":951739458_1_0" index="0" speed="5.56" length="10.38" shape="846.77,1332.39 845.79,1329.71 845.92,1327.37 847.14,1325.37 849.45,1323.71"/>
- </edge>
- <edge id=":951739458_2" function="internal">
- <lane id=":951739458_2_0" index="0" speed="5.56" length="4.82" shape="846.77,1332.39 846.91,1330.91 847.45,1330.15 848.37,1330.13 849.68,1330.83"/>
- </edge>
- <edge id=":951739458_3" function="internal">
- <lane id=":951739458_3_0" index="0" speed="5.56" length="5.01" shape="850.97,1326.64 849.86,1327.44 849.27,1328.41 849.21,1329.54 849.68,1330.83"/>
- </edge>
- <edge id=":951739458_4" function="internal">
- <lane id=":951739458_4_0" index="0" speed="5.56" length="10.32" shape="850.97,1326.64 848.30,1327.59 845.95,1327.46 843.95,1326.27 842.29,1324.01"/>
- </edge>
- <edge id=":951739458_5" function="internal">
- <lane id=":951739458_5_0" index="0" speed="5.56" length="4.82" shape="850.97,1326.64 849.50,1326.48 848.75,1325.94 848.74,1325.02 849.45,1323.71"/>
- </edge>
- <edge id=":951739458_6" function="internal">
- <lane id=":951739458_6_0" index="0" speed="5.56" length="5.05" shape="845.19,1322.45 846.01,1323.55 846.99,1324.13 848.14,1324.18 849.45,1323.71"/>
- </edge>
- <edge id=":951739458_7" function="internal">
- <lane id=":951739458_7_0" index="0" speed="5.56" length="9.50" shape="845.19,1322.45 849.68,1330.83"/>
- </edge>
- <edge id=":951739458_8" function="internal">
- <lane id=":951739458_8_0" index="0" speed="5.56" length="4.82" shape="845.19,1322.45 845.05,1323.94 844.52,1324.69 843.60,1324.71 842.29,1324.01"/>
- </edge>
- <edge id=":951739511_0" function="internal">
- <lane id=":951739511_0_0" index="0" speed="5.56" length="9.50" shape="854.72,1347.24 850.24,1338.87"/>
- </edge>
- <edge id=":951739511_1" function="internal">
- <lane id=":951739511_1_0" index="0" speed="5.56" length="10.37" shape="854.72,1347.24 853.75,1344.56 853.87,1342.23 855.08,1340.23 857.40,1338.57"/>
- </edge>
- <edge id=":951739511_2" function="internal">
- <lane id=":951739511_2_0" index="0" speed="5.56" length="4.82" shape="854.72,1347.24 854.86,1345.76 855.40,1345.01 856.32,1344.98 857.63,1345.68"/>
- </edge>
- <edge id=":951739511_3" function="internal">
- <lane id=":951739511_3_0" index="0" speed="5.56" length="10.32" shape="858.92,1341.49 856.25,1342.44 853.91,1342.32 851.91,1341.13 850.24,1338.87"/>
- </edge>
- <edge id=":951739511_4" function="internal">
- <lane id=":951739511_4_0" index="0" speed="5.56" length="5.01" shape="858.92,1341.49 857.81,1342.30 857.22,1343.26 857.16,1344.39 857.63,1345.68"/>
- </edge>
- <edge id=":951739511_5" function="internal">
- <lane id=":951739511_5_0" index="0" speed="5.56" length="4.82" shape="858.92,1341.49 857.44,1341.33 856.70,1340.79 856.68,1339.87 857.40,1338.57"/>
- </edge>
- <edge id=":951739511_6" function="internal">
- <lane id=":951739511_6_0" index="0" speed="5.56" length="5.04" shape="853.15,1337.31 853.96,1338.41 854.94,1338.98 856.08,1339.04 857.40,1338.57"/>
- </edge>
- <edge id=":951739511_7" function="internal">
- <lane id=":951739511_7_0" index="0" speed="5.56" length="9.50" shape="853.15,1337.31 857.63,1345.68"/>
- </edge>
- <edge id=":951739511_8" function="internal">
- <lane id=":951739511_8_0" index="0" speed="5.56" length="4.82" shape="853.15,1337.31 853.00,1338.79 852.47,1339.54 851.55,1339.57 850.24,1338.87"/>
- </edge>
- <edge id=":951739549_0" function="internal">
- <lane id=":951739549_0_0" index="0" speed="5.56" length="6.70" shape="876.14,1277.21 875.02,1276.58 873.60,1276.47 871.88,1276.87 869.86,1277.79"/>
- </edge>
- <edge id=":951739549_1" function="internal">
- <lane id=":951739549_1_0" index="0" speed="5.56" length="9.91" shape="876.14,1277.21 868.78,1270.58"/>
- </edge>
- <edge id=":951739549_2" function="internal">
- <lane id=":951739549_2_0" index="0" speed="5.56" length="4.82" shape="876.14,1277.21 875.78,1275.77 876.03,1274.88 876.90,1274.55 878.37,1274.77"/>
- </edge>
- <edge id=":951739549_3" function="internal">
- <lane id=":951739549_3_0" index="0" speed="5.56" length="9.94" shape="870.98,1268.12 878.37,1274.77"/>
- </edge>
- <edge id=":951739549_4" function="internal">
- <lane id=":951739549_4_0" index="0" speed="5.56" length="12.27" shape="870.98,1268.12 873.27,1270.84 873.85,1273.35 872.71,1275.67 869.86,1277.79"/>
- </edge>
- <edge id=":951739549_5" function="internal">
- <lane id=":951739549_5_0" index="0" speed="5.56" length="4.82" shape="870.98,1268.12 871.35,1269.56 871.11,1270.45 870.25,1270.79 868.78,1270.58"/>
- </edge>
- <edge id=":951739549_6" function="internal">
- <lane id=":951739549_6_0" index="0" speed="5.56" length="5.48" shape="868.28,1274.90 869.55,1273.95 870.06,1272.91 869.80,1271.79 868.78,1270.58"/>
- </edge>
- <edge id=":951739549_7" function="internal">
- <lane id=":951739549_7_0" index="0" speed="5.56" length="10.79" shape="868.28,1274.90 871.31,1273.58 874.00,1273.12 876.35,1273.52 878.37,1274.77"/>
- </edge>
- <edge id=":951739549_8" function="internal">
- <lane id=":951739549_8_0" index="0" speed="5.56" length="4.82" shape="868.28,1274.90 869.76,1275.03 870.52,1275.55 870.55,1276.48 869.86,1277.79"/>
- </edge>
- <edge id=":951739557_0" function="internal">
- <lane id=":951739557_0_0" index="0" speed="27.78" length="3.95" shape="1168.61,1043.26 1169.16,1044.52 1169.34,1045.54 1169.17,1046.31 1168.63,1046.83"/>
- </edge>
- <edge id=":951739557_1" function="internal">
- <lane id=":951739557_1_0" index="0" speed="27.78" length="6.40" shape="1168.61,1043.26 1171.60,1048.92"/>
- </edge>
- <edge id=":951739557_2" function="internal">
- <lane id=":951739557_2_0" index="0" speed="27.78" length="6.40" shape="1165.69,1044.80 1168.68,1050.46"/>
- </edge>
- <edge id=":951739557_3" function="internal">
- <lane id=":951739557_3_0" index="0" speed="27.78" length="4.05" shape="1165.13,1048.87 1168.63,1046.83"/>
- </edge>
- <edge id=":951739557_4" function="internal">
- <lane id=":951739557_4_0" index="0" speed="27.78" length="4.45" shape="1165.13,1048.87 1166.13,1048.51 1167.05,1048.66 1167.90,1049.31 1168.68,1050.46"/>
- </edge>
- <edge id=":951739568_0" function="internal">
- <lane id=":951739568_0_0" index="0" speed="5.56" length="6.72" shape="889.09,1288.80 887.95,1288.21 886.52,1288.14 884.79,1288.56 882.76,1289.49"/>
- </edge>
- <edge id=":951739568_1" function="internal">
- <lane id=":951739568_1_0" index="0" speed="5.56" length="9.85" shape="889.09,1288.80 881.71,1282.28"/>
- </edge>
- <edge id=":951739568_2" function="internal">
- <lane id=":951739568_2_0" index="0" speed="5.56" length="4.82" shape="889.09,1288.80 888.67,1287.37 888.89,1286.47 889.74,1286.11 891.21,1286.27"/>
- </edge>
- <edge id=":951739568_3" function="internal">
- <lane id=":951739568_3_0" index="0" speed="5.56" length="9.72" shape="883.93,1279.84 891.21,1286.27"/>
- </edge>
- <edge id=":951739568_4" function="internal">
- <lane id=":951739568_4_0" index="0" speed="5.56" length="12.22" shape="883.93,1279.84 886.18,1282.56 886.74,1285.07 885.60,1287.38 882.76,1289.49"/>
- </edge>
- <edge id=":951739568_5" function="internal">
- <lane id=":951739568_5_0" index="0" speed="5.56" length="4.82" shape="883.93,1279.84 884.29,1281.28 884.04,1282.17 883.18,1282.50 881.71,1282.28"/>
- </edge>
- <edge id=":951739568_6" function="internal">
- <lane id=":951739568_6_0" index="0" speed="5.56" length="5.46" shape="881.19,1286.59 882.46,1285.65 882.97,1284.62 882.72,1283.49 881.71,1282.28"/>
- </edge>
- <edge id=":951739568_7" function="internal">
- <lane id=":951739568_7_0" index="0" speed="5.56" length="10.67" shape="881.19,1286.59 884.18,1285.28 886.86,1284.79 889.20,1285.12 891.21,1286.27"/>
- </edge>
- <edge id=":951739568_8" function="internal">
- <lane id=":951739568_8_0" index="0" speed="5.56" length="4.82" shape="881.19,1286.59 882.67,1286.72 883.43,1287.25 883.46,1288.17 882.76,1289.49"/>
- </edge>
- <edge id=":951739649_0" function="internal">
- <lane id=":951739649_0_0" index="0" speed="5.56" length="6.41" shape="1171.69,1048.70 1168.65,1043.05"/>
- </edge>
- <edge id=":951739649_1" function="internal">
- <lane id=":951739649_1_0" index="0" speed="16.67" length="7.98" shape="1171.69,1048.70 1171.40,1047.31 1171.99,1045.85 1173.45,1044.30 1175.79,1042.67"/>
- </edge>
- <edge id=":951739649_2" function="internal">
- <lane id=":951739649_2_0" index="0" speed="5.56" length="4.82" shape="1171.69,1048.70 1171.82,1047.22 1172.35,1046.46 1173.27,1046.43 1174.59,1047.13"/>
- </edge>
- <edge id=":951739649_3" function="internal">
- <lane id=":951739649_3_0" index="0" speed="16.67" length="5.06" shape="1171.57,1041.50 1172.39,1042.62 1173.37,1043.19 1174.51,1043.21 1175.79,1042.67"/>
- </edge>
- <edge id=":951739649_4" function="internal">
- <lane id=":951739649_4_0" index="0" speed="5.56" length="6.39" shape="1171.57,1041.50 1174.59,1047.13"/>
- </edge>
- <edge id=":951739649_5" function="internal">
- <lane id=":951739649_5_0" index="0" speed="5.56" length="4.82" shape="1171.57,1041.50 1171.42,1042.98 1170.89,1043.73 1169.96,1043.75 1168.65,1043.05"/>
- </edge>
- <edge id=":951739649_6" function="internal">
- <lane id=":951739649_6_0" index="0" speed="16.67" length="4.06" shape="1171.65,1045.16 1170.92,1045.33 1170.18,1045.03 1169.42,1044.27 1168.65,1043.05"/>
- </edge>
- <edge id=":951739649_7" function="internal">
- <lane id=":951739649_7_0" index="0" speed="27.78" length="4.84" shape="1171.65,1045.16 1175.79,1042.67"/>
- </edge>
- <edge id=":951739649_8" function="internal">
- <lane id=":951739649_8_0" index="0" speed="16.67" length="3.93" shape="1171.65,1045.16 1172.37,1044.98 1173.10,1045.25 1173.84,1045.97 1174.59,1047.13"/>
- </edge>
- <edge id=":951739684_0" function="internal">
- <lane id=":951739684_0_0" index="0" speed="16.67" length="4.32" shape="1180.64,1064.32 1179.80,1062.95 1179.40,1061.86 1179.45,1061.05 1179.95,1060.50"/>
- </edge>
- <edge id=":951739684_1" function="internal">
- <lane id=":951739684_1_0" index="0" speed="5.56" length="6.80" shape="1180.64,1064.32 1177.02,1058.56"/>
- </edge>
- <edge id=":951739684_2" function="internal">
- <lane id=":951739684_2_0" index="0" speed="5.56" length="4.82" shape="1180.64,1064.32 1180.59,1062.83 1181.03,1062.02 1181.94,1061.87 1183.33,1062.41"/>
- </edge>
- <edge id=":951739684_3" function="internal">
- <lane id=":951739684_3_0" index="0" speed="16.67" length="5.15" shape="1184.32,1058.13 1183.17,1058.99 1182.62,1059.99 1182.67,1061.13 1183.33,1062.41"/>
- </edge>
- <edge id=":951739684_4" function="internal">
- <lane id=":951739684_4_0" index="0" speed="27.78" length="4.97" shape="1184.32,1058.13 1179.95,1060.50"/>
- </edge>
- <edge id=":951739684_5" function="internal">
- <lane id=":951739684_5_0" index="0" speed="16.67" length="8.04" shape="1184.32,1058.13 1181.68,1059.34 1179.59,1059.82 1178.03,1059.55 1177.02,1058.56"/>
- </edge>
- <edge id=":951739684_6" function="internal">
- <lane id=":951739684_6_0" index="0" speed="5.56" length="6.40" shape="1179.93,1056.99 1183.33,1062.41"/>
- </edge>
- <edge id=":951739684_7" function="internal">
- <lane id=":951739684_7_0" index="0" speed="16.67" length="3.89" shape="1179.93,1056.99 1180.47,1058.22 1180.66,1059.21 1180.49,1059.98 1179.95,1060.50"/>
- </edge>
- <edge id=":951739684_8" function="internal">
- <lane id=":951739684_8_0" index="0" speed="5.56" length="4.82" shape="1179.93,1056.99 1179.79,1058.47 1179.26,1059.22 1178.34,1059.25 1177.02,1058.56"/>
- </edge>
- <edge id=":951739693_0" function="internal">
- <lane id=":951739693_0_0" index="0" speed="13.89" length="5.03" shape="818.11,1278.86 817.29,1277.75 816.31,1277.18 815.18,1277.14 813.90,1277.64"/>
- </edge>
- <edge id=":951739693_1" function="internal">
- <lane id=":951739693_1_0" index="0" speed="5.56" length="4.82" shape="818.11,1278.86 818.25,1277.38 818.78,1276.63 819.70,1276.60 821.02,1277.30"/>
- </edge>
- <edge id=":951739693_2" function="internal">
- <lane id=":951739693_2_0" index="0" speed="13.89" length="5.09" shape="822.17,1272.97 821.10,1273.81 820.55,1274.81 820.52,1275.97 821.02,1277.30"/>
- </edge>
- <edge id=":951739693_3" function="internal">
- <lane id=":951739693_3_0" index="0" speed="22.22" length="9.50" shape="822.17,1272.97 813.90,1277.64"/>
- </edge>
- <edge id=":951739718_0" function="internal">
- <lane id=":951739718_0_0" index="0" speed="27.78" length="4.00" shape="1176.81,1062.29 1177.53,1062.11 1178.26,1062.39 1179.01,1063.13 1179.76,1064.34"/>
- </edge>
- <edge id=":951739718_1" function="internal">
- <lane id=":951739718_1_0" index="0" speed="27.78" length="4.16" shape="1176.81,1062.29 1173.19,1064.34"/>
- </edge>
- <edge id=":951739718_2" function="internal">
- <lane id=":951739718_2_0" index="0" speed="27.78" length="6.39" shape="1176.77,1058.69 1179.76,1064.34"/>
- </edge>
- <edge id=":951739718_3" function="internal">
- <lane id=":951739718_3_0" index="0" speed="27.78" length="6.39" shape="1173.85,1060.23 1176.84,1065.88"/>
- </edge>
- <edge id=":951739718_4" function="internal">
- <lane id=":951739718_4_0" index="0" speed="27.78" length="4.69" shape="1173.85,1060.23 1174.38,1061.56 1174.44,1062.69 1174.05,1063.62 1173.19,1064.34"/>
- </edge>
- <edge id=":951739766_0" function="internal">
- <lane id=":951739766_0_0" index="0" speed="5.56" length="9.50" shape="830.80,1302.57 826.31,1294.19"/>
- </edge>
- <edge id=":951739766_1" function="internal">
- <lane id=":951739766_1_0" index="0" speed="5.56" length="10.32" shape="830.80,1302.57 829.83,1299.93 829.95,1297.60 831.15,1295.59 833.42,1293.89"/>
- </edge>
- <edge id=":951739766_2" function="internal">
- <lane id=":951739766_2_0" index="0" speed="5.56" length="4.82" shape="830.80,1302.57 830.94,1301.09 831.47,1300.34 832.39,1300.31 833.71,1301.01"/>
- </edge>
- <edge id=":951739766_3" function="internal">
- <lane id=":951739766_3_0" index="0" speed="5.56" length="5.03" shape="835.00,1296.79 833.89,1297.62 833.30,1298.60 833.24,1299.73 833.71,1301.01"/>
- </edge>
- <edge id=":951739766_4" function="internal">
- <lane id=":951739766_4_0" index="0" speed="5.56" length="10.36" shape="835.00,1296.79 832.34,1297.78 830.00,1297.68 827.99,1296.49 826.31,1294.19"/>
- </edge>
- <edge id=":951739766_5" function="internal">
- <lane id=":951739766_5_0" index="0" speed="5.56" length="4.82" shape="835.00,1296.79 833.52,1296.66 832.76,1296.13 832.73,1295.21 833.42,1293.89"/>
- </edge>
- <edge id=":951739766_6" function="internal">
- <lane id=":951739766_6_0" index="0" speed="5.56" length="5.01" shape="829.22,1292.64 830.03,1293.74 831.00,1294.32 832.13,1294.37 833.42,1293.89"/>
- </edge>
- <edge id=":951739766_7" function="internal">
- <lane id=":951739766_7_0" index="0" speed="5.56" length="9.50" shape="829.22,1292.64 833.71,1301.01"/>
- </edge>
- <edge id=":951739766_8" function="internal">
- <lane id=":951739766_8_0" index="0" speed="5.56" length="4.82" shape="829.22,1292.64 829.08,1294.12 828.54,1294.87 827.62,1294.90 826.31,1294.19"/>
- </edge>
- <edge id=":951739771_0" function="internal">
- <lane id=":951739771_0_0" index="0" speed="25.00" length="7.18" shape="1149.39,1666.22 1143.21,1662.57"/>
- </edge>
- <edge id=":951739771_1" function="internal">
- <lane id=":951739771_1_0" index="0" speed="27.78" length="7.61" shape="1149.39,1666.22 1145.87,1659.47"/>
- </edge>
- <edge id=":951739771_2" function="internal">
- <lane id=":951739771_2_0" index="0" speed="27.78" length="7.56" shape="1152.29,1664.65 1148.80,1657.95"/>
- </edge>
- <edge id=":951739776_0" function="internal">
- <lane id=":951739776_0_0" index="0" speed="27.78" length="5.03" shape="1166.48,1071.76 1165.67,1070.64 1164.70,1070.06 1163.57,1070.02 1162.28,1070.52"/>
- </edge>
- <edge id=":951739776_1" function="internal">
- <lane id=":951739776_1_0" index="0" speed="27.78" length="6.41" shape="1166.48,1071.76 1163.51,1066.09"/>
- </edge>
- <edge id=":951739776_2" function="internal">
- <lane id=":951739776_2_0" index="0" speed="27.78" length="6.41" shape="1169.40,1070.23 1166.43,1064.55"/>
- </edge>
- <edge id=":951739776_3" function="internal">
- <lane id=":951739776_3_0" index="0" speed="27.78" length="4.80" shape="1166.46,1068.17 1162.28,1070.52"/>
- </edge>
- <edge id=":951739776_4" function="internal">
- <lane id=":951739776_4_0" index="0" speed="27.78" length="3.99" shape="1166.46,1068.17 1167.00,1067.64 1167.17,1066.86 1166.98,1065.83 1166.43,1064.55"/>
- </edge>
- <edge id=":956116503_0" function="internal">
- <lane id=":956116503_0_0" index="0" speed="22.22" length="5.09" shape="759.75,1851.15 758.91,1850.00 757.93,1849.37 756.79,1849.28 755.50,1849.71"/>
- </edge>
- <edge id=":956116503_1" function="internal">
- <lane id=":956116503_1_0" index="0" speed="22.22" length="7.04" shape="759.75,1851.15 758.50,1848.59 757.81,1846.66 757.71,1845.35 758.17,1844.66"/>
- </edge>
- <edge id=":956116503_2" function="internal">
- <lane id=":956116503_2_0" index="0" speed="22.22" length="4.82" shape="759.75,1851.15 759.89,1849.66 760.42,1848.91 761.34,1848.88 762.65,1849.58"/>
- </edge>
- <edge id=":956116503_3" function="internal">
- <lane id=":956116503_3_0" index="0" speed="22.22" length="3.97" shape="759.67,1847.59 760.42,1847.43 761.17,1847.71 761.91,1848.42 762.65,1849.58"/>
- </edge>
- <edge id=":956116503_4" function="internal">
- <lane id=":956116503_4_0" index="0" speed="22.22" length="4.68" shape="759.67,1847.59 755.50,1849.71"/>
- </edge>
- <edge id=":956116503_5" function="internal">
- <lane id=":956116503_5_0" index="0" speed="22.22" length="2.41" shape="759.67,1847.59 758.20,1847.42 757.45,1846.88"/>
- </edge>
- <edge id=":956116503_9" function="internal">
- <lane id=":956116503_9_0" index="0" speed="22.22" length="2.41" shape="757.45,1846.88 757.44,1845.96 758.17,1844.66"/>
- </edge>
- <edge id=":956116503_6" function="internal">
- <lane id=":956116503_6_0" index="0" speed="22.22" length="4.66" shape="754.01,1846.76 758.17,1844.66"/>
- </edge>
- <edge id=":956116503_7" function="internal">
- <lane id=":956116503_7_0" index="0" speed="22.22" length="8.45" shape="754.01,1846.76 756.65,1845.87 758.97,1846.05 760.97,1847.28 761.55,1848.08"/>
- </edge>
- <edge id=":956116503_10" function="internal">
- <lane id=":956116503_10_0" index="0" speed="22.22" length="1.86" shape="761.55,1848.08 762.65,1849.58"/>
- </edge>
- <edge id=":956116503_8" function="internal">
- <lane id=":956116503_8_0" index="0" speed="22.22" length="2.41" shape="754.01,1846.76 755.49,1846.94 756.23,1847.49"/>
- </edge>
- <edge id=":956116503_11" function="internal">
- <lane id=":956116503_11_0" index="0" speed="22.22" length="2.41" shape="756.23,1847.49 756.23,1848.41 755.50,1849.71"/>
- </edge>
- <edge id=":966097830_0" function="internal">
- <lane id=":966097830_0_0" index="0" speed="5.56" length="2.61" shape="828.20,1462.74 827.79,1462.15 827.30,1461.83 826.71,1461.79 826.03,1462.03"/>
- </edge>
- <edge id=":966097830_1" function="internal">
- <lane id=":966097830_1_0" index="0" speed="5.56" length="2.41" shape="828.20,1462.74 828.39,1461.27 828.95,1460.53"/>
- </edge>
- <edge id=":966097830_4" function="internal">
- <lane id=":966097830_4_0" index="0" speed="5.56" length="2.41" shape="828.95,1460.53 829.87,1460.54 831.16,1461.29"/>
- </edge>
- <edge id=":966097830_2" function="internal">
- <lane id=":966097830_2_0" index="0" speed="5.56" length="8.01" shape="824.52,1459.09 826.60,1458.37 828.40,1458.50 829.92,1459.47 831.16,1461.29"/>
- </edge>
- <edge id=":966097830_3" function="internal">
- <lane id=":966097830_3_0" index="0" speed="5.56" length="2.41" shape="824.52,1459.09 826.00,1459.26 826.74,1459.80"/>
- </edge>
- <edge id=":966097830_5" function="internal">
- <lane id=":966097830_5_0" index="0" speed="5.56" length="2.41" shape="826.74,1459.80 826.75,1460.73 826.03,1462.03"/>
- </edge>
- <edge id=":966097837_0" function="internal">
- <lane id=":966097837_0_0" index="0" speed="5.56" length="5.36" shape="814.31,1471.55 813.45,1470.23 812.45,1469.38 811.32,1468.98 810.05,1469.05"/>
- </edge>
- <edge id=":966097837_1" function="internal">
- <lane id=":966097837_1_0" index="0" speed="5.56" length="10.33" shape="814.31,1471.55 813.39,1468.87 813.53,1466.55 814.76,1464.56 817.07,1462.92"/>
- </edge>
- <edge id=":966097837_2" function="internal">
- <lane id=":966097837_2_0" index="0" speed="5.56" length="4.82" shape="814.31,1471.55 814.48,1470.07 815.02,1469.32 815.95,1469.31 817.25,1470.03"/>
- </edge>
- <edge id=":966097837_3" function="internal">
- <lane id=":966097837_3_0" index="0" speed="5.56" length="9.11" shape="818.58,1465.86 810.05,1469.05"/>
- </edge>
- <edge id=":966097837_4" function="internal">
- <lane id=":966097837_4_0" index="0" speed="5.56" length="5.00" shape="818.58,1465.86 817.46,1466.65 816.87,1467.61 816.80,1468.74 817.25,1470.03"/>
- </edge>
- <edge id=":966097837_5" function="internal">
- <lane id=":966097837_5_0" index="0" speed="5.56" length="4.82" shape="818.58,1465.86 817.10,1465.69 816.36,1465.15 816.35,1464.22 817.07,1462.92"/>
- </edge>
- <edge id=":966097837_6" function="internal">
- <lane id=":966097837_6_0" index="0" speed="5.56" length="8.27" shape="809.33,1465.83 817.07,1462.92"/>
- </edge>
- <edge id=":966097837_7" function="internal">
- <lane id=":966097837_7_0" index="0" speed="5.56" length="9.73" shape="809.33,1465.83 811.76,1465.66 813.89,1466.30 815.72,1467.76 817.25,1470.03"/>
- </edge>
- <edge id=":966097837_8" function="internal">
- <lane id=":966097837_8_0" index="0" speed="5.56" length="4.82" shape="809.33,1465.83 810.72,1466.36 811.30,1467.08 811.08,1467.97 810.05,1469.05"/>
- </edge>
- <edge id=":966097869_0" function="internal">
- <lane id=":966097869_0_0" index="0" speed="13.89" length="5.01" shape="751.13,1458.72 749.75,1458.70 748.71,1459.13 747.99,1460.00 747.60,1461.32"/>
- </edge>
- <edge id=":966097869_1" function="internal">
- <lane id=":966097869_1_0" index="0" speed="13.89" length="10.32" shape="751.13,1458.72 748.41,1457.89 746.60,1456.41 745.70,1454.26 745.71,1451.44"/>
- </edge>
- <edge id=":966097869_2" function="internal">
- <lane id=":966097869_2_0" index="0" speed="5.56" length="4.82" shape="751.13,1458.72 750.03,1457.71 749.75,1456.84 750.29,1456.08 751.63,1455.46"/>
- </edge>
- <edge id=":966097869_3" function="internal">
- <lane id=":966097869_3_0" index="0" speed="13.89" length="5.04" shape="748.98,1451.92 748.97,1453.29 749.42,1454.33 750.30,1455.06 751.63,1455.46"/>
- </edge>
- <edge id=":966097869_4" function="internal">
- <lane id=":966097869_4_0" index="0" speed="22.22" length="9.50" shape="748.98,1451.92 747.60,1461.32"/>
- </edge>
- <edge id=":966097869_5" function="internal">
- <lane id=":966097869_5_0" index="0" speed="22.22" length="2.41" shape="748.98,1451.92 747.98,1453.03 747.10,1453.32"/>
- </edge>
- <edge id=":966097869_9" function="internal">
- <lane id=":966097869_9_0" index="0" speed="22.22" length="2.41" shape="747.10,1453.32 746.35,1452.79 745.71,1451.44"/>
- </edge>
- <edge id=":966097869_6" function="internal">
- <lane id=":966097869_6_0" index="0" speed="22.22" length="9.50" shape="744.33,1460.84 745.71,1451.44"/>
- </edge>
- <edge id=":966097869_7" function="internal">
- <lane id=":966097869_7_0" index="0" speed="13.89" length="7.14" shape="744.33,1460.84 745.14,1458.12 746.63,1456.31 748.44,1455.57"/>
- </edge>
- <edge id=":966097869_10" function="internal">
- <lane id=":966097869_10_0" index="0" speed="13.89" length="3.22" shape="748.44,1455.57 748.79,1455.42 751.63,1455.46"/>
- </edge>
- <edge id=":966097869_8" function="internal">
- <lane id=":966097869_8_0" index="0" speed="22.22" length="2.41" shape="744.33,1460.84 745.33,1459.74 746.20,1459.45"/>
- </edge>
- <edge id=":966097869_11" function="internal">
- <lane id=":966097869_11_0" index="0" speed="22.22" length="2.41" shape="746.20,1459.45 746.96,1459.98 747.60,1461.32"/>
- </edge>
- <edge id=":966132112_0" function="internal">
- <lane id=":966132112_0_0" index="0" speed="13.89" length="5.04" shape="1201.76,1572.02 1202.59,1573.15 1203.56,1573.76 1204.70,1573.86 1205.98,1573.45"/>
- </edge>
- <edge id=":966132112_1" function="internal">
- <lane id=":966132112_1_0" index="0" speed="22.22" length="6.18" shape="1200.45,1576.20 1205.98,1573.45"/>
- </edge>
- <edge id=":966132131_0" function="internal">
- <lane id=":966132131_0_0" index="0" speed="13.89" length="5.01" shape="1318.70,1388.90 1317.88,1387.80 1316.91,1387.22 1315.78,1387.18 1314.49,1387.66"/>
- </edge>
- <edge id=":966132131_1" function="internal">
- <lane id=":966132131_1_0" index="0" speed="22.22" length="6.18" shape="1318.70,1388.90 1315.79,1383.44"/>
- </edge>
- <edge id=":966193793_0" function="internal">
- <lane id=":966193793_0_0" index="0" speed="8.33" length="5.06" shape="1416.89,1295.03 1416.70,1293.65 1416.13,1292.65 1415.16,1292.04 1413.82,1291.82"/>
- </edge>
- <edge id=":966193793_1" function="internal">
- <lane id=":966193793_1_0" index="0" speed="8.33" length="10.39" shape="1416.89,1295.03 1417.30,1292.21 1418.51,1290.21 1420.54,1289.02 1423.37,1288.66"/>
- </edge>
- <edge id=":966193793_2" function="internal">
- <lane id=":966193793_2_0" index="0" speed="8.33" length="4.82" shape="1416.89,1295.03 1417.72,1293.80 1418.54,1293.39 1419.37,1293.80 1420.19,1295.04"/>
- </edge>
- <edge id=":966193793_3" function="internal">
- <lane id=":966193793_3_0" index="0" speed="8.33" length="5.02" shape="1423.32,1291.96 1421.95,1292.13 1420.98,1292.71 1420.39,1293.67 1420.19,1295.04"/>
- </edge>
- <edge id=":966193793_4" function="internal">
- <lane id=":966193793_4_0" index="0" speed="8.33" length="9.50" shape="1423.32,1291.96 1413.82,1291.82"/>
- </edge>
- <edge id=":966193793_5" function="internal">
- <lane id=":966193793_5_0" index="0" speed="8.33" length="4.82" shape="1423.32,1291.96 1422.09,1291.12 1421.69,1290.29 1422.12,1289.47 1423.37,1288.66"/>
- </edge>
- <edge id=":966193793_6" function="internal">
- <lane id=":966193793_6_0" index="0" speed="8.33" length="9.50" shape="1413.87,1288.52 1423.37,1288.66"/>
- </edge>
- <edge id=":966193793_7" function="internal">
- <lane id=":966193793_7_0" index="0" speed="8.33" length="10.32" shape="1413.87,1288.52 1416.64,1288.96 1418.61,1290.20 1419.80,1292.22 1420.19,1295.04"/>
- </edge>
- <edge id=":966193793_8" function="internal">
- <lane id=":966193793_8_0" index="0" speed="8.33" length="4.82" shape="1413.87,1288.52 1415.09,1289.37 1415.49,1290.20 1415.07,1291.02 1413.82,1291.82"/>
- </edge>
- <edge id=":966193796_0" function="internal">
- <lane id=":966193796_0_0" index="0" speed="22.22" length="5.06" shape="1269.57,1022.76 1268.77,1021.62 1267.81,1021.02 1266.68,1020.98 1265.38,1021.49"/>
- </edge>
- <edge id=":966193796_1" function="internal">
- <lane id=":966193796_1_0" index="0" speed="22.22" length="2.41" shape="1269.57,1022.76 1269.75,1021.29 1270.31,1020.55"/>
- </edge>
- <edge id=":966193796_4" function="internal">
- <lane id=":966193796_4_0" index="0" speed="22.22" length="2.41" shape="1270.31,1020.55 1271.23,1020.54 1272.52,1021.28"/>
- </edge>
- <edge id=":966193796_2" function="internal">
- <lane id=":966193796_2_0" index="0" speed="22.22" length="5.20" shape="1273.67,1016.82 1272.60,1017.65 1272.06,1018.67 1272.03,1019.88 1272.52,1021.28"/>
- </edge>
- <edge id=":966193796_3" function="internal">
- <lane id=":966193796_3_0" index="0" speed="22.22" length="9.52" shape="1273.67,1016.82 1265.38,1021.49"/>
- </edge>
- <edge id=":966193808_0" function="internal">
- <lane id=":966193808_0_0" index="0" speed="15.28" length="5.52" shape="1305.27,1092.26 1304.23,1091.08 1303.10,1090.46 1301.86,1090.38 1300.53,1090.86"/>
- </edge>
- <edge id=":966193808_1" function="internal">
- <lane id=":966193808_1_0" index="0" speed="15.28" length="10.14" shape="1305.27,1092.26 1303.60,1089.78 1302.49,1088.02 1301.49,1086.20 1300.14,1083.53"/>
- </edge>
- <edge id=":966193808_2" function="internal">
- <lane id=":966193808_2_0" index="0" speed="8.33" length="10.72" shape="1305.27,1092.26 1303.97,1089.59 1303.89,1087.20 1305.02,1085.10 1307.36,1083.27"/>
- </edge>
- <edge id=":966193808_3" function="internal">
- <lane id=":966193808_3_0" index="0" speed="8.33" length="4.82" shape="1305.27,1092.26 1305.26,1090.78 1305.71,1089.97 1306.62,1089.85 1308.00,1090.41"/>
- </edge>
- <edge id=":966193808_4" function="internal">
- <lane id=":966193808_4_0" index="0" speed="8.33" length="5.10" shape="1308.99,1086.14 1307.88,1087.01 1307.34,1088.01 1307.38,1089.14 1308.00,1090.41"/>
- </edge>
- <edge id=":966193808_5" function="internal">
- <lane id=":966193808_5_0" index="0" speed="15.28" length="9.69" shape="1308.99,1086.14 1300.53,1090.86"/>
- </edge>
- <edge id=":966193808_6" function="internal">
- <lane id=":966193808_6_0" index="0" speed="15.28" length="10.66" shape="1308.99,1086.14 1306.24,1087.23 1303.85,1087.16 1301.81,1085.93 1300.14,1083.53"/>
- </edge>
- <edge id=":966193808_7" function="internal">
- <lane id=":966193808_7_0" index="0" speed="8.33" length="4.82" shape="1308.99,1086.14 1307.51,1086.04 1306.74,1085.52 1306.69,1084.60 1307.36,1083.27"/>
- </edge>
- <edge id=":966193808_8" function="internal">
- <lane id=":966193808_8_0" index="0" speed="15.28" length="5.13" shape="1303.08,1082.05 1303.89,1083.19 1304.87,1083.78 1306.03,1083.80 1307.36,1083.27"/>
- </edge>
- <edge id=":966193808_9" function="internal">
- <lane id=":966193808_9_0" index="0" speed="15.28" length="9.70" shape="1303.08,1082.05 1308.00,1090.41"/>
- </edge>
- <edge id=":966193808_10" function="internal">
- <lane id=":966193808_10_0" index="0" speed="22.22" length="10.38" shape="1303.08,1082.05 1304.02,1084.78 1303.91,1087.16 1302.75,1089.19 1300.53,1090.86"/>
- </edge>
- <edge id=":966193808_11" function="internal">
- <lane id=":966193808_11_0" index="0" speed="22.22" length="2.41" shape="1303.08,1082.05 1302.90,1083.52 1302.35,1084.26"/>
- </edge>
- <edge id=":966193808_16" function="internal">
- <lane id=":966193808_16_0" index="0" speed="22.22" length="2.41" shape="1302.35,1084.26 1301.43,1084.27 1300.14,1083.53"/>
- </edge>
- <edge id=":966193808_12" function="internal">
- <lane id=":966193808_12_0" index="0" speed="22.22" length="5.19" shape="1298.95,1087.96 1300.03,1087.14 1300.59,1086.12 1300.62,1084.92 1300.14,1083.53"/>
- </edge>
- <edge id=":966193808_13" function="internal">
- <lane id=":966193808_13_0" index="0" speed="15.28" length="9.63" shape="1298.95,1087.96 1307.36,1083.27"/>
- </edge>
- <edge id=":966193808_14" function="internal">
- <lane id=":966193808_14_0" index="0" speed="15.28" length="5.13" shape="1298.95,1087.96 1301.54,1087.01 1303.91,1087.10"/>
- </edge>
- <edge id=":966193808_17" function="internal">
- <lane id=":966193808_17_0" index="0" speed="15.28" length="5.34" shape="1303.91,1087.10 1306.07,1088.24 1308.00,1090.41"/>
- </edge>
- <edge id=":966193808_15" function="internal">
- <lane id=":966193808_15_0" index="0" speed="22.22" length="2.41" shape="1298.95,1087.96 1300.43,1088.09 1301.19,1088.62"/>
- </edge>
- <edge id=":966193808_18" function="internal">
- <lane id=":966193808_18_0" index="0" speed="22.22" length="2.41" shape="1301.19,1088.62 1301.22,1089.54 1300.53,1090.86"/>
- </edge>
- <edge id=":966193812_0" function="internal">
- <lane id=":966193812_0_0" index="0" speed="8.33" length="9.50" shape="1386.53,1155.84 1382.08,1164.24"/>
- </edge>
- <edge id=":966193812_1" function="internal">
- <lane id=":966193812_1_0" index="0" speed="8.33" length="10.39" shape="1386.53,1155.84 1384.85,1158.15 1382.83,1159.35 1380.49,1159.45 1377.82,1158.45"/>
- </edge>
- <edge id=":966193812_2" function="internal">
- <lane id=":966193812_2_0" index="0" speed="8.33" length="4.82" shape="1386.53,1155.84 1385.22,1156.55 1384.30,1156.53 1383.76,1155.78 1383.61,1154.30"/>
- </edge>
- <edge id=":966193812_3" function="internal">
- <lane id=":966193812_3_0" index="0" speed="8.33" length="5.02" shape="1379.41,1155.56 1380.70,1156.04 1381.83,1155.99 1382.80,1155.41 1383.61,1154.30"/>
- </edge>
- <edge id=":966193812_4" function="internal">
- <lane id=":966193812_4_0" index="0" speed="8.33" length="10.32" shape="1379.41,1155.56 1381.69,1157.26 1382.89,1159.27 1383.02,1161.60 1382.08,1164.24"/>
- </edge>
- <edge id=":966193812_5" function="internal">
- <lane id=":966193812_5_0" index="0" speed="8.33" length="4.82" shape="1379.41,1155.56 1380.10,1156.87 1380.06,1157.80 1379.30,1158.32 1377.82,1158.45"/>
- </edge>
- <edge id=":966193812_6" function="internal">
- <lane id=":966193812_6_0" index="0" speed="8.33" length="5.06" shape="1379.16,1162.69 1379.62,1161.41 1379.55,1160.27 1378.95,1159.29 1377.82,1158.45"/>
- </edge>
- <edge id=":966193812_7" function="internal">
- <lane id=":966193812_7_0" index="0" speed="8.33" length="9.50" shape="1379.16,1162.69 1383.61,1154.30"/>
- </edge>
- <edge id=":966193812_8" function="internal">
- <lane id=":966193812_8_0" index="0" speed="8.33" length="4.82" shape="1379.16,1162.69 1380.47,1161.99 1381.39,1162.01 1381.93,1162.76 1382.08,1164.24"/>
- </edge>
- <edge id=":966193814_0" function="internal">
- <lane id=":966193814_0_0" index="0" speed="15.28" length="0.40" shape="1416.90,1309.13 1416.88,1308.73"/>
- </edge>
- <edge id=":966193814_1" function="internal">
- <lane id=":966193814_1_0" index="0" speed="22.22" length="2.41" shape="1416.90,1309.13 1417.62,1307.83 1418.41,1307.35"/>
- </edge>
- <edge id=":966193814_4" function="internal">
- <lane id=":966193814_4_0" index="0" speed="22.22" length="2.41" shape="1418.41,1307.35 1419.26,1307.70 1420.19,1308.86"/>
- </edge>
- <edge id=":966193814_2" function="internal">
- <lane id=":966193814_2_0" index="0" speed="15.28" length="0.13" shape="1420.18,1308.73 1420.19,1308.86"/>
- </edge>
- <edge id=":966193814_3" function="internal">
- <lane id=":966193814_3_0" index="0" speed="8.33" length="2.41" shape="1420.18,1308.73 1419.36,1309.97 1418.53,1310.38"/>
- </edge>
- <edge id=":966193814_5" function="internal">
- <lane id=":966193814_5_0" index="0" speed="8.33" length="2.41" shape="1418.53,1310.38 1417.71,1309.97 1416.88,1308.73"/>
- </edge>
- <edge id=":966193857_0" function="internal">
- <lane id=":966193857_0_0" index="0" speed="22.22" length="5.01" shape="1461.46,1430.32 1462.28,1431.43 1463.25,1432.00 1464.38,1432.05 1465.66,1431.57"/>
- </edge>
- <edge id=":966193857_1" function="internal">
- <lane id=":966193857_1_0" index="0" speed="22.22" length="2.41" shape="1461.46,1430.32 1461.32,1431.80 1460.79,1432.56"/>
- </edge>
- <edge id=":966193857_4" function="internal">
- <lane id=":966193857_4_0" index="0" speed="22.22" length="2.41" shape="1460.79,1432.56 1459.87,1432.59 1458.55,1431.89"/>
- </edge>
- <edge id=":966193857_2" function="internal">
- <lane id=":966193857_2_0" index="0" speed="22.22" length="5.03" shape="1457.34,1436.14 1458.43,1435.32 1459.00,1434.33 1459.04,1433.19 1458.55,1431.89"/>
- </edge>
- <edge id=":966193857_3" function="internal">
- <lane id=":966193857_3_0" index="0" speed="22.22" length="9.50" shape="1457.34,1436.14 1465.66,1431.57"/>
- </edge>
- <edge id=":974693391_0" function="internal">
- <lane id=":974693391_0_0" index="0" speed="25.00" length="6.29" shape="1346.95,1963.34 1345.75,1963.62 1344.57,1963.20 1343.39,1962.07 1342.23,1960.24"/>
- </edge>
- <edge id=":974693391_1" function="internal">
- <lane id=":974693391_1_0" index="0" speed="27.78" length="6.18" shape="1346.95,1963.34 1341.50,1966.24"/>
- </edge>
- <edge id=":974693391_2" function="internal">
- <lane id=":974693391_2_0" index="0" speed="27.78" length="6.19" shape="1345.40,1960.42 1339.94,1963.33"/>
- </edge>
- <edge id=":974693391_3" function="internal">
- <lane id=":974693391_3_0" index="0" speed="27.78" length="2.41" shape="1345.40,1960.42 1343.92,1960.27 1343.17,1959.74"/>
- </edge>
- <edge id=":974693391_11" function="internal">
- <lane id=":974693391_11_0" index="0" speed="27.78" length="2.41" shape="1343.17,1959.74 1343.15,1958.82 1343.86,1957.51"/>
- </edge>
- <edge id=":974693391_4" function="internal">
- <lane id=":974693391_4_0" index="0" speed="25.00" length="3.28" shape="1339.27,1955.38 1339.60,1955.56 1340.22,1955.49 1341.12,1955.17 1342.31,1954.59"/>
- </edge>
- <edge id=":974693391_5" function="internal">
- <lane id=":974693391_5_0" index="0" speed="22.22" length="5.69" shape="1339.27,1955.38 1342.23,1960.24"/>
- </edge>
- <edge id=":974693391_6" function="internal">
- <lane id=":974693391_6_0" index="0" speed="25.00" length="8.89" shape="1339.27,1955.38 1340.75,1958.22 1341.35,1960.50 1341.08,1962.20 1339.94,1963.33"/>
- </edge>
- <edge id=":974693391_7" function="internal">
- <lane id=":974693391_7_0" index="0" speed="27.78" length="6.20" shape="1336.83,1957.51 1342.31,1954.59"/>
- </edge>
- <edge id=":974693391_8" function="internal">
- <lane id=":974693391_8_0" index="0" speed="27.78" length="6.19" shape="1338.39,1960.42 1343.86,1957.51"/>
- </edge>
- <edge id=":974693391_9" function="internal">
- <lane id=":974693391_9_0" index="0" speed="25.00" length="4.24" shape="1338.39,1960.42 1339.78,1959.79 1340.89,1959.55 1341.70,1959.70 1342.23,1960.24"/>
- </edge>
- <edge id=":974693391_10" function="internal">
- <lane id=":974693391_10_0" index="0" speed="27.78" length="2.41" shape="1338.39,1960.42 1339.87,1960.56 1340.62,1961.10"/>
- </edge>
- <edge id=":974693391_12" function="internal">
- <lane id=":974693391_12_0" index="0" speed="27.78" length="2.41" shape="1340.62,1961.10 1340.65,1962.02 1339.94,1963.33"/>
- </edge>
- <edge id=":975934874_0" function="internal">
- <lane id=":975934874_0_0" index="0" speed="13.89" length="5.64" shape="773.32,2286.40 772.34,2287.17 771.71,2288.25 771.43,2289.65 771.50,2291.37"/>
- </edge>
- <edge id=":975934874_1" function="internal">
- <lane id=":975934874_1_0" index="0" speed="22.22" length="6.39" shape="773.32,2286.40 767.65,2289.36"/>
- </edge>
- <edge id=":975934878_0" function="internal">
- <lane id=":975934878_0_0" index="0" speed="22.22" length="6.18" shape="1156.27,2272.97 1153.46,2267.47"/>
- </edge>
- <edge id=":975934878_1" function="internal">
- <lane id=":975934878_1_0" index="0" speed="22.22" length="2.41" shape="1156.27,2272.97 1156.44,2271.49 1156.98,2270.75"/>
- </edge>
- <edge id=":975934878_6" function="internal">
- <lane id=":975934878_6_0" index="0" speed="22.22" length="2.41" shape="1156.98,2270.75 1157.90,2270.74 1159.20,2271.46"/>
- </edge>
- <edge id=":975934878_2" function="internal">
- <lane id=":975934878_2_0" index="0" speed="22.22" length="6.14" shape="1156.41,2265.98 1159.20,2271.46"/>
- </edge>
- <edge id=":975934878_3" function="internal">
- <lane id=":975934878_3_0" index="0" speed="22.22" length="2.41" shape="1156.41,2265.98 1156.23,2267.46 1155.68,2268.20"/>
- </edge>
- <edge id=":975934878_7" function="internal">
- <lane id=":975934878_7_0" index="0" speed="22.22" length="2.41" shape="1155.68,2268.20 1154.76,2268.20 1153.46,2267.47"/>
- </edge>
- <edge id=":975934878_4" function="internal">
- <lane id=":975934878_4_0" index="0" speed="13.89" length="5.01" shape="1152.09,2271.66 1153.21,2270.85 1153.81,2269.89 1153.90,2268.76 1153.46,2267.47"/>
- </edge>
- <edge id=":975934878_5" function="internal">
- <lane id=":975934878_5_0" index="0" speed="13.89" length="7.86" shape="1152.09,2271.66 1154.66,2270.53 1156.71,2270.12 1158.22,2270.43 1159.20,2271.46"/>
- </edge>
-
- <edge id="-101272434" from="566670951" to="1168929661" priority="1" type="highway.cycleway" shape="1805.32,1410.87 1763.70,1432.92 1747.57,1444.12 1695.54,1470.89 1582.36,1529.08 1473.76,1584.23">
- <lane id="-101272434_0" index="0" allow="bicycle" speed="5.56" length="369.55" shape="1806.09,1412.32 1764.47,1434.38 1748.51,1445.47 1696.30,1472.35 1583.11,1530.55 1478.78,1583.53"/>
- </edge>
- <edge id="-105254616#0" from="1719223329" to="1212960879" priority="1" type="highway.footway" shape="921.87,1598.37 908.33,1603.29 888.28,1610.18 869.53,1619.30 848.44,1632.84 828.53,1639.42">
- <lane id="-105254616#0_0" index="0" allow="pedestrian" speed="8.33" length="94.11" shape="919.48,1600.99 908.89,1604.84 888.82,1611.74 870.26,1620.79 849.16,1634.35 834.07,1639.33"/>
- </edge>
- <edge id="-105254616#1" from="1719223322" to="1719223329" priority="1" type="highway.footway" shape="1073.63,1558.52 1068.38,1561.19 1025.87,1582.83 1010.12,1553.37 921.87,1598.37">
- <lane id="-105254616#1_0" index="0" allow="pedestrian" speed="8.33" length="180.63" shape="1071.60,1561.40 1069.13,1562.66 1025.18,1585.04 1009.43,1555.57 924.68,1598.78"/>
- </edge>
- <edge id="-105254618" from="1634988377" to="1212960877" priority="2" type="highway.service" shape="748.19,1445.93 760.42,1449.07 772.23,1451.72 788.25,1452.79 798.22,1451.33 844.39,1427.33 924.37,1572.29 910.05,1587.09 867.02,1608.45 823.93,1630.44">
- <lane id="-105254618_0" index="0" allow="delivery" speed="5.56" length="380.61" shape="753.55,1445.60 760.83,1447.47 772.59,1450.11 788.18,1451.13 797.71,1449.74 845.06,1425.12 926.41,1572.56 911.04,1588.44 867.75,1609.92 828.91,1629.75"/>
- </edge>
- <edge id="-105283535#0" from="1213368991" to="733663076" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-105283535#0_0" index="0" speed="27.78" length="93.70" shape="735.90,1659.25 828.98,1670.02"/>
- </edge>
- <edge id="-105283535#1" from="552842256" to="1213368991" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-105283535#1_0" index="0" speed="27.78" length="7.61" shape="722.04,1657.61 729.60,1658.51"/>
- </edge>
- <edge id="-106366774" from="1224080676" to="1224080660" priority="5" type="highway.unclassified" shape="508.14,1033.93 520.07,1058.29 662.05,1329.66">
- <lane id="-106366774_0" index="0" speed="22.22" length="330.14" shape="509.62,1033.21 521.55,1057.57 662.02,1326.06"/>
- </edge>
- <edge id="-106367427#0" from="1239243628" to="1224091971" priority="5" type="highway.unclassified">
- <lane id="-106367427#0_0" index="0" speed="22.22" length="67.52" shape="651.58,1122.41 620.86,1062.27"/>
- </edge>
- <edge id="-106367427#1" from="1903640411" to="1239243628" priority="5" type="highway.unclassified">
- <lane id="-106367427#1_0" index="0" speed="22.22" length="4.39" shape="658.27,1134.78 656.13,1130.94"/>
- </edge>
- <edge id="-106836308#0" from="1232169474" to="1228499918" priority="4" type="highway.residential">
- <lane id="-106836308#0_0" index="0" speed="13.89" length="44.75" shape="668.83,2156.41 713.08,2149.70"/>
- </edge>
- <edge id="-106836308#1" from="1228499957" to="1232169474" priority="4" type="highway.residential">
- <lane id="-106836308#1_0" index="0" speed="13.89" length="26.84" shape="632.91,2162.01 659.43,2157.86"/>
- </edge>
- <edge id="-106836308#2" from="1228499925" to="1228499957" priority="4" type="highway.residential" shape="368.82,2201.27 460.15,2188.24 529.42,2178.37 577.70,2171.08 626.69,2164.66">
- <lane id="-106836308#2_0" index="0" speed="13.89" length="253.93" shape="368.59,2199.63 459.91,2186.61 529.18,2176.73 577.45,2169.45 619.98,2163.87"/>
- </edge>
- <edge id="-107028581#0" from="728492353" to="1233612841" priority="15" type="highway.unclassified|railway.tram" shape="629.00,1648.26 570.76,1640.81 479.06,1629.71 384.79,1618.30 287.32,1606.97 270.32,1605.03 267.14,1604.67">
- <lane id="-107028581#0_0" index="0" speed="27.78" length="359.73" shape="624.10,1649.30 570.55,1642.45 478.86,1631.35 384.60,1619.94 287.13,1608.61 270.13,1606.67 266.95,1606.31"/>
- </edge>
- <edge id="-107028581#1" from="1239242543" to="728492353" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-107028581#1_0" index="0" speed="27.78" length="26.73" shape="660.06,1653.56 633.52,1650.45"/>
- </edge>
- <edge id="-107028581#2" from="552842257" to="1239242543" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-107028581#2_0" index="0" speed="27.78" length="28.47" shape="697.87,1657.99 669.60,1654.68"/>
- </edge>
- <edge id="-107028581#3" from="552842256" to="552842257" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-107028581#3_0" index="0" speed="27.78" length="2.92" shape="705.63,1658.93 702.73,1658.57"/>
- </edge>
- <edge id="-107066313#0" from="477486719" to="950640617" priority="15" type="highway.unclassified|railway.tram" shape="405.54,1816.27 393.25,1797.66 372.19,1764.52 334.49,1706.02 281.98,1624.56 278.01,1618.39">
- <lane id="-107066313#0_0" index="0" speed="27.78" length="230.37" shape="401.37,1812.95 391.87,1798.57 370.80,1765.41 333.10,1706.92 280.60,1625.45 276.62,1619.29"/>
- </edge>
- <edge id="-107066313#1" from="728492341" to="477486719" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-107066313#1_0" index="0" speed="27.78" length="55.69" shape="436.77,1868.25 406.80,1821.31"/>
- </edge>
- <edge id="-107066313#2" from="477486717" to="728492341" priority="15" type="highway.unclassified|railway.tram" shape="504.35,1971.39 499.22,1963.31 455.89,1895.16 440.65,1871.28">
- <lane id="-107066313#2_0" index="0" speed="27.78" length="108.90" shape="500.34,1968.14 497.83,1964.19 454.50,1896.04 441.88,1876.27"/>
- </edge>
- <edge id="-107066313#3" from="1228499992" to="477486717" priority="15" type="highway.unclassified|railway.tram" shape="568.86,2072.13 545.68,2035.82 507.14,1975.73 504.35,1971.39">
- <lane id="-107066313#3_0" index="0" speed="27.78" length="110.27" shape="565.08,2069.27 544.29,2036.71 505.75,1976.62 505.62,1976.41"/>
- </edge>
- <edge id="-107066313#4" from="1228499957" to="1228499992" priority="15" type="highway.unclassified|railway.tram" shape="626.69,2164.66 621.68,2156.63 568.86,2072.13">
- <lane id="-107066313#4_0" index="0" speed="27.78" length="98.13" shape="621.82,2159.97 620.28,2157.50 569.80,2076.76"/>
- </edge>
- <edge id="-107066313#5" from="477486714" to="1228499957" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-107066313#5_0" index="0" speed="27.78" length="61.75" shape="662.87,2222.61 628.91,2171.03"/>
- </edge>
- <edge id="-107166846#0" from="728492372" to="728492353" priority="5" type="highway.unclassified">
- <lane id="-107166846#0_0" index="0" speed="22.22" length="37.49" shape="622.31,1689.98 626.80,1652.77"/>
- </edge>
- <edge id="-107166846#1" from="728492360" to="728492372" priority="5" type="highway.unclassified">
- <lane id="-107166846#1_0" index="0" speed="22.22" length="64.92" shape="612.00,1769.92 620.37,1705.54"/>
- </edge>
- <edge id="-107166846#2" from="728492361" to="728492360" priority="5" type="highway.unclassified">
- <lane id="-107166846#2_0" index="0" speed="22.22" length="54.48" shape="608.47,1836.28 611.05,1781.86"/>
- </edge>
- <edge id="-107166846#3" from="728492366" to="728492361" priority="5" type="highway.unclassified" shape="606.61,1912.43 606.99,1904.28 609.90,1840.82">
- <lane id="-107166846#3_0" index="0" speed="22.22" length="56.81" shape="605.31,1904.92 605.34,1904.20 607.91,1848.17"/>
- </edge>
- <edge id="-107166846#4" from="1239242544" to="728492366" priority="5" type="highway.unclassified" shape="640.45,2057.53 607.80,1917.51 606.61,1912.43">
- <lane id="-107166846#4_0" index="0" speed="22.22" length="139.93" shape="638.12,2054.80 606.34,1918.53"/>
- </edge>
- <edge id="-107166846#5" from="1232169474" to="1239242544" priority="5" type="highway.unclassified">
- <lane id="-107166846#5_0" index="0" speed="22.22" length="95.82" shape="661.87,2154.22 639.59,2061.03"/>
- </edge>
- <edge id="-107167209#0" from="1239242543" to="1232172723" priority="4" type="highway.residential">
- <lane id="-107167209#0_0" index="0" speed="13.89" length="17.14" shape="664.02,1647.50 666.28,1630.51"/>
- </edge>
- <edge id="-107167209#1" from="1232172714" to="1239242543" priority="4" type="highway.residential">
- <lane id="-107167209#1_0" index="0" speed="13.89" length="17.85" shape="660.40,1674.72 662.75,1657.02"/>
- </edge>
- <edge id="-108329425#0" from="1212960879" to="733663076" priority="5" type="highway.unclassified" shape="828.53,1639.42 833.33,1648.80 844.12,1666.36 848.02,1673.89">
- <lane id="-108329425#0_0" index="0" speed="22.22" length="27.41" shape="832.41,1643.38 834.80,1648.04 845.53,1665.50 846.30,1666.99"/>
- </edge>
- <edge id="-108329425#1" from="2016414185" to="1212960879" priority="5" type="highway.unclassified">
- <lane id="-108329425#1_0" index="0" speed="22.22" length="1.50" shape="828.55,1635.86 829.24,1637.19"/>
- </edge>
- <edge id="-108329425#2" from="1212960877" to="2016414185" priority="5" type="highway.unclassified">
- <lane id="-108329425#2_0" index="0" speed="22.22" length="2.10" shape="826.61,1632.05 827.56,1633.92"/>
- </edge>
- <edge id="-108329425#3" from="1323557968" to="1212960877" priority="5" type="highway.unclassified">
- <lane id="-108329425#3_0" index="0" speed="22.22" length="52.28" shape="799.40,1578.93 823.23,1625.46"/>
- </edge>
- <edge id="-108329425#4" from="429179805" to="1323557968" priority="5" type="highway.unclassified">
- <lane id="-108329425#4_0" index="0" speed="22.22" length="77.32" shape="761.31,1504.59 796.57,1573.41"/>
- </edge>
- <edge id="-108329425#5" from="445506220" to="429179805" priority="5" type="highway.unclassified">
- <lane id="-108329425#5_0" index="0" speed="22.22" length="9.98" shape="749.64,1488.00 756.27,1495.47"/>
- </edge>
- <edge id="-108329426#0" from="427996792" to="1243159116" priority="15" type="highway.unclassified|railway.tram" shape="1068.75,2092.94 1071.45,2094.86 1076.02,2096.26 1078.78,2096.74 1082.77,2097.34">
- <lane id="-108329426#0_0" index="0" speed="27.78" length="1.03" shape="1074.12,2093.95 1075.11,2094.25"/>
- </edge>
- <edge id="-108329426#1" from="1257054208" to="427996792" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-108329426#1_0" index="0" speed="27.78" length="4.73" shape="1068.25,2087.95 1070.25,2092.24"/>
- </edge>
- <edge id="-108329426#2" from="445506216" to="1257054208" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-108329426#2_0" index="0" speed="27.78" length="182.09" shape="979.75,1923.25 1065.94,2083.65"/>
- </edge>
- <edge id="-108329427#0" from="1263725264" to="427996792" priority="15" type="highway.unclassified|railway.tram" shape="1074.67,2101.63 1073.22,2099.56 1068.75,2092.94">
- <lane id="-108329427#0_0" index="0" speed="27.78" length="0.33" shape="1069.16,2096.49 1068.98,2096.22"/>
- </edge>
- <edge id="-108329427#1" from="1263725266" to="1263725264" priority="15" type="highway.unclassified|railway.tram" shape="1080.63,2107.23 1080.00,2107.03 1076.79,2104.66 1074.67,2101.63">
- <lane id="-108329427#1_0" index="0" speed="27.78" length="5.15" shape="1077.64,2108.76 1075.59,2105.83 1076.86,2106.76"/>
- </edge>
- <edge id="-108329427#2" from="1243159115" to="1263725266" priority="15" type="highway.unclassified|railway.tram" shape="1090.69,2108.82 1087.06,2109.03 1083.82,2108.23 1080.63,2107.23">
- <lane id="-108329427#2_0" index="0" speed="27.78" length="10.92" shape="1090.79,2110.47 1086.91,2110.70 1083.42,2109.83 1080.14,2108.80"/>
- </edge>
- <edge id="-108733421" from="1246731541" to="1246731574" priority="15" type="highway.secondary_link|railway.tram" shape="1198.37,1029.90 1193.93,1030.49 1189.07,1030.72 1185.19,1030.38 1182.97,1030.16">
- <lane id="-108733421_0" index="0" speed="27.78" length="18.54" shape="1196.47,1031.82 1194.14,1032.12 1189.15,1032.37 1185.05,1032.02 1178.01,1031.33"/>
- </edge>
- <edge id="-108733422" from="1246731544" to="1246731620" priority="15" type="highway.secondary_link|railway.tram" shape="1175.93,1027.69 1171.58,1026.54 1166.74,1024.73 1162.28,1023.27 1158.89,1022.12 1155.47,1019.97 1153.47,1018.17">
- <lane id="-108733422_0" index="0" speed="27.78" length="12.00" shape="1175.50,1029.28 1171.15,1028.13 1166.16,1026.27 1164.10,1025.60"/>
- </edge>
- <edge id="-108733424" from="1246731525" to="1246731470" priority="15" type="highway.secondary_link|railway.tram" shape="1199.81,1056.38 1199.13,1054.50 1200.51,1051.85 1202.48,1049.18 1204.48,1046.73">
- <lane id="-108733424_0" index="0" speed="27.78" length="3.95" shape="1200.12,1049.62 1201.15,1048.20 1202.54,1046.50"/>
- </edge>
- <edge id="-108733425" from="1246731466" to="1246731504" priority="15" type="highway.secondary_link|railway.tram" shape="1143.83,1025.01 1144.19,1027.73 1144.25,1032.21 1143.67,1035.61 1143.01,1038.97 1142.53,1042.42">
- <lane id="-108733425_0" index="0" speed="27.78" length="5.40" shape="1145.75,1026.98 1145.82,1027.52 1145.90,1032.38"/>
- </edge>
- <edge id="-108733428" from="1246731576" to="1246731455" priority="15" type="highway.secondary_link|railway.tram" shape="1138.83,1083.97 1142.61,1082.99 1146.02,1082.71 1149.60,1082.87 1154.20,1084.13">
- <lane id="-108733428_0" index="0" speed="27.78" length="13.50" shape="1133.91,1083.55 1142.19,1081.39 1145.89,1081.06 1147.13,1081.12"/>
- </edge>
- <edge id="-108733429" from="1246731460" to="1246731647" priority="15" type="highway.secondary_link|railway.tram" shape="1166.50,1087.91 1169.23,1089.27 1172.44,1091.05 1177.24,1094.45 1180.40,1096.87 1182.25,1098.33">
- <lane id="-108733429_0" index="0" speed="27.78" length="7.32" shape="1175.55,1091.24 1178.20,1093.10 1181.44,1095.59"/>
- </edge>
- <edge id="-108733430" from="1246731457" to="1246731482" priority="15" type="highway.secondary_link|railway.tram" shape="1191.33,1089.79 1191.38,1086.69 1191.57,1082.69 1192.05,1079.51 1193.00,1076.70">
- <lane id="-108733430_0" index="0" speed="27.78" length="10.58" shape="1189.72,1087.28 1189.73,1086.67 1189.92,1082.61 1190.44,1079.12 1191.20,1076.87"/>
- </edge>
- <edge id="-108733431" from="1246731627" to="1246731601" priority="15" type="highway.secondary_link|railway.tram" shape="1138.62,1055.33 1136.19,1058.12 1134.30,1061.69 1132.77,1065.18 1130.65,1068.67">
- <lane id="-108733431_0" index="0" speed="27.78" length="5.43" shape="1139.38,1056.97 1137.56,1059.06 1136.32,1061.41"/>
- </edge>
- <edge id="-109912567#0" from="1257054208" to="1257054077" priority="1" type="highway.cycleway">
- <lane id="-109912567#0_0" index="0" allow="bicycle" speed="5.56" length="10.83" shape="1070.20,2085.09 1079.89,2080.26"/>
- </edge>
- <edge id="-109912567#1" from="1257054132" to="1257054208" priority="1" type="highway.cycleway" shape="759.16,2245.83 770.22,2237.43 914.76,2164.08 935.95,2150.15 1013.62,2110.04 1024.08,2107.93 1047.70,2098.62 1066.75,2088.65">
- <lane id="-109912567#1_0" index="0" allow="bicycle" speed="5.56" length="336.58" shape="762.23,2241.43 769.35,2236.03 914.01,2162.61 935.04,2148.77 1013.07,2108.47 1023.61,2106.34 1047.10,2097.08 1061.64,2089.46"/>
- </edge>
- <edge id="-109912568" from="1257054162" to="1257054196" priority="1" type="highway.cycleway" shape="716.52,2257.84 706.60,2263.39 703.02,2269.30 701.22,2271.85 697.43,2272.03 682.54,2268.72 670.54,2266.62 661.61,2268.84 649.13,2279.25 642.72,2288.19 640.46,2297.74 639.17,2309.68 635.92,2315.00 628.32,2320.99 620.79,2325.34 616.12,2326.99 609.59,2329.64 596.91,2334.80 597.13,2341.44 600.71,2350.85">
- <lane id="-109912568_0" index="0" allow="bicycle" speed="5.56" length="175.35" shape="717.32,2259.28 707.79,2264.62 704.43,2270.15 702.11,2273.46 697.29,2273.69 682.18,2270.34 670.60,2268.31 662.37,2270.35 650.34,2280.38 644.25,2288.88 642.07,2298.12 640.77,2310.23 637.17,2316.12 629.34,2322.28 621.48,2326.85 616.66,2328.55 610.21,2331.17 598.60,2335.89 598.77,2341.11 602.25,2350.26"/>
- </edge>
- <edge id="-109912572#0" from="1257054155" to="1257054178" priority="1" type="highway.cycleway">
- <lane id="-109912572#0_0" index="0" allow="bicycle" speed="5.56" length="9.46" shape="1329.57,1930.46 1337.96,1926.12"/>
- </edge>
- <edge id="-109912572#1" from="1257054108" to="1257054155" priority="1" type="highway.cycleway" shape="1307.17,1938.59 1316.46,1933.32 1327.55,1933.37">
- <lane id="-109912572#1_0" index="0" allow="bicycle" speed="5.56" length="12.81" shape="1310.59,1934.75 1316.03,1931.66 1322.59,1931.69"/>
- </edge>
- <edge id="-109912572#2" from="1257054092" to="1257054108" priority="1" type="highway.cycleway">
- <lane id="-109912572#2_0" index="0" allow="bicycle" speed="5.56" length="2.98" shape="1299.42,1940.53 1302.10,1939.23"/>
- </edge>
- <edge id="-109912572#3" from="1257054165" to="1257054092" priority="1" type="highway.cycleway">
- <lane id="-109912572#3_0" index="0" allow="bicycle" speed="5.56" length="9.82" shape="1282.14,1949.63 1290.79,1944.97"/>
- </edge>
- <edge id="-109912572#4" from="1257054077" to="1257054165" priority="1" type="highway.cycleway" shape="1080.63,2081.74 1271.51,1979.78 1281.48,1974.95 1282.90,1969.75 1275.30,1955.19 1280.20,1952.56">
- <lane id="-109912572#4_0" index="0" allow="bicycle" speed="5.56" length="252.46" shape="1079.85,2080.28 1270.74,1978.33 1280.09,1973.79 1281.14,1969.94 1273.08,1954.50 1276.82,1952.50"/>
- </edge>
- <edge id="-110514869#0" from="252417189" to="1261880295" priority="7" type="highway.secondary">
- <lane id="-110514869#0_0" index="0" speed="27.78" length="66.86" shape="1356.44,1639.91 1295.39,1671.80"/>
- <lane id="-110514869#0_1" index="1" speed="27.78" length="66.86" shape="1354.91,1636.98 1297.44,1667.00"/>
- </edge>
- <edge id="-110514869#1" from="443089063" to="252417189" priority="7" type="highway.secondary">
- <lane id="-110514869#1_0" index="0" speed="27.78" length="73.34" shape="1426.99,1603.07 1361.98,1637.01"/>
- <lane id="-110514869#1_1" index="1" speed="27.78" length="73.34" shape="1425.46,1600.15 1360.45,1634.09"/>
- </edge>
- <edge id="-110514869#2" from="1669480282" to="443089063" priority="7" type="highway.secondary">
- <lane id="-110514869#2_0" index="0" speed="27.78" length="7.73" shape="1439.55,1596.52 1432.70,1600.09"/>
- <lane id="-110514869#2_1" index="1" speed="27.78" length="7.73" shape="1438.03,1593.59 1431.17,1597.17"/>
- </edge>
- <edge id="-122394833#0" from="1367855932" to="1367855969" priority="1" type="highway.footway" shape="1427.25,2261.94 1438.63,2283.86 1447.82,2301.53 1457.82,2320.79 1478.52,2360.64 1494.93,2392.23 1504.68,2410.99 1514.56,2430.00 1528.72,2457.27 1543.14,2485.02 1552.71,2503.46 1562.00,2521.34 1570.43,2537.57 1612.08,2617.74">
- <lane id="-122394833#0_0" index="0" allow="pedestrian" speed="8.33" length="397.85" shape="1430.14,2263.93 1440.09,2283.10 1449.28,2300.77 1459.28,2320.03 1479.99,2359.88 1496.40,2391.47 1506.14,2410.23 1516.02,2429.24 1530.19,2456.51 1544.60,2484.26 1554.17,2502.70 1563.47,2520.58 1571.89,2536.81 1613.54,2616.98"/>
- </edge>
- <edge id="-122394833#1" from="1367855931" to="1367855932" priority="1" type="highway.footway">
- <lane id="-122394833#1_0" index="0" allow="pedestrian" speed="8.33" length="19.11" shape="1418.47,2241.46 1427.28,2258.42"/>
- </edge>
- <edge id="-122394833#2" from="1367855930" to="1367855931" priority="1" type="highway.footway">
- <lane id="-122394833#2_0" index="0" allow="pedestrian" speed="8.33" length="16.46" shape="1408.59,2222.44 1416.18,2237.05"/>
- </edge>
- <edge id="-122394833#3" from="1367855929" to="1367855930" priority="1" type="highway.footway">
- <lane id="-122394833#3_0" index="0" allow="pedestrian" speed="8.33" length="15.66" shape="1399.05,2204.09 1406.27,2217.98"/>
- </edge>
- <edge id="-122394833#4" from="1367855927" to="1367855929" priority="1" type="highway.footway">
- <lane id="-122394833#4_0" index="0" allow="pedestrian" speed="8.33" length="18.52" shape="1387.81,2182.45 1396.34,2198.89"/>
- </edge>
- <edge id="-122394833#5" from="1367855925" to="1367855927" priority="1" type="highway.footway">
- <lane id="-122394833#5_0" index="0" allow="pedestrian" speed="8.33" length="0.76" shape="1383.42,2174.01 1383.77,2174.68"/>
- </edge>
- <edge id="-122394834" from="1367855909" to="1367855907" priority="1" type="highway.steps">
- <lane id="-122394834_0" index="0" allow="pedestrian" speed="1.39" length="11.20" shape="1404.80,2216.54 1399.64,2206.61"/>
- </edge>
- <edge id="-122394841#0" from="1369844772" to="1367855909" priority="1" type="highway.footway">
- <lane id="-122394841#0_0" index="0" allow="pedestrian" speed="8.33" length="8.08" shape="1420.60,2215.54 1413.43,2219.27"/>
- </edge>
- <edge id="-122394841#1" from="1369844762" to="1369844772" priority="1" type="highway.footway">
- <lane id="-122394841#1_0" index="0" allow="pedestrian" speed="8.33" length="5.93" shape="1434.44,2208.31 1429.18,2211.06"/>
- </edge>
- <edge id="-122394841#2" from="1369844757" to="1369844762" priority="1" type="highway.footway">
- <lane id="-122394841#2_0" index="0" allow="pedestrian" speed="8.33" length="4.65" shape="1447.06,2201.86 1442.91,2203.96"/>
- </edge>
- <edge id="-122394841#3" from="2079750190" to="1369844757" priority="1" type="highway.footway" shape="1477.48,2184.33 1451.23,2197.91 1450.57,2198.24">
- <lane id="-122394841#3_0" index="0" allow="pedestrian" speed="8.33" length="20.83" shape="1474.04,2187.97 1455.53,2197.54"/>
- </edge>
- <edge id="-122394845" from="1367855909" to="1367855930" priority="1" type="highway.footway">
- <lane id="-122394845_0" index="0" allow="pedestrian" speed="8.33" length="0.86" shape="1408.77,2221.75 1408.04,2222.20"/>
- </edge>
- <edge id="-122394853" from="1367855907" to="1367855929" priority="1" type="highway.footway">
- <lane id="-122394853_0" index="0" allow="pedestrian" speed="8.33" length="0.98" shape="1398.97,2205.93 1398.11,2205.47"/>
- </edge>
- <edge id="-122394859" from="1367855910" to="1367855931" priority="1" type="highway.footway">
- <lane id="-122394859_0" index="0" allow="pedestrian" speed="8.33" length="0.33" shape="1417.97,2236.79 1417.92,2237.12"/>
- </edge>
- <edge id="-122394860" from="1367855909" to="1367855910" priority="1" type="highway.steps">
- <lane id="-122394860_0" index="0" allow="pedestrian" speed="1.39" length="11.65" shape="1412.10,2223.46 1417.47,2233.80"/>
- </edge>
- <edge id="-122394864#0" from="1367855926" to="1367855927" priority="1" type="highway.footway">
- <lane id="-122394864#0_0" index="0" allow="pedestrian" speed="8.33" length="0.58" shape="1389.33,2178.05 1388.83,2178.34"/>
- </edge>
- <edge id="-122394864#1" from="314636763" to="1367855926" priority="1" type="highway.footway">
- <lane id="-122394864#1_0" index="0" allow="pedestrian" speed="8.33" length="2.01" shape="1394.36,2175.30 1392.56,2176.21"/>
- </edge>
- <edge id="-122394864#2" from="1367855923" to="314636763" priority="1" type="highway.footway">
- <lane id="-122394864#2_0" index="0" allow="pedestrian" speed="8.33" length="5.34" shape="1405.73,2169.41 1401.00,2171.88"/>
- </edge>
- <edge id="-122641556#0" from="1369844762" to="1369844758" priority="1" type="highway.steps">
- <lane id="-122641556#0_0" index="0" allow="pedestrian" speed="1.39" length="4.15" shape="1441.55,2208.13 1443.45,2211.82"/>
- </edge>
- <edge id="-122641556#1" from="1369844770" to="1369844762" priority="1" type="highway.steps">
- <lane id="-122641556#1_0" index="0" allow="pedestrian" speed="1.39" length="4.82" shape="1434.97,2195.40 1437.19,2199.67"/>
- </edge>
- <edge id="-122641557" from="1369844786" to="1369844780" priority="1" type="highway.steps" shape="1481.20,2289.82 1478.92,2285.27 1476.61,2280.66">
- <lane id="-122641557_0" index="0" allow="pedestrian" speed="1.39" length="10.24" shape="1479.73,2290.56 1477.45,2286.01 1475.14,2281.40"/>
- </edge>
- <edge id="-122641559#0" from="1369844757" to="1369844756" priority="1" type="highway.steps">
- <lane id="-122641559#0_0" index="0" allow="pedestrian" speed="1.39" length="4.35" shape="1454.18,2201.77 1456.12,2205.66"/>
- </edge>
- <edge id="-122641559#1" from="1369844760" to="1369844757" priority="1" type="highway.steps">
- <lane id="-122641559#1_0" index="0" allow="pedestrian" speed="1.39" length="5.07" shape="1447.56,2188.73 1449.87,2193.25"/>
- </edge>
- <edge id="-122641560#0" from="1369844772" to="1369844763" priority="1" type="highway.steps">
- <lane id="-122641560#0_0" index="0" allow="pedestrian" speed="1.39" length="3.85" shape="1427.72,2215.39 1429.46,2218.83"/>
- </edge>
- <edge id="-122641560#1" from="1369844774" to="1369844772" priority="1" type="highway.steps">
- <lane id="-122641560#1_0" index="0" allow="pedestrian" speed="1.39" length="4.28" shape="1421.67,2202.87 1423.50,2206.74"/>
- </edge>
- <edge id="-129780022#0" from="1257054205" to="248913124" priority="9" type="highway.primary">
- <lane id="-129780022#0_0" index="0" speed="27.78" length="60.58" shape="1359.81,1956.23 1413.40,1928.00"/>
- </edge>
- <edge id="-129780022#1" from="13929747" to="1257054205" priority="9" type="highway.primary">
- <lane id="-129780022#1_0" index="0" speed="27.78" length="4.67" shape="1347.18,1962.90 1351.32,1960.71"/>
- </edge>
- <edge id="-129780022#2" from="435668534" to="13929747" priority="9" type="highway.primary" shape="1297.62,1991.64 1321.80,1978.44 1345.18,1965.82">
- <lane id="-129780022#2_0" index="0" speed="27.78" length="47.76" shape="1299.70,1988.62 1321.01,1976.99 1341.67,1965.84"/>
- </edge>
- <edge id="-129780022#3" from="1263725266" to="435668534" priority="9" type="highway.primary">
- <lane id="-129780022#3_0" index="0" speed="27.78" length="239.45" shape="1082.78,2104.22 1294.12,1991.64"/>
- </edge>
- <edge id="-129780022#4" from="427996791" to="1263725266" priority="9" type="highway.primary">
- <lane id="-129780022#4_0" index="0" speed="27.78" length="4.74" shape="1075.67,2107.95 1079.88,2105.76"/>
- </edge>
- <edge id="-129780022#5" from="435668539" to="427996791" priority="9" type="highway.primary">
- <lane id="-129780022#5_0" index="0" speed="27.78" length="345.41" shape="765.63,2271.06 1071.32,2110.23"/>
- </edge>
- <edge id="-130443629#0" from="243489891" to="250685721" priority="6" type="highway.tertiary" shape="746.13,2290.28 758.26,2368.80 773.69,2484.93">
- <lane id="-130443629#0_0" index="0" speed="22.22" length="179.08" shape="749.18,2299.26 759.89,2368.54 774.24,2476.57"/>
- </edge>
- <edge id="-130443629#1" from="948350640" to="243489891" priority="6" type="highway.tertiary">
- <lane id="-130443629#1_0" index="0" speed="22.22" length="9.84" shape="746.61,2278.38 747.58,2288.17"/>
- </edge>
- <edge id="-130443629#2" from="435668511" to="948350640" priority="6" type="highway.tertiary">
- <lane id="-130443629#2_0" index="0" speed="22.22" length="1.49" shape="746.01,2274.10 746.22,2275.58"/>
- </edge>
- <edge id="-130443629#3" from="948350615" to="435668511" priority="6" type="highway.tertiary">
- <lane id="-130443629#3_0" index="0" speed="22.22" length="3.48" shape="745.38,2267.19 745.69,2270.65"/>
- </edge>
- <edge id="-130443629#4" from="428303370" to="948350615" priority="6" type="highway.tertiary">
- <lane id="-130443629#4_0" index="0" speed="22.22" length="14.83" shape="743.53,2246.98 744.88,2261.75"/>
- </edge>
- <edge id="-130443629#5" from="445506221" to="428303370" priority="6" type="highway.tertiary">
- <lane id="-130443629#5_0" index="0" speed="22.22" length="166.99" shape="717.83,2062.55 741.38,2227.87"/>
- </edge>
- <edge id="-130443629#6" from="1231011197" to="445506221" priority="6" type="highway.tertiary">
- <lane id="-130443629#6_0" index="0" speed="22.22" length="10.65" shape="715.52,2045.68 716.96,2056.23"/>
- </edge>
- <edge id="-130443629#7" from="1457695393" to="1231011197" priority="6" type="highway.tertiary">
- <lane id="-130443629#7_0" index="0" speed="22.22" length="163.62" shape="692.76,1877.39 714.69,2039.54"/>
- </edge>
- <edge id="-130443629#8" from="30406565" to="1457695393" priority="6" type="highway.tertiary">
- <lane id="-130443629#8_0" index="0" speed="22.22" length="9.14" shape="690.31,1857.98 691.42,1867.06"/>
- </edge>
- <edge id="-130443630#0" from="445506220" to="552842256" priority="6" type="highway.tertiary">
- <lane id="-130443630#0_0" index="0" speed="22.22" length="162.41" shape="743.18,1491.39 719.39,1652.05"/>
- </edge>
- <edge id="-130443630#1" from="966097869" to="445506220" priority="6" type="highway.tertiary">
- <lane id="-130443630#1_0" index="0" speed="22.22" length="18.91" shape="747.60,1461.32 744.85,1480.03"/>
- </edge>
- <edge id="-130443630#10" from="1780219355" to="1780219345" priority="6" type="highway.tertiary">
- <lane id="-130443630#10_0" index="0" speed="22.22" length="18.14" shape="792.02,1154.25 789.32,1172.19"/>
- </edge>
- <edge id="-130443630#11" from="444026889" to="1780219355" priority="6" type="highway.tertiary">
- <lane id="-130443630#11_0" index="0" speed="22.22" length="58.19" shape="802.19,1086.63 793.53,1144.17"/>
- </edge>
- <edge id="-130443630#2" from="1634988377" to="966097869" priority="6" type="highway.tertiary">
- <lane id="-130443630#2_0" index="0" speed="22.22" length="0.70" shape="749.08,1451.23 748.98,1451.92"/>
- </edge>
- <edge id="-130443630#3" from="1726380194" to="1634988377" priority="6" type="highway.tertiary">
- <lane id="-130443630#3_0" index="0" speed="22.22" length="10.67" shape="752.02,1431.24 750.46,1441.79"/>
- </edge>
- <edge id="-130443630#4" from="446017744" to="1726380194" priority="6" type="highway.tertiary">
- <lane id="-130443630#4_0" index="0" speed="22.22" length="117.08" shape="769.93,1309.23 752.93,1425.07"/>
- </edge>
- <edge id="-130443630#5" from="950640413" to="446017744" priority="6" type="highway.tertiary">
- <lane id="-130443630#5_0" index="0" speed="22.22" length="2.70" shape="771.64,1297.19 771.28,1299.87"/>
- </edge>
- <edge id="-130443630#6" from="30406599" to="950640413" priority="6" type="highway.tertiary">
- <lane id="-130443630#6_0" index="0" speed="22.22" length="10.75" shape="773.36,1283.04 772.12,1293.71"/>
- </edge>
- <edge id="-130443630#7" from="950640411" to="30406599" priority="6" type="highway.tertiary">
- <lane id="-130443630#7_0" index="0" speed="22.22" length="6.31" shape="774.73,1271.11 774.01,1277.38"/>
- </edge>
- <edge id="-130443630#8" from="446017741" to="950640411" priority="6" type="highway.tertiary">
- <lane id="-130443630#8_0" index="0" speed="22.22" length="2.91" shape="775.39,1265.38 775.05,1268.27"/>
- </edge>
- <edge id="-130443630#9" from="1780219345" to="446017741" priority="6" type="highway.tertiary">
- <lane id="-130443630#9_0" index="0" speed="22.22" length="74.25" shape="787.67,1183.10 776.62,1256.52"/>
- </edge>
- <edge id="-132323955" from="2006433692" to="320879142" priority="5" type="highway.unclassified">
- <lane id="-132323955_0" index="0" speed="22.22" length="38.31" shape="1336.70,2034.88 1318.96,2000.93"/>
- </edge>
- <edge id="-133868229#0" from="948350588" to="948350707" priority="15" type="highway.primary|railway.tram">
- <lane id="-133868229#0_0" index="0" speed="27.78" length="7.23" shape="763.93,2272.28 756.73,2276.48"/>
- <lane id="-133868229#0_1" index="1" speed="27.78" length="7.23" shape="762.26,2269.43 756.96,2272.53"/>
- </edge>
- <edge id="-133868229#1" from="948350630" to="948350588" priority="15" type="highway.primary|railway.tram">
- <lane id="-133868229#1_0" index="0" speed="27.78" length="4.89" shape="773.79,2266.47 769.58,2268.95"/>
- <lane id="-133868229#1_1" index="1" speed="27.78" length="4.89" shape="772.12,2263.63 767.91,2266.11"/>
- </edge>
- <edge id="-134872478" from="1482088987" to="1482088973" priority="1" type="highway.pedestrian">
- <lane id="-134872478_0" index="0" allow="pedestrian" speed="8.33" length="80.18" shape="759.31,1840.58 722.71,1769.24"/>
- </edge>
- <edge id="-139118805#0" from="974693391" to="950094494" priority="15" type="highway.primary|railway.tram">
- <lane id="-139118805#0_0" index="0" speed="27.78" length="46.24" shape="1341.50,1966.24 1300.70,1988.01"/>
- <lane id="-139118805#0_1" index="1" speed="27.78" length="46.24" shape="1339.94,1963.33 1299.15,1985.10"/>
- </edge>
- <edge id="-139118805#1" from="1257054172" to="974693391" priority="15" type="highway.primary|railway.tram">
- <lane id="-139118805#1_0" index="0" speed="27.78" length="5.34" shape="1351.67,1960.84 1346.95,1963.34"/>
- <lane id="-139118805#1_1" index="1" speed="27.78" length="5.34" shape="1350.12,1957.92 1345.40,1960.42"/>
- </edge>
- <edge id="-139118805#2" from="950094458" to="1257054172" priority="15" type="highway.primary|railway.tram">
- <lane id="-139118805#2_0" index="0" speed="27.78" length="60.52" shape="1413.55,1928.12 1360.04,1956.40"/>
- <lane id="-139118805#2_1" index="1" speed="27.78" length="60.52" shape="1412.01,1925.21 1358.50,1953.48"/>
- </edge>
- <edge id="-141191247#0" from="1545672806" to="1545672819" priority="1" type="highway.footway">
- <lane id="-141191247#0_0" index="0" allow="pedestrian" speed="8.33" length="2.20" shape="1174.75,2088.45 1176.35,2089.95"/>
- </edge>
- <edge id="-141191247#1" from="1545673105" to="1545672806" priority="1" type="highway.footway" shape="1110.81,2160.62 1092.59,2124.91 1168.13,2085.06 1172.90,2088.98">
- <lane id="-141191247#1_0" index="0" allow="pedestrian" speed="8.33" length="129.03" shape="1107.13,2157.04 1090.38,2124.21 1168.34,2083.09 1171.45,2085.65"/>
- </edge>
- <edge id="-141191247#2" from="1545673345" to="1545673105" priority="1" type="highway.footway">
- <lane id="-141191247#2_0" index="0" allow="pedestrian" speed="8.33" length="58.61" shape="1138.20,2217.92 1111.56,2165.71"/>
- </edge>
- <edge id="-141191247#3" from="1545673319" to="1545673345" priority="1" type="highway.footway" shape="1259.48,2214.22 1259.47,2219.72 1165.58,2267.95 1141.83,2221.41">
- <lane id="-141191247#3_0" index="0" allow="pedestrian" speed="8.33" length="160.72" shape="1261.13,2217.35 1261.12,2220.73 1164.86,2270.17 1142.53,2226.41"/>
- </edge>
- <edge id="-141191247#4" from="1545673304" to="1545673319" priority="1" type="highway.footway">
- <lane id="-141191247#4_0" index="0" allow="pedestrian" speed="8.33" length="2.18" shape="1261.10,2211.09 1261.12,2213.27"/>
- </edge>
- <edge id="-141191248#0" from="1545672843" to="1545672864" priority="1" type="highway.footway" shape="1191.03,2098.99 1191.53,2099.68 1197.19,2109.26">
- <lane id="-141191248#0_0" index="0" allow="pedestrian" speed="8.33" length="4.34" shape="1193.90,2100.47 1196.11,2104.20"/>
- </edge>
- <edge id="-141191248#1" from="1545672797" to="1545672843" priority="1" type="highway.footway" shape="1188.51,2080.15 1187.61,2083.58 1187.04,2088.22 1188.45,2093.93 1189.88,2097.39 1191.03,2098.99">
- <lane id="-141191248#1_0" index="0" allow="pedestrian" speed="8.33" length="9.80" shape="1189.83,2092.66 1190.05,2093.54 1191.33,2096.58 1188.09,2092.03"/>
- </edge>
- <edge id="-141191248#2" from="1545672785" to="1545672797" priority="1" type="highway.footway" shape="1247.38,2046.15 1192.21,2075.01 1188.51,2080.15">
- <lane id="-141191248#2_0" index="0" allow="pedestrian" speed="8.33" length="65.71" shape="1248.15,2047.62 1193.32,2076.29 1191.08,2079.41"/>
- </edge>
- <edge id="-141191249#0" from="1545673345" to="1545673349" priority="1" type="highway.footway">
- <lane id="-141191249#0_0" index="0" allow="pedestrian" speed="8.33" length="0.93" shape="1139.19,2224.64 1138.36,2225.07"/>
- </edge>
- <edge id="-141191249#1" from="1545673333" to="1545673345" priority="1" type="highway.footway">
- <lane id="-141191249#1_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1149.39,2219.37 1146.82,2220.69"/>
- </edge>
- <edge id="-141191249#2" from="1545673280" to="1545673333" priority="1" type="highway.footway" shape="1190.28,2200.75 1162.72,2215.20 1160.41,2216.54 1157.37,2217.24 1154.67,2216.86 1151.68,2216.33">
- <lane id="-141191249#2_0" index="0" allow="pedestrian" speed="8.33" length="33.73" shape="1186.04,2204.84 1163.49,2216.66 1161.03,2218.09 1157.44,2218.92 1155.72,2218.67"/>
- </edge>
- <edge id="-141191249#3" from="1545673191" to="1545673280" priority="1" type="highway.footway">
- <lane id="-141191249#3_0" index="0" allow="pedestrian" speed="8.33" length="25.71" shape="1217.42,2188.39 1194.65,2200.32"/>
- </edge>
- <edge id="-141191249#4" from="1545673135" to="1545673191" priority="1" type="highway.footway">
- <lane id="-141191249#4_0" index="0" allow="pedestrian" speed="8.33" length="30.31" shape="1252.64,2169.85 1225.83,2183.97"/>
- </edge>
- <edge id="-141191249#5" from="1545673031" to="1545673135" priority="1" type="highway.footway">
- <lane id="-141191249#5_0" index="0" allow="pedestrian" speed="8.33" length="41.17" shape="1297.47,2146.24 1261.04,2165.42"/>
- </edge>
- <edge id="-141191250#0" from="1545673105" to="1545673118" priority="1" type="highway.footway">
- <lane id="-141191250#0_0" index="0" allow="pedestrian" speed="8.33" length="1.58" shape="1108.74,2163.67 1107.36,2164.44"/>
- </edge>
- <edge id="-141191250#1" from="1545673065" to="1545673105" priority="1" type="highway.footway" shape="1122.59,2153.96 1121.27,2154.80 1110.81,2160.62">
- <lane id="-141191250#1_0" index="0" allow="pedestrian" speed="8.33" length="4.77" shape="1120.03,2157.38 1115.87,2159.70"/>
- </edge>
- <edge id="-141191250#2" from="1545672874" to="1545673065" priority="1" type="highway.footway" shape="1186.40,2115.00 1127.20,2146.49 1125.37,2147.86 1124.05,2149.21 1123.07,2151.90 1122.59,2153.96">
- <lane id="-141191250#2_0" index="0" allow="pedestrian" speed="8.33" length="66.26" shape="1182.65,2118.87 1127.97,2147.95 1126.36,2149.18 1125.48,2150.11 1125.13,2151.07"/>
- </edge>
- <edge id="-141191250#3" from="1545672864" to="1545672874" priority="1" type="highway.footway">
- <lane id="-141191250#3_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1193.64,2113.01 1191.09,2114.38"/>
- </edge>
- <edge id="-141191250#4" from="1545672804" to="1545672864" priority="1" type="highway.footway">
- <lane id="-141191250#4_0" index="0" allow="pedestrian" speed="8.33" length="44.67" shape="1241.47,2087.57 1202.03,2108.55"/>
- </edge>
- <edge id="-141191250#5" from="1545672788" to="1545672804" priority="1" type="highway.footway">
- <lane id="-141191250#5_0" index="0" allow="pedestrian" speed="8.33" length="21.07" shape="1268.46,2073.21 1249.86,2083.10"/>
- </edge>
- <edge id="-141191251#0" from="1545673218" to="1545673280" priority="1" type="highway.footway" shape="1176.54,2190.64 1179.76,2191.53 1182.92,2193.29 1185.36,2195.49 1187.95,2198.06 1190.28,2200.75">
- <lane id="-141191251#0_0" index="0" allow="pedestrian" speed="8.33" length="9.35" shape="1180.32,2189.97 1183.89,2191.94 1186.46,2194.27 1187.75,2195.54"/>
- </edge>
- <edge id="-141191251#1" from="1545673223" to="1545673218" priority="1" type="highway.footway" shape="1164.77,2191.70 1166.94,2190.65 1169.70,2190.24 1172.68,2190.04 1176.54,2190.64">
- <lane id="-141191251#1_0" index="0" allow="pedestrian" speed="8.33" length="3.51" shape="1167.33,2188.92 1169.46,2188.61 1170.82,2188.52"/>
- </edge>
- <edge id="-141191251#2" from="1545673333" to="1545673223" priority="1" type="highway.footway" shape="1151.68,2216.33 1151.74,2213.60 1152.64,2210.11 1154.02,2206.17 1155.94,2203.01 1160.13,2196.79 1162.33,2193.63 1164.77,2191.70">
- <lane id="-141191251#2_0" index="0" allow="pedestrian" speed="8.33" length="20.28" shape="1150.44,2212.04 1151.04,2209.70 1152.52,2205.46 1154.53,2202.16 1158.76,2195.87 1159.86,2194.29"/>
- </edge>
- <edge id="-141191252" from="1545672824" to="1545672804" priority="1" type="highway.footway">
- <lane id="-141191252_0" index="0" allow="pedestrian" speed="8.33" length="3.17" shape="1246.99,2091.81 1245.63,2088.95"/>
- </edge>
- <edge id="-141191253#0" from="1545673240" to="1545673150" priority="1" type="highway.footway" shape="1256.69,2192.89 1260.35,2189.95 1264.52,2186.60 1269.08,2182.53 1275.18,2178.02 1280.78,2174.63 1287.21,2171.56 1292.34,2170.03 1297.68,2169.54 1303.54,2169.23 1309.98,2169.16">
- <lane id="-141191253#0_0" index="0" allow="pedestrian" speed="8.33" length="54.28" shape="1257.62,2190.02 1259.32,2188.66 1263.48,2185.32 1267.98,2181.30 1274.20,2176.69 1279.93,2173.22 1286.50,2170.07 1292.02,2168.40 1297.53,2167.90 1303.46,2167.59 1305.23,2167.57"/>
- </edge>
- <edge id="-141191253#1" from="1545673191" to="1545673240" priority="1" type="highway.footway" shape="1221.00,2184.66 1224.47,2192.09 1226.11,2194.93 1227.83,2196.44 1230.11,2197.43 1232.90,2198.10 1236.40,2198.15 1240.82,2197.86 1245.44,2197.18 1249.55,2196.50 1252.92,2195.00 1256.69,2192.89">
- <lane id="-141191253#1_0" index="0" allow="pedestrian" speed="8.33" length="27.39" shape="1224.56,2188.40 1225.96,2191.39 1227.40,2193.87 1228.72,2195.03 1230.77,2195.91 1233.11,2196.46 1236.42,2196.50 1240.71,2196.22 1245.20,2195.54 1247.85,2195.10"/>
- </edge>
- <edge id="-141191254#0" from="1545673067" to="1545673135" priority="1" type="highway.footway" shape="1245.45,2152.18 1248.13,2153.76 1249.98,2155.33 1252.27,2158.13 1254.25,2162.73 1256.14,2166.14">
- <lane id="-141191254#0_0" index="0" allow="pedestrian" speed="8.33" length="13.19" shape="1247.09,2151.24 1248.97,2152.34 1251.16,2154.17 1253.70,2157.26 1255.34,2161.08"/>
- </edge>
- <edge id="-141191254#1" from="1545673123" to="1545673067" priority="1" type="highway.footway" shape="1182.08,2163.41 1183.08,2162.82 1187.19,2161.01 1197.18,2157.95 1205.65,2155.34 1213.04,2153.19 1221.17,2151.96 1228.66,2151.40 1233.90,2151.24 1240.89,2151.35 1245.45,2152.18">
- <lane id="-141191254#1_0" index="0" allow="pedestrian" speed="8.33" length="62.95" shape="1183.67,2160.76 1186.53,2159.50 1196.70,2156.37 1205.17,2153.76 1212.58,2151.60 1220.93,2150.33 1228.54,2149.76 1233.85,2149.59 1240.91,2149.70 1245.00,2150.43"/>
- </edge>
- <edge id="-141191254#2" from="1545673218" to="1545673123" priority="1" type="highway.footway" shape="1176.54,2190.64 1175.84,2187.38 1175.71,2184.19 1175.65,2180.35 1176.22,2175.55 1177.80,2169.58 1179.20,2166.00 1181.06,2164.02 1182.08,2163.41">
- <lane id="-141191254#2_0" index="0" allow="pedestrian" speed="8.33" length="16.80" shape="1174.09,2184.95 1174.06,2184.26 1174.00,2180.38 1174.58,2175.36 1176.21,2169.16 1176.48,2168.45"/>
- </edge>
- <edge id="-141191255#0" from="1545672999" to="1545672923" priority="1" type="highway.footway" shape="1276.17,2138.79 1275.37,2139.92 1272.78,2141.82 1269.74,2142.80 1266.15,2142.75 1262.94,2141.55 1260.00,2138.97 1258.32,2135.75 1257.87,2132.60 1258.56,2129.03 1260.99,2125.47 1260.36,2124.39 1259.59,2121.77 1259.82,2118.57 1261.13,2115.88 1263.27,2113.84 1266.90,2112.53 1270.31,2112.84 1273.41,2114.58 1275.34,2117.09 1276.18,2120.33 1275.85,2123.17 1274.93,2125.18">
- <lane id="-141191255#0_0" index="0" allow="pedestrian" speed="8.33" length="72.12" shape="1273.97,2142.99 1273.54,2143.31 1269.99,2144.46 1265.84,2144.40 1262.09,2142.99 1258.68,2140.01 1256.73,2136.26 1256.19,2132.56 1257.01,2128.38 1259.04,2125.40 1258.84,2125.05 1257.92,2121.95 1258.20,2118.13 1259.77,2114.89 1262.38,2112.41 1266.68,2110.85 1270.81,2111.22 1274.52,2113.31 1276.85,2116.35 1277.86,2120.21 1277.45,2123.62 1277.27,2124.02"/>
- </edge>
- <edge id="-141191255#1" from="1545672923" to="1545672999" priority="1" type="highway.footway" shape="1274.93,2125.18 1277.03,2127.73 1278.13,2130.65 1278.32,2133.43 1277.36,2137.10 1276.17,2138.79">
- <lane id="-141191255#1_0" index="0" allow="pedestrian" speed="8.33" length="10.56" shape="1277.50,2125.70 1278.48,2126.89 1279.76,2130.30 1279.99,2133.58 1279.46,2135.60"/>
- </edge>
- <edge id="-141191256#0" from="1545673092" to="1545673223" priority="1" type="highway.footway" shape="1152.72,2157.95 1152.52,2163.32 1152.01,2168.12 1152.15,2171.89 1152.64,2175.00 1153.93,2178.10 1155.80,2181.62 1158.42,2185.78 1161.61,2189.14 1164.77,2191.70">
- <lane id="-141191256#0_0" index="0" allow="pedestrian" speed="8.33" length="25.93" shape="1154.17,2163.20 1154.17,2163.38 1153.65,2168.29 1153.80,2171.84 1154.24,2174.55 1155.45,2177.47 1157.26,2180.85 1159.73,2184.76 1161.72,2186.86"/>
- </edge>
- <edge id="-141191256#1" from="1545672919" to="1545673092" priority="1" type="highway.footway" shape="1189.89,2126.22 1188.43,2126.47 1183.65,2127.41 1179.08,2128.65 1173.81,2130.48 1169.03,2132.51 1166.88,2134.51 1163.36,2137.40 1159.58,2141.81 1156.68,2146.51 1154.64,2150.67 1153.16,2154.10 1152.72,2157.95">
- <lane id="-141191256#1_0" index="0" allow="pedestrian" speed="8.33" length="41.19" shape="1185.27,2128.78 1183.97,2129.03 1179.51,2130.24 1174.35,2132.04 1169.94,2133.92 1168.01,2135.72 1164.52,2138.58 1160.83,2142.89 1158.08,2147.37 1156.12,2151.40 1155.16,2153.62"/>
- </edge>
- <edge id="-141191256#2" from="1545672910" to="1545672919" priority="1" type="highway.footway" shape="1227.08,2124.27 1222.77,2125.02 1218.41,2125.75 1213.69,2126.41 1208.17,2127.01 1203.07,2127.03 1196.89,2126.62 1189.89,2126.22">
- <lane id="-141191256#2_0" index="0" allow="pedestrian" speed="8.33" length="27.57" shape="1222.52,2126.74 1218.68,2127.38 1213.92,2128.04 1208.35,2128.65 1203.08,2128.68 1196.78,2128.26 1195.09,2128.17"/>
- </edge>
- <edge id="-141191257" from="1545672999" to="1545673030" priority="1" type="highway.footway" shape="1276.17,2138.79 1278.81,2140.81 1281.00,2142.63">
- <lane id="-141191257_0" index="0" allow="pedestrian" speed="8.33" length="3.34" shape="1278.07,2138.05 1280.64,2140.18"/>
- </edge>
- <edge id="-141191258#0" from="1545673031" to="1545672954" priority="1" type="highway.footway" shape="1300.95,2142.54 1299.06,2138.73 1296.25,2135.95 1292.28,2133.33 1287.14,2130.58 1286.23,2130.45">
- <lane id="-141191258#0_0" index="0" allow="pedestrian" speed="8.33" length="8.71" shape="1297.22,2139.22 1295.21,2137.24 1291.37,2134.71 1290.24,2134.10"/>
- </edge>
- <edge id="-141191258#1" from="1545673150" to="1545673031" priority="1" type="highway.footway" shape="1309.98,2169.16 1310.15,2166.11 1310.52,2162.55 1309.82,2159.95 1300.95,2142.54">
- <lane id="-141191258#1_0" index="0" allow="pedestrian" speed="8.33" length="18.66" shape="1308.65,2164.54 1308.85,2162.68 1308.28,2160.55 1301.65,2147.56"/>
- </edge>
- <edge id="-141191258#2" from="1545673304" to="1545673150" priority="1" type="highway.footway" shape="1259.42,2208.43 1270.90,2208.66 1274.95,2207.57 1276.09,2205.81 1277.05,2202.75 1277.74,2200.13 1280.60,2196.88 1283.76,2194.95 1288.68,2192.55 1294.03,2190.57 1303.49,2186.60 1306.95,2184.00 1308.88,2181.73 1309.63,2179.02 1310.06,2174.09 1309.98,2169.16">
- <lane id="-141191258#2_0" index="0" allow="pedestrian" speed="8.33" length="60.85" shape="1264.30,2206.88 1270.69,2207.00 1273.91,2206.14 1274.58,2205.10 1275.48,2202.26 1276.24,2199.33 1279.53,2195.60 1282.91,2193.54 1287.95,2191.07 1293.46,2189.02 1302.66,2185.16 1305.81,2182.79 1307.38,2180.93 1308.00,2178.73 1308.41,2173.92"/>
- </edge>
- <edge id="-141191258#3" from="1545673240" to="1545673304" priority="1" type="highway.footway" shape="1256.69,2192.89 1255.42,2197.21 1254.66,2200.81 1255.02,2203.99 1256.10,2206.53 1257.67,2208.05 1259.42,2208.43">
- <lane id="-141191258#3_0" index="0" allow="pedestrian" speed="8.33" length="2.87" shape="1256.45,2201.95 1256.64,2203.57 1257.12,2204.72"/>
- </edge>
- <edge id="-141191259#0" from="1545672824" to="1545672852" priority="1" type="highway.footway" shape="1250.63,2095.64 1256.60,2094.96 1262.17,2095.42 1267.71,2096.97 1273.29,2099.82 1277.60,2103.24">
- <lane id="-141191259#0_0" index="0" allow="pedestrian" speed="8.33" length="26.29" shape="1254.24,2093.57 1256.57,2093.30 1262.46,2093.79 1268.31,2095.42 1274.18,2098.42 1278.39,2101.75"/>
- </edge>
- <edge id="-141191259#1" from="1545672910" to="1545672824" priority="1" type="highway.footway" shape="1227.08,2124.27 1227.81,2118.19 1229.22,2113.66 1231.91,2108.49 1235.83,2103.67 1242.13,2098.88 1250.63,2095.64">
- <lane id="-141191259#1_0" index="0" allow="pedestrian" speed="8.33" length="32.79" shape="1225.91,2120.19 1226.19,2117.85 1227.69,2113.03 1230.52,2107.58 1234.67,2102.48 1241.32,2097.42 1245.35,2095.88"/>
- </edge>
- <edge id="-141191259#2" from="1545673067" to="1545672910" priority="1" type="highway.footway" shape="1245.45,2152.18 1240.58,2149.61 1236.03,2145.96 1232.44,2141.72 1229.55,2136.54 1228.04,2132.21 1227.08,2124.27">
- <lane id="-141191259#2_0" index="0" allow="pedestrian" speed="8.33" length="31.79" shape="1244.42,2153.50 1239.67,2150.99 1234.88,2147.15 1231.08,2142.66 1228.04,2137.22 1226.43,2132.59 1226.04,2129.36"/>
- </edge>
- <edge id="-141191259#3" from="1545673030" to="1545673067" priority="1" type="highway.footway" shape="1281.00,2142.63 1278.13,2145.66 1274.20,2148.99 1269.94,2151.50 1264.52,2153.49 1256.24,2154.46 1251.00,2153.87 1245.45,2152.18">
- <lane id="-141191259#3_0" index="0" allow="pedestrian" speed="8.33" length="35.02" shape="1278.71,2147.32 1275.27,2150.25 1270.65,2153.00 1264.91,2155.11 1256.25,2156.12 1250.66,2155.49 1246.20,2154.13"/>
- </edge>
- <edge id="-141191259#4" from="1545672954" to="1545673030" priority="1" type="highway.footway" shape="1286.23,2130.45 1284.55,2136.01 1283.09,2139.36 1281.00,2142.63">
- <lane id="-141191259#4_0" index="0" allow="pedestrian" speed="8.33" length="3.50" shape="1286.33,2135.85 1286.13,2136.49 1285.01,2139.09"/>
- </edge>
- <edge id="-141191259#5" from="1545672852" to="1545672954" priority="1" type="highway.footway" shape="1277.60,2103.24 1281.30,2107.52 1284.31,2112.85 1286.37,2119.72 1286.79,2124.40 1286.23,2130.45">
- <lane id="-141191259#5_0" index="0" allow="pedestrian" speed="8.33" length="26.76" shape="1279.05,2102.39 1282.66,2106.57 1285.84,2112.20 1288.00,2119.40 1288.44,2124.40 1288.24,2126.62"/>
- </edge>
- <edge id="-141191262#0" from="1545672919" to="1545672874" priority="1" type="highway.footway" shape="1189.89,2126.22 1189.29,2123.34 1188.37,2120.10 1187.37,2117.35 1186.40,2115.00">
- <lane id="-141191262#0_0" index="0" allow="pedestrian" speed="8.33" length="1.56" shape="1187.16,2121.87 1186.78,2120.55 1186.72,2120.38"/>
- </edge>
- <edge id="-141191262#1" from="1545672971" to="1545672919" priority="1" type="highway.footway" shape="1190.71,2134.12 1190.19,2129.24 1189.89,2126.22">
- <lane id="-141191262#1_0" index="0" allow="pedestrian" speed="8.33" length="2.65" shape="1189.07,2134.30 1188.79,2131.66"/>
- </edge>
- <edge id="-141191263#0" from="1545672819" to="1545672843" priority="1" type="highway.footway" shape="1177.15,2092.96 1179.32,2096.55 1181.89,2098.03 1184.81,2098.78 1187.94,2098.65 1191.03,2098.99">
- <lane id="-141191263#0_0" index="0" allow="pedestrian" speed="8.33" length="3.70" shape="1180.59,2095.38 1182.52,2096.49 1183.94,2096.85"/>
- </edge>
- <edge id="-141191263#1" from="1545672797" to="1545672819" priority="1" type="highway.footway">
- <lane id="-141191263#1_0" index="0" allow="pedestrian" speed="8.33" length="0.52" shape="1181.94,2090.05 1181.60,2090.44"/>
- </edge>
- <edge id="-141191264#0" from="1545673092" to="1545673065" priority="1" type="highway.footway" shape="1152.72,2157.95 1133.85,2159.62 1129.91,2159.25 1127.34,2157.84 1125.36,2156.49 1122.59,2153.96">
- <lane id="-141191264#0_0" index="0" allow="pedestrian" speed="8.33" length="24.23" shape="1147.70,2160.05 1133.84,2161.28 1129.42,2160.86 1126.55,2159.28 1124.39,2157.83"/>
- </edge>
- <edge id="-141191264#1" from="1545673123" to="1545673092" priority="1" type="highway.footway" shape="1182.08,2163.41 1161.36,2159.39 1155.15,2158.32 1152.72,2157.95">
- <lane id="-141191264#1_0" index="0" allow="pedestrian" speed="8.33" length="17.49" shape="1174.73,2163.66 1161.04,2161.01 1157.55,2160.41"/>
- </edge>
- <edge id="-149422193#0" from="2265767389" to="443101921" priority="5" type="highway.unclassified">
- <lane id="-149422193#0_0" index="0" speed="22.22" length="1.75" shape="1430.23,895.93 1429.42,894.38"/>
- </edge>
- <edge id="-149422193#1" from="255227483" to="2265767389" priority="5" type="highway.unclassified">
- <lane id="-149422193#1_0" index="0" speed="22.22" length="4.12" shape="1433.90,903.00 1432.00,899.34"/>
- </edge>
- <edge id="-149422199#0" from="255227480" to="255227475" priority="4" type="highway.residential">
- <lane id="-149422199#0_0" index="0" speed="13.89" length="44.04" shape="1349.73,853.48 1312.10,876.36"/>
- </edge>
- <edge id="-149422199#1" from="255227482" to="255227480" priority="4" type="highway.residential">
- <lane id="-149422199#1_0" index="0" speed="13.89" length="34.50" shape="1391.36,828.10 1361.90,846.07"/>
- </edge>
- <edge id="-149422199#2" from="432548414" to="255227482" priority="4" type="highway.residential">
- <lane id="-149422199#2_0" index="0" speed="13.89" length="99.23" shape="1484.34,771.71 1399.49,823.16"/>
- </edge>
- <edge id="-149422210#0" from="1624060630" to="255227482" priority="4" type="highway.residential">
- <lane id="-149422210#0_0" index="0" speed="13.89" length="42.24" shape="1415.06,866.76 1395.58,829.28"/>
- </edge>
- <edge id="-149422210#1" from="443101921" to="1624060630" priority="4" type="highway.residential">
- <lane id="-149422210#1_0" index="0" speed="13.89" length="13.59" shape="1427.26,890.23 1420.99,878.17"/>
- </edge>
- <edge id="-149819220" from="1224074535" to="1224074532" priority="2" type="highway.service">
- <lane id="-149819220_0" index="0" allow="delivery" speed="5.56" length="55.78" shape="660.39,1055.08 686.41,1104.42"/>
- </edge>
- <edge id="-149819222" from="1627657715" to="1627657783" priority="2" type="highway.service">
- <lane id="-149819222_0" index="0" allow="delivery" speed="5.56" length="55.07" shape="699.06,1099.56 674.11,1050.47"/>
- </edge>
- <edge id="-149819224" from="1627657825" to="1627657822" priority="2" type="highway.service">
- <lane id="-149819224_0" index="0" allow="delivery" speed="5.56" length="61.71" shape="667.32,1114.31 639.07,1059.44"/>
- </edge>
- <edge id="-149819227#0" from="1239243628" to="1224074527" priority="5" type="highway.unclassified">
- <lane id="-149819227#0_0" index="0" speed="22.22" length="49.85" shape="651.72,1129.52 607.29,1152.11"/>
- </edge>
- <edge id="-149819227#1" from="1627657825" to="1239243628" priority="5" type="highway.unclassified">
- <lane id="-149819227#1_0" index="0" speed="22.22" length="8.12" shape="667.50,1121.42 660.29,1125.14"/>
- </edge>
- <edge id="-149819227#2" from="1224074532" to="1627657825" priority="5" type="highway.unclassified">
- <lane id="-149819227#2_0" index="0" speed="22.22" length="8.71" shape="683.69,1113.08 675.95,1117.07"/>
- </edge>
- <edge id="-149819227#3" from="1627657715" to="1224074532" priority="5" type="highway.unclassified">
- <lane id="-149819227#3_0" index="0" speed="22.22" length="7.31" shape="698.69,1106.73 691.87,1109.37"/>
- </edge>
- <edge id="-149819232#0" from="1224074535" to="1627657783" priority="5" type="highway.unclassified">
- <lane id="-149819232#0_0" index="0" speed="22.22" length="10.22" shape="661.83,1047.93 671.93,1046.36"/>
- </edge>
- <edge id="-149819232#1" from="1627657822" to="1224074535" priority="5" type="highway.unclassified">
- <lane id="-149819232#1_0" index="0" speed="22.22" length="8.71" shape="643.47,1050.79 652.08,1049.45"/>
- </edge>
- <edge id="-149819232#2" from="1224091971" to="1627657822" priority="5" type="highway.unclassified">
- <lane id="-149819232#2_0" index="0" speed="22.22" length="8.57" shape="625.26,1053.64 633.73,1052.31"/>
- </edge>
- <edge id="-149819232#3" from="1224074526" to="1224091971" priority="5" type="highway.unclassified" shape="562.74,1065.06 581.95,1062.06 600.63,1059.15 619.60,1056.19">
- <lane id="-149819232#3_0" index="0" speed="22.22" length="53.70" shape="562.49,1063.43 581.70,1060.43 600.38,1057.52 615.54,1055.16"/>
- </edge>
- <edge id="-149868584#0" from="255227483" to="13990620" priority="7" type="highway.secondary" shape="1437.23,905.83 1504.88,867.61 1538.48,848.32 1573.50,828.93 1652.76,784.92 1735.40,738.79 1751.39,729.54 1756.16,726.92 1765.26,719.21">
- <lane id="-149868584#0_0" index="0" speed="27.78" length="372.01" shape="1439.13,899.07 1502.45,863.30 1536.02,844.03 1571.10,824.60 1650.36,780.60 1732.99,734.47 1748.92,725.26 1753.33,722.82 1762.06,715.43"/>
- <lane id="-149868584#0_1" index="1" speed="27.78" length="372.01" shape="1440.76,901.94 1504.07,866.17 1537.66,846.89 1572.70,827.49 1651.96,783.48 1734.60,737.35 1750.57,728.11 1755.22,725.55 1764.19,717.95"/>
- </edge>
- <edge id="-149868584#1" from="255227471" to="255227483" priority="7" type="highway.secondary">
- <lane id="-149868584#1_0" index="0" speed="27.78" length="95.24" shape="1347.84,950.87 1430.67,903.86"/>
- <lane id="-149868584#1_1" index="1" speed="27.78" length="95.24" shape="1349.47,953.74 1432.30,906.73"/>
- </edge>
- <edge id="-149868584#2" from="1168929657" to="255227471" priority="7" type="highway.secondary">
- <lane id="-149868584#2_0" index="0" speed="27.78" length="162.54" shape="1195.32,1036.17 1337.20,956.86"/>
- <lane id="-149868584#2_1" index="1" speed="27.78" length="162.54" shape="1196.93,1039.05 1338.81,959.74"/>
- </edge>
- <edge id="-149868584#3" from="1726394724" to="1168929657" priority="7" type="highway.secondary">
- <lane id="-149868584#3_0" index="0" speed="27.78" length="19.18" shape="1172.68,1048.96 1189.37,1039.52"/>
- <lane id="-149868584#3_1" index="1" speed="27.78" length="19.18" shape="1174.30,1051.84 1190.99,1042.40"/>
- </edge>
- <edge id="-149868584#4" from="1168929383" to="1726394724" priority="7" type="highway.secondary">
- <lane id="-149868584#4_0" index="0" speed="27.78" length="17.23" shape="1143.26,1065.60 1158.26,1057.12"/>
- <lane id="-149868584#4_1" index="1" speed="27.78" length="17.23" shape="1144.88,1068.47 1159.88,1059.99"/>
- </edge>
- <edge id="-149868584#5" from="767282288" to="1168929383" priority="7" type="highway.secondary">
- <lane id="-149868584#5_0" index="0" speed="27.78" length="218.15" shape="947.89,1176.63 1137.55,1068.84"/>
- <lane id="-149868584#5_1" index="1" speed="27.78" length="218.15" shape="949.52,1179.50 1139.18,1071.71"/>
- </edge>
- <edge id="-149868584#6" from="13929775" to="767282288" priority="7" type="highway.secondary">
- <lane id="-149868584#6_0" index="0" speed="27.78" length="0.64" shape="938.61,1181.91 939.16,1181.60"/>
- <lane id="-149868584#6_1" index="1" speed="27.78" length="0.64" shape="940.24,1184.78 940.80,1184.46"/>
- </edge>
- <edge id="-149868584#7" from="438042369" to="13929775" priority="7" type="highway.secondary">
- <lane id="-149868584#7_0" index="0" speed="27.78" length="7.13" shape="926.43,1188.85 932.63,1185.32"/>
- <lane id="-149868584#7_1" index="1" speed="27.78" length="7.13" shape="928.06,1191.72 934.26,1188.19"/>
- </edge>
- <edge id="-149868584#8" from="438042367" to="438042369" priority="7" type="highway.secondary">
- <lane id="-149868584#8_0" index="0" speed="27.78" length="1.62" shape="913.87,1196.01 915.28,1195.20"/>
- <lane id="-149868584#8_1" index="1" speed="27.78" length="1.62" shape="915.51,1198.87 916.91,1198.07"/>
- </edge>
- <edge id="-151164683" from="1718241040" to="1639892546" priority="1" type="highway.footway" shape="755.09,305.48 765.84,314.28 827.26,437.09 941.95,654.06 1055.17,864.46 1125.03,1000.52 1136.82,1024.60">
- <lane id="-151164683_0" index="0" allow="pedestrian" speed="8.33" length="811.17" shape="756.13,304.20 767.16,313.22 828.73,436.35 943.41,653.29 1056.62,863.68 1126.49,999.76 1136.16,1019.51"/>
- </edge>
- <edge id="-154409621" from="248913124" to="566579340" priority="9" type="highway.primary">
- <lane id="-154409621_0" index="0" speed="27.78" length="156.37" shape="1418.91,1925.11 1557.39,1852.48"/>
- </edge>
- <edge id="-154844500#0" from="441266880" to="1669480281" priority="7" type="highway.secondary">
- <lane id="-154844500#0_0" index="0" speed="27.78" length="7.28" shape="1463.56,1580.25 1457.12,1583.62"/>
- </edge>
- <edge id="-154844500#1" from="1669480280" to="441266880" priority="7" type="highway.secondary">
- <lane id="-154844500#1_0" index="0" speed="27.78" length="4.06" shape="1469.92,1576.93 1466.32,1578.81"/>
- </edge>
- <edge id="-154844500#2" from="441266854" to="1669480280" priority="7" type="highway.secondary" shape="1800.95,1402.27 1690.06,1460.13 1577.25,1519.04 1469.16,1575.47">
- <lane id="-154844500#2_0" index="0" speed="27.78" length="369.52" shape="1801.71,1403.73 1690.82,1461.60 1578.01,1520.50 1474.14,1574.73"/>
- </edge>
- <edge id="-154844500#3" from="248913154" to="441266854" priority="7" type="highway.secondary">
- <lane id="-154844500#3_0" index="0" speed="27.78" length="17.26" shape="1817.00,1395.72 1801.71,1403.73"/>
- </edge>
- <edge id="-154844503" from="1726394726" to="1669480282" priority="7" type="highway.secondary">
- <lane id="-154844503_0" index="0" speed="27.78" length="0.28" shape="1448.03,1592.09 1447.78,1592.22"/>
- <lane id="-154844503_1" index="1" speed="27.78" length="0.28" shape="1446.50,1589.17 1446.25,1589.30"/>
- </edge>
- <edge id="-160584981" from="1726380184" to="1726380187" priority="5" type="highway.unclassified" shape="681.18,1353.27 683.52,1357.65 712.82,1412.54">
- <lane id="-160584981_0" index="0" speed="22.22" length="64.32" shape="684.14,1355.30 684.98,1356.88 714.43,1412.05"/>
- </edge>
- <edge id="-160584984" from="1224080669" to="446017738" priority="5" type="highway.unclassified" shape="521.64,1031.63 621.99,1227.58 668.61,1317.24 667.27,1326.71">
- <lane id="-160584984_0" index="0" speed="22.22" length="319.70" shape="525.79,1036.11 623.46,1226.82 670.32,1316.95 669.78,1320.76"/>
- </edge>
- <edge id="-160587537#0" from="1726394727" to="1726394726" priority="7" type="highway.secondary">
- <lane id="-160587537#0_0" index="0" speed="27.78" length="11.46" shape="1448.53,1601.44 1443.09,1590.72"/>
- <lane id="-160587537#0_1" index="1" speed="27.78" length="11.46" shape="1450.96,1598.93 1446.03,1589.22"/>
- </edge>
- <edge id="-160587537#1" from="1726394728" to="1726394727" priority="7" type="highway.secondary">
- <lane id="-160587537#1_0" index="0" speed="27.78" length="250.54" shape="1566.72,1826.46 1450.19,1604.66"/>
- <lane id="-160587537#1_1" index="1" speed="27.78" length="250.54" shape="1569.64,1824.92 1453.11,1603.13"/>
- </edge>
- <edge id="-160587537#2" from="1726394729" to="1726394728" priority="7" type="highway.secondary">
- <lane id="-160587537#2_0" index="0" speed="27.78" length="2.43" shape="1570.65,1834.28 1569.58,1832.09"/>
- <lane id="-160587537#2_1" index="1" speed="27.78" length="2.43" shape="1573.61,1832.82 1572.54,1830.64"/>
- </edge>
- <edge id="-160587537#3" from="13929752" to="1726394729" priority="7" type="highway.secondary">
- <lane id="-160587537#3_0" index="0" speed="27.78" length="1.40" shape="1576.58,1844.78 1575.84,1843.59"/>
- <lane id="-160587537#3_1" index="1" speed="27.78" length="1.40" shape="1579.38,1843.03 1578.64,1841.84"/>
- </edge>
- <edge id="-160587538#0" from="2081499950" to="1726394722" priority="7" type="highway.secondary">
- <lane id="-160587538#0_0" index="0" speed="27.78" length="186.57" shape="1141.76,1019.62 1055.54,853.53"/>
- <lane id="-160587538#0_1" index="1" speed="27.78" length="186.57" shape="1144.16,1017.09 1058.47,852.01"/>
- </edge>
- <edge id="-160587538#1" from="1168929634" to="2081499950" priority="7" type="highway.secondary">
- <lane id="-160587538#1_0" index="0" speed="27.78" length="10.68" shape="1148.31,1032.25 1143.39,1022.78"/>
- <lane id="-160587538#1_1" index="1" speed="27.78" length="10.68" shape="1151.24,1030.73 1146.32,1021.25"/>
- </edge>
- <edge id="-160587538#2" from="1726394723" to="1168929634" priority="7" type="highway.secondary">
- <lane id="-160587538#2_0" index="0" speed="27.78" length="18.03" shape="1158.77,1050.74 1149.84,1035.06"/>
- <lane id="-160587538#2_1" index="1" speed="27.78" length="18.03" shape="1161.61,1049.06 1152.71,1033.42"/>
- </edge>
- <edge id="-160587538#3" from="1726394724" to="1726394723" priority="7" type="highway.secondary">
- <lane id="-160587538#3_0" index="0" speed="27.78" length="0.90" shape="1160.21,1053.32 1159.78,1052.53"/>
- <lane id="-160587538#3_1" index="1" speed="27.78" length="0.90" shape="1163.11,1051.73 1162.67,1050.94"/>
- </edge>
- <edge id="-160587538#4" from="1726394725" to="1726394724" priority="7" type="highway.secondary">
- <lane id="-160587538#4_0" index="0" speed="27.78" length="1.24" shape="1167.32,1067.03 1166.78,1065.92"/>
- <lane id="-160587538#4_1" index="1" speed="27.78" length="1.24" shape="1170.28,1065.57 1169.74,1064.46"/>
- </edge>
- <edge id="-160587538#5" from="1168929558" to="1726394725" priority="7" type="highway.secondary">
- <lane id="-160587538#5_0" index="0" speed="27.78" length="19.43" shape="1177.19,1085.99 1168.18,1068.70"/>
- <lane id="-160587538#5_1" index="1" speed="27.78" length="19.43" shape="1180.06,1084.35 1171.11,1067.17"/>
- </edge>
- <edge id="-160587538#6" from="1913728534" to="1168929558" priority="7" type="highway.secondary">
- <lane id="-160587538#6_0" index="0" speed="27.78" length="242.43" shape="1291.59,1303.22 1178.62,1088.72"/>
- <lane id="-160587538#6_1" index="1" speed="27.78" length="242.43" shape="1294.51,1301.68 1181.54,1087.18"/>
- </edge>
- <edge id="-160587538#7" from="1726394726" to="1913728534" priority="7" type="highway.secondary" shape="1446.82,1587.14 1305.20,1318.43 1295.97,1300.91">
- <lane id="-160587538#7_0" index="0" speed="27.78" length="318.81" shape="1441.00,1586.71 1300.82,1320.73 1291.59,1303.22"/>
- <lane id="-160587538#7_1" index="1" speed="27.78" length="318.81" shape="1442.39,1582.26 1303.74,1319.19 1294.51,1301.68"/>
- </edge>
- <edge id="-160587542" from="1669480281" to="1726394726" priority="7" type="highway.secondary">
- <lane id="-160587542_0" index="0" speed="27.78" length="3.61" shape="1451.87,1590.09 1450.15,1590.99"/>
- <lane id="-160587542_1" index="1" speed="27.78" length="3.61" shape="1453.31,1585.62 1448.62,1588.06"/>
- </edge>
- <edge id="-166576459" from="1780219374" to="1780219355" priority="1" type="highway.footway">
- <lane id="-166576459_0" index="0" allow="pedestrian" speed="8.33" length="16.42" shape="809.60,1161.65 795.96,1152.51"/>
- </edge>
- <edge id="-166576461#0" from="1780219366" to="1224074534" priority="1" type="highway.footway">
- <lane id="-166576461#0_0" index="0" allow="pedestrian" speed="8.33" length="43.72" shape="789.25,1039.23 782.27,1082.39"/>
- </edge>
- <edge id="-166576461#1" from="1168929652" to="1780219366" priority="1" type="highway.footway" shape="765.18,988.02 770.39,994.53 788.36,1034.38">
- <lane id="-166576461#1_0" index="0" allow="pedestrian" speed="8.33" length="42.02" shape="770.92,992.56 771.80,993.66 788.50,1030.68"/>
- </edge>
- <edge id="-166576462#0" from="1780219377" to="1780219365" priority="1" type="highway.footway">
- <lane id="-166576462#0_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="953.10,1210.20 954.09,1209.59"/>
- </edge>
- <edge id="-166576462#1" from="1780219361" to="1780219377" priority="1" type="highway.footway">
- <lane id="-166576462#1_0" index="0" allow="pedestrian" speed="8.33" length="10.38" shape="938.47,1218.13 947.66,1213.31"/>
- </edge>
- <edge id="-166576462#2" from="1780219359" to="1780219361" priority="1" type="highway.footway">
- <lane id="-166576462#2_0" index="0" allow="pedestrian" speed="8.33" length="2.44" shape="927.86,1223.80 930.01,1222.64"/>
- </edge>
- <edge id="-166576462#3" from="1780219341" to="1780219359" priority="1" type="highway.footway" shape="909.11,1223.86 912.89,1233.84 924.37,1227.56">
- <lane id="-166576462#3_0" index="0" allow="pedestrian" speed="8.33" length="11.47" shape="911.94,1226.65 913.76,1231.48 919.30,1228.45"/>
- </edge>
- <edge id="-166576462#4" from="1780219353" to="1780219341" priority="1" type="highway.footway">
- <lane id="-166576462#4_0" index="0" allow="pedestrian" speed="8.33" length="5.50" shape="906.57,1215.37 909.10,1220.25"/>
- </edge>
- <edge id="-166576462#5" from="1780219360" to="1780219353" priority="1" type="highway.footway">
- <lane id="-166576462#5_0" index="0" allow="pedestrian" speed="8.33" length="4.03" shape="897.11,1197.30 898.99,1200.87"/>
- </edge>
- <edge id="-166576462#6" from="1780219369" to="1780219360" priority="1" type="highway.footway">
- <lane id="-166576462#6_0" index="0" allow="pedestrian" speed="8.33" length="2.61" shape="891.56,1189.33 893.19,1191.37"/>
- </edge>
- <edge id="-166576462#7" from="1780219335" to="1780219369" priority="1" type="highway.footway" shape="860.88,1140.91 879.47,1175.79 886.89,1186.10">
- <lane id="-166576462#7_0" index="0" allow="pedestrian" speed="8.33" length="42.98" shape="864.55,1144.29 880.93,1175.01 885.70,1181.63"/>
- </edge>
- <edge id="-166576462#8" from="1780219348" to="1780219335" priority="1" type="highway.footway">
- <lane id="-166576462#8_0" index="0" allow="pedestrian" speed="8.33" length="15.91" shape="852.73,1121.84 860.12,1135.92"/>
- </edge>
- <edge id="-166576462#9" from="1780219373" to="1780219348" priority="1" type="highway.footway" shape="814.82,1037.83 814.19,1050.57 843.27,1107.37">
- <lane id="-166576462#9_0" index="0" allow="pedestrian" speed="8.33" length="83.39" shape="816.25,1042.40 815.86,1050.21 850.30,1117.48"/>
- </edge>
- <edge id="-166576463" from="1780219348" to="1780219344" priority="1" type="highway.footway">
- <lane id="-166576463_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="846.21,1124.40 847.53,1141.89"/>
- </edge>
- <edge id="-166576464#0" from="1780219373" to="1780219366" priority="1" type="highway.footway">
- <lane id="-166576464#0_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="810.15,1038.88 792.76,1036.61"/>
- </edge>
- <edge id="-166576464#1" from="1780219331" to="1780219373" priority="1" type="highway.footway">
- <lane id="-166576464#1_0" index="0" allow="pedestrian" speed="8.33" length="6.06" shape="820.93,1036.35 815.62,1039.27"/>
- </edge>
- <edge id="-166576464#2" from="1780219342" to="1780219331" priority="1" type="highway.footway">
- <lane id="-166576464#2_0" index="0" allow="pedestrian" speed="8.33" length="3.32" shape="829.10,1028.66 826.69,1030.95"/>
- </edge>
- <edge id="-166576464#3" from="1780219363" to="1780219342" priority="1" type="highway.footway">
- <lane id="-166576464#3_0" index="0" allow="pedestrian" speed="8.33" length="6.68" shape="844.28,1012.05 839.95,1017.14"/>
- </edge>
- <edge id="-166576464#4" from="1780219371" to="1780219363" priority="1" type="highway.footway">
- <lane id="-166576464#4_0" index="0" allow="pedestrian" speed="8.33" length="1.70" shape="850.13,1006.00 848.86,1007.14"/>
- </edge>
- <edge id="-166576466#0" from="1780219344" to="1780219335" priority="1" type="highway.footway">
- <lane id="-166576466#0_0" index="0" allow="pedestrian" speed="8.33" length="5.15" shape="851.30,1144.00 855.88,1141.64"/>
- </edge>
- <edge id="-166576466#1" from="1780219374" to="1780219344" priority="1" type="highway.footway">
- <lane id="-166576466#1_0" index="0" allow="pedestrian" speed="8.33" length="26.87" shape="818.58,1161.10 842.38,1148.63"/>
- </edge>
- <edge id="-166576466#2" from="1780219345" to="1780219374" priority="1" type="highway.footway" shape="786.51,1179.73 795.03,1175.31 816.31,1164.16">
- <lane id="-166576466#2_0" index="0" allow="pedestrian" speed="8.33" length="18.77" shape="792.74,1174.64 794.27,1173.84 809.37,1165.93"/>
- </edge>
- <edge id="-166576468#0" from="1780219343" to="1780219369" priority="1" type="highway.footway">
- <lane id="-166576468#0_0" index="0" allow="pedestrian" speed="8.33" length="0.29" shape="892.73,1184.91 892.47,1185.04"/>
- </edge>
- <edge id="-166576468#1" from="1780219352" to="1780219343" priority="1" type="highway.footway">
- <lane id="-166576468#1_0" index="0" allow="pedestrian" speed="8.33" length="2.76" shape="906.58,1177.69 904.13,1178.97"/>
- </edge>
- <edge id="-166576468#2" from="1780219362" to="1780219352" priority="1" type="highway.footway">
- <lane id="-166576468#2_0" index="0" allow="pedestrian" speed="8.33" length="7.40" shape="924.51,1168.34 917.95,1171.76"/>
- </edge>
- <edge id="-166576468#3" from="1780219332" to="1780219362" priority="1" type="highway.footway">
- <lane id="-166576468#3_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="931.05,1164.93 930.02,1165.46"/>
- </edge>
- <edge id="-166625256#0" from="1244292210" to="1244292219" priority="1" type="highway.pedestrian" shape="1166.69,1743.45 1149.19,1709.42 1064.23,1752.83 1081.72,1786.85">
- <lane id="-166625256#0_0" index="0" allow="pedestrian" speed="8.33" length="158.83" shape="1163.73,1741.30 1148.48,1711.64 1066.45,1753.55 1081.71,1783.22"/>
- </edge>
- <edge id="-166625256#1" from="1244292219" to="1244292210" priority="1" type="highway.pedestrian">
- <lane id="-166625256#1_0" index="0" allow="pedestrian" speed="8.33" length="88.91" shape="1083.86,1783.91 1163.03,1743.46"/>
- </edge>
- <edge id="-166625259" from="1780623649" to="438042379" priority="2" type="highway.service" shape="943.97,1747.10 1111.17,1662.53 1125.23,1656.38">
- <lane id="-166625259_0" index="0" allow="delivery" speed="5.56" length="199.47" shape="943.22,1745.63 1110.43,1661.05 1121.51,1656.21"/>
- </edge>
- <edge id="-166728377#0" from="255227482" to="255227480" priority="1" type="highway.pedestrian">
- <lane id="-166728377#0_0" index="0" allow="pedestrian" speed="8.33" length="34.50" shape="1391.36,828.10 1361.90,846.07"/>
- </edge>
- <edge id="-166728377#1" from="1624060630" to="255227482" priority="1" type="highway.pedestrian">
- <lane id="-166728377#1_0" index="0" allow="pedestrian" speed="8.33" length="42.24" shape="1415.06,866.76 1395.58,829.28"/>
- </edge>
- <edge id="-166728377#2" from="255227480" to="1624060630" priority="1" type="highway.pedestrian">
- <lane id="-166728377#2_0" index="0" allow="pedestrian" speed="8.33" length="53.75" shape="1362.27,850.25 1412.35,869.77"/>
- </edge>
- <edge id="-179692877#0" from="1168929398" to="444026889" priority="6" type="highway.tertiary">
- <lane id="-179692877#0_0" index="0" speed="22.22" length="44.11" shape="808.12,1035.99 803.15,1079.82"/>
- </edge>
- <edge id="-179692877#1" from="441236049" to="1168929398" priority="6" type="highway.tertiary" shape="810.99,1017.83 808.39,1027.28 806.50,1035.63">
- <lane id="-179692877#1_0" index="0" speed="22.22" length="6.04" shape="809.48,1029.93 808.15,1035.82"/>
- </edge>
- <edge id="-179917803#0" from="1224074534" to="1627657715" priority="5" type="highway.unclassified" shape="779.72,1087.83 707.93,1101.38 702.84,1103.36">
- <lane id="-179917803#0_0" index="0" speed="22.22" length="69.99" shape="776.31,1090.16 708.38,1102.98 707.58,1103.29"/>
- </edge>
- <edge id="-179917803#1" from="1224074533" to="1224074534" priority="5" type="highway.unclassified">
- <lane id="-179917803#1_0" index="0" speed="22.22" length="3.88" shape="785.64,1088.83 781.79,1089.26"/>
- </edge>
- <edge id="-190048065" from="450564005" to="2006433692" priority="5" type="highway.unclassified">
- <lane id="-190048065_0" index="0" speed="22.22" length="127.75" shape="1395.85,2148.11 1336.70,2034.88"/>
- </edge>
- <edge id="-191056427#0" from="2016414184" to="2016414185" priority="2" type="highway.service">
- <lane id="-191056427#0_0" index="0" allow="delivery" speed="5.56" length="10.89" shape="842.01,1633.45 831.66,1636.85"/>
- </edge>
- <edge id="-191056427#1" from="1719223329" to="2016414184" priority="2" type="highway.service" shape="921.87,1598.37 911.34,1598.13 871.10,1615.22 847.03,1630.06 836.73,1633.45">
- <lane id="-191056427#1_0" index="0" allow="delivery" speed="5.56" length="80.44" shape="919.49,1599.97 911.66,1599.79 871.74,1616.74 847.73,1631.56 846.76,1631.88"/>
- </edge>
- <edge id="-191176261" from="2017759586" to="2017759592" priority="1" type="highway.footway">
- <lane id="-191176261_0" index="0" allow="pedestrian" speed="8.33" length="6.41" shape="861.79,1725.25 864.92,1730.85"/>
- </edge>
- <edge id="-191176262" from="1474873139" to="2017759586" priority="1" type="highway.footway">
- <lane id="-191176262_0" index="0" allow="pedestrian" speed="8.33" length="64.64" shape="797.66,1752.53 855.30,1723.28"/>
- </edge>
- <edge id="-191176263" from="2017759596" to="2017759594" priority="1" type="highway.footway">
- <lane id="-191176263_0" index="0" allow="pedestrian" speed="8.33" length="4.93" shape="869.34,1745.13 867.38,1740.61"/>
- </edge>
- <edge id="-191176264" from="2017759592" to="2017759594" priority="1" type="highway.footway">
- <lane id="-191176264_0" index="0" allow="pedestrian" speed="8.33" length="7.13" shape="865.00,1730.98 869.06,1736.83"/>
- </edge>
- <edge id="-191176265" from="2017759594" to="1474873137" priority="1" type="highway.footway">
- <lane id="-191176265_0" index="0" allow="pedestrian" speed="8.33" length="5.57" shape="870.17,1738.32 873.73,1742.60"/>
- </edge>
- <edge id="-191176266" from="2017759594" to="1474873133" priority="1" type="highway.footway">
- <lane id="-191176266_0" index="0" allow="pedestrian" speed="8.33" length="7.46" shape="866.56,1738.55 864.19,1731.47"/>
- </edge>
- <edge id="-191176267" from="2017759615" to="2017759596" priority="1" type="highway.footway" shape="858.28,1762.79 876.21,1753.74 870.93,1744.65">
- <lane id="-191176267_0" index="0" allow="pedestrian" speed="8.33" length="26.90" shape="857.54,1761.32 873.90,1753.05 869.60,1745.64"/>
- </edge>
- <edge id="-191176268" from="1474873133" to="2017759588" priority="1" type="highway.footway" shape="865.67,1730.70 864.67,1728.78 875.15,1726.33">
- <lane id="-191176268_0" index="0" allow="pedestrian" speed="8.33" length="11.24" shape="864.09,1731.23 862.23,1727.66 869.25,1726.02"/>
- </edge>
- <edge id="-197781817" from="2079750190" to="1625774769" priority="1" type="highway.footway" shape="1477.48,2184.33 1519.37,2263.89 1576.84,2373.05 1638.79,2492.24">
- <lane id="-197781817_0" index="0" allow="pedestrian" speed="8.33" length="342.84" shape="1481.16,2187.79 1520.83,2263.12 1578.30,2372.28 1640.25,2491.48"/>
- </edge>
- <edge id="-197794762" from="1431113444" to="2079750190" priority="1" type="highway.footway">
- <lane id="-197794762_0" index="0" allow="pedestrian" speed="8.33" length="21.71" shape="1501.76,2173.63 1482.48,2183.60"/>
- </edge>
- <edge id="-197955309#0" from="1639892546" to="2081499952" priority="1" type="highway.footway">
- <lane id="-197955309#0_0" index="0" allow="pedestrian" speed="8.33" length="1.67" shape="1133.58,1028.26 1132.12,1029.07"/>
- </edge>
- <edge id="-197955309#1" from="2081499951" to="1639892546" priority="1" type="highway.footway">
- <lane id="-197955309#1_0" index="0" allow="pedestrian" speed="8.33" length="3.61" shape="1141.89,1023.77 1138.70,1025.47"/>
- </edge>
- <edge id="-197955309#2" from="2081499950" to="2081499951" priority="1" type="highway.footway">
- <lane id="-197955309#2_0" index="0" allow="pedestrian" speed="8.33" length="0.67" shape="1147.13,1021.01 1146.54,1021.32"/>
- </edge>
- <edge id="-197955309#3" from="2081499949" to="2081499950" priority="1" type="highway.footway">
- <lane id="-197955309#3_0" index="0" allow="pedestrian" speed="8.33" length="4.91" shape="1153.40,1017.69 1149.06,1019.99"/>
- </edge>
- <edge id="-197955309#4" from="2081499948" to="2081499949" priority="1" type="highway.footway">
- <lane id="-197955309#4_0" index="0" allow="pedestrian" speed="8.33" length="3.50" shape="1156.34,1016.00 1153.30,1017.74"/>
- </edge>
- <edge id="-197955309#5" from="2081499947" to="2081499948" priority="1" type="highway.footway">
- <lane id="-197955309#5_0" index="0" allow="pedestrian" speed="8.33" length="3.49" shape="1163.60,1012.16 1160.52,1013.79"/>
- </edge>
- <edge id="-23066446#0" from="452425488" to="248913130" priority="4" type="highway.residential">
- <lane id="-23066446#0_0" index="0" speed="13.89" length="9.95" shape="1275.55,1804.38 1266.71,1808.95"/>
- </edge>
- <edge id="-23066446#1" from="248913131" to="452425488" priority="4" type="highway.residential">
- <lane id="-23066446#1_0" index="0" speed="13.89" length="55.95" shape="1333.44,1773.73 1284.02,1799.95"/>
- </edge>
- <edge id="-23066446#2" from="248913133" to="248913131" priority="4" type="highway.residential">
- <lane id="-23066446#2_0" index="0" speed="13.89" length="75.62" shape="1405.77,1735.34 1338.97,1770.79"/>
- </edge>
- <edge id="-23066446#3" from="443089062" to="248913133" priority="4" type="highway.residential">
- <lane id="-23066446#3_0" index="0" speed="13.89" length="75.68" shape="1478.37,1697.39 1411.29,1732.44"/>
- </edge>
- <edge id="-23066462#0" from="250689186" to="248913200" priority="1" type="highway.pedestrian" shape="1348.78,1223.51 1335.59,1219.93 1321.70,1219.55 1306.94,1224.00 1290.84,1231.35">
- <lane id="-23066462#0_0" index="0" allow="pedestrian" speed="8.33" length="51.99" shape="1344.40,1224.03 1335.34,1221.57 1321.92,1221.20 1307.42,1225.58 1294.65,1231.42"/>
- </edge>
- <edge id="-23066462#1" from="441266870" to="250689186" priority="1" type="highway.pedestrian" shape="1370.27,1239.60 1358.96,1229.91 1348.78,1223.51">
- <lane id="-23066462#1_0" index="0" allow="pedestrian" speed="8.33" length="18.40" shape="1366.34,1238.41 1357.89,1231.16 1351.73,1227.31"/>
- </edge>
- <edge id="-23066462#2" from="250689131" to="441266870" priority="1" type="highway.pedestrian" shape="1383.02,1266.41 1379.18,1251.74 1370.27,1239.60">
- <lane id="-23066462#2_0" index="0" allow="pedestrian" speed="8.33" length="18.75" shape="1380.00,1261.36 1377.67,1252.47 1372.01,1244.76"/>
- </edge>
- <edge id="-23066462#3" from="250689201" to="250689131" priority="1" type="highway.pedestrian" shape="1384.40,1289.75 1384.59,1277.96 1383.02,1266.41">
- <lane id="-23066462#3_0" index="0" allow="pedestrian" speed="8.33" length="14.70" shape="1382.83,1284.97 1382.94,1277.93 1381.90,1270.34"/>
- </edge>
- <edge id="-23066462#4" from="248913200" to="250689201" priority="1" type="highway.pedestrian" shape="1290.84,1231.35 1345.01,1334.36 1363.65,1322.46 1378.26,1306.06 1384.40,1289.75">
- <lane id="-23066462#4_0" index="0" allow="pedestrian" speed="8.33" length="166.01" shape="1293.90,1233.62 1345.64,1332.00 1362.57,1321.19 1376.82,1305.19 1381.52,1292.71"/>
- </edge>
- <edge id="-23182358#0" from="250683336" to="250685766" priority="5" type="highway.unclassified">
- <lane id="-23182358#0_0" index="0" speed="22.22" length="93.53" shape="1207.86,2371.82 1164.61,2288.89"/>
- </edge>
- <edge id="-23182358#1" from="250684983" to="250683336" priority="5" type="highway.unclassified" shape="1313.08,2568.15 1264.20,2474.18 1210.76,2373.81">
- <lane id="-23182358#1_0" index="0" speed="22.22" length="216.45" shape="1311.62,2568.91 1262.74,2474.95 1210.80,2377.38"/>
- </edge>
- <edge id="-23182358#2" from="2004733211" to="250684983" priority="5" type="highway.unclassified" shape="1465.13,2867.89 1462.78,2857.50 1459.79,2849.82 1452.46,2835.71 1396.85,2729.13 1355.30,2649.19 1313.08,2568.15">
- <lane id="-23182358#2_0" index="0" speed="22.22" length="336.06" shape="1463.52,2868.26 1461.17,2857.86 1458.26,2850.42 1451.00,2836.47 1395.38,2729.90 1353.84,2649.95 1311.62,2568.91"/>
- </edge>
- <edge id="-23182484#0" from="250685829" to="450564006" priority="5" type="highway.unclassified">
- <lane id="-23182484#0_0" index="0" speed="22.22" length="8.03" shape="1392.84,2162.66 1399.97,2158.96"/>
- </edge>
- <edge id="-23182484#1" from="1367855925" to="250685829" priority="5" type="highway.unclassified">
- <lane id="-23182484#1_0" index="0" speed="22.22" length="0.26" shape="1383.27,2167.66 1383.50,2167.53"/>
- </edge>
- <edge id="-23182484#2" from="250685816" to="1367855925" priority="5" type="highway.unclassified">
- <lane id="-23182484#2_0" index="0" speed="22.22" length="107.01" shape="1280.58,2222.14 1375.11,2171.99"/>
- </edge>
- <edge id="-23182517#0" from="450564003" to="250685766" priority="5" type="highway.unclassified">
- <lane id="-23182517#0_0" index="0" speed="22.22" length="3.26" shape="1163.12,2278.98 1164.64,2281.86"/>
- </edge>
- <edge id="-23182517#1" from="975934878" to="450564003" priority="5" type="highway.unclassified">
- <lane id="-23182517#1_0" index="0" speed="22.22" length="2.26" shape="1159.20,2271.46 1160.24,2273.47"/>
- </edge>
- <edge id="-23182517#2" from="1545673349" to="975934878" priority="5" type="highway.unclassified">
- <lane id="-23182517#2_0" index="0" speed="22.22" length="41.56" shape="1137.76,2228.84 1156.41,2265.98"/>
- </edge>
- <edge id="-23182517#3" from="1545673118" to="1545673349" priority="5" type="highway.unclassified">
- <lane id="-23182517#3_0" index="0" speed="22.22" length="58.59" shape="1107.21,2167.99 1133.50,2220.35"/>
- </edge>
- <edge id="-23182517#4" from="252418937" to="1545673118" priority="5" type="highway.unclassified">
- <lane id="-23182517#4_0" index="0" speed="22.22" length="38.52" shape="1085.65,2125.07 1102.94,2159.49"/>
- </edge>
- <edge id="-23262356#0" from="2265767394" to="255227471" priority="5" type="highway.unclassified">
- <lane id="-23262356#0_0" index="0" speed="22.22" length="4.80" shape="1343.76,949.28 1345.24,953.85"/>
- </edge>
- <edge id="-23262356#1" from="443101920" to="2265767394" priority="5" type="highway.unclassified">
- <lane id="-23262356#1_0" index="0" speed="22.22" length="2.70" shape="1341.86,943.45 1342.70,946.02"/>
- </edge>
- <edge id="-23262356#2" from="255227475" to="443101920" priority="5" type="highway.unclassified">
- <lane id="-23262356#2_0" index="0" speed="22.22" length="65.53" shape="1310.66,880.70 1339.99,939.30"/>
- </edge>
- <edge id="-23262356#3" from="255227472" to="255227475" priority="5" type="highway.unclassified">
- <lane id="-23262356#3_0" index="0" speed="22.22" length="64.98" shape="1272.45,816.93 1306.12,872.50"/>
- </edge>
- <edge id="-23315111#0" from="950094412" to="252418937" priority="5" type="highway.unclassified">
- <lane id="-23315111#0_0" index="0" speed="22.22" length="0.70" shape="1082.57,2118.67 1082.87,2119.31"/>
- </edge>
- <edge id="-23315111#1" from="427996791" to="950094412" priority="5" type="highway.unclassified">
- <lane id="-23315111#1_0" index="0" speed="22.22" length="3.73" shape="1078.42,2109.78 1080.00,2113.16"/>
- </edge>
- <edge id="-23315111#2" from="950094425" to="427996791" priority="5" type="highway.unclassified">
- <lane id="-23315111#2_0" index="0" speed="22.22" length="2.47" shape="1075.86,2104.28 1076.90,2106.52"/>
- </edge>
- <edge id="-23315111#3" from="427996792" to="950094425" priority="5" type="highway.unclassified">
- <lane id="-23315111#3_0" index="0" speed="22.22" length="2.27" shape="1071.32,2094.53 1072.27,2096.59"/>
- </edge>
- <edge id="-23566901#0" from="255227480" to="255227478" priority="4" type="highway.residential" shape="1354.16,848.86 1271.43,783.65 1257.12,791.07">
- <lane id="-23566901#0_0" index="0" speed="13.89" length="113.15" shape="1348.28,846.33 1271.25,785.60 1257.88,792.54"/>
- </edge>
- <edge id="-23566901#1" from="1624060630" to="255227480" priority="4" type="highway.residential">
- <lane id="-23566901#1_0" index="0" speed="13.89" length="53.75" shape="1411.16,872.85 1361.07,853.33"/>
- </edge>
- <edge id="-24573937" from="966193808" to="267169964" priority="5" type="highway.unclassified">
- <lane id="-24573937_0" index="0" speed="22.22" length="77.77" shape="1300.53,1090.86 1232.24,1128.05"/>
- </edge>
- <edge id="-24573939#0" from="267169686" to="267169690" priority="1" type="highway.pedestrian">
- <lane id="-24573939#0_0" index="0" allow="pedestrian" speed="8.33" length="50.18" shape="1412.00,1088.77 1387.23,1045.14"/>
- </edge>
- <edge id="-24573939#1" from="267169715" to="267169686" priority="1" type="highway.pedestrian">
- <lane id="-24573939#1_0" index="0" allow="pedestrian" speed="8.33" length="6.51" shape="1421.96,1108.25 1419.13,1102.38"/>
- </edge>
- <edge id="-24573939#2" from="441266874" to="267169715" priority="1" type="highway.pedestrian">
- <lane id="-24573939#2_0" index="0" allow="pedestrian" speed="8.33" length="63.11" shape="1453.10,1173.80 1426.05,1116.79"/>
- </edge>
- <edge id="-24573947#0" from="2265767392" to="255227483" priority="5" type="highway.unclassified">
- <lane id="-24573947#0_0" index="0" speed="22.22" length="4.53" shape="1439.79,913.65 1437.55,909.71"/>
- </edge>
- <edge id="-24573947#1" from="443101905" to="2265767392" priority="5" type="highway.unclassified">
- <lane id="-24573947#1_0" index="0" speed="22.22" length="0.89" shape="1442.71,918.77 1442.27,918.00"/>
- </edge>
- <edge id="-24573947#2" from="267169634" to="443101905" priority="5" type="highway.unclassified">
- <lane id="-24573947#2_0" index="0" speed="22.22" length="58.20" shape="1471.84,976.29 1445.68,924.31"/>
- </edge>
- <edge id="-24573947#3" from="267169714" to="267169634" priority="5" type="highway.unclassified">
- <lane id="-24573947#3_0" index="0" speed="22.22" length="81.21" shape="1514.84,1059.23 1477.42,987.15"/>
- </edge>
- <edge id="-24573947#4" from="267169795" to="267169714" priority="5" type="highway.unclassified" shape="1576.94,1162.84 1557.82,1139.13 1518.53,1062.74">
- <lane id="-24573947#4_0" index="0" speed="22.22" length="111.91" shape="1575.66,1163.88 1556.43,1140.04 1519.25,1067.75"/>
- </edge>
- <edge id="-34962531#0" from="950640371" to="410296508" priority="5" type="highway.unclassified">
- <lane id="-34962531#0_0" index="0" speed="22.22" length="3.13" shape="671.87,1331.78 673.36,1334.54"/>
- </edge>
- <edge id="-34962531#1" from="446017738" to="950640371" priority="5" type="highway.unclassified">
- <lane id="-34962531#1_0" index="0" speed="22.22" length="0.18" shape="670.23,1328.72 670.31,1328.87"/>
- </edge>
- <edge id="-37638470#0" from="1168929652" to="1168929308" priority="5" type="highway.unclassified">
- <lane id="-37638470#0_0" index="0" speed="22.22" length="2.42" shape="771.98,985.32 774.37,984.96"/>
- </edge>
- <edge id="-37638470#1" from="1224080669" to="1168929652" priority="5" type="highway.unclassified" shape="521.64,1031.63 543.93,1027.58 765.18,988.02">
- <lane id="-37638470#1_0" index="0" speed="22.22" length="238.10" shape="527.13,1028.96 543.64,1025.96 761.51,987.00"/>
- </edge>
- <edge id="-37638470#2" from="484282961" to="1224080669" priority="5" type="highway.unclassified">
- <lane id="-37638470#2_0" index="0" speed="22.22" length="3.92" shape="513.64,1031.40 517.50,1030.71"/>
- </edge>
- <edge id="-37640549#0" from="267169714" to="441266865" priority="5" type="highway.unclassified">
- <lane id="-37640549#0_0" index="0" speed="22.22" length="93.33" shape="1521.97,1058.98 1603.87,1014.24"/>
- </edge>
- <edge id="-37640549#1" from="267169715" to="267169714" priority="5" type="highway.unclassified">
- <lane id="-37640549#1_0" index="0" speed="22.22" length="95.51" shape="1429.10,1108.18 1513.52,1063.52"/>
- </edge>
- <edge id="-37772597#0" from="2265767395" to="255227471" priority="5" type="highway.unclassified">
- <lane id="-37772597#0_0" index="0" speed="22.22" length="5.46" shape="1345.91,966.49 1344.21,961.30"/>
- </edge>
- <edge id="-37772597#1" from="443101906" to="2265767395" priority="5" type="highway.unclassified">
- <lane id="-37772597#1_0" index="0" speed="22.22" length="0.70" shape="1347.62,971.67 1347.40,971.01"/>
- </edge>
- <edge id="-37772597#2" from="267169690" to="443101906" priority="5" type="highway.unclassified">
- <lane id="-37772597#2_0" index="0" speed="22.22" length="67.15" shape="1382.42,1036.52 1350.20,977.61"/>
- </edge>
- <edge id="-37973566" from="552842256" to="30406565" priority="6" type="highway.tertiary">
- <lane id="-37973566_0" index="0" speed="22.22" length="195.87" shape="717.71,1663.63 690.32,1857.57"/>
- </edge>
- <edge id="-37973572#0" from="1780219353" to="438042367" priority="7" type="highway.secondary">
- <lane id="-37973572#0_0" index="0" speed="27.78" length="0.52" shape="902.75,1202.35 903.20,1202.09"/>
- <lane id="-37973572#0_1" index="1" speed="27.78" length="0.52" shape="904.39,1205.22 904.84,1204.96"/>
- </edge>
- <edge id="-37973572#1" from="30406599" to="1780219353" priority="7" type="highway.secondary">
- <lane id="-37973572#1_0" index="0" speed="27.78" length="133.89" shape="778.24,1273.42 894.52,1207.05"/>
- <lane id="-37973572#1_1" index="1" speed="27.78" length="133.89" shape="779.88,1276.29 896.16,1209.91"/>
- </edge>
- <edge id="-37973572#2" from="444026884" to="30406599" priority="7" type="highway.secondary">
- <lane id="-37973572#2_0" index="0" speed="27.78" length="0.28" shape="760.15,1283.91 760.38,1283.77"/>
- <lane id="-37973572#2_1" index="1" speed="27.78" length="0.28" shape="761.82,1286.75 762.06,1286.61"/>
- </edge>
- <edge id="-37973572#3" from="410296508" to="444026884" priority="7" type="highway.secondary">
- <lane id="-37973572#3_0" index="0" speed="27.78" length="78.49" shape="676.10,1332.97 743.90,1293.42"/>
- <lane id="-37973572#3_1" index="1" speed="27.78" length="78.49" shape="677.76,1335.82 745.56,1296.27"/>
- </edge>
- <edge id="-37973572#4" from="552842254" to="410296508" priority="7" type="highway.secondary" shape="452.00,1466.18 474.12,1453.45 534.54,1418.69 674.29,1339.75">
- <lane id="-37973572#4_0" index="0" speed="27.78" length="243.15" shape="456.46,1457.90 471.65,1449.16 532.07,1414.40 667.84,1337.71"/>
- <lane id="-37973572#4_1" index="1" speed="27.78" length="243.15" shape="458.11,1460.76 473.30,1452.02 533.72,1417.26 669.46,1340.58"/>
- </edge>
- <edge id="-37973572#5" from="356693794" to="552842254" priority="7" type="highway.secondary" shape="273.02,1566.65 377.57,1508.39 452.00,1466.18">
- <lane id="-37973572#5_0" index="0" speed="27.78" length="203.14" shape="270.61,1562.32 375.16,1504.07 447.74,1462.90"/>
- <lane id="-37973572#5_1" index="1" speed="27.78" length="203.14" shape="272.21,1565.21 376.76,1506.95 449.37,1465.77"/>
- </edge>
- <edge id="-38027102#0" from="477486717" to="446766148" priority="5" type="highway.unclassified" shape="504.35,1971.39 493.65,1977.56 477.57,1986.83 416.23,2022.19 353.73,2058.24 342.28,2064.84 326.97,2073.66 282.69,2099.19 231.01,2129.00 225.76,2132.02 217.58,2136.74 169.69,2164.36 120.25,2192.87 68.43,2222.75 58.25,2228.62">
- <lane id="-38027102#0_0" index="0" speed="22.22" length="510.06" shape="500.94,1975.26 494.48,1978.99 478.39,1988.26 417.05,2023.62 354.56,2059.67 343.10,2066.27 327.79,2075.09 283.51,2100.62 231.84,2130.43 226.59,2133.45 218.41,2138.17 170.51,2165.79 121.08,2194.30 69.25,2224.18 59.07,2230.05"/>
- </edge>
- <edge id="-38027102#1" from="728492366" to="477486717" priority="5" type="highway.unclassified" shape="606.61,1912.43 601.56,1915.35 551.77,1944.04 513.18,1966.30 504.35,1971.39">
- <lane id="-38027102#1_0" index="0" speed="22.22" length="107.25" shape="602.35,1916.80 552.60,1945.47 514.01,1967.73 509.43,1970.37"/>
- </edge>
- <edge id="-38027102#2" from="446766149" to="728492366" priority="5" type="highway.unclassified" shape="675.84,1872.51 611.61,1909.54 606.61,1912.43">
- <lane id="-38027102#2_0" index="0" speed="22.22" length="67.96" shape="672.76,1876.19 613.88,1910.14"/>
- </edge>
- <edge id="-38027665#0" from="477486719" to="446770956" priority="5" type="highway.unclassified" shape="405.54,1816.27 302.24,1871.38 242.04,1905.02 186.61,1935.87 130.26,1966.62 5.12,2034.88 0.00,2037.67">
- <lane id="-38027665#0_0" index="0" speed="22.22" length="456.97" shape="401.85,1820.11 303.02,1872.84 242.84,1906.46 187.42,1937.32 131.05,1968.07 5.91,2036.33 0.79,2039.12"/>
- </edge>
- <edge id="-38027665#1" from="728492372" to="477486719" priority="5" type="highway.unclassified" shape="623.00,1698.07 509.20,1757.58 405.54,1816.27">
- <lane id="-38027665#1_0" index="0" speed="22.22" length="234.81" shape="616.90,1703.12 509.97,1759.04 410.64,1815.28"/>
- </edge>
- <edge id="-38027665#2" from="1232172714" to="728492372" priority="5" type="highway.unclassified" shape="661.41,1679.69 656.56,1678.98 623.00,1698.07">
- <lane id="-38027665#2_0" index="0" speed="22.22" length="29.70" shape="656.55,1680.89 630.73,1695.58"/>
- </edge>
- <edge id="-38027665#3" from="446770959" to="1232172714" priority="5" type="highway.unclassified">
- <lane id="-38027665#3_0" index="0" speed="22.22" length="28.31" shape="693.84,1686.09 665.83,1682.00"/>
- </edge>
- <edge id="-38318373#0" from="314636763" to="1373642446" priority="1" type="highway.cycleway" shape="1396.03,2172.61 1540.45,2451.07 1619.47,2601.21 1632.17,2615.09">
- <lane id="-38318373#0_0" index="0" allow="bicycle" speed="5.56" length="496.98" shape="1399.67,2176.06 1541.92,2450.31 1620.83,2600.25 1633.39,2613.97"/>
- </edge>
- <edge id="-38318373#1" from="250685829" to="314636763" priority="1" type="highway.cycleway">
- <lane id="-38318373#1_0" index="0" allow="bicycle" speed="5.56" length="1.93" shape="1393.97,2169.63 1395.67,2170.54"/>
- </edge>
- <edge id="-38319546#0" from="1257054074" to="1257054127" priority="1" type="highway.cycleway">
- <lane id="-38319546#0_0" index="0" allow="bicycle" speed="5.56" length="0.25" shape="1363.36,1970.08 1363.47,1970.31"/>
- </edge>
- <edge id="-38319546#1" from="1257054205" to="1257054074" priority="1" type="highway.cycleway">
- <lane id="-38319546#1_0" index="0" allow="bicycle" speed="5.56" length="2.29" shape="1358.90,1961.37 1359.97,1963.39"/>
- </edge>
- <edge id="-38319546#2" from="1257054172" to="1257054205" priority="1" type="highway.cycleway">
- <lane id="-38319546#2_0" index="0" allow="bicycle" speed="5.56" length="6.34" shape="1354.98,1953.53 1357.77,1959.22"/>
- </edge>
- <edge id="-38319546#3" from="452425486" to="1257054172" priority="1" type="highway.cycleway">
- <lane id="-38319546#3_0" index="0" allow="bicycle" speed="5.56" length="1.79" shape="1351.23,1946.34 1352.06,1947.93"/>
- </edge>
- <edge id="-38319546#4" from="1257054178" to="452425486" priority="1" type="highway.cycleway" shape="1343.04,1925.34 1347.29,1934.31 1346.02,1939.01 1349.06,1945.73">
- <lane id="-38319546#4_0" index="0" allow="bicycle" speed="5.56" length="14.01" shape="1346.62,1929.03 1349.04,1934.15 1347.77,1938.87 1349.20,1942.03"/>
- </edge>
- <edge id="-38319546#5" from="452425487" to="1257054178" priority="1" type="highway.cycleway">
- <lane id="-38319546#5_0" index="0" allow="bicycle" speed="5.56" length="50.00" shape="1319.61,1875.85 1342.36,1920.38"/>
- </edge>
- <edge id="-38319546#6" from="452425488" to="452425487" priority="1" type="highway.cycleway">
- <lane id="-38319546#6_0" index="0" allow="bicycle" speed="5.56" length="71.00" shape="1282.69,1804.19 1315.22,1867.30"/>
- </edge>
- <edge id="-38319546#7" from="733663096" to="452425488" priority="1" type="highway.cycleway">
- <lane id="-38319546#7_0" index="0" allow="bicycle" speed="5.56" length="44.26" shape="1257.59,1756.60 1278.27,1795.73"/>
- </edge>
- <edge id="-38319546#8" from="452425489" to="733663096" priority="1" type="highway.cycleway">
- <lane id="-38319546#8_0" index="0" allow="bicycle" speed="5.56" length="7.02" shape="1249.00,1738.22 1251.88,1744.63"/>
- </edge>
- <edge id="-38319547" from="452425490" to="452425489" priority="1" type="highway.cycleway">
- <lane id="-38319547_0" index="0" allow="bicycle" speed="5.56" length="31.97" shape="1258.30,1706.54 1248.93,1737.10"/>
- </edge>
- <edge id="-38319548#0" from="452425491" to="452425490" priority="1" type="highway.cycleway">
- <lane id="-38319548#0_0" index="0" allow="bicycle" speed="5.56" length="32.02" shape="1289.95,1689.79 1261.78,1705.02"/>
- </edge>
- <edge id="-38319548#1" from="452425493" to="452425491" priority="1" type="highway.cycleway">
- <lane id="-38319548#1_0" index="0" allow="bicycle" speed="5.56" length="75.63" shape="1361.92,1650.57 1295.51,1686.77"/>
- </edge>
- <edge id="-38319548#10" from="1669480279" to="1669480280" priority="1" type="highway.cycleway" shape="1456.23,1559.65 1460.35,1558.69 1469.16,1575.47">
- <lane id="-38319548#10_0" index="0" allow="bicycle" speed="5.56" length="18.78" shape="1458.00,1557.54 1461.22,1556.80 1468.41,1570.49"/>
- </edge>
- <edge id="-38319548#11" from="1168929659" to="1669480279" priority="1" type="highway.cycleway" shape="1192.17,1077.69 1196.81,1084.49 1452.33,1560.55 1456.23,1559.65">
- <lane id="-38319548#11_0" index="0" allow="bicycle" speed="5.56" length="544.70" shape="1195.54,1079.71 1198.17,1083.56 1453.18,1558.66 1454.00,1558.47"/>
- </edge>
- <edge id="-38319548#12" from="951739684" to="1168929659" priority="1" type="highway.cycleway">
- <lane id="-38319548#12_0" index="0" allow="bicycle" speed="5.56" length="14.86" shape="1183.33,1062.41 1191.94,1074.52"/>
- </edge>
- <edge id="-38319548#13" from="951739649" to="951739684" priority="1" type="highway.cycleway">
- <lane id="-38319548#13_0" index="0" allow="bicycle" speed="5.56" length="11.21" shape="1174.59,1047.13 1179.93,1056.99"/>
- </edge>
- <edge id="-38319548#14" from="1168929546" to="951739649" priority="1" type="highway.cycleway">
- <lane id="-38319548#14_0" index="0" allow="bicycle" speed="5.56" length="12.09" shape="1165.88,1030.82 1171.57,1041.50"/>
- </edge>
- <edge id="-38319548#15" from="2081499948" to="1168929546" priority="1" type="highway.cycleway">
- <lane id="-38319548#15_0" index="0" allow="bicycle" speed="5.56" length="7.89" shape="1159.24,1018.14 1162.88,1025.14"/>
- </edge>
- <edge id="-38319548#16" from="1780381201" to="2081499948" priority="1" type="highway.cycleway" shape="781.87,286.40 794.70,308.53 802.31,326.56 814.44,346.36 822.77,361.38 837.59,390.48 845.42,406.05 848.91,424.48 1155.52,1014.57">
- <lane id="-38319548#16_0" index="0" allow="bicycle" speed="5.56" length="814.68" shape="783.30,285.57 796.13,307.70 803.83,325.92 815.84,345.50 824.21,360.58 839.06,389.73 847.00,405.52 850.49,423.94 1154.79,1009.57"/>
- </edge>
- <edge id="-38319548#2" from="1669480287" to="452425493" priority="1" type="highway.cycleway">
- <lane id="-38319548#2_0" index="0" allow="bicycle" speed="5.56" length="73.95" shape="1433.10,1613.64 1367.43,1647.64"/>
- </edge>
- <edge id="-38319548#3" from="1669480286" to="1669480287" priority="1" type="highway.cycleway">
- <lane id="-38319548#3_0" index="0" allow="bicycle" speed="5.56" length="7.14" shape="1445.29,1607.34 1438.94,1610.62"/>
- </edge>
- <edge id="-38319548#4" from="1726394727" to="1669480286" priority="1" type="highway.cycleway">
- <lane id="-38319548#4_0" index="0" allow="bicycle" speed="5.56" length="0.53" shape="1453.77,1602.95 1453.30,1603.19"/>
- </edge>
- <edge id="-38319548#5" from="1669480284" to="1726394727" priority="1" type="highway.cycleway">
- <lane id="-38319548#5_0" index="0" allow="bicycle" speed="5.56" length="4.53" shape="1459.98,1599.74 1455.96,1601.82"/>
- </edge>
- <edge id="-38319548#6" from="452425497" to="1669480284" priority="1" type="highway.cycleway">
- <lane id="-38319548#6_0" index="0" allow="bicycle" speed="5.56" length="1.38" shape="1465.69,1596.78 1464.46,1597.42"/>
- </edge>
- <edge id="-38319548#7" from="1669480283" to="452425497" priority="1" type="highway.cycleway">
- <lane id="-38319548#7_0" index="0" allow="bicycle" speed="5.56" length="3.11" shape="1473.62,1592.65 1470.87,1594.09"/>
- </edge>
- <edge id="-38319548#8" from="1168929661" to="1669480283" priority="1" type="highway.cycleway" shape="1473.76,1584.23 1476.43,1589.31 1472.85,1591.19">
- <lane id="-38319548#8_0" index="0" allow="bicycle" speed="5.56" length="6.10" shape="1477.21,1587.26 1478.65,1590.00 1475.99,1591.40"/>
- </edge>
- <edge id="-38319548#9" from="1669480280" to="1168929661" priority="1" type="highway.cycleway">
- <lane id="-38319548#9_0" index="0" allow="bicycle" speed="5.56" length="0.43" shape="1472.83,1578.91 1473.03,1579.29"/>
- </edge>
- <edge id="-38319549#0" from="1719213141" to="452425490" priority="1" type="highway.cycleway">
- <lane id="-38319549#0_0" index="0" allow="bicycle" speed="5.56" length="2.32" shape="1254.94,1698.79 1256.02,1700.84"/>
- </edge>
- <edge id="-38319549#1" from="1719213140" to="1719213141" priority="1" type="highway.cycleway">
- <lane id="-38319549#1_0" index="0" allow="bicycle" speed="5.56" length="9.34" shape="1247.70,1685.01 1252.04,1693.27"/>
- </edge>
- <edge id="-38319549#2" from="452425499" to="1719213140" priority="1" type="highway.cycleway" shape="1206.87,1665.88 1239.65,1673.53 1244.80,1683.03">
- <lane id="-38319549#2_0" index="0" allow="bicycle" speed="5.56" length="41.25" shape="1208.75,1664.62 1240.74,1672.10 1244.74,1679.47"/>
- </edge>
- <edge id="-38319550#0" from="452425500" to="452425499" priority="1" type="highway.cycleway">
- <lane id="-38319550#0_0" index="0" allow="bicycle" speed="5.56" length="65.03" shape="1179.13,1605.33 1207.68,1663.76"/>
- </edge>
- <edge id="-38319550#1" from="452425501" to="452425500" priority="1" type="highway.cycleway">
- <lane id="-38319550#1_0" index="0" allow="bicycle" speed="5.56" length="6.85" shape="1173.02,1593.60 1176.24,1599.65"/>
- </edge>
- <edge id="-38319550#10" from="1780219371" to="719463795" priority="1" type="highway.cycleway">
- <lane id="-38319550#10_0" index="0" allow="bicycle" speed="5.56" length="111.17" shape="856.08,1006.41 907.25,1105.10"/>
- </edge>
- <edge id="-38319550#11" from="1719213509" to="1780219371" priority="1" type="highway.cycleway" shape="840.35,971.51 843.32,976.39 845.12,983.10 845.76,990.08 852.00,1002.12">
- <lane id="-38319550#11_0" index="0" allow="bicycle" speed="5.56" length="26.09" shape="843.44,973.41 844.85,975.74 846.72,982.67 847.37,989.60 851.62,997.79"/>
- </edge>
- <edge id="-38319550#12" from="1719213668" to="1719213509" priority="1" type="highway.cycleway" shape="789.27,881.21 830.05,959.77 834.19,963.07 838.03,967.15 840.35,971.51">
- <lane id="-38319550#12_0" index="0" allow="bicycle" speed="5.56" length="97.70" shape="792.21,883.29 831.35,958.70 835.22,961.78 839.39,966.18 840.20,967.71"/>
- </edge>
- <edge id="-38319550#13" from="719464017" to="1719213668" priority="1" type="highway.cycleway" shape="652.35,318.90 640.93,380.90 633.99,420.60 629.59,461.09 631.56,539.77 652.67,658.18 660.80,654.60 672.27,647.45 681.96,641.40 686.64,638.49 691.89,648.12 692.98,650.11 689.20,660.83 688.67,677.73 692.38,700.17 725.19,766.66 728.49,766.77 732.62,772.05 789.27,881.21">
- <lane id="-38319550#13_0" index="0" allow="bicycle" speed="5.56" length="649.08" shape="653.98,319.17 642.56,381.20 635.61,420.88 631.24,461.27 633.21,539.73 653.93,655.82 660.13,653.09 671.40,646.05 681.09,640.00 687.25,636.17 693.34,647.33 694.78,649.97 690.85,661.14 690.32,677.62 693.97,699.66 726.23,765.05 729.31,765.15 734.02,771.15 789.26,877.60"/>
- </edge>
- <edge id="-38319550#14" from="650318340" to="719464017" priority="1" type="highway.cycleway">
- <lane id="-38319550#14_0" index="0" allow="bicycle" speed="5.56" length="11.45" shape="655.77,307.86 653.98,319.17"/>
- </edge>
- <edge id="-38319550#2" from="1780219365" to="452425501" priority="1" type="highway.cycleway" shape="959.00,1208.51 960.03,1210.51 961.74,1211.99 964.06,1212.25 969.63,1209.47 971.66,1209.51 973.33,1210.62 1024.09,1306.64 1170.08,1591.58">
- <lane id="-38319550#2_0" index="0" allow="bicycle" speed="5.56" length="438.98" shape="962.83,1210.45 963.76,1210.56 969.26,1207.81 972.17,1207.88 974.59,1209.48 1025.54,1305.87 1170.12,1588.03"/>
- </edge>
- <edge id="-38319550#3" from="452425502" to="1780219365" priority="1" type="highway.cycleway">
- <lane id="-38319550#3_0" index="0" allow="bicycle" speed="5.56" length="3.30" shape="956.86,1200.81 958.38,1203.74"/>
- </edge>
- <edge id="-38319550#4" from="950640531" to="452425502" priority="1" type="highway.cycleway">
- <lane id="-38319550#4_0" index="0" allow="bicycle" speed="5.56" length="2.36" shape="952.81,1193.01 953.90,1195.10"/>
- </edge>
- <edge id="-38319550#5" from="767282288" to="950640531" priority="1" type="highway.cycleway">
- <lane id="-38319550#5_0" index="0" allow="bicycle" speed="5.56" length="2.95" shape="949.85,1187.30 951.21,1189.93"/>
- </edge>
- <edge id="-38319550#6" from="950640351" to="767282288" priority="1" type="highway.cycleway">
- <lane id="-38319550#6_0" index="0" allow="bicycle" speed="5.56" length="2.99" shape="943.68,1175.39 945.06,1178.04"/>
- </edge>
- <edge id="-38319550#7" from="719463587" to="950640351" priority="1" type="highway.cycleway">
- <lane id="-38319550#7_0" index="0" allow="bicycle" speed="5.56" length="0.12" shape="941.99,1172.12 942.04,1172.22"/>
- </edge>
- <edge id="-38319550#8" from="1780219332" to="719463587" priority="1" type="highway.cycleway">
- <lane id="-38319550#8_0" index="0" allow="bicycle" speed="5.56" length="1.89" shape="938.16,1164.73 939.03,1166.41"/>
- </edge>
- <edge id="-38319550#9" from="719463795" to="1780219332" priority="1" type="highway.cycleway">
- <lane id="-38319550#9_0" index="0" allow="bicycle" speed="5.56" length="51.20" shape="910.23,1110.84 933.79,1156.29"/>
- </edge>
- <edge id="-40196944#0" from="484282955" to="484282948" priority="5" type="highway.unclassified">
- <lane id="-40196944#0_0" index="0" speed="22.22" length="86.23" shape="661.51,933.80 576.52,948.34"/>
- </edge>
- <edge id="-40196944#1" from="538265864" to="484282955" priority="5" type="highway.unclassified">
- <lane id="-40196944#1_0" index="0" speed="22.22" length="71.30" shape="737.89,919.19 667.87,932.66"/>
- </edge>
- <edge id="-43684741#0" from="561204538" to="552842256" priority="5" type="highway.unclassified">
- <lane id="-43684741#0_0" index="0" speed="22.22" length="2.92" shape="706.51,1649.06 708.87,1650.79"/>
- </edge>
- <edge id="-43684741#1" from="1232172723" to="561204538" priority="5" type="highway.unclassified">
- <lane id="-43684741#1_0" index="0" speed="22.22" length="32.77" shape="675.42,1626.58 701.98,1645.77"/>
- </edge>
- <edge id="-43684741#2" from="1726380204" to="1232172723" priority="5" type="highway.unclassified">
- <lane id="-43684741#2_0" index="0" speed="22.22" length="21.33" shape="649.72,1608.01 667.00,1620.50"/>
- </edge>
- <edge id="-43684741#3" from="552842255" to="1726380204" priority="5" type="highway.unclassified" shape="465.58,1476.04 577.63,1557.95 582.08,1561.17 648.77,1609.36">
- <lane id="-43684741#3_0" index="0" speed="22.22" length="213.67" shape="470.36,1477.49 578.60,1556.62 583.05,1559.83 643.11,1603.23"/>
- </edge>
- <edge id="-43684741#4" from="950640393" to="552842255" priority="5" type="highway.unclassified">
- <lane id="-43684741#4_0" index="0" speed="22.22" length="1.34" shape="462.74,1471.94 463.83,1472.73"/>
- </edge>
- <edge id="-43684741#5" from="552842254" to="950640393" priority="5" type="highway.unclassified">
- <lane id="-43684741#5_0" index="0" speed="22.22" length="8.70" shape="452.97,1464.84 460.01,1469.95"/>
- </edge>
- <edge id="-44104491#0" from="560472377" to="956116503" priority="5" type="highway.unclassified">
- <lane id="-44104491#0_0" index="0" speed="22.22" length="143.51" shape="827.73,1977.53 759.75,1851.15"/>
- </edge>
- <edge id="-44104491#1" from="560472378" to="560472377" priority="5" type="highway.unclassified">
- <lane id="-44104491#1_0" index="0" speed="22.22" length="11.88" shape="835.86,1993.73 830.60,1983.09"/>
- </edge>
- <edge id="-58779718#0" from="728492360" to="728492341" priority="5" type="highway.unclassified" shape="613.04,1774.73 523.68,1822.29 440.65,1871.28">
- <lane id="-58779718#0_0" index="0" speed="22.22" length="185.48" shape="607.45,1779.58 524.46,1823.75 445.68,1870.22"/>
- </edge>
- <edge id="-58779718#1" from="728492364" to="728492360" priority="5" type="highway.unclassified">
- <lane id="-58779718#1_0" index="0" speed="22.22" length="62.11" shape="679.14,1787.27 617.85,1777.20"/>
- </edge>
- <edge id="-58779719#0" from="728492361" to="728492348" priority="5" type="highway.unclassified">
- <lane id="-58779719#0_0" index="0" speed="22.22" length="75.93" shape="604.29,1845.96 538.49,1883.87"/>
- </edge>
- <edge id="-58779719#1" from="728492371" to="728492361" priority="5" type="highway.unclassified">
- <lane id="-58779719#1_0" index="0" speed="22.22" length="55.92" shape="670.08,1850.89 614.69,1843.16"/>
- </edge>
- <edge id="-59159260#0" from="733663093" to="733663131" priority="4" type="highway.residential">
- <lane id="-59159260#0_0" index="0" speed="13.89" length="74.68" shape="1371.99,1656.45 1437.99,1621.50"/>
- </edge>
- <edge id="-59159260#1" from="733663121" to="733663093" priority="4" type="highway.residential">
- <lane id="-59159260#1_0" index="0" speed="13.89" length="75.73" shape="1299.26,1694.23 1366.48,1659.34"/>
- </edge>
- <edge id="-59159260#2" from="733663096" to="733663121" priority="4" type="highway.residential" shape="1253.88,1753.13 1258.93,1742.39 1266.82,1714.10 1297.27,1697.13">
- <lane id="-59159260#2_0" index="0" speed="13.89" length="65.42" shape="1256.04,1744.66 1257.43,1741.69 1265.41,1712.99 1293.67,1697.24"/>
- </edge>
- <edge id="-59159260#3" from="733663089" to="733663096" priority="4" type="highway.residential">
- <lane id="-59159260#3_0" index="0" speed="13.89" length="9.92" shape="1240.18,1758.75 1248.88,1753.99"/>
- </edge>
- <edge id="-59159262#0" from="1457695393" to="446766149" priority="5" type="highway.unclassified">
- <lane id="-59159262#0_0" index="0" speed="22.22" length="5.88" shape="685.29,1874.06 679.41,1874.12"/>
- </edge>
- <edge id="-59159262#1" from="733663082" to="1457695393" priority="5" type="highway.unclassified">
- <lane id="-59159262#1_0" index="0" speed="22.22" length="6.84" shape="702.52,1874.29 695.68,1874.13"/>
- </edge>
- <edge id="-59159262#2" from="956116503" to="733663082" priority="5" type="highway.unclassified">
- <lane id="-59159262#2_0" index="0" speed="22.22" length="50.11" shape="755.50,1849.71 710.79,1872.33"/>
- </edge>
- <edge id="-59159262#3" from="1482088987" to="956116503" priority="5" type="highway.unclassified">
- <lane id="-59159262#3_0" index="0" speed="22.22" length="4.53" shape="763.70,1845.53 759.67,1847.59"/>
- </edge>
- <edge id="-59159262#4" from="733663136" to="1482088987" priority="5" type="highway.unclassified">
- <lane id="-59159262#4_0" index="0" speed="22.22" length="144.23" shape="896.28,1777.58 767.93,1843.36"/>
- </edge>
- <edge id="-69931595#0" from="733663136" to="445506216" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-69931595#0_0" index="0" speed="27.78" length="158.51" shape="903.41,1777.36 976.87,1917.82"/>
- </edge>
- <edge id="-69931595#1" from="2017759588" to="733663136" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-69931595#1_0" index="0" speed="27.78" length="44.80" shape="878.46,1729.15 899.04,1768.95"/>
- </edge>
- <edge id="-69931595#2" from="733663116" to="2017759588" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-69931595#2_0" index="0" speed="27.78" length="27.46" shape="861.39,1696.15 874.01,1720.53"/>
- </edge>
- <edge id="-69931595#3" from="733663076" to="733663116" priority="15" type="highway.unclassified|railway.tram">
- <lane id="-69931595#3_0" index="0" speed="27.78" length="17.63" shape="850.45,1674.98 858.54,1690.64"/>
- </edge>
- <edge id="-81096822#0" from="1669480292" to="452425497" priority="1" type="highway.cycleway">
- <lane id="-81096822#0_0" index="0" allow="bicycle" speed="5.56" length="247.17" shape="1584.40,1817.14 1469.87,1598.11"/>
- </edge>
- <edge id="-81096822#1" from="543360161" to="1669480292" priority="1" type="highway.cycleway" shape="1596.40,1836.52 1595.43,1834.67 1592.52,1829.10 1590.94,1826.09 1587.31,1819.14">
- <lane id="-81096822#1_0" index="0" allow="bicycle" speed="5.56" length="13.40" shape="1593.50,1834.54 1591.06,1829.86 1589.48,1826.86 1587.29,1822.66"/>
- </edge>
- <edge id="-81096822#2" from="1268463825" to="543360161" priority="1" type="highway.cycleway" shape="1676.03,1992.80 1602.73,1848.68 1596.40,1836.52">
- <lane id="-81096822#2_0" index="0" allow="bicycle" speed="5.56" length="172.23" shape="1674.55,1993.55 1601.26,1849.42 1596.39,1840.08"/>
- </edge>
- <edge id="-81096844#0" from="248913142" to="443089061" priority="4" type="highway.residential">
- <lane id="-81096844#0_0" index="0" speed="13.89" length="76.05" shape="1446.56,1800.61 1513.62,1764.75"/>
- </edge>
- <edge id="-81096844#1" from="248913144" to="248913142" priority="4" type="highway.residential">
- <lane id="-81096844#1_0" index="0" speed="13.89" length="75.53" shape="1374.40,1839.19 1441.01,1803.58"/>
- </edge>
- <edge id="-81096844#2" from="452425487" to="248913144" priority="4" type="highway.residential">
- <lane id="-81096844#2_0" index="0" speed="13.89" length="56.08" shape="1319.41,1868.60 1368.86,1842.16"/>
- </edge>
- <edge id="-81096844#3" from="248913145" to="452425487" priority="4" type="highway.residential">
- <lane id="-81096844#3_0" index="0" speed="13.89" length="9.42" shape="1302.63,1877.58 1310.93,1873.13"/>
- </edge>
- <edge id="-81394200#0" from="948350597" to="948350565" priority="15" type="highway.tertiary|railway.tram" shape="735.50,2295.41 735.25,2298.36 734.35,2303.49 733.19,2322.32">
- <lane id="-81394200#0_0" index="0" speed="27.78" length="19.65" shape="736.14,2302.82 735.97,2303.78 734.83,2322.42"/>
- </edge>
- <edge id="-81394200#1" from="948350640" to="948350597" priority="15" type="highway.tertiary|railway.tram" shape="744.96,2278.54 740.54,2284.12 738.24,2288.29 735.50,2295.41">
- <lane id="-81394200#1_0" index="0" speed="27.78" length="1.38" shape="740.56,2287.47 739.90,2288.68"/>
- </edge>
- <edge id="-81394200#2" from="948350707" to="948350640" priority="15" type="highway.tertiary|railway.tram">
- <lane id="-81394200#2_0" index="0" speed="27.78" length="0.28" shape="748.65,2277.89 748.42,2278.06"/>
- </edge>
- <edge id="-81523330#0" from="1252777720" to="948350630" priority="15" type="highway.primary|railway.tram">
- <lane id="-81523330#0_0" index="0" speed="27.78" length="1.53" shape="777.83,2264.26 776.47,2264.97"/>
- <lane id="-81523330#0_1" index="1" speed="27.78" length="1.53" shape="776.28,2261.34 774.93,2262.06"/>
- </edge>
- <edge id="-81523330#1" from="950094425" to="1252777720" priority="15" type="highway.primary|railway.tram" shape="1073.15,2102.39 801.79,2245.97 776.84,2259.18">
- <lane id="-81523330#1_0" index="0" speed="27.78" length="328.65" shape="1070.97,2109.14 804.11,2250.35 780.48,2262.85"/>
- <lane id="-81523330#1_1" index="1" speed="27.78" length="328.65" shape="1069.43,2106.22 802.56,2247.43 778.94,2259.94"/>
- </edge>
- <edge id="-81523330#2" from="1263725264" to="950094425" priority="15" type="highway.primary|railway.tram">
- <lane id="-81523330#2_0" index="0" speed="27.78" length="1.69" shape="1076.88,2106.05 1075.37,2106.81"/>
- <lane id="-81523330#2_1" index="1" speed="27.78" length="1.69" shape="1075.41,2103.10 1073.89,2103.86"/>
- </edge>
- <edge id="-81523330#3" from="1243159116" to="1263725264" priority="15" type="highway.primary|railway.tram">
- <lane id="-81523330#3_0" index="0" speed="27.78" length="3.33" shape="1083.48,2102.56 1080.54,2104.12"/>
- <lane id="-81523330#3_1" index="1" speed="27.78" length="3.33" shape="1081.94,2099.64 1079.00,2101.20"/>
- </edge>
- <edge id="-81523330#4" from="950094494" to="1243159116" priority="15" type="highway.primary|railway.tram" shape="1294.72,1985.59 1273.52,1996.44 1111.32,2082.24 1082.77,2097.34">
- <lane id="-81523330#4_0" index="0" speed="27.78" length="237.79" shape="1294.06,1991.49 1275.78,2000.85 1113.64,2086.62 1083.76,2102.41"/>
- <lane id="-81523330#4_1" index="1" speed="27.78" length="237.79" shape="1292.56,1988.55 1274.27,1997.91 1112.09,2083.70 1082.21,2099.50"/>
- </edge>
- <edge id="-81672209" from="1457699222" to="951739458" priority="2" type="highway.service">
- <lane id="-81672209_0" index="0" allow="delivery" speed="5.56" length="51.26" shape="896.46,1303.00 850.97,1326.64"/>
- </edge>
- <edge id="-81672213" from="951739568" to="951739420" priority="2" type="highway.service">
- <lane id="-81672213_0" index="0" allow="delivery" speed="5.56" length="45.55" shape="882.76,1289.49 842.74,1311.25"/>
- </edge>
- <edge id="-81672214" from="951739549" to="951739766" priority="2" type="highway.service">
- <lane id="-81672214_0" index="0" allow="delivery" speed="5.56" length="39.70" shape="869.86,1277.79 835.00,1296.79"/>
- </edge>
- <edge id="-81672216#0" from="1457699220" to="951739693" priority="2" type="highway.service" shape="823.20,1284.88 821.49,1281.69 820.39,1279.62 818.06,1275.29">
- <lane id="-81672216#0_0" index="0" allow="delivery" speed="5.56" length="2.91" shape="819.48,1281.43 818.93,1280.39 818.11,1278.86"/>
- </edge>
- <edge id="-81672216#1" from="951739766" to="1457699220" priority="2" type="highway.service">
- <lane id="-81672216#1_0" index="0" allow="delivery" speed="5.56" length="4.98" shape="826.31,1294.19 823.96,1289.81"/>
- </edge>
- <edge id="-81672216#2" from="951739420" to="951739766" priority="2" type="highway.service">
- <lane id="-81672216#2_0" index="0" allow="delivery" speed="5.56" length="6.90" shape="834.06,1308.65 830.80,1302.57"/>
- </edge>
- <edge id="-81672216#3" from="951739458" to="951739420" priority="2" type="highway.service">
- <lane id="-81672216#3_0" index="0" allow="delivery" speed="5.56" length="7.93" shape="842.29,1324.01 838.54,1317.02"/>
- </edge>
- <edge id="-81672216#4" from="951739511" to="951739458" priority="2" type="highway.service">
- <lane id="-81672216#4_0" index="0" allow="delivery" speed="5.56" length="7.35" shape="850.24,1338.87 846.77,1332.39"/>
- </edge>
- <edge id="-81672216#5" from="1457699223" to="951739511" priority="2" type="highway.service" shape="907.70,1314.17 915.18,1328.32 861.87,1357.10 853.92,1342.24">
- <lane id="-81672216#5_0" index="0" allow="delivery" speed="5.56" length="90.50" shape="911.37,1317.58 917.40,1328.99 861.19,1359.34 854.72,1347.24"/>
- </edge>
- <edge id="-81672216#6" from="1457699222" to="1457699223" priority="2" type="highway.service">
- <lane id="-81672216#6_0" index="0" allow="delivery" speed="5.56" length="7.25" shape="903.66,1302.77 906.99,1309.21"/>
- </edge>
- <edge id="-81672216#7" from="951739568" to="1457699222" priority="2" type="highway.service" shape="887.31,1285.14 896.33,1292.74 900.01,1299.30">
- <lane id="-81672216#7_0" index="0" allow="delivery" speed="5.56" length="11.35" shape="891.21,1286.27 897.63,1291.67 899.08,1294.26"/>
- </edge>
- <edge id="-81672216#8" from="951739549" to="951739568" priority="2" type="highway.service">
- <lane id="-81672216#8_0" index="0" allow="delivery" speed="5.56" length="7.53" shape="878.37,1274.77 883.93,1279.84"/>
- </edge>
- <edge id="-81672216#9" from="1457699220" to="951739549" priority="2" type="highway.service" shape="823.20,1284.88 862.74,1262.97 874.43,1273.42">
- <lane id="-81672216#9_0" index="0" allow="delivery" speed="5.56" length="52.33" shape="826.60,1281.11 862.97,1260.96 870.98,1268.12"/>
- </edge>
- <edge id="-81672218" from="1457699223" to="951739511" priority="2" type="highway.service">
- <lane id="-81672218_0" index="0" allow="delivery" speed="5.56" length="51.14" shape="904.26,1317.83 858.92,1341.49"/>
- </edge>
- <edge id="-83038920" from="966097830" to="966097837" priority="2" type="highway.service" shape="828.22,1459.05 887.22,1579.00 874.94,1585.38 813.60,1466.57">
- <lane id="-83038920_0" index="0" allow="delivery" speed="5.56" length="279.71" shape="831.16,1461.29 889.41,1579.72 874.23,1587.61 814.31,1471.55"/>
- </edge>
- <edge id="-83038923#0" from="966097837" to="966097869" priority="2" type="highway.service" shape="813.60,1466.57 799.68,1469.66 791.14,1469.22 771.08,1461.26 758.84,1458.25 746.66,1456.35">
- <lane id="-83038923#0_0" index="0" allow="delivery" speed="5.56" length="61.17" shape="810.05,1469.05 799.82,1471.32 790.78,1470.85 770.47,1462.79 758.45,1459.86 751.13,1458.72"/>
- </edge>
- <edge id="-83038923#1" from="966097830" to="966097837" priority="2" type="highway.service">
- <lane id="-83038923#1_0" index="0" allow="delivery" speed="5.56" length="8.37" shape="826.03,1462.03 818.58,1465.86"/>
- </edge>
- <edge id="-83051417" from="966193808" to="966193812" priority="1" type="highway.pedestrian" shape="1303.82,1087.19 1319.30,1110.02 1354.64,1143.84 1382.82,1159.31">
- <lane id="-83051417_0" index="0" allow="pedestrian" speed="8.33" length="98.05" shape="1308.00,1090.41 1320.56,1108.95 1355.62,1142.50 1379.41,1155.56"/>
- </edge>
- <edge id="-83051420" from="966193796" to="966193808" priority="5" type="highway.unclassified">
- <lane id="-83051420_0" index="0" speed="22.22" length="68.02" shape="1272.52,1021.28 1303.08,1082.05"/>
- </edge>
- <edge id="-83051421#0" from="267169686" to="267169634" priority="1" type="highway.pedestrian">
- <lane id="-83051421#0_0" index="0" allow="pedestrian" speed="8.33" length="107.26" shape="1419.10,1087.04 1467.44,991.29"/>
- </edge>
- <edge id="-83051421#1" from="966193812" to="267169686" priority="1" type="highway.pedestrian">
- <lane id="-83051421#1_0" index="0" allow="pedestrian" speed="8.33" length="60.60" shape="1383.61,1154.30 1412.00,1100.76"/>
- </edge>
- <edge id="-83051421#2" from="250689186" to="966193812" priority="1" type="highway.pedestrian">
- <lane id="-83051421#2_0" index="0" allow="pedestrian" speed="8.33" length="63.44" shape="1349.44,1218.74 1379.16,1162.69"/>
- </edge>
- <edge id="-83051424" from="966193793" to="966193814" priority="1" type="highway.pedestrian">
- <lane id="-83051424_0" index="0" allow="pedestrian" speed="8.33" length="13.70" shape="1420.19,1295.04 1420.18,1308.73"/>
- </edge>
- <edge id="-83051426" from="250689131" to="733663071" priority="1" type="highway.pedestrian">
- <lane id="-83051426_0" index="0" allow="pedestrian" speed="8.33" length="71.54" shape="1387.20,1262.26 1450.03,1228.05"/>
- </edge>
- <edge id="-83051436#0" from="267169690" to="966193808" priority="1" type="highway.pedestrian">
- <lane id="-83051436#0_0" index="0" allow="pedestrian" speed="8.33" length="85.17" shape="1383.00,1043.98 1308.99,1086.14"/>
- </edge>
- <edge id="-83051436#1" from="267169634" to="267169690" priority="1" type="highway.pedestrian">
- <lane id="-83051436#1_0" index="0" allow="pedestrian" speed="8.33" length="88.52" shape="1464.54,988.75 1391.44,1038.68"/>
- </edge>
- <edge id="-83051442#0" from="733663078" to="733663071" priority="1" type="highway.pedestrian" shape="1440.94,1200.45 1445.69,1217.27 1456.20,1226.57">
- <lane id="-83051442#0_0" index="0" allow="pedestrian" speed="8.33" length="18.80" shape="1444.05,1205.39 1447.15,1216.35 1452.70,1221.27"/>
- </edge>
- <edge id="-83051442#1" from="441266874" to="733663078" priority="1" type="highway.pedestrian" shape="1456.29,1176.65 1445.67,1186.05 1440.94,1200.45">
- <lane id="-83051442#1_0" index="0" allow="pedestrian" speed="8.33" length="21.72" shape="1454.43,1180.50 1447.10,1186.99 1443.38,1198.33"/>
- </edge>
- <edge id="-83051442#2" from="733663071" to="441266874" priority="1" type="highway.pedestrian" shape="1456.20,1226.57 1471.45,1229.56 1483.49,1225.68 1493.98,1214.58 1497.01,1204.51 1494.97,1190.78 1486.47,1179.63 1473.69,1173.99 1456.29,1176.65">
- <lane id="-83051442#2_0" index="0" allow="pedestrian" speed="8.33" length="100.98" shape="1459.14,1225.47 1471.35,1227.86 1482.58,1224.24 1492.51,1213.73 1495.32,1204.38 1493.40,1191.45 1485.41,1180.97 1473.47,1175.69 1460.41,1177.69"/>
- </edge>
- <edge id="-83051455" from="441266870" to="733663078" priority="1" type="highway.pedestrian">
- <lane id="-83051455_0" index="0" allow="pedestrian" speed="8.33" length="70.00" shape="1374.01,1235.64 1435.24,1201.72"/>
- </edge>
- <edge id="-83051480#0" from="966193793" to="257907508" priority="1" type="highway.pedestrian" shape="1418.55,1290.24 1478.82,1291.11 1601.46,1287.40">
- <lane id="-83051480#0_0" index="0" allow="pedestrian" speed="8.33" length="178.10" shape="1423.37,1288.66 1478.85,1289.46 1601.41,1285.75"/>
- </edge>
- <edge id="-83051480#1" from="250689201" to="966193793" priority="1" type="highway.pedestrian">
- <lane id="-83051480#1_0" index="0" allow="pedestrian" speed="8.33" length="24.69" shape="1389.17,1288.17 1413.87,1288.52"/>
- </edge>
- <edge id="-83051483" from="966193814" to="966193857" priority="5" type="highway.unclassified" shape="1418.53,1308.86 1420.20,1329.48 1426.16,1352.67 1433.51,1379.54 1445.06,1403.43 1461.49,1433.85">
- <lane id="-83051483_0" index="0" speed="22.22" length="129.66" shape="1420.19,1308.86 1421.85,1329.35 1427.76,1352.26 1435.06,1378.96 1446.54,1402.72 1461.46,1430.32"/>
- </edge>
- <edge id="101272424#0" from="1168929542" to="1780219363" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272424#0_0" index="0" speed="22.22" length="8.77" shape="839.71,994.88 843.64,1002.72"/>
- </edge>
- <edge id="101272424#1" from="1780219363" to="267169591" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272424#1_0" index="0" speed="22.22" length="109.58" shape="848.58,1012.56 897.73,1110.51"/>
- </edge>
- <edge id="101272424#2" from="267169591" to="1780219362" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272424#2_0" index="0" speed="22.22" length="51.02" shape="900.58,1116.05 924.29,1161.23"/>
- </edge>
- <edge id="101272424#3" from="1780219362" to="443101913" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272424#3_0" index="0" speed="22.22" length="2.25" shape="928.71,1169.65 929.76,1171.64"/>
- </edge>
- <edge id="101272424#4" from="443101913" to="950640399" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272424#4_0" index="0" speed="22.22" length="0.48" shape="932.66,1177.25 932.88,1177.67"/>
- </edge>
- <edge id="101272424#5" from="950640399" to="13929775" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272424#5_0" index="0" speed="22.22" length="3.07" shape="934.40,1180.66 935.80,1183.39"/>
- </edge>
- <edge id="101272426#0" from="1168929367" to="443101920" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272426#0_0" index="0" speed="22.22" length="170.20" shape="1186.71,1028.10 1335.49,945.44"/>
- </edge>
- <edge id="101272426#1" from="443101920" to="443101921" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272426#1_0" index="0" speed="22.22" length="93.84" shape="1344.18,940.58 1426.02,894.68"/>
- </edge>
- <edge id="101272426#2" from="443101921" to="432548413" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272426#2_0" index="0" speed="22.22" length="75.27" shape="1434.39,889.95 1499.78,852.67"/>
- </edge>
- <edge id="101272429#0" from="1246731455" to="443101911" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272429#0_0" index="0" speed="22.22" length="70.28" shape="1150.62,1086.20 1089.77,1121.37"/>
- </edge>
- <edge id="101272429#1" from="443101911" to="452425502" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272429#1_0" index="0" speed="22.22" length="145.32" shape="1084.40,1124.45 958.11,1196.34"/>
- </edge>
- <edge id="101272429#2" from="452425502" to="443101912" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272429#2_0" index="0" speed="22.22" length="1.24" shape="949.73,1201.07 948.66,1201.67"/>
- </edge>
- <edge id="101272431" from="1168929382" to="1168929634" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1148.91,1034.59 1149.93,1033.73 1150.91,1032.97 1153.40,1031.30">
- <lane id="101272431_0" index="0" speed="27.78" length="1.08" shape="1152.15,1032.14 1153.05,1031.54"/>
- </edge>
- <edge id="101272434" from="1168929661" to="566670951" priority="1" type="highway.cycleway" shape="1473.76,1584.23 1582.36,1529.08 1695.54,1470.89 1747.57,1444.12 1763.70,1432.92 1805.32,1410.87">
- <lane id="101272434_0" index="0" allow="bicycle" speed="5.56" length="369.49" shape="1477.29,1580.59 1581.61,1527.61 1694.79,1469.42 1746.81,1442.65 1762.76,1431.56 1804.54,1409.41"/>
- </edge>
- <edge id="101272435#0" from="1168929459" to="267169964" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272435#0_0" index="0" speed="22.22" length="58.00" shape="1199.90,1072.31 1226.47,1123.87"/>
- </edge>
- <edge id="101272435#1" from="267169964" to="443089074" priority="5" type="highway.unclassified" spreadType="center" shape="1228.66,1128.12 1315.53,1292.64 1324.05,1308.82 1406.05,1464.41">
- <lane id="101272435#1_0" index="0" speed="22.22" length="372.35" shape="1230.87,1132.30 1315.53,1292.64 1324.05,1308.82 1404.59,1461.64"/>
- </edge>
- <edge id="101272435#2" from="443089074" to="441266879" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272435#2_0" index="0" speed="22.22" length="9.59" shape="1407.48,1467.13 1411.95,1475.62"/>
- </edge>
- <edge id="101272435#3" from="441266879" to="1669480279" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272435#3_0" index="0" speed="22.22" length="84.34" shape="1414.84,1481.10 1454.16,1555.72"/>
- </edge>
- <edge id="101272435#4" from="1669480279" to="441266880" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272435#4_0" index="0" speed="22.22" length="10.82" shape="1458.30,1563.57 1463.34,1573.14"/>
- </edge>
- <edge id="101272435#5" from="441266880" to="1669480283" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272435#5_0" index="0" speed="22.22" length="6.13" shape="1467.78,1581.56 1470.63,1586.98"/>
- </edge>
- <edge id="101272435#6" from="1669480283" to="441266884" priority="5" type="highway.unclassified" spreadType="center" shape="1472.85,1591.19 1478.39,1601.70 1517.67,1676.25 1555.30,1747.66 1591.73,1816.80">
- <lane id="101272435#6_0" index="0" speed="22.22" length="247.17" shape="1475.06,1595.39 1478.39,1601.70 1517.67,1676.25 1555.30,1747.66 1590.28,1814.06"/>
- </edge>
- <edge id="101272435#7" from="441266884" to="452389251" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="101272435#7_0" index="0" speed="22.22" length="14.47" shape="1593.18,1819.54 1599.92,1832.34"/>
- </edge>
- <edge id="103851602#0" from="1168929324" to="951739684" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="103851602#0_0" index="0" speed="27.78" length="12.83" shape="1195.60,1052.03 1184.32,1058.13"/>
- </edge>
- <edge id="103851602#1" from="951739684" to="951739718" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="103851602#1_0" index="0" speed="27.78" length="3.62" shape="1179.95,1060.50 1176.81,1062.29"/>
- </edge>
- <edge id="103851602#2" from="951739718" to="1726394725" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="103851602#2_0" index="0" speed="27.78" length="0.64" shape="1173.19,1064.34 1172.63,1064.65"/>
- </edge>
- <edge id="103851602#3" from="1726394725" to="951739776" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="103851602#3_0" index="0" speed="27.78" length="6.24" shape="1171.88,1065.08 1166.46,1068.17"/>
- </edge>
- <edge id="103851602#4" from="951739776" to="1168929523" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="103851602#4_0" index="0" speed="27.78" length="13.35" shape="1162.28,1070.52 1150.64,1077.04"/>
- </edge>
- <edge id="105251811#0" from="552842256" to="1212941056" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="105251811#0_0" index="0" speed="22.22" length="7.50" shape="722.07,1658.07 729.53,1657.28"/>
- </edge>
- <edge id="105251811#1" from="1212941056" to="733663076" priority="5" type="highway.unclassified" spreadType="center" shape="733.06,1656.91 739.59,1656.22 825.20,1666.93 848.02,1673.89">
- <lane id="105251811#1_0" index="0" speed="22.22" length="93.51" shape="736.63,1656.53 739.59,1656.22 825.20,1666.93 829.26,1668.17"/>
- </edge>
- <edge id="105254616#0" from="1212960879" to="1719223329" priority="1" type="highway.footway" shape="828.53,1639.42 848.44,1632.84 869.53,1619.30 888.28,1610.18 908.33,1603.29 921.87,1598.37">
- <lane id="105254616#0_0" index="0" allow="pedestrian" speed="8.33" length="95.24" shape="833.04,1636.19 847.73,1631.34 868.64,1617.92 887.56,1608.70 907.79,1601.73 919.52,1597.47"/>
- </edge>
- <edge id="105254616#1" from="1719223329" to="1719223322" priority="1" type="highway.footway" shape="921.87,1598.37 1010.12,1553.37 1025.87,1582.83 1068.38,1561.19 1073.63,1558.52">
- <lane id="105254616#1_0" index="0" allow="pedestrian" speed="8.33" length="180.63" shape="923.19,1595.84 1010.82,1551.16 1026.57,1580.63 1067.63,1559.72 1070.11,1558.46"/>
- </edge>
- <edge id="105254618" from="1212960877" to="1634988377" priority="2" type="highway.service" shape="823.93,1630.44 867.02,1608.45 910.05,1587.09 924.37,1572.29 844.39,1427.33 798.22,1451.33 788.25,1452.79 772.23,1451.72 760.42,1449.07 748.19,1445.93">
- <lane id="105254618_0" index="0" allow="delivery" speed="5.56" length="370.61" shape="827.41,1626.81 866.27,1606.98 909.06,1585.73 922.34,1572.02 843.73,1429.54 798.73,1452.92 788.31,1454.44 772.12,1453.37 760.06,1450.68 752.73,1448.80"/>
- </edge>
- <edge id="105283535#0" from="733663076" to="1213368991" priority="15" type="highway.unclassified|railway.tram">
- <lane id="105283535#0_0" index="0" speed="27.78" length="93.57" shape="828.47,1673.29 735.52,1662.53"/>
- </edge>
- <edge id="105283535#1" from="1213368991" to="552842256" priority="15" type="highway.unclassified|railway.tram">
- <lane id="105283535#1_0" index="0" speed="27.78" length="8.06" shape="729.20,1661.79 721.20,1660.83"/>
- </edge>
- <edge id="106366773" from="1224080675" to="1224080662" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="106366773_0" index="0" speed="22.22" length="27.19" shape="606.29,1238.66 630.37,1226.05"/>
- </edge>
- <edge id="106366774" from="1224080660" to="1224080676" priority="5" type="highway.unclassified" shape="662.05,1329.66 520.07,1058.29 508.14,1033.93">
- <lane id="106366774_0" index="0" speed="22.22" length="330.23" shape="659.10,1327.59 518.61,1059.06 506.66,1034.66"/>
- </edge>
- <edge id="106367427#0" from="1224091971" to="1239243628" priority="5" type="highway.unclassified">
- <lane id="106367427#0_0" index="0" speed="22.22" length="67.52" shape="623.80,1060.77 654.52,1120.90"/>
- </edge>
- <edge id="106367427#1" from="1239243628" to="1903640411" priority="5" type="highway.unclassified">
- <lane id="106367427#1_0" index="0" speed="22.22" length="4.39" shape="659.02,1129.34 661.15,1133.17"/>
- </edge>
- <edge id="106836308#0" from="1228499918" to="1232169474" priority="4" type="highway.residential">
- <lane id="106836308#0_0" index="0" speed="13.89" length="44.75" shape="713.57,2152.96 669.32,2159.67"/>
- </edge>
- <edge id="106836308#1" from="1232169474" to="1228499957" priority="4" type="highway.residential">
- <lane id="106836308#1_0" index="0" speed="13.89" length="26.84" shape="659.94,2161.12 633.42,2165.27"/>
- </edge>
- <edge id="106836308#2" from="1228499957" to="1228499925" priority="4" type="highway.residential" shape="626.69,2164.66 577.70,2171.08 529.42,2178.37 460.15,2188.24 368.82,2201.27">
- <lane id="106836308#2_0" index="0" speed="13.89" length="253.89" shape="620.41,2167.15 577.91,2172.72 529.66,2180.00 460.38,2189.88 369.05,2202.90"/>
- </edge>
- <edge id="106836317#0" from="1228499901" to="1228499992" priority="4" type="highway.residential" spreadType="center" shape="352.02,2118.23 436.04,2100.78 503.16,2085.77 568.86,2072.13">
- <lane id="106836317#0_0" index="0" speed="13.89" length="216.11" shape="352.02,2118.23 436.04,2100.78 503.16,2085.77 563.39,2073.27"/>
- </edge>
- <edge id="106836317#1" from="1228499992" to="1239242544" priority="4" type="highway.residential" spreadType="center">
- <lane id="106836317#1_0" index="0" speed="13.89" length="62.70" shape="574.31,2071.02 635.75,2058.49"/>
- </edge>
- <edge id="106836317#2" from="1239242544" to="1228499945" priority="4" type="highway.residential" spreadType="center">
- <lane id="106836317#2_0" index="0" speed="13.89" length="53.81" shape="645.15,2056.56 697.84,2045.64"/>
- </edge>
- <edge id="106836317#3" from="1228499945" to="1231011197" priority="4" type="highway.residential" spreadType="center">
- <lane id="106836317#3_0" index="0" speed="13.89" length="4.69" shape="704.08,2044.41 708.70,2043.55"/>
- </edge>
- <edge id="107028581#0" from="1233612841" to="728492353" priority="15" type="highway.unclassified|railway.tram" shape="267.14,1604.67 270.32,1605.03 287.32,1606.97 384.79,1618.30 479.06,1629.71 570.76,1640.81 629.00,1648.26">
- <lane id="107028581#0_0" index="0" speed="27.78" length="359.78" shape="267.32,1603.03 270.50,1603.39 287.51,1605.33 384.98,1616.66 479.25,1628.07 570.96,1639.18 624.52,1646.02"/>
- </edge>
- <edge id="107028581#1" from="728492353" to="1239242543" priority="15" type="highway.unclassified|railway.tram">
- <lane id="107028581#1_0" index="0" speed="27.78" length="26.73" shape="633.90,1647.17 660.44,1650.28"/>
- </edge>
- <edge id="107028581#2" from="1239242543" to="552842257" priority="15" type="highway.unclassified|railway.tram">
- <lane id="107028581#2_0" index="0" speed="27.78" length="28.47" shape="669.98,1651.40 698.25,1654.71"/>
- </edge>
- <edge id="107028581#3" from="552842257" to="552842256" priority="15" type="highway.unclassified|railway.tram">
- <lane id="107028581#3_0" index="0" speed="27.78" length="2.92" shape="703.13,1655.30 706.03,1655.65"/>
- </edge>
- <edge id="107066313#0" from="950640617" to="477486719" priority="15" type="highway.unclassified|railway.tram" shape="278.01,1618.39 281.98,1624.56 334.49,1706.02 372.19,1764.52 393.25,1797.66 405.54,1816.27">
- <lane id="107066313#0_0" index="0" speed="27.78" length="230.33" shape="279.39,1617.50 283.37,1623.66 335.87,1705.13 373.58,1763.63 394.64,1796.78 404.13,1811.13"/>
- </edge>
- <edge id="107066313#1" from="477486719" to="728492341" priority="15" type="highway.unclassified|railway.tram">
- <lane id="107066313#1_0" index="0" speed="27.78" length="55.69" shape="409.59,1819.53 439.55,1866.48"/>
- </edge>
- <edge id="107066313#2" from="728492341" to="477486717" priority="15" type="highway.unclassified|railway.tram" shape="440.65,1871.28 455.89,1895.16 499.22,1963.31 504.35,1971.39">
- <lane id="107066313#2_0" index="0" speed="27.78" length="108.91" shape="444.66,1874.49 457.28,1894.27 500.61,1962.42 503.12,1966.37"/>
- </edge>
- <edge id="107066313#3" from="477486717" to="1228499992" priority="15" type="highway.unclassified|railway.tram" shape="504.35,1971.39 507.14,1975.73 545.68,2035.82 568.86,2072.13">
- <lane id="107066313#3_0" index="0" speed="27.78" length="110.27" shape="508.40,1974.63 508.53,1974.84 547.07,2034.93 567.86,2067.50"/>
- </edge>
- <edge id="107066313#4" from="1228499992" to="1228499957" priority="15" type="highway.unclassified|railway.tram" shape="568.86,2072.13 621.68,2156.63 626.69,2164.66">
- <lane id="107066313#4_0" index="0" speed="27.78" length="98.13" shape="572.60,2075.01 623.08,2155.75 624.62,2158.22"/>
- </edge>
- <edge id="107066313#5" from="1228499957" to="477486714" priority="15" type="highway.unclassified|railway.tram">
- <lane id="107066313#5_0" index="0" speed="27.78" length="61.75" shape="631.67,2169.22 665.62,2220.80"/>
- </edge>
- <edge id="107166846#0" from="728492353" to="728492372" priority="5" type="highway.unclassified">
- <lane id="107166846#0_0" index="0" speed="22.22" length="37.49" shape="630.07,1653.16 625.59,1690.38"/>
- </edge>
- <edge id="107166846#1" from="728492372" to="728492360" priority="5" type="highway.unclassified">
- <lane id="107166846#1_0" index="0" speed="22.22" length="64.92" shape="623.64,1705.97 615.27,1770.34"/>
- </edge>
- <edge id="107166846#2" from="728492360" to="728492361" priority="5" type="highway.unclassified">
- <lane id="107166846#2_0" index="0" speed="22.22" length="54.48" shape="614.35,1782.02 611.76,1836.44"/>
- </edge>
- <edge id="107166846#3" from="728492361" to="728492366" priority="5" type="highway.unclassified" shape="609.90,1840.82 606.99,1904.28 606.61,1912.43">
- <lane id="107166846#3_0" index="0" speed="22.22" length="56.81" shape="611.21,1848.32 608.64,1904.35 608.60,1905.07"/>
- </edge>
- <edge id="107166846#4" from="728492366" to="1239242544" priority="5" type="highway.unclassified" shape="606.61,1912.43 607.80,1917.51 640.45,2057.53">
- <lane id="107166846#4_0" index="0" speed="22.22" length="139.93" shape="609.56,1917.78 641.34,2054.05"/>
- </edge>
- <edge id="107166846#5" from="1239242544" to="1232169474" priority="5" type="highway.unclassified">
- <lane id="107166846#5_0" index="0" speed="22.22" length="95.82" shape="642.80,2060.26 665.08,2153.45"/>
- </edge>
- <edge id="107167209#0" from="1232172723" to="1239242543" priority="4" type="highway.residential">
- <lane id="107167209#0_0" index="0" speed="13.89" length="17.14" shape="669.55,1630.95 667.29,1647.94"/>
- </edge>
- <edge id="107167209#1" from="1239242543" to="1232172714" priority="4" type="highway.residential">
- <lane id="107167209#1_0" index="0" speed="13.89" length="17.85" shape="666.02,1657.46 663.67,1675.15"/>
- </edge>
- <edge id="108329425#0" from="733663076" to="1212960879" priority="5" type="highway.unclassified" shape="848.02,1673.89 844.12,1666.36 833.33,1648.80 828.53,1639.42">
- <lane id="108329425#0_0" index="0" speed="22.22" length="27.43" shape="843.38,1668.51 842.66,1667.12 831.92,1649.66 829.47,1644.88"/>
- </edge>
- <edge id="108329425#1" from="1212960879" to="2016414185" priority="5" type="highway.unclassified">
- <lane id="108329425#1_0" index="0" speed="22.22" length="3.16" shape="827.06,1640.17 825.62,1637.36"/>
- </edge>
- <edge id="108329425#2" from="2016414185" to="1212960877" priority="5" type="highway.unclassified">
- <lane id="108329425#2_0" index="0" speed="22.22" length="2.10" shape="824.62,1635.42 823.67,1633.55"/>
- </edge>
- <edge id="108329425#3" from="1212960877" to="1323557968" priority="5" type="highway.unclassified">
- <lane id="108329425#3_0" index="0" speed="22.22" length="52.28" shape="820.30,1626.97 796.46,1580.44"/>
- </edge>
- <edge id="108329425#4" from="1323557968" to="429179805" priority="5" type="highway.unclassified">
- <lane id="108329425#4_0" index="0" speed="22.22" length="77.32" shape="793.63,1574.92 758.37,1506.10"/>
- </edge>
- <edge id="108329425#5" from="429179805" to="445506220" priority="5" type="highway.unclassified">
- <lane id="108329425#5_0" index="0" speed="22.22" length="9.98" shape="753.80,1497.66 747.17,1490.20"/>
- </edge>
- <edge id="108329426#0" from="1243159116" to="427996792" priority="15" type="highway.unclassified|railway.tram" shape="1082.77,2097.34 1078.78,2096.74 1076.02,2096.26 1071.45,2094.86 1068.75,2092.94">
- <lane id="108329426#0_0" index="0" speed="27.78" length="2.59" shape="1074.61,2097.54 1072.13,2096.79"/>
- </edge>
- <edge id="108329426#1" from="427996792" to="1257054208" priority="15" type="highway.unclassified|railway.tram">
- <lane id="108329426#1_0" index="0" speed="27.78" length="3.28" shape="1067.26,2093.63 1065.87,2090.66"/>
- </edge>
- <edge id="108329426#2" from="1257054208" to="445506216" priority="15" type="highway.unclassified|railway.tram">
- <lane id="108329426#2_0" index="0" speed="27.78" length="182.09" shape="1063.03,2085.21 976.84,1924.81"/>
- </edge>
- <edge id="108329427#0" from="427996792" to="1263725264" priority="15" type="highway.unclassified|railway.tram" shape="1068.75,2092.94 1073.22,2099.56 1074.67,2101.63">
- <lane id="108329427#0_0" index="0" speed="27.78" length="8.49" shape="1071.61,2094.38 1074.59,2098.64 1072.75,2095.91"/>
- </edge>
- <edge id="108329427#1" from="1263725264" to="1263725266" priority="15" type="highway.unclassified|railway.tram" shape="1074.67,2101.63 1076.79,2104.66 1080.00,2107.03 1080.63,2107.23">
- <lane id="108329427#1_0" index="0" speed="27.78" length="2.37" shape="1078.75,2104.90 1080.76,2105.54 1080.54,2105.38"/>
- </edge>
- <edge id="108329427#2" from="1263725266" to="1243159115" priority="15" type="highway.unclassified|railway.tram" shape="1080.63,2107.23 1083.82,2108.23 1087.06,2109.03 1090.69,2108.82">
- <lane id="108329427#2_0" index="0" speed="27.78" length="9.34" shape="1080.46,2107.77 1087.21,2107.37 1084.70,2106.75"/>
- </edge>
- <edge id="108733421" from="1246731574" to="1246731541" priority="15" type="highway.secondary_link|railway.tram" shape="1182.97,1030.16 1185.19,1030.38 1189.07,1030.72 1193.93,1030.49 1198.37,1029.90">
- <lane id="108733421_0" index="0" speed="27.78" length="17.79" shape="1178.33,1028.04 1185.35,1028.74 1189.22,1029.08 1193.85,1028.84 1196.04,1028.55"/>
- </edge>
- <edge id="108733422" from="1246731620" to="1246731544" priority="15" type="highway.secondary_link|railway.tram" shape="1153.47,1018.17 1155.47,1019.97 1158.89,1022.12 1162.28,1023.27 1166.74,1024.73 1171.58,1026.54 1175.93,1027.69">
- <lane id="108733422_0" index="0" speed="27.78" length="10.44" shape="1166.43,1022.89 1167.25,1023.16 1172.15,1024.99 1176.35,1026.09"/>
- </edge>
- <edge id="108733424" from="1246731470" to="1246731525" priority="15" type="highway.secondary_link|railway.tram" shape="1204.48,1046.73 1202.48,1049.18 1200.51,1051.85 1199.13,1054.50 1199.81,1056.38">
- <lane id="108733424_0" index="0" speed="27.78" length="9.85" shape="1204.37,1049.48 1203.75,1050.23 1201.84,1052.83 1200.93,1054.62 1199.69,1051.20"/>
- </edge>
- <edge id="108733425" from="1246731504" to="1246731466" priority="15" type="highway.secondary_link|railway.tram" shape="1142.53,1042.42 1143.01,1038.97 1143.67,1035.61 1144.25,1032.21 1144.19,1027.73 1143.83,1025.01">
- <lane id="108733425_0" index="0" speed="27.78" length="4.24" shape="1142.60,1031.91 1142.53,1027.68"/>
- </edge>
- <edge id="108733428" from="1246731455" to="1246731576" priority="15" type="highway.secondary_link|railway.tram" shape="1154.20,1084.13 1149.60,1082.87 1146.02,1082.71 1142.61,1082.99 1138.83,1083.97">
- <lane id="108733428_0" index="0" speed="27.78" length="15.22" shape="1149.66,1084.60 1149.34,1084.51 1145.94,1084.36 1142.74,1084.63 1134.75,1086.77"/>
- </edge>
- <edge id="108733429" from="1246731647" to="1246731460" priority="15" type="highway.secondary_link|railway.tram" shape="1182.25,1098.33 1180.40,1096.87 1177.24,1094.45 1172.44,1091.05 1169.23,1089.27 1166.50,1087.91">
- <lane id="108733429_0" index="0" speed="27.78" length="6.33" shape="1179.15,1097.99 1176.24,1095.76 1174.07,1094.22"/>
- </edge>
- <edge id="108733430" from="1246731482" to="1246731457" priority="15" type="highway.secondary_link|railway.tram" shape="1193.00,1076.70 1192.05,1079.51 1191.57,1082.69 1191.38,1086.69 1191.33,1089.79">
- <lane id="108733430_0" index="0" speed="27.78" length="16.47" shape="1196.65,1071.06 1193.66,1079.90 1193.20,1082.93 1193.03,1086.77 1193.02,1087.00"/>
- </edge>
- <edge id="108733431" from="1246731601" to="1246731627" priority="15" type="highway.secondary_link|railway.tram" shape="1130.65,1068.67 1132.77,1065.18 1134.30,1061.69 1136.19,1058.12 1138.62,1055.33">
- <lane id="108733431_0" index="0" speed="27.78" length="7.53" shape="1133.49,1059.70 1134.82,1057.18 1137.90,1053.64"/>
- </edge>
- <edge id="109438141" from="950640428" to="1252775276" priority="15" type="railway.tram" spreadType="center" shape="686.05,2240.70 678.11,2241.94 667.75,2244.32 661.03,2246.86 651.51,2252.33 645.71,2255.79 634.90,2265.97">
- <lane id="109438141_0" index="0" allow="cityrail" speed="27.78" length="51.53" shape="679.23,2241.77 678.11,2241.94 667.75,2244.32 661.03,2246.86 651.51,2252.33 645.71,2255.79 634.90,2265.97"/>
- </edge>
- <edge id="109438231#0" from="948350676" to="1479400627" priority="15" type="railway.tram" spreadType="center" shape="738.76,2256.54 744.01,2258.21 749.83,2259.37 755.97,2259.96 762.26,2260.17 768.35,2260.03">
- <lane id="109438231#0_0" index="0" allow="cityrail" speed="27.78" length="21.94" shape="744.95,2258.40 749.83,2259.37 755.97,2259.96 762.26,2260.17 766.77,2260.07"/>
- </edge>
- <edge id="109438231#1" from="1479400627" to="1252777720" priority="15" type="railway.tram" spreadType="center" shape="768.35,2260.03 770.02,2259.99 776.84,2259.18">
- <lane id="109438231#1_0" index="0" allow="cityrail" speed="27.78" length="4.95" shape="769.93,2259.99 774.85,2259.41"/>
- </edge>
- <edge id="109438232" from="948350705" to="1252777712" priority="15" type="railway.tram" spreadType="center" shape="777.15,2274.14 772.13,2276.43 767.15,2278.61 758.57,2282.86 752.96,2285.63 750.34,2286.68 747.97,2287.04 743.97,2287.26 740.05,2286.90 736.91,2285.48 733.76,2283.53 732.16,2282.19 729.90,2279.71 727.32,2275.78">
- <lane id="109438232_0" index="0" allow="cityrail" speed="27.78" length="17.95" shape="748.30,2286.99 747.97,2287.04 743.97,2287.26 740.05,2286.90 736.91,2285.48 733.76,2283.53 732.16,2282.19 731.86,2281.87"/>
- </edge>
- <edge id="109912567#0" from="1257054077" to="1257054208" priority="1" type="highway.cycleway">
- <lane id="109912567#0_0" index="0" allow="bicycle" speed="5.56" length="10.86" shape="1081.39,2083.20 1071.67,2088.04"/>
- </edge>
- <edge id="109912567#1" from="1257054208" to="1257054132" priority="1" type="highway.cycleway" shape="1066.75,2088.65 1047.70,2098.62 1024.08,2107.93 1013.62,2110.04 935.95,2150.15 914.76,2164.08 770.22,2237.43 759.16,2245.83">
- <lane id="109912567#1_0" index="0" allow="bicycle" speed="5.56" length="336.02" shape="1063.17,2092.38 1048.47,2100.08 1024.55,2109.52 1014.18,2111.61 936.71,2151.62 915.66,2165.46 771.10,2238.84 764.23,2244.05"/>
- </edge>
- <edge id="109912568" from="1257054196" to="1257054162" priority="1" type="highway.cycleway" shape="600.71,2350.85 597.13,2341.44 596.91,2334.80 609.59,2329.64 616.12,2326.99 620.79,2325.34 628.32,2320.99 635.92,2315.00 639.17,2309.68 640.46,2297.74 642.72,2288.19 649.13,2279.25 661.61,2268.84 670.54,2266.62 682.54,2268.72 697.43,2272.03 701.22,2271.85 703.02,2269.30 706.60,2263.39 716.52,2257.84">
- <lane id="109912568_0" index="0" allow="bicycle" speed="5.56" length="180.48" shape="599.17,2351.43 595.49,2341.77 595.22,2333.70 608.96,2328.11 615.50,2325.46 620.10,2323.84 627.49,2319.56 634.66,2313.89 637.57,2309.14 638.82,2297.56 641.19,2287.49 647.91,2278.12 660.84,2267.33 670.48,2264.94 682.83,2267.10 697.57,2270.37 700.34,2270.24 701.67,2268.34 705.42,2262.16 715.71,2256.40"/>
- </edge>
- <edge id="109912572#0" from="1257054178" to="1257054155" priority="1" type="highway.cycleway">
- <lane id="109912572#0_0" index="0" allow="bicycle" speed="5.56" length="9.46" shape="1339.48,1929.05 1331.08,1933.39"/>
- </edge>
- <edge id="109912572#1" from="1257054155" to="1257054108" priority="1" type="highway.cycleway" shape="1327.55,1933.37 1316.46,1933.32 1307.17,1938.59">
- <lane id="109912572#1_0" index="0" allow="bicycle" speed="5.56" length="11.05" shape="1322.57,1934.99 1316.90,1934.97 1312.22,1937.62"/>
- </edge>
- <edge id="109912572#2" from="1257054108" to="1257054092" priority="1" type="highway.cycleway">
- <lane id="109912572#2_0" index="0" allow="bicycle" speed="5.56" length="2.98" shape="1303.55,1942.19 1300.86,1943.50"/>
- </edge>
- <edge id="109912572#3" from="1257054092" to="1257054165" priority="1" type="highway.cycleway">
- <lane id="109912572#3_0" index="0" allow="bicycle" speed="5.56" length="9.82" shape="1292.35,1947.87 1283.71,1952.54"/>
- </edge>
- <edge id="109912572#4" from="1257054165" to="1257054077" priority="1" type="highway.cycleway" shape="1280.20,1952.56 1275.30,1955.19 1282.90,1969.75 1281.48,1974.95 1271.51,1979.78 1080.63,2081.74">
- <lane id="109912572#4_0" index="0" allow="bicycle" speed="5.56" length="251.75" shape="1278.69,1955.24 1277.52,1955.87 1284.66,1969.56 1282.88,1976.11 1272.23,1981.27 1081.39,2083.20"/>
- </edge>
- <edge id="110514869#0" from="1261880295" to="252417189" priority="7" type="highway.secondary">
- <lane id="110514869#0_0" index="0" speed="27.78" length="68.77" shape="1290.80,1663.02 1351.85,1631.13"/>
- <lane id="110514869#0_1" index="1" speed="27.78" length="68.77" shape="1292.53,1665.84 1353.38,1634.06"/>
- </edge>
- <edge id="110514869#1" from="252417189" to="443089063" priority="7" type="highway.secondary">
- <lane id="110514869#1_0" index="0" speed="27.78" length="73.34" shape="1357.40,1628.24 1422.41,1594.30"/>
- <lane id="110514869#1_1" index="1" speed="27.78" length="73.34" shape="1358.92,1631.16 1423.93,1597.22"/>
- </edge>
- <edge id="110514869#2" from="443089063" to="1669480282" priority="7" type="highway.secondary">
- <lane id="110514869#2_0" index="0" speed="27.78" length="7.73" shape="1428.12,1591.32 1434.97,1587.74"/>
- <lane id="110514869#2_1" index="1" speed="27.78" length="7.73" shape="1429.64,1594.24 1436.50,1590.66"/>
- </edge>
- <edge id="111549913#0" from="950640539" to="950640371" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="370.49,1503.56 445.16,1461.04 471.64,1445.79 505.73,1426.18 670.40,1332.52">
- <lane id="111549913#0_0" index="0" speed="27.78" length="340.47" shape="370.49,1503.56 445.16,1461.04 471.64,1445.79 505.73,1426.18 666.24,1334.89"/>
- </edge>
- <edge id="111549913#1" from="950640371" to="950640361" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="670.40,1332.52 731.08,1295.98 756.98,1281.55">
- <lane id="111549913#1_0" index="0" speed="27.78" length="90.65" shape="674.54,1330.03 731.08,1295.98 752.62,1283.98"/>
- </edge>
- <edge id="111549913#2" from="950640361" to="950640411" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111549913#2_0" index="0" speed="27.78" length="6.85" shape="761.46,1278.59 767.18,1274.82"/>
- </edge>
- <edge id="111549913#3" from="950640411" to="950640399" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="773.09,1270.92 886.73,1208.48 934.34,1180.54">
- <lane id="111549913#3_0" index="0" speed="27.78" length="175.05" shape="778.89,1267.73 886.73,1208.48 931.59,1182.16"/>
- </edge>
- <edge id="111549913#4" from="950640399" to="950640351" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111549913#4_0" index="0" speed="27.78" length="0.95" shape="937.10,1178.87 937.91,1178.38"/>
- </edge>
- <edge id="111549913#5" from="950640351" to="1246731601" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="942.06,1175.85 1124.07,1072.37 1130.65,1068.67">
- <lane id="111549913#5_0" index="0" speed="27.78" length="216.28" shape="946.25,1173.47 1124.07,1072.37 1134.30,1066.62"/>
- </edge>
- <edge id="111549913#6" from="1246731601" to="1168929310" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111549913#6_0" index="0" speed="27.78" length="3.22" shape="1136.22,1065.79 1139.08,1064.31"/>
- </edge>
- <edge id="111863096#0" from="1168929310" to="951739443" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863096#0_0" index="0" speed="27.78" length="13.47" shape="1142.67,1062.18 1154.24,1055.27"/>
- </edge>
- <edge id="111863096#1" from="951739443" to="1726394723" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863096#1_0" index="0" speed="27.78" length="6.29" shape="1158.40,1052.79 1163.83,1049.62"/>
- </edge>
- <edge id="111863096#2" from="1726394723" to="951739557" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863096#2_0" index="0" speed="27.78" length="0.77" shape="1164.46,1049.25 1165.13,1048.87"/>
- </edge>
- <edge id="111863096#3" from="951739557" to="951739649" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863096#3_0" index="0" speed="27.78" length="3.45" shape="1168.63,1046.83 1171.65,1045.16"/>
- </edge>
- <edge id="111863096#4" from="951739649" to="1168929388" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863096#4_0" index="0" speed="27.78" length="12.00" shape="1175.79,1042.67 1186.08,1036.49"/>
- </edge>
- <edge id="111863125#0" from="1168929523" to="1246731576" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="1147.33,1078.90 1145.70,1080.08 1138.83,1083.97">
- <lane id="111863125#0_0" index="0" speed="27.78" length="11.48" shape="1144.64,1080.68 1134.64,1086.34"/>
- </edge>
- <edge id="111863125#1" from="1246731576" to="950640531" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="1138.83,1083.97 957.75,1186.47 949.87,1190.93">
- <lane id="111863125#1_0" index="0" speed="27.78" length="204.03" shape="1131.61,1088.05 957.75,1186.47 954.06,1188.56"/>
- </edge>
- <edge id="111863125#2" from="950640531" to="950640525" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863125#2_0" index="0" speed="27.78" length="1.22" shape="945.68,1193.28 944.61,1193.87"/>
- </edge>
- <edge id="111863125#3" from="950640525" to="950640558" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863125#3_0" index="0" speed="27.78" length="9.77" shape="939.09,1196.98 930.59,1201.79"/>
- </edge>
- <edge id="111863125#4" from="950640558" to="950640550" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863125#4_0" index="0" speed="27.78" length="3.01" shape="922.08,1206.63 919.47,1208.12"/>
- </edge>
- <edge id="111863125#5" from="950640550" to="950640413" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863125#5_0" index="0" speed="27.78" length="155.46" shape="911.18,1212.86 776.31,1290.18"/>
- </edge>
- <edge id="111863125#6" from="950640413" to="950640474" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863125#6_0" index="0" speed="27.78" length="9.19" shape="764.52,1297.12 756.64,1301.87"/>
- </edge>
- <edge id="111863125#7" from="950640474" to="950640393" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="752.22,1304.53 709.52,1328.54 537.37,1426.65 496.57,1449.90 476.57,1461.29 459.04,1471.28">
- <lane id="111863125#7_0" index="0" speed="27.78" length="326.49" shape="747.86,1306.99 709.52,1328.54 537.37,1426.65 496.57,1449.90 476.57,1461.29 464.07,1468.42"/>
- </edge>
- <edge id="111863125#8" from="950640393" to="950640500" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="111863125#8_0" index="0" speed="27.78" length="79.87" shape="453.98,1474.14 384.42,1513.40"/>
- </edge>
- <edge id="117492209" from="1323557968" to="1323557956" priority="4" type="highway.residential" spreadType="center" shape="796.46,1576.81 757.39,1598.72 739.90,1613.73">
- <lane id="117492209_0" index="0" speed="13.89" length="57.32" shape="792.26,1579.17 757.39,1598.72 744.24,1610.01"/>
- </edge>
- <edge id="122301994#0" from="538265865" to="1168929600" priority="7" type="highway.secondary" spreadType="center" shape="717.31,797.74 759.65,880.22 801.49,963.16">
- <lane id="122301994#0_0" index="0" speed="27.78" length="182.04" shape="720.25,796.23 762.59,878.71 802.83,958.49"/>
- <lane id="122301994#0_1" index="1" speed="27.78" length="182.04" shape="717.31,797.74 759.65,880.22 799.88,959.98"/>
- <lane id="122301994#0_2" index="2" speed="27.78" length="182.04" shape="714.38,799.25 756.72,881.73 796.93,961.47"/>
- </edge>
- <edge id="122301994#1" from="1168929600" to="1168929349" priority="7" type="highway.secondary" spreadType="center">
- <lane id="122301994#1_0" index="0" speed="27.78" length="43.28" shape="806.90,966.19 827.65,1004.17"/>
- <lane id="122301994#1_1" index="1" speed="27.78" length="43.28" shape="804.00,967.77 824.76,1005.76"/>
- <lane id="122301994#1_2" index="2" speed="27.78" length="43.28" shape="801.11,969.36 821.86,1007.34"/>
- </edge>
- <edge id="122302027#0" from="1367622318" to="249404225" priority="15" type="railway.rail" spreadType="center">
- <lane id="122302027#0_0" index="0" allow="rail_fast" speed="83.33" length="23.79" shape="1752.39,2840.10 1742.68,2818.37"/>
- </edge>
- <edge id="122302027#1" from="249404225" to="1366723470" priority="15" type="railway.rail" spreadType="center" shape="1742.60,2818.18 1554.02,2445.66 1471.35,2285.02 1326.57,2004.72 1291.99,1937.92 766.44,922.99">
- <lane id="122302027#1_0" index="0" allow="rail_fast" speed="83.33" length="2132.04" shape="1742.69,2818.37 1554.02,2445.66 1471.35,2285.02 1326.57,2004.72 1291.99,1937.92 766.44,922.98"/>
- </edge>
- <edge id="122302030" from="1367622318" to="1367073439" priority="15" type="railway.rail" spreadType="center" shape="1752.44,2840.21 1730.18,2757.64 1567.82,2439.20 1485.96,2277.67 1341.66,1997.24 1307.46,1931.16 781.54,916.57">
- <lane id="122302030_0" index="0" allow="rail_fast" speed="83.33" length="2155.00" shape="1752.41,2840.09 1730.18,2757.64 1567.82,2439.20 1485.96,2277.67 1341.66,1997.24 1307.46,1931.16 782.23,917.90"/>
- </edge>
- <edge id="122302035#0" from="1367073442" to="249404225" priority="15" type="railway.rail" spreadType="center" shape="778.01,918.11 1303.93,1932.70 1338.13,1998.77 1482.75,2279.28 1564.59,2440.71 1726.25,2760.00 1742.60,2818.18">
- <lane id="122302035#0_0" index="0" allow="rail_fast" speed="83.33" length="2132.31" shape="778.01,918.11 1303.93,1932.70 1338.13,1998.77 1482.75,2279.28 1564.59,2440.71 1726.25,2760.00 1742.65,2818.38"/>
- </edge>
- <edge id="122302035#1" from="249404225" to="1367622316" priority="15" type="railway.rail" spreadType="center">
- <lane id="122302035#1_0" index="0" allow="rail_fast" speed="83.33" length="24.45" shape="1742.65,2818.38 1749.26,2841.92"/>
- </edge>
- <edge id="122394833#0" from="1367855969" to="1367855932" priority="1" type="highway.footway" shape="1612.08,2617.74 1570.43,2537.57 1562.00,2521.34 1552.71,2503.46 1543.14,2485.02 1528.72,2457.27 1514.56,2430.00 1504.68,2410.99 1494.93,2392.23 1478.52,2360.64 1457.82,2320.79 1447.82,2301.53 1438.63,2283.86 1427.25,2261.94">
- <lane id="122394833#0_0" index="0" allow="pedestrian" speed="8.33" length="397.85" shape="1610.61,2618.50 1568.96,2538.33 1560.54,2522.10 1551.25,2504.22 1541.67,2485.78 1527.26,2458.03 1513.09,2430.76 1503.21,2411.75 1493.47,2393.00 1477.06,2361.40 1456.35,2321.55 1446.35,2302.29 1437.16,2284.62 1427.21,2265.45"/>
- </edge>
- <edge id="122394833#1" from="1367855932" to="1367855931" priority="1" type="highway.footway">
- <lane id="122394833#1_0" index="0" allow="pedestrian" speed="8.33" length="19.11" shape="1424.35,2259.94 1415.54,2242.98"/>
- </edge>
- <edge id="122394833#2" from="1367855931" to="1367855930" priority="1" type="highway.footway">
- <lane id="122394833#2_0" index="0" allow="pedestrian" speed="8.33" length="17.91" shape="1413.67,2239.38 1405.41,2223.49"/>
- </edge>
- <edge id="122394833#3" from="1367855930" to="1367855929" priority="1" type="highway.footway">
- <lane id="122394833#3_0" index="0" allow="pedestrian" speed="8.33" length="18.01" shape="1404.03,2220.83 1395.72,2204.85"/>
- </edge>
- <edge id="122394833#4" from="1367855929" to="1367855927" priority="1" type="highway.footway">
- <lane id="122394833#4_0" index="0" allow="pedestrian" speed="8.33" length="18.52" shape="1393.41,2200.41 1384.88,2183.97"/>
- </edge>
- <edge id="122394833#5" from="1367855927" to="1367855925" priority="1" type="highway.footway">
- <lane id="122394833#5_0" index="0" allow="pedestrian" speed="8.33" length="0.76" shape="1380.84,2176.20 1380.49,2175.53"/>
- </edge>
- <edge id="122394834" from="1367855907" to="1367855909" priority="1" type="highway.steps">
- <lane id="122394834_0" index="0" allow="pedestrian" speed="1.39" length="11.20" shape="1402.57,2205.09 1407.73,2215.02"/>
- </edge>
- <edge id="122394841#0" from="1367855909" to="1369844772" priority="1" type="highway.footway">
- <lane id="122394841#0_0" index="0" allow="pedestrian" speed="8.33" length="8.08" shape="1411.91,2216.34 1419.08,2212.61"/>
- </edge>
- <edge id="122394841#1" from="1369844772" to="1369844762" priority="1" type="highway.footway">
- <lane id="122394841#1_0" index="0" allow="pedestrian" speed="8.33" length="5.93" shape="1427.65,2208.13 1432.91,2205.39"/>
- </edge>
- <edge id="122394841#2" from="1369844762" to="1369844757" priority="1" type="highway.footway">
- <lane id="122394841#2_0" index="0" allow="pedestrian" speed="8.33" length="4.65" shape="1441.42,2201.02 1445.57,2198.92"/>
- </edge>
- <edge id="122394841#3" from="1369844757" to="2079750190" priority="1" type="highway.footway" shape="1450.57,2198.24 1451.23,2197.91 1477.48,2184.33">
- <lane id="122394841#3_0" index="0" allow="pedestrian" speed="8.33" length="20.81" shape="1454.04,2194.60 1472.52,2185.04"/>
- </edge>
- <edge id="122394845" from="1367855930" to="1367855909" priority="1" type="highway.footway">
- <lane id="122394845_0" index="0" allow="pedestrian" speed="8.33" length="0.34" shape="1406.31,2219.38 1406.60,2219.21"/>
- </edge>
- <edge id="122394853" from="1367855929" to="1367855907" priority="1" type="highway.footway">
- <lane id="122394853_0" index="0" allow="pedestrian" speed="8.33" length="0.61" shape="1399.97,2202.73 1400.51,2203.01"/>
- </edge>
- <edge id="122394859" from="1367855931" to="1367855910" priority="1" type="highway.footway">
- <lane id="122394859_0" index="0" allow="pedestrian" speed="8.33" length="0.71" shape="1414.60,2237.00 1414.71,2236.29"/>
- </edge>
- <edge id="122394860" from="1367855910" to="1367855909" priority="1" type="highway.steps">
- <lane id="122394860_0" index="0" allow="pedestrian" speed="1.39" length="11.65" shape="1414.55,2235.32 1409.18,2224.98"/>
- </edge>
- <edge id="122394864#0" from="1367855927" to="1367855926" priority="1" type="highway.footway">
- <lane id="122394864#0_0" index="0" allow="pedestrian" speed="8.33" length="0.58" shape="1387.14,2175.51 1387.64,2175.21"/>
- </edge>
- <edge id="122394864#1" from="1367855926" to="314636763" priority="1" type="highway.footway">
- <lane id="122394864#1_0" index="0" allow="pedestrian" speed="8.33" length="2.01" shape="1391.07,2173.26 1392.87,2172.36"/>
- </edge>
- <edge id="122394864#2" from="314636763" to="1367855923" priority="1" type="highway.footway">
- <lane id="122394864#2_0" index="0" allow="pedestrian" speed="8.33" length="5.34" shape="1399.47,2168.95 1404.21,2166.48"/>
- </edge>
- <edge id="122641556#0" from="1369844758" to="1369844762" priority="1" type="highway.steps">
- <lane id="122641556#0_0" index="0" allow="pedestrian" speed="1.39" length="4.15" shape="1440.52,2213.33 1438.62,2209.64"/>
- </edge>
- <edge id="122641556#1" from="1369844762" to="1369844770" priority="1" type="highway.steps">
- <lane id="122641556#1_0" index="0" allow="pedestrian" speed="1.39" length="4.82" shape="1434.26,2201.19 1432.04,2196.92"/>
- </edge>
- <edge id="122641557" from="1369844780" to="1369844786" priority="1" type="highway.steps" shape="1476.61,2280.66 1478.92,2285.27 1481.20,2289.82">
- <lane id="122641557_0" index="0" allow="pedestrian" speed="1.39" length="10.25" shape="1478.09,2279.92 1480.40,2284.53 1482.68,2289.08"/>
- </edge>
- <edge id="122641559#0" from="1369844756" to="1369844757" priority="1" type="highway.steps">
- <lane id="122641559#0_0" index="0" allow="pedestrian" speed="1.39" length="4.35" shape="1453.17,2207.13 1451.23,2203.24"/>
- </edge>
- <edge id="122641559#1" from="1369844757" to="1369844760" priority="1" type="highway.steps">
- <lane id="122641559#1_0" index="0" allow="pedestrian" speed="1.39" length="5.07" shape="1446.93,2194.75 1444.62,2190.23"/>
- </edge>
- <edge id="122641560#0" from="1369844763" to="1369844772" priority="1" type="highway.steps">
- <lane id="122641560#0_0" index="0" allow="pedestrian" speed="1.39" length="3.85" shape="1426.51,2220.31 1424.78,2216.88"/>
- </edge>
- <edge id="122641560#1" from="1369844772" to="1369844774" priority="1" type="highway.steps">
- <lane id="122641560#1_0" index="0" allow="pedestrian" speed="1.39" length="4.28" shape="1420.51,2208.15 1418.68,2204.28"/>
- </edge>
- <edge id="123339612" from="1366723470" to="1375799451" priority="15" type="railway.rail" spreadType="center" shape="766.44,922.99 687.34,765.58 662.82,697.49 648.51,628.53 634.60,535.37 633.15,439.62 636.95,390.22 646.12,341.49 684.53,251.70 732.54,177.25 778.30,130.15 831.74,81.53 864.20,59.43 893.95,42.35 927.08,27.68 940.14,21.91 978.46,7.90 989.03,4.24">
- <lane id="123339612_0" index="0" allow="rail_fast" speed="83.33" length="1108.28" shape="766.44,922.99 687.34,765.58 662.82,697.49 648.51,628.53 634.60,535.37 633.15,439.62 636.95,390.22 646.12,341.49 684.53,251.70 732.54,177.25 778.30,130.15 831.74,81.53 864.20,59.43 893.95,42.35 927.08,27.68 940.14,21.91 978.46,7.90 989.03,4.24"/>
- </edge>
- <edge id="123339613" from="1375799449" to="256633248" priority="15" type="railway.rail" spreadType="center" shape="987.55,0.00 976.92,3.68 938.39,17.77 891.90,38.34 861.82,54.57 828.95,77.98 775.15,126.93 729.17,174.65 680.47,249.70 641.77,340.26 632.48,389.64 628.64,439.49 630.10,535.74 644.07,629.31 658.47,698.72 683.14,767.20 763.20,924.92">
- <lane id="123339613_0" index="0" allow="rail_fast" speed="83.33" length="1116.26" shape="987.55,0.00 976.92,3.68 938.39,17.77 891.90,38.34 861.82,54.57 828.95,77.98 775.15,126.93 729.17,174.65 680.47,249.70 641.77,340.26 632.48,389.64 628.64,439.49 630.10,535.74 644.07,629.31 658.47,698.72 683.14,767.20 763.20,924.92"/>
- </edge>
- <edge id="123339618" from="1367073433" to="1367073439" priority="15" type="railway.rail" spreadType="center">
- <lane id="123339618_0" index="0" allow="rail_fast" speed="83.33" length="147.14" shape="713.63,784.35 780.86,915.24"/>
- </edge>
- <edge id="123339619" from="1367073436" to="1367073442" priority="15" type="railway.rail" spreadType="center">
- <lane id="123339619_0" index="0" allow="rail_fast" speed="83.33" length="148.80" shape="709.93,785.79 778.01,918.11"/>
- </edge>
- <edge id="129780019#0" from="450564005" to="450564006" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780019#0_0" index="0" speed="22.22" length="2.20" shape="1400.22,2152.83 1401.26,2154.77"/>
- </edge>
- <edge id="129780019#1" from="450564006" to="1367855923" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780019#1_0" index="0" speed="22.22" length="0.86" shape="1405.43,2162.27 1405.86,2163.02"/>
- </edge>
- <edge id="129780019#2" from="1367855923" to="320879175" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780019#2_0" index="0" speed="22.22" length="309.17" shape="1410.03,2170.68 1551.35,2445.66"/>
- </edge>
- <edge id="129780020" from="320879142" to="950094380" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780020_0" index="0" speed="22.22" length="2.53" shape="1313.03,1997.59 1310.50,1997.66"/>
- </edge>
- <edge id="129780022#0" from="248913124" to="1257054205" priority="9" type="highway.primary">
- <lane id="129780022#0_0" index="0" speed="27.78" length="60.58" shape="1414.94,1930.92 1361.35,1959.15"/>
- </edge>
- <edge id="129780022#1" from="1257054205" to="13929747" priority="9" type="highway.primary">
- <lane id="129780022#1_0" index="0" speed="27.78" length="4.67" shape="1352.86,1963.63 1348.72,1965.81"/>
- </edge>
- <edge id="129780022#2" from="13929747" to="435668534" priority="9" type="highway.primary" shape="1345.18,1965.82 1321.80,1978.44 1297.62,1991.64">
- <lane id="129780022#2_0" index="0" speed="27.78" length="47.74" shape="1343.24,1968.74 1322.58,1979.89 1301.28,1991.52"/>
- </edge>
- <edge id="129780022#3" from="435668534" to="1263725266" priority="9" type="highway.primary">
- <lane id="129780022#3_0" index="0" speed="27.78" length="238.99" shape="1295.67,1994.55 1084.74,2106.91"/>
- </edge>
- <edge id="129780022#4" from="1263725266" to="427996791" priority="9" type="highway.primary">
- <lane id="129780022#4_0" index="0" speed="27.78" length="2.84" shape="1081.39,2108.69 1078.87,2110.00"/>
- </edge>
- <edge id="129780022#5" from="427996791" to="435668539" priority="9" type="highway.primary">
- <lane id="129780022#5_0" index="0" speed="27.78" length="345.41" shape="1072.85,2113.16 767.16,2273.98"/>
- </edge>
- <edge id="129780026#0" from="435668513" to="950094458" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780026#0_0" index="0" speed="22.22" length="1.22" shape="1410.23,1915.19 1410.79,1916.27"/>
- </edge>
- <edge id="129780026#1" from="950094458" to="248913124" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780026#1_0" index="0" speed="22.22" length="3.07" shape="1414.72,1923.80 1416.15,1926.52"/>
- </edge>
- <edge id="129780026#2" from="248913124" to="950094434" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780026#2_0" index="0" speed="22.22" length="3.89" shape="1417.32,1928.78 1419.13,1932.23"/>
- </edge>
- <edge id="129780026#3" from="950094434" to="945146413" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780026#3_0" index="0" speed="22.22" length="2.61" shape="1421.74,1937.25 1422.95,1939.56"/>
- </edge>
- <edge id="129780028" from="945146437" to="252418151" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="129780028_0" index="0" speed="22.22" length="12.01" shape="1470.39,2037.23 1459.86,2043.01"/>
- </edge>
- <edge id="130443629#0" from="250685721" to="243489891" priority="6" type="highway.tertiary" shape="773.69,2484.93 758.26,2368.80 746.13,2290.28">
- <lane id="130443629#0_0" index="0" speed="22.22" length="179.01" shape="770.97,2477.00 756.62,2369.01 745.92,2299.76"/>
- </edge>
- <edge id="130443629#1" from="243489891" to="948350640" priority="6" type="highway.tertiary">
- <lane id="130443629#1_0" index="0" speed="22.22" length="11.79" shape="744.48,2290.44 743.32,2278.71"/>
- </edge>
- <edge id="130443629#2" from="948350640" to="435668511" priority="6" type="highway.tertiary">
- <lane id="130443629#2_0" index="0" speed="22.22" length="0.70" shape="743.03,2276.60 742.93,2275.91"/>
- </edge>
- <edge id="130443629#3" from="435668511" to="948350615" priority="6" type="highway.tertiary">
- <lane id="130443629#3_0" index="0" speed="22.22" length="4.48" shape="742.07,2267.26 741.66,2262.80"/>
- </edge>
- <edge id="130443629#4" from="948350615" to="428303370" priority="6" type="highway.tertiary">
- <lane id="130443629#4_0" index="0" speed="22.22" length="10.60" shape="741.21,2257.83 740.24,2247.28"/>
- </edge>
- <edge id="130443629#5" from="428303370" to="445506221" priority="6" type="highway.tertiary">
- <lane id="130443629#5_0" index="0" speed="22.22" length="166.99" shape="738.11,2228.33 714.57,2063.01"/>
- </edge>
- <edge id="130443629#6" from="445506221" to="1231011197" priority="6" type="highway.tertiary">
- <lane id="130443629#6_0" index="0" speed="22.22" length="10.65" shape="713.69,2056.67 712.25,2046.12"/>
- </edge>
- <edge id="130443629#7" from="1231011197" to="1457695393" priority="6" type="highway.tertiary">
- <lane id="130443629#7_0" index="0" speed="22.22" length="163.62" shape="711.42,2039.98 689.48,1877.84"/>
- </edge>
- <edge id="130443629#8" from="1457695393" to="30406565" priority="6" type="highway.tertiary">
- <lane id="130443629#8_0" index="0" speed="22.22" length="9.14" shape="688.15,1867.46 687.04,1858.39"/>
- </edge>
- <edge id="130443630#0" from="552842256" to="445506220" priority="6" type="highway.tertiary">
- <lane id="130443630#0_0" index="0" speed="22.22" length="162.41" shape="716.13,1651.57 739.91,1490.90"/>
- </edge>
- <edge id="130443630#1" from="445506220" to="966097869" priority="6" type="highway.tertiary">
- <lane id="130443630#1_0" index="0" speed="22.22" length="18.91" shape="741.59,1479.55 744.33,1460.84"/>
- </edge>
- <edge id="130443630#10" from="1780219345" to="1780219355" priority="6" type="highway.tertiary">
- <lane id="130443630#10_0" index="0" speed="22.22" length="18.14" shape="786.05,1171.70 788.75,1153.75"/>
- </edge>
- <edge id="130443630#11" from="1780219355" to="444026889" priority="6" type="highway.tertiary">
- <lane id="130443630#11_0" index="0" speed="22.22" length="58.19" shape="790.27,1143.68 798.93,1086.14"/>
- </edge>
- <edge id="130443630#2" from="966097869" to="1634988377" priority="6" type="highway.tertiary">
- <lane id="130443630#2_0" index="0" speed="22.22" length="0.70" shape="745.71,1451.44 745.81,1450.75"/>
- </edge>
- <edge id="130443630#3" from="1634988377" to="1726380194" priority="6" type="highway.tertiary">
- <lane id="130443630#3_0" index="0" speed="22.22" length="10.67" shape="747.20,1441.31 748.76,1430.76"/>
- </edge>
- <edge id="130443630#4" from="1726380194" to="446017744" priority="6" type="highway.tertiary">
- <lane id="130443630#4_0" index="0" speed="22.22" length="117.08" shape="749.66,1424.59 766.67,1308.75"/>
- </edge>
- <edge id="130443630#5" from="446017744" to="950640413" priority="6" type="highway.tertiary">
- <lane id="130443630#5_0" index="0" speed="22.22" length="2.70" shape="768.01,1299.42 768.38,1296.74"/>
- </edge>
- <edge id="130443630#6" from="950640413" to="30406599" priority="6" type="highway.tertiary">
- <lane id="130443630#6_0" index="0" speed="22.22" length="5.89" shape="768.85,1293.34 769.52,1287.49"/>
- </edge>
- <edge id="130443630#7" from="30406599" to="950640411" priority="6" type="highway.tertiary">
- <lane id="130443630#7_0" index="0" speed="22.22" length="12.00" shape="770.08,1282.66 771.45,1270.74"/>
- </edge>
- <edge id="130443630#8" from="950640411" to="446017741" priority="6" type="highway.tertiary">
- <lane id="130443630#8_0" index="0" speed="22.22" length="2.91" shape="771.78,1267.89 772.11,1265.00"/>
- </edge>
- <edge id="130443630#9" from="446017741" to="1780219345" priority="6" type="highway.tertiary">
- <lane id="130443630#9_0" index="0" speed="22.22" length="74.25" shape="773.36,1256.03 784.41,1182.60"/>
- </edge>
- <edge id="130443635#0" from="250682807" to="250683337" priority="5" type="highway.unclassified" spreadType="center" shape="1536.49,2453.11 1486.22,2356.51 1434.38,2258.21">
- <lane id="130443635#0_0" index="0" speed="22.22" length="216.93" shape="1536.49,2453.11 1486.22,2356.51 1435.82,2260.95"/>
- </edge>
- <edge id="130443635#1" from="250683337" to="1367855926" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="130443635#1_0" index="0" speed="22.22" length="85.77" shape="1432.93,2255.47 1393.05,2179.53"/>
- </edge>
- <edge id="130443635#2" from="1367855926" to="250685829" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="130443635#2_0" index="0" speed="22.22" length="4.73" shape="1390.80,2175.25 1388.60,2171.07"/>
- </edge>
- <edge id="132323955" from="320879142" to="2006433692" priority="5" type="highway.unclassified">
- <lane id="132323955_0" index="0" speed="22.22" length="38.31" shape="1321.88,1999.40 1339.62,2033.36"/>
- </edge>
- <edge id="133868186" from="948350707" to="435668539" priority="9" type="highway.primary" spreadType="center">
- <lane id="133868186_0" index="0" speed="27.78" length="3.31" shape="757.15,2269.37 761.17,2269.60"/>
- <lane id="133868186_1" index="1" speed="27.78" length="3.31" shape="756.96,2272.66 760.98,2272.90"/>
- <lane id="133868186_2" index="2" speed="27.78" length="3.31" shape="756.76,2275.96 760.79,2276.19"/>
- <lane id="133868186_3" index="3" speed="27.78" length="3.31" shape="756.57,2279.25 757.72,2279.32"/>
- </edge>
- <edge id="133868188" from="948350607" to="243489891" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="133868188_0" index="0" speed="22.22" length="0.69" shape="758.33,2286.90 757.66,2287.09"/>
- </edge>
- <edge id="133868191#0" from="243489891" to="948350597" priority="9" type="highway.primary" spreadType="center">
- <lane id="133868191#0_0" index="0" speed="27.78" length="2.75" shape="742.07,2297.74 739.18,2299.13"/>
- <lane id="133868191#0_1" index="1" speed="27.78" length="2.75" shape="740.63,2294.77 737.54,2296.26"/>
- <lane id="133868191#0_2" index="2" speed="27.78" length="2.75" shape="739.20,2291.79 735.91,2293.38"/>
- <lane id="133868191#0_3" index="3" speed="27.78" length="2.75" shape="737.76,2288.82 737.12,2289.13"/>
- </edge>
- <edge id="133868191#1" from="948350597" to="948350673" priority="9" type="highway.primary" spreadType="center">
- <lane id="133868191#1_0" index="0" speed="27.78" length="2.47" shape="737.72,2299.84 732.94,2302.56"/>
- <lane id="133868191#1_1" index="1" speed="27.78" length="2.47" shape="737.19,2296.35 736.09,2296.98"/>
- <lane id="133868191#1_2" index="2" speed="27.78" length="2.47" shape="735.75,2293.37 734.46,2294.11"/>
- <lane id="133868191#1_3" index="3" speed="27.78" length="2.47" shape="734.23,2290.44 732.83,2291.24"/>
- </edge>
- <edge id="133868191#2" from="948350673" to="435668557" priority="9" type="highway.primary" spreadType="center">
- <lane id="133868191#2_0" index="0" speed="27.78" length="119.48" shape="727.51,2305.54 622.74,2362.99"/>
- <lane id="133868191#2_1" index="1" speed="27.78" length="119.48" shape="725.92,2302.65 621.15,2360.10"/>
- <lane id="133868191#2_2" index="2" speed="27.78" length="119.48" shape="724.33,2299.76 619.57,2357.21"/>
- <lane id="133868191#2_3" index="3" speed="27.78" length="119.48" shape="722.75,2296.86 617.98,2354.31"/>
- </edge>
- <edge id="133868229#0" from="948350707" to="948350588" priority="15" type="highway.primary|railway.tram">
- <lane id="133868229#0_0" index="0" speed="27.78" length="7.14" shape="750.00,2268.95 758.93,2263.73"/>
- <lane id="133868229#0_1" index="1" speed="27.78" length="7.14" shape="757.19,2268.57 760.60,2266.58"/>
- </edge>
- <edge id="133868229#1" from="948350588" to="948350630" priority="15" type="highway.primary|railway.tram">
- <lane id="133868229#1_0" index="0" speed="27.78" length="4.14" shape="764.56,2260.42 768.45,2258.13"/>
- <lane id="133868229#1_1" index="1" speed="27.78" length="4.14" shape="766.23,2263.27 769.47,2261.36"/>
- </edge>
- <edge id="133868231#0" from="948350607" to="948350595" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
- <lane id="133868231#0_0" index="0" speed="27.78" length="3.70" shape="761.87,2287.57 759.86,2290.68"/>
- </edge>
- <edge id="133868231#1" from="948350595" to="948350636" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="759.57,2291.12 758.23,2293.79 757.24,2298.59 756.63,2306.21">
- <lane id="133868231#1_0" index="0" speed="27.78" length="11.45" shape="758.04,2294.71 757.24,2298.59 756.64,2306.06"/>
- </edge>
- <edge id="133960538#0" from="438042386" to="438042385" priority="7" type="highway.secondary" spreadType="center" shape="1175.97,1687.44 1182.97,1693.09 1188.23,1699.30 1193.97,1705.98 1198.65,1713.35 1204.78,1726.31 1208.71,1740.46 1211.11,1748.62">
- <lane id="133960538#0_0" index="0" speed="27.78" length="62.76" shape="1180.71,1689.15 1184.13,1691.91 1189.48,1698.23 1195.22,1704.91 1200.04,1712.46 1206.28,1725.61 1210.30,1740.02 1211.38,1743.67"/>
- <lane id="133960538#0_1" index="1" speed="27.78" length="62.76" shape="1178.64,1691.72 1181.81,1694.28 1186.97,1700.36 1192.71,1707.06 1197.26,1714.23 1203.29,1727.02 1207.12,1740.90 1208.21,1744.60"/>
- </edge>
- <edge id="133960538#1" from="438042385" to="1257054108" priority="7" type="highway.secondary" spreadType="center" shape="1211.11,1748.62 1214.55,1757.78 1218.09,1766.84 1307.17,1938.59">
- <lane id="133960538#1_0" index="0" speed="27.78" length="203.68" shape="1214.21,1752.19 1216.09,1757.20 1219.62,1766.24 1306.39,1933.51"/>
- <lane id="133960538#1_1" index="1" speed="27.78" length="203.68" shape="1211.12,1753.35 1213.00,1758.36 1216.55,1767.44 1303.46,1935.02"/>
- </edge>
- <edge id="133960538#2" from="1257054108" to="452446345" priority="7" type="highway.secondary" spreadType="center">
- <lane id="133960538#2_0" index="0" speed="27.78" length="5.85" shape="1311.00,1941.90 1313.95,1946.95"/>
- <lane id="133960538#2_1" index="1" speed="27.78" length="5.85" shape="1308.15,1943.56 1311.10,1948.61"/>
- </edge>
- <edge id="133960539#0" from="438042381" to="951739771" priority="7" type="highway.secondary" spreadType="center">
- <lane id="133960539#0_0" index="0" speed="27.78" length="30.10" shape="1163.66,1692.72 1149.39,1666.22"/>
- <lane id="133960539#0_1" index="1" speed="27.78" length="30.10" shape="1166.57,1691.16 1152.29,1664.65"/>
- </edge>
- <edge id="133960539#1" from="951739771" to="1780219359" priority="7" type="highway.secondary" spreadType="center" shape="1150.68,1665.14 1058.37,1487.74 1044.26,1474.36 1030.84,1459.74 1023.96,1449.81 1018.20,1439.28 1014.03,1430.53 1011.10,1421.83 1007.43,1407.23 1005.92,1393.82 1003.94,1383.86 1000.37,1374.72 940.72,1260.39 924.37,1227.56">
- <lane id="133960539#1_0" index="0" speed="27.78" length="484.25" shape="1145.87,1659.47 1057.04,1488.75 1043.12,1475.56 1029.63,1460.86 1022.60,1450.75 1016.76,1440.07 1012.54,1431.24 1009.54,1422.36 1005.83,1407.63 1004.28,1394.00 1002.35,1384.32 998.83,1375.32 939.26,1261.15 925.06,1232.66"/>
- <lane id="133960539#1_1" index="1" speed="27.78" length="484.25" shape="1148.80,1657.95 1059.71,1486.74 1045.40,1473.17 1032.06,1458.63 1025.32,1448.87 1019.65,1438.49 1015.52,1429.82 1012.67,1421.31 1009.03,1406.82 1007.56,1393.63 1005.53,1383.39 1001.90,1374.12 942.19,1259.62 928.02,1231.19"/>
- </edge>
- <edge id="133960539#2" from="1780219359" to="446017746" priority="7" type="highway.secondary" spreadType="center">
- <lane id="133960539#2_0" index="0" speed="27.78" length="2.58" shape="920.72,1223.95 919.57,1221.63"/>
- <lane id="133960539#2_1" index="1" speed="27.78" length="2.58" shape="923.68,1222.47 922.52,1220.16"/>
- </edge>
- <edge id="133960539#3" from="446017746" to="950640550" priority="7" type="highway.secondary" spreadType="center">
- <lane id="133960539#3_0" index="0" speed="27.78" length="2.40" shape="916.63,1216.08 915.45,1214.00"/>
- <lane id="133960539#3_1" index="1" speed="27.78" length="2.40" shape="919.50,1214.46 918.32,1212.38"/>
- </edge>
- <edge id="133960539#4" from="950640550" to="438042367" priority="7" type="highway.secondary" spreadType="center">
- <lane id="133960539#4_0" index="0" speed="27.78" length="3.02" shape="913.85,1211.18 912.26,1208.61"/>
- <lane id="133960539#4_1" index="1" speed="27.78" length="3.02" shape="916.66,1209.45 915.07,1206.88"/>
- </edge>
- <edge id="134572336#0" from="267584629" to="477486714" priority="5" type="highway.unclassified" spreadType="center" shape="607.00,2300.19 612.11,2279.76 622.67,2260.14 623.92,2258.77 640.20,2240.84 666.99,2225.88">
- <lane id="134572336#0_0" index="0" speed="22.22" length="95.11" shape="605.40,2299.79 610.56,2279.16 621.31,2259.18 622.70,2257.65 639.16,2239.53 661.83,2226.87"/>
- <lane id="134572336#0_1" index="1" speed="22.22" length="95.11" shape="608.60,2300.59 613.66,2280.36 624.02,2261.10 625.14,2259.88 641.24,2242.15 663.44,2229.76"/>
- </edge>
- <edge id="134572336#1" from="477486714" to="446017735" priority="5" type="highway.unclassified" spreadType="center" shape="666.99,2225.88 693.99,2224.04 727.78,2228.85">
- <lane id="134572336#1_0" index="0" speed="22.22" length="48.49" shape="675.43,2223.65 694.06,2222.38 723.93,2226.63"/>
- <lane id="134572336#1_1" index="1" speed="22.22" length="48.49" shape="675.66,2226.94 693.93,2225.70 723.46,2229.90"/>
- </edge>
- <edge id="134572336#2" from="446017735" to="428303370" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="134572336#2_0" index="0" speed="22.22" length="4.85" shape="730.40,2228.40 734.65,2230.73"/>
- <lane id="134572336#2_1" index="1" speed="22.22" length="4.85" shape="728.82,2231.30 733.07,2233.62"/>
- </edge>
- <edge id="134572336#3" from="428303370" to="445506215" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="134572336#3_0" index="0" speed="22.22" length="9.28" shape="749.62,2243.15 755.87,2250.00"/>
- <lane id="134572336#3_1" index="1" speed="22.22" length="9.28" shape="747.18,2245.37 753.43,2252.23"/>
- </edge>
- <edge id="134572340#0" from="445506215" to="1479400627" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="134572340#0_0" index="0" speed="22.22" length="1.39" shape="767.40,2258.01 768.73,2258.42"/>
- <lane id="134572340#0_1" index="1" speed="22.22" length="1.39" shape="766.43,2261.17 767.76,2261.58"/>
- </edge>
- <edge id="134572340#1" from="1479400627" to="948350630" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="134572340#1_0" index="0" speed="22.22" length="1.00" shape="770.27,2258.90 771.75,2259.35"/>
- <lane id="134572340#1_1" index="1" speed="22.22" length="1.00" shape="769.30,2262.05 769.73,2262.18"/>
- </edge>
- <edge id="134872478" from="1482088973" to="1482088987" priority="1" type="highway.pedestrian">
- <lane id="134872478_0" index="0" allow="pedestrian" speed="8.33" length="80.18" shape="725.65,1767.74 762.25,1839.08"/>
- </edge>
- <edge id="139118802#0" from="452446338" to="443101938" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118802#0_0" index="0" speed="22.22" length="22.34" shape="1588.22,1856.27 1568.44,1866.64"/>
- </edge>
- <edge id="139118802#1" from="443101938" to="945146413" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118802#1_0" index="0" speed="22.22" length="159.61" shape="1568.44,1866.64 1427.14,1940.88"/>
- </edge>
- <edge id="139118802#2" from="945146413" to="252418152" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118802#2_0" index="0" speed="22.22" length="11.45" shape="1421.62,1943.74 1411.43,1948.97"/>
- </edge>
- <edge id="139118804#0" from="320879142" to="452446339" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118804#0_0" index="0" speed="22.22" length="8.24" shape="1311.45,2001.33 1304.14,2005.12"/>
- </edge>
- <edge id="139118804#1" from="452446339" to="1545672787" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118804#1_0" index="0" speed="22.22" length="124.25" shape="1304.14,2005.12 1194.46,2063.51"/>
- </edge>
- <edge id="139118804#2" from="1545672787" to="252418937" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118804#2_0" index="0" speed="22.22" length="110.50" shape="1184.57,2068.78 1087.03,2120.70"/>
- </edge>
- <edge id="139118804#3" from="252418937" to="975934874" priority="5" type="highway.unclassified" spreadType="center" shape="1082.75,2122.97 1027.79,2152.14 829.27,2256.89 771.01,2287.62">
- <lane id="139118804#3_0" index="0" speed="22.22" length="345.15" shape="1078.53,2125.22 1027.79,2152.14 829.27,2256.89 773.32,2286.40"/>
- </edge>
- <edge id="139118804#4" from="975934874" to="445823604" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118804#4_0" index="0" speed="22.22" length="0.56" shape="767.65,2289.36 767.16,2289.61"/>
- </edge>
- <edge id="139118805#0" from="950094494" to="974693391" priority="15" type="highway.primary|railway.tram">
- <lane id="139118805#0_0" index="0" speed="27.78" length="46.24" shape="1296.04,1979.28 1336.83,1957.51"/>
- <lane id="139118805#0_1" index="1" speed="27.78" length="46.24" shape="1297.59,1982.19 1338.39,1960.42"/>
- </edge>
- <edge id="139118805#1" from="974693391" to="1257054172" priority="15" type="highway.primary|railway.tram">
- <lane id="139118805#1_0" index="0" speed="27.78" length="5.34" shape="1342.31,1954.59 1347.03,1952.09"/>
- <lane id="139118805#1_1" index="1" speed="27.78" length="5.34" shape="1343.86,1957.51 1348.57,1955.01"/>
- </edge>
- <edge id="139118805#2" from="1257054172" to="950094458" priority="15" type="highway.primary|railway.tram">
- <lane id="139118805#2_0" index="0" speed="27.78" length="60.52" shape="1355.42,1947.65 1408.93,1919.37"/>
- <lane id="139118805#2_1" index="1" speed="27.78" length="60.52" shape="1356.96,1950.56 1410.47,1922.29"/>
- </edge>
- <edge id="139118806" from="450564004" to="450564005" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="139118806_0" index="0" speed="22.22" length="10.95" shape="1384.73,2157.21 1394.51,2152.29"/>
- </edge>
- <edge id="139118808" from="950094494" to="13929737" priority="5" type="highway.unclassified" spreadType="center" shape="1294.72,1985.59 1292.56,1979.87 1291.53,1973.90">
- <lane id="139118808_0" index="0" speed="22.22" length="0.11" shape="1292.18,1977.66 1292.16,1977.56"/>
- </edge>
- <edge id="141190463" from="1545661417" to="250685816" priority="4" type="highway.residential" spreadType="center">
- <lane id="141190463_0" index="0" speed="13.89" length="1.80" shape="1275.54,2219.28 1276.39,2220.86"/>
- </edge>
- <edge id="141190464" from="1545661417" to="450564004" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="141190464_0" index="0" speed="22.22" length="116.22" shape="1276.81,2215.08 1379.19,2160.09"/>
- </edge>
- <edge id="141190466#0" from="250685816" to="250686694" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="141190466#0_0" index="0" speed="22.22" length="57.40" shape="1275.85,2226.52 1225.09,2253.31"/>
- </edge>
- <edge id="141190466#1" from="250686694" to="250685766" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="141190466#1_0" index="0" speed="22.22" length="57.48" shape="1219.60,2256.21 1168.84,2283.16"/>
- </edge>
- <edge id="141190466#2" from="250685766" to="426879846" priority="5" type="highway.unclassified" spreadType="center" shape="1164.64,2285.38 1063.13,2338.26 960.30,2390.40 852.14,2448.74">
- <lane id="141190466#2_0" index="0" speed="22.22" length="347.88" shape="1160.42,2287.58 1063.13,2338.26 960.30,2390.40 852.14,2448.74"/>
- </edge>
- <edge id="141191247#0" from="1545672819" to="1545672806" priority="1" type="highway.footway">
- <lane id="141191247#0_0" index="0" allow="pedestrian" speed="8.33" length="2.20" shape="1174.09,2092.36 1172.49,2090.85"/>
- </edge>
- <edge id="141191247#1" from="1545672806" to="1545673105" priority="1" type="highway.footway" shape="1172.90,2088.98 1168.13,2085.06 1092.59,2124.91 1110.81,2160.62">
- <lane id="141191247#1_0" index="0" allow="pedestrian" speed="8.33" length="118.13" shape="1169.36,2088.20 1167.93,2087.03 1094.80,2125.61 1110.07,2155.54"/>
- </edge>
- <edge id="141191247#2" from="1545673105" to="1545673345" priority="1" type="highway.footway">
- <lane id="141191247#2_0" index="0" allow="pedestrian" speed="8.33" length="58.61" shape="1114.49,2164.21 1141.14,2216.42"/>
- </edge>
- <edge id="141191247#3" from="1545673345" to="1545673319" priority="1" type="highway.footway" shape="1141.83,2221.41 1165.58,2267.95 1259.47,2219.72 1259.48,2214.22">
- <lane id="141191247#3_0" index="0" allow="pedestrian" speed="8.33" length="150.08" shape="1145.47,2224.91 1166.30,2265.72 1257.83,2218.71 1257.83,2217.34"/>
- </edge>
- <edge id="141191247#4" from="1545673319" to="1545673304" priority="1" type="highway.footway">
- <lane id="141191247#4_0" index="0" allow="pedestrian" speed="8.33" length="2.18" shape="1257.82,2213.30 1257.80,2211.12"/>
- </edge>
- <edge id="141191248#0" from="1545672864" to="1545672843" priority="1" type="highway.footway" shape="1197.19,2109.26 1191.53,2099.68 1191.03,2098.99">
- <lane id="141191248#0_0" index="0" allow="pedestrian" speed="8.33" length="4.04" shape="1193.28,2105.88 1191.22,2102.41"/>
- </edge>
- <edge id="141191248#1" from="1545672843" to="1545672797" priority="1" type="highway.footway" shape="1191.03,2098.99 1189.88,2097.39 1188.45,2093.93 1187.04,2088.22 1187.61,2083.58 1188.51,2080.15">
- <lane id="141191248#1_0" index="0" allow="pedestrian" speed="8.33" length="1.29" shape="1186.56,2093.09 1186.24,2091.84"/>
- </edge>
- <edge id="141191248#2" from="1545672797" to="1545672785" priority="1" type="highway.footway" shape="1188.51,2080.15 1192.21,2075.01 1247.38,2046.15">
- <lane id="141191248#2_0" index="0" allow="pedestrian" speed="8.33" length="67.28" shape="1188.40,2077.48 1191.09,2073.73 1246.62,2044.69"/>
- </edge>
- <edge id="141191249#0" from="1545673349" to="1545673345" priority="1" type="highway.footway">
- <lane id="141191249#0_0" index="0" allow="pedestrian" speed="8.33" length="0.93" shape="1136.84,2222.14 1137.67,2221.71"/>
- </edge>
- <edge id="141191249#1" from="1545673345" to="1545673333" priority="1" type="highway.footway">
- <lane id="141191249#1_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1145.31,2217.76 1147.88,2216.43"/>
- </edge>
- <edge id="141191249#2" from="1545673333" to="1545673280" priority="1" type="highway.footway" shape="1151.68,2216.33 1154.67,2216.86 1157.37,2217.24 1160.41,2216.54 1162.72,2215.20 1190.28,2200.75">
- <lane id="141191249#2_0" index="0" allow="pedestrian" speed="8.33" length="31.54" shape="1156.30,2215.42 1157.30,2215.57 1159.80,2214.99 1161.89,2213.77 1184.51,2201.92"/>
- </edge>
- <edge id="141191249#3" from="1545673280" to="1545673191" priority="1" type="highway.footway">
- <lane id="141191249#3_0" index="0" allow="pedestrian" speed="8.33" length="25.71" shape="1193.12,2197.40 1215.89,2185.47"/>
- </edge>
- <edge id="141191249#4" from="1545673191" to="1545673135" priority="1" type="highway.footway">
- <lane id="141191249#4_0" index="0" allow="pedestrian" speed="8.33" length="30.31" shape="1224.29,2181.05 1251.11,2166.93"/>
- </edge>
- <edge id="141191249#5" from="1545673135" to="1545673031" priority="1" type="highway.footway">
- <lane id="141191249#5_0" index="0" allow="pedestrian" speed="8.33" length="41.17" shape="1259.51,2162.50 1295.94,2143.32"/>
- </edge>
- <edge id="141191250#0" from="1545673118" to="1545673105" priority="1" type="highway.footway">
- <lane id="141191250#0_0" index="0" allow="pedestrian" speed="8.33" length="1.58" shape="1105.75,2161.55 1107.13,2160.78"/>
- </edge>
- <edge id="141191250#1" from="1545673105" to="1545673065" priority="1" type="highway.footway" shape="1110.81,2160.62 1121.27,2154.80 1122.59,2153.96">
- <lane id="141191250#1_0" index="0" allow="pedestrian" speed="8.33" length="4.57" shape="1114.26,2156.81 1118.26,2154.59"/>
- </edge>
- <edge id="141191250#2" from="1545673065" to="1545672874" priority="1" type="highway.footway" shape="1122.59,2153.96 1123.07,2151.90 1124.05,2149.21 1125.37,2147.86 1127.20,2146.49 1186.40,2115.00">
- <lane id="141191250#2_0" index="0" allow="pedestrian" speed="8.33" length="69.09" shape="1121.90,2150.32 1122.63,2148.32 1124.19,2146.71 1126.21,2145.17 1181.10,2115.96"/>
- </edge>
- <edge id="141191250#3" from="1545672874" to="1545672864" priority="1" type="highway.footway">
- <lane id="141191250#3_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1189.53,2111.46 1192.09,2110.10"/>
- </edge>
- <edge id="141191250#4" from="1545672864" to="1545672804" priority="1" type="highway.footway">
- <lane id="141191250#4_0" index="0" allow="pedestrian" speed="8.33" length="44.67" shape="1200.48,2105.64 1239.92,2084.65"/>
- </edge>
- <edge id="141191250#5" from="1545672804" to="1545672788" priority="1" type="highway.footway">
- <lane id="141191250#5_0" index="0" allow="pedestrian" speed="8.33" length="21.07" shape="1248.31,2080.19 1266.91,2070.30"/>
- </edge>
- <edge id="141191251#0" from="1545673280" to="1545673218" priority="1" type="highway.footway" shape="1190.28,2200.75 1187.95,2198.06 1185.36,2195.49 1182.92,2193.29 1179.76,2191.53 1176.54,2190.64">
- <lane id="141191251#0_0" index="0" allow="pedestrian" speed="8.33" length="7.41" shape="1185.24,2197.70 1184.20,2196.66 1181.95,2194.64 1179.41,2193.22"/>
- </edge>
- <edge id="141191251#1" from="1545673218" to="1545673223" priority="1" type="highway.footway" shape="1176.54,2190.64 1172.68,2190.04 1169.70,2190.24 1166.94,2190.65 1164.77,2191.70">
- <lane id="141191251#1_0" index="0" allow="pedestrian" speed="8.33" length="1.52" shape="1170.32,2191.85 1169.81,2191.89 1168.81,2192.04"/>
- </edge>
- <edge id="141191251#2" from="1545673223" to="1545673333" priority="1" type="highway.footway" shape="1164.77,2191.70 1162.33,2193.63 1160.13,2196.79 1155.94,2203.01 1154.02,2206.17 1152.64,2210.11 1151.74,2213.60 1151.68,2216.33">
- <lane id="141191251#2_0" index="0" allow="pedestrian" speed="8.33" length="17.37" shape="1162.01,2196.97 1161.48,2197.73 1157.31,2203.93 1155.52,2206.88 1154.19,2210.66 1153.82,2212.13"/>
- </edge>
- <edge id="141191252" from="1545672804" to="1545672824" priority="1" type="highway.footway">
- <lane id="141191252_0" index="0" allow="pedestrian" speed="8.33" length="3.17" shape="1248.61,2087.53 1249.97,2090.40"/>
- </edge>
- <edge id="141191253#0" from="1545673150" to="1545673240" priority="1" type="highway.footway" shape="1309.98,2169.16 1303.54,2169.23 1297.68,2169.54 1292.34,2170.03 1287.21,2171.56 1280.78,2174.63 1275.18,2178.02 1269.08,2182.53 1264.52,2186.60 1260.35,2189.95 1256.69,2192.89">
- <lane id="141191253#0_0" index="0" allow="pedestrian" speed="8.33" length="52.09" shape="1305.27,2170.87 1303.56,2170.88 1297.77,2171.19 1292.65,2171.66 1287.68,2173.14 1281.49,2176.12 1276.03,2179.43 1270.06,2183.85 1265.62,2187.83 1261.38,2191.24 1259.69,2192.60"/>
- </edge>
- <edge id="141191253#1" from="1545673240" to="1545673191" priority="1" type="highway.footway" shape="1256.69,2192.89 1252.92,2195.00 1249.55,2196.50 1245.44,2197.18 1240.82,2197.86 1236.40,2198.15 1232.90,2198.10 1230.11,2197.43 1227.83,2196.44 1226.11,2194.93 1224.47,2192.09 1221.00,2184.66">
- <lane id="141191253#1_0" index="0" allow="pedestrian" speed="8.33" length="32.84" shape="1249.51,2198.17 1245.71,2198.80 1241.06,2199.49 1236.51,2199.79 1232.70,2199.75 1229.72,2199.03 1226.93,2197.86 1224.82,2195.99 1223.04,2192.92 1221.58,2189.80"/>
- </edge>
- <edge id="141191254#0" from="1545673135" to="1545673067" priority="1" type="highway.footway" shape="1256.14,2166.14 1254.25,2162.73 1252.27,2158.13 1249.98,2155.33 1248.13,2153.76 1245.45,2152.18">
- <lane id="141191254#0_0" index="0" allow="pedestrian" speed="8.33" length="10.65" shape="1252.44,2162.68 1250.85,2158.99 1248.79,2156.49 1247.06,2155.02 1246.10,2154.46"/>
- </edge>
- <edge id="141191254#1" from="1545673067" to="1545673123" priority="1" type="highway.footway" shape="1245.45,2152.18 1240.89,2151.35 1233.90,2151.24 1228.66,2151.40 1221.17,2151.96 1213.04,2153.19 1205.65,2155.34 1197.18,2157.95 1187.19,2161.01 1183.08,2162.82 1182.08,2163.41">
- <lane id="141191254#1_0" index="0" allow="pedestrian" speed="8.33" length="60.57" shape="1244.39,2153.67 1240.59,2152.97 1233.87,2152.89 1228.71,2153.05 1221.29,2153.61 1213.29,2154.82 1206.11,2156.93 1197.67,2159.53 1187.67,2162.59 1185.37,2163.61"/>
- </edge>
- <edge id="141191254#2" from="1545673123" to="1545673218" priority="1" type="highway.footway" shape="1182.08,2163.41 1181.06,2164.02 1179.20,2166.00 1177.80,2169.58 1176.22,2175.55 1175.65,2180.35 1175.71,2184.19 1175.84,2187.38 1176.54,2190.64">
- <lane id="141191254#2_0" index="0" allow="pedestrian" speed="8.33" length="12.64" shape="1178.92,2171.78 1177.82,2175.97 1177.29,2180.55 1177.37,2184.25"/>
- </edge>
- <edge id="141191255#0" from="1545672923" to="1545672999" priority="1" type="highway.footway" shape="1274.93,2125.18 1275.85,2123.17 1276.18,2120.33 1275.34,2117.09 1273.41,2114.58 1270.31,2112.84 1266.90,2112.53 1263.27,2113.84 1261.13,2115.88 1259.82,2118.57 1259.59,2121.77 1260.36,2124.39 1260.99,2125.47 1258.56,2129.03 1257.87,2132.60 1258.32,2135.75 1260.00,2138.97 1262.94,2141.55 1266.15,2142.75 1269.74,2142.80 1272.78,2141.82 1275.37,2139.92 1276.17,2138.79">
- <lane id="141191255#0_0" index="0" allow="pedestrian" speed="8.33" length="52.15" shape="1274.25,2122.65 1274.51,2120.44 1273.82,2117.83 1272.31,2115.86 1269.81,2114.45 1267.11,2114.20 1264.15,2115.27 1262.48,2116.87 1261.45,2119.00 1261.25,2121.59 1261.89,2123.73 1262.93,2125.54 1260.12,2129.68 1259.54,2132.64 1259.91,2135.23 1261.32,2137.94 1263.80,2140.11 1266.46,2141.11 1269.50,2141.15 1270.98,2140.67"/>
- </edge>
- <edge id="141191255#1" from="1545672999" to="1545672923" priority="1" type="highway.footway" shape="1276.17,2138.79 1277.36,2137.10 1278.32,2133.43 1278.13,2130.65 1277.03,2127.73 1274.93,2125.18">
- <lane id="141191255#1_0" index="0" allow="pedestrian" speed="8.33" length="6.26" shape="1276.56,2133.65 1276.66,2133.27 1276.50,2131.01 1275.58,2128.57 1274.95,2127.80"/>
- </edge>
- <edge id="141191256#0" from="1545673223" to="1545673092" priority="1" type="highway.footway" shape="1164.77,2191.70 1161.61,2189.14 1158.42,2185.78 1155.80,2181.62 1153.93,2178.10 1152.64,2175.00 1152.15,2171.89 1152.01,2168.12 1152.52,2163.32 1152.72,2157.95">
- <lane id="141191256#0_0" index="0" allow="pedestrian" speed="8.33" length="29.00" shape="1159.63,2189.44 1157.11,2186.80 1154.41,2182.50 1152.47,2178.87 1151.04,2175.45 1150.52,2172.15 1150.36,2168.18 1150.88,2163.07"/>
- </edge>
- <edge id="141191256#1" from="1545673092" to="1545672919" priority="1" type="highway.footway" shape="1152.72,2157.95 1153.16,2154.10 1154.64,2150.67 1156.68,2146.51 1159.58,2141.81 1163.36,2137.40 1166.88,2134.51 1169.03,2132.51 1173.81,2130.48 1179.08,2128.65 1183.65,2127.41 1188.43,2126.47 1189.89,2126.22">
- <lane id="141191256#1_0" index="0" allow="pedestrian" speed="8.33" length="45.46" shape="1151.74,2153.21 1153.12,2150.02 1155.20,2145.78 1158.17,2140.95 1162.21,2136.21 1165.84,2133.24 1168.12,2131.11 1173.16,2128.96 1178.54,2127.09 1183.22,2125.82 1184.72,2125.52"/>
- </edge>
- <edge id="141191256#2" from="1545672919" to="1545672910" priority="1" type="highway.footway" shape="1189.89,2126.22 1196.89,2126.62 1203.07,2127.03 1208.17,2127.01 1213.69,2126.41 1218.41,2125.75 1222.77,2125.02 1227.08,2124.27">
- <lane id="141191256#2_0" index="0" allow="pedestrian" speed="8.33" length="26.82" shape="1195.28,2124.87 1196.98,2124.97 1203.18,2125.38 1208.16,2125.36 1213.51,2124.77 1218.18,2124.12 1221.95,2123.49"/>
- </edge>
- <edge id="141191257" from="1545673030" to="1545672999" priority="1" type="highway.footway" shape="1281.00,2142.63 1278.81,2140.81 1276.17,2138.79">
- <lane id="141191257_0" index="0" allow="pedestrian" speed="8.33" length="3.47" shape="1278.66,2142.77 1275.90,2140.66"/>
- </edge>
- <edge id="141191258#0" from="1545672954" to="1545673031" priority="1" type="highway.footway" shape="1286.23,2130.45 1287.14,2130.58 1292.28,2133.33 1296.25,2135.95 1299.06,2138.73 1300.95,2142.54">
- <lane id="141191258#0_0" index="0" allow="pedestrian" speed="8.33" length="11.94" shape="1290.76,2130.65 1293.06,2131.87 1297.30,2134.67 1300.33,2137.66"/>
- </edge>
- <edge id="141191258#1" from="1545673031" to="1545673150" priority="1" type="highway.footway" shape="1300.95,2142.54 1309.82,2159.95 1310.52,2162.55 1310.15,2166.11 1309.98,2169.16">
- <lane id="141191258#1_0" index="0" allow="pedestrian" speed="8.33" length="20.42" shape="1304.59,2146.06 1311.37,2159.36 1312.19,2162.42 1311.95,2164.73"/>
- </edge>
- <edge id="141191258#2" from="1545673150" to="1545673304" priority="1" type="highway.footway" shape="1309.98,2169.16 1310.06,2174.09 1309.63,2179.02 1308.88,2181.73 1306.95,2184.00 1303.49,2186.60 1294.03,2190.57 1288.68,2192.55 1283.76,2194.95 1280.60,2196.88 1277.74,2200.13 1277.05,2202.75 1276.09,2205.81 1274.95,2207.57 1270.90,2208.66 1259.42,2208.43">
- <lane id="141191258#2_0" index="0" allow="pedestrian" speed="8.33" length="66.28" shape="1311.70,2173.87 1311.71,2174.07 1311.26,2179.32 1310.37,2182.52 1308.09,2185.21 1304.32,2188.05 1294.67,2192.09 1289.25,2194.10 1284.49,2196.43 1281.67,2198.16 1279.24,2200.93 1278.65,2203.17 1277.59,2206.52 1275.99,2208.99 1271.10,2210.31 1264.24,2210.18"/>
- </edge>
- <edge id="141191258#3" from="1545673304" to="1545673240" priority="1" type="highway.footway" shape="1259.42,2208.43 1257.67,2208.05 1256.10,2206.53 1255.02,2203.99 1254.66,2200.81 1255.42,2197.21 1256.69,2192.89">
- <lane id="141191258#3_0" index="0" allow="pedestrian" speed="8.33" length="8.15" shape="1255.71,2208.45 1254.71,2207.48 1253.41,2204.42 1253.03,2201.01"/>
- </edge>
- <edge id="141191259#0" from="1545672852" to="1545672824" priority="1" type="highway.footway" shape="1277.60,2103.24 1273.29,2099.82 1267.71,2096.97 1262.17,2095.42 1256.60,2094.96 1250.63,2095.64">
- <lane id="141191259#0_0" index="0" allow="pedestrian" speed="8.33" length="23.70" shape="1276.34,2104.34 1272.39,2101.21 1267.11,2098.51 1261.87,2097.06 1256.62,2096.62 1254.61,2096.85"/>
- </edge>
- <edge id="141191259#1" from="1545672824" to="1545672910" priority="1" type="highway.footway" shape="1250.63,2095.64 1242.13,2098.88 1235.83,2103.67 1231.91,2108.49 1229.22,2113.66 1227.81,2118.19 1227.08,2124.27">
- <lane id="141191259#1_0" index="0" allow="pedestrian" speed="8.33" length="29.18" shape="1246.53,2098.97 1242.94,2100.34 1236.99,2104.87 1233.30,2109.40 1230.75,2114.29 1229.43,2118.54 1229.19,2120.58"/>
- </edge>
- <edge id="141191259#2" from="1545672910" to="1545673067" priority="1" type="highway.footway" shape="1227.08,2124.27 1228.04,2132.21 1229.55,2136.54 1232.44,2141.72 1236.03,2145.96 1240.58,2149.61 1245.45,2152.18">
- <lane id="141191259#2_0" index="0" allow="pedestrian" speed="8.33" length="27.57" shape="1229.31,2128.96 1229.66,2131.84 1231.06,2135.87 1233.81,2140.77 1237.19,2144.77 1241.49,2148.22 1245.06,2150.11"/>
- </edge>
- <edge id="141191259#3" from="1545673067" to="1545673030" priority="1" type="highway.footway" shape="1245.45,2152.18 1251.00,2153.87 1256.24,2154.46 1264.52,2153.49 1269.94,2151.50 1274.20,2148.99 1278.13,2145.66 1281.00,2142.63">
- <lane id="141191259#3_0" index="0" allow="pedestrian" speed="8.33" length="31.33" shape="1247.17,2150.98 1251.33,2152.25 1256.24,2152.80 1264.13,2151.87 1269.23,2150.00 1273.36,2147.56 1276.31,2145.05"/>
- </edge>
- <edge id="141191259#4" from="1545673030" to="1545672954" priority="1" type="highway.footway" shape="1281.00,2142.63 1283.09,2139.36 1284.55,2136.01 1286.23,2130.45">
- <lane id="141191259#4_0" index="0" allow="pedestrian" speed="8.33" length="2.59" shape="1282.20,2137.30 1283.04,2135.35 1283.18,2134.90"/>
- </edge>
- <edge id="141191259#5" from="1545672954" to="1545672852" priority="1" type="highway.footway" shape="1286.23,2130.45 1286.79,2124.40 1286.37,2119.72 1284.31,2112.85 1281.30,2107.52 1277.60,2103.24">
- <lane id="141191259#5_0" index="0" allow="pedestrian" speed="8.33" length="24.10" shape="1284.95,2126.32 1285.13,2124.40 1284.74,2120.03 1282.79,2113.50 1279.95,2108.47 1276.56,2104.55"/>
- </edge>
- <edge id="141191260#0" from="1545672787" to="1545672806" priority="2" type="highway.service" spreadType="center">
- <lane id="141191260#0_0" index="0" allow="delivery" speed="5.56" length="17.53" shape="1186.94,2071.66 1175.90,2085.28"/>
- </edge>
- <edge id="141191260#1" from="1545672806" to="249235163" priority="2" type="highway.service" spreadType="center" shape="1172.90,2088.98 1169.27,2093.04 1119.78,2118.58">
- <lane id="141191260#1_0" index="0" allow="delivery" speed="5.56" length="56.32" shape="1169.69,2092.57 1169.27,2093.04 1119.78,2118.58"/>
- </edge>
- <edge id="141191261#0" from="1545673352" to="1545673319" priority="2" type="highway.service" spreadType="center" shape="1182.30,2237.30 1219.52,2217.11 1223.47,2215.43 1230.45,2214.39 1259.48,2214.22">
- <lane id="141191261#0_0" index="0" allow="delivery" speed="5.56" length="77.97" shape="1182.30,2237.30 1219.52,2217.11 1223.47,2215.43 1230.45,2214.39 1254.72,2214.25"/>
- </edge>
- <edge id="141191261#1" from="1545673319" to="1545661417" priority="2" type="highway.service" spreadType="center" shape="1259.48,2214.22 1268.94,2214.17 1274.08,2216.55">
- <lane id="141191261#1_0" index="0" allow="delivery" speed="5.56" length="5.66" shape="1264.23,2214.19 1268.94,2214.17 1269.80,2214.56"/>
- </edge>
- <edge id="141191262#0" from="1545672874" to="1545672919" priority="1" type="highway.footway" shape="1186.40,2115.00 1187.37,2117.35 1188.37,2120.10 1189.29,2123.34 1189.89,2126.22">
- <lane id="141191262#0_0" index="0" allow="pedestrian" speed="8.33" length="2.17" shape="1189.77,2119.12 1189.92,2119.54 1190.39,2121.20"/>
- </edge>
- <edge id="141191262#1" from="1545672919" to="1545672971" priority="1" type="highway.footway" shape="1189.89,2126.22 1190.19,2129.24 1190.71,2134.12">
- <lane id="141191262#1_0" index="0" allow="pedestrian" speed="8.33" length="2.63" shape="1192.07,2131.33 1192.35,2133.94"/>
- </edge>
- <edge id="141191263#0" from="1545672843" to="1545672819" priority="1" type="highway.footway" shape="1191.03,2098.99 1187.94,2098.65 1184.81,2098.78 1181.89,2098.03 1179.32,2096.55 1177.15,2092.96">
- <lane id="141191263#0_0" index="0" allow="pedestrian" speed="8.33" length="6.75" shape="1183.58,2100.17 1181.26,2099.57 1178.13,2097.77 1177.74,2097.14"/>
- </edge>
- <edge id="141191263#1" from="1545672819" to="1545672797" priority="1" type="highway.footway">
- <lane id="141191263#1_0" index="0" allow="pedestrian" speed="8.33" length="0.52" shape="1179.13,2088.25 1179.47,2087.86"/>
- </edge>
- <edge id="141191264#0" from="1545673065" to="1545673092" priority="1" type="highway.footway" shape="1122.59,2153.96 1125.36,2156.49 1127.34,2157.84 1129.91,2159.25 1133.85,2159.62 1152.72,2157.95">
- <lane id="141191264#0_0" index="0" allow="pedestrian" speed="8.33" length="21.48" shape="1126.63,2155.38 1128.27,2156.47 1130.41,2157.64 1133.85,2157.96 1147.41,2156.76"/>
- </edge>
- <edge id="141191264#1" from="1545673092" to="1545673123" priority="1" type="highway.footway" shape="1152.72,2157.95 1155.15,2158.32 1161.36,2159.39 1182.08,2163.41">
- <lane id="141191264#1_0" index="0" allow="pedestrian" speed="8.33" length="17.62" shape="1158.05,2157.14 1161.64,2157.76 1175.36,2160.42"/>
- </edge>
- <edge id="144874008#0" from="252418152" to="1257054127" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="144874008#0_0" index="0" speed="22.22" length="43.12" shape="1405.91,1951.81 1367.64,1971.67"/>
- </edge>
- <edge id="144874008#1" from="1257054127" to="428097664" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="144874008#1_0" index="0" speed="22.22" length="4.43" shape="1359.17,1976.01 1355.22,1978.02"/>
- </edge>
- <edge id="144874010#0" from="950094380" to="1243159115" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1301.00,1997.93 1257.03,2021.12 1099.38,2104.24 1090.69,2108.82">
- <lane id="144874010#0_0" index="0" speed="27.78" length="232.42" shape="1299.00,2000.85 1257.80,2022.57 1100.15,2105.70 1093.41,2109.25"/>
- <lane id="144874010#0_1" index="1" speed="27.78" length="232.42" shape="1297.46,1997.93 1256.26,2019.66 1098.61,2102.78 1091.87,2106.33"/>
- </edge>
- <edge id="144874010#1" from="1243159115" to="950094412" priority="15" type="highway.primary|railway.tram" spreadType="center">
- <lane id="144874010#1_0" index="0" speed="27.78" length="3.18" shape="1084.10,2114.11 1081.28,2115.58"/>
- <lane id="144874010#1_1" index="1" speed="27.78" length="3.18" shape="1082.57,2111.19 1079.75,2112.66"/>
- </edge>
- <edge id="144874010#2" from="950094412" to="948350705" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1079.00,2114.91 784.51,2270.26 777.15,2274.14">
- <lane id="144874010#2_0" index="0" speed="27.78" length="364.85" shape="1075.42,2118.67 785.28,2271.72 752.71,2288.88"/>
- <lane id="144874010#2_1" index="1" speed="27.78" length="364.85" shape="1073.88,2115.75 783.74,2268.80 751.17,2285.96"/>
- </edge>
- <edge id="144874012#0" from="950094380" to="435668534" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="144874012#0_0" index="0" speed="22.22" length="2.37" shape="1299.86,1995.82 1298.74,1993.74"/>
- </edge>
- <edge id="144874012#1" from="435668534" to="950094494" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="144874012#1_0" index="0" speed="22.22" length="4.84" shape="1297.62,1991.64 1295.53,1987.28"/>
- </edge>
- <edge id="149408824#0" from="950094458" to="1726394729" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1413.95,1922.32 1528.79,1861.93 1572.53,1838.99 1577.27,1836.52">
- <lane id="149408824#0_0" index="0" speed="27.78" length="173.40" shape="1415.93,1919.41 1528.02,1860.47 1569.44,1838.75"/>
- <lane id="149408824#0_1" index="1" speed="27.78" length="173.40" shape="1417.47,1922.33 1529.56,1863.39 1570.97,1841.67"/>
- </edge>
- <edge id="149408824#1" from="1726394729" to="950094255" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1577.27,1836.52 1584.32,1832.81 1598.52,1825.73 1854.05,1690.97 1867.69,1683.54 1874.29,1679.23">
- <lane id="149408824#1_0" index="0" speed="27.78" length="327.83" shape="1583.86,1831.20 1597.79,1824.25 1853.28,1689.51 1866.90,1682.09 1873.38,1677.85"/>
- <lane id="149408824#1_1" index="1" speed="27.78" length="327.83" shape="1585.39,1834.12 1599.26,1827.21 1854.81,1692.43 1868.48,1684.99 1875.19,1680.61"/>
- </edge>
- <edge id="149419435#0" from="1624003172" to="1719213668" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="149419435#0_0" index="0" speed="22.22" length="1.62" shape="783.67,884.35 785.08,883.56"/>
- </edge>
- <edge id="149419435#1" from="1719213668" to="1624003193" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="149419435#1_0" index="0" speed="22.22" length="68.18" shape="793.46,878.86 852.94,845.53"/>
- </edge>
- <edge id="149419435#2" from="1624003193" to="1624003168" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="149419435#2_0" index="0" speed="22.22" length="70.92" shape="858.44,842.45 920.31,807.78"/>
- </edge>
- <edge id="149419435#3" from="1624003168" to="1624003199" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="149419435#3_0" index="0" speed="22.22" length="72.53" shape="925.81,804.70 989.08,769.23"/>
- </edge>
- <edge id="149420179" from="1624020484" to="1624020482" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="149420179_0" index="0" speed="22.22" length="71.22" shape="1002.31,964.85 940.90,1000.92"/>
- </edge>
- <edge id="149422193#0" from="443101921" to="2265767389" priority="5" type="highway.unclassified">
- <lane id="149422193#0_0" index="0" speed="22.22" length="1.75" shape="1432.35,892.86 1433.15,894.41"/>
- </edge>
- <edge id="149422193#1" from="2265767389" to="255227483" priority="5" type="highway.unclassified">
- <lane id="149422193#1_0" index="0" speed="22.22" length="4.12" shape="1434.93,897.82 1436.83,901.48"/>
- </edge>
- <edge id="149422199#0" from="255227475" to="255227480" priority="4" type="highway.residential">
- <lane id="149422199#0_0" index="0" speed="13.89" length="44.04" shape="1310.38,873.54 1348.02,850.66"/>
- </edge>
- <edge id="149422199#1" from="255227480" to="255227482" priority="4" type="highway.residential">
- <lane id="149422199#1_0" index="0" speed="13.89" length="34.50" shape="1360.18,843.25 1389.64,825.29"/>
- </edge>
- <edge id="149422199#2" from="255227482" to="432548414" priority="4" type="highway.residential">
- <lane id="149422199#2_0" index="0" speed="13.89" length="99.23" shape="1397.78,820.33 1482.63,768.89"/>
- </edge>
- <edge id="149422210#0" from="255227482" to="1624060630" priority="4" type="highway.residential">
- <lane id="149422210#0_0" index="0" speed="13.89" length="42.24" shape="1398.51,827.76 1417.99,865.24"/>
- </edge>
- <edge id="149422210#1" from="1624060630" to="443101921" priority="4" type="highway.residential">
- <lane id="149422210#1_0" index="0" speed="13.89" length="13.59" shape="1423.92,876.65 1430.19,888.71"/>
- </edge>
- <edge id="149819220" from="1224074532" to="1224074535" priority="2" type="highway.service">
- <lane id="149819220_0" index="0" allow="delivery" speed="5.56" length="55.78" shape="683.49,1105.96 657.47,1056.62"/>
- </edge>
- <edge id="149819222" from="1627657783" to="1627657715" priority="2" type="highway.service">
- <lane id="149819222_0" index="0" allow="delivery" speed="5.56" length="55.07" shape="677.05,1048.98 702.00,1098.07"/>
- </edge>
- <edge id="149819224" from="1627657822" to="1627657825" priority="2" type="highway.service">
- <lane id="149819224_0" index="0" allow="delivery" speed="5.56" length="61.71" shape="642.00,1057.93 670.26,1112.80"/>
- </edge>
- <edge id="149819227#0" from="1224074527" to="1239243628" priority="5" type="highway.unclassified">
- <lane id="149819227#0_0" index="0" speed="22.22" length="49.85" shape="605.79,1149.17 650.23,1126.58"/>
- </edge>
- <edge id="149819227#1" from="1239243628" to="1627657825" priority="5" type="highway.unclassified">
- <lane id="149819227#1_0" index="0" speed="22.22" length="8.12" shape="658.78,1122.20 665.99,1118.49"/>
- </edge>
- <edge id="149819227#2" from="1627657825" to="1224074532" priority="5" type="highway.unclassified">
- <lane id="149819227#2_0" index="0" speed="22.22" length="8.71" shape="674.43,1114.13 682.17,1110.14"/>
- </edge>
- <edge id="149819227#3" from="1224074532" to="1627657715" priority="5" type="highway.unclassified">
- <lane id="149819227#3_0" index="0" speed="22.22" length="7.31" shape="690.68,1106.29 697.49,1103.66"/>
- </edge>
- <edge id="149819232#0" from="1627657783" to="1224074535" priority="5" type="highway.unclassified">
- <lane id="149819232#0_0" index="0" speed="22.22" length="10.22" shape="672.44,1049.62 662.34,1051.19"/>
- </edge>
- <edge id="149819232#1" from="1224074535" to="1627657822" priority="5" type="highway.unclassified">
- <lane id="149819232#1_0" index="0" speed="22.22" length="8.71" shape="652.59,1052.71 643.98,1054.05"/>
- </edge>
- <edge id="149819232#2" from="1627657822" to="1224091971" priority="5" type="highway.unclassified">
- <lane id="149819232#2_0" index="0" speed="22.22" length="8.57" shape="634.24,1055.57 625.77,1056.90"/>
- </edge>
- <edge id="149819232#3" from="1224091971" to="1224074526" priority="5" type="highway.unclassified" shape="619.60,1056.19 600.63,1059.15 581.95,1062.06 562.74,1065.06">
- <lane id="149819232#3_0" index="0" speed="22.22" length="53.70" shape="616.05,1058.42 600.89,1060.78 582.21,1063.69 562.99,1066.69"/>
- </edge>
- <edge id="149868584#0" from="13990620" to="255227483" priority="7" type="highway.secondary" shape="1765.26,719.21 1756.16,726.92 1751.39,729.54 1735.40,738.79 1652.76,784.92 1573.50,828.93 1538.48,848.32 1504.88,867.61 1437.23,905.83">
- <lane id="149868584#0_0" index="0" speed="27.78" length="373.26" shape="1768.46,722.99 1758.98,731.01 1753.78,733.88 1737.88,743.08 1655.18,789.25 1575.90,833.26 1540.88,852.65 1507.35,871.90 1444.00,907.69"/>
- <lane id="149868584#0_1" index="1" speed="27.78" length="373.26" shape="1766.33,720.47 1757.10,728.28 1752.19,730.99 1736.23,740.22 1653.57,786.36 1574.30,830.37 1539.28,849.76 1505.70,869.04 1442.38,904.82"/>
- </edge>
- <edge id="149868584#1" from="255227483" to="255227471" priority="7" type="highway.secondary">
- <lane id="149868584#1_0" index="0" speed="27.78" length="95.24" shape="1435.56,912.47 1352.72,959.48"/>
- <lane id="149868584#1_1" index="1" speed="27.78" length="95.24" shape="1433.93,909.60 1351.10,956.61"/>
- </edge>
- <edge id="149868584#2" from="255227471" to="1168929657" priority="7" type="highway.secondary">
- <lane id="149868584#2_0" index="0" speed="27.78" length="162.54" shape="1342.03,965.50 1200.15,1044.81"/>
- <lane id="149868584#2_1" index="1" speed="27.78" length="162.54" shape="1340.42,962.62 1198.54,1041.93"/>
- </edge>
- <edge id="149868584#3" from="1168929657" to="1726394724" priority="7" type="highway.secondary">
- <lane id="149868584#3_0" index="0" speed="27.78" length="19.18" shape="1194.24,1048.14 1177.55,1057.58"/>
- <lane id="149868584#3_1" index="1" speed="27.78" length="19.18" shape="1192.62,1045.27 1175.93,1054.71"/>
- </edge>
- <edge id="149868584#4" from="1726394724" to="1168929383" priority="7" type="highway.secondary">
- <lane id="149868584#4_0" index="0" speed="27.78" length="17.23" shape="1163.13,1065.73 1148.13,1074.22"/>
- <lane id="149868584#4_1" index="1" speed="27.78" length="17.23" shape="1161.51,1062.86 1146.51,1071.35"/>
- </edge>
- <edge id="149868584#5" from="1168929383" to="767282288" priority="7" type="highway.secondary">
- <lane id="149868584#5_0" index="0" speed="27.78" length="218.15" shape="1142.44,1077.45 952.78,1185.24"/>
- <lane id="149868584#5_1" index="1" speed="27.78" length="218.15" shape="1140.81,1074.58 951.15,1182.37"/>
- </edge>
- <edge id="149868584#6" from="767282288" to="13929775" priority="7" type="highway.secondary">
- <lane id="149868584#6_0" index="0" speed="27.78" length="0.64" shape="944.07,1190.20 943.51,1190.51"/>
- <lane id="149868584#6_1" index="1" speed="27.78" length="0.64" shape="942.43,1187.33 941.88,1187.65"/>
- </edge>
- <edge id="149868584#7" from="13929775" to="438042369" priority="7" type="highway.secondary">
- <lane id="149868584#7_0" index="0" speed="27.78" length="7.13" shape="937.53,1193.92 931.33,1197.45"/>
- <lane id="149868584#7_1" index="1" speed="27.78" length="7.13" shape="935.90,1191.06 929.70,1194.59"/>
- </edge>
- <edge id="149868584#8" from="438042369" to="438042367" priority="7" type="highway.secondary">
- <lane id="149868584#8_0" index="0" speed="27.78" length="1.62" shape="920.18,1203.80 918.78,1204.61"/>
- <lane id="149868584#8_1" index="1" speed="27.78" length="1.62" shape="918.55,1200.94 917.14,1201.74"/>
- </edge>
- <edge id="151164683" from="1639892546" to="1718241040" priority="1" type="highway.footway" shape="1136.82,1024.60 1125.03,1000.52 1055.17,864.46 941.95,654.06 827.26,437.09 765.84,314.28 755.09,305.48">
- <lane id="151164683_0" index="0" allow="pedestrian" speed="8.33" length="809.74" shape="1133.20,1020.96 1123.54,1001.24 1053.70,865.22 940.50,654.84 825.80,437.86 764.52,315.33 754.04,306.75"/>
- </edge>
- <edge id="151167658#0" from="438042377" to="1719213140" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="151167658#0_0" index="0" speed="22.22" length="3.23" shape="1237.70,1686.74 1240.57,1685.24"/>
- </edge>
- <edge id="151167658#1" from="1719213140" to="438042376" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="151167658#1_0" index="0" speed="22.22" length="32.25" shape="1249.01,1680.82 1277.58,1665.88"/>
- </edge>
- <edge id="151167658#2" from="438042376" to="1261880295" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="151167658#2_0" index="0" speed="22.22" length="3.07" shape="1284.28,1664.19 1287.34,1663.99"/>
- </edge>
- <edge id="154409616#0" from="538902966" to="252418151" priority="6" type="highway.tertiary" spreadType="center">
- <lane id="154409616#0_0" index="0" speed="22.22" length="64.19" shape="1487.88,2104.32 1458.51,2047.24"/>
- </edge>
- <edge id="154409616#1" from="252418151" to="252418152" priority="6" type="highway.tertiary" spreadType="center">
- <lane id="154409616#1_0" index="0" speed="22.22" length="99.62" shape="1455.67,2041.73 1410.09,1953.14"/>
- </edge>
- <edge id="154409621" from="566579340" to="248913124" priority="9" type="highway.primary">
- <lane id="154409621_0" index="0" speed="27.78" length="156.37" shape="1558.93,1855.41 1420.44,1928.03"/>
- </edge>
- <edge id="154489992#0" from="1670156969" to="950094434" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1583.27,1846.87 1582.11,1847.48 1578.07,1849.59 1527.22,1876.28 1419.53,1932.99">
- <lane id="154489992#0_0" index="0" speed="27.78" length="181.90" shape="1584.04,1848.34 1582.87,1848.94 1578.84,1851.05 1527.98,1877.74 1423.05,1933.00"/>
- <lane id="154489992#0_1" index="1" speed="27.78" length="181.90" shape="1582.51,1845.41 1581.34,1846.02 1577.31,1848.13 1526.45,1874.82 1421.51,1930.08"/>
- </edge>
- <edge id="154489992#1" from="950094434" to="1257054074" priority="15" type="highway.primary|railway.tram" spreadType="center">
- <lane id="154489992#1_0" index="0" speed="27.78" length="60.51" shape="1417.54,1935.99 1364.72,1965.50"/>
- <lane id="154489992#1_1" index="1" speed="27.78" length="60.51" shape="1415.93,1933.11 1363.11,1962.62"/>
- </edge>
- <edge id="154489992#2" from="1257054074" to="950094314" priority="15" type="highway.primary|railway.tram" spreadType="center">
- <lane id="154489992#2_0" index="0" speed="27.78" length="4.41" shape="1356.21,1970.26 1352.36,1972.41"/>
- <lane id="154489992#2_1" index="1" speed="27.78" length="4.41" shape="1354.60,1967.38 1350.75,1969.53"/>
- </edge>
- <edge id="154500693#0" from="1168929349" to="1780219342" priority="7" type="highway.secondary" spreadType="center">
- <lane id="154500693#0_0" index="0" speed="27.78" length="2.61" shape="831.94,1012.19 833.14,1014.51"/>
- <lane id="154500693#0_1" index="1" speed="27.78" length="2.61" shape="829.01,1013.71 830.21,1016.03"/>
- <lane id="154500693#0_2" index="2" speed="27.78" length="2.61" shape="826.08,1015.23 827.28,1017.54"/>
- </edge>
- <edge id="154500693#1" from="1780219342" to="1780219352" priority="7" type="highway.secondary" spreadType="center">
- <lane id="154500693#1_0" index="0" speed="27.78" length="158.91" shape="839.26,1026.35 912.24,1167.51"/>
- <lane id="154500693#1_1" index="1" speed="27.78" length="158.91" shape="836.33,1027.87 909.31,1169.03"/>
- <lane id="154500693#1_2" index="2" speed="27.78" length="158.91" shape="833.40,1029.38 906.38,1170.54"/>
- </edge>
- <edge id="154500693#2" from="1780219352" to="446017743" priority="7" type="highway.secondary" spreadType="center">
- <lane id="154500693#2_0" index="0" speed="27.78" length="2.66" shape="916.62,1175.98 917.84,1178.34"/>
- <lane id="154500693#2_1" index="1" speed="27.78" length="2.66" shape="913.69,1177.50 914.91,1179.85"/>
- <lane id="154500693#2_2" index="2" speed="27.78" length="2.66" shape="910.76,1179.01 911.98,1181.37"/>
- </edge>
- <edge id="154500693#3" from="446017743" to="438042369" priority="7" type="highway.secondary" spreadType="center">
- <lane id="154500693#3_0" index="0" speed="27.78" length="3.26" shape="920.88,1184.55 922.25,1187.51"/>
- <lane id="154500693#3_1" index="1" speed="27.78" length="3.26" shape="917.89,1185.94 919.26,1188.90"/>
- <lane id="154500693#3_2" index="2" speed="27.78" length="3.26" shape="914.89,1187.32 916.26,1190.28"/>
- </edge>
- <edge id="154500695" from="438042377" to="438042373" priority="6" type="highway.secondary_link" spreadType="center" shape="1234.66,1688.33 1239.50,1694.45 1242.56,1701.83">
- <lane id="154500695_0" index="0" speed="22.22" length="9.10" shape="1236.79,1691.02 1239.50,1694.45 1241.31,1698.82"/>
- </edge>
- <edge id="154500698" from="438042381" to="438042386" priority="6" type="highway.secondary_link" spreadType="center" shape="1167.26,1695.93 1171.13,1691.28 1175.97,1687.44">
- <lane id="154500698_0" index="0" speed="22.22" length="2.08" shape="1170.87,1691.59 1171.13,1691.28 1172.45,1690.24"/>
- </edge>
- <edge id="154500699#0" from="438042386" to="438042378" priority="6" type="highway.secondary_link" spreadType="center" shape="1175.97,1687.44 1182.73,1684.10 1189.97,1681.91 1201.45,1681.53">
- <lane id="154500699#0_0" index="0" speed="22.22" length="16.05" shape="1181.19,1684.86 1182.73,1684.10 1189.97,1681.91 1196.73,1681.69"/>
- </edge>
- <edge id="154500699#1" from="438042378" to="438042377" priority="6" type="highway.secondary_link" spreadType="center" shape="1201.45,1681.53 1226.36,1686.70 1234.66,1688.33">
- <lane id="154500699#1_0" index="0" speed="22.22" length="30.26" shape="1203.48,1681.95 1226.36,1686.70 1233.12,1688.03"/>
- </edge>
- <edge id="154500706#0" from="1168929308" to="441236060" priority="5" type="highway.unclassified" spreadType="center" shape="781.15,985.59 783.46,978.13 788.69,970.63">
- <lane id="154500706#0_0" index="0" speed="22.22" length="5.02" shape="782.29,981.90 783.46,978.13 784.08,977.25"/>
- </edge>
- <edge id="154500706#1" from="441236060" to="1168929600" priority="5" type="highway.unclassified" spreadType="center" shape="788.69,970.63 795.56,965.49 801.49,963.16">
- <lane id="154500706#1_0" index="0" speed="22.22" length="1.66" shape="794.07,966.61 795.39,965.61"/>
- </edge>
- <edge id="154500706#2" from="1168929600" to="1168929298" priority="5" type="highway.unclassified" spreadType="center" shape="801.49,963.16 802.48,962.93 810.17,962.29 818.08,963.90 822.13,965.73">
- <lane id="154500706#2_0" index="0" speed="22.22" length="8.74" shape="808.70,962.41 810.17,962.29 817.29,963.74"/>
- </edge>
- <edge id="154500706#3" from="1168929298" to="1096401733" priority="5" type="highway.unclassified" spreadType="center" shape="822.13,965.73 825.35,967.81 832.01,974.96">
- <lane id="154500706#3_0" index="0" speed="22.22" length="8.90" shape="823.89,966.87 825.35,967.81 830.23,973.05"/>
- </edge>
- <edge id="154844461#0" from="1168929562" to="1246731460" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1176.41,1087.16 1168.74,1088.02 1166.50,1087.91">
- <lane id="154844461#0_0" index="0" speed="27.78" length="9.87" shape="1176.50,1088.39 1168.74,1088.02 1170.83,1087.79"/>
- </edge>
- <edge id="154844461#1" from="1246731460" to="1168929295" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1166.50,1087.91 1159.48,1086.45 1157.89,1085.88">
- <lane id="154844461#1_0" index="0" speed="27.78" length="8.08" shape="1171.03,1088.85 1163.12,1087.21"/>
- </edge>
- <edge id="154844461#2" from="1168929295" to="1246731455" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1157.89,1085.88 1154.76,1084.43 1154.20,1084.13">
- <lane id="154844461#2_0" index="0" speed="27.78" length="1.95" shape="1158.14,1085.99 1156.37,1085.17"/>
- </edge>
- <edge id="154844461#3" from="1246731455" to="1168929523" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1154.20,1084.13 1151.19,1082.21 1147.33,1078.90">
- <lane id="154844461#3_0" index="0" speed="27.78" length="2.28" shape="1150.20,1081.37 1148.48,1079.88"/>
- </edge>
- <edge id="154844462" from="1168929324" to="1246731525" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844462_0" index="0" speed="27.78" length="3.34" shape="1199.09,1051.22 1199.55,1054.52"/>
- </edge>
- <edge id="154844463" from="1168929585" to="1246731544" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844463_0" index="0" speed="27.78" length="0.93" shape="1175.02,1027.50 1175.93,1027.69"/>
- </edge>
- <edge id="154844465#0" from="1168929310" to="1168929613" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844465#0_0" index="0" speed="27.78" length="1.99" shape="1139.04,1062.27 1138.79,1060.29"/>
- </edge>
- <edge id="154844465#1" from="1168929613" to="1246731627" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844465#1_0" index="0" speed="27.78" length="0.87" shape="1138.59,1056.89 1138.61,1056.03"/>
- </edge>
- <edge id="154844465#2" from="1246731627" to="1168929272" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844465#2_0" index="0" speed="27.78" length="0.86" shape="1139.51,1050.26 1139.65,1049.41"/>
- </edge>
- <edge id="154844465#3" from="1168929272" to="1246731504" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844465#3_0" index="0" speed="27.78" length="7.98" shape="1141.54,1044.78 1144.61,1037.41"/>
- </edge>
- <edge id="154844465#4" from="1246731504" to="1168929382" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1142.53,1042.42 1143.58,1040.71 1148.91,1034.59">
- <lane id="154844465#4_0" index="0" speed="27.78" length="10.12" shape="1142.53,1042.42 1143.58,1040.71 1148.91,1034.59"/>
- </edge>
- <edge id="154844467" from="1246731574" to="1168929367" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844467_0" index="0" speed="27.78" length="0.04" shape="1182.97,1030.16 1182.95,1030.19"/>
- </edge>
- <edge id="154844470#0" from="1168929523" to="1168929383" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1147.33,1078.90 1144.59,1075.71 1142.17,1071.90">
- <lane id="154844470#0_0" index="0" speed="27.78" length="4.60" shape="1146.54,1078.78 1144.59,1075.71 1145.22,1076.44"/>
- </edge>
- <edge id="154844470#1" from="1168929383" to="1168929310" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1142.17,1071.90 1140.25,1067.55 1139.29,1064.21">
- <lane id="154844470#1_0" index="0" speed="27.78" length="8.24" shape="1142.17,1071.90 1140.25,1067.55 1139.29,1064.21"/>
- </edge>
- <edge id="154844473" from="1168929367" to="1168929388" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1182.95,1030.19 1186.36,1032.19 1189.37,1034.51">
- <lane id="154844473_0" index="0" speed="27.78" length="0.39" shape="1186.33,1032.16 1186.64,1032.40"/>
- </edge>
- <edge id="154844474#0" from="1669480281" to="1669480284" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844474#0_0" index="0" speed="27.78" length="2.80" shape="1457.35,1590.68 1458.66,1593.15"/>
- <lane id="154844474#0_1" index="1" speed="27.78" length="2.80" shape="1454.43,1592.23 1455.75,1594.70"/>
- </edge>
- <edge id="154844474#1" from="1669480284" to="950094408" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844474#1_0" index="0" speed="27.78" length="244.24" shape="1463.16,1601.60 1577.96,1817.19"/>
- <lane id="154844474#1_1" index="1" speed="27.78" length="244.24" shape="1460.25,1603.15 1575.05,1818.74"/>
- </edge>
- <edge id="154844477" from="1168929549" to="1168929459" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1199.80,1058.66 1198.24,1067.16 1197.84,1068.30">
- <lane id="154844477_0" index="0" speed="27.78" length="5.42" shape="1199.40,1060.87 1198.42,1066.20"/>
- </edge>
- <edge id="154844478" from="1168929634" to="1168929385" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1153.40,1031.30 1158.23,1028.96 1159.04,1028.67">
- <lane id="154844478_0" index="0" speed="27.78" length="7.97" shape="1154.75,1030.65 1158.23,1028.96 1154.36,1030.34"/>
- </edge>
- <edge id="154844479" from="1246731544" to="1246731574" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1175.93,1027.69 1177.41,1028.06 1182.97,1030.16">
- <lane id="154844479_0" index="0" speed="27.78" length="7.47" shape="1175.93,1027.69 1177.41,1028.06 1182.97,1030.16"/>
- </edge>
- <edge id="154844481" from="1246731525" to="1168929549" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1199.81,1056.38 1199.83,1057.47 1199.80,1058.66">
- <lane id="154844481_0" index="0" speed="27.78" length="5.83" shape="1199.68,1051.20 1199.82,1057.03"/>
- </edge>
- <edge id="154844482" from="1168929269" to="1168929558" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1187.31,1082.11 1186.74,1082.51 1182.30,1085.09">
- <lane id="154844482_0" index="0" speed="27.78" length="0.64" shape="1183.60,1084.33 1183.05,1084.65"/>
- </edge>
- <edge id="154844483#0" from="1168929385" to="951739557" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844483#0_0" index="0" speed="27.78" length="14.47" shape="1161.85,1030.46 1168.61,1043.26"/>
- <lane id="154844483#0_1" index="1" speed="27.78" length="14.47" shape="1158.94,1032.00 1165.69,1044.80"/>
- </edge>
- <edge id="154844483#1" from="951739557" to="951739718" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844483#1_0" index="0" speed="27.78" length="11.06" shape="1171.60,1048.92 1176.77,1058.69"/>
- <lane id="154844483#1_1" index="1" speed="27.78" length="11.06" shape="1168.68,1050.46 1173.85,1060.23"/>
- </edge>
- <edge id="154844483#2" from="951739718" to="1168929269" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844483#2_0" index="0" speed="27.78" length="15.26" shape="1179.76,1064.34 1186.90,1077.82"/>
- <lane id="154844483#2_1" index="1" speed="27.78" length="15.26" shape="1176.84,1065.88 1183.98,1079.36"/>
- </edge>
- <edge id="154844484#0" from="1168929385" to="1168929546" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844484#0_0" index="0" speed="27.78" length="3.45" shape="1159.04,1028.67 1162.36,1027.71"/>
- </edge>
- <edge id="154844484#1" from="1168929546" to="1168929585" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1162.36,1027.71 1167.70,1026.98 1175.02,1027.50">
- <lane id="154844484#1_0" index="0" speed="27.78" length="2.83" shape="1167.86,1026.99 1170.68,1027.19"/>
- </edge>
- <edge id="154844485#0" from="1669480282" to="1246731647" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1441.50,1589.92 1303.36,1328.27 1191.81,1116.45 1182.25,1098.33">
- <lane id="154844485#0_0" index="0" speed="27.78" length="545.51" shape="1436.28,1583.55 1301.90,1329.04 1190.35,1117.22 1181.81,1101.03"/>
- <lane id="154844485#0_1" index="1" speed="27.78" length="545.51" shape="1439.20,1582.01 1304.82,1327.50 1193.27,1115.68 1184.72,1099.49"/>
- </edge>
- <edge id="154844485#1" from="1246731647" to="1168929562" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844485#1_0" index="0" speed="27.78" length="6.28" shape="1179.83,1097.28 1176.66,1091.21"/>
- <lane id="154844485#1_1" index="1" speed="27.78" length="6.28" shape="1182.24,1094.75 1179.59,1089.69"/>
- </edge>
- <edge id="154844486" from="1168929558" to="1168929562" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1182.30,1085.09 1180.95,1085.69 1178.13,1086.70 1176.41,1087.16">
- <lane id="154844486_0" index="0" speed="27.78" length="6.34" shape="1181.38,1085.83 1178.13,1086.70 1180.93,1085.69"/>
- </edge>
- <edge id="154844487#0" from="1168929388" to="1168929657" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1189.37,1034.51 1193.56,1038.97 1195.46,1041.76">
- <lane id="154844487#0_0" index="0" speed="27.78" length="7.36" shape="1190.83,1034.95 1193.56,1038.97 1191.86,1037.15"/>
- </edge>
- <edge id="154844487#1" from="1168929657" to="1168929324" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1195.46,1041.76 1198.22,1047.72 1198.95,1050.22">
- <lane id="154844487#1_0" index="0" speed="27.78" length="4.32" shape="1197.48,1045.15 1198.68,1049.30"/>
- </edge>
- <edge id="154844489#0" from="1168929459" to="1246731482" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1197.84,1068.30 1193.70,1075.81 1193.00,1076.70">
- <lane id="154844489#0_0" index="0" speed="27.78" length="5.08" shape="1195.66,1072.25 1193.70,1075.81 1193.07,1076.60"/>
- </edge>
- <edge id="154844489#1" from="1246731482" to="1168929659" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844489#1_0" index="0" speed="27.78" length="1.30" shape="1193.00,1076.70 1192.17,1077.69"/>
- </edge>
- <edge id="154844489#2" from="1168929659" to="1168929269" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
- <lane id="154844489#2_0" index="0" speed="27.78" length="3.70" shape="1191.20,1078.57 1188.47,1081.06"/>
- </edge>
- <edge id="154844491#0" from="1168929269" to="1246731457" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="154844491#0_0" index="0" speed="27.78" length="2.51" shape="1190.30,1084.27 1191.79,1087.10"/>
- <lane id="154844491#0_1" index="1" speed="27.78" length="2.51" shape="1187.38,1085.80 1188.22,1087.41"/>
- </edge>
- <edge id="154844491#1" from="1246731457" to="1669480281" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1191.33,1089.79 1324.21,1342.00 1430.92,1544.57 1452.12,1584.37">
- <lane id="154844491#1_0" index="0" speed="27.78" length="548.72" shape="1193.88,1091.08 1325.67,1341.23 1432.38,1543.80 1449.78,1576.47"/>
- <lane id="154844491#1_1" index="1" speed="27.78" length="548.72" shape="1190.96,1092.62 1322.75,1342.77 1429.46,1545.33 1446.87,1578.02"/>
- </edge>
- <edge id="154844500#0" from="1669480281" to="441266880" priority="7" type="highway.secondary">
- <lane id="154844500#0_0" index="0" speed="27.78" length="7.28" shape="1455.59,1580.70 1462.04,1577.33"/>
- </edge>
- <edge id="154844500#1" from="441266880" to="1669480280" priority="7" type="highway.secondary">
- <lane id="154844500#1_0" index="0" speed="27.78" length="3.11" shape="1464.79,1575.89 1467.55,1574.45"/>
- </edge>
- <edge id="154844500#2" from="1669480280" to="441266854" priority="7" type="highway.secondary" shape="1469.16,1575.47 1577.25,1519.04 1690.06,1460.13 1800.95,1402.27">
- <lane id="154844500#2_0" index="0" speed="27.78" length="369.52" shape="1472.61,1571.80 1576.48,1517.58 1689.30,1458.67 1800.18,1400.81"/>
- </edge>
- <edge id="154844500#3" from="441266854" to="248913154" priority="7" type="highway.secondary">
- <lane id="154844500#3_0" index="0" speed="27.78" length="17.26" shape="1800.18,1400.81 1815.47,1392.80"/>
- </edge>
- <edge id="154844503" from="1669480282" to="1726394726" priority="7" type="highway.secondary">
- <lane id="154844503_0" index="0" speed="27.78" length="3.52" shape="1441.79,1584.18 1443.45,1583.32"/>
- <lane id="154844503_1" index="1" speed="27.78" length="3.52" shape="1440.40,1588.63 1444.98,1586.24"/>
- </edge>
- <edge id="160584980" from="1726380195" to="1726380187" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="160584980_0" index="0" speed="22.22" length="28.06" shape="729.07,1443.07 715.88,1418.30"/>
- </edge>
- <edge id="160584981" from="1726380187" to="1726380184" priority="5" type="highway.unclassified" shape="712.82,1412.54 683.52,1357.65 681.18,1353.27">
- <lane id="160584981_0" index="0" speed="22.22" length="64.32" shape="711.52,1413.60 682.07,1358.43 681.23,1356.86"/>
- </edge>
- <edge id="160584982#0" from="1726380187" to="1726380193" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="160584982#0_0" index="0" speed="22.22" length="14.88" shape="718.65,1415.47 731.95,1422.15"/>
- </edge>
- <edge id="160584982#1" from="1726380193" to="1726380194" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="160584982#1_0" index="0" speed="22.22" length="7.75" shape="738.53,1424.78 745.97,1426.96"/>
- </edge>
- <edge id="160584984" from="446017738" to="1224080669" priority="5" type="highway.unclassified" shape="667.27,1326.71 668.61,1317.24 621.99,1227.58 521.64,1031.63">
- <lane id="160584984_0" index="0" speed="22.22" length="317.61" shape="666.51,1320.30 666.90,1317.53 620.52,1228.34 522.85,1037.62"/>
- </edge>
- <edge id="160587537#0" from="1726394726" to="1726394727" priority="7" type="highway.secondary">
- <lane id="160587537#0_0" index="0" speed="27.78" length="8.17" shape="1452.65,1587.68 1457.36,1596.96"/>
- <lane id="160587537#0_1" index="1" speed="27.78" length="8.17" shape="1451.21,1592.15 1453.90,1597.43"/>
- </edge>
- <edge id="160587537#1" from="1726394727" to="1726394728" priority="7" type="highway.secondary">
- <lane id="160587537#1_0" index="0" speed="27.78" length="249.41" shape="1459.21,1600.55 1575.48,1821.85"/>
- <lane id="160587537#1_1" index="1" speed="27.78" length="249.41" shape="1456.83,1603.10 1572.56,1823.39"/>
- </edge>
- <edge id="160587537#2" from="1726394728" to="1726394729" priority="7" type="highway.secondary">
- <lane id="160587537#2_0" index="0" speed="27.78" length="2.43" shape="1578.46,1827.73 1579.54,1829.91"/>
- <lane id="160587537#2_1" index="1" speed="27.78" length="2.43" shape="1575.50,1829.18 1576.57,1831.37"/>
- </edge>
- <edge id="160587537#3" from="1726394729" to="13929752" priority="7" type="highway.secondary">
- <lane id="160587537#3_0" index="0" speed="27.78" length="1.40" shape="1584.24,1838.35 1584.98,1839.54"/>
- <lane id="160587537#3_1" index="1" speed="27.78" length="1.40" shape="1581.44,1840.09 1582.18,1841.29"/>
- </edge>
- <edge id="160587538#0" from="1726394722" to="2081499950" priority="7" type="highway.secondary">
- <lane id="160587538#0_0" index="0" speed="27.78" length="186.56" shape="1064.32,848.96 1150.54,1015.06"/>
- <lane id="160587538#0_1" index="1" speed="27.78" length="186.56" shape="1061.39,850.48 1147.08,1015.56"/>
- </edge>
- <edge id="160587538#1" from="2081499950" to="1168929634" priority="7" type="highway.secondary">
- <lane id="160587538#1_0" index="0" speed="27.78" length="9.52" shape="1152.43,1018.70 1157.09,1027.67"/>
- <lane id="160587538#1_1" index="1" speed="27.78" length="9.52" shape="1150.03,1021.24 1154.15,1029.16"/>
- </edge>
- <edge id="160587538#2" from="1168929634" to="1726394723" priority="7" type="highway.secondary">
- <lane id="160587538#2_0" index="0" speed="27.78" length="17.88" shape="1158.47,1030.21 1167.37,1045.84"/>
- <lane id="160587538#2_1" index="1" speed="27.78" length="17.88" shape="1155.67,1031.95 1164.47,1047.41"/>
- </edge>
- <edge id="160587538#3" from="1726394723" to="1726394724" priority="7" type="highway.secondary">
- <lane id="160587538#3_0" index="0" speed="27.78" length="0.94" shape="1168.46,1047.77 1168.90,1048.57"/>
- <lane id="160587538#3_1" index="1" speed="27.78" length="0.94" shape="1165.57,1049.35 1166.03,1050.20"/>
- </edge>
- <edge id="160587538#4" from="1726394724" to="1726394725" priority="7" type="highway.secondary">
- <lane id="160587538#4_0" index="0" speed="27.78" length="1.35" shape="1175.63,1061.49 1176.20,1062.65"/>
- <lane id="160587538#4_1" index="1" speed="27.78" length="1.35" shape="1172.62,1062.85 1173.24,1064.11"/>
- </edge>
- <edge id="160587538#5" from="1726394725" to="1168929558" priority="7" type="highway.secondary">
- <lane id="160587538#5_0" index="0" speed="27.78" length="19.42" shape="1176.97,1064.14 1185.98,1081.42"/>
- <lane id="160587538#5_1" index="1" speed="27.78" length="19.42" shape="1174.06,1065.69 1183.00,1082.85"/>
- </edge>
- <edge id="160587538#6" from="1168929558" to="1913728534" priority="7" type="highway.secondary">
- <lane id="160587538#6_0" index="0" speed="27.78" length="242.41" shape="1187.39,1084.12 1300.35,1298.60"/>
- <lane id="160587538#6_1" index="1" speed="27.78" length="242.41" shape="1184.48,1085.68 1297.43,1300.14"/>
- </edge>
- <edge id="160587538#7" from="1913728534" to="1726394726" priority="7" type="highway.secondary" shape="1295.97,1300.91 1305.20,1318.43 1446.82,1587.14">
- <lane id="160587538#7_0" index="0" speed="27.78" length="318.78" shape="1300.35,1298.60 1309.58,1316.12 1449.75,1582.08"/>
- <lane id="160587538#7_1" index="1" speed="27.78" length="318.78" shape="1297.43,1300.14 1306.66,1317.66 1445.29,1580.69"/>
- </edge>
- <edge id="160587542" from="1726394726" to="1669480281" priority="7" type="highway.secondary">
- <lane id="160587542_0" index="0" speed="27.78" length="1.13" shape="1445.57,1582.21 1447.29,1581.31"/>
- <lane id="160587542_1" index="1" speed="27.78" length="1.13" shape="1447.10,1585.13 1447.39,1584.98"/>
- </edge>
- <edge id="160587552#0" from="1096401733" to="1168929542" priority="5" type="highway.unclassified" spreadType="center" shape="832.01,974.96 835.65,983.41 836.39,988.26">
- <lane id="160587552#0_0" index="0" speed="22.22" length="9.24" shape="833.25,977.83 835.65,983.41 836.13,986.53"/>
- </edge>
- <edge id="160587552#1" from="1168929542" to="1168929349" priority="5" type="highway.unclassified" spreadType="center" shape="836.39,988.26 836.25,993.19 833.73,1001.89 828.36,1009.51 827.34,1010.48">
- <lane id="160587552#1_0" index="0" speed="22.22" length="9.90" shape="835.54,995.65 833.73,1001.89 831.77,1004.67"/>
- </edge>
- <edge id="160587557" from="256633248" to="512548961" priority="15" type="railway.rail" spreadType="center" shape="763.20,924.92 1288.23,1939.17 1322.99,2006.34 1468.00,2286.70 1549.27,2447.89 1739.75,2821.51">
- <lane id="160587557_0" index="0" allow="rail_fast" speed="83.33" length="2133.25" shape="763.20,924.92 1288.23,1939.17 1322.99,2006.34 1468.00,2286.70 1549.27,2447.89 1739.75,2821.51"/>
- </edge>
- <edge id="166576459" from="1780219355" to="1780219374" priority="1" type="highway.footway">
- <lane id="166576459_0" index="0" allow="pedestrian" speed="8.33" length="16.42" shape="797.79,1149.76 811.44,1158.91"/>
- </edge>
- <edge id="166576461#0" from="1224074534" to="1780219366" priority="1" type="highway.footway">
- <lane id="166576461#0_0" index="0" allow="pedestrian" speed="8.33" length="43.72" shape="779.01,1081.87 785.99,1038.71"/>
- </edge>
- <edge id="166576461#1" from="1780219366" to="1168929652" priority="1" type="highway.footway" shape="788.36,1034.38 770.39,994.53 765.18,988.02">
- <lane id="166576461#1_0" index="0" allow="pedestrian" speed="8.33" length="41.18" shape="785.49,1032.04 768.97,995.40 768.35,994.62"/>
- </edge>
- <edge id="166576462#0" from="1780219365" to="1780219377" priority="1" type="highway.footway">
- <lane id="166576462#0_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="955.81,1212.41 954.82,1213.01"/>
- </edge>
- <edge id="166576462#1" from="1780219377" to="1780219361" priority="1" type="highway.footway">
- <lane id="166576462#1_0" index="0" allow="pedestrian" speed="8.33" length="10.38" shape="949.20,1216.23 940.01,1221.06"/>
- </edge>
- <edge id="166576462#2" from="1780219361" to="1780219359" priority="1" type="highway.footway">
- <lane id="166576462#2_0" index="0" allow="pedestrian" speed="8.33" length="2.44" shape="931.57,1225.54 929.42,1226.70"/>
- </edge>
- <edge id="166576462#3" from="1780219359" to="1780219341" priority="1" type="highway.footway" shape="924.37,1227.56 912.89,1233.84 909.11,1223.86">
- <lane id="166576462#3_0" index="0" allow="pedestrian" speed="8.33" length="19.05" shape="920.88,1231.35 912.02,1236.19 908.85,1227.82"/>
- </edge>
- <edge id="166576462#4" from="1780219341" to="1780219353" priority="1" type="highway.footway">
- <lane id="166576462#4_0" index="0" allow="pedestrian" speed="8.33" length="5.50" shape="906.17,1221.77 903.64,1216.89"/>
- </edge>
- <edge id="166576462#5" from="1780219353" to="1780219360" priority="1" type="highway.footway">
- <lane id="166576462#5_0" index="0" allow="pedestrian" speed="8.33" length="4.03" shape="896.07,1202.40 894.19,1198.84"/>
- </edge>
- <edge id="166576462#6" from="1780219360" to="1780219369" priority="1" type="highway.footway">
- <lane id="166576462#6_0" index="0" allow="pedestrian" speed="8.33" length="2.61" shape="890.60,1193.42 888.98,1191.38"/>
- </edge>
- <edge id="166576462#7" from="1780219369" to="1780219335" priority="1" type="highway.footway" shape="886.89,1186.10 879.47,1175.79 860.88,1140.91">
- <lane id="166576462#7_0" index="0" allow="pedestrian" speed="8.33" length="43.42" shape="883.03,1183.56 878.13,1176.75 861.64,1145.84"/>
- </edge>
- <edge id="166576462#8" from="1780219335" to="1780219348" priority="1" type="highway.footway">
- <lane id="166576462#8_0" index="0" allow="pedestrian" speed="8.33" length="15.91" shape="857.20,1137.45 849.81,1123.37"/>
- </edge>
- <edge id="166576462#9" from="1780219348" to="1780219373" priority="1" type="highway.footway" shape="843.27,1107.37 814.19,1050.57 814.82,1037.83">
- <lane id="166576462#9_0" index="0" allow="pedestrian" speed="8.33" length="85.16" shape="847.37,1118.98 812.52,1050.93 812.95,1042.24"/>
- </edge>
- <edge id="166576463" from="1780219344" to="1780219348" priority="1" type="highway.footway">
- <lane id="166576463_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="844.24,1142.13 842.92,1124.65"/>
- </edge>
- <edge id="166576464#0" from="1780219366" to="1780219373" priority="1" type="highway.footway">
- <lane id="166576464#0_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="793.18,1033.34 810.57,1035.61"/>
- </edge>
- <edge id="166576464#1" from="1780219373" to="1780219331" priority="1" type="highway.footway">
- <lane id="166576464#1_0" index="0" allow="pedestrian" speed="8.33" length="3.32" shape="814.03,1036.38 816.93,1034.78"/>
- </edge>
- <edge id="166576464#2" from="1780219331" to="1780219342" priority="1" type="highway.footway">
- <lane id="166576464#2_0" index="0" allow="pedestrian" speed="8.33" length="3.32" shape="824.42,1028.56 826.83,1026.27"/>
- </edge>
- <edge id="166576464#3" from="1780219342" to="1780219363" priority="1" type="highway.footway">
- <lane id="166576464#3_0" index="0" allow="pedestrian" speed="8.33" length="6.68" shape="837.44,1015.00 841.77,1009.91"/>
- </edge>
- <edge id="166576464#4" from="1780219363" to="1780219371" priority="1" type="highway.footway">
- <lane id="166576464#4_0" index="0" allow="pedestrian" speed="8.33" length="1.70" shape="846.66,1004.68 847.93,1003.54"/>
- </edge>
- <edge id="166576466#0" from="1780219335" to="1780219344" priority="1" type="highway.footway">
- <lane id="166576466#0_0" index="0" allow="pedestrian" speed="8.33" length="5.15" shape="857.39,1144.57 852.81,1146.93"/>
- </edge>
- <edge id="166576466#1" from="1780219344" to="1780219374" priority="1" type="highway.footway">
- <lane id="166576466#1_0" index="0" allow="pedestrian" speed="8.33" length="26.87" shape="843.91,1151.55 820.11,1164.02"/>
- </edge>
- <edge id="166576466#2" from="1780219374" to="1780219345" priority="1" type="highway.footway" shape="816.31,1164.16 795.03,1175.31 786.51,1179.73">
- <lane id="166576466#2_0" index="0" allow="pedestrian" speed="8.33" length="18.79" shape="810.90,1168.85 795.80,1176.77 794.26,1177.57"/>
- </edge>
- <edge id="166576468#0" from="1780219369" to="1780219343" priority="1" type="highway.footway">
- <lane id="166576468#0_0" index="0" allow="pedestrian" speed="8.33" length="0.29" shape="890.95,1182.12 891.21,1181.98"/>
- </edge>
- <edge id="166576468#1" from="1780219343" to="1780219352" priority="1" type="highway.footway">
- <lane id="166576468#1_0" index="0" allow="pedestrian" speed="8.33" length="2.76" shape="902.61,1176.04 905.06,1174.76"/>
- </edge>
- <edge id="166576468#2" from="1780219352" to="1780219362" priority="1" type="highway.footway">
- <lane id="166576468#2_0" index="0" allow="pedestrian" speed="8.33" length="7.40" shape="916.43,1168.84 922.98,1165.41"/>
- </edge>
- <edge id="166576468#3" from="1780219362" to="1780219332" priority="1" type="highway.footway">
- <lane id="166576468#3_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="928.49,1162.54 929.52,1162.00"/>
- </edge>
- <edge id="166602674#0" from="1168929382" to="1246731466" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="166602674#0_0" index="0" speed="27.78" length="4.74" shape="1145.73,1032.11 1143.29,1027.51"/>
- <lane id="166602674#0_1" index="1" speed="27.78" length="4.74" shape="1148.64,1030.57 1146.64,1026.79"/>
- </edge>
- <edge id="166602674#1" from="1246731466" to="2081499951" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="166602674#1_0" index="0" speed="27.78" length="3.49" shape="1142.36,1025.77 1140.76,1022.67"/>
- <lane id="166602674#1_1" index="1" speed="27.78" length="3.49" shape="1145.29,1024.25 1143.68,1021.15"/>
- </edge>
- <edge id="166602674#2" from="2081499951" to="1843239244" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1142.14,1021.77 1012.81,773.36 947.95,650.66">
- <lane id="166602674#2_0" index="0" speed="27.78" length="414.09" shape="1138.48,1018.30 1011.35,774.12 946.49,651.43"/>
- <lane id="166602674#2_1" index="1" speed="27.78" length="414.09" shape="1141.41,1016.78 1014.27,772.60 949.41,649.89"/>
- </edge>
- <edge id="166603397#0" from="1168929562" to="951739776" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="166603397#0_0" index="0" speed="27.78" length="13.77" shape="1172.87,1083.96 1166.48,1071.76"/>
- <lane id="166603397#0_1" index="1" speed="27.78" length="13.77" shape="1175.79,1082.43 1169.40,1070.23"/>
- </edge>
- <edge id="166603397#1" from="951739776" to="951739443" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="166603397#1_0" index="0" speed="27.78" length="10.86" shape="1163.51,1066.09 1158.46,1056.46"/>
- <lane id="166603397#1_1" index="1" speed="27.78" length="10.86" shape="1166.43,1064.55 1161.39,1054.93"/>
- </edge>
- <edge id="166603397#2" from="951739443" to="1168929382" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="166603397#2_0" index="0" speed="27.78" length="12.78" shape="1155.43,1050.67 1149.52,1039.34"/>
- <lane id="166603397#2_1" index="1" speed="27.78" length="12.78" shape="1158.36,1049.14 1152.45,1037.81"/>
- </edge>
- <edge id="166625256#0" from="1244292219" to="1244292210" priority="1" type="highway.pedestrian" shape="1081.72,1786.85 1064.23,1752.83 1149.19,1709.42 1166.69,1743.45">
- <lane id="166625256#0_0" index="0" allow="pedestrian" speed="8.33" length="172.03" shape="1078.77,1784.73 1062.00,1752.11 1149.91,1707.20 1166.66,1739.79"/>
- </edge>
- <edge id="166625256#1" from="1244292210" to="1244292219" priority="1" type="highway.pedestrian">
- <lane id="166625256#1_0" index="0" allow="pedestrian" speed="8.33" length="88.91" shape="1164.54,1746.40 1085.36,1786.85"/>
- </edge>
- <edge id="166625259" from="438042379" to="1780623649" priority="2" type="highway.service" shape="1125.23,1656.38 1111.17,1662.53 943.97,1747.10">
- <lane id="166625259_0" index="0" allow="delivery" speed="5.56" length="199.29" shape="1122.83,1659.23 1111.83,1664.04 944.71,1748.57"/>
- </edge>
- <edge id="166728377#0" from="255227480" to="255227482" priority="1" type="highway.pedestrian">
- <lane id="166728377#0_0" index="0" allow="pedestrian" speed="8.33" length="34.50" shape="1360.18,843.25 1389.64,825.29"/>
- </edge>
- <edge id="166728377#1" from="255227482" to="1624060630" priority="1" type="highway.pedestrian">
- <lane id="166728377#1_0" index="0" allow="pedestrian" speed="8.33" length="42.24" shape="1398.51,827.76 1417.99,865.24"/>
- </edge>
- <edge id="166728377#2" from="1624060630" to="255227480" priority="1" type="highway.pedestrian">
- <lane id="166728377#2_0" index="0" allow="pedestrian" speed="8.33" length="53.75" shape="1411.16,872.85 1361.07,853.33"/>
- </edge>
- <edge id="170088033" from="1812395450" to="1726380204" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="170088033_0" index="0" speed="22.22" length="80.97" shape="624.39,1523.01 646.39,1600.93"/>
- </edge>
- <edge id="170590352" from="1246731620" to="1168929385" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="170590352_0" index="0" speed="27.78" length="6.43" shape="1154.92,1017.39 1160.50,1027.89"/>
- <lane id="170590352_1" index="1" speed="27.78" length="6.43" shape="1155.57,1025.65 1156.03,1026.52"/>
- </edge>
- <edge id="170590354#0" from="1246731541" to="2265767394" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="170590354#0_0" index="0" speed="27.78" length="157.17" shape="1199.41,1027.42 1336.41,950.40"/>
- <lane id="170590354#0_1" index="1" speed="27.78" length="157.17" shape="1201.03,1030.30 1338.03,953.28"/>
- </edge>
- <edge id="170590354#1" from="2265767394" to="2265767389" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="170590354#1_0" index="0" speed="27.78" length="94.23" shape="1345.94,945.04 1428.08,898.87"/>
- <lane id="170590354#1_1" index="1" speed="27.78" length="94.23" shape="1347.56,947.92 1429.70,901.75"/>
- </edge>
- <edge id="170590354#2" from="2265767389" to="1817657657" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1433.12,897.93 1487.87,867.15 1501.36,859.76 1534.95,841.27">
- <lane id="170590354#2_0" index="0" speed="27.78" length="111.67" shape="1436.55,894.11 1487.06,865.71 1500.57,858.31 1534.15,839.82"/>
- <lane id="170590354#2_1" index="1" speed="27.78" length="111.67" shape="1438.17,896.99 1488.68,868.58 1502.15,861.20 1535.75,842.71"/>
- </edge>
- <edge id="170594822#0" from="1817657658" to="2265767392" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1542.68,855.81 1509.92,874.39 1441.34,913.04">
- <lane id="170594822#0_0" index="0" speed="27.78" length="111.61" shape="1543.49,857.24 1510.74,875.83 1446.31,912.14"/>
- <lane id="170594822#0_1" index="1" speed="27.78" length="111.61" shape="1541.87,854.37 1509.11,872.96 1444.69,909.26"/>
- </edge>
- <edge id="170594822#1" from="2265767392" to="2265767395" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1441.34,913.04 1384.29,945.18 1347.48,965.97">
- <lane id="170594822#1_0" index="0" speed="27.78" length="97.53" shape="1438.00,916.82 1385.10,946.62 1353.05,964.72"/>
- <lane id="170594822#1_1" index="1" speed="27.78" length="97.53" shape="1436.38,913.94 1383.48,943.74 1351.42,961.85"/>
- </edge>
- <edge id="170594822#2" from="2265767395" to="1246731470" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1347.48,965.97 1214.20,1041.23 1204.48,1046.73">
- <lane id="170594822#2_0" index="0" speed="27.78" length="159.01" shape="1343.54,970.09 1215.02,1042.67 1205.09,1048.28"/>
- <lane id="170594822#2_1" index="1" speed="27.78" length="159.01" shape="1341.92,967.22 1213.39,1039.80 1203.46,1045.41"/>
- </edge>
- <edge id="170594822#3" from="1246731470" to="1168929324" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="170594822#3_0" index="0" speed="27.78" length="1.08" shape="1204.05,1048.95 1203.15,1049.52"/>
- <lane id="170594822#3_1" index="1" speed="27.78" length="1.08" shape="1202.32,1046.14 1201.39,1046.73"/>
- </edge>
- <edge id="172498367" from="950094314" to="428097664" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="172498367_0" index="0" speed="22.22" length="7.82" shape="1348.81,1972.51 1352.49,1979.41"/>
- </edge>
- <edge id="172498380#0" from="13929737" to="452446340" priority="5" type="highway.unclassified" spreadType="center" shape="1291.53,1973.90 1292.95,1969.18 1295.20,1964.75 1298.23,1960.35 1302.36,1956.94">
- <lane id="172498380#0_0" index="0" speed="22.22" length="10.74" shape="1293.16,1968.78 1295.20,1964.75 1298.23,1960.35 1298.91,1959.79"/>
- </edge>
- <edge id="172498380#1" from="452446340" to="452446345" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="172498380#1_0" index="0" speed="22.22" length="3.81" shape="1306.57,1954.65 1309.92,1952.83"/>
- </edge>
- <edge id="172498380#2" from="452446345" to="435668516" priority="5" type="highway.unclassified" spreadType="center" shape="1314.14,1950.54 1320.39,1949.49 1326.19,1949.56 1331.81,1950.65 1337.66,1952.73">
- <lane id="172498380#2_0" index="0" speed="22.22" length="14.13" shape="1318.44,1949.81 1320.39,1949.49 1326.19,1949.56 1331.81,1950.65 1332.41,1950.87"/>
- </edge>
- <edge id="172498387#0" from="435668513" to="435668521" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="172498387#0_0" index="0" speed="22.22" length="75.56" shape="1412.11,1912.06 1479.04,1876.99"/>
- </edge>
- <edge id="172498387#1" from="435668521" to="443089060" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="172498387#1_0" index="0" speed="22.22" length="74.48" shape="1484.53,1874.08 1550.17,1838.89"/>
- </edge>
- <edge id="172498387#2" from="443089060" to="1726394728" priority="5" type="highway.unclassified" spreadType="center" shape="1552.91,1837.42 1567.58,1829.59 1572.50,1826.82">
- <lane id="172498387#2_0" index="0" speed="22.22" length="10.97" shape="1555.69,1835.93 1565.37,1830.76"/>
- </edge>
- <edge id="172498387#3" from="1726394728" to="1669480292" priority="5" type="highway.unclassified" spreadType="center" shape="1572.50,1826.82 1579.34,1823.35 1587.31,1819.14">
- <lane id="172498387#3_0" index="0" speed="22.22" length="3.90" shape="1579.66,1823.18 1583.10,1821.36"/>
- </edge>
- <edge id="172498387#4" from="1669480292" to="441266884" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="172498387#4_0" index="0" speed="22.22" length="2.86" shape="1588.99,1818.25 1591.52,1816.91"/>
- </edge>
- <edge id="172498387#5" from="441266884" to="429418283" priority="5" type="highway.unclassified" spreadType="center" shape="1591.73,1816.80 1699.90,1760.07 1812.71,1700.74 1886.93,1659.64">
- <lane id="172498387#5_0" index="0" speed="22.22" length="331.34" shape="1594.48,1815.36 1699.90,1760.07 1812.71,1700.74 1886.93,1659.64"/>
- </edge>
- <edge id="172498388" from="950094314" to="950094380" priority="15" type="highway.primary|railway.tram" spreadType="center">
- <lane id="172498388_0" index="0" speed="27.78" length="39.37" shape="1346.82,1975.43 1312.06,1993.92"/>
- <lane id="172498388_1" index="1" speed="27.78" length="39.37" shape="1345.27,1972.52 1310.51,1991.00"/>
- </edge>
- <edge id="179692877#0" from="444026889" to="1168929398" priority="6" type="highway.tertiary">
- <lane id="179692877#0_0" index="0" speed="22.22" length="44.11" shape="799.88,1079.45 804.84,1035.62"/>
- </edge>
- <edge id="179692877#1" from="1168929398" to="441236049" priority="6" type="highway.tertiary" shape="806.50,1035.63 808.39,1027.28 810.99,1017.83">
- <lane id="179692877#1_0" index="0" speed="22.22" length="6.19" shape="804.93,1035.09 806.30,1029.05"/>
- </edge>
- <edge id="179917801" from="1224080662" to="1903640411" priority="5" type="highway.unclassified" spreadType="center" shape="630.37,1226.05 691.93,1191.92 660.44,1135.29">
- <lane id="179917801_0" index="0" speed="22.22" length="133.70" shape="630.36,1226.06 691.93,1191.92 661.17,1136.60"/>
- </edge>
- <edge id="179917803#0" from="1627657715" to="1224074534" priority="5" type="highway.unclassified" shape="702.84,1103.36 707.93,1101.38 779.72,1087.83">
- <lane id="179917803#0_0" index="0" speed="22.22" length="70.59" shape="706.39,1100.21 707.47,1099.79 775.70,1086.91"/>
- </edge>
- <edge id="179917803#1" from="1224074534" to="1224074533" priority="5" type="highway.unclassified">
- <lane id="179917803#1_0" index="0" speed="22.22" length="3.88" shape="781.43,1085.98 785.28,1085.55"/>
- </edge>
- <edge id="190048063" from="250685829" to="450564004" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="190048063_0" index="0" speed="22.22" length="2.35" shape="1384.54,2163.46 1383.42,2161.40"/>
- </edge>
- <edge id="190048065" from="2006433692" to="450564005" priority="5" type="highway.unclassified">
- <lane id="190048065_0" index="0" speed="22.22" length="127.75" shape="1339.62,2033.36 1398.78,2146.58"/>
- </edge>
- <edge id="191056427#0" from="2016414185" to="2016414184" priority="2" type="highway.service">
- <lane id="191056427#0_0" index="0" allow="delivery" speed="5.56" length="10.89" shape="830.64,1633.71 840.98,1630.32"/>
- </edge>
- <edge id="191056427#1" from="2016414184" to="1719223329" priority="2" type="highway.service" shape="836.73,1633.45 847.03,1630.06 871.10,1615.22 911.34,1598.13 921.87,1598.37">
- <lane id="191056427#1_0" index="0" allow="delivery" speed="5.56" length="81.54" shape="845.73,1628.75 846.33,1628.55 870.23,1613.82 911.03,1596.47 919.53,1596.67"/>
- </edge>
- <edge id="191056428" from="2016414174" to="2016414184" priority="2" type="highway.service" spreadType="center" shape="922.23,1589.47 910.41,1590.07 874.98,1609.34 850.34,1621.39 844.31,1624.67 836.73,1633.45">
- <lane id="191056428_0" index="0" allow="delivery" speed="5.56" length="87.58" shape="922.23,1589.47 910.41,1590.07 874.98,1609.34 850.34,1621.39 844.31,1624.67 843.57,1625.52"/>
- </edge>
- <edge id="191176261" from="2017759592" to="2017759586" priority="1" type="highway.footway">
- <lane id="191176261_0" index="0" allow="pedestrian" speed="8.33" length="6.41" shape="862.04,1732.46 858.91,1726.86"/>
- </edge>
- <edge id="191176262" from="2017759586" to="1474873139" priority="1" type="highway.footway">
- <lane id="191176262_0" index="0" allow="pedestrian" speed="8.33" length="64.64" shape="856.79,1726.22 799.16,1755.48"/>
- </edge>
- <edge id="191176263" from="2017759594" to="2017759596" priority="1" type="highway.footway">
- <lane id="191176263_0" index="0" allow="pedestrian" speed="8.33" length="5.87" shape="870.03,1738.43 872.37,1743.82"/>
- </edge>
- <edge id="191176264" from="2017759594" to="2017759592" priority="1" type="highway.footway">
- <lane id="191176264_0" index="0" allow="pedestrian" speed="8.33" length="7.10" shape="866.34,1738.70 862.29,1732.86"/>
- </edge>
- <edge id="191176265" from="1474873137" to="2017759594" priority="1" type="highway.footway">
- <lane id="191176265_0" index="0" allow="pedestrian" speed="8.33" length="5.58" shape="871.19,1744.71 867.62,1740.41"/>
- </edge>
- <edge id="191176266" from="1474873133" to="2017759594" priority="1" type="highway.footway">
- <lane id="191176266_0" index="0" allow="pedestrian" speed="8.33" length="6.53" shape="867.32,1730.42 869.39,1736.61"/>
- </edge>
- <edge id="191176267" from="2017759596" to="2017759615" priority="1" type="highway.footway" shape="870.93,1744.65 876.21,1753.74 858.28,1762.79">
- <lane id="191176267_0" index="0" allow="pedestrian" speed="8.33" length="33.90" shape="872.45,1743.98 878.51,1754.42 859.03,1764.26"/>
- </edge>
- <edge id="191176268" from="2017759588" to="1474873133" priority="1" type="highway.footway" shape="875.15,1726.33 864.67,1728.78 865.67,1730.70">
- <lane id="191176268_0" index="0" allow="pedestrian" speed="8.33" length="2.96" shape="870.00,1729.23 867.12,1729.90"/>
- </edge>
- <edge id="197781817" from="1625774769" to="2079750190" priority="1" type="highway.footway" shape="1638.79,2492.24 1576.84,2373.05 1519.37,2263.89 1477.48,2184.33">
- <lane id="197781817_0" index="0" allow="pedestrian" speed="8.33" length="342.82" shape="1637.32,2493.00 1575.38,2373.81 1517.91,2264.66 1478.24,2189.32"/>
- </edge>
- <edge id="197794762" from="2079750190" to="1431113444" priority="1" type="highway.footway">
- <lane id="197794762_0" index="0" allow="pedestrian" speed="8.33" length="21.71" shape="1480.96,2180.67 1500.24,2170.70"/>
- </edge>
- <edge id="197955309#0" from="2081499952" to="1639892546" priority="1" type="highway.footway">
- <lane id="197955309#0_0" index="0" allow="pedestrian" speed="8.33" length="1.67" shape="1130.53,1026.17 1131.99,1025.37"/>
- </edge>
- <edge id="197955309#1" from="1639892546" to="2081499951" priority="1" type="highway.footway">
- <lane id="197955309#1_0" index="0" allow="pedestrian" speed="8.33" length="3.61" shape="1137.15,1022.56 1140.34,1020.86"/>
- </edge>
- <edge id="197955309#2" from="2081499951" to="2081499950" priority="1" type="highway.footway">
- <lane id="197955309#2_0" index="0" allow="pedestrian" speed="8.33" length="5.38" shape="1140.83,1020.59 1145.59,1018.09"/>
- </edge>
- <edge id="197955309#3" from="2081499950" to="2081499949" priority="1" type="highway.footway">
- <lane id="197955309#3_0" index="0" allow="pedestrian" speed="8.33" length="4.63" shape="1147.51,1017.07 1151.61,1014.90"/>
- </edge>
- <edge id="197955309#4" from="2081499949" to="2081499948" priority="1" type="highway.footway">
- <lane id="197955309#4_0" index="0" allow="pedestrian" speed="8.33" length="3.50" shape="1151.66,1014.87 1154.71,1013.14"/>
- </edge>
- <edge id="197955309#5" from="2081499948" to="2081499947" priority="1" type="highway.footway">
- <lane id="197955309#5_0" index="0" allow="pedestrian" speed="8.33" length="3.49" shape="1158.97,1010.87 1162.05,1009.24"/>
- </edge>
- <edge id="23066443#0" from="252417165" to="443089071" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#0_0" index="0" speed="13.89" length="5.76" shape="1229.13,1565.60 1231.78,1570.72"/>
- </edge>
- <edge id="23066443#1" from="443089071" to="438042376" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#1_0" index="0" speed="13.89" length="96.24" shape="1234.64,1576.23 1278.91,1661.69"/>
- </edge>
- <edge id="23066443#2" from="438042376" to="438042372" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#2_0" index="0" speed="13.89" length="7.60" shape="1282.15,1667.95 1285.65,1674.69"/>
- </edge>
- <edge id="23066443#3" from="438042372" to="452425491" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#3_0" index="0" speed="13.89" length="2.02" shape="1288.81,1680.80 1289.74,1682.59"/>
- </edge>
- <edge id="23066443#4" from="452425491" to="733663121" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#4_0" index="0" speed="13.89" length="2.06" shape="1294.14,1691.08 1295.08,1692.91"/>
- </edge>
- <edge id="23066443#5" from="733663121" to="248913131" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#5_0" index="0" speed="13.89" length="73.41" shape="1299.48,1701.39 1333.24,1766.57"/>
- </edge>
- <edge id="23066443#6" from="248913131" to="248913144" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#6_0" index="0" speed="13.89" length="70.81" shape="1337.63,1775.03 1370.21,1837.89"/>
- </edge>
- <edge id="23066443#7" from="248913144" to="435668513" priority="4" type="highway.residential" spreadType="center">
- <lane id="23066443#7_0" index="0" speed="13.89" length="72.49" shape="1374.60,1846.37 1407.93,1910.74"/>
- </edge>
- <edge id="23066446#0" from="248913130" to="452425488" priority="4" type="highway.residential">
- <lane id="23066446#0_0" index="0" speed="13.89" length="9.95" shape="1265.19,1806.01 1274.04,1801.45"/>
- </edge>
- <edge id="23066446#1" from="452425488" to="248913131" priority="4" type="highway.residential">
- <lane id="23066446#1_0" index="0" speed="13.89" length="55.95" shape="1282.47,1797.04 1331.89,1770.81"/>
- </edge>
- <edge id="23066446#2" from="248913131" to="248913133" priority="4" type="highway.residential">
- <lane id="23066446#2_0" index="0" speed="13.89" length="75.62" shape="1337.43,1767.88 1404.22,1732.43"/>
- </edge>
- <edge id="23066446#3" from="248913133" to="443089062" priority="4" type="highway.residential">
- <lane id="23066446#3_0" index="0" speed="13.89" length="75.68" shape="1409.76,1729.51 1476.84,1694.46"/>
- </edge>
- <edge id="23066462#0" from="248913200" to="250689186" priority="1" type="highway.pedestrian" shape="1290.84,1231.35 1306.94,1224.00 1321.70,1219.55 1335.59,1219.93 1348.78,1223.51">
- <lane id="23066462#0_0" index="0" allow="pedestrian" speed="8.33" length="54.29" shape="1293.28,1228.42 1306.26,1222.50 1321.48,1217.89 1335.83,1218.28 1345.26,1220.84"/>
- </edge>
- <edge id="23066462#1" from="250689186" to="441266870" priority="1" type="highway.pedestrian" shape="1348.78,1223.51 1358.96,1229.91 1370.27,1239.60">
- <lane id="23066462#1_0" index="0" allow="pedestrian" speed="8.33" length="18.88" shape="1353.49,1224.52 1359.84,1228.51 1368.49,1235.91"/>
- </edge>
- <edge id="23066462#2" from="441266870" to="250689131" priority="1" type="highway.pedestrian" shape="1370.27,1239.60 1379.18,1251.74 1383.02,1266.41">
- <lane id="23066462#2_0" index="0" allow="pedestrian" speed="8.33" length="20.01" shape="1374.67,1242.81 1380.70,1251.02 1383.19,1260.53"/>
- </edge>
- <edge id="23066462#3" from="250689131" to="250689201" priority="1" type="highway.pedestrian" shape="1383.02,1266.41 1384.59,1277.96 1384.40,1289.75">
- <lane id="23066462#3_0" index="0" allow="pedestrian" speed="8.33" length="15.19" shape="1385.16,1269.90 1386.23,1277.73 1386.12,1285.02"/>
- </edge>
- <edge id="23066462#4" from="250689201" to="248913200" priority="1" type="highway.pedestrian" shape="1384.40,1289.75 1378.26,1306.06 1363.65,1322.46 1345.01,1334.36 1290.84,1231.35">
- <lane id="23066462#4_0" index="0" allow="pedestrian" speed="8.33" length="175.33" shape="1384.61,1293.87 1379.70,1306.93 1364.73,1323.73 1344.39,1336.71 1290.98,1235.15"/>
- </edge>
- <edge id="23182340#0" from="250686490" to="250683362" priority="4" type="highway.residential" spreadType="center" shape="1552.96,2840.11 1555.33,2758.23 1511.80,2670.51 1469.87,2590.05 1426.08,2510.02 1376.26,2415.24 1323.71,2315.58">
- <lane id="23182340#0_0" index="0" speed="13.89" length="578.43" shape="1552.96,2840.11 1555.33,2758.23 1511.80,2670.51 1469.87,2590.05 1426.08,2510.02 1376.26,2415.24 1325.16,2318.33"/>
- </edge>
- <edge id="23182340#1" from="250683362" to="250685816" priority="4" type="highway.residential" spreadType="center">
- <lane id="23182340#1_0" index="0" speed="13.89" length="93.30" shape="1322.32,2312.78 1280.72,2229.27"/>
- </edge>
- <edge id="23182358#0" from="250685766" to="250683336" priority="5" type="highway.unclassified">
- <lane id="23182358#0_0" index="0" speed="22.22" length="93.53" shape="1167.53,2287.37 1210.79,2370.29"/>
- </edge>
- <edge id="23182358#1" from="250683336" to="250684983" priority="5" type="highway.unclassified" shape="1210.76,2373.81 1264.20,2474.18 1313.08,2568.15">
- <lane id="23182358#1_0" index="0" speed="22.22" length="216.48" shape="1213.71,2375.83 1265.66,2473.41 1314.55,2567.39"/>
- </edge>
- <edge id="23182358#2" from="250684983" to="2004733211" priority="5" type="highway.unclassified" shape="1313.08,2568.15 1355.30,2649.19 1396.85,2729.13 1452.46,2835.71 1459.79,2849.82 1462.78,2857.50 1465.13,2867.89">
- <lane id="23182358#2_0" index="0" speed="22.22" length="336.91" shape="1314.55,2567.39 1356.76,2648.43 1398.31,2728.37 1453.92,2834.95 1461.26,2849.06 1464.32,2856.90 1466.74,2867.53"/>
- </edge>
- <edge id="23182387#0" from="503954409" to="250683336" priority="5" type="highway.unclassified" spreadType="center" shape="803.00,2587.20 899.68,2536.52 1009.71,2480.15 1111.90,2425.19 1210.76,2373.81">
- <lane id="23182387#0_0" index="0" speed="22.22" length="451.68" shape="806.37,2585.44 899.68,2536.52 1009.71,2480.15 1111.90,2425.19 1206.55,2376.00"/>
- </edge>
- <edge id="23182387#1" from="250683336" to="250683402" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182387#1_0" index="0" speed="22.22" length="55.90" shape="1215.04,2371.65 1264.96,2346.50"/>
- </edge>
- <edge id="23182387#2" from="250683402" to="250683362" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182387#2_0" index="0" speed="22.22" length="57.06" shape="1270.50,2343.64 1320.97,2317.02"/>
- </edge>
- <edge id="23182387#3" from="250683362" to="1367855932" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182387#3_0" index="0" speed="22.22" length="108.73" shape="1326.49,2314.14 1423.03,2264.13"/>
- </edge>
- <edge id="23182387#4" from="1367855932" to="250683337" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182387#4_0" index="0" speed="22.22" length="0.19" shape="1431.46,2259.74 1431.63,2259.65"/>
- </edge>
- <edge id="23182391" from="250686694" to="250683402" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182391_0" index="0" speed="22.22" length="94.84" shape="1223.78,2257.54 1266.32,2342.31"/>
- </edge>
- <edge id="23182484#0" from="450564006" to="250685829" priority="5" type="highway.unclassified">
- <lane id="23182484#0_0" index="0" speed="22.22" length="8.03" shape="1401.49,2161.89 1394.36,2165.59"/>
- </edge>
- <edge id="23182484#1" from="250685829" to="1367855925" priority="5" type="highway.unclassified">
- <lane id="23182484#1_0" index="0" speed="22.22" length="0.26" shape="1385.05,2170.45 1384.82,2170.57"/>
- </edge>
- <edge id="23182484#2" from="1367855925" to="250685816" priority="5" type="highway.unclassified">
- <lane id="23182484#2_0" index="0" speed="22.22" length="107.01" shape="1376.66,2174.90 1282.13,2225.06"/>
- </edge>
- <edge id="23182517#0" from="250685766" to="450564003" priority="5" type="highway.unclassified">
- <lane id="23182517#0_0" index="0" speed="22.22" length="3.26" shape="1161.72,2283.40 1160.20,2280.52"/>
- </edge>
- <edge id="23182517#1" from="450564003" to="975934878" priority="5" type="highway.unclassified">
- <lane id="23182517#1_0" index="0" speed="22.22" length="2.26" shape="1157.31,2274.98 1156.27,2272.97"/>
- </edge>
- <edge id="23182517#2" from="975934878" to="1545673349" priority="5" type="highway.unclassified">
- <lane id="23182517#2_0" index="0" speed="22.22" length="41.56" shape="1153.46,2267.47 1134.81,2230.32"/>
- </edge>
- <edge id="23182517#3" from="1545673349" to="1545673118" priority="5" type="highway.unclassified">
- <lane id="23182517#3_0" index="0" speed="22.22" length="58.59" shape="1130.55,2221.83 1104.26,2169.47"/>
- </edge>
- <edge id="23182517#4" from="1545673118" to="252418937" priority="5" type="highway.unclassified">
- <lane id="23182517#4_0" index="0" speed="22.22" length="38.52" shape="1099.99,2160.98 1082.70,2126.55"/>
- </edge>
- <edge id="23182589#0" from="443101911" to="250688540" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182589#0_0" index="0" speed="22.22" length="69.70" shape="1088.61,1125.70 1120.58,1187.63"/>
- </edge>
- <edge id="23182589#1" from="250688540" to="250688445" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23182589#1_0" index="0" speed="22.22" length="72.68" shape="1123.47,1193.15 1157.65,1257.29"/>
- </edge>
- <edge id="23182640" from="252417585" to="441266879" priority="5" type="highway.unclassified" spreadType="center" shape="1763.69,1292.21 1748.55,1299.07 1638.48,1357.69 1525.73,1418.03 1418.86,1475.44 1413.40,1478.37">
- <lane id="23182640_0" index="0" speed="22.22" length="393.61" shape="1763.69,1292.21 1748.55,1299.07 1638.48,1357.69 1525.73,1418.03 1418.86,1475.44 1416.14,1476.90"/>
- </edge>
- <edge id="23262356#0" from="255227471" to="2265767394" priority="5" type="highway.unclassified">
- <lane id="23262356#0_0" index="0" speed="22.22" length="4.80" shape="1342.10,954.87 1340.62,950.31"/>
- </edge>
- <edge id="23262356#1" from="2265767394" to="443101920" priority="5" type="highway.unclassified">
- <lane id="23262356#1_0" index="0" speed="22.22" length="2.70" shape="1339.56,947.04 1338.73,944.47"/>
- </edge>
- <edge id="23262356#2" from="443101920" to="255227475" priority="5" type="highway.unclassified">
- <lane id="23262356#2_0" index="0" speed="22.22" length="65.53" shape="1337.03,940.77 1307.71,882.17"/>
- </edge>
- <edge id="23262356#3" from="255227475" to="255227472" priority="5" type="highway.unclassified">
- <lane id="23262356#3_0" index="0" speed="22.22" length="64.98" shape="1303.30,874.21 1269.63,818.64"/>
- </edge>
- <edge id="23315111#0" from="252418937" to="950094412" priority="5" type="highway.unclassified">
- <lane id="23315111#0_0" index="0" speed="22.22" length="0.70" shape="1079.87,2120.70 1079.58,2120.06"/>
- </edge>
- <edge id="23315111#1" from="950094412" to="427996791" priority="5" type="highway.unclassified">
- <lane id="23315111#1_0" index="0" speed="22.22" length="3.73" shape="1077.01,2114.55 1075.43,2111.18"/>
- </edge>
- <edge id="23315111#2" from="427996791" to="950094425" priority="5" type="highway.unclassified">
- <lane id="23315111#2_0" index="0" speed="22.22" length="4.89" shape="1074.93,2110.11 1072.87,2105.68"/>
- </edge>
- <edge id="23315111#3" from="950094425" to="427996792" priority="5" type="highway.unclassified">
- <lane id="23315111#3_0" index="0" speed="22.22" length="0.95" shape="1068.72,2096.79 1068.32,2095.93"/>
- </edge>
- <edge id="23566901#0" from="255227478" to="255227480" priority="4" type="highway.residential" shape="1257.12,791.07 1271.43,783.65 1354.16,848.86">
- <lane id="23566901#0_0" index="0" speed="13.89" length="117.41" shape="1256.36,789.61 1271.62,781.69 1350.32,843.74"/>
- </edge>
- <edge id="23566901#1" from="255227480" to="1624060630" priority="4" type="highway.residential">
- <lane id="23566901#1_0" index="0" speed="13.89" length="53.75" shape="1362.27,850.25 1412.35,869.77"/>
- </edge>
- <edge id="23566902" from="255227472" to="566579339" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="23566902_0" index="0" speed="22.22" length="174.07" shape="1265.39,817.52 1113.48,902.52"/>
- </edge>
- <edge id="24319547" from="250688445" to="443089065" priority="5" type="highway.unclassified" spreadType="center" shape="1158.40,1258.68 1223.82,1224.80 1230.62,1221.27">
- <lane id="24319547_0" index="0" speed="22.22" length="76.64" shape="1159.80,1257.95 1223.82,1224.80 1227.86,1222.71"/>
- </edge>
- <edge id="24319558" from="250688540" to="443089066" priority="5" type="highway.unclassified" spreadType="center" shape="1122.03,1190.45 1133.50,1183.96 1187.22,1153.55 1192.98,1150.29">
- <lane id="24319558_0" index="0" speed="22.22" length="75.22" shape="1124.78,1188.89 1133.50,1183.96 1187.22,1153.55 1190.24,1151.84"/>
- </edge>
- <edge id="24573897#0" from="1536917218" to="1624003168" priority="5" type="highway.unclassified" spreadType="center" shape="683.21,346.28 702.42,382.80 751.25,476.40 806.08,581.49 865.32,695.50 923.06,806.24">
- <lane id="24573897#0_0" index="0" speed="22.22" length="515.58" shape="683.21,346.28 702.42,382.80 751.25,476.40 806.08,581.49 865.32,695.50 921.60,803.44"/>
- </edge>
- <edge id="24573897#1" from="1624003168" to="538810726" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573897#1_0" index="0" speed="22.22" length="97.20" shape="924.52,809.03 969.51,895.18"/>
- </edge>
- <edge id="24573897#2" from="538810726" to="1624020484" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573897#2_0" index="0" speed="22.22" length="67.44" shape="972.43,900.78 1003.63,960.58"/>
- </edge>
- <edge id="24573897#3" from="1624020484" to="267169554" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573897#3_0" index="0" speed="22.22" length="71.84" shape="1006.54,966.01 1041.24,1028.91"/>
- </edge>
- <edge id="24573897#4" from="267169554" to="443101915" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573897#4_0" index="0" speed="22.22" length="63.22" shape="1044.21,1034.45 1073.46,1090.50"/>
- </edge>
- <edge id="24573905#0" from="443089068" to="267169554" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573905#0_0" index="0" speed="22.22" length="70.19" shape="1106.42,995.30 1045.46,1030.10"/>
- </edge>
- <edge id="24573905#1" from="267169554" to="267169592" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573905#1_0" index="0" speed="22.22" length="73.10" shape="1040.00,1033.21 976.45,1069.33"/>
- </edge>
- <edge id="24573905#2" from="267169592" to="719463795" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573905#2_0" index="0" speed="22.22" length="68.47" shape="970.96,1072.46 911.46,1106.35"/>
- </edge>
- <edge id="24573905#3" from="719463795" to="267169591" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573905#3_0" index="0" speed="22.22" length="1.34" shape="903.09,1111.12 901.93,1111.78"/>
- </edge>
- <edge id="24573930#0" from="443101914" to="267169592" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573930#0_0" index="0" speed="22.22" length="63.06" shape="1004.27,1129.64 975.17,1073.70"/>
- </edge>
- <edge id="24573930#1" from="267169592" to="1624020482" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573930#1_0" index="0" speed="22.22" length="70.87" shape="972.25,1068.09 939.55,1005.21"/>
- </edge>
- <edge id="24573930#2" from="1624020482" to="538810724" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573930#2_0" index="0" speed="22.22" length="68.35" shape="936.69,999.71 905.15,939.07"/>
- </edge>
- <edge id="24573930#3" from="538810724" to="1624003193" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="24573930#3_0" index="0" speed="22.22" length="97.71" shape="902.24,933.47 857.15,846.78"/>
- </edge>
- <edge id="24573930#4" from="1624003193" to="538810716" priority="5" type="highway.unclassified" spreadType="center" shape="855.69,843.99 798.35,733.73 739.51,620.34 683.02,512.58">
- <lane id="24573930#4_0" index="0" speed="22.22" length="370.55" shape="854.24,841.19 798.35,733.73 739.51,620.34 683.02,512.58"/>
- </edge>
- <edge id="24573937" from="267169964" to="966193808" priority="5" type="highway.unclassified">
- <lane id="24573937_0" index="0" speed="22.22" length="77.77" shape="1230.66,1125.15 1298.95,1087.96"/>
- </edge>
- <edge id="24573939#0" from="267169690" to="267169686" priority="1" type="highway.pedestrian">
- <lane id="24573939#0_0" index="0" allow="pedestrian" speed="8.33" length="50.18" shape="1390.10,1043.51 1414.87,1087.14"/>
- </edge>
- <edge id="24573939#1" from="267169686" to="267169715" priority="1" type="highway.pedestrian">
- <lane id="24573939#1_0" index="0" allow="pedestrian" speed="8.33" length="6.51" shape="1422.10,1100.95 1424.93,1106.81"/>
- </edge>
- <edge id="24573939#2" from="267169715" to="441266874" priority="1" type="highway.pedestrian">
- <lane id="24573939#2_0" index="0" allow="pedestrian" speed="8.33" length="63.11" shape="1429.03,1115.37 1456.09,1172.38"/>
- </edge>
- <edge id="24573947#0" from="255227483" to="2265767392" priority="5" type="highway.unclassified">
- <lane id="24573947#0_0" index="0" speed="22.22" length="4.53" shape="1440.41,908.08 1442.66,912.01"/>
- </edge>
- <edge id="24573947#1" from="2265767392" to="443101905" priority="5" type="highway.unclassified">
- <lane id="24573947#1_0" index="0" speed="22.22" length="0.89" shape="1445.14,916.36 1445.58,917.13"/>
- </edge>
- <edge id="24573947#2" from="443101905" to="267169634" priority="5" type="highway.unclassified">
- <lane id="24573947#2_0" index="0" speed="22.22" length="58.20" shape="1448.63,922.82 1474.79,974.81"/>
- </edge>
- <edge id="24573947#3" from="267169634" to="267169714" priority="5" type="highway.unclassified">
- <lane id="24573947#3_0" index="0" speed="22.22" length="81.21" shape="1480.35,985.63 1517.77,1057.70"/>
- </edge>
- <edge id="24573947#4" from="267169714" to="267169795" priority="5" type="highway.unclassified" shape="1518.53,1062.74 1557.82,1139.13 1576.94,1162.84">
- <lane id="24573947#4_0" index="0" speed="22.22" length="111.24" shape="1522.18,1066.25 1559.21,1138.23 1578.23,1161.81"/>
- </edge>
- <edge id="34962531#0" from="410296508" to="950640371" priority="5" type="highway.unclassified">
- <lane id="34962531#0_0" index="0" speed="22.22" length="8.21" shape="672.84,1340.53 668.95,1333.31"/>
- </edge>
- <edge id="34962531#1" from="950640371" to="446017738" priority="5" type="highway.unclassified">
- <lane id="34962531#1_0" index="0" speed="22.22" length="0.18" shape="667.40,1330.44 667.32,1330.28"/>
- </edge>
- <edge id="37351086#0" from="435668511" to="948350693" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37351086#0_0" index="0" speed="22.22" length="6.08" shape="744.37,2274.32 748.62,2269.96"/>
- </edge>
- <edge id="37351086#1" from="948350693" to="445506215" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37351086#1_0" index="0" speed="22.22" length="8.58" shape="751.20,2267.31 757.19,2261.16"/>
- </edge>
- <edge id="37351089#0" from="435668539" to="948350621" priority="9" type="highway.primary" spreadType="center">
- <lane id="37351089#0_0" index="0" speed="27.78" length="2.73" shape="759.28,2284.04 757.58,2285.56"/>
- <lane id="37351089#0_1" index="1" speed="27.78" length="2.73" shape="757.08,2281.58 755.19,2283.27"/>
- <lane id="37351089#0_2" index="2" speed="27.78" length="2.73" shape="754.89,2279.12 752.80,2280.98"/>
- <lane id="37351089#0_3" index="3" speed="27.78" length="2.73" shape="755.14,2274.46 752.69,2276.65"/>
- </edge>
- <edge id="37351089#1" from="948350621" to="243489891" priority="9" type="highway.primary" spreadType="center">
- <lane id="37351089#1_0" index="0" speed="27.78" length="0.28" shape="757.55,2285.54 757.36,2285.74"/>
- <lane id="37351089#1_1" index="1" speed="27.78" length="0.28" shape="755.17,2283.25 754.98,2283.45"/>
- <lane id="37351089#1_2" index="2" speed="27.78" length="0.28" shape="752.79,2280.96 752.60,2281.16"/>
- <lane id="37351089#1_3" index="3" speed="27.78" length="0.28" shape="750.41,2278.68 750.22,2278.88"/>
- </edge>
- <edge id="37369047#0" from="450623549" to="724002953" priority="9" type="highway.primary" spreadType="center" shape="592.39,2365.36 613.17,2344.66 728.03,2283.05">
- <lane id="37369047#0_0" index="0" speed="27.78" length="154.09" shape="588.89,2361.86 610.20,2340.64 720.76,2281.33"/>
- <lane id="37369047#0_1" index="1" speed="27.78" length="154.09" shape="591.22,2364.20 612.18,2343.32 722.32,2284.24"/>
- <lane id="37369047#0_2" index="2" speed="27.78" length="154.09" shape="593.55,2366.53 614.17,2346.00 723.88,2287.14"/>
- <lane id="37369047#0_3" index="3" speed="27.78" length="154.09" shape="595.88,2368.87 616.15,2348.68 725.44,2290.05"/>
- </edge>
- <edge id="37369047#1" from="724002953" to="435668511" priority="9" type="highway.primary" spreadType="center">
- <lane id="37369047#1_0" index="0" speed="27.78" length="15.44" shape="726.43,2278.29 740.04,2271.02"/>
- <lane id="37369047#1_1" index="1" speed="27.78" length="15.44" shape="727.98,2281.20 741.60,2273.93"/>
- <lane id="37369047#1_2" index="2" speed="27.78" length="15.44" shape="729.54,2284.11 743.15,2276.84"/>
- <lane id="37369047#1_3" index="3" speed="27.78" length="15.44" shape="731.09,2287.02 744.71,2279.75"/>
- </edge>
- <edge id="37369047#2" from="435668511" to="948350707" priority="9" type="highway.primary" spreadType="center">
- <lane id="37369047#2_0" index="0" speed="27.78" length="2.31" shape="747.83,2269.19 749.29,2269.12"/>
- <lane id="37369047#2_1" index="1" speed="27.78" length="2.31" shape="745.79,2272.60 749.10,2272.44"/>
- <lane id="37369047#2_2" index="2" speed="27.78" length="2.31" shape="747.67,2275.81 749.78,2275.71"/>
- <lane id="37369047#2_3" index="3" speed="27.78" length="2.31" shape="746.67,2279.16 749.04,2279.05"/>
- </edge>
- <edge id="37449245#0" from="13929737" to="1257054165" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449245#0_0" index="0" speed="22.22" length="14.02" shape="1289.00,1969.14 1282.43,1956.76"/>
- </edge>
- <edge id="37449245#1" from="1257054165" to="438042380" priority="5" type="highway.unclassified" spreadType="center" shape="1280.20,1952.56 1203.24,1809.78 1201.94,1805.41 1202.40,1800.68 1205.52,1789.74 1206.78,1783.92 1205.90,1773.17">
- <lane id="37449245#1_0" index="0" speed="22.22" length="181.72" shape="1277.94,1948.38 1203.24,1809.78 1201.94,1805.41 1202.40,1800.68 1205.52,1789.74 1206.28,1786.24"/>
- </edge>
- <edge id="37449249#0" from="438042373" to="438042374" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="37449249#0_0" index="0" speed="22.22" length="26.66" shape="1241.94,1703.46 1232.54,1728.41"/>
- </edge>
- <edge id="37449249#1" from="438042374" to="438042385" priority="6" type="highway.secondary_link" spreadType="center" shape="1231.88,1730.17 1220.57,1740.64 1211.11,1748.62">
- <lane id="37449249#1_0" index="0" speed="22.22" length="16.48" shape="1227.80,1733.94 1220.57,1740.64 1215.51,1744.91"/>
- </edge>
- <edge id="37449249#2" from="438042385" to="438042387" priority="6" type="highway.secondary_link" spreadType="center" shape="1211.11,1748.62 1208.00,1751.34 1203.76,1753.91 1198.12,1755.72">
- <lane id="37449249#2_0" index="0" speed="22.22" length="4.50" shape="1206.77,1752.09 1203.76,1753.91 1202.83,1754.21"/>
- </edge>
- <edge id="37449249#3" from="438042387" to="438042381" priority="6" type="highway.secondary_link" spreadType="center" shape="1198.12,1755.72 1192.34,1751.70 1187.26,1747.35 1180.28,1738.16 1174.60,1728.87 1170.46,1719.65 1167.53,1710.47 1166.29,1702.69 1166.37,1698.88 1167.26,1695.93">
- <lane id="37449249#3_0" index="0" speed="22.22" length="61.04" shape="1193.90,1752.78 1192.34,1751.70 1187.26,1747.35 1180.28,1738.16 1174.60,1728.87 1170.46,1719.65 1167.53,1710.47 1166.29,1702.69 1166.34,1700.30"/>
- </edge>
- <edge id="37449253#0" from="438042374" to="733663089" priority="5" type="highway.unclassified" spreadType="center" shape="1231.88,1730.17 1230.87,1744.09 1237.89,1761.89">
- <lane id="37449253#0_0" index="0" speed="22.22" length="22.56" shape="1231.48,1735.71 1230.87,1744.09 1236.06,1757.26"/>
- </edge>
- <edge id="37449253#1" from="733663089" to="248913130" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#1_0" index="0" speed="22.22" length="43.93" shape="1240.13,1766.06 1260.94,1804.75"/>
- </edge>
- <edge id="37449253#2" from="248913130" to="248913145" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#2_0" index="0" speed="22.22" length="71.28" shape="1265.38,1813.13 1298.44,1876.29"/>
- </edge>
- <edge id="37449253#3" from="248913145" to="1257054155" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#3_0" index="0" speed="22.22" length="48.62" shape="1302.79,1884.71 1324.84,1928.04"/>
- </edge>
- <edge id="37449253#4" from="1257054155" to="435668516" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#4_0" index="0" speed="22.22" length="11.52" shape="1329.75,1937.58 1335.08,1947.79"/>
- </edge>
- <edge id="37449253#5" from="435668516" to="974693391" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#5_0" index="0" speed="22.22" length="2.46" shape="1337.99,1953.28 1339.27,1955.38"/>
- </edge>
- <edge id="37449253#6" from="974693391" to="13929747" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#6_0" index="0" speed="22.22" length="6.31" shape="1342.23,1960.24 1345.18,1965.82"/>
- </edge>
- <edge id="37449253#7" from="13929747" to="950094314" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37449253#7_0" index="0" speed="22.22" length="1.93" shape="1346.53,1968.32 1347.46,1970.01"/>
- </edge>
- <edge id="37638426#0" from="1168929349" to="441236049" priority="5" type="highway.unclassified" spreadType="center" shape="827.34,1010.48 820.36,1015.10 810.99,1017.83">
- <lane id="37638426#0_0" index="0" speed="22.22" length="4.68" shape="821.83,1014.12 820.36,1015.10 817.56,1015.92"/>
- </edge>
- <edge id="37638426#1" from="441236049" to="1168929308" priority="5" type="highway.unclassified" spreadType="center" shape="810.99,1017.83 807.51,1017.68 802.79,1017.08 795.23,1014.27 789.24,1009.86 784.12,1003.12 781.29,995.18 780.94,987.21 781.15,985.59">
- <lane id="37638426#1_0" index="0" speed="22.22" length="36.95" shape="803.01,1017.11 802.79,1017.08 795.23,1014.27 789.24,1009.86 784.12,1003.12 781.29,995.18 781.10,990.85"/>
- </edge>
- <edge id="37638470#0" from="1168929308" to="1168929652" priority="5" type="highway.unclassified">
- <lane id="37638470#0_0" index="0" speed="22.22" length="2.42" shape="774.87,988.22 772.48,988.58"/>
- </edge>
- <edge id="37638470#1" from="1168929652" to="1224080669" priority="5" type="highway.unclassified" shape="765.18,988.02 543.93,1027.58 521.64,1031.63">
- <lane id="37638470#1_0" index="0" speed="22.22" length="238.09" shape="762.09,990.25 544.22,1029.21 527.72,1032.20"/>
- </edge>
- <edge id="37638470#2" from="1224080669" to="484282961" priority="5" type="highway.unclassified">
- <lane id="37638470#2_0" index="0" speed="22.22" length="3.92" shape="518.09,1033.95 514.23,1034.65"/>
- </edge>
- <edge id="37640549#0" from="441266865" to="267169714" priority="5" type="highway.unclassified">
- <lane id="37640549#0_0" index="0" speed="22.22" length="93.33" shape="1605.46,1017.13 1523.55,1061.88"/>
- </edge>
- <edge id="37640549#1" from="267169714" to="267169715" priority="5" type="highway.unclassified">
- <lane id="37640549#1_0" index="0" speed="22.22" length="95.51" shape="1515.07,1066.44 1430.64,1111.09"/>
- </edge>
- <edge id="37640550#0" from="566579334" to="566579336" priority="5" type="highway.unclassified" spreadType="center" shape="857.57,419.88 909.63,520.55 970.87,637.71">
- <lane id="37640550#0_0" index="0" speed="22.22" length="245.53" shape="857.57,419.88 909.63,520.55 970.87,637.71"/>
- </edge>
- <edge id="37640550#1" from="566579336" to="566579338" priority="5" type="highway.unclassified" spreadType="center" shape="970.87,637.71 1005.44,700.14 1028.08,744.00 1076.57,837.91">
- <lane id="37640550#1_0" index="0" speed="22.22" length="226.42" shape="970.87,637.70 1005.44,700.14 1028.08,744.00 1076.57,837.91"/>
- </edge>
- <edge id="37640550#2" from="566579338" to="566579339" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37640550#2_0" index="0" speed="22.22" length="71.29" shape="1076.57,837.91 1109.28,901.25"/>
- </edge>
- <edge id="37640550#3" from="566579339" to="441266876" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37640550#3_0" index="0" speed="22.22" length="66.30" shape="1112.15,906.76 1142.99,965.46"/>
- </edge>
- <edge id="37640550#4" from="441266876" to="2081499947" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37640550#4_0" index="0" speed="22.22" length="38.35" shape="1145.85,970.95 1163.43,1005.03"/>
- </edge>
- <edge id="37640550#5" from="2081499947" to="1168929585" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37640550#5_0" index="0" speed="22.22" length="11.44" shape="1167.78,1013.47 1173.02,1023.64"/>
- </edge>
- <edge id="37771900#0" from="566579340" to="443089060" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#0_0" index="0" speed="22.22" length="9.21" shape="1558.69,1848.30 1554.37,1840.16"/>
- </edge>
- <edge id="37771900#1" from="443089060" to="443089061" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#1_0" index="0" speed="22.22" length="73.04" shape="1551.52,1834.58 1519.35,1769.01"/>
- </edge>
- <edge id="37771900#2" from="443089061" to="443089062" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#2_0" index="0" speed="22.22" length="69.82" shape="1515.03,1760.49 1482.57,1698.68"/>
- </edge>
- <edge id="37771900#3" from="443089062" to="733663131" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#3_0" index="0" speed="22.22" length="73.16" shape="1478.14,1690.28 1443.87,1625.63"/>
- </edge>
- <edge id="37771900#4" from="733663131" to="1669480287" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#4_0" index="0" speed="22.22" length="2.84" shape="1439.18,1617.28 1437.73,1614.83"/>
- </edge>
- <edge id="37771900#5" from="1669480287" to="443089063" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#5_0" index="0" speed="22.22" length="2.54" shape="1432.79,1606.50 1431.50,1604.31"/>
- </edge>
- <edge id="37771900#6" from="443089063" to="443089064" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#6_0" index="0" speed="22.22" length="99.40" shape="1423.73,1590.08 1379.33,1501.14"/>
- </edge>
- <edge id="37771900#7" from="443089064" to="443089070" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771900#7_0" index="0" speed="22.22" length="7.40" shape="1376.42,1495.59 1372.85,1489.12"/>
- </edge>
- <edge id="37771902#0" from="443089069" to="452425501" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771902#0_0" index="0" speed="22.22" length="9.90" shape="1156.95,1598.12 1165.81,1593.70"/>
- </edge>
- <edge id="37771902#1" from="452425501" to="966132112" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771902#1_0" index="0" speed="22.22" length="29.26" shape="1174.35,1589.42 1200.45,1576.20"/>
- </edge>
- <edge id="37771902#2" from="966132112" to="252417165" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771902#2_0" index="0" speed="22.22" length="21.11" shape="1205.98,1573.45 1224.95,1564.19"/>
- </edge>
- <edge id="37771902#3" from="252417165" to="252417190" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37771902#3_0" index="0" speed="22.22" length="75.86" shape="1230.47,1561.43 1297.99,1526.85"/>
- </edge>
- <edge id="37771903" from="443089064" to="443089072" priority="5" type="highway.unclassified" spreadType="center" shape="1377.93,1498.33 1369.91,1502.61 1306.46,1536.50">
- <lane id="37771903_0" index="0" speed="22.22" length="74.76" shape="1375.16,1499.81 1369.91,1502.61 1309.21,1535.03"/>
- </edge>
- <edge id="37771904#0" from="443089074" to="966193857" priority="5" type="highway.unclassified" spreadType="center" shape="1406.05,1464.41 1411.61,1461.34 1461.49,1433.85">
- <lane id="37771904#0_0" index="0" speed="22.22" length="55.44" shape="1408.79,1462.90 1411.61,1461.34 1457.34,1436.14"/>
- </edge>
- <edge id="37771904#1" from="966193857" to="441266862" priority="5" type="highway.unclassified" spreadType="center" shape="1461.49,1433.85 1518.22,1402.76 1631.16,1342.97 1742.60,1287.33">
- <lane id="37771904#1_0" index="0" speed="22.22" length="312.28" shape="1465.66,1431.57 1518.22,1402.76 1631.16,1342.97 1742.60,1287.33"/>
- </edge>
- <edge id="37772595#0" from="257907791" to="443101905" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772595#0_0" index="0" speed="22.22" length="77.40" shape="1517.46,880.71 1449.83,918.36"/>
- </edge>
- <edge id="37772595#1" from="443101905" to="443101906" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772595#1_0" index="0" speed="22.22" length="99.52" shape="1441.49,923.02 1354.61,971.57"/>
- </edge>
- <edge id="37772595#2" from="443101906" to="966193796" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772595#2_0" index="0" speed="22.22" length="82.85" shape="1345.98,976.40 1273.67,1016.82"/>
- </edge>
- <edge id="37772595#3" from="966193796" to="1168929549" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772595#3_0" index="0" speed="22.22" length="73.13" shape="1265.38,1021.49 1201.76,1057.55"/>
- </edge>
- <edge id="37772596#0" from="443101913" to="719463587" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772596#0_0" index="0" speed="22.22" length="1.03" shape="933.96,1172.88 934.86,1172.38"/>
- </edge>
- <edge id="37772596#1" from="719463587" to="443101914" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772596#1_0" index="0" speed="22.22" length="68.69" shape="943.23,1167.66 1003.08,1133.94"/>
- </edge>
- <edge id="37772596#2" from="443101914" to="443101915" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772596#2_0" index="0" speed="22.22" length="73.29" shape="1008.48,1130.89 1072.26,1094.78"/>
- </edge>
- <edge id="37772596#3" from="443101915" to="1168929613" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37772596#3_0" index="0" speed="22.22" length="65.57" shape="1077.65,1091.77 1135.18,1060.30"/>
- </edge>
- <edge id="37772597#0" from="255227471" to="2265767395" priority="5" type="highway.unclassified">
- <lane id="37772597#0_0" index="0" speed="22.22" length="8.17" shape="1346.50,957.69 1349.05,965.45"/>
- </edge>
- <edge id="37772597#1" from="2265767395" to="443101906" priority="5" type="highway.unclassified">
- <lane id="37772597#1_0" index="0" speed="22.22" length="0.70" shape="1350.54,969.98 1350.75,970.64"/>
- </edge>
- <edge id="37772597#2" from="443101906" to="267169690" priority="5" type="highway.unclassified">
- <lane id="37772597#2_0" index="0" speed="22.22" length="67.15" shape="1353.09,976.02 1385.32,1034.93"/>
- </edge>
- <edge id="37942667#0" from="429179805" to="1323557956" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942667#0_0" index="0" speed="22.22" length="102.25" shape="754.48,1506.76 740.67,1608.07"/>
- </edge>
- <edge id="37942667#1" from="1323557956" to="1212941056" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942667#1_0" index="0" speed="22.22" length="40.84" shape="740.01,1613.03 733.62,1653.37"/>
- </edge>
- <edge id="37942667#2" from="1212941056" to="1213368991" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942667#2_0" index="0" speed="22.22" length="3.55" shape="733.06,1656.91 732.56,1660.42"/>
- </edge>
- <edge id="37942667#3" from="1213368991" to="1212941077" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942667#3_0" index="0" speed="22.22" length="3.34" shape="732.34,1661.96 731.88,1665.26"/>
- </edge>
- <edge id="37942667#4" from="1212941077" to="733663070" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942667#4_0" index="0" speed="22.22" length="95.83" shape="731.32,1669.18 717.82,1764.06"/>
- </edge>
- <edge id="37942667#5" from="733663070" to="445506213" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942667#5_0" index="0" speed="22.22" length="87.03" shape="716.82,1770.92 703.62,1856.95"/>
- </edge>
- <edge id="37942668#0" from="445506216" to="560472378" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942668#0_0" index="0" speed="22.22" length="147.36" shape="972.64,1923.55 843.00,1993.60"/>
- </edge>
- <edge id="37942668#1" from="560472378" to="445506217" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942668#1_0" index="0" speed="22.22" length="113.98" shape="834.61,1998.10 734.00,2051.66"/>
- </edge>
- <edge id="37942668#2" from="445506217" to="445506221" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37942668#2_0" index="0" speed="22.22" length="7.23" shape="727.29,2055.09 720.80,2058.27"/>
- </edge>
- <edge id="37973565#0" from="445506213" to="733663082" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#0_0" index="0" speed="22.22" length="10.12" shape="703.63,1857.47 705.40,1867.44"/>
- </edge>
- <edge id="37973565#1" from="733663082" to="560472379" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#1_0" index="0" speed="22.22" length="154.45" shape="706.96,1877.23 727.84,2030.26"/>
- </edge>
- <edge id="37973565#10" from="450564002" to="503954409" priority="5" type="highway.unclassified" spreadType="center" shape="788.17,2469.73 789.69,2481.38 803.00,2587.20">
- <lane id="37973565#10_0" index="0" speed="22.22" length="110.42" shape="788.71,2473.87 789.69,2481.38 802.53,2583.43"/>
- </edge>
- <edge id="37973565#11" from="503954409" to="450564007" priority="5" type="highway.unclassified" spreadType="center" shape="803.00,2587.20 810.58,2647.47 817.57,2705.92 820.65,2730.16 818.15,2739.87 821.48,2760.41">
- <lane id="37973565#11_0" index="0" speed="22.22" length="172.27" shape="803.33,2589.79 810.58,2647.47 817.57,2705.92 820.65,2730.16 818.15,2739.87 821.48,2760.41"/>
- </edge>
- <edge id="37973565#2" from="560472379" to="445506217" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#2_0" index="0" speed="22.22" length="13.13" shape="728.65,2036.60 730.16,2049.64"/>
- </edge>
- <edge id="37973565#3" from="445506217" to="1257054132" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#3_0" index="0" speed="22.22" length="184.70" shape="731.14,2057.12 758.27,2239.81"/>
- </edge>
- <edge id="37973565#4" from="1257054132" to="445506215" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#4_0" index="0" speed="22.22" length="1.79" shape="759.47,2248.35 759.69,2250.12"/>
- </edge>
- <edge id="37973565#5" from="445506215" to="948350588" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#5_0" index="0" speed="22.22" length="4.88" shape="760.70,2258.48 761.22,2263.34"/>
- </edge>
- <edge id="37973565#6" from="948350588" to="435668539" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#6_0" index="0" speed="22.22" length="0.44" shape="761.77,2268.58 761.81,2269.02"/>
- </edge>
- <edge id="37973565#7" from="435668539" to="948350607" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#7_0" index="0" speed="22.22" length="10.96" shape="762.39,2274.63 763.17,2285.56"/>
- </edge>
- <edge id="37973565#8" from="948350607" to="445823604" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#8_0" index="0" speed="22.22" length="5.85" shape="763.17,2285.56 763.73,2291.39"/>
- </edge>
- <edge id="37973565#9" from="445823604" to="450564002" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973565#9_0" index="0" speed="22.22" length="173.43" shape="764.11,2294.17 787.66,2466.00"/>
- </edge>
- <edge id="37973566" from="30406565" to="552842256" priority="6" type="highway.tertiary">
- <lane id="37973566_0" index="0" speed="22.22" length="195.87" shape="687.05,1857.10 714.44,1663.16"/>
- </edge>
- <edge id="37973568#0" from="356693793" to="1224080660" priority="5" type="highway.unclassified" spreadType="center" shape="262.42,1552.22 362.60,1497.48 438.14,1456.11 469.28,1438.52 531.95,1403.13 662.05,1329.66">
- <lane id="37973568#0_0" index="0" speed="22.22" length="452.73" shape="262.42,1552.22 362.60,1497.48 438.14,1456.11 469.28,1438.52 531.95,1403.13 657.95,1331.97"/>
- </edge>
- <edge id="37973568#1" from="1224080660" to="446017738" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#1_0" index="0" speed="22.22" length="3.58" shape="663.11,1329.06 666.23,1327.30"/>
- </edge>
- <edge id="37973568#2" from="446017738" to="446017739" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#2_0" index="0" speed="22.22" length="95.43" shape="673.27,1323.06 754.78,1273.45"/>
- </edge>
- <edge id="37973568#3" from="446017739" to="446017741" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#3_0" index="0" speed="22.22" length="5.68" shape="763.33,1268.39 768.26,1265.58"/>
- </edge>
- <edge id="37973568#4" from="446017741" to="1780219360" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#4_0" index="0" speed="22.22" length="125.60" shape="780.07,1258.91 889.76,1197.72"/>
- </edge>
- <edge id="37973568#5" from="1780219360" to="446017742" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#5_0" index="0" speed="22.22" length="1.05" shape="897.37,1193.47 898.29,1192.96"/>
- </edge>
- <edge id="37973568#6" from="446017742" to="446017743" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#6_0" index="0" speed="22.22" length="2.47" shape="908.57,1187.19 910.72,1185.98"/>
- </edge>
- <edge id="37973568#7" from="446017743" to="443101913" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973568#7_0" index="0" speed="22.22" length="7.36" shape="922.05,1179.59 928.46,1175.98"/>
- </edge>
- <edge id="37973569#0" from="443101912" to="446017747" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#0_0" index="0" speed="22.22" length="10.19" shape="943.15,1204.76 934.27,1209.75"/>
- </edge>
- <edge id="37973569#1" from="446017747" to="446017746" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#1_0" index="0" speed="22.22" length="2.39" shape="925.82,1214.49 923.73,1215.66"/>
- </edge>
- <edge id="37973569#2" from="446017746" to="1780219341" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#2_0" index="0" speed="22.22" length="2.38" shape="915.38,1220.35 913.30,1221.51"/>
- </edge>
- <edge id="37973569#3" from="1780219341" to="538265870" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#3_0" index="0" speed="22.22" length="1.90" shape="906.39,1225.39 904.73,1226.32"/>
- </edge>
- <edge id="37973569#4" from="538265870" to="951739693" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#4_0" index="0" speed="22.22" length="90.50" shape="900.97,1228.45 822.17,1272.97"/>
- </edge>
- <edge id="37973569#5" from="951739693" to="446017744" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#5_0" index="0" speed="22.22" length="44.54" shape="813.90,1277.64 775.12,1299.55"/>
- </edge>
- <edge id="37973569#6" from="446017744" to="446017740" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973569#6_0" index="0" speed="22.22" length="9.88" shape="763.20,1306.41 754.67,1311.39"/>
- </edge>
- <edge id="37973569#7" from="446017740" to="1726380184" priority="5" type="highway.unclassified" spreadType="center" shape="750.28,1313.96 713.24,1335.01 681.18,1353.27">
- <lane id="37973569#7_0" index="0" speed="22.22" length="70.05" shape="746.16,1316.30 713.24,1335.01 685.27,1350.94"/>
- </edge>
- <edge id="37973569#8" from="1726380184" to="552842255" priority="5" type="highway.unclassified" spreadType="center" shape="681.18,1353.27 588.70,1405.91 539.82,1433.75 478.82,1468.50 465.58,1476.04">
- <lane id="37973569#8_0" index="0" speed="22.22" length="237.53" shape="677.01,1355.64 588.70,1405.91 539.82,1433.75 478.82,1468.50 470.60,1473.18"/>
- </edge>
- <edge id="37973569#9" from="552842255" to="728444397" priority="5" type="highway.unclassified" spreadType="center" shape="465.58,1476.04 405.53,1510.51 391.92,1518.86 380.10,1526.11 276.97,1583.37">
- <lane id="37973569#9_0" index="0" speed="22.22" length="211.26" shape="460.57,1478.92 405.53,1510.51 391.92,1518.86 380.10,1526.11 276.97,1583.37"/>
- </edge>
- <edge id="37973571#0" from="444026886" to="1224074533" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973571#0_0" index="0" speed="22.22" length="3.53" shape="783.38,1095.97 784.50,1092.62"/>
- </edge>
- <edge id="37973571#1" from="1224074533" to="444026889" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="37973571#1_0" index="0" speed="22.22" length="1.84" shape="793.88,1084.14 795.59,1083.47"/>
- </edge>
- <edge id="37973572#0" from="438042367" to="1780219353" priority="7" type="highway.secondary">
- <lane id="37973572#0_0" index="0" speed="27.78" length="0.52" shape="908.11,1210.69 907.66,1210.95"/>
- <lane id="37973572#0_1" index="1" speed="27.78" length="0.52" shape="906.47,1207.83 906.02,1208.08"/>
- </edge>
- <edge id="37973572#1" from="1780219353" to="30406599" priority="7" type="highway.secondary">
- <lane id="37973572#1_0" index="0" speed="27.78" length="133.89" shape="899.43,1215.65 783.15,1282.02"/>
- <lane id="37973572#1_1" index="1" speed="27.78" length="133.89" shape="897.80,1212.78 781.51,1279.16"/>
- </edge>
- <edge id="37973572#2" from="30406599" to="444026884" priority="7" type="highway.secondary">
- <lane id="37973572#2_0" index="0" speed="27.78" length="0.28" shape="765.40,1292.30 765.16,1292.44"/>
- <lane id="37973572#2_1" index="1" speed="27.78" length="0.28" shape="763.73,1289.46 763.49,1289.60"/>
- </edge>
- <edge id="37973572#3" from="444026884" to="410296508" priority="7" type="highway.secondary">
- <lane id="37973572#3_0" index="0" speed="27.78" length="78.49" shape="748.89,1301.97 681.08,1341.52"/>
- <lane id="37973572#3_1" index="1" speed="27.78" length="78.49" shape="747.23,1299.12 679.42,1338.67"/>
- </edge>
- <edge id="37973572#4" from="410296508" to="552842254" priority="7" type="highway.secondary" shape="674.29,1339.75 534.54,1418.69 474.12,1453.45 452.00,1466.18">
- <lane id="37973572#4_0" index="0" speed="27.78" length="243.09" shape="672.71,1346.33 536.98,1423.00 476.59,1457.74 461.40,1466.48"/>
- <lane id="37973572#4_1" index="1" speed="27.78" length="243.09" shape="671.08,1343.46 535.35,1420.13 474.94,1454.88 459.75,1463.62"/>
- </edge>
- <edge id="37973572#5" from="552842254" to="356693794" priority="7" type="highway.secondary" shape="452.00,1466.18 377.57,1508.39 273.02,1566.65">
- <lane id="37973572#5_0" index="0" speed="27.78" length="203.19" shape="452.62,1471.51 380.01,1512.70 275.43,1570.97"/>
- <lane id="37973572#5_1" index="1" speed="27.78" length="203.19" shape="451.00,1468.64 378.38,1509.82 273.82,1568.09"/>
- </edge>
- <edge id="38027102#0" from="446766148" to="477486717" priority="5" type="highway.unclassified" shape="58.25,2228.62 68.43,2222.75 120.25,2192.87 169.69,2164.36 217.58,2136.74 225.76,2132.02 231.01,2129.00 282.69,2099.19 326.97,2073.66 342.28,2064.84 353.73,2058.24 416.23,2022.19 477.57,1986.83 493.65,1977.56 504.35,1971.39">
- <lane id="38027102#0_0" index="0" speed="22.22" length="510.06" shape="57.43,2227.19 67.60,2221.32 119.43,2191.44 168.87,2162.93 216.76,2135.31 224.94,2130.59 230.19,2127.57 281.87,2097.76 326.14,2072.24 341.45,2063.41 352.91,2056.81 415.40,2020.77 476.75,1985.40 492.83,1976.13 499.29,1972.40"/>
- </edge>
- <edge id="38027102#1" from="477486717" to="728492366" priority="5" type="highway.unclassified" shape="504.35,1971.39 513.18,1966.30 551.77,1944.04 601.56,1915.35 606.61,1912.43">
- <lane id="38027102#1_0" index="0" speed="22.22" length="107.25" shape="507.78,1967.51 512.36,1964.87 550.95,1942.61 600.70,1913.94"/>
- </edge>
- <edge id="38027102#2" from="728492366" to="446766149" priority="5" type="highway.unclassified" shape="606.61,1912.43 611.61,1909.54 675.84,1872.51">
- <lane id="38027102#2_0" index="0" speed="22.22" length="67.96" shape="612.23,1907.28 671.11,1873.33"/>
- </edge>
- <edge id="38027665#0" from="446770956" to="477486719" priority="5" type="highway.unclassified" shape="0.00,2037.67 5.12,2034.88 130.26,1966.62 186.61,1935.87 242.04,1905.02 302.24,1871.38 405.54,1816.27">
- <lane id="38027665#0_0" index="0" speed="22.22" length="457.00" shape="-0.79,2036.22 4.33,2033.43 129.47,1965.17 185.82,1934.43 241.24,1903.58 301.44,1869.94 400.29,1817.20"/>
- </edge>
- <edge id="38027665#1" from="477486719" to="728492372" priority="5" type="highway.unclassified" shape="405.54,1816.27 509.20,1757.58 623.00,1698.07">
- <lane id="38027665#1_0" index="0" speed="22.22" length="234.92" shape="409.02,1812.41 508.39,1756.15 615.37,1700.20"/>
- </edge>
- <edge id="38027665#2" from="728492372" to="1232172714" priority="5" type="highway.unclassified" shape="623.00,1698.07 656.56,1678.98 661.41,1679.69">
- <lane id="38027665#2_0" index="0" speed="22.22" length="31.95" shape="629.09,1692.71 656.24,1677.26 656.95,1677.37"/>
- </edge>
- <edge id="38027665#3" from="1232172714" to="446770959" priority="5" type="highway.unclassified">
- <lane id="38027665#3_0" index="0" speed="22.22" length="28.31" shape="666.31,1678.74 694.32,1682.82"/>
- </edge>
- <edge id="38230510#0" from="250685721" to="450564002" priority="5" type="highway.unclassified" spreadType="center" shape="773.69,2484.93 778.63,2476.59 788.17,2469.73">
- <lane id="38230510#0_0" index="0" speed="22.22" length="8.48" shape="778.17,2477.37 778.63,2476.59 784.78,2472.17"/>
- </edge>
- <edge id="38230510#1" from="450564002" to="450564003" priority="5" type="highway.unclassified" spreadType="center" shape="788.17,2469.73 832.75,2446.63 915.66,2403.69 1075.99,2320.63 1160.22,2277.01">
- <lane id="38230510#1_0" index="0" speed="22.22" length="410.48" shape="791.52,2468.00 832.75,2446.63 915.66,2403.69 1075.99,2320.63 1156.00,2279.20"/>
- </edge>
- <edge id="38230510#2" from="450564003" to="1545661417" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="38230510#2_0" index="0" speed="22.22" length="119.43" shape="1164.43,2274.78 1269.91,2218.76"/>
- </edge>
- <edge id="38318373#0" from="1373642446" to="314636763" priority="1" type="highway.cycleway" shape="1632.17,2615.09 1619.47,2601.21 1540.45,2451.07 1396.03,2172.61">
- <lane id="38318373#0_0" index="0" allow="bicycle" speed="5.56" length="497.85" shape="1630.95,2616.20 1618.11,2602.16 1538.99,2451.83 1396.75,2177.58"/>
- </edge>
- <edge id="38318373#1" from="314636763" to="250685829" priority="1" type="highway.cycleway">
- <lane id="38318373#1_0" index="0" allow="bicycle" speed="5.56" length="1.93" shape="1394.11,2173.45 1392.41,2172.53"/>
- </edge>
- <edge id="38319546#0" from="1257054127" to="1257054074" priority="1" type="highway.cycleway">
- <lane id="38319546#0_0" index="0" allow="bicycle" speed="5.56" length="0.25" shape="1360.51,1971.78 1360.40,1971.55"/>
- </edge>
- <edge id="38319546#1" from="1257054074" to="1257054205" priority="1" type="highway.cycleway">
- <lane id="38319546#1_0" index="0" allow="bicycle" speed="5.56" length="2.29" shape="1357.04,1964.93 1355.98,1962.90"/>
- </edge>
- <edge id="38319546#2" from="1257054205" to="1257054172" priority="1" type="highway.cycleway">
- <lane id="38319546#2_0" index="0" allow="bicycle" speed="5.56" length="6.34" shape="1354.81,1960.68 1352.02,1954.99"/>
- </edge>
- <edge id="38319546#3" from="1257054172" to="452425486" priority="1" type="highway.cycleway">
- <lane id="38319546#3_0" index="0" allow="bicycle" speed="5.56" length="1.79" shape="1349.13,1949.45 1348.31,1947.87"/>
- </edge>
- <edge id="38319546#4" from="452425486" to="1257054178" priority="1" type="highway.cycleway" shape="1349.06,1945.73 1346.02,1939.01 1347.29,1934.31 1343.04,1925.34">
- <lane id="38319546#4_0" index="0" allow="bicycle" speed="5.56" length="13.94" shape="1346.19,1943.38 1344.28,1939.15 1345.54,1934.46 1343.64,1930.45"/>
- </edge>
- <edge id="38319546#5" from="1257054178" to="452425487" priority="1" type="highway.cycleway">
- <lane id="38319546#5_0" index="0" allow="bicycle" speed="5.56" length="50.00" shape="1339.42,1921.88 1316.67,1877.36"/>
- </edge>
- <edge id="38319546#6" from="452425487" to="452425488" priority="1" type="highway.cycleway">
- <lane id="38319546#6_0" index="0" allow="bicycle" speed="5.56" length="71.00" shape="1312.29,1868.81 1279.75,1805.70"/>
- </edge>
- <edge id="38319546#7" from="452425488" to="733663096" priority="1" type="highway.cycleway">
- <lane id="38319546#7_0" index="0" allow="bicycle" speed="5.56" length="44.26" shape="1275.35,1797.27 1254.67,1758.14"/>
- </edge>
- <edge id="38319546#8" from="733663096" to="452425489" priority="1" type="highway.cycleway">
- <lane id="38319546#8_0" index="0" allow="bicycle" speed="5.56" length="7.02" shape="1248.87,1745.98 1245.99,1739.57"/>
- </edge>
- <edge id="38319547" from="452425489" to="452425490" priority="1" type="highway.cycleway">
- <lane id="38319547_0" index="0" allow="bicycle" speed="5.56" length="31.97" shape="1245.77,1736.13 1255.14,1705.57"/>
- </edge>
- <edge id="38319548#0" from="452425490" to="452425491" priority="1" type="highway.cycleway">
- <lane id="38319548#0_0" index="0" allow="bicycle" speed="5.56" length="32.02" shape="1260.21,1702.12 1288.38,1686.89"/>
- </edge>
- <edge id="38319548#1" from="452425491" to="452425493" priority="1" type="highway.cycleway">
- <lane id="38319548#1_0" index="0" allow="bicycle" speed="5.56" length="75.63" shape="1293.93,1683.87 1360.34,1647.67"/>
- </edge>
- <edge id="38319548#10" from="1669480280" to="1669480279" priority="1" type="highway.cycleway" shape="1469.16,1575.47 1460.35,1558.69 1456.23,1559.65">
- <lane id="38319548#10_0" index="0" allow="bicycle" speed="5.56" length="13.88" shape="1465.49,1572.03 1459.48,1560.59 1458.55,1560.80"/>
- </edge>
- <edge id="38319548#11" from="1669480279" to="1168929659" priority="1" type="highway.cycleway" shape="1456.23,1559.65 1452.33,1560.55 1196.81,1084.49 1192.17,1077.69">
- <lane id="38319548#11_0" index="0" allow="bicycle" speed="5.56" length="549.13" shape="1454.48,1561.74 1451.47,1562.44 1195.35,1085.27 1192.82,1081.57"/>
- </edge>
- <edge id="38319548#12" from="1168929659" to="951739684" priority="1" type="highway.cycleway">
- <lane id="38319548#12_0" index="0" allow="bicycle" speed="5.56" length="14.86" shape="1189.25,1076.43 1180.64,1064.32"/>
- </edge>
- <edge id="38319548#13" from="951739684" to="951739649" priority="1" type="highway.cycleway">
- <lane id="38319548#13_0" index="0" allow="bicycle" speed="5.56" length="11.21" shape="1177.02,1058.56 1171.69,1048.70"/>
- </edge>
- <edge id="38319548#14" from="951739649" to="1168929546" priority="1" type="highway.cycleway">
- <lane id="38319548#14_0" index="0" allow="bicycle" speed="5.56" length="12.09" shape="1168.65,1043.05 1162.97,1032.37"/>
- </edge>
- <edge id="38319548#15" from="1168929546" to="2081499948" priority="1" type="highway.cycleway">
- <lane id="38319548#15_0" index="0" allow="bicycle" speed="5.56" length="7.89" shape="1159.95,1026.66 1156.31,1019.66"/>
- </edge>
- <edge id="38319548#16" from="2081499948" to="1780381201" priority="1" type="highway.cycleway" shape="1155.52,1014.57 848.91,424.48 845.42,406.05 837.59,390.48 822.77,361.38 814.44,346.36 802.31,326.56 794.70,308.53 781.87,286.40">
- <lane id="38319548#16_0" index="0" allow="bicycle" speed="5.56" length="814.53" shape="1151.86,1011.09 847.34,425.03 843.84,406.59 836.12,391.22 821.30,362.13 812.99,347.16 800.90,327.42 793.18,309.17 780.44,287.22"/>
- </edge>
- <edge id="38319548#2" from="452425493" to="1669480287" priority="1" type="highway.cycleway">
- <lane id="38319548#2_0" index="0" allow="bicycle" speed="5.56" length="73.95" shape="1365.91,1644.71 1431.58,1610.71"/>
- </edge>
- <edge id="38319548#3" from="1669480287" to="1669480286" priority="1" type="highway.cycleway">
- <lane id="38319548#3_0" index="0" allow="bicycle" speed="5.56" length="7.14" shape="1437.43,1607.69 1443.77,1604.40"/>
- </edge>
- <edge id="38319548#4" from="1669480286" to="1726394727" priority="1" type="highway.cycleway">
- <lane id="38319548#4_0" index="0" allow="bicycle" speed="5.56" length="5.26" shape="1447.58,1602.43 1452.26,1600.01"/>
- </edge>
- <edge id="38319548#5" from="1726394727" to="1669480284" priority="1" type="highway.cycleway">
- <lane id="38319548#5_0" index="0" allow="bicycle" speed="5.56" length="4.52" shape="1454.44,1598.89 1458.46,1596.81"/>
- </edge>
- <edge id="38319548#6" from="1669480284" to="452425497" priority="1" type="highway.cycleway">
- <lane id="38319548#6_0" index="0" allow="bicycle" speed="5.56" length="1.38" shape="1462.94,1594.49 1464.17,1593.85"/>
- </edge>
- <edge id="38319548#7" from="452425497" to="1669480283" priority="1" type="highway.cycleway">
- <lane id="38319548#7_0" index="0" allow="bicycle" speed="5.56" length="4.20" shape="1468.37,1591.68 1472.08,1589.73"/>
- </edge>
- <edge id="38319548#8" from="1669480283" to="1168929661" priority="1" type="highway.cycleway" shape="1472.85,1591.19 1476.43,1589.31 1473.76,1584.23">
- <lane id="38319548#8_0" index="0" allow="bicycle" speed="5.56" length="1.41" shape="1473.69,1588.88 1474.20,1588.61 1473.81,1587.87"/>
- </edge>
- <edge id="38319548#9" from="1168929661" to="1669480280" priority="1" type="highway.cycleway">
- <lane id="38319548#9_0" index="0" allow="bicycle" speed="5.56" length="0.43" shape="1470.11,1580.83 1469.91,1580.45"/>
- </edge>
- <edge id="38319549#0" from="452425490" to="1719213141" priority="1" type="highway.cycleway">
- <lane id="38319549#0_0" index="0" allow="bicycle" speed="5.56" length="2.32" shape="1253.09,1702.38 1252.02,1700.32"/>
- </edge>
- <edge id="38319549#1" from="1719213141" to="1719213140" priority="1" type="highway.cycleway">
- <lane id="38319549#1_0" index="0" allow="bicycle" speed="5.56" length="9.34" shape="1249.12,1694.81 1244.78,1686.54"/>
- </edge>
- <edge id="38319549#2" from="1719213140" to="452425499" priority="1" type="highway.cycleway" shape="1244.80,1683.03 1239.65,1673.53 1206.87,1665.88">
- <lane id="38319549#2_0" index="0" allow="bicycle" speed="5.56" length="38.28" shape="1241.84,1681.05 1238.55,1674.97 1208.00,1667.83"/>
- </edge>
- <edge id="38319550#0" from="452425499" to="452425500" priority="1" type="highway.cycleway">
- <lane id="38319550#0_0" index="0" allow="bicycle" speed="5.56" length="65.03" shape="1204.71,1665.21 1176.17,1606.78"/>
- </edge>
- <edge id="38319550#1" from="452425500" to="452425501" priority="1" type="highway.cycleway">
- <lane id="38319550#1_0" index="0" allow="bicycle" speed="5.56" length="6.85" shape="1173.33,1601.20 1170.11,1595.15"/>
- </edge>
- <edge id="38319550#10" from="719463795" to="1780219371" priority="1" type="highway.cycleway">
- <lane id="38319550#10_0" index="0" allow="bicycle" speed="5.56" length="111.17" shape="904.32,1106.62 853.15,1007.93"/>
- </edge>
- <edge id="38319550#11" from="1780219371" to="1719213509" priority="1" type="highway.cycleway" shape="852.00,1002.12 845.76,990.08 845.12,983.10 843.32,976.39 840.35,971.51">
- <lane id="38319550#11_0" index="0" allow="bicycle" speed="5.56" length="25.87" shape="848.69,999.31 844.15,990.55 843.48,983.25 841.79,977.05 840.62,975.12"/>
- </edge>
- <edge id="38319550#12" from="1719213509" to="1719213668" priority="1" type="highway.cycleway" shape="840.35,971.51 838.03,967.15 834.19,963.07 830.05,959.77 789.27,881.21">
- <lane id="38319550#12_0" index="0" allow="bicycle" speed="5.56" length="97.75" shape="837.29,969.26 836.68,968.12 832.99,964.20 828.75,960.84 789.29,884.81"/>
- </edge>
- <edge id="38319550#13" from="1719213668" to="719464017" priority="1" type="highway.cycleway" shape="789.27,881.21 732.62,772.05 728.49,766.77 725.19,766.66 692.38,700.17 688.67,677.73 689.20,660.83 692.98,650.11 691.89,648.12 686.64,638.49 681.96,641.40 672.27,647.45 660.80,654.60 652.67,658.18 631.56,539.77 629.59,461.09 633.99,420.60 640.93,380.90 652.35,318.90">
- <lane id="38319550#13_0" index="0" allow="bicycle" speed="5.56" length="652.08" shape="786.33,879.12 731.23,772.95 727.66,768.40 724.15,768.28 690.79,700.68 687.01,677.84 687.56,660.52 691.18,650.26 690.44,648.91 686.03,640.82 682.83,642.80 673.14,648.85 661.67,656.00 651.42,660.54 629.93,540.06 627.95,461.14 632.35,420.42 639.31,380.62 650.73,318.60"/>
- </edge>
- <edge id="38319550#14" from="719464017" to="650318340" priority="1" type="highway.cycleway">
- <lane id="38319550#14_0" index="0" allow="bicycle" speed="5.56" length="11.44" shape="650.72,318.64 652.51,307.34"/>
- </edge>
- <edge id="38319550#2" from="452425501" to="1780219365" priority="1" type="highway.cycleway" shape="1170.08,1591.58 1024.09,1306.64 973.33,1210.62 971.66,1209.51 969.63,1209.47 964.06,1212.25 961.74,1211.99 960.03,1210.51 959.00,1208.51">
- <lane id="38319550#2_0" index="0" allow="bicycle" speed="5.56" length="438.16" shape="1167.18,1589.54 1022.62,1307.39 972.07,1211.76 971.14,1211.15 970.00,1211.13 964.36,1213.95 961.04,1213.57 960.24,1212.87"/>
- </edge>
- <edge id="38319550#3" from="1780219365" to="452425502" priority="1" type="highway.cycleway">
- <lane id="38319550#3_0" index="0" allow="bicycle" speed="5.56" length="3.30" shape="955.45,1205.26 953.93,1202.33"/>
- </edge>
- <edge id="38319550#4" from="452425502" to="950640531" priority="1" type="highway.cycleway">
- <lane id="38319550#4_0" index="0" allow="bicycle" speed="5.56" length="2.36" shape="950.97,1196.62 949.88,1194.53"/>
- </edge>
- <edge id="38319550#5" from="950640531" to="767282288" priority="1" type="highway.cycleway">
- <lane id="38319550#5_0" index="0" allow="bicycle" speed="5.56" length="2.95" shape="948.27,1191.44 946.92,1188.82"/>
- </edge>
- <edge id="38319550#6" from="767282288" to="950640351" priority="1" type="highway.cycleway">
- <lane id="38319550#6_0" index="0" allow="bicycle" speed="5.56" length="2.99" shape="942.13,1179.56 940.75,1176.91"/>
- </edge>
- <edge id="38319550#7" from="950640351" to="719463587" priority="1" type="highway.cycleway">
- <lane id="38319550#7_0" index="0" allow="bicycle" speed="5.56" length="0.12" shape="939.11,1173.74 939.06,1173.63"/>
- </edge>
- <edge id="38319550#8" from="719463587" to="1780219332" priority="1" type="highway.cycleway">
- <lane id="38319550#8_0" index="0" allow="bicycle" speed="5.56" length="1.89" shape="936.10,1167.92 935.23,1166.25"/>
- </edge>
- <edge id="38319550#9" from="1780219332" to="719463795" priority="1" type="highway.cycleway">
- <lane id="38319550#9_0" index="0" allow="bicycle" speed="5.56" length="51.20" shape="930.86,1157.81 907.30,1112.36"/>
- </edge>
- <edge id="40196943" from="484282953" to="484282955" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="40196943_0" index="0" speed="22.22" length="92.38" shape="619.99,844.83 662.88,926.64"/>
- </edge>
- <edge id="40196944#0" from="484282948" to="484282955" priority="5" type="highway.unclassified">
- <lane id="40196944#0_0" index="0" speed="22.22" length="86.23" shape="575.96,945.09 660.95,930.54"/>
- </edge>
- <edge id="40196944#1" from="484282955" to="538265864" priority="5" type="highway.unclassified">
- <lane id="40196944#1_0" index="0" speed="22.22" length="71.30" shape="667.25,929.42 737.26,915.95"/>
- </edge>
- <edge id="42976405#0" from="438042369" to="950640558" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976405#0_0" index="0" speed="27.78" length="8.37" shape="924.32,1195.91 927.83,1203.51"/>
- <lane id="42976405#0_1" index="1" speed="27.78" length="8.37" shape="921.32,1197.29 924.84,1204.89"/>
- </edge>
- <edge id="42976405#1" from="950640558" to="446017747" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976405#1_0" index="0" speed="27.78" length="2.01" shape="929.25,1206.58 930.10,1208.40"/>
- <lane id="42976405#1_1" index="1" speed="27.78" length="2.01" shape="926.26,1207.96 927.10,1209.78"/>
- </edge>
- <edge id="42976405#2" from="446017747" to="1780219361" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976405#2_0" index="0" speed="27.78" length="2.92" shape="932.95,1214.23 934.29,1216.82"/>
- <lane id="42976405#2_1" index="1" speed="27.78" length="2.92" shape="930.02,1215.75 931.36,1218.34"/>
- </edge>
- <edge id="42976405#3" from="1780219361" to="438042386" priority="7" type="highway.secondary" spreadType="center" shape="935.02,1221.81 1013.09,1372.58 1018.47,1379.53 1025.01,1386.84 1032.79,1393.70 1039.86,1401.88 1047.05,1410.79 1053.52,1421.48 1059.36,1433.42 1063.65,1446.04 1066.94,1461.18 1069.18,1479.84 1175.97,1687.44">
- <lane id="42976405#3_0" index="0" speed="27.78" length="520.02" shape="938.70,1225.32 1014.49,1371.69 1019.78,1378.52 1026.24,1385.74 1033.88,1392.47 1041.11,1400.80 1048.33,1409.76 1054.93,1420.63 1060.85,1432.70 1065.21,1445.51 1068.55,1460.83 1070.78,1479.35 1176.05,1683.98"/>
- <lane id="42976405#3_1" index="1" speed="27.78" length="520.02" shape="935.76,1226.84 1011.69,1373.48 1017.17,1380.54 1023.78,1387.94 1031.70,1394.94 1038.61,1402.96 1045.77,1411.83 1052.11,1422.34 1057.88,1434.15 1062.09,1446.57 1065.33,1461.53 1067.58,1480.33 1173.11,1685.49"/>
- </edge>
- <edge id="42976406#0" from="438042367" to="446017742" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976406#0_0" index="0" speed="27.78" length="3.76" shape="903.83,1198.10 901.86,1194.90"/>
- <lane id="42976406#0_1" index="1" speed="27.78" length="3.76" shape="906.64,1196.37 904.67,1193.17"/>
- <lane id="42976406#0_2" index="2" speed="27.78" length="3.76" shape="909.45,1194.63 907.47,1191.43"/>
- </edge>
- <edge id="42976406#1" from="446017742" to="1780219343" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976406#1_0" index="0" speed="27.78" length="3.19" shape="898.51,1189.07 897.01,1186.26"/>
- <lane id="42976406#1_1" index="1" speed="27.78" length="3.19" shape="901.42,1187.52 899.92,1184.70"/>
- <lane id="42976406#1_2" index="2" speed="27.78" length="3.19" shape="904.34,1185.97 902.83,1183.15"/>
- </edge>
- <edge id="42976406#2" from="1780219343" to="1780219331" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976406#2_0" index="0" speed="27.78" length="155.32" shape="892.50,1177.79 819.49,1040.71"/>
- <lane id="42976406#2_1" index="1" speed="27.78" length="155.32" shape="895.42,1176.24 822.40,1039.15"/>
- <lane id="42976406#2_2" index="2" speed="27.78" length="155.32" shape="898.33,1174.69 825.31,1037.60"/>
- </edge>
- <edge id="42976406#3" from="1780219331" to="441236049" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976406#3_0" index="0" speed="27.78" length="1.72" shape="814.29,1030.98 813.48,1029.46"/>
- <lane id="42976406#3_1" index="1" speed="27.78" length="1.72" shape="817.20,1029.42 816.39,1027.90"/>
- <lane id="42976406#3_2" index="2" speed="27.78" length="1.72" shape="820.11,1027.86 819.30,1026.34"/>
- </edge>
- <edge id="42976406#4" from="441236049" to="441236060" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976406#4_0" index="0" speed="27.78" length="39.87" shape="805.37,1013.65 788.33,977.61"/>
- <lane id="42976406#4_1" index="1" speed="27.78" length="39.87" shape="808.35,1012.24 791.32,976.20"/>
- <lane id="42976406#4_2" index="2" speed="27.78" length="39.87" shape="811.34,1010.83 794.30,974.79"/>
- </edge>
- <edge id="42976406#5" from="441236060" to="444026895" priority="7" type="highway.secondary" spreadType="center">
- <lane id="42976406#5_0" index="0" speed="27.78" length="182.17" shape="783.95,968.71 699.29,807.40"/>
- <lane id="42976406#5_1" index="1" speed="27.78" length="182.17" shape="786.87,967.17 702.21,805.87"/>
- <lane id="42976406#5_2" index="2" speed="27.78" length="182.17" shape="789.79,965.64 705.13,804.33"/>
- </edge>
- <edge id="42976407#0" from="1096401708" to="538265860" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976407#0_0" index="0" speed="22.22" length="8.48" shape="717.57,773.34 724.40,778.36"/>
- </edge>
- <edge id="42976407#1" from="538265860" to="1624003172" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976407#1_0" index="0" speed="22.22" length="117.63" shape="724.87,778.91 779.46,883.10"/>
- </edge>
- <edge id="42976407#2" from="1624003172" to="1168929298" priority="5" type="highway.unclassified" spreadType="center" shape="780.92,885.89 821.31,962.97 822.13,965.73">
- <lane id="42976407#2_0" index="0" speed="22.22" length="81.66" shape="782.34,888.60 820.24,960.93"/>
- </edge>
- <edge id="42976408#0" from="1168929308" to="538265864" priority="5" type="highway.unclassified" spreadType="center" shape="781.15,985.59 774.80,980.42 741.65,916.79">
- <lane id="42976408#0_0" index="0" speed="22.22" length="68.19" shape="775.46,980.96 774.80,980.42 743.69,920.70"/>
- </edge>
- <edge id="42976408#1" from="538265864" to="538265866" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976408#1_0" index="0" speed="22.22" length="110.99" shape="739.15,912.03 687.64,813.72"/>
- </edge>
- <edge id="42976408#2" from="538265866" to="1096401706" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976408#2_0" index="0" speed="22.22" length="22.56" shape="687.48,813.26 683.42,791.07"/>
- </edge>
- <edge id="42976410#0" from="13929775" to="950640525" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976410#0_0" index="0" speed="22.22" length="2.93" shape="940.42,1192.58 941.72,1195.20"/>
- </edge>
- <edge id="42976410#1" from="950640525" to="443101912" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976410#1_0" index="0" speed="22.22" length="2.48" shape="943.30,1198.22 944.45,1200.42"/>
- </edge>
- <edge id="42976410#2" from="443101912" to="1780219377" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976410#2_0" index="0" speed="22.22" length="3.35" shape="947.35,1206.03 948.87,1209.01"/>
- </edge>
- <edge id="42976410#3" from="1780219377" to="443089069" priority="5" type="highway.unclassified" spreadType="center" shape="951.10,1213.37 952.15,1215.44 964.69,1232.74 999.28,1301.37 1023.38,1324.28 1042.35,1360.43 1046.10,1377.78 1050.87,1388.97 1083.48,1451.50 1090.94,1461.32 1098.55,1469.82 1111.16,1491.59 1116.16,1503.48 1118.52,1509.84 1121.74,1540.11 1154.02,1599.58">
- <lane id="42976410#3_0" index="0" speed="22.22" length="433.93" shape="953.59,1217.42 964.69,1232.74 999.28,1301.37 1023.38,1324.28 1042.35,1360.43 1046.10,1377.78 1050.87,1388.97 1083.48,1451.50 1090.94,1461.32 1098.55,1469.82 1111.16,1491.59 1116.16,1503.48 1118.52,1509.84 1121.74,1540.11 1152.57,1596.90"/>
- </edge>
- <edge id="42976410#4" from="443089069" to="250689290" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="42976410#4_0" index="0" speed="22.22" length="7.52" shape="1155.77,1602.34 1159.79,1608.70"/>
- </edge>
- <edge id="42976410#5" from="250689290" to="438042378" priority="5" type="highway.unclassified" spreadType="center" shape="1161.39,1611.23 1188.65,1665.77 1201.45,1681.53">
- <lane id="42976410#5_0" index="0" speed="22.22" length="73.51" shape="1162.75,1613.96 1188.65,1665.77 1198.48,1677.87"/>
- </edge>
- <edge id="43684741#0" from="552842256" to="561204538" priority="5" type="highway.unclassified">
- <lane id="43684741#0_0" index="0" speed="22.22" length="2.92" shape="706.91,1653.45 704.56,1651.71"/>
- </edge>
- <edge id="43684741#1" from="561204538" to="1232172723" priority="5" type="highway.unclassified">
- <lane id="43684741#1_0" index="0" speed="22.22" length="32.77" shape="700.04,1648.44 673.48,1629.25"/>
- </edge>
- <edge id="43684741#2" from="1232172723" to="1726380204" priority="5" type="highway.unclassified">
- <lane id="43684741#2_0" index="0" speed="22.22" length="21.33" shape="665.07,1623.17 647.79,1610.68"/>
- </edge>
- <edge id="43684741#3" from="1726380204" to="552842255" priority="5" type="highway.unclassified" shape="648.77,1609.36 582.08,1561.17 577.63,1557.95 465.58,1476.04">
- <lane id="43684741#3_0" index="0" speed="22.22" length="213.68" shape="641.18,1605.90 581.12,1562.50 576.66,1559.29 468.41,1480.15"/>
- </edge>
- <edge id="43684741#4" from="552842255" to="950640393" priority="5" type="highway.unclassified">
- <lane id="43684741#4_0" index="0" speed="22.22" length="1.34" shape="461.89,1475.40 460.80,1474.61"/>
- </edge>
- <edge id="43684741#5" from="950640393" to="552842254" priority="5" type="highway.unclassified">
- <lane id="43684741#5_0" index="0" speed="22.22" length="4.75" shape="458.07,1472.62 454.23,1469.83"/>
- </edge>
- <edge id="44104490" from="560472379" to="560472377" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="44104490_0" index="0" speed="22.22" length="107.33" shape="731.71,2032.24 826.42,1981.75"/>
- </edge>
- <edge id="44104491#0" from="956116503" to="560472377" priority="5" type="highway.unclassified">
- <lane id="44104491#0_0" index="0" speed="22.22" length="143.51" shape="762.65,1849.58 830.64,1975.96"/>
- </edge>
- <edge id="44104491#1" from="560472377" to="560472378" priority="5" type="highway.unclassified">
- <lane id="44104491#1_0" index="0" speed="22.22" length="11.88" shape="833.56,1981.62 838.82,1992.27"/>
- </edge>
- <edge id="44641744#0" from="445506215" to="427996792" priority="5" type="highway.unclassified" spreadType="center" shape="760.62,2257.65 777.52,2250.73 927.62,2171.67 952.40,2158.62 977.17,2145.57 1001.94,2132.52 1044.81,2109.95 1068.75,2092.94">
- <lane id="44641744#0_0" index="0" speed="22.22" length="336.06" shape="768.55,2254.40 777.52,2250.73 927.62,2171.67 952.40,2158.62 977.17,2145.57 1001.94,2132.52 1044.81,2109.95 1064.60,2095.89"/>
- </edge>
- <edge id="44641744#1" from="427996792" to="13929737" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="44641744#1_0" index="0" speed="22.22" length="242.67" shape="1074.22,2090.02 1288.25,1975.65"/>
- </edge>
- <edge id="44641745#0" from="445823604" to="948350595" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="44641745#0_0" index="0" speed="22.22" length="3.38" shape="763.73,2291.39 760.36,2291.17"/>
- </edge>
- <edge id="44641745#1" from="948350595" to="948350715" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="44641745#1_0" index="0" speed="22.22" length="2.73" shape="758.37,2291.05 755.65,2290.89"/>
- </edge>
- <edge id="44641745#2" from="948350715" to="243489891" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="44641745#2_0" index="0" speed="22.22" length="0.23" shape="751.53,2290.62 751.30,2290.61"/>
- </edge>
- <edge id="44738605#0" from="1261880295" to="438042372" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="44738605#0_0" index="0" speed="22.22" length="6.82" shape="1294.61,1670.31 1289.95,1675.29"/>
- </edge>
- <edge id="44738605#1" from="438042372" to="1719213141" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="44738605#1_0" index="0" speed="22.22" length="32.15" shape="1284.63,1679.49 1256.23,1694.57"/>
- </edge>
- <edge id="44738605#2" from="1719213141" to="438042373" priority="6" type="highway.secondary_link" spreadType="center">
- <lane id="44738605#2_0" index="0" speed="22.22" length="2.71" shape="1247.83,1699.03 1245.44,1700.30"/>
- </edge>
- <edge id="58770723#0" from="443089072" to="443089071" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="58770723#0_0" index="0" speed="22.22" length="75.82" shape="1303.68,1537.90 1235.99,1572.06"/>
- </edge>
- <edge id="58770723#1" from="443089071" to="452425500" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="58770723#1_0" index="0" speed="22.22" length="56.40" shape="1230.45,1574.90 1180.43,1600.95"/>
- </edge>
- <edge id="58770723#2" from="452425500" to="250689290" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="58770723#2_0" index="0" speed="22.22" length="9.03" shape="1171.99,1605.45 1164.06,1609.78"/>
- </edge>
- <edge id="58770724" from="252417190" to="443089070" priority="5" type="highway.unclassified" spreadType="center" shape="1300.74,1525.44 1363.56,1490.71 1371.35,1486.40">
- <lane id="58770724_0" index="0" speed="22.22" length="74.53" shape="1303.41,1523.96 1363.56,1490.71 1368.64,1487.90"/>
- </edge>
- <edge id="58770725#0" from="435668521" to="248913142" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#0_0" index="0" speed="13.89" length="73.16" shape="1480.34,1872.78 1446.76,1807.79"/>
- </edge>
- <edge id="58770725#1" from="248913142" to="248913133" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#1_0" index="0" speed="13.89" length="70.55" shape="1442.37,1799.31 1409.96,1736.65"/>
- </edge>
- <edge id="58770725#2" from="248913133" to="733663093" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#2_0" index="0" speed="13.89" length="72.71" shape="1405.58,1728.19 1372.18,1663.60"/>
- </edge>
- <edge id="58770725#3" from="733663093" to="452425493" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#3_0" index="0" speed="13.89" length="3.70" shape="1367.81,1655.14 1366.11,1651.85"/>
- </edge>
- <edge id="58770725#4" from="452425493" to="252417189" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#4_0" index="0" speed="13.89" length="2.42" shape="1361.73,1643.38 1360.62,1641.23"/>
- </edge>
- <edge id="58770725#5" from="252417189" to="443089072" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#5_0" index="0" speed="13.89" length="98.71" shape="1353.22,1626.91 1307.88,1539.24"/>
- </edge>
- <edge id="58770725#6" from="443089072" to="252417190" priority="4" type="highway.residential" spreadType="center">
- <lane id="58770725#6_0" index="0" speed="13.89" length="6.24" shape="1305.02,1533.72 1302.16,1528.18"/>
- </edge>
- <edge id="58770833" from="443089066" to="1168929295" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="58770833_0" index="0" speed="22.22" length="65.01" shape="1191.51,1147.59 1160.41,1090.51"/>
- </edge>
- <edge id="58770836" from="443089065" to="443089066" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="58770836_0" index="0" speed="22.22" length="74.09" shape="1229.16,1218.52 1194.45,1153.07"/>
- </edge>
- <edge id="58770837#0" from="443089070" to="966132131" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="58770837#0_0" index="0" speed="22.22" length="107.72" shape="1369.89,1483.69 1318.70,1388.90"/>
- </edge>
- <edge id="58770837#1" from="966132131" to="443089065" priority="5" type="highway.unclassified" spreadType="center" shape="1317.22,1386.16 1286.75,1328.13 1263.53,1283.92 1230.62,1221.27">
- <lane id="58770837#1_0" index="0" speed="22.22" length="180.08" shape="1315.79,1383.44 1286.75,1328.13 1263.53,1283.92 1232.06,1224.01"/>
- </edge>
- <edge id="58779718#0" from="728492341" to="728492360" priority="5" type="highway.unclassified" shape="440.65,1871.28 523.68,1822.29 613.04,1774.73">
- <lane id="58779718#0_0" index="0" speed="22.22" length="185.62" shape="444.00,1867.38 522.85,1820.87 605.90,1776.67"/>
- </edge>
- <edge id="58779718#1" from="728492360" to="728492364" priority="5" type="highway.unclassified">
- <lane id="58779718#1_0" index="0" speed="22.22" length="62.11" shape="618.39,1773.94 679.68,1784.01"/>
- </edge>
- <edge id="58779719#0" from="728492348" to="728492361" priority="5" type="highway.unclassified">
- <lane id="58779719#0_0" index="0" speed="22.22" length="75.93" shape="536.85,1881.01 602.64,1843.10"/>
- </edge>
- <edge id="58779719#1" from="728492361" to="728492371" priority="5" type="highway.unclassified">
- <lane id="58779719#1_0" index="0" speed="22.22" length="55.92" shape="615.15,1839.89 670.53,1847.62"/>
- </edge>
- <edge id="59159259#0" from="733663076" to="1212941077" priority="5" type="highway.unclassified" spreadType="center" shape="848.02,1673.89 823.72,1677.57 737.87,1668.35 731.83,1665.57">
- <lane id="59159259#0_0" index="0" speed="22.22" length="94.15" shape="828.48,1676.85 823.72,1677.57 737.87,1668.35 735.15,1667.10"/>
- </edge>
- <edge id="59159259#1" from="1212941077" to="552842256" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="59159259#1_0" index="0" speed="22.22" length="8.04" shape="728.52,1664.05 721.22,1660.69"/>
- </edge>
- <edge id="59159260#0" from="733663131" to="733663093" priority="4" type="highway.residential">
- <lane id="59159260#0_0" index="0" speed="13.89" length="74.68" shape="1439.54,1624.42 1373.54,1659.37"/>
- </edge>
- <edge id="59159260#1" from="733663093" to="733663121" priority="4" type="highway.residential">
- <lane id="59159260#1_0" index="0" speed="13.89" length="75.73" shape="1368.00,1662.27 1300.78,1697.16"/>
- </edge>
- <edge id="59159260#2" from="733663121" to="733663096" priority="4" type="highway.residential" shape="1297.27,1697.13 1266.82,1714.10 1258.93,1742.39 1253.88,1753.13">
- <lane id="59159260#2_0" index="0" speed="13.89" length="63.22" shape="1295.28,1700.13 1268.22,1715.20 1260.52,1742.83 1259.01,1746.06"/>
- </edge>
- <edge id="59159260#3" from="733663096" to="733663089" priority="4" type="highway.residential">
- <lane id="59159260#3_0" index="0" speed="13.89" length="9.92" shape="1250.47,1756.88 1241.77,1761.65"/>
- </edge>
- <edge id="59159262#0" from="446766149" to="1457695393" priority="5" type="highway.unclassified">
- <lane id="59159262#0_0" index="0" speed="22.22" length="5.88" shape="679.38,1870.82 685.26,1870.76"/>
- </edge>
- <edge id="59159262#1" from="1457695393" to="733663082" priority="5" type="highway.unclassified">
- <lane id="59159262#1_0" index="0" speed="22.22" length="6.84" shape="695.76,1870.83 702.59,1870.99"/>
- </edge>
- <edge id="59159262#2" from="733663082" to="956116503" priority="5" type="highway.unclassified">
- <lane id="59159262#2_0" index="0" speed="22.22" length="50.11" shape="709.30,1869.39 754.01,1846.76"/>
- </edge>
- <edge id="59159262#3" from="956116503" to="1482088987" priority="5" type="highway.unclassified">
- <lane id="59159262#3_0" index="0" speed="22.22" length="4.53" shape="758.17,1844.66 762.20,1842.59"/>
- </edge>
- <edge id="59159262#4" from="1482088987" to="733663136" priority="5" type="highway.unclassified">
- <lane id="59159262#4_0" index="0" speed="22.22" length="144.23" shape="766.42,1840.42 894.77,1774.64"/>
- </edge>
- <edge id="59159266#0" from="733663116" to="1482088973" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="59159266#0_0" index="0" speed="22.22" length="143.96" shape="854.28,1696.35 726.93,1763.49"/>
- </edge>
- <edge id="59159266#1" from="1482088973" to="733663070" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="59159266#1_0" index="0" speed="22.22" length="3.09" shape="721.27,1766.48 718.53,1767.92"/>
- </edge>
- <edge id="69931595#0" from="445506216" to="733663136" priority="15" type="highway.unclassified|railway.tram">
- <lane id="69931595#0_0" index="0" speed="27.78" length="158.51" shape="973.95,1919.35 900.49,1778.89"/>
- </edge>
- <edge id="69931595#1" from="733663136" to="2017759588" priority="15" type="highway.unclassified|railway.tram">
- <lane id="69931595#1_0" index="0" speed="27.78" length="44.80" shape="896.11,1770.46 875.53,1730.67"/>
- </edge>
- <edge id="69931595#2" from="2017759588" to="733663116" priority="15" type="highway.unclassified|railway.tram">
- <lane id="69931595#2_0" index="0" speed="27.78" length="27.46" shape="871.07,1722.05 858.46,1697.66"/>
- </edge>
- <edge id="69931595#3" from="733663116" to="733663076" priority="15" type="highway.unclassified|railway.tram">
- <lane id="69931595#3_0" index="0" speed="27.78" length="17.63" shape="855.61,1692.15 847.51,1676.50"/>
- </edge>
- <edge id="75656628#0" from="254594415" to="543360161" priority="15" type="railway.subway" spreadType="center" shape="2575.84,1321.27 2198.20,1521.44 1596.40,1836.52">
- <lane id="75656628#0_0" index="0" allow="cityrail" speed="27.78" length="1101.96" shape="2575.84,1321.27 2198.20,1521.44 1600.61,1834.32"/>
- </edge>
- <edge id="75656628#1" from="543360161" to="946534458" priority="15" type="railway.subway" spreadType="center" shape="1596.40,1836.52 1538.28,1867.85 1510.47,1893.93 1493.32,1917.25 1480.36,1942.70 1474.75,1961.96 1465.38,1991.72 1460.65,2012.30 1458.71,2037.09 1457.12,2059.14 1458.82,2080.21 1465.85,2112.46 1476.44,2141.60 1514.47,2216.62 1569.81,2326.01 1596.25,2371.80 1624.53,2409.04 1652.38,2440.59 1687.76,2480.73 1714.80,2516.02 1737.28,2559.39 1750.26,2609.02 1752.24,2641.69">
- <lane id="75656628#1_0" index="0" allow="cityrail" speed="27.78" length="940.65" shape="1592.20,1838.79 1538.28,1867.85 1510.47,1893.93 1493.32,1917.25 1480.36,1942.70 1474.75,1961.96 1465.38,1991.72 1460.65,2012.30 1458.71,2037.09 1457.12,2059.14 1458.82,2080.21 1465.85,2112.46 1476.44,2141.60 1514.47,2216.62 1569.81,2326.01 1596.25,2371.80 1624.53,2409.04 1652.38,2440.59 1687.76,2480.73 1714.80,2516.02 1737.28,2559.39 1750.26,2609.02 1752.24,2641.69"/>
- </edge>
- <edge id="81096816#0" from="1168929272" to="2081499952" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81096816#0_0" index="0" speed="22.22" length="13.39" shape="1137.36,1045.01 1130.90,1033.28"/>
- </edge>
- <edge id="81096816#1" from="2081499952" to="443089068" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81096816#1_0" index="0" speed="22.22" length="32.50" shape="1126.32,1024.95 1110.64,996.49"/>
- </edge>
- <edge id="81096816#2" from="443089068" to="444026917" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81096816#2_0" index="0" speed="22.22" length="145.46" shape="1107.74,991.06 1040.99,861.82"/>
- </edge>
- <edge id="81096816#3" from="444026917" to="1624003199" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81096816#3_0" index="0" speed="22.22" length="96.72" shape="1038.07,856.21 993.28,770.48"/>
- </edge>
- <edge id="81096816#4" from="1624003199" to="538810722" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81096816#4_0" index="0" speed="22.22" length="120.49" shape="990.41,764.99 934.86,658.06"/>
- </edge>
- <edge id="81096816#5" from="538810722" to="1726380179" priority="5" type="highway.unclassified" spreadType="center" shape="934.86,658.06 873.23,542.32 820.60,440.63">
- <lane id="81096816#5_0" index="0" speed="22.22" length="245.63" shape="934.86,658.06 873.23,542.32 820.60,440.63"/>
- </edge>
- <edge id="81096816#6" from="1726380179" to="444026921" priority="5" type="highway.unclassified" spreadType="center" shape="820.60,440.63 770.84,344.78 750.94,307.38 741.26,288.18">
- <lane id="81096816#6_0" index="0" speed="22.22" length="171.86" shape="820.60,440.63 770.84,344.78 750.94,307.38 741.26,288.18"/>
- </edge>
- <edge id="81096822#0" from="452425497" to="1669480292" priority="1" type="highway.cycleway">
- <lane id="81096822#0_0" index="0" allow="bicycle" speed="5.56" length="247.17" shape="1472.79,1596.58 1587.33,1815.61"/>
- </edge>
- <edge id="81096822#1" from="1669480292" to="543360161" priority="1" type="highway.cycleway" shape="1587.31,1819.14 1590.94,1826.09 1592.52,1829.10 1595.43,1834.67 1596.40,1836.52">
- <lane id="81096822#1_0" index="0" allow="bicycle" speed="5.56" length="13.40" shape="1590.22,1821.13 1592.41,1825.33 1593.98,1828.33 1596.43,1833.01"/>
- </edge>
- <edge id="81096822#2" from="543360161" to="1268463825" priority="1" type="highway.cycleway" shape="1596.40,1836.52 1602.73,1848.68 1676.03,1992.80">
- <lane id="81096822#2_0" index="0" allow="bicycle" speed="5.56" length="172.26" shape="1599.32,1838.55 1604.19,1847.91 1677.50,1992.05"/>
- </edge>
- <edge id="81096844#0" from="443089061" to="248913142" priority="4" type="highway.residential">
- <lane id="81096844#0_0" index="0" speed="13.89" length="76.05" shape="1515.18,1767.66 1448.12,1803.52"/>
- </edge>
- <edge id="81096844#1" from="248913142" to="248913144" priority="4" type="highway.residential">
- <lane id="81096844#1_0" index="0" speed="13.89" length="75.53" shape="1442.57,1806.49 1375.96,1842.10"/>
- </edge>
- <edge id="81096844#2" from="248913144" to="452425487" priority="4" type="highway.residential">
- <lane id="81096844#2_0" index="0" speed="13.89" length="56.08" shape="1370.42,1845.07 1320.96,1871.51"/>
- </edge>
- <edge id="81096844#3" from="452425487" to="248913145" priority="4" type="highway.residential">
- <lane id="81096844#3_0" index="0" speed="13.89" length="9.42" shape="1312.49,1876.04 1304.18,1880.49"/>
- </edge>
- <edge id="81096855#0" from="945146413" to="945146437" priority="6" type="highway.tertiary" spreadType="center">
- <lane id="81096855#0_0" index="0" speed="22.22" length="99.17" shape="1425.82,1945.07 1471.70,2032.98"/>
- </edge>
- <edge id="81096855#1" from="945146437" to="2006433732" priority="6" type="highway.tertiary" spreadType="center" shape="1473.14,2035.72 1504.54,2095.89 1516.26,2119.06 1521.43,2129.12 1542.86,2170.96 1572.98,2228.34 1575.30,2232.76 1603.87,2287.18 1612.55,2303.71 1634.53,2345.59 1691.14,2453.43">
- <lane id="81096855#1_0" index="0" speed="22.22" length="468.04" shape="1474.59,2038.50 1504.54,2095.89 1516.26,2119.06 1521.43,2129.12 1542.86,2170.96 1572.98,2228.34 1575.30,2232.76 1603.87,2287.18 1612.55,2303.71 1634.53,2345.59 1691.14,2453.43"/>
- </edge>
- <edge id="81096860" from="443101936" to="945146437" priority="4" type="highway.residential" spreadType="center">
- <lane id="81096860_0" index="0" speed="13.89" length="163.03" shape="1620.61,1959.22 1475.89,2034.30"/>
- </edge>
- <edge id="81124939#0" from="945146612" to="1669480286" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1566.19,1826.94 1454.09,1613.77 1448.77,1603.67">
- <lane id="81124939#0_0" index="0" speed="27.78" length="247.48" shape="1564.73,1827.71 1452.63,1614.53 1449.54,1608.67"/>
- <lane id="81124939#0_1" index="1" speed="27.78" length="247.48" shape="1567.65,1826.17 1455.56,1613.00 1452.46,1607.13"/>
- </edge>
- <edge id="81124939#1" from="1669480286" to="1669480282" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="81124939#1_0" index="0" speed="27.78" length="2.72" shape="1445.08,1600.22 1443.81,1597.82"/>
- <lane id="81124939#1_1" index="1" speed="27.78" length="2.72" shape="1448.00,1598.68 1446.73,1596.28"/>
- </edge>
- <edge id="81124943#0" from="1185414550" to="2081499949" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="776.92,288.67 797.32,329.27 808.79,360.92 828.32,399.75 840.10,423.16 842.92,428.48 1011.80,746.99 1144.97,1002.12 1152.48,1016.31">
- <lane id="81124943#0_0" index="0" speed="27.78" length="814.30" shape="778.40,287.93 798.79,328.53 810.34,360.36 829.79,399.00 841.58,422.42 844.38,427.71 1013.26,746.22 1146.43,1001.36 1151.67,1011.24"/>
- <lane id="81124943#0_1" index="1" speed="27.78" length="814.30" shape="775.45,289.41 795.85,330.01 807.23,361.48 826.84,400.49 838.63,423.90 841.47,429.26 1010.34,747.77 1143.51,1002.88 1148.75,1012.79"/>
- </edge>
- <edge id="81124943#1" from="2081499949" to="1246731620" priority="15" type="highway.secondary|railway.tram" spreadType="center">
- <lane id="81124943#1_0" index="0" speed="27.78" length="8.20" shape="1154.64,1016.86 1158.47,1024.11"/>
- <lane id="81124943#1_1" index="1" speed="27.78" length="8.20" shape="1151.72,1018.40 1155.56,1025.66"/>
- </edge>
- <edge id="81124945" from="441266876" to="255227475" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81124945_0" index="0" speed="22.22" length="178.39" shape="1147.19,966.71 1302.96,879.77"/>
- </edge>
- <edge id="81394162#0" from="452446340" to="1257054092" priority="7" type="highway.secondary" spreadType="center">
- <lane id="81394162#0_0" index="0" speed="27.78" length="6.38" shape="1299.44,1954.85 1296.54,1949.17"/>
- <lane id="81394162#0_1" index="1" speed="27.78" length="6.38" shape="1302.38,1953.35 1299.48,1947.67"/>
- </edge>
- <edge id="81394162#1" from="1257054092" to="438042380" priority="7" type="highway.secondary" spreadType="center">
- <lane id="81394162#1_0" index="0" speed="27.78" length="175.69" shape="1292.16,1940.72 1210.38,1785.23"/>
- <lane id="81394162#1_1" index="1" speed="27.78" length="175.69" shape="1295.08,1939.18 1213.30,1783.69"/>
- </edge>
- <edge id="81394162#2" from="438042380" to="438042387" priority="7" type="highway.secondary" spreadType="center">
- <lane id="81394162#2_0" index="0" speed="27.78" length="23.40" shape="1207.55,1780.93 1198.02,1759.55"/>
- <lane id="81394162#2_1" index="1" speed="27.78" length="23.40" shape="1210.56,1779.58 1201.04,1758.21"/>
- </edge>
- <edge id="81394169#0" from="477486714" to="948350676" priority="15" type="railway.tram" spreadType="center" shape="666.99,2225.88 676.02,2231.66 684.67,2233.95 707.15,2236.98 723.18,2244.00 732.19,2250.82 738.76,2256.54">
- <lane id="81394169#0_0" index="0" allow="cityrail" speed="27.78" length="71.78" shape="675.04,2231.04 676.02,2231.66 684.67,2233.95 707.15,2236.98 723.18,2244.00 732.19,2250.82 739.87,2257.51"/>
- </edge>
- <edge id="81394169#1" from="948350676" to="948350615" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394169#1_0" index="0" allow="cityrail" speed="27.78" length="0.26" shape="742.63,2261.73 742.78,2261.94"/>
- </edge>
- <edge id="81394169#2" from="948350615" to="948350693" priority="15" type="railway.tram" spreadType="center" shape="743.31,2262.65 746.65,2266.20 748.62,2269.96">
- <lane id="81394169#2_0" index="0" allow="cityrail" speed="27.78" length="0.69" shape="746.54,2266.09 746.65,2266.20 746.90,2266.68"/>
- </edge>
- <edge id="81394169#3" from="948350693" to="948350707" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394169#3_0" index="0" allow="cityrail" speed="27.78" length="2.45" shape="749.19,2270.85 750.51,2272.92"/>
- </edge>
- <edge id="81394169#4" from="948350707" to="948350621" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394169#4_0" index="0" allow="cityrail" speed="27.78" length="8.72" shape="751.19,2273.98 753.79,2282.31"/>
- </edge>
- <edge id="81394169#5" from="948350621" to="948350715" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394169#5_0" index="0" allow="cityrail" speed="27.78" length="3.15" shape="754.51,2287.42 754.94,2290.54"/>
- </edge>
- <edge id="81394169#6" from="948350715" to="948350636" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394169#6_0" index="0" allow="cityrail" speed="27.78" length="11.91" shape="755.35,2294.22 756.61,2306.06"/>
- </edge>
- <edge id="81394188#0" from="948350565" to="948350673" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394188#0_0" index="0" allow="cityrail" speed="27.78" length="14.71" shape="733.16,2322.12 731.36,2307.52"/>
- </edge>
- <edge id="81394188#1" from="948350673" to="724002953" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394188#1_0" index="0" allow="cityrail" speed="27.78" length="2.71" shape="729.32,2292.01 728.93,2289.33"/>
- </edge>
- <edge id="81394188#2" from="724002953" to="1252777712" priority="15" type="railway.tram" spreadType="center">
- <lane id="81394188#2_0" index="0" allow="cityrail" speed="27.78" length="7.30" shape="728.03,2283.05 727.32,2275.78"/>
- </edge>
- <edge id="81394188#3" from="1252777712" to="950640428" priority="15" type="railway.tram" spreadType="center" shape="727.32,2275.78 726.60,2268.39 724.49,2259.86 720.65,2250.49 714.85,2245.90 708.24,2243.30 696.57,2241.33 686.05,2240.70">
- <lane id="81394188#3_0" index="0" allow="cityrail" speed="27.78" length="63.97" shape="727.57,2278.32 726.60,2268.39 724.49,2259.86 720.65,2250.49 714.85,2245.90 708.24,2243.30 696.57,2241.33 687.84,2240.81"/>
- </edge>
- <edge id="81394188#4" from="950640428" to="477486714" priority="15" type="railway.tram" spreadType="center" shape="686.05,2240.70 673.37,2235.03 666.99,2225.88">
- <lane id="81394188#4_0" index="0" allow="cityrail" speed="27.78" length="8.58" shape="679.75,2237.88 673.37,2235.03 672.46,2233.72"/>
- </edge>
- <edge id="81394192#0" from="446017735" to="1228499918" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#0_0" index="0" speed="22.22" length="68.69" shape="727.00,2223.55 717.09,2155.57"/>
- </edge>
- <edge id="81394192#1" from="1228499918" to="1228499945" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#1_0" index="0" speed="22.22" length="99.05" shape="715.72,2146.17 701.43,2048.16"/>
- </edge>
- <edge id="81394192#10" from="1726380193" to="446017740" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#10_0" index="0" speed="22.22" length="102.41" shape="735.80,1420.13 749.64,1318.65"/>
- </edge>
- <edge id="81394192#11" from="446017740" to="950640474" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#11_0" index="0" speed="22.22" length="0.47" shape="751.21,1309.44 751.31,1308.98"/>
- </edge>
- <edge id="81394192#12" from="950640474" to="444026884" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#12_0" index="0" speed="22.22" length="5.02" shape="752.25,1304.39 753.27,1299.48"/>
- </edge>
- <edge id="81394192#13" from="444026884" to="950640361" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#13_0" index="0" speed="22.22" length="11.58" shape="754.64,1292.89 756.98,1281.55"/>
- </edge>
- <edge id="81394192#14" from="950640361" to="446017739" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#14_0" index="0" speed="22.22" length="0.47" shape="758.06,1276.29 758.16,1275.83"/>
- </edge>
- <edge id="81394192#15" from="446017739" to="444026886" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#15_0" index="0" speed="22.22" length="171.40" shape="759.86,1266.05 783.32,1096.26"/>
- </edge>
- <edge id="81394192#2" from="1228499945" to="446766149" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#2_0" index="0" speed="22.22" length="165.51" shape="700.52,2041.86 676.66,1878.08"/>
- </edge>
- <edge id="81394192#3" from="446766149" to="728492371" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#3_0" index="0" speed="22.22" length="13.90" shape="675.34,1867.92 673.84,1854.10"/>
- </edge>
- <edge id="81394192#4" from="728492371" to="728492364" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#4_0" index="0" speed="22.22" length="54.72" shape="674.04,1844.99 681.86,1790.83"/>
- </edge>
- <edge id="81394192#5" from="728492364" to="446770959" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#5_0" index="0" speed="22.22" length="92.77" shape="683.22,1781.42 696.47,1689.60"/>
- </edge>
- <edge id="81394192#6" from="446770959" to="552842257" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#6_0" index="0" speed="22.22" length="18.93" shape="697.83,1680.20 700.54,1661.47"/>
- </edge>
- <edge id="81394192#7" from="552842257" to="561204538" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#7_0" index="0" speed="22.22" length="2.96" shape="702.62,1654.34 704.11,1651.78"/>
- </edge>
- <edge id="81394192#8" from="561204538" to="1726380195" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#8_0" index="0" speed="22.22" length="198.53" shape="705.91,1644.08 732.35,1447.32"/>
- </edge>
- <edge id="81394192#9" from="1726380195" to="1726380193" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81394192#9_0" index="0" speed="22.22" length="15.29" shape="732.96,1442.36 734.87,1427.18"/>
- </edge>
- <edge id="81394200#0" from="948350565" to="948350597" priority="15" type="highway.tertiary|railway.tram" shape="733.19,2322.32 734.35,2303.49 735.25,2298.36 735.50,2295.41">
- <lane id="81394200#0_0" index="0" speed="27.78" length="19.71" shape="731.54,2322.22 732.70,2303.39 732.85,2302.55"/>
- </edge>
- <edge id="81394200#1" from="948350597" to="948350640" priority="15" type="highway.tertiary|railway.tram" shape="735.50,2295.41 738.24,2288.29 740.54,2284.12 744.96,2278.54">
- <lane id="81394200#1_0" index="0" speed="27.78" length="2.38" shape="736.81,2287.49 737.95,2285.40"/>
- </edge>
- <edge id="81394200#2" from="948350640" to="948350707" priority="15" type="highway.tertiary|railway.tram">
- <lane id="81394200#2_0" index="0" speed="27.78" length="2.28" shape="747.20,2274.86 749.04,2273.51"/>
- </edge>
- <edge id="81523316" from="948350705" to="948350607" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="777.15,2274.14 767.32,2281.35 763.17,2285.56">
- <lane id="81523316_0" index="0" speed="27.78" length="8.39" shape="778.13,2275.47 768.96,2282.19"/>
- <lane id="81523316_1" index="1" speed="27.78" length="8.39" shape="757.50,2286.50 753.14,2289.70"/>
- </edge>
- <edge id="81523330#0" from="948350630" to="1252777720" priority="15" type="highway.primary|railway.tram">
- <lane id="81523330#0_0" index="0" speed="27.78" length="1.33" shape="771.84,2256.22 773.11,2255.55"/>
- <lane id="81523330#0_1" index="1" speed="27.78" length="1.33" shape="773.39,2259.14 774.47,2258.57"/>
- </edge>
- <edge id="81523330#1" from="1252777720" to="950094425" priority="15" type="highway.primary|railway.tram" shape="776.84,2259.18 801.79,2245.97 1073.15,2102.39">
- <lane id="81523330#1_0" index="0" speed="27.78" length="328.65" shape="775.85,2254.10 799.48,2241.60 1066.34,2100.39"/>
- <lane id="81523330#1_1" index="1" speed="27.78" length="328.65" shape="777.39,2257.02 801.02,2244.52 1067.89,2103.31"/>
- </edge>
- <edge id="81523330#2" from="950094425" to="1263725264" priority="15" type="highway.primary|railway.tram">
- <lane id="81523330#2_0" index="0" speed="27.78" length="1.50" shape="1070.94,2097.96 1072.28,2097.29"/>
- <lane id="81523330#2_1" index="1" speed="27.78" length="1.50" shape="1072.41,2100.91 1073.75,2100.24"/>
- </edge>
- <edge id="81523330#3" from="1263725264" to="1243159116" priority="15" type="highway.primary|railway.tram">
- <lane id="81523330#3_0" index="0" speed="27.78" length="2.20" shape="1075.91,2095.37 1076.85,2094.87"/>
- <lane id="81523330#3_1" index="1" speed="27.78" length="2.20" shape="1077.45,2098.29 1080.40,2096.73"/>
- </edge>
- <edge id="81523330#4" from="1243159116" to="950094494" priority="15" type="highway.primary|railway.tram" shape="1082.77,2097.34 1111.32,2082.24 1273.52,1996.44 1294.72,1985.59">
- <lane id="81523330#4_0" index="0" speed="27.78" length="237.88" shape="1079.13,2093.67 1109.01,2077.87 1271.21,1992.07 1289.55,1982.68"/>
- <lane id="81523330#4_1" index="1" speed="27.78" length="237.88" shape="1080.67,2096.58 1110.55,2080.78 1272.75,1994.98 1291.05,1985.61"/>
- </edge>
- <edge id="81523332#0" from="435668516" to="452425486" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81523332#0_0" index="0" speed="22.22" length="5.29" shape="1340.40,1951.05 1344.91,1948.28"/>
- </edge>
- <edge id="81523332#1" from="452425486" to="435668513" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81523332#1_0" index="0" speed="22.22" length="60.39" shape="1353.35,1943.44 1406.61,1914.97"/>
- </edge>
- <edge id="81523343" from="428097664" to="320879142" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81523343_0" index="0" speed="22.22" length="30.21" shape="1349.76,1980.88 1323.16,1995.18"/>
- </edge>
- <edge id="81547611" from="1168929388" to="1246731541" priority="15" type="railway.tram" spreadType="center">
- <lane id="81547611_0" index="0" allow="cityrail" speed="27.78" length="4.22" shape="1192.60,1032.86 1196.36,1030.93"/>
- </edge>
- <edge id="81672207#0" from="951739771" to="438042379" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81672207#0_0" index="0" speed="22.22" length="16.87" shape="1143.21,1662.57 1127.25,1657.08"/>
- </edge>
- <edge id="81672207#1" from="438042379" to="1719223322" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="81672207#1_0" index="0" speed="22.22" length="101.03" shape="1122.96,1652.07 1075.84,1562.70"/>
- </edge>
- <edge id="81672207#2" from="1719223322" to="538265870" priority="5" type="highway.unclassified" spreadType="center" shape="1073.63,1558.52 1027.08,1468.30 1018.84,1457.01 1008.66,1439.13 1001.11,1419.10 914.26,1251.43 903.83,1226.83">
- <lane id="81672207#2_0" index="0" speed="22.22" length="364.97" shape="1071.45,1554.29 1027.08,1468.30 1018.84,1457.01 1008.66,1439.13 1001.11,1419.10 914.26,1251.43 905.12,1229.86"/>
- </edge>
- <edge id="81672209" from="951739458" to="1457699222" priority="2" type="highway.service">
- <lane id="81672209_0" index="0" allow="delivery" speed="5.56" length="51.26" shape="849.45,1323.71 894.94,1300.07"/>
- </edge>
- <edge id="81672213" from="951739420" to="951739568" priority="2" type="highway.service">
- <lane id="81672213_0" index="0" allow="delivery" speed="5.56" length="45.55" shape="841.17,1308.35 881.19,1286.59"/>
- </edge>
- <edge id="81672214" from="951739766" to="951739549" priority="2" type="highway.service">
- <lane id="81672214_0" index="0" allow="delivery" speed="5.56" length="39.70" shape="833.42,1293.89 868.28,1274.90"/>
- </edge>
- <edge id="81672216#0" from="951739693" to="1457699220" priority="2" type="highway.service" shape="818.06,1275.29 820.39,1279.62 821.49,1281.69 823.20,1284.88">
- <lane id="81672216#0_0" index="0" allow="delivery" speed="5.56" length="2.91" shape="821.02,1277.30 821.84,1278.84 822.39,1279.87"/>
- </edge>
- <edge id="81672216#1" from="1457699220" to="951739766" priority="2" type="highway.service">
- <lane id="81672216#1_0" index="0" allow="delivery" speed="5.56" length="4.98" shape="826.87,1288.25 829.22,1292.64"/>
- </edge>
- <edge id="81672216#2" from="951739766" to="951739420" priority="2" type="highway.service">
- <lane id="81672216#2_0" index="0" allow="delivery" speed="5.56" length="6.90" shape="833.71,1301.01 836.96,1307.09"/>
- </edge>
- <edge id="81672216#3" from="951739420" to="951739458" priority="2" type="highway.service">
- <lane id="81672216#3_0" index="0" allow="delivery" speed="5.56" length="7.93" shape="841.45,1315.47 845.19,1322.45"/>
- </edge>
- <edge id="81672216#4" from="951739458" to="951739511" priority="2" type="highway.service">
- <lane id="81672216#4_0" index="0" allow="delivery" speed="5.56" length="7.35" shape="849.68,1330.83 853.15,1337.31"/>
- </edge>
- <edge id="81672216#5" from="951739511" to="1457699223" priority="2" type="highway.service" shape="853.92,1342.24 861.87,1357.10 915.18,1328.32 907.70,1314.17">
- <lane id="81672216#5_0" index="0" allow="delivery" speed="5.56" length="77.34" shape="857.63,1345.68 862.54,1354.86 912.95,1327.64 908.45,1319.13"/>
- </edge>
- <edge id="81672216#6" from="1457699223" to="1457699222" priority="2" type="highway.service">
- <lane id="81672216#6_0" index="0" allow="delivery" speed="5.56" length="7.25" shape="904.06,1310.72 900.73,1304.28"/>
- </edge>
- <edge id="81672216#7" from="1457699222" to="951739568" priority="2" type="highway.service" shape="900.01,1299.30 896.33,1292.74 887.31,1285.14">
- <lane id="81672216#7_0" index="0" allow="delivery" speed="5.56" length="10.14" shape="896.20,1295.87 895.04,1293.81 889.09,1288.80"/>
- </edge>
- <edge id="81672216#8" from="951739568" to="951739549" priority="2" type="highway.service">
- <lane id="81672216#8_0" index="0" allow="delivery" speed="5.56" length="7.53" shape="881.71,1282.28 876.14,1277.21"/>
- </edge>
- <edge id="81672216#9" from="951739549" to="1457699220" priority="2" type="highway.service" shape="874.43,1273.42 862.74,1262.97 823.20,1284.88">
- <lane id="81672216#9_0" index="0" allow="delivery" speed="5.56" length="47.64" shape="868.78,1270.58 862.51,1264.98 828.20,1284.00"/>
- </edge>
- <edge id="81672218" from="951739511" to="1457699223" priority="2" type="highway.service">
- <lane id="81672218_0" index="0" allow="delivery" speed="5.56" length="51.14" shape="857.40,1338.57 902.73,1314.90"/>
- </edge>
- <edge id="8272412#0" from="1096401733" to="1719213509" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="8272412#0_0" index="0" speed="22.22" length="0.98" shape="834.90,973.76 835.80,973.39"/>
- </edge>
- <edge id="8272412#1" from="1719213509" to="538810724" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="8272412#1_0" index="0" speed="22.22" length="64.53" shape="844.56,969.17 900.95,937.81"/>
- </edge>
- <edge id="8272412#2" from="538810724" to="538810726" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="8272412#2_0" index="0" speed="22.22" length="71.08" shape="906.45,934.71 968.22,899.55"/>
- </edge>
- <edge id="8272412#3" from="538810726" to="444026917" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="8272412#3_0" index="0" speed="22.22" length="72.54" shape="973.71,896.42 1036.78,860.57"/>
- </edge>
- <edge id="8272412#4" from="444026917" to="1726394722" priority="5" type="highway.unclassified" spreadType="center">
- <lane id="8272412#4_0" index="0" speed="22.22" length="10.42" shape="1042.28,857.45 1051.33,852.28"/>
- </edge>
- <edge id="83038920" from="966097837" to="966097830" priority="2" type="highway.service" shape="813.60,1466.57 874.94,1585.38 887.22,1579.00 828.22,1459.05">
- <lane id="83038920_0" index="0" allow="delivery" speed="5.56" length="266.63" shape="817.25,1470.03 875.65,1583.15 885.03,1578.28 828.20,1462.74"/>
- </edge>
- <edge id="83038923#0" from="966097869" to="966097837" priority="2" type="highway.service" shape="746.66,1456.35 758.84,1458.25 771.08,1461.26 791.14,1469.22 799.68,1469.66 813.60,1466.57">
- <lane id="83038923#0_0" index="0" allow="delivery" speed="5.56" length="59.92" shape="751.63,1455.46 759.10,1456.62 771.48,1459.66 791.49,1467.58 799.54,1468.00 809.33,1465.83"/>
- </edge>
- <edge id="83038923#1" from="966097837" to="966097830" priority="2" type="highway.service">
- <lane id="83038923#1_0" index="0" allow="delivery" speed="5.56" length="8.37" shape="817.07,1462.92 824.52,1459.09"/>
- </edge>
- <edge id="83042949" from="966132131" to="966132112" priority="2" type="highway.service" spreadType="center" shape="1317.22,1386.16 1311.01,1389.57 1308.57,1391.02 1215.18,1439.28 1258.65,1527.64 1195.98,1560.66 1198.97,1566.84 1203.25,1574.78">
- <lane id="83042949_0" index="0" allow="delivery" speed="5.56" length="293.99" shape="1314.49,1387.66 1311.01,1389.57 1308.57,1391.02 1215.18,1439.28 1258.65,1527.64 1195.98,1560.66 1198.97,1566.84 1201.76,1572.02"/>
- </edge>
- <edge id="83051417" from="966193812" to="966193808" priority="1" type="highway.pedestrian" shape="1382.82,1159.31 1354.64,1143.84 1319.30,1110.02 1303.82,1087.19">
- <lane id="83051417_0" index="0" allow="pedestrian" speed="8.33" length="99.62" shape="1377.82,1158.45 1353.66,1145.18 1318.03,1111.09 1305.27,1092.26"/>
- </edge>
- <edge id="83051420" from="966193808" to="966193796" priority="5" type="highway.unclassified">
- <lane id="83051420_0" index="0" speed="22.22" length="68.02" shape="1300.14,1083.53 1269.57,1022.76"/>
- </edge>
- <edge id="83051421#0" from="267169634" to="267169686" priority="1" type="highway.pedestrian">
- <lane id="83051421#0_0" index="0" allow="pedestrian" speed="8.33" length="107.26" shape="1470.38,992.78 1422.05,1088.53"/>
- </edge>
- <edge id="83051421#1" from="267169686" to="966193812" priority="1" type="highway.pedestrian">
- <lane id="83051421#1_0" index="0" allow="pedestrian" speed="8.33" length="60.60" shape="1414.92,1102.30 1386.53,1155.84"/>
- </edge>
- <edge id="83051421#2" from="966193812" to="250689186" priority="1" type="highway.pedestrian">
- <lane id="83051421#2_0" index="0" allow="pedestrian" speed="8.33" length="63.44" shape="1382.08,1164.24 1352.36,1220.29"/>
- </edge>
- <edge id="83051424" from="966193814" to="966193793" priority="1" type="highway.pedestrian">
- <lane id="83051424_0" index="0" allow="pedestrian" speed="8.33" length="13.70" shape="1416.88,1308.73 1416.89,1295.03"/>
- </edge>
- <edge id="83051426" from="733663071" to="250689131" priority="1" type="highway.pedestrian">
- <lane id="83051426_0" index="0" allow="pedestrian" speed="8.33" length="71.54" shape="1451.60,1230.95 1388.78,1265.16"/>
- </edge>
- <edge id="83051436#0" from="966193808" to="267169690" priority="1" type="highway.pedestrian">
- <lane id="83051436#0_0" index="0" allow="pedestrian" speed="8.33" length="85.17" shape="1307.36,1083.27 1381.36,1041.11"/>
- </edge>
- <edge id="83051436#1" from="267169690" to="267169634" priority="1" type="highway.pedestrian">
- <lane id="83051436#1_0" index="0" allow="pedestrian" speed="8.33" length="88.52" shape="1389.58,1035.96 1462.68,986.03"/>
- </edge>
- <edge id="83051442#0" from="733663071" to="733663078" priority="1" type="highway.pedestrian" shape="1456.20,1226.57 1445.69,1217.27 1440.94,1200.45">
- <lane id="83051442#0_0" index="0" allow="pedestrian" speed="8.33" length="20.74" shape="1450.52,1223.74 1444.24,1218.18 1440.88,1206.29"/>
- </edge>
- <edge id="83051442#1" from="733663078" to="441266874" priority="1" type="highway.pedestrian" shape="1440.94,1200.45 1445.67,1186.05 1456.29,1176.65">
- <lane id="83051442#1_0" index="0" allow="pedestrian" speed="8.33" length="23.51" shape="1440.24,1197.30 1444.24,1185.11 1452.24,1178.03"/>
- </edge>
- <edge id="83051442#2" from="441266874" to="733663071" priority="1" type="highway.pedestrian" shape="1456.29,1176.65 1473.69,1173.99 1486.47,1179.63 1494.97,1190.78 1497.01,1204.51 1493.98,1214.58 1483.49,1225.68 1471.45,1229.56 1456.20,1226.57">
- <lane id="83051442#2_0" index="0" allow="pedestrian" speed="8.33" length="112.74" shape="1459.91,1174.43 1473.92,1172.29 1487.52,1178.30 1496.54,1190.12 1498.70,1204.63 1495.45,1215.43 1484.40,1227.12 1471.55,1231.26 1458.51,1228.70"/>
- </edge>
- <edge id="83051455" from="733663078" to="441266870" priority="1" type="highway.pedestrian">
- <lane id="83051455_0" index="0" allow="pedestrian" speed="8.33" length="70.00" shape="1436.84,1204.61 1375.61,1238.53"/>
- </edge>
- <edge id="83051480#0" from="257907508" to="966193793" priority="1" type="highway.pedestrian" shape="1601.46,1287.40 1478.82,1291.11 1418.55,1290.24">
- <lane id="83051480#0_0" index="0" allow="pedestrian" speed="8.33" length="178.25" shape="1601.51,1289.05 1478.87,1292.76 1423.32,1291.96"/>
- </edge>
- <edge id="83051480#1" from="966193793" to="250689201" priority="1" type="highway.pedestrian">
- <lane id="83051480#1_0" index="0" allow="pedestrian" speed="8.33" length="24.69" shape="1413.82,1291.82 1389.13,1291.47"/>
- </edge>
- <edge id="83051483" from="966193857" to="966193814" priority="5" type="highway.unclassified" shape="1461.49,1433.85 1445.06,1403.43 1433.51,1379.54 1426.16,1352.67 1420.20,1329.48 1418.53,1308.86">
- <lane id="83051483_0" index="0" speed="22.22" length="131.03" shape="1458.55,1431.89 1443.60,1404.22 1431.96,1380.13 1424.57,1353.11 1418.60,1329.89 1416.90,1309.13"/>
- </edge>
- <edge id="83827202" from="975934874" to="975934878" priority="2" type="highway.service" spreadType="center" shape="771.01,2287.62 791.92,2446.83 794.27,2451.65 798.14,2454.02 803.73,2453.92 829.66,2440.37 912.37,2397.13 1072.47,2313.44 1156.30,2269.44">
- <lane id="83827202_0" index="0" allow="delivery" speed="5.56" length="565.44" shape="771.50,2291.37 791.92,2446.83 794.27,2451.65 798.14,2454.02 803.73,2453.92 829.66,2440.37 912.37,2397.13 1072.47,2313.44 1152.09,2271.66"/>
- </edge>
-
- <tlLogic id="1168929295" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="9" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="9" state="ry"/>
- </tlLogic>
- <tlLogic id="1168929298" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="7" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="7" state="ry"/>
- </tlLogic>
- <tlLogic id="1168929308" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgGrr"/>
- <phase duration="7" state="yyyyrr"/>
- <phase duration="31" state="rrrGGG"/>
- <phase duration="7" state="rrryyy"/>
- </tlLogic>
- <tlLogic id="1168929383" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrGggGGg"/>
- <phase duration="9" state="rrryggyyg"/>
- <phase duration="6" state="rrrrGGrrG"/>
- <phase duration="9" state="rrrryyrry"/>
- <phase duration="31" state="GGGrrrrrr"/>
- <phase duration="9" state="yyyrrrrrr"/>
- </tlLogic>
- <tlLogic id="1168929398" type="static" programID="0" offset="0">
- <phase duration="31" state="GgGr"/>
- <phase duration="7" state="yyyr"/>
- <phase duration="31" state="GrGg"/>
- <phase duration="7" state="yryy"/>
- </tlLogic>
- <tlLogic id="1168929549" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="9" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="9" state="ry"/>
- </tlLogic>
- <tlLogic id="1168929558" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="9" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="9" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="9" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="1168929600" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGGrrr"/>
- <phase duration="9" state="yyyyrrr"/>
- <phase duration="31" state="rrrrGGG"/>
- <phase duration="9" state="rrrryyy"/>
- </tlLogic>
- <tlLogic id="1168929613" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="9" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="9" state="ry"/>
- </tlLogic>
- <tlLogic id="1168929634" type="static" programID="0" offset="0">
- <phase duration="31" state="GggGGgrrr"/>
- <phase duration="9" state="yggyygrrr"/>
- <phase duration="6" state="rGGrrGrrr"/>
- <phase duration="9" state="ryyrryrrr"/>
- <phase duration="31" state="rrrrrrGGG"/>
- <phase duration="9" state="rrrrrryyy"/>
- </tlLogic>
- <tlLogic id="1168929657" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="9" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="9" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="9" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="1246731544" type="static" programID="0" offset="0">
- <phase duration="31" state="GgGr"/>
- <phase duration="9" state="yyyr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="9" state="rryy"/>
- </tlLogic>
- <tlLogic id="13929752" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="9" state="y"/>
- </tlLogic>
- <tlLogic id="13929775" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGgrrrGGgg"/>
- <phase duration="9" state="yyygrrryygg"/>
- <phase duration="6" state="rrrGrrrrrGG"/>
- <phase duration="9" state="rrryrrrrryy"/>
- <phase duration="31" state="rrrrGGGrrrr"/>
- <phase duration="9" state="rrrryyyrrrr"/>
- </tlLogic>
- <tlLogic id="1726380179" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="1726394722" type="static" programID="0" offset="0">
- <phase duration="31" state="gGG"/>
- <phase duration="9" state="yyy"/>
- <phase duration="31" state="rGG"/>
- <phase duration="9" state="ryy"/>
- </tlLogic>
- <tlLogic id="1726394724" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrrGGGggrrrrGGGgg"/>
- <phase duration="9" state="rrrryyyggrrrryyygg"/>
- <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
- <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
- <phase duration="31" state="GGggrrrrrGGggrrrrr"/>
- <phase duration="9" state="yyggrrrrryyggrrrrr"/>
- <phase duration="6" state="rrGGrrrrrrrGGrrrrr"/>
- <phase duration="9" state="rryyrrrrrrryyrrrrr"/>
- </tlLogic>
- <tlLogic id="1726394726" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrrGGGggrrrrGGGgg"/>
- <phase duration="9" state="rrrryyyggrrrryyygg"/>
- <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
- <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
- <phase duration="31" state="GGggrrrrrGGggrrrrr"/>
- <phase duration="9" state="yyggrrrrryyggrrrrr"/>
- <phase duration="6" state="rrGGrrrrrrrGGrrrrr"/>
- <phase duration="9" state="rryyrrrrrrryyrrrrr"/>
- </tlLogic>
- <tlLogic id="1913728534" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgGGr"/>
- <phase duration="9" state="yyyyyr"/>
- <phase duration="31" state="GGrGGg"/>
- <phase duration="9" state="yyryyy"/>
- </tlLogic>
- <tlLogic id="248913154" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="9" state="y"/>
- </tlLogic>
- <tlLogic id="250684983" type="static" programID="0" offset="0">
- <phase duration="31" state="GgGr"/>
- <phase duration="7" state="yyyr"/>
- <phase duration="31" state="GrGg"/>
- <phase duration="7" state="yryy"/>
- </tlLogic>
- <tlLogic id="250685766" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="7" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="7" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="7" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="252418937" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="7" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="7" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="7" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="30406599" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGggrrrrGGGggrrrr"/>
- <phase duration="9" state="yyyggrrrryyyggrrrr"/>
- <phase duration="6" state="rrrGGrrrrrrrGGrrrr"/>
- <phase duration="9" state="rrryyrrrrrrryyrrrr"/>
- <phase duration="31" state="rrrrrGGggrrrrrGGgg"/>
- <phase duration="9" state="rrrrryyggrrrrryygg"/>
- <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
- <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
- </tlLogic>
- <tlLogic id="427996791" type="static" programID="0" offset="0">
- <phase duration="31" state="GGggrrrrGGggrrrr"/>
- <phase duration="9" state="yyggrrrryyggrrrr"/>
- <phase duration="6" state="rrGGrrrrrrGGrrrr"/>
- <phase duration="9" state="rryyrrrrrryyrrrr"/>
- <phase duration="31" state="rrrrGGggrrrrGGgg"/>
- <phase duration="9" state="rrrryyggrrrryygg"/>
- <phase duration="6" state="rrrrrrGGrrrrrrGG"/>
- <phase duration="9" state="rrrrrryyrrrrrryy"/>
- </tlLogic>
- <tlLogic id="427996792" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrrrGggGgrrrrrGGGggrrrrr"/>
- <phase duration="9" state="rrrrryggygrrrrryyyggrrrrr"/>
- <phase duration="6" state="rrrrrrGGrGrrrrrrrrGGrrrrr"/>
- <phase duration="9" state="rrrrrryyryrrrrrrrryyrrrrr"/>
- <phase duration="31" state="rrrrrrrrrrGGgggrrrrrGGGgg"/>
- <phase duration="9" state="rrrrrrrrrryygggrrrrryyygg"/>
- <phase duration="6" state="rrrrrrrrrrrrGGGrrrrrrrrGG"/>
- <phase duration="9" state="rrrrrrrrrrrryyyrrrrrrrryy"/>
- <phase duration="31" state="GGGGgrrrGrrrrrrrrrrrrrrrr"/>
- <phase duration="9" state="yyyyyrrryrrrrrrrrrrrrrrrr"/>
- </tlLogic>
- <tlLogic id="438042367" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrrGggGGGg"/>
- <phase duration="9" state="rrrryggyyyg"/>
- <phase duration="6" state="rrrrrGGrrrG"/>
- <phase duration="9" state="rrrrryyrrry"/>
- <phase duration="31" state="GGGGrrrrrrr"/>
- <phase duration="9" state="yyyyrrrrrrr"/>
- </tlLogic>
- <tlLogic id="438042369" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGgrrrrGgg"/>
- <phase duration="9" state="yyygrrrrygg"/>
- <phase duration="6" state="rrrGrrrrrGG"/>
- <phase duration="9" state="rrryrrrrryy"/>
- <phase duration="31" state="rrrrGGGGrrr"/>
- <phase duration="9" state="rrrryyyyrrr"/>
- </tlLogic>
- <tlLogic id="438042373" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="7" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="7" state="ry"/>
- </tlLogic>
- <tlLogic id="438042377" type="static" programID="0" offset="0">
- <phase duration="31" state="GG"/>
- <phase duration="7" state="yy"/>
- </tlLogic>
- <tlLogic id="438042378" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="7" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="7" state="ry"/>
- </tlLogic>
- <tlLogic id="438042381" type="static" programID="0" offset="0">
- <phase duration="31" state="GGG"/>
- <phase duration="7" state="yyy"/>
- </tlLogic>
- <tlLogic id="438042385" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrrr"/>
- <phase duration="9" state="yyrrr"/>
- <phase duration="31" state="rrGGG"/>
- <phase duration="9" state="rryyy"/>
- </tlLogic>
- <tlLogic id="438042386" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGrr"/>
- <phase duration="9" state="yyyrr"/>
- <phase duration="31" state="rrrGG"/>
- <phase duration="9" state="rrryy"/>
- </tlLogic>
- <tlLogic id="438042387" type="static" programID="0" offset="0">
- <phase duration="31" state="Gr"/>
- <phase duration="9" state="yr"/>
- <phase duration="31" state="rG"/>
- <phase duration="9" state="ry"/>
- </tlLogic>
- <tlLogic id="441266854" type="static" programID="0" offset="0">
- <phase duration="31" state="GgGr"/>
- <phase duration="9" state="yyyr"/>
- <phase duration="31" state="GrGg"/>
- <phase duration="9" state="yryy"/>
- </tlLogic>
- <tlLogic id="441266880" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="9" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="9" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="9" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="441266884" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="443089060" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="443089063" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrGGggGGGg"/>
- <phase duration="9" state="rrryyggyyyg"/>
- <phase duration="6" state="rrrrrGGrrrG"/>
- <phase duration="9" state="rrrrryyrrry"/>
- <phase duration="31" state="GGGrrrrrrrr"/>
- <phase duration="9" state="yyyrrrrrrrr"/>
- </tlLogic>
- <tlLogic id="443101912" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="443101913" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="443101938" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="444026884" type="static" programID="0" offset="0">
- <phase duration="31" state="GGggGGGgrrr"/>
- <phase duration="9" state="yyggyyygrrr"/>
- <phase duration="6" state="rrGGrrrGrrr"/>
- <phase duration="9" state="rryyrrryrrr"/>
- <phase duration="31" state="rrrrrrrrGGG"/>
- <phase duration="9" state="rrrrrrrryyy"/>
- </tlLogic>
- <tlLogic id="444026917" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="446017739" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="446017740" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrr"/>
- <phase duration="7" state="yyrr"/>
- <phase duration="31" state="rrGG"/>
- <phase duration="7" state="rryy"/>
- </tlLogic>
- <tlLogic id="446017741" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="7" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="7" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="7" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="446017742" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGGrr"/>
- <phase duration="9" state="yyyyrr"/>
- <phase duration="31" state="rrrrGG"/>
- <phase duration="9" state="rrrryy"/>
- </tlLogic>
- <tlLogic id="446017743" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGGrrr"/>
- <phase duration="9" state="yyyyrrr"/>
- <phase duration="31" state="rrrrGGG"/>
- <phase duration="9" state="rrrryyy"/>
- </tlLogic>
- <tlLogic id="446017744" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrGggGGg"/>
- <phase duration="7" state="rrryggyyg"/>
- <phase duration="6" state="rrrrGGrrG"/>
- <phase duration="7" state="rrrryyrry"/>
- <phase duration="31" state="GGGrrrrrr"/>
- <phase duration="7" state="yyyrrrrrr"/>
- </tlLogic>
- <tlLogic id="446017746" type="static" programID="0" offset="0">
- <phase duration="31" state="GGGrr"/>
- <phase duration="9" state="yyyrr"/>
- <phase duration="31" state="rrrGG"/>
- <phase duration="9" state="rrryy"/>
- </tlLogic>
- <tlLogic id="446017747" type="static" programID="0" offset="0">
- <phase duration="31" state="GGrrr"/>
- <phase duration="9" state="yyrrr"/>
- <phase duration="31" state="rrGGG"/>
- <phase duration="9" state="rryyy"/>
- </tlLogic>
- <tlLogic id="450564003" type="static" programID="0" offset="0">
- <phase duration="31" state="GggGGgrrr"/>
- <phase duration="7" state="yggyygrrr"/>
- <phase duration="6" state="rGGrrGrrr"/>
- <phase duration="7" state="ryyrryrrr"/>
- <phase duration="31" state="rrrrrrGGG"/>
- <phase duration="7" state="rrrrrryyy"/>
- </tlLogic>
- <tlLogic id="452425502" type="static" programID="0" offset="0">
- <phase duration="31" state="GGgrrrGgg"/>
- <phase duration="7" state="yygrrrygg"/>
- <phase duration="6" state="rrGrrrrGG"/>
- <phase duration="7" state="rryrrrryy"/>
- <phase duration="31" state="rrrGGGrrr"/>
- <phase duration="7" state="rrryyyrrr"/>
- </tlLogic>
- <tlLogic id="538265860" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="538265866" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="538810722" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="566579336" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="566579338" type="static" programID="0" offset="0">
- <phase duration="31" state="G"/>
- <phase duration="7" state="y"/>
- </tlLogic>
- <tlLogic id="719463587" type="static" programID="0" offset="0">
- <phase duration="31" state="GggGGgrrr"/>
- <phase duration="7" state="yggyygrrr"/>
- <phase duration="6" state="rGGrrGrrr"/>
- <phase duration="7" state="ryyrryrrr"/>
- <phase duration="31" state="rrrrrrGGG"/>
- <phase duration="7" state="rrrrrryyy"/>
- </tlLogic>
- <tlLogic id="719464017" type="static" programID="0" offset="0">
- <phase duration="31" state="GgGr"/>
- <phase duration="1" state="yyyr"/>
- <phase duration="31" state="GrGg"/>
- <phase duration="1" state="yryy"/>
- </tlLogic>
- <tlLogic id="767282288" type="static" programID="0" offset="0">
- <phase duration="31" state="rrrrGGGggrrrrGGGgg"/>
- <phase duration="9" state="rrrryyyggrrrryyygg"/>
- <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
- <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
- <phase duration="31" state="GGggrrrrrGGggrrrrr"/>
- <phase duration="9" state="yyggrrrrryyggrrrrr"/>
- <phase duration="6" state="rrGGrrrrrrrGGrrrrr"/>
- <phase duration="9" state="rryyrrrrrrryyrrrrr"/>
- </tlLogic>
-
- <junction id="1096401706" type="unregulated" x="683.42" y="791.07" incLanes="42976408#2_0" intLanes="" shape="681.85,791.36 685.00,790.78">
- </junction>
- <junction id="1096401708" type="unregulated" x="717.57" y="773.34" incLanes="" intLanes="" shape="716.62,774.63 718.52,772.05">
- </junction>
- <junction id="1096401733" type="priority" x="832.01" y="974.96" incLanes="154500706#3_0" intLanes=":1096401733_0_0 :1096401733_1_0" shape="831.78,978.46 834.71,977.19 835.51,975.24 834.28,972.29 831.40,971.96 829.06,974.14">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1168929269" type="priority" x="1187.31" y="1082.11" incLanes="154844489#2_0 154844483#2_0 154844483#2_1" intLanes=":1168929269_0_0 :1168929269_1_0 :1168929269_2_0 :1168929269_3_0 :1168929269_4_0" shape="1185.96,1086.54 1191.72,1083.53 1192.28,1079.75 1190.12,1077.38 1188.31,1077.07 1182.57,1080.11 1182.12,1083.34 1183.97,1085.97">
- <request index="0" response="01100" foes="01100" cont="0"/>
- <request index="1" response="11100" foes="11100" cont="0"/>
- <request index="2" response="00000" foes="00011" cont="0"/>
- <request index="3" response="00000" foes="00011" cont="0"/>
- <request index="4" response="00000" foes="00010" cont="0"/>
- </junction>
- <junction id="1168929272" type="priority" x="1139.69" y="1049.23" incLanes="154844465#2_0" intLanes=":1168929272_0_0 :1168929272_1_0" shape="1143.02,1045.40 1140.06,1044.17 1138.76,1044.24 1135.96,1045.78 1138.08,1049.13 1141.23,1049.68">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1168929295" type="traffic_light" x="1157.89" y="1085.88" incLanes="58770833_0 154844461#1_0" intLanes=":1168929295_0_0 :1168929295_1_0" shape="1159.01,1091.27 1161.82,1089.74 1162.57,1088.73 1163.67,1085.69 1158.81,1084.54 1157.47,1087.44">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="1168929298" type="traffic_light" x="822.13" y="965.73" incLanes="42976407#2_0 154500706#2_0" intLanes=":1168929298_0_0 :1168929298_1_0" shape="823.02,968.21 824.76,965.52 821.80,960.46 818.68,961.40 817.96,962.24 816.62,965.23">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="1168929308" type="traffic_light" x="781.15" y="985.59" incLanes="-37638470#0_0 37638426#1_0" intLanes=":1168929308_0_0 :1168929308_1_0 :1168929308_6_0 :1168929308_3_0 :1168929308_4_0 :1168929308_5_0" shape="783.82,982.37 780.77,981.42 776.47,979.72 774.45,982.20 774.13,983.37 775.11,989.80 779.49,990.64 782.71,991.05">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="0"/>
- <request index="5" response="000010" foes="000010" cont="0"/>
- </junction>
- <junction id="1168929310" type="priority" x="1139.29" y="1064.21" incLanes="154844470#1_0 111549913#6_0" intLanes=":1168929310_0_0 :1168929310_1_0 :1168929310_2_0 :1168929310_3_0" shape="1138.70,1067.97 1141.79,1067.08 1143.49,1063.56 1141.85,1060.81 1140.38,1060.09 1137.20,1060.50 1135.49,1064.37 1136.96,1067.21">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="1168929324" type="priority" x="1198.95" y="1050.22" incLanes="170594822#3_0 170594822#3_1 154844487#1_0" intLanes=":1168929324_0_0 :1168929324_1_0 :1168929324_2_0 :1168929324_3_0" shape="1197.96,1054.74 1201.13,1054.30 1204.01,1050.87 1200.54,1045.37 1198.64,1044.81 1195.53,1045.72 1194.84,1050.62 1196.36,1053.44">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1168929349" type="priority" x="827.34" y="1010.48" incLanes="160587552#1_0 122301994#1_0 122301994#1_1 122301994#1_2" intLanes=":1168929349_0_0 :1168929349_1_0 :1168929349_2_0 :1168929349_3_0 :1168929349_4_0 :1168929349_5_0" shape="824.66,1015.96 833.36,1011.46 832.90,1005.85 830.64,1003.50 829.06,1003.41 820.46,1008.10 820.95,1012.79 822.72,1015.46">
- <request index="0" response="011100" foes="011100" cont="0"/>
- <request index="1" response="111100" foes="111100" cont="0"/>
- <request index="2" response="000000" foes="000011" cont="0"/>
- <request index="3" response="000000" foes="000011" cont="0"/>
- <request index="4" response="000000" foes="000011" cont="0"/>
- <request index="5" response="000000" foes="000010" cont="0"/>
- </junction>
- <junction id="1168929367" type="priority" x="1182.95" y="1030.19" incLanes="154844467_0" intLanes=":1168929367_0_0 :1168929367_1_0" shape="1185.82,1033.80 1187.45,1031.01 1187.49,1029.50 1185.93,1026.70 1184.14,1031.28 1181.50,1029.47">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1168929382" type="priority" x="1148.91" y="1034.59" incLanes="166603397#2_0 166603397#2_1 154844465#4_0" intLanes=":1168929382_0_0 :1168929382_1_0 :1168929382_2_0 :1168929382_3_0 :1168929382_4_0" shape="1148.10,1040.08 1153.87,1037.07 1154.09,1032.77 1152.01,1030.31 1150.06,1029.82 1144.32,1032.86 1144.01,1037.77 1146.43,1039.88">
- <request index="0" response="00000" foes="11000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="10000" cont="0"/>
- <request index="3" response="00011" foes="00011" cont="0"/>
- <request index="4" response="00111" foes="00111" cont="0"/>
- </junction>
- <junction id="1168929383" type="traffic_light" x="1142.17" y="1071.90" incLanes="154844470#0_0 149868584#4_0 149868584#4_1 -149868584#5_0 -149868584#5_1" intLanes=":1168929383_0_0 :1168929383_1_0 :1168929383_9_0 :1168929383_3_0 :1168929383_4_0 :1168929383_10_0 :1168929383_6_0 :1168929383_7_0 :1168929383_11_0" shape="1145.62,1079.36 1148.35,1077.62 1148.92,1075.61 1142.47,1064.21 1140.82,1063.76 1137.80,1064.81 1136.76,1067.45 1143.23,1078.84">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="000000000" foes="011011000" cont="0"/>
- <request index="2" response="000000000" foes="010111000" cont="1"/>
- <request index="3" response="000000111" foes="100000111" cont="0"/>
- <request index="4" response="011000110" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000010" foes="000010010" cont="0"/>
- <request index="7" response="000000110" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="1168929385" type="priority" x="1159.04" y="1028.67" incLanes="170590352_0 170590352_1 154844478_0" intLanes=":1168929385_0_0 :1168929385_1_0 :1168929385_2_0 :1168929385_3_0 :1168929385_4_0" shape="1157.52,1032.75 1163.27,1029.71 1162.80,1029.25 1161.91,1026.17 1160.36,1024.22 1154.62,1027.27 1153.97,1029.25 1155.06,1032.28">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="1168929388" type="priority" x="1189.37" y="1034.51" incLanes="154844473_0 111863096#4_0" intLanes=":1168929388_0_0 :1168929388_1_0 :1168929388_2_0 :1168929388_3_0" shape="1190.69,1038.25 1193.02,1036.06 1193.33,1034.28 1191.87,1031.43 1187.30,1030.89 1185.34,1033.45 1185.25,1035.12 1186.90,1037.86">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1168929398" type="traffic_light" x="806.50" y="1035.63" incLanes="-179692877#1_0 179692877#0_0" intLanes=":1168929398_0_0 :1168929398_4_0 :1168929398_2_0 :1168929398_5_0" shape="809.71,1036.17 803.37,1034.74 803.25,1035.44 809.71,1036.17">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1168929459" type="priority" x="1197.84" y="1068.30" incLanes="154844477_0" intLanes=":1168929459_0_0 :1168929459_1_0" shape="1198.48,1073.04 1201.32,1071.57 1199.95,1066.74 1196.89,1065.65 1194.26,1071.47 1197.07,1073.02">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1168929523" type="priority" x="1147.33" y="1078.90" incLanes="154844461#3_0 103851602#4_0" intLanes=":1168929523_0_0 :1168929523_1_0 :1168929523_2_0 :1168929523_3_0" shape="1149.16,1082.58 1151.25,1080.15 1151.42,1078.44 1149.85,1075.65 1146.43,1075.40 1144.01,1077.48 1143.69,1079.38 1145.58,1081.99">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1168929542" type="priority" x="836.39" y="988.26" incLanes="160587552#0_0" intLanes=":1168929542_0_0 :1168929542_1_0" shape="838.28,995.60 841.14,994.17 837.71,986.29 834.54,986.77 833.89,995.60 837.19,995.70">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1168929546" type="priority" x="1162.36" y="1027.71" incLanes="38319548#14_0 -38319548#15_0 154844484#0_0" intLanes=":1168929546_0_0 :1168929546_1_0 :1168929546_2_0 :1168929546_3_0 :1168929546_4_0 :1168929546_5_0 :1168929546_6_0 :1168929546_7_0 :1168929546_8_0" shape="1161.56,1033.12 1167.29,1030.07 1168.08,1028.61 1167.64,1025.37 1164.30,1024.40 1158.53,1027.40 1158.60,1027.13 1159.48,1030.20">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1168929549" type="traffic_light" x="1199.80" y="1058.66" incLanes="37772595#3_0 154844481_0" intLanes=":1168929549_0_0 :1168929549_1_0" shape="1202.55,1058.94 1200.97,1056.16 1201.42,1057.07 1198.22,1057.00 1197.83,1060.58 1200.97,1061.16">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="1168929558" type="traffic_light" x="1182.30" y="1085.09" incLanes="-160587538#6_0 -160587538#6_1 154844482_0 160587538#5_0 160587538#5_1" intLanes=":1168929558_0_0 :1168929558_1_0 :1168929558_9_0 :1168929558_3_0 :1168929558_4_0 :1168929558_5_0 :1168929558_6_0 :1168929558_7_0 :1168929558_10_0" shape="1177.21,1089.46 1188.80,1083.36 1184.40,1085.72 1182.80,1082.95 1187.42,1080.73 1175.80,1086.78 1180.28,1084.23 1181.58,1087.16">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="1168929562" type="priority" x="1176.41" y="1087.16" incLanes="154844485#1_0 154844485#1_1 154844486_0" intLanes=":1168929562_0_0 :1168929562_1_0 :1168929562_2_0 :1168929562_3_0 :1168929562_4_0" shape="1175.25,1091.96 1181.01,1088.94 1181.72,1087.09 1180.88,1083.97 1177.21,1081.68 1171.45,1084.70 1170.65,1086.20 1171.01,1089.38">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="1168929585" type="priority" x="1175.02" y="1027.50" incLanes="37640550#5_0 154844484#1_0" intLanes=":1168929585_0_0 :1168929585_1_0" shape="1175.61,1029.25 1176.25,1026.12 1174.45,1022.90 1171.60,1024.37 1170.79,1025.60 1170.56,1028.79">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="1168929600" type="traffic_light" x="801.49" y="963.16" incLanes="122301994#0_0 122301994#0_1 122301994#0_2 154500706#1_0" intLanes=":1168929600_0_0 :1168929600_1_0 :1168929600_2_0 :1168929600_3_0 :1168929600_4_0 :1168929600_7_0 :1168929600_6_0" shape="799.70,970.12 808.30,965.42 809.08,963.98 808.33,960.83 804.25,957.77 795.50,962.19 794.78,964.07 796.01,967.15">
- <request index="0" response="0000000" foes="0010000" cont="0"/>
- <request index="1" response="0000000" foes="1110000" cont="0"/>
- <request index="2" response="0000000" foes="1110000" cont="0"/>
- <request index="3" response="0000000" foes="1110000" cont="0"/>
- <request index="4" response="0001111" foes="0001111" cont="0"/>
- <request index="5" response="0001110" foes="0001110" cont="1"/>
- <request index="6" response="0001110" foes="0001110" cont="0"/>
- </junction>
- <junction id="1168929613" type="traffic_light" x="1138.55" y="1058.45" incLanes="154844465#0_0 37772596#3_0" intLanes=":1168929613_0_0 :1168929613_1_0" shape="1137.45,1062.47 1140.63,1062.06 1140.21,1056.06 1137.01,1055.99 1134.41,1058.89 1135.95,1061.70">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="1168929634" type="traffic_light" x="1153.40" y="1031.30" incLanes="-160587538#2_0 -160587538#2_1 160587538#1_0 160587538#1_1 101272431_0" intLanes=":1168929634_0_0 :1168929634_1_0 :1168929634_9_0 :1168929634_3_0 :1168929634_4_0 :1168929634_10_0 :1168929634_6_0 :1168929634_7_0 :1168929634_8_0" shape="1148.45,1035.85 1159.83,1029.37 1155.45,1032.09 1154.05,1029.21 1158.52,1026.95 1146.89,1032.99 1151.26,1030.81 1153.04,1033.47">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1168929652" type="priority" x="765.18" y="988.02" incLanes="166576461#1_0 37638470#0_0 -37638470#1_0" intLanes=":1168929652_0_0 :1168929652_1_0 :1168929652_2_0 :1168929652_3_0 :1168929652_4_0 :1168929652_9_0 :1168929652_6_0 :1168929652_10_0 :1168929652_11_0" shape="767.10,995.62 772.17,991.56 772.72,990.16 771.74,983.74 761.23,985.43 762.37,991.83">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1168929657" type="traffic_light" x="1195.46" y="1041.76" incLanes="149868584#2_0 149868584#2_1 154844487#0_0 -149868584#3_0 -149868584#3_1" intLanes=":1168929657_0_0 :1168929657_1_0 :1168929657_9_0 :1168929657_3_0 :1168929657_4_0 :1168929657_10_0 :1168929657_6_0 :1168929657_11_0 :1168929657_12_0" shape="1197.21,1049.98 1200.15,1048.62 1200.93,1046.21 1194.54,1034.77 1191.54,1034.48 1188.86,1036.30 1188.58,1038.13 1195.03,1049.53">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="1"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="1168929659" type="priority" x="1192.17" y="1077.69" incLanes="38319548#11_0 154844489#1_0 -38319548#12_0" intLanes=":1168929659_0_0 :1168929659_1_0 :1168929659_2_0 :1168929659_3_0 :1168929659_4_0 :1168929659_5_0 :1168929659_6_0 :1168929659_7_0 :1168929659_8_0" shape="1191.50,1082.47 1196.86,1078.81 1194.22,1077.73 1191.78,1075.67 1193.24,1073.59 1187.94,1077.36 1187.39,1079.88 1189.54,1082.24">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1168929661" type="right_before_left" x="1473.76" y="1584.23" incLanes="38319548#8_0 -101272434_0 -38319548#9_0" intLanes=":1168929661_0_0 :1168929661_1_0 :1168929661_2_0 :1168929661_3_0 :1168929661_4_0 :1168929661_5_0 :1168929661_6_0 :1168929661_7_0 :1168929661_8_0" shape="1471.34,1588.31 1478.87,1586.96 1479.51,1584.95 1476.56,1579.16 1474.45,1578.55 1468.69,1581.57">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1185414550" type="unregulated" x="776.92" y="288.67" incLanes="" intLanes="" shape="774.02,290.13 779.83,287.21">
- </junction>
- <junction id="1212941056" type="priority" x="733.06" y="1656.91" incLanes="37942667#1_0 105251811#0_0" intLanes=":1212941056_0_0 :1212941056_1_0 :1212941056_2_0 :1212941056_3_0" shape="736.79,1658.12 736.46,1654.94 735.20,1653.62 732.04,1653.11 729.36,1655.69 729.69,1658.87 730.98,1660.20 734.14,1660.65">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1212941077" type="priority" x="731.83" y="1665.57" incLanes="59159259#0_0 37942667#3_0" intLanes=":1212941077_0_0 :1212941077_1_0 :1212941077_2_0 :1212941077_3_0" shape="734.48,1668.55 735.81,1665.64 733.93,1662.18 730.76,1661.73 729.19,1662.59 727.85,1665.50 729.74,1668.96 732.90,1669.41">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1212960877" type="priority" x="823.93" y="1630.44" incLanes="108329425#2_0 -105254618_0 -108329425#3_0" intLanes=":1212960877_0_0 :1212960877_9_0 :1212960877_10_0 :1212960877_3_0 :1212960877_4_0 :1212960877_5_0 :1212960877_6_0 :1212960877_7_0 :1212960877_11_0" shape="823.20,1636.15 828.99,1633.19 829.64,1631.17 826.68,1625.38 824.66,1624.73 818.87,1627.70">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="001000011" foes="101000011" cont="0"/>
- <request index="5" response="010000010" foes="010000010" cont="0"/>
- <request index="6" response="000000000" foes="000011110" cont="0"/>
- <request index="7" response="000000000" foes="000100010" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1212960879" type="priority" x="828.53" y="1639.42" incLanes="108329425#0_0 -105254616#0_0 -108329425#1_0" intLanes=":1212960879_0_0 :1212960879_9_0 :1212960879_10_0 :1212960879_3_0 :1212960879_4_0 :1212960879_5_0 :1212960879_6_0 :1212960879_7_0 :1212960879_11_0" shape="828.05,1645.61 833.83,1642.65 834.57,1640.85 832.53,1634.67 829.98,1635.13 824.19,1638.09">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1213368991" type="priority" x="732.54" y="1660.53" incLanes="105283535#0_0 37942667#2_0 -105283535#1_0" intLanes=":1213368991_0_0 :1213368991_1_0 :1213368991_9_0 :1213368991_3_0 :1213368991_4_0 :1213368991_5_0 :1213368991_6_0 :1213368991_7_0 :1213368991_10_0" shape="735.34,1664.12 736.08,1657.66 734.64,1657.13 731.48,1656.68 729.79,1656.92 729.01,1663.38 730.29,1665.04 733.46,1665.49">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="1224074526" type="priority" x="562.74" y="1065.06" incLanes="149819232#3_0" intLanes=":1224074526_0_0" shape="562.73,1065.01 562.24,1061.85 563.24,1068.27 562.75,1065.11">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1224074527" type="priority" x="606.54" y="1150.64" incLanes="-149819227#0_0" intLanes=":1224074527_0_0" shape="606.52,1150.59 605.07,1147.74 608.01,1153.54 606.56,1150.68">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1224074532" type="priority" x="687.18" y="1109.42" incLanes="-149819227#3_0 -149819220_0 149819227#2_0" intLanes=":1224074532_0_0 :1224074532_9_0 :1224074532_10_0 :1224074532_3_0 :1224074532_4_0 :1224074532_5_0 :1224074532_6_0 :1224074532_7_0 :1224074532_11_0" shape="692.45,1110.86 690.10,1104.80 687.82,1103.67 682.07,1106.71 681.44,1108.72 684.42,1114.50">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1224074533" type="priority" x="786.35" y="1087.09" incLanes="179917803#1_0 37973571#0_0" intLanes=":1224074533_0_0 :1224074533_4_0 :1224074533_2_0 :1224074533_3_0" shape="794.46,1085.63 793.30,1082.65 781.25,1084.39 781.97,1090.85 782.99,1092.11 786.02,1093.12">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1224074534" type="priority" x="779.72" y="1087.83" incLanes="-179917803#1_0 -166576461#0_0 179917803#0_0" intLanes=":1224074534_0_0 :1224074534_9_0 :1224074534_10_0 :1224074534_3_0 :1224074534_4_0 :1224074534_5_0 :1224074534_6_0 :1224074534_7_0 :1224074534_11_0" shape="785.82,1090.42 785.10,1083.96 783.85,1082.65 777.43,1081.61 775.40,1085.34 776.60,1091.73">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1224074535" type="priority" x="656.11" y="1050.50" incLanes="149819220_0 149819232#0_0 -149819232#1_0" intLanes=":1224074535_0_0 :1224074535_1_0 :1224074535_2_0 :1224074535_3_0 :1224074535_4_0 :1224074535_9_0 :1224074535_6_0 :1224074535_10_0 :1224074535_11_0" shape="656.05,1057.36 661.80,1054.33 662.59,1052.77 661.58,1046.35 651.83,1047.87 652.83,1054.30">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1224080660" type="priority" x="662.05" y="1329.66" incLanes="-106366774_0 37973568#0_0" intLanes=":1224080660_0_0 :1224080660_4_0 :1224080660_2_0 :1224080660_3_0" shape="667.02,1328.69 665.44,1325.91 663.44,1325.32 657.68,1328.33 657.17,1330.58 658.74,1333.37">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1224080662" type="priority" x="630.37" y="1226.05" incLanes="106366773_0" intLanes=":1224080662_0_0" shape="631.14,1227.45 629.59,1224.66 631.13,1227.46">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1224080669" type="priority" x="521.64" y="1031.63" incLanes="160584984_0 37638470#1_0 -37638470#2_0" intLanes=":1224080669_0_0 :1224080669_1_0 :1224080669_2_0 :1224080669_3_0 :1224080669_4_0 :1224080669_9_0 :1224080669_6_0 :1224080669_10_0 :1224080669_11_0" shape="521.43,1038.35 527.21,1035.38 528.01,1033.78 526.84,1027.38 517.21,1029.13 518.37,1035.53">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1224080675" type="unregulated" x="606.29" y="1238.66" incLanes="" intLanes="" shape="607.03,1240.08 605.55,1237.24">
- </junction>
- <junction id="1224080676" type="priority" x="508.14" y="1033.93" incLanes="106366774_0" intLanes=":1224080676_0_0" shape="508.19,1033.91 511.06,1032.51 505.22,1035.36 508.10,1033.96">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1224091971" type="priority" x="619.60" y="1056.19" incLanes="-106367427#0_0 149819232#2_0 -149819232#3_0" intLanes=":1224091971_0_0 :1224091971_1_0 :1224091971_2_0 :1224091971_3_0 :1224091971_4_0 :1224091971_9_0 :1224091971_6_0 :1224091971_10_0 :1224091971_11_0" shape="619.43,1063.00 625.22,1060.05 626.02,1058.48 625.02,1052.06 615.30,1053.58 616.30,1060.00">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1228499901" type="unregulated" x="352.02" y="2118.23" incLanes="" intLanes="" shape="352.34,2119.79 351.69,2116.66">
- </junction>
- <junction id="1228499918" type="priority" x="716.41" y="2150.86" incLanes="81394192#0_0 -106836308#0_0" intLanes=":1228499918_0_0 :1228499918_1_0 :1228499918_2_0 :1228499918_3_0" shape="715.51,2155.80 718.68,2155.34 717.31,2145.94 714.14,2146.40 712.84,2148.12 713.81,2154.54">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0000" foes="0100" cont="0"/>
- <request index="2" response="0010" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1228499925" type="priority" x="368.82" y="2201.27" incLanes="106836308#2_0" intLanes=":1228499925_0_0" shape="368.81,2201.22 368.36,2198.05 369.28,2204.48 368.83,2201.31">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1228499945" type="priority" x="700.97" y="2044.99" incLanes="81394192#1_0 106836317#2_0" intLanes=":1228499945_0_0 :1228499945_1_0 :1228499945_2_0 :1228499945_3_0" shape="699.85,2048.39 703.02,2047.92 704.37,2045.99 703.79,2042.84 702.10,2041.63 698.93,2042.09 697.51,2044.07 698.16,2047.21">
- <request index="0" response="0000" foes="1100" cont="0"/>
- <request index="1" response="0000" foes="1000" cont="0"/>
- <request index="2" response="0001" foes="0001" cont="0"/>
- <request index="3" response="0011" foes="0011" cont="0"/>
- </junction>
- <junction id="1228499957" type="priority" x="626.69" y="2164.66" incLanes="-107066313#5_0 106836308#1_0 107066313#4_0 -106836308#2_0" intLanes=":1228499957_0_0 :1228499957_1_0 :1228499957_16_0 :1228499957_17_0 :1228499957_4_0 :1228499957_5_0 :1228499957_6_0 :1228499957_7_0 :1228499957_8_0 :1228499957_9_0 :1228499957_18_0 :1228499957_19_0 :1228499957_12_0 :1228499957_13_0 :1228499957_14_0 :1228499957_15_0" shape="627.58,2171.91 633.01,2168.34 633.66,2166.85 632.66,2160.43 625.98,2157. [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1228499992" type="priority" x="568.86" y="2072.13" incLanes="-107066313#4_0 107066313#3_0 106836317#0_0" intLanes=":1228499992_0_0 :1228499992_9_0 :1228499992_10_0 :1228499992_3_0 :1228499992_4_0 :1228499992_11_0 :1228499992_6_0 :1228499992_7_0 :1228499992_8_0" shape="568.45,2077.61 573.96,2074.16 574.63,2072.59 573.99,2069.45 569.21,2066.64 563.73,2070.13 563.07,2071.70 563.72,2074.84">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="1231011197" type="priority" x="713.44" y="2042.67" incLanes="130443629#6_0 -130443629#7_0 106836317#3_0" intLanes=":1231011197_0_0 :1231011197_6_0 :1231011197_2_0 :1231011197_7_0 :1231011197_4_0 :1231011197_5_0" shape="710.67,2046.34 717.11,2045.46 716.27,2039.32 709.83,2040.19 708.40,2041.98 708.99,2045.13">
- <request index="0" response="000000" foes="111000" cont="0"/>
- <request index="1" response="100100" foes="100100" cont="1"/>
- <request index="2" response="000000" foes="100010" cont="0"/>
- <request index="3" response="010001" foes="010001" cont="1"/>
- <request index="4" response="000001" foes="001001" cont="0"/>
- <request index="5" response="000101" foes="000111" cont="0"/>
- </junction>
- <junction id="1232169474" type="priority" x="664.64" y="2158.71" incLanes="106836308#0_0 107166846#5_0 -106836308#1_0" intLanes=":1232169474_0_0 :1232169474_1_0 :1232169474_2_0 :1232169474_3_0 :1232169474_4_0 :1232169474_5_0 :1232169474_6_0 :1232169474_7_0 :1232169474_8_0" shape="669.56,2161.25 668.59,2154.83 666.63,2153.08 660.31,2154.59 659.18,2156.28 660.19,2162.70">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1232172714" type="priority" x="661.41" y="1679.69" incLanes="-38027665#3_0 107167209#1_0 38027665#2_0" intLanes=":1232172714_0_0 :1232172714_9_0 :1232172714_10_0 :1232172714_3_0 :1232172714_4_0 :1232172714_5_0 :1232172714_6_0 :1232172714_7_0 :1232172714_11_0" shape="665.60,1683.58 666.54,1677.15 665.26,1675.36 658.82,1674.51 657.14,1675.78 656.32,1682.86">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1232172723" type="priority" x="668.83" y="1623.85" incLanes="43684741#1_0 -43684741#2_0 -107167209#0_0" intLanes=":1232172723_0_0 :1232172723_1_0 :1232172723_9_0 :1232172723_3_0 :1232172723_10_0 :1232172723_11_0 :1232172723_6_0 :1232172723_7_0 :1232172723_8_0" shape="672.55,1630.55 676.35,1625.28 667.94,1619.20 664.13,1624.47 664.69,1630.30 671.13,1631.16">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="000000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="1"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000010" foes="000100010" cont="0"/>
- <request index="7" response="000011010" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1233612841" type="priority" x="267.14" y="1604.67" incLanes="-107028581#0_0" intLanes=":1233612841_0_0" shape="267.14,1604.62 267.50,1601.44 266.77,1607.90 267.13,1604.72">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1239242543" type="priority" x="665.02" y="1652.48" incLanes="-107028581#2_0 107167209#0_0 107028581#1_0 -107167209#1_0" intLanes=":1239242543_0_0 :1239242543_1_0 :1239242543_16_0 :1239242543_17_0 :1239242543_4_0 :1239242543_5_0 :1239242543_6_0 :1239242543_7_0 :1239242543_8_0 :1239242543_9_0 :1239242543_18_0 :1239242543_19_0 :1239242543_12_0 :1239242543_13_0 :1239242543_14_0 :1239242543_15_0" shape="669.41,1656.27 670.17,1649.81 668.87,1648.15 662.43,1647.29 660.63,1648. [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1239242544" type="priority" x="640.45" y="2057.53" incLanes="-107166846#5_0 107166846#4_0 106836317#1_0" intLanes=":1239242544_0_0 :1239242544_9_0 :1239242544_10_0 :1239242544_3_0 :1239242544_4_0 :1239242544_11_0 :1239242544_6_0 :1239242544_7_0 :1239242544_8_0" shape="638.04,2061.40 644.36,2059.89 645.48,2058.12 644.83,2054.99 642.89,2053.68 636.56,2055.16 635.43,2056.92 636.07,2060.06">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="1239243628" type="priority" x="655.22" y="1125.89" incLanes="-106367427#1_0 -149819227#1_0 106367427#0_0 149819227#0_0" intLanes=":1239243628_0_0 :1239243628_1_0 :1239243628_2_0 :1239243628_3_0 :1239243628_4_0 :1239243628_5_0 :1239243628_16_0 :1239243628_17_0 :1239243628_8_0 :1239243628_9_0 :1239243628_10_0 :1239243628_11_0 :1239243628_12_0 :1239243628_13_0 :1239243628_18_0 :1239243628_19_0" shape="654.73,1131.72 660.42,1128.56 661.02,1126.56 658.04,1120.78 655.94,1120. [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1243159115" type="priority" x="1090.69" y="2108.82" incLanes="144874010#0_0 144874010#0_1 108329427#2_0" intLanes=":1243159115_0_0 :1243159115_1_0 :1243159115_2_0 :1243159115_3_0 :1243159115_5_0" shape="1094.16,2110.67 1091.13,2104.92 1081.61,2104.13 1079.66,2110.33 1079.02,2111.24 1082.02,2117.00">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="01000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00100" foes="00100" cont="1"/>
- </junction>
- <junction id="1243159116" type="priority" x="1082.77" y="2097.34" incLanes="-81523330#4_0 -81523330#4_1 -108329426#0_0 81523330#3_0 81523330#3_1" intLanes=":1243159116_0_0 :1243159116_1_0 :1243159116_2_0 :1243159116_11_0 :1243159116_4_0 :1243159116_5_0 :1243159116_6_0 :1243159116_7_0 :1243159116_8_0 :1243159116_9_0 :1243159116_12_0" shape="1084.23,2103.97 1078.11,2092.39 1075.35,2092.65 1074.37,2099.14 1078.38,2092.25 1084.51,2103.83">
- <request index="0" response="00000000000" foes="10000100000" cont="0"/>
- <request index="1" response="00000000000" foes="10000100000" cont="0"/>
- <request index="2" response="01110000000" foes="01111100000" cont="0"/>
- <request index="3" response="01100010000" foes="01100010000" cont="1"/>
- <request index="4" response="01100000000" foes="01100001000" cont="0"/>
- <request index="5" response="01100000111" foes="11100000111" cont="0"/>
- <request index="6" response="00010000100" foes="00010000100" cont="0"/>
- <request index="7" response="00000000000" foes="00001000100" cont="0"/>
- <request index="8" response="00000000000" foes="00000111100" cont="0"/>
- <request index="9" response="00000000000" foes="00000111100" cont="0"/>
- <request index="10" response="00000100011" foes="00000100011" cont="1"/>
- </junction>
- <junction id="1244292210" type="priority" x="1166.69" y="1743.45" incLanes="166625256#0_0 -166625256#1_0" intLanes=":1244292210_0_0 :1244292210_4_0 :1244292210_2_0 :1244292210_5_0" shape="1168.09,1739.06 1162.31,1742.03 1165.26,1747.82">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1244292219" type="priority" x="1081.72" y="1786.85" incLanes="166625256#1_0 -166625256#0_0" intLanes=":1244292219_0_0 :1244292219_4_0 :1244292219_2_0 :1244292219_5_0" shape="1086.09,1788.27 1083.13,1782.49 1077.35,1785.46">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1246731455" type="priority" x="1154.20" y="1084.13" incLanes="154844461#2_0 -108733428_0" intLanes=":1246731455_0_0 :1246731455_1_0 :1246731455_2_0 :1246731455_3_0 :1246731455_6_0 :1246731455_7_0" shape="1155.60,1086.58 1157.13,1083.76 1147.72,1079.54 1146.56,1080.34 1149.82,1084.81 1151.42,1087.58">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="0"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="1"/>
- <request index="5" response="000010" foes="000010" cont="1"/>
- </junction>
- <junction id="1246731457" type="priority" x="1191.33" y="1089.79" incLanes="108733430_0 154844491#0_0 154844491#0_1" intLanes=":1246731457_0_0 :1246731457_1_0 :1246731457_2_0 :1246731457_3_0 :1246731457_4_0" shape="1189.54,1093.37 1195.29,1090.34 1194.62,1087.51 1188.12,1087.42 1193.52,1086.96 1187.76,1089.98">
- <request index="0" response="11000" foes="11000" cont="0"/>
- <request index="1" response="00100" foes="00100" cont="0"/>
- <request index="2" response="00000" foes="00010" cont="0"/>
- <request index="3" response="00000" foes="00001" cont="0"/>
- <request index="4" response="00000" foes="00001" cont="0"/>
- </junction>
- <junction id="1246731460" type="priority" x="1166.50" y="1087.91" incLanes="108733429_0 154844461#0_0" intLanes=":1246731460_0_0 :1246731460_4_0 :1246731460_2_0 :1246731460_3_0" shape="1173.35,1095.67 1176.27,1089.79 1176.54,1088.76 1176.23,1085.57 1171.35,1087.29 1170.70,1090.42">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1246731466" type="priority" x="1143.83" y="1025.01" incLanes="108733425_0 166602674#0_0 166602674#0_1" intLanes=":1246731466_0_0 :1246731466_1_0 :1246731466_2_0 :1246731466_3_0 :1246731466_4_0" shape="1140.89,1027.49 1147.32,1026.64 1141.67,1027.87 1147.41,1024.82 1145.10,1020.41 1139.34,1023.41">
- <request index="0" response="11000" foes="11000" cont="0"/>
- <request index="1" response="00100" foes="00100" cont="0"/>
- <request index="2" response="00000" foes="00010" cont="0"/>
- <request index="3" response="00000" foes="00001" cont="0"/>
- <request index="4" response="00000" foes="00001" cont="0"/>
- </junction>
- <junction id="1246731470" type="priority" x="1204.48" y="1046.73" incLanes="170594822#2_0 170594822#2_1 -108733424_0" intLanes=":1246731470_0_0 :1246731470_1_0 :1246731470_2_0 :1246731470_3_0 :1246731470_5_0" shape="1205.87,1049.67 1202.67,1044.02 1201.65,1045.05 1204.88,1050.32">
- <request index="0" response="00000" foes="10000" cont="0"/>
- <request index="1" response="01000" foes="01000" cont="0"/>
- <request index="2" response="01000" foes="01000" cont="0"/>
- <request index="3" response="00000" foes="00110" cont="0"/>
- <request index="4" response="00001" foes="00001" cont="1"/>
- </junction>
- <junction id="1246731482" type="priority" x="1193.00" y="1076.70" incLanes="154844489#0_0 -108733430_0" intLanes=":1246731482_0_0 :1246731482_1_0 :1246731482_2_0 :1246731482_4_0" shape="1199.24,1069.08 1196.44,1067.53 1190.94,1076.66 1193.39,1078.72 1192.01,1069.49 1198.17,1071.57">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1246731504" type="priority" x="1142.53" y="1042.42" incLanes="-108733425_0 154844465#3_0" intLanes=":1246731504_0_0 :1246731504_4_0 :1246731504_2_0 :1246731504_3_0" shape="1150.12,1035.64 1147.70,1033.54 1147.49,1032.60 1141.00,1031.69 1143.13,1036.80 1146.09,1038.03">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1246731525" type="priority" x="1199.81" y="1056.38" incLanes="154844462_0 108733424_0" intLanes=":1246731525_0_0 :1246731525_1_0 :1246731525_2_0 :1246731525_4_0" shape="1198.08,1051.24 1201.28,1051.16 1200.53,1050.00 1198.93,1048.53">
- <request index="0" response="0000" foes="1100" cont="0"/>
- <request index="1" response="0000" foes="0100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1246731541" type="priority" x="1198.37" y="1029.90" incLanes="108733421_0 81547611_0" intLanes=":1246731541_0_0 :1246731541_4_0 :1246731541_2_0 :1246731541_3_0" shape="1201.81,1031.70 1198.63,1026.03 1195.83,1026.96 1196.68,1033.40">
- <request index="0" response="0000" foes="0000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0000" cont="0"/>
- </junction>
- <junction id="1246731544" type="traffic_light" x="1175.93" y="1027.69" incLanes="108733422_0 154844463_0" intLanes=":1246731544_0_0 :1246731544_4_0 :1246731544_5_0 :1246731544_3_0" shape="1175.53,1029.24 1176.32,1026.13 1176.75,1024.54 1175.09,1030.83">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="1"/>
- <request index="3" response="0001" foes="0011" cont="0"/>
- </junction>
- <junction id="1246731574" type="priority" x="1182.97" y="1030.16" incLanes="-108733421_0 154844479_0" intLanes=":1246731574_0_0 :1246731574_4_0 :1246731574_2_0 :1246731574_3_0" shape="1177.85,1032.92 1178.49,1026.45 1176.32,1026.14 1175.53,1029.24 1181.62,1029.29 1184.27,1031.10">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1246731576" type="priority" x="1138.83" y="1083.97" incLanes="108733428_0 111863125#0_0" intLanes=":1246731576_0_0 :1246731576_4_0 :1246731576_2_0 :1246731576_3_0" shape="1135.16,1088.32 1133.51,1082.00 1130.83,1086.66 1132.40,1089.45">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1246731601" type="priority" x="1130.65" y="1068.67" incLanes="-108733431_0 111549913#5_0" intLanes=":1246731601_0_0 :1246731601_4_0 :1246731601_2_0 :1246731601_3_0" shape="1139.82,1065.73 1138.35,1062.89 1137.69,1062.24 1132.12,1058.87 1133.51,1065.23 1135.08,1068.02">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1246731620" type="priority" x="1153.47" y="1018.17" incLanes="-108733422_0 81124943#1_0 81124943#1_1" intLanes=":1246731620_0_0 :1246731620_5_0 :1246731620_2_0 :1246731620_3_0 :1246731620_4_0" shape="1156.17,1030.19 1161.91,1027.14 1162.97,1026.91 1167.56,1021.57 1159.89,1023.37 1154.14,1026.40">
- <request index="0" response="00000" foes="11000" cont="0"/>
- <request index="1" response="00100" foes="00100" cont="1"/>
- <request index="2" response="00000" foes="00010" cont="0"/>
- <request index="3" response="00001" foes="00001" cont="0"/>
- <request index="4" response="00001" foes="00001" cont="0"/>
- </junction>
- <junction id="1246731627" type="priority" x="1138.62" y="1055.33" incLanes="108733431_0 154844465#1_0" intLanes=":1246731627_0_0 :1246731627_4_0 :1246731627_2_0 :1246731627_3_0" shape="1141.08,1050.54 1137.93,1049.99 1136.69,1052.60 1141.60,1056.86 1136.99,1056.92 1140.19,1056.98">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1246731647" type="priority" x="1182.25" y="1098.33" incLanes="154844485#0_0 154844485#0_1 -108733429_0" intLanes=":1246731647_0_0 :1246731647_1_0 :1246731647_2_0 :1246731647_3_0 :1246731647_5_0" shape="1180.39,1101.78 1186.14,1098.75 1184.43,1095.49 1178.67,1098.50 1182.55,1094.43 1178.51,1099.52">
- <request index="0" response="00000" foes="10000" cont="0"/>
- <request index="1" response="01000" foes="01000" cont="0"/>
- <request index="2" response="01000" foes="01000" cont="0"/>
- <request index="3" response="00000" foes="00110" cont="0"/>
- <request index="4" response="00001" foes="00001" cont="1"/>
- </junction>
- <junction id="1252775276" type="unregulated" x="634.90" y="2265.97" incLanes="109438141_0" intLanes="" shape="635.99,2267.14 633.80,2264.81">
- </junction>
- <junction id="1252777712" type="priority" x="727.32" y="2275.78" incLanes="81394188#2_0 109438232_0" intLanes=":1252777712_0_0 :1252777712_1_0" shape="726.44,2283.20 729.62,2282.89 730.51,2282.76 733.22,2280.98 729.16,2278.17 725.97,2278.48">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="1252777720" type="priority" x="776.84" y="2259.18" incLanes="-81523330#1_0 -81523330#1_1 109438231#1_0 81523330#0_0 81523330#0_1" intLanes=":1252777720_0_0 :1252777720_1_0 :1252777720_8_0 :1252777720_3_0 :1252777720_4_0 :1252777720_5_0 :1252777720_6_0 :1252777720_9_0" shape="781.23,2264.27 775.10,2252.69 775.16,2257.77 775.54,2260.95 772.45,2254.09 778.58,2265.67">
- <request index="0" response="00000000" foes="10010000" cont="0"/>
- <request index="1" response="00000000" foes="10010000" cont="0"/>
- <request index="2" response="01101000" foes="01101000" cont="1"/>
- <request index="3" response="01100000" foes="01100100" cont="0"/>
- <request index="4" response="01100011" foes="11100011" cont="0"/>
- <request index="5" response="00000000" foes="00011100" cont="0"/>
- <request index="6" response="00000000" foes="00011100" cont="0"/>
- <request index="7" response="00010011" foes="00010011" cont="1"/>
- </junction>
- <junction id="1257054074" type="priority" x="1359.69" y="1966.42" incLanes="38319546#0_0 154489992#1_0 154489992#1_1 -38319546#1_0" intLanes=":1257054074_0_0 :1257054074_1_0 :1257054074_2_0 :1257054074_3_0 :1257054074_4_0 :1257054074_5_0 :1257054074_6_0 :1257054074_7_0 :1257054074_8_0 :1257054074_9_0" shape="1358.97,1972.26 1364.79,1969.37 1365.50,1966.89 1362.33,1961.22 1360.32,1960.62 1354.56,1963.65 1353.82,1965.98 1356.99,1971.65">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="1257054077" type="priority" x="1080.63" y="2081.74" incLanes="109912572#4_0 -109912567#0_0" intLanes=":1257054077_0_0 :1257054077_4_0 :1257054077_2_0 :1257054077_5_0" shape="1082.14,2084.62 1079.08,2078.88 1079.20,2078.82 1082.10,2084.64">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1257054092" type="priority" x="1295.82" y="1944.12" incLanes="81394162#0_0 81394162#0_1 109912572#2_0 -109912572#3_0" intLanes=":1257054092_0_0 :1257054092_1_0 :1257054092_2_0 :1257054092_3_0 :1257054092_4_0 :1257054092_5_0 :1257054092_6_0 :1257054092_7_0 :1257054092_8_0 :1257054092_9_0" shape="1295.12,1949.90 1300.90,1946.95 1301.56,1944.94 1298.72,1939.10 1296.50,1938.44 1290.74,1941.46 1290.02,1943.56 1293.11,1949.28">
- <request index="0" response="0000000000" foes="1000010000" cont="0"/>
- <request index="1" response="0000000000" foes="0110110000" cont="0"/>
- <request index="2" response="0000000000" foes="0110110000" cont="0"/>
- <request index="3" response="0000000000" foes="0101110000" cont="0"/>
- <request index="4" response="0000001111" foes="1000001111" cont="0"/>
- <request index="5" response="0110001110" foes="0110001110" cont="0"/>
- <request index="6" response="0100001000" foes="0100001000" cont="0"/>
- <request index="7" response="0000000110" foes="0000100110" cont="0"/>
- <request index="8" response="0000001110" foes="0001101110" cont="0"/>
- <request index="9" response="0000010001" foes="0000010001" cont="0"/>
- </junction>
- <junction id="1257054108" type="priority" x="1307.17" y="1938.59" incLanes="109912572#1_0 133960538#1_0 133960538#1_1 -109912572#2_0" intLanes=":1257054108_0_0 :1257054108_1_0 :1257054108_2_0 :1257054108_3_0 :1257054108_4_0 :1257054108_5_0 :1257054108_6_0 :1257054108_7_0 :1257054108_8_0 :1257054108_9_0" shape="1306.77,1944.37 1312.39,1941.09 1313.01,1939.01 1309.80,1933.36 1307.81,1932.77 1302.04,1935.76 1301.40,1937.79 1304.25,1943.63">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="1257054127" type="priority" x="1363.40" y="1973.87" incLanes="144874008#0_0 -38319546#0_0" intLanes=":1257054127_0_0 :1257054127_1_0 :1257054127_2_0 :1257054127_3_0" shape="1368.37,1973.09 1366.90,1970.25 1364.90,1969.59 1359.08,1972.49 1358.45,1974.59 1359.90,1977.44">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1257054132" type="priority" x="759.16" y="2245.83" incLanes="109912567#1_0 37973565#3_0" intLanes=":1257054132_0_0 :1257054132_1_0 :1257054132_2_0 :1257054132_3_0" shape="758.10,2250.32 761.28,2249.93 765.19,2245.33 761.26,2240.15 759.85,2239.57 756.68,2240.04">
- <request index="0" response="1000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0001" cont="0"/>
- </junction>
- <junction id="1257054155" type="priority" x="1327.55" y="1933.37" incLanes="109912572#0_0 37449253#3_0 -109912572#1_0" intLanes=":1257054155_0_0 :1257054155_1_0 :1257054155_2_0 :1257054155_3_0 :1257054155_4_0 :1257054155_5_0 :1257054155_6_0 :1257054155_7_0 :1257054155_8_0" shape="1328.33,1938.32 1331.17,1936.84 1331.82,1934.82 1328.83,1929.04 1326.27,1927.31 1323.41,1928.76 1322.59,1930.09 1322.57,1936.59">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1257054162" type="priority" x="716.52" y="2257.84" incLanes="109912568_0" intLanes=":1257054162_0_0" shape="716.54,2257.88 718.11,2260.67 714.93,2255.00 716.49,2257.79">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1257054165" type="priority" x="1280.20" y="1952.56" incLanes="37449245#0_0 109912572#3_0 -109912572#4_0" intLanes=":1257054165_0_0 :1257054165_1_0 :1257054165_2_0 :1257054165_3_0 :1257054165_4_0 :1257054165_5_0 :1257054165_6_0 :1257054165_7_0 :1257054165_8_0" shape="1281.02,1957.51 1283.84,1956.01 1284.47,1953.95 1281.38,1948.23 1279.35,1947.62 1276.53,1949.13 1275.92,1951.17 1280.02,1957.21">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="000000000" foes="011011000" cont="0"/>
- <request index="2" response="000000000" foes="010111000" cont="0"/>
- <request index="3" response="000000111" foes="100000111" cont="0"/>
- <request index="4" response="011000110" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="0"/>
- <request index="6" response="000000010" foes="000010010" cont="0"/>
- <request index="7" response="000000110" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="1257054172" type="priority" x="1353.50" y="1954.26" incLanes="38319546#2_0 -139118805#2_0 -139118805#2_1 -38319546#3_0 139118805#1_0 139118805#1_1" intLanes=":1257054172_0_0 :1257054172_1_0 :1257054172_2_0 :1257054172_3_0 :1257054172_4_0 :1257054172_5_0 :1257054172_6_0 :1257054172_18_0 :1257054172_19_0 :1257054172_9_0 :1257054172_10_0 :1257054172_11_0 :1257054172_12_0 :1257054172_13_0 :1257054172_14_0 :1257054172_15_0 :1257054172_16_0 :1257054172_20_0" shape="1351.24,19 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="1257054178" type="right_before_left" x="1343.04" y="1925.34" incLanes="38319546#4_0 -38319546#5_0 -109912572#0_0" intLanes=":1257054178_0_0 :1257054178_1_0 :1257054178_2_0 :1257054178_3_0 :1257054178_4_0 :1257054178_5_0 :1257054178_6_0 :1257054178_7_0 :1257054178_8_0" shape="1342.19,1931.13 1348.06,1928.35 1343.78,1919.65 1338.00,1922.61 1337.23,1924.69 1340.22,1930.47">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1257054196" type="priority" x="600.71" y="2350.85" incLanes="-109912568_0" intLanes=":1257054196_0_0" shape="600.66,2350.87 597.67,2352.00 603.75,2349.69 600.76,2350.83">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1257054205" type="priority" x="1356.29" y="1959.95" incLanes="38319546#1_0 129780022#0_0 -38319546#2_0 -129780022#1_0" intLanes=":1257054205_0_0 :1257054205_1_0 :1257054205_2_0 :1257054205_3_0 :1257054205_4_0 :1257054205_5_0 :1257054205_6_0 :1257054205_16_0 :1257054205_8_0 :1257054205_9_0 :1257054205_10_0 :1257054205_11_0 :1257054205_12_0 :1257054205_13_0 :1257054205_17_0 :1257054205_18_0" shape="1355.63,1965.67 1361.38,1962.65 1362.09,1960.57 1359.06,1954.82 1357.07,19 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1257054208" type="priority" x="1066.75" y="2088.65" incLanes="108329426#1_0 109912567#0_0 -108329426#2_0 -109912567#1_0" intLanes=":1257054208_0_0 :1257054208_1_0 :1257054208_16_0 :1257054208_17_0 :1257054208_4_0 :1257054208_5_0 :1257054208_6_0 :1257054208_7_0 :1257054208_8_0 :1257054208_9_0 :1257054208_18_0 :1257054208_19_0 :1257054208_12_0 :1257054208_13_0 :1257054208_14_0 :1257054208_15_0" shape="1065.81,2094.31 1071.70,2091.56 1072.38,2089.48 1069.48,2083.66 1067.35 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1261880295" type="priority" x="1301.36" y="1663.09" incLanes="-110514869#0_0 -110514869#0_1 151167658#2_0" intLanes=":1261880295_0_0 :1261880295_5_0 :1261880295_2_0 :1261880295_3_0 :1261880295_4_0" shape="1296.13,1673.21 1290.06,1661.60 1287.24,1662.39 1287.44,1665.59 1296.41,1666.04 1298.75,1668.23">
- <request index="0" response="00000" foes="10000" cont="0"/>
- <request index="1" response="01100" foes="01100" cont="1"/>
- <request index="2" response="00000" foes="00010" cont="0"/>
- <request index="3" response="00000" foes="00010" cont="0"/>
- <request index="4" response="00001" foes="00001" cont="0"/>
- </junction>
- <junction id="1263725264" type="priority" x="1074.67" y="2101.63" incLanes="-108329427#1_0 -81523330#3_0 -81523330#3_1 108329427#0_0 81523330#2_0 81523330#2_1" intLanes=":1263725264_0_0 :1263725264_1_0 :1263725264_2_0 :1263725264_3_0 :1263725264_4_0 :1263725264_5_0 :1263725264_6_0 :1263725264_7_0 :1263725264_18_0 :1263725264_9_0 :1263725264_10_0 :1263725264_11_0 :1263725264_12_0 :1263725264_13_0 :1263725264_14_0 :1263725264_15_0 :1263725264_16_0 :1263725264_19_0" shape="1077.34,2109. [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="0"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="1263725266" type="priority" x="1080.63" y="2107.23" incLanes="-108329427#2_0 129780022#3_0 108329427#1_0 -129780022#4_0" intLanes=":1263725266_0_0 :1263725266_1_0 :1263725266_16_0 :1263725266_17_0 :1263725266_4_0 :1263725266_5_0 :1263725266_6_0 :1263725266_7_0 :1263725266_8_0 :1263725266_9_0 :1263725266_10_0 :1263725266_18_0 :1263725266_12_0 :1263725266_13_0 :1263725266_14_0 :1263725266_15_0" shape="1082.37,2111.18 1084.32,2104.98 1085.08,2108.54 1082.03,2102.80 1079.50 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1268463825" type="priority" x="1676.03" y="1992.80" incLanes="81096822#2_0" intLanes=":1268463825_0_0" shape="1675.98,1992.82 1673.13,1994.27 1678.92,1991.33 1676.07,1992.78">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1323557956" type="priority" x="739.90" y="1613.73" incLanes="117492209_0 37942667#0_0" intLanes=":1323557956_0_0 :1323557956_1_0" shape="745.28,1611.23 743.19,1608.80 742.26,1608.29 739.09,1607.86 738.43,1612.78 741.59,1613.28">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="1323557968" type="priority" x="796.46" y="1576.81" incLanes="108329425#3_0 -108329425#4_0" intLanes=":1323557968_0_0 :1323557968_1_0 :1323557968_6_0 :1323557968_3_0 :1323557968_7_0 :1323557968_8_0" shape="795.04,1581.17 800.82,1578.20 797.99,1572.68 792.21,1575.65 791.48,1577.77 793.04,1580.56">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="1"/>
- <request index="5" response="000010" foes="000010" cont="1"/>
- </junction>
- <junction id="1366723470" type="priority" x="766.44" y="922.99" incLanes="122302027#1_0" intLanes=":1366723470_0_0" shape="765.02,923.72 767.86,922.25 765.01,923.71">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1367073433" type="unregulated" x="713.63" y="784.35" incLanes="" intLanes="" shape="712.21,785.09 715.06,783.62">
- </junction>
- <junction id="1367073436" type="unregulated" x="709.93" y="785.79" incLanes="" intLanes="" shape="708.51,786.53 711.35,785.06">
- </junction>
- <junction id="1367073439" type="unregulated" x="781.54" y="916.57" incLanes="122302030_0 123339618_0" intLanes="" shape="780.81,918.64 783.65,917.16 782.28,914.50 779.44,915.97">
- </junction>
- <junction id="1367073442" type="priority" x="778.01" y="918.11" incLanes="123339619_0" intLanes=":1367073442_0_0" shape="776.59,918.84 779.43,917.37 776.59,918.84">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1367622316" type="unregulated" x="1749.26" y="2841.92" incLanes="122302035#1_0" intLanes="" shape="1750.80,2841.49 1747.72,2842.35">
- </junction>
- <junction id="1367622318" type="unregulated" x="1752.44" y="2840.21" incLanes="" intLanes="" shape="1753.99,2839.80 1750.90,2840.63 1753.90,2839.56 1750.98,2840.86">
- </junction>
- <junction id="1367855907" type="priority" x="1400.64" y="2204.94" incLanes="-122394834_0 122394853_0" intLanes=":1367855907_0_0 :1367855907_4_0 :1367855907_2_0 :1367855907_5_0" shape="1398.22,2207.34 1403.99,2204.35 1401.25,2201.60 1398.22,2207.34">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1367855909" type="priority" x="1408.45" y="2220.01" incLanes="122394860_0 -122394841#0_0 122394834_0 122394845_0" intLanes=":1367855909_0_0 :1367855909_1_0 :1367855909_2_0 :1367855909_3_0 :1367855909_4_0 :1367855909_5_0 :1367855909_16_0 :1367855909_17_0 :1367855909_8_0 :1367855909_9_0 :1367855909_10_0 :1367855909_11_0 :1367855909_12_0 :1367855909_13_0 :1367855909_18_0 :1367855909_19_0" shape="1407.76,2225.71 1413.52,2222.72 1414.17,2220.69 1411.17,2214.93 1409.15,2214.2 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1367855910" type="priority" x="1416.50" y="2235.50" incLanes="-122394860_0 122394859_0" intLanes=":1367855910_0_0 :1367855910_4_0 :1367855910_2_0 :1367855910_5_0" shape="1418.89,2233.06 1413.13,2236.06 1419.55,2237.03">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1367855923" type="priority" x="1407.85" y="2166.44" incLanes="129780019#1_0 122394864#2_0" intLanes=":1367855923_0_0 :1367855923_1_0 :1367855923_2_0 :1367855923_3_0" shape="1408.61,2171.41 1411.45,2169.95 1406.81,2161.47 1404.05,2163.07 1403.47,2165.06 1406.47,2170.83">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1367855925" type="priority" x="1380.10" y="2171.20" incLanes="122394833#5_0 23182484#1_0 -23182484#2_0" intLanes=":1367855925_0_0 :1367855925_1_0 :1367855925_2_0 :1367855925_3_0 :1367855925_4_0 :1367855925_9_0 :1367855925_6_0 :1367855925_10_0 :1367855925_11_0" shape="1379.42,2176.94 1385.19,2173.95 1385.80,2171.86 1382.75,2166.12 1374.36,2170.57 1377.41,2176.31">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1367855926" type="priority" x="1390.80" y="2175.25" incLanes="130443635#1_0 -122394864#1_0 122394864#0_0" intLanes=":1367855926_0_0 :1367855926_1_0 :1367855926_2_0 :1367855926_3_0 :1367855926_4_0 :1367855926_5_0 :1367855926_6_0 :1367855926_7_0 :1367855926_8_0" shape="1391.64,2180.28 1394.47,2178.79 1395.08,2176.73 1392.15,2170.93 1390.02,2170.32 1387.19,2171.81 1386.32,2174.13 1389.65,2179.72">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="000000000" foes="011011000" cont="0"/>
- <request index="2" response="000000000" foes="010111000" cont="0"/>
- <request index="3" response="000000111" foes="100000111" cont="0"/>
- <request index="4" response="011000110" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="0"/>
- <request index="6" response="000000010" foes="000010010" cont="0"/>
- <request index="7" response="000000110" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="1367855927" type="right_before_left" x="1384.24" y="2179.16" incLanes="122394833#4_0 -122394864#0_0 -122394833#5_0" intLanes=":1367855927_0_0 :1367855927_1_0 :1367855927_2_0 :1367855927_3_0 :1367855927_4_0 :1367855927_5_0 :1367855927_6_0 :1367855927_7_0 :1367855927_8_0" shape="1383.46,2184.71 1389.23,2181.71 1390.15,2179.42 1386.82,2173.84 1384.84,2173.27 1379.07,2176.27">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1367855929" type="right_before_left" x="1396.49" y="2202.76" incLanes="122394833#3_0 -122394853_0 -122394833#4_0" intLanes=":1367855929_0_0 :1367855929_1_0 :1367855929_2_0 :1367855929_3_0 :1367855929_4_0 :1367855929_5_0 :1367855929_6_0 :1367855929_7_0 :1367855929_8_0" shape="1394.30,2205.59 1400.07,2202.59 1397.20,2206.81 1400.23,2201.06 1397.76,2198.15 1391.99,2201.15">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1367855930" type="right_before_left" x="1406.19" y="2221.40" incLanes="122394833#2_0 -122394845_0 -122394833#3_0" intLanes=":1367855930_0_0 :1367855930_1_0 :1367855930_2_0 :1367855930_3_0 :1367855930_4_0 :1367855930_5_0 :1367855930_6_0 :1367855930_7_0 :1367855930_8_0" shape="1403.99,2224.23 1409.76,2221.23 1409.16,2223.38 1405.76,2217.84 1408.38,2218.57 1402.61,2221.57">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1367855931" type="right_before_left" x="1415.82" y="2239.95" incLanes="122394833#1_0 -122394859_0 -122394833#2_0" intLanes=":1367855931_0_0 :1367855931_1_0 :1367855931_2_0 :1367855931_3_0 :1367855931_4_0 :1367855931_5_0 :1367855931_6_0 :1367855931_7_0 :1367855931_8_0" shape="1414.12,2243.72 1419.89,2240.72 1419.42,2237.91 1412.99,2236.94 1418.02,2237.12 1412.25,2240.12">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1367855932" type="priority" x="1427.25" y="2261.94" incLanes="122394833#0_0 -122394833#1_0 23182387#3_0" intLanes=":1367855932_0_0 :1367855932_1_0 :1367855932_2_0 :1367855932_3_0 :1367855932_4_0 :1367855932_5_0 :1367855932_6_0 :1367855932_7_0 :1367855932_8_0" shape="1425.79,2266.19 1431.56,2263.19 1432.20,2261.16 1430.72,2258.32 1428.70,2257.69 1422.93,2260.68 1422.29,2262.71 1423.77,2265.55">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1367855969" type="priority" x="1612.08" y="2617.74" incLanes="-122394833#0_0" intLanes=":1367855969_0_0" shape="1612.03,2617.76 1609.19,2619.24 1614.96,2616.24 1612.12,2617.72">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844756" type="priority" x="1454.65" y="2206.40" incLanes="-122641559#0_0" intLanes=":1369844756_0_0" shape="1454.60,2206.42 1451.74,2207.85 1457.55,2204.95 1454.69,2206.38">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844757" type="priority" x="1450.57" y="2198.24" incLanes="122641559#0_0 -122394841#3_0 -122641559#1_0 122394841#2_0" intLanes=":1369844757_0_0 :1369844757_1_0 :1369844757_2_0 :1369844757_3_0 :1369844757_4_0 :1369844757_5_0 :1369844757_16_0 :1369844757_17_0 :1369844757_8_0 :1369844757_9_0 :1369844757_10_0 :1369844757_11_0 :1369844757_12_0 :1369844757_13_0 :1369844757_18_0 :1369844757_19_0" shape="1449.80,2203.96 1455.61,2201.05 1456.26,2198.97 1453.32,2193.17 1451.30 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1369844758" type="priority" x="1441.98" y="2212.57" incLanes="-122641556#0_0" intLanes=":1369844758_0_0" shape="1441.94,2212.60 1439.09,2214.06 1444.87,2211.09 1442.03,2212.55">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844760" type="priority" x="1446.09" y="2189.48" incLanes="122641559#1_0" intLanes=":1369844760_0_0" shape="1446.14,2189.46 1448.98,2188.00 1443.20,2190.96 1446.05,2189.50">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844762" type="priority" x="1437.90" y="2204.64" incLanes="122641556#0_0 -122394841#2_0 -122641556#1_0 122394841#1_0" intLanes=":1369844762_0_0 :1369844762_1_0 :1369844762_2_0 :1369844762_3_0 :1369844762_4_0 :1369844762_5_0 :1369844762_16_0 :1369844762_17_0 :1369844762_8_0 :1369844762_9_0 :1369844762_10_0 :1369844762_11_0 :1369844762_12_0 :1369844762_13_0 :1369844762_18_0 :1369844762_19_0" shape="1437.20,2210.37 1442.98,2207.40 1443.63,2205.39 1440.70,2199.59 1438.61 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1369844763" type="priority" x="1427.98" y="2219.57" incLanes="-122641560#0_0" intLanes=":1369844763_0_0" shape="1427.94,2219.59 1425.08,2221.04 1430.88,2218.11 1428.03,2219.55">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844770" type="priority" x="1433.51" y="2196.16" incLanes="122641556#1_0" intLanes=":1369844770_0_0" shape="1433.55,2196.13 1436.40,2194.66 1430.62,2197.65 1433.46,2196.18">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844772" type="priority" x="1424.09" y="2211.86" incLanes="122641560#0_0 -122394841#1_0 -122641560#1_0 122394841#0_0" intLanes=":1369844772_0_0 :1369844772_1_0 :1369844772_2_0 :1369844772_3_0 :1369844772_4_0 :1369844772_5_0 :1369844772_16_0 :1369844772_17_0 :1369844772_8_0 :1369844772_9_0 :1369844772_10_0 :1369844772_11_0 :1369844772_12_0 :1369844772_13_0 :1369844772_18_0 :1369844772_19_0" shape="1423.35,2217.60 1429.15,2214.67 1429.92,2212.48 1426.91,2206.72 1424.94 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1369844774" type="priority" x="1420.17" y="2203.58" incLanes="122641560#1_0" intLanes=":1369844774_0_0" shape="1420.22,2203.56 1423.11,2202.19 1417.24,2204.97 1420.13,2203.60">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844780" type="priority" x="1476.61" y="2280.66" incLanes="-122641557_0" intLanes=":1369844780_0_0" shape="1476.66,2280.64 1479.52,2279.20 1473.71,2282.12 1476.57,2280.68">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1369844786" type="priority" x="1481.20" y="2289.82" incLanes="122641557_0" intLanes=":1369844786_0_0" shape="1481.16,2289.84 1478.30,2291.28 1484.11,2288.37 1481.25,2289.80">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1373642446" type="priority" x="1632.17" y="2615.09" incLanes="-38318373#0_0" intLanes=":1373642446_0_0" shape="1632.13,2615.12 1629.77,2617.28 1634.57,2612.89 1632.20,2615.05">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1375799449" type="unregulated" x="987.55" y="0.00" incLanes="" intLanes="" shape="987.03,-1.51 988.08,1.51">
- </junction>
- <junction id="1375799451" type="unregulated" x="989.03" y="4.24" incLanes="123339612_0" intLanes="" shape="988.50,2.73 989.55,5.75">
- </junction>
- <junction id="13929737" type="priority" x="1291.53" y="1973.90" incLanes="139118808_0 44641744#1_0" intLanes=":13929737_0_0 :13929737_1_0 :13929737_2_0 :13929737_3_0" shape="1290.59,1977.83 1293.74,1977.28 1294.71,1969.25 1291.61,1968.30 1290.42,1968.39 1287.59,1969.89 1287.50,1974.24 1289.01,1977.06">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="13929747" type="priority" x="1345.18" y="1965.82" incLanes="129780022#1_0 37449253#6_0 -129780022#2_0" intLanes=":13929747_0_0 :13929747_1_0 :13929747_9_0 :13929747_3_0 :13929747_4_0 :13929747_5_0 :13929747_6_0 :13929747_10_0 :13929747_11_0" shape="1346.05,1970.78 1348.86,1969.25 1349.47,1967.23 1346.43,1961.48 1344.38,1960.87 1341.55,1962.36 1340.91,1964.43 1344.00,1970.15">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="13929752" type="traffic_light" x="1580.78" y="1842.16" incLanes="160587537#3_0 160587537#3_1" intLanes=":13929752_0_0" shape="1580.74,1842.18 1575.23,1845.62 1586.34,1838.69 1580.83,1842.13">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="13929775" type="traffic_light" x="938.10" y="1187.90" incLanes="149868584#6_0 149868584#6_1 101272424#5_0 -149868584#7_0 -149868584#7_1" intLanes=":13929775_0_0 :13929775_1_0 :13929775_2_0 :13929775_11_0 :13929775_4_0 :13929775_5_0 :13929775_12_0 :13929775_7_0 :13929775_8_0 :13929775_13_0 :13929775_14_0" shape="940.29,1195.91 943.16,1194.49 944.30,1191.90 937.81,1180.52 935.83,1179.93 932.98,1181.38 931.84,1183.93 938.32,1195.31">
- <request index="0" response="00000000000" foes="01000100000" cont="0"/>
- <request index="1" response="00000000000" foes="11001100000" cont="0"/>
- <request index="2" response="00000000000" foes="11001100000" cont="0"/>
- <request index="3" response="00110010000" foes="00110010000" cont="1"/>
- <request index="4" response="00110000000" foes="00110001000" cont="0"/>
- <request index="5" response="01110000111" foes="01110000111" cont="0"/>
- <request index="6" response="01110000110" foes="11110000110" cont="1"/>
- <request index="7" response="00000000000" foes="00001111000" cont="0"/>
- <request index="8" response="00000000000" foes="00001111000" cont="0"/>
- <request index="9" response="00000000111" foes="00001100111" cont="1"/>
- <request index="10" response="00001000110" foes="00001000110" cont="1"/>
- </junction>
- <junction id="13990620" type="priority" x="1765.26" y="719.21" incLanes="-149868584#0_0 -149868584#0_1" intLanes=":13990620_0_0" shape="1765.29,719.25 1769.49,724.21 1761.03,714.21 1765.23,719.17">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1431113444" type="priority" x="1501.00" y="2172.16" incLanes="197794762_0" intLanes=":1431113444_0_0" shape="1501.03,2172.21 1502.50,2175.05 1499.51,2169.28 1500.98,2172.12">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1457695393" type="priority" x="690.41" y="1872.35" incLanes="130443629#7_0 -59159262#1_0 -130443629#8_0 59159262#0_0" intLanes=":1457695393_0_0 :1457695393_1_0 :1457695393_16_0 :1457695393_17_0 :1457695393_4_0 :1457695393_5_0 :1457695393_6_0 :1457695393_7_0 :1457695393_8_0 :1457695393_9_0 :1457695393_18_0 :1457695393_19_0 :1457695393_12_0 :1457695393_13_0 :1457695393_14_0 :1457695393_15_0" shape="687.90,1878.05 694.34,1877.18 695.64,1875.73 695.79,1869.23 693.01,1866.86 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1457699220" type="right_before_left" x="823.20" y="1284.88" incLanes="-81672216#1_0 81672216#9_0 81672216#0_0" intLanes=":1457699220_0_0 :1457699220_1_0 :1457699220_2_0 :1457699220_3_0 :1457699220_4_0 :1457699220_5_0 :1457699220_6_0 :1457699220_7_0 :1457699220_8_0" shape="822.55,1290.56 828.28,1287.50 828.97,1285.40 825.82,1279.71 823.80,1279.12 818.07,1282.18">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1457699222" type="right_before_left" x="900.01" y="1299.30" incLanes="81672216#6_0 -81672216#7_0 81672209_0" intLanes=":1457699222_0_0 :1457699222_1_0 :1457699222_2_0 :1457699222_3_0 :1457699222_4_0 :1457699222_5_0 :1457699222_6_0 :1457699222_7_0 :1457699222_8_0" shape="899.31,1305.02 905.08,1302.03 900.47,1293.48 894.80,1296.65 894.20,1298.65 897.20,1304.42">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1457699223" type="right_before_left" x="907.70" y="1314.17" incLanes="81672216#5_0 -81672216#6_0 81672218_0" intLanes=":1457699223_0_0 :1457699223_1_0 :1457699223_2_0 :1457699223_3_0 :1457699223_4_0 :1457699223_5_0 :1457699223_6_0 :1457699223_7_0 :1457699223_8_0" shape="907.04,1319.87 912.78,1316.84 908.41,1308.47 902.64,1311.46 901.99,1313.48 905.00,1319.24">
- <request index="0" response="011000000" foes="011101000" cont="0"/>
- <request index="1" response="000000000" foes="100001000" cont="0"/>
- <request index="2" response="010010000" foes="010010000" cont="0"/>
- <request index="3" response="000000011" foes="110000011" cont="0"/>
- <request index="4" response="000000000" foes="010000100" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000011000" foes="000011101" cont="0"/>
- <request index="8" response="000001010" foes="000001010" cont="0"/>
- </junction>
- <junction id="1474873133" type="priority" x="865.67" y="1730.70" incLanes="-191176266_0 191176268_0" intLanes=":1474873133_0_0 :1474873133_4_0 :1474873133_2_0 :1474873133_5_0" shape="862.67,1731.97 868.84,1729.91 865.51,1730.49 862.67,1731.97">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1474873137" type="priority" x="872.46" y="1743.65" incLanes="-191176265_0" intLanes=":1474873137_0_0" shape="872.42,1743.69 869.95,1745.73 874.96,1741.58 872.49,1743.62">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1474873139" type="priority" x="798.41" y="1754.01" incLanes="191176262_0" intLanes=":1474873139_0_0" shape="798.39,1753.96 796.94,1751.11 799.88,1756.90 798.43,1754.05">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1479400627" type="priority" x="768.35" y="2260.03" incLanes="134572340#0_0 134572340#0_1 109438231#0_0" intLanes=":1479400627_0_0 :1479400627_1_0 :1479400627_2_0 :1479400627_3_0" shape="768.83,2263.58 770.74,2257.37 767.87,2256.48 765.96,2262.70">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0000" cont="0"/>
- </junction>
- <junction id="1482088973" type="priority" x="722.75" y="1765.70" incLanes="-134872478_0 59159266#0_0" intLanes=":1482088973_0_0 :1482088973_1_0 :1482088973_2_0 :1482088973_3_0" shape="721.29,1769.97 727.07,1767.01 727.68,1764.91 726.19,1762.07 717.78,1766.51 719.28,1769.34">
- <request index="0" response="1000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0001" cont="0"/>
- </junction>
- <junction id="1482088987" type="priority" x="762.95" y="1844.06" incLanes="-59159262#4_0 134872478_0 59159262#3_0" intLanes=":1482088987_0_0 :1482088987_9_0 :1482088987_10_0 :1482088987_3_0 :1482088987_4_0 :1482088987_5_0 :1482088987_6_0 :1482088987_7_0 :1482088987_11_0" shape="768.66,1844.78 765.69,1839.00 763.67,1838.35 757.89,1841.31 757.44,1843.23 760.40,1849.02">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1536917218" type="unregulated" x="683.21" y="346.28" incLanes="" intLanes="" shape="681.80,347.03 684.63,345.54">
- </junction>
- <junction id="1545661417" type="priority" x="1274.08" y="2216.55" incLanes="141191261#1_0 38230510#2_0" intLanes=":1545661417_0_0 :1545661417_1_0 :1545661417_2_0 :1545661417_3_0" shape="1274.13,2220.03 1276.95,2218.52 1277.57,2216.49 1276.05,2213.67 1270.47,2213.11 1269.13,2216.01 1269.16,2217.35 1270.66,2220.17">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="1545672785" type="priority" x="1247.38" y="2046.15" incLanes="141191248#2_0" intLanes=":1545672785_0_0" shape="1247.41,2046.20 1248.89,2049.03 1245.88,2043.27 1247.36,2046.11">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1545672787" type="priority" x="1192.85" y="2064.37" incLanes="139118804#1_0" intLanes=":1545672787_0_0 :1545672787_1_0" shape="1195.21,2064.92 1193.71,2062.10 1183.81,2067.37 1185.32,2070.19 1185.70,2070.65 1188.18,2072.67">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1545672788" type="priority" x="1267.69" y="2071.75" incLanes="141191250#5_0" intLanes=":1545672788_0_0" shape="1267.71,2071.80 1269.21,2074.62 1266.16,2068.88 1267.66,2071.71">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1545672797" type="right_before_left" x="1188.51" y="2080.15" incLanes="-141191248#2_0 141191263#1_0 141191248#1_0" intLanes=":1545672797_0_0 :1545672797_1_0 :1545672797_2_0 :1545672797_3_0 :1545672797_4_0 :1545672797_5_0 :1545672797_6_0 :1545672797_7_0 :1545672797_8_0" shape="1192.38,2080.34 1187.10,2076.55 1178.27,2086.80 1183.14,2091.11 1184.49,2091.44 1191.58,2093.05">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672804" type="right_before_left" x="1245.02" y="2083.81" incLanes="-141191252_0 -141191250#5_0 141191250#4_0" intLanes=":1545672804_0_0 :1545672804_1_0 :1545672804_2_0 :1545672804_3_0 :1545672804_4_0 :1545672804_5_0 :1545672804_6_0 :1545672804_7_0 :1545672804_8_0" shape="1244.18,2089.63 1250.06,2086.85 1250.61,2084.52 1247.56,2078.78 1239.16,2083.24 1242.22,2088.98">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672806" type="priority" x="1172.90" y="2088.98" incLanes="141191247#0_0 141191260#0_0 -141191247#1_0" intLanes=":1545672806_0_0 :1545672806_1_0 :1545672806_2_0 :1545672806_3_0 :1545672806_4_0 :1545672806_5_0 :1545672806_6_0 :1545672806_7_0 :1545672806_8_0" shape="1173.00,2093.52 1177.44,2088.79 1177.14,2086.29 1174.66,2084.27 1172.47,2084.41 1168.34,2089.43 1168.50,2091.51 1170.89,2093.64">
- <request index="0" response="000110000" foes="101110000" cont="0"/>
- <request index="1" response="000100000" foes="001100000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="111000001" cont="0"/>
- <request index="5" response="000000000" foes="011000011" cont="0"/>
- <request index="6" response="000110011" foes="000110011" cont="0"/>
- <request index="7" response="000111000" foes="000111100" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672819" type="right_before_left" x="1177.15" y="2092.96" incLanes="141191263#0_0 -141191263#1_0 -141191247#0_0" intLanes=":1545672819_0_0 :1545672819_1_0 :1545672819_2_0 :1545672819_3_0 :1545672819_4_0 :1545672819_5_0 :1545672819_6_0 :1545672819_7_0 :1545672819_8_0" shape="1176.38,2097.98 1182.13,2094.42 1182.79,2091.50 1177.93,2087.18 1175.84,2087.28 1171.39,2092.02">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672824" type="right_before_left" x="1250.63" y="2095.64" incLanes="141191259#0_0 141191252_0 -141191259#1_0" intLanes=":1545672824_0_0 :1545672824_1_0 :1545672824_2_0 :1545672824_3_0 :1545672824_4_0 :1545672824_5_0 :1545672824_6_0 :1545672824_7_0 :1545672824_8_0" shape="1254.79,2098.44 1254.06,2091.98 1251.42,2089.71 1245.54,2092.50 1244.78,2094.39 1247.10,2100.46">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672843" type="right_before_left" x="1191.03" y="2098.99" incLanes="141191248#0_0 -141191248#1_0 -141191263#0_0" intLanes=":1545672843_0_0 :1545672843_1_0 :1545672843_2_0 :1545672843_3_0 :1545672843_4_0 :1545672843_5_0 :1545672843_6_0 :1545672843_7_0 :1545672843_8_0" shape="1189.92,2103.35 1195.21,2099.53 1190.85,2090.12 1185.15,2094.06 1184.11,2095.25 1183.41,2101.78">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672852" type="priority" x="1277.60" y="2103.24" incLanes="141191259#5_0 -141191259#0_0" intLanes=":1545672852_0_0 :1545672852_4_0 :1545672852_2_0 :1545672852_5_0" shape="1275.34,2105.59 1280.26,2101.34 1279.38,2100.50 1275.34,2105.59">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1545672864" type="right_before_left" x="1197.19" y="2109.26" incLanes="-141191250#4_0 -141191248#0_0 141191250#3_0" intLanes=":1545672864_0_0 :1545672864_1_0 :1545672864_2_0 :1545672864_3_0 :1545672864_4_0 :1545672864_5_0 :1545672864_6_0 :1545672864_7_0 :1545672864_8_0" shape="1202.78,2109.96 1199.73,2104.22 1197.49,2103.39 1191.90,2106.69 1191.34,2108.69 1194.39,2114.43">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672874" type="right_before_left" x="1186.40" y="2115.00" incLanes="-141191262#0_0 -141191250#3_0 141191250#2_0" intLanes=":1545672874_0_0 :1545672874_1_0 :1545672874_2_0 :1545672874_3_0 :1545672874_4_0 :1545672874_5_0 :1545672874_6_0 :1545672874_7_0 :1545672874_8_0" shape="1185.24,2120.99 1191.25,2118.51 1191.84,2115.79 1188.78,2110.05 1180.35,2114.54 1183.40,2120.28">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672910" type="right_before_left" x="1227.08" y="2124.27" incLanes="-141191259#2_0 141191259#1_0 141191256#2_0" intLanes=":1545672910_0_0 :1545672910_1_0 :1545672910_2_0 :1545672910_3_0 :1545672910_4_0 :1545672910_5_0 :1545672910_6_0 :1545672910_7_0 :1545672910_8_0" shape="1224.45,2129.55 1230.90,2128.77 1230.78,2120.77 1224.32,2120.00 1221.68,2121.91 1222.79,2128.31">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672919" type="right_before_left" x="1189.89" y="2126.22" incLanes="-141191262#1_0 -141191256#2_0 141191262#0_0 141191256#1_0" intLanes=":1545672919_0_0 :1545672919_1_0 :1545672919_2_0 :1545672919_3_0 :1545672919_4_0 :1545672919_5_0 :1545672919_6_0 :1545672919_7_0 :1545672919_8_0 :1545672919_9_0 :1545672919_10_0 :1545672919_11_0 :1545672919_12_0 :1545672919_13_0 :1545672919_14_0 :1545672919_15_0" shape="1187.20,2131.82 1193.66,2131.17 1195.00,2129.77 1195.37,2123.28 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1545672923" type="priority" x="1274.93" y="2125.18" incLanes="141191255#1_0 -141191255#0_0" intLanes=":1545672923_0_0 :1545672923_4_0 :1545672923_2_0 :1545672923_5_0" shape="1273.72,2128.82 1278.73,2124.68 1272.72,2121.95">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1545672954" type="right_before_left" x="1286.23" y="2130.45" incLanes="-141191258#0_0 -141191259#5_0 141191259#4_0" intLanes=":1545672954_0_0 :1545672954_1_0 :1545672954_2_0 :1545672954_3_0 :1545672954_4_0 :1545672954_5_0 :1545672954_6_0 :1545672954_7_0 :1545672954_8_0" shape="1289.98,2135.78 1291.02,2128.97 1289.83,2126.77 1283.36,2126.18 1281.65,2134.44 1287.86,2136.31">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545672971" type="priority" x="1190.71" y="2134.12" incLanes="141191262#1_0" intLanes=":1545672971_0_0" shape="1190.66,2134.13 1187.48,2134.47 1193.94,2133.77 1190.76,2134.11">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1545672999" type="right_before_left" x="1276.17" y="2138.79" incLanes="141191257_0 -141191255#1_0 141191255#0_0" intLanes=":1545672999_0_0 :1545672999_1_0 :1545672999_2_0 :1545672999_3_0 :1545672999_4_0 :1545672999_5_0 :1545672999_6_0 :1545672999_7_0 :1545672999_8_0" shape="1277.66,2144.07 1281.62,2138.91 1280.87,2136.54 1275.01,2132.62 1269.45,2139.48 1275.29,2144.01">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000011" foes="101000011" cont="0"/>
- <request index="5" response="010000010" foes="010000010" cont="0"/>
- <request index="6" response="000011000" foes="000011110" cont="0"/>
- <request index="7" response="000000000" foes="000100010" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673030" type="right_before_left" x="1281.00" y="2142.63" incLanes="-141191259#4_0 -141191257_0 141191259#3_0" intLanes=":1545673030_0_0 :1545673030_1_0 :1545673030_2_0 :1545673030_3_0 :1545673030_4_0 :1545673030_5_0 :1545673030_6_0 :1545673030_7_0 :1545673030_8_0" shape="1286.37,2139.96 1280.84,2136.43 1279.04,2136.89 1274.88,2141.89 1275.14,2143.94 1279.88,2148.43">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673031" type="right_before_left" x="1300.95" y="2142.54" incLanes="-141191258#1_0 141191258#0_0 141191249#5_0" intLanes=":1545673031_0_0 :1545673031_1_0 :1545673031_2_0 :1545673031_3_0 :1545673031_4_0 :1545673031_5_0 :1545673031_6_0 :1545673031_7_0 :1545673031_8_0" shape="1300.23,2148.29 1306.02,2145.34 1301.80,2136.92 1295.71,2139.98 1295.19,2141.90 1298.22,2147.65">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673065" type="right_before_left" x="1122.59" y="2153.96" incLanes="-141191264#0_0 -141191250#2_0 141191250#1_0" intLanes=":1545673065_0_0 :1545673065_1_0 :1545673065_2_0 :1545673065_3_0 :1545673065_4_0 :1545673065_5_0 :1545673065_6_0 :1545673065_7_0 :1545673065_8_0" shape="1123.31,2159.01 1127.72,2154.19 1126.70,2151.43 1120.33,2149.96 1117.40,2153.24 1120.89,2158.73">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673067" type="right_before_left" x="1245.45" y="2152.18" incLanes="141191254#0_0 -141191259#3_0 141191259#2_0 -141191254#1_0" intLanes=":1545673067_0_0 :1545673067_1_0 :1545673067_2_0 :1545673067_3_0 :1545673067_4_0 :1545673067_5_0 :1545673067_6_0 :1545673067_7_0 :1545673067_8_0 :1545673067_9_0 :1545673067_10_0 :1545673067_11_0 :1545673067_12_0 :1545673067_13_0 :1545673067_14_0 :1545673067_15_0" shape="1245.61,2156.03 1247.65,2149.45 1245.37,2148.46 1244.09,2155.24">
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1545673092" type="right_before_left" x="1152.72" y="2157.95" incLanes="-141191264#1_0 -141191256#1_0 141191264#0_0 141191256#0_0" intLanes=":1545673092_0_0 :1545673092_1_0 :1545673092_2_0 :1545673092_3_0 :1545673092_4_0 :1545673092_5_0 :1545673092_6_0 :1545673092_7_0 :1545673092_8_0 :1545673092_9_0 :1545673092_10_0 :1545673092_11_0 :1545673092_12_0 :1545673092_13_0 :1545673092_14_0 :1545673092_15_0" shape="1157.31,2161.99 1158.29,2155.56 1156.82,2153.82 1150.09,2153.01 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1545673105" type="right_before_left" x="1110.81" y="2160.62" incLanes="-141191247#2_0 -141191250#1_0 141191247#1_0 141191250#0_0" intLanes=":1545673105_0_0 :1545673105_1_0 :1545673105_2_0 :1545673105_3_0 :1545673105_4_0 :1545673105_5_0 :1545673105_6_0 :1545673105_7_0 :1545673105_8_0 :1545673105_9_0 :1545673105_10_0 :1545673105_11_0 :1545673105_12_0 :1545673105_13_0 :1545673105_14_0 :1545673105_15_0" shape="1110.13,2166.44 1115.92,2163.48 1116.64,2161.09 1113.48,2155.41 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1545673118" type="priority" x="1103.66" y="2164.61" incLanes="23182517#3_0 -141191250#0_0 -23182517#4_0" intLanes=":1545673118_0_0 :1545673118_9_0 :1545673118_10_0 :1545673118_3_0 :1545673118_4_0 :1545673118_5_0 :1545673118_6_0 :1545673118_7_0 :1545673118_11_0" shape="1102.83,2170.19 1108.64,2167.27 1109.52,2165.06 1106.35,2159.39 1104.37,2158.78 1098.56,2161.69">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1545673123" type="right_before_left" x="1182.08" y="2163.41" incLanes="141191254#1_0 141191264#1_0 -141191254#2_0" intLanes=":1545673123_0_0 :1545673123_1_0 :1545673123_2_0 :1545673123_3_0 :1545673123_4_0 :1545673123_5_0 :1545673123_6_0 :1545673123_7_0 :1545673123_8_0" shape="1186.19,2164.99 1182.85,2159.38 1175.67,2158.85 1174.43,2165.23 1175.36,2166.92 1180.14,2173.44">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673135" type="right_before_left" x="1256.14" y="2166.14" incLanes="-141191249#5_0 -141191254#0_0 141191249#4_0" intLanes=":1545673135_0_0 :1545673135_1_0 :1545673135_2_0 :1545673135_3_0 :1545673135_4_0 :1545673135_5_0 :1545673135_6_0 :1545673135_7_0 :1545673135_8_0" shape="1261.79,2166.84 1258.76,2161.09 1256.74,2160.30 1251.03,2163.46 1250.36,2165.51 1253.39,2171.26">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673150" type="right_before_left" x="1309.98" y="2169.16" incLanes="-141191258#2_0 141191258#1_0 -141191253#0_0" intLanes=":1545673150_0_0 :1545673150_1_0 :1545673150_2_0 :1545673150_3_0 :1545673150_4_0 :1545673150_5_0 :1545673150_6_0 :1545673150_7_0 :1545673150_8_0" shape="1306.81,2173.95 1313.30,2173.84 1313.55,2164.82 1307.05,2164.46 1305.21,2165.97 1305.29,2172.47">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673191" type="right_before_left" x="1221.00" y="2184.66" incLanes="141191253#1_0 -141191249#4_0 141191249#3_0" intLanes=":1545673191_0_0 :1545673191_1_0 :1545673191_2_0 :1545673191_3_0 :1545673191_4_0 :1545673191_5_0 :1545673191_6_0 :1545673191_7_0 :1545673191_8_0" shape="1220.13,2190.47 1226.01,2187.72 1226.58,2185.39 1223.55,2179.64 1215.15,2184.05 1218.16,2189.81">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673218" type="right_before_left" x="1176.54" y="2190.64" incLanes="141191251#0_0 141191254#2_0 -141191251#1_0" intLanes=":1545673218_0_0 :1545673218_1_0 :1545673218_2_0 :1545673218_3_0 :1545673218_4_0 :1545673218_5_0 :1545673218_6_0 :1545673218_7_0 :1545673218_8_0" shape="1178.97,2194.81 1180.75,2188.43 1178.96,2183.90 1172.50,2185.30 1171.06,2186.90 1170.07,2193.47">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673223" type="right_before_left" x="1164.77" y="2191.70" incLanes="141191251#1_0 -141191256#0_0 -141191251#2_0" intLanes=":1545673223_0_0 :1545673223_1_0 :1545673223_2_0 :1545673223_3_0 :1545673223_4_0 :1545673223_5_0 :1545673223_6_0 :1545673223_7_0 :1545673223_8_0" shape="1169.53,2193.55 1166.61,2187.41 1162.73,2185.61 1158.62,2190.70 1158.82,2192.99 1163.05,2198.28">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673240" type="right_before_left" x="1256.69" y="2192.89" incLanes="141191253#0_0 -141191253#1_0 141191258#3_0" intLanes=":1545673240_0_0 :1545673240_1_0 :1545673240_2_0 :1545673240_3_0 :1545673240_4_0 :1545673240_5_0 :1545673240_6_0 :1545673240_7_0 :1545673240_8_0" shape="1260.69,2193.84 1256.62,2188.78 1247.04,2193.62 1250.32,2199.66 1251.40,2200.56 1258.12,2202.41">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673280" type="right_before_left" x="1190.28" y="2200.75" incLanes="-141191249#3_0 -141191251#0_0 141191249#2_0" intLanes=":1545673280_0_0 :1545673280_1_0 :1545673280_2_0 :1545673280_3_0 :1545673280_4_0 :1545673280_5_0 :1545673280_6_0 :1545673280_7_0 :1545673280_8_0" shape="1195.39,2201.74 1192.38,2195.98 1188.96,2194.49 1184.03,2198.75 1183.77,2200.50 1186.79,2206.25">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673304" type="right_before_left" x="1259.42" y="2208.43" incLanes="141191247#4_0 141191258#2_0 -141191258#3_0" intLanes=":1545673304_0_0 :1545673304_1_0 :1545673304_2_0 :1545673304_3_0 :1545673304_4_0 :1545673304_5_0 :1545673304_6_0 :1545673304_7_0 :1545673304_8_0" shape="1256.22,2213.32 1262.72,2213.25 1264.21,2211.78 1264.33,2205.28 1258.09,2202.17 1255.09,2210.08">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673319" type="priority" x="1259.48" y="2214.22" incLanes="-141191247#4_0 141191261#0_0 141191247#3_0" intLanes=":1545673319_0_0 :1545673319_1_0 :1545673319_2_0 :1545673319_3_0 :1545673319_4_0 :1545673319_5_0 :1545673319_6_0 :1545673319_7_0 :1545673319_8_0" shape="1264.24,2215.79 1264.22,2212.59 1262.70,2211.07 1256.20,2211.14 1254.71,2212.65 1254.73,2215.85 1256.23,2217.34 1262.73,2217.35">
- <request index="0" response="000100000" foes="010100000" cont="0"/>
- <request index="1" response="000101000" foes="110101000" cont="0"/>
- <request index="2" response="001010000" foes="001010000" cont="0"/>
- <request index="3" response="000000000" foes="111000010" cont="0"/>
- <request index="4" response="000000000" foes="001000100" cont="0"/>
- <request index="5" response="000000000" foes="011000011" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000101011" foes="000101011" cont="0"/>
- <request index="8" response="000001010" foes="000001010" cont="0"/>
- </junction>
- <junction id="1545673333" type="right_before_left" x="1151.68" y="2216.33" incLanes="-141191249#2_0 141191251#2_0 141191249#1_0" intLanes=":1545673333_0_0 :1545673333_1_0 :1545673333_2_0 :1545673333_3_0 :1545673333_4_0 :1545673333_5_0 :1545673333_6_0 :1545673333_7_0 :1545673333_8_0" shape="1155.44,2220.25 1156.57,2213.85 1155.46,2212.18 1148.80,2212.00 1147.14,2215.01 1150.12,2220.79">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1545673345" type="right_before_left" x="1141.83" y="2221.41" incLanes="-141191247#3_0 -141191249#1_0 141191247#2_0 141191249#0_0" intLanes=":1545673345_0_0 :1545673345_1_0 :1545673345_2_0 :1545673345_3_0 :1545673345_4_0 :1545673345_5_0 :1545673345_6_0 :1545673345_7_0 :1545673345_8_0 :1545673345_9_0 :1545673345_10_0 :1545673345_11_0 :1545673345_12_0 :1545673345_13_0 :1545673345_14_0 :1545673345_15_0" shape="1141.10,2227.14 1146.89,2224.18 1147.56,2222.11 1144.58,2216.34 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="1545673349" type="priority" x="1134.17" y="2225.37" incLanes="23182517#2_0 -141191249#0_0 -23182517#3_0" intLanes=":1545673349_0_0 :1545673349_9_0 :1545673349_10_0 :1545673349_3_0 :1545673349_4_0 :1545673349_5_0 :1545673349_6_0 :1545673349_7_0 :1545673349_11_0" shape="1133.38,2231.04 1139.19,2228.13 1139.92,2226.06 1136.93,2220.29 1134.93,2219.64 1129.12,2222.55">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1545673352" type="unregulated" x="1182.30" y="2237.30" incLanes="" intLanes="" shape="1183.06,2238.71 1181.54,2235.89">
- </junction>
- <junction id="1624003168" type="priority" x="923.06" y="806.24" incLanes="24573897#0_0 149419435#2_0" intLanes=":1624003168_0_0 :1624003168_1_0 :1624003168_2_0 :1624003168_3_0" shape="923.10,809.77 925.93,808.29 926.59,806.09 925.02,803.30 923.02,802.70 920.18,804.18 919.53,806.38 921.09,809.17">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1624003172" type="priority" x="780.92" y="885.89" incLanes="42976407#1_0" intLanes=":1624003172_0_0 :1624003172_1_0" shape="780.92,889.34 783.76,887.85 784.45,885.75 782.89,882.95 780.88,882.36 778.05,883.84">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1624003193" type="priority" x="855.69" y="843.99" incLanes="24573930#3_0 149419435#1_0" intLanes=":1624003193_0_0 :1624003193_1_0 :1624003193_2_0 :1624003193_3_0" shape="855.73,847.52 858.57,846.05 859.22,843.85 857.66,841.05 855.66,840.46 852.82,841.93 852.16,844.13 853.73,846.93">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="1624003199" type="priority" x="991.82" y="767.69" incLanes="81096816#3_0 149419435#3_0" intLanes=":1624003199_0_0 :1624003199_1_0" shape="991.86,771.22 994.70,769.74 991.83,764.25 988.99,765.73 988.29,767.84 989.86,770.63">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="1624020482" type="priority" x="938.16" y="1002.53" incLanes="24573930#1_0 149420179_0" intLanes=":1624020482_0_0 :1624020482_1_0" shape="938.13,1005.95 940.97,1004.47 941.71,1002.30 940.09,999.54 938.11,998.97 935.27,1000.45">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="1624020484" type="priority" x="1005.02" y="963.26" incLanes="24573897#2_0" intLanes=":1624020484_0_0 :1624020484_1_0" shape="1005.14,966.78 1007.94,965.24 1005.04,959.84 1002.21,961.32 1001.50,963.47 1003.12,966.23">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1624060630" type="priority" x="1421.20" y="874.99" incLanes="-149422210#1_0 149422210#0_0 166728377#1_0 -166728377#2_0 23566901#1_0" intLanes=":1624060630_0_0 :1624060630_1_0 :1624060630_2_0 :1624060630_3_0 :1624060630_25_0 :1624060630_5_0 :1624060630_26_0 :1624060630_27_0 :1624060630_8_0 :1624060630_28_0 :1624060630_10_0 :1624060630_11_0 :1624060630_12_0 :1624060630_13_0 :1624060630_14_0 :1624060630_15_0 :1624060630_16_0 :1624060630_17_0 :1624060630_18_0 :1624060630_19 [...]
- <request index="0" response="0000000000000000000000000" foes="0100010000000100001000000" cont="0"/>
- <request index="1" response="0000000000000000000000000" foes="1011101111001100011000000" cont="0"/>
- <request index="2" response="0000000000000000000000000" foes="0011100111101100111000000" cont="0"/>
- <request index="3" response="0000000000000000000000000" foes="0011000110010011111000000" cont="0"/>
- <request index="4" response="0010000100000010000100000" foes="0010000100000010000100000" cont="1"/>
- <request index="5" response="0000000000000000000000000" foes="0010000100000010000010000" cont="0"/>
- <request index="6" response="0000000000000000000001111" foes="0110010100000110000001111" cont="1"/>
- <request index="7" response="0000000000000000000001110" foes="1001101011001110000001110" cont="1"/>
- <request index="8" response="0000000000000000000001100" foes="0001100011101110000001100" cont="0"/>
- <request index="9" response="0001000010010000000001000" foes="0001000010010000000001000" cont="1"/>
- <request index="10" response="0000000000000000111101000" foes="0011000110000000111111000" cont="0"/>
- <request index="11" response="0000000000000000111000111" foes="0111010110000000111000111" cont="0"/>
- <request index="12" response="0000101001000000110000110" foes="1000101001000000110000110" cont="0"/>
- <request index="13" response="0000000000000000000001000" foes="0001000010000001000001000" cont="0"/>
- <request index="14" response="0000100001000000100000100" foes="0000100001000000100000100" cont="0"/>
- <request index="15" response="0000000000000000110000110" foes="1000100000101000110000110" cont="0"/>
- <request index="16" response="0000000000010110110001110" foes="1001100000010111110001110" cont="0"/>
- <request index="17" response="0000000000000110001101110" foes="1011100000000110001111110" cont="0"/>
- <request index="18" response="0000000000000000010000010" foes="1000000000001000010000010" cont="0"/>
- <request index="19" response="1111100000000100001000001" foes="1111100000000100001000001" cont="0"/>
- <request index="20" response="0000000111000000110000110" foes="0000010111101000110000110" cont="0"/>
- <request index="21" response="0000000110010110110001110" foes="0000010110010111110001110" cont="0"/>
- <request index="22" response="0000000100000110001101110" foes="0000010100000110001111110" cont="0"/>
- <request index="23" response="0000000000000100001000001" foes="0000010000000100001000001" cont="0"/>
- <request index="24" response="0000001111001000010000010" foes="0000011111001000010000010" cont="0"/>
- </junction>
- <junction id="1625774769" type="priority" x="1638.79" y="2492.24" incLanes="-197781817_0" intLanes=":1625774769_0_0" shape="1638.74,2492.26 1635.90,2493.74 1641.67,2490.74 1638.83,2492.21">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1627657715" type="priority" x="702.84" y="1103.36" incLanes="-179917803#0_0 149819222_0 149819227#3_0" intLanes=":1627657715_0_0 :1627657715_9_0 :1627657715_10_0 :1627657715_3_0 :1627657715_4_0 :1627657715_5_0 :1627657715_6_0 :1627657715_7_0 :1627657715_11_0" shape="708.16,1104.78 705.81,1098.72 703.43,1097.34 697.64,1100.29 696.92,1102.17 699.26,1108.23">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1627657783" type="priority" x="674.51" y="1047.62" incLanes="-149819222_0 -149819232#0_0" intLanes=":1627657783_0_0 :1627657783_1_0 :1627657783_2_0 :1627657783_3_0" shape="672.68,1051.20 678.48,1048.25 671.68,1044.78 672.68,1051.20">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1627657822" type="priority" x="637.79" y="1053.35" incLanes="-149819224_0 149819232#1_0 -149819232#2_0" intLanes=":1627657822_0_0 :1627657822_1_0 :1627657822_2_0 :1627657822_3_0 :1627657822_4_0 :1627657822_9_0 :1627657822_6_0 :1627657822_10_0 :1627657822_11_0" shape="637.65,1060.17 643.43,1057.20 644.22,1055.63 643.22,1049.21 633.49,1050.73 634.49,1057.15">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1627657825" type="priority" x="670.97" y="1117.78" incLanes="-149819227#2_0 149819224_0 149819227#1_0" intLanes=":1627657825_0_0 :1627657825_9_0 :1627657825_10_0 :1627657825_3_0 :1627657825_4_0 :1627657825_5_0 :1627657825_6_0 :1627657825_7_0 :1627657825_11_0" shape="676.68,1118.49 673.70,1112.71 671.68,1112.06 665.90,1115.04 665.26,1117.06 668.23,1122.84">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1634988377" type="priority" x="748.19" y="1445.93" incLanes="105254618_0 -130443630#3_0 130443630#2_0" intLanes=":1634988377_0_0 :1634988377_1_0 :1634988377_2_0 :1634988377_3_0 :1634988377_4_0 :1634988377_9_0 :1634988377_6_0 :1634988377_10_0 :1634988377_11_0" shape="752.33,1450.35 753.95,1444.05 752.05,1442.02 745.62,1441.08 744.23,1450.52 750.66,1451.46">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1639892546" type="right_before_left" x="1136.82" y="1024.60" incLanes="-197955309#1_0 -151164683_0 197955309#0_0" intLanes=":1639892546_0_0 :1639892546_1_0 :1639892546_2_0 :1639892546_3_0 :1639892546_4_0 :1639892546_5_0 :1639892546_6_0 :1639892546_7_0 :1639892546_8_0" shape="1142.64,1025.19 1139.59,1019.45 1137.60,1018.81 1131.76,1021.66 1131.22,1023.97 1134.36,1029.66">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1669480279" type="priority" x="1456.23" y="1559.65" incLanes="38319548#10_0 101272435#3_0 -38319548#11_0" intLanes=":1669480279_0_0 :1669480279_1_0 :1669480279_2_0 :1669480279_3_0 :1669480279_4_0 :1669480279_5_0 :1669480279_6_0 :1669480279_7_0 :1669480279_8_0" shape="1456.88,1564.32 1459.71,1562.83 1458.91,1562.93 1457.73,1555.96 1455.57,1554.97 1452.74,1556.47 1453.65,1556.14 1454.72,1563.33">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1669480280" type="priority" x="1469.16" y="1575.47" incLanes="38319548#9_0 -154844500#2_0 -38319548#10_0 154844500#1_0" intLanes=":1669480280_0_0 :1669480280_1_0 :1669480280_2_0 :1669480280_3_0 :1669480280_4_0 :1669480280_5_0 :1669480280_16_0 :1669480280_17_0 :1669480280_8_0 :1669480280_9_0 :1669480280_10_0 :1669480280_11_0 :1669480280_12_0 :1669480280_13_0 :1669480280_18_0 :1669480280_19_0" shape="1468.49,1581.19 1474.25,1578.17 1474.88,1576.15 1471.87,1570.39 1469.83, [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="1669480281" type="priority" x="1452.12" y="1584.37" incLanes="-154844500#0_0 154844491#1_0 154844491#1_1 160587542_0 160587542_1" intLanes=":1669480281_0_0 :1669480281_1_0 :1669480281_2_0 :1669480281_3_0 :1669480281_4_0 :1669480281_5_0 :1669480281_6_0 :1669480281_7_0 :1669480281_8_0 :1669480281_9_0" shape="1453.02,1592.98 1458.76,1589.93 1457.86,1585.04 1454.85,1579.28 1451.19,1575.72 1445.46,1578.77 1444.83,1580.79 1450.89,1592.40">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="1669480282" type="priority" x="1441.50" y="1589.92" incLanes="81124939#1_0 81124939#1_1 -154844503_0 -154844503_1 110514869#2_0 110514869#2_1" intLanes=":1669480282_0_0 :1669480282_1_0 :1669480282_2_0 :1669480282_3_0 :1669480282_4_0 :1669480282_5_0 :1669480282_6_0 :1669480282_7_0 :1669480282_8_0 :1669480282_9_0 :1669480282_10_0" shape="1442.40,1598.57 1448.14,1595.53 1448.77,1593.51 1442.71,1581.90 1440.61,1581.27 1434.86,1584.30 1434.23,1586.32 1440.29,1597.93">
- <request index="0" response="00000000000" foes="10000010000" cont="0"/>
- <request index="1" response="00000000000" foes="01110110000" cont="0"/>
- <request index="2" response="00000000000" foes="01110110000" cont="0"/>
- <request index="3" response="00000000000" foes="01001110000" cont="0"/>
- <request index="4" response="00000001111" foes="10000001111" cont="0"/>
- <request index="5" response="01110001110" foes="01110001110" cont="0"/>
- <request index="6" response="01000001000" foes="01000001000" cont="0"/>
- <request index="7" response="00000000110" foes="00000100110" cont="0"/>
- <request index="8" response="00000000110" foes="00000100110" cont="0"/>
- <request index="9" response="00000001110" foes="00001101110" cont="0"/>
- <request index="10" response="00000010001" foes="00000010001" cont="0"/>
- </junction>
- <junction id="1669480283" type="priority" x="1472.85" y="1591.19" incLanes="-38319548#8_0 101272435#5_0 38319548#7_0" intLanes=":1669480283_0_0 :1669480283_1_0 :1669480283_2_0 :1669480283_3_0 :1669480283_4_0 :1669480283_5_0 :1669480283_6_0 :1669480283_7_0 :1669480283_8_0" shape="1473.65,1596.14 1476.48,1594.65 1477.11,1592.62 1470.97,1585.90 1472.05,1586.24 1469.22,1587.73 1468.59,1589.75 1471.61,1595.51">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1669480284" type="priority" x="1459.45" y="1598.15" incLanes="-38319548#6_0 154844474#0_0 154844474#0_1 38319548#5_0" intLanes=":1669480284_0_0 :1669480284_1_0 :1669480284_2_0 :1669480284_3_0 :1669480284_4_0 :1669480284_5_0 :1669480284_6_0 :1669480284_7_0 :1669480284_8_0 :1669480284_9_0" shape="1458.83,1603.91 1464.57,1600.85 1465.20,1598.84 1462.21,1593.07 1460.07,1592.40 1454.33,1595.45 1453.71,1597.46 1456.69,1603.24">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="1669480286" type="priority" x="1448.77" y="1603.67" incLanes="81124939#0_0 81124939#0_1 -38319548#4_0 38319548#3_0" intLanes=":1669480286_0_0 :1669480286_1_0 :1669480286_2_0 :1669480286_3_0 :1669480286_4_0 :1669480286_5_0 :1669480286_6_0 :1669480286_7_0 :1669480286_8_0 :1669480286_9_0" shape="1448.13,1609.42 1453.87,1606.38 1454.51,1604.37 1451.52,1598.59 1449.41,1597.93 1443.67,1600.97 1443.03,1602.98 1446.02,1608.76">
- <request index="0" response="0000000000" foes="1000010000" cont="0"/>
- <request index="1" response="0000000000" foes="0110110000" cont="0"/>
- <request index="2" response="0000000000" foes="0110110000" cont="0"/>
- <request index="3" response="0000000000" foes="0101110000" cont="0"/>
- <request index="4" response="0000001111" foes="1000001111" cont="0"/>
- <request index="5" response="0110001110" foes="0110001110" cont="0"/>
- <request index="6" response="0100001000" foes="0100001000" cont="0"/>
- <request index="7" response="0000000110" foes="0000100110" cont="0"/>
- <request index="8" response="0000001110" foes="0001101110" cont="0"/>
- <request index="9" response="0000010001" foes="0000010001" cont="0"/>
- </junction>
- <junction id="1669480287" type="priority" x="1435.26" y="1610.66" incLanes="37771900#4_0 -38319548#3_0 38319548#2_0" intLanes=":1669480287_0_0 :1669480287_1_0 :1669480287_2_0 :1669480287_3_0 :1669480287_4_0 :1669480287_5_0 :1669480287_6_0 :1669480287_7_0 :1669480287_8_0" shape="1436.36,1615.65 1439.11,1614.02 1439.68,1612.04 1436.69,1606.27 1434.17,1605.68 1431.41,1607.31 1430.85,1609.29 1433.83,1615.06">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="000000000" foes="011011000" cont="0"/>
- <request index="2" response="000000000" foes="010111000" cont="0"/>
- <request index="3" response="000000111" foes="100000111" cont="0"/>
- <request index="4" response="011000110" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="0"/>
- <request index="6" response="000000010" foes="000010010" cont="0"/>
- <request index="7" response="000000110" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="1669480292" type="priority" x="1587.31" y="1819.14" incLanes="-81096822#1_0 81096822#0_0 172498387#3_0" intLanes=":1669480292_0_0 :1669480292_1_0 :1669480292_2_0 :1669480292_3_0 :1669480292_4_0 :1669480292_5_0 :1669480292_6_0 :1669480292_7_0 :1669480292_8_0" shape="1585.87,1823.40 1591.63,1820.39 1592.26,1818.33 1590.77,1815.50 1588.75,1814.87 1582.99,1817.88 1582.36,1819.94 1583.85,1822.77">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1670156969" type="unregulated" x="1583.27" y="1846.87" incLanes="" intLanes="" shape="1581.77,1843.99 1584.78,1849.75">
- </junction>
- <junction id="1718241040" type="priority" x="755.09" y="305.48" incLanes="151164683_0" intLanes=":1718241040_0_0" shape="755.12,305.44 757.14,302.96 753.03,307.99 755.05,305.52">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1719213140" type="priority" x="1244.80" y="1683.03" incLanes="38319549#1_0 -38319549#2_0 151167658#0_0" intLanes=":1719213140_0_0 :1719213140_1_0 :1719213140_2_0 :1719213140_3_0 :1719213140_4_0 :1719213140_5_0 :1719213140_6_0 :1719213140_7_0 :1719213140_8_0" shape="1243.36,1687.29 1249.12,1684.26 1249.75,1682.24 1248.27,1679.41 1246.15,1678.71 1240.44,1681.81 1239.82,1683.82 1241.31,1686.66">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1719213141" type="priority" x="1252.03" y="1696.80" incLanes="38319549#0_0 44738605#1_0 -38319549#1_0" intLanes=":1719213141_0_0 :1719213141_1_0 :1719213141_2_0 :1719213141_3_0 :1719213141_4_0 :1719213141_5_0 :1719213141_6_0 :1719213141_7_0 :1719213141_8_0" shape="1250.60,1701.07 1256.36,1698.05 1256.98,1695.98 1255.48,1693.15 1253.46,1692.53 1247.71,1695.55 1247.08,1697.62 1248.58,1700.44">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1719213509" type="priority" x="840.35" y="971.51" incLanes="38319550#11_0 -38319550#12_0 8272412#0_0" intLanes=":1719213509_0_0 :1719213509_1_0 :1719213509_2_0 :1719213509_3_0 :1719213509_4_0 :1719213509_5_0 :1719213509_6_0 :1719213509_7_0 :1719213509_8_0" shape="839.25,975.96 844.80,972.58 845.33,970.57 843.78,967.77 841.61,966.96 835.87,970.01 835.19,971.91 836.42,974.87">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1719213668" type="priority" x="789.27" y="881.21" incLanes="38319550#12_0 -38319550#13_0 149419435#0_0" intLanes=":1719213668_0_0 :1719213668_1_0 :1719213668_2_0 :1719213668_3_0 :1719213668_4_0 :1719213668_5_0 :1719213668_6_0 :1719213668_7_0 :1719213668_8_0" shape="787.87,885.55 793.63,882.55 794.25,880.25 792.68,877.46 790.68,876.86 784.91,879.86 784.30,882.16 785.87,884.95">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1719223322" type="priority" x="1073.63" y="1558.52" incLanes="81672207#1_0 105254616#1_0" intLanes=":1719223322_0_0 :1719223322_1_0 :1719223322_2_0 :1719223322_3_0" shape="1074.42,1563.45 1077.25,1561.95 1072.87,1553.55 1070.03,1555.02 1069.38,1557.04 1072.33,1562.83">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0000" foes="0100" cont="0"/>
- <request index="2" response="0010" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1719223329" type="priority" x="921.87" y="1598.37" incLanes="-105254616#1_0 191056427#1_0 105254616#0_0" intLanes=":1719223329_0_0 :1719223329_1_0 :1719223329_9_0 :1719223329_3_0 :1719223329_10_0 :1719223329_11_0 :1719223329_6_0 :1719223329_7_0 :1719223329_8_0" shape="925.41,1600.21 922.46,1594.42 919.62,1595.07 919.48,1601.57 919.54,1595.76 921.76,1601.87">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="000000000" foes="011110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000011" foes="101000011" cont="1"/>
- <request index="5" response="010000010" foes="010000010" cont="1"/>
- <request index="6" response="000011010" foes="000011110" cont="0"/>
- <request index="7" response="000000010" foes="000100010" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1726380179" type="traffic_light" x="820.60" y="440.63" incLanes="81096816#5_0" intLanes=":1726380179_0_0" shape="819.18,441.37 822.02,439.90 819.18,441.37">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1726380184" type="priority" x="681.18" y="1353.27" incLanes="160584981_0 37973569#7_0" intLanes=":1726380184_0_0 :1726380184_4_0 :1726380184_2_0 :1726380184_3_0" shape="679.82,1357.61 685.55,1354.55 686.06,1352.33 684.48,1349.55 676.22,1354.25 677.81,1357.03">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="1726380187" type="priority" x="712.82" y="1412.54" incLanes="160584980_0 -160584981_0" intLanes=":1726380187_0_0 :1726380187_1_0 :1726380187_2_0 :1726380187_4_0" shape="714.47,1419.05 717.30,1417.55 717.93,1416.90 719.37,1414.04 715.84,1411.30 710.10,1414.36">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="1726380193" type="priority" x="735.29" y="1423.83" incLanes="160584982#0_0 81394192#9_0" intLanes=":1726380193_0_0 :1726380193_1_0 :1726380193_2_0 :1726380193_3_0" shape="738.08,1426.31 738.98,1423.24 737.38,1420.34 734.21,1419.91 732.67,1420.72 731.23,1423.58 733.28,1426.98 736.46,1427.38">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="1726380194" type="priority" x="750.78" y="1428.36" incLanes="-130443630#4_0 160584982#1_0 130443630#3_0" intLanes=":1726380194_0_0 :1726380194_6_0 :1726380194_2_0 :1726380194_3_0 :1726380194_4_0 :1726380194_7_0" shape="754.51,1425.30 748.08,1424.36 746.42,1425.42 745.52,1428.49 747.17,1430.52 753.60,1431.47">
- <request index="0" response="000000" foes="101000" cont="0"/>
- <request index="1" response="010100" foes="010100" cont="1"/>
- <request index="2" response="010000" foes="010010" cont="0"/>
- <request index="3" response="010001" foes="110001" cont="0"/>
- <request index="4" response="000000" foes="001110" cont="0"/>
- <request index="5" response="001001" foes="001001" cont="1"/>
- </junction>
- <junction id="1726380195" type="priority" x="732.15" y="1448.85" incLanes="81394192#8_0" intLanes=":1726380195_0_0 :1726380195_1_0" shape="734.55,1442.56 731.37,1442.16 730.48,1442.32 727.66,1443.82 730.77,1447.11 733.94,1447.53">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="1726380204" type="priority" x="648.77" y="1609.36" incLanes="43684741#2_0 170088033_0 -43684741#3_0" intLanes=":1726380204_0_0 :1726380204_6_0 :1726380204_2_0 :1726380204_3_0 :1726380204_4_0 :1726380204_7_0" shape="646.85,1611.98 650.66,1606.71 647.93,1600.50 644.85,1601.37 644.05,1601.93 640.24,1607.20">
- <request index="0" response="000000" foes="101000" cont="0"/>
- <request index="1" response="010100" foes="010100" cont="1"/>
- <request index="2" response="010000" foes="010010" cont="0"/>
- <request index="3" response="010001" foes="110001" cont="0"/>
- <request index="4" response="000000" foes="001110" cont="0"/>
- <request index="5" response="001001" foes="001001" cont="1"/>
- </junction>
- <junction id="1726394722" type="traffic_light" x="1058.38" y="848.26" incLanes="-160587538#0_0 -160587538#0_1 8272412#4_0" intLanes=":1726394722_0_0 :1726394722_1_0 :1726394722_2_0" shape="1054.12,854.26 1065.74,848.23 1050.54,850.89 1052.12,853.67">
- <request index="0" response="110" foes="110" cont="0"/>
- <request index="1" response="000" foes="001" cont="0"/>
- <request index="2" response="000" foes="001" cont="0"/>
- </junction>
- <junction id="1726394723" type="priority" x="1163.83" y="1049.62" incLanes="-160587538#3_0 -160587538#3_1 160587538#2_0 160587538#2_1 111863096#1_0" intLanes=":1726394723_0_0 :1726394723_1_0 :1726394723_2_0 :1726394723_3_0 :1726394723_4_0 :1726394723_5_0 :1726394723_6_0 :1726394723_7_0 :1726394723_8_0" shape="1158.81,1054.09 1170.29,1047.78 1165.93,1050.25 1164.32,1047.48 1168.78,1045.08 1157.40,1051.56 1161.73,1049.00 1163.34,1051.76">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1726394724" type="traffic_light" x="1168.04" y="1057.27" incLanes="-160587538#4_0 -160587538#4_1 149868584#3_0 149868584#3_1 160587538#3_0 160587538#3_1 -149868584#4_0 -149868584#4_1" intLanes=":1726394724_0_0 :1726394724_1_0 :1726394724_18_0 :1726394724_19_0 :1726394724_4_0 :1726394724_5_0 :1726394724_6_0 :1726394724_20_0 :1726394724_21_0 :1726394724_9_0 :1726394724_10_0 :1726394724_22_0 :1726394724_23_0 :1726394724_13_0 :1726394724_14_0 :1726394724_15_0 :1726394724_24 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="1"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="1"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="1"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="1"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="1726394725" type="priority" x="1171.88" y="1065.08" incLanes="-160587538#5_0 -160587538#5_1 103851602#2_0 160587538#4_0 160587538#4_1" intLanes=":1726394725_0_0 :1726394725_1_0 :1726394725_2_0 :1726394725_3_0 :1726394725_4_0 :1726394725_5_0 :1726394725_6_0 :1726394725_7_0 :1726394725_8_0" shape="1166.77,1069.43 1178.38,1063.38 1173.98,1065.73 1172.40,1062.95 1177.09,1060.84 1165.34,1066.63 1169.79,1064.43 1171.37,1067.21">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1726394726" type="traffic_light" x="1446.82" y="1587.14" incLanes="-160587537#0_0 -160587537#0_1 -160587542_0 -160587542_1 160587538#7_0 160587538#7_1 154844503_0 154844503_1" intLanes=":1726394726_0_0 :1726394726_1_0 :1726394726_2_0 :1726394726_18_0 :1726394726_4_0 :1726394726_5_0 :1726394726_6_0 :1726394726_19_0 :1726394726_20_0 :1726394726_9_0 :1726394726_10_0 :1726394726_11_0 :1726394726_21_0 :1726394726_13_0 :1726394726_14_0 :1726394726_15_0 :1726394726_22_0 :17263 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="1"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="1"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="1726394727" type="priority" x="1453.88" y="1601.03" incLanes="-160587537#1_0 -160587537#1_1 -38319548#5_0 160587537#0_0 160587537#0_1 38319548#4_0" intLanes=":1726394727_0_0 :1726394727_1_0 :1726394727_2_0 :1726394727_3_0 :1726394727_18_0 :1726394727_5_0 :1726394727_6_0 :1726394727_7_0 :1726394727_8_0 :1726394727_9_0 :1726394727_10_0 :1726394727_11_0 :1726394727_12_0 :1726394727_19_0 :1726394727_14_0 :1726394727_15_0 :1726394727_16_0 :1726394727_17_0" shape="1448.78,160 [...]
- <request index="0" response="000000000000000000" foes="100001000001000000" cont="0"/>
- <request index="1" response="000000000000000000" foes="011111000011000000" cont="0"/>
- <request index="2" response="000000000000000000" foes="011111000011000000" cont="0"/>
- <request index="3" response="000000111000000000" foes="011000111111000000" cont="0"/>
- <request index="4" response="010000110000100000" foes="010000110000100000" cont="1"/>
- <request index="5" response="000000110000000000" foes="010000110000010000" cont="0"/>
- <request index="6" response="000001110000001111" foes="110001110000001111" cont="0"/>
- <request index="7" response="001101110000001110" foes="001111110000001110" cont="0"/>
- <request index="8" response="001000001000001000" foes="001000001000001000" cont="0"/>
- <request index="9" response="000000000000000000" foes="001000000100001000" cont="0"/>
- <request index="10" response="000000000000000000" foes="011000000011111000" cont="0"/>
- <request index="11" response="000000000000000000" foes="011000000011111000" cont="0"/>
- <request index="12" response="000000000000000111" foes="111000000011000111" cont="0"/>
- <request index="13" response="000100000010000110" foes="000100000010000110" cont="1"/>
- <request index="14" response="000000000000000110" foes="000010000010000110" cont="0"/>
- <request index="15" response="000001111000001110" foes="000001111110001110" cont="0"/>
- <request index="16" response="000001110001101110" foes="000001110001111110" cont="0"/>
- <request index="17" response="000001000001000001" foes="000001000001000001" cont="0"/>
- </junction>
- <junction id="1726394728" type="priority" x="1572.50" y="1826.82" incLanes="-160587537#2_0 -160587537#2_1 160587537#1_0 160587537#1_1 172498387#2_0" intLanes=":1726394728_0_0 :1726394728_1_0 :1726394728_11_0 :1726394728_12_0 :1726394728_4_0 :1726394728_5_0 :1726394728_6_0 :1726394728_13_0 :1726394728_8_0 :1726394728_9_0 :1726394728_10_0" shape="1568.14,1832.80 1579.90,1827.02 1580.38,1824.61 1578.93,1821.75 1576.90,1821.11 1565.30,1827.20 1564.59,1829.37 1566.16,1832.16">
- <request index="0" response="00000000000" foes="11110000000" cont="0"/>
- <request index="1" response="00000000000" foes="11110000000" cont="0"/>
- <request index="2" response="00001110000" foes="11001110000" cont="1"/>
- <request index="3" response="10001100000" foes="10001100000" cont="1"/>
- <request index="4" response="00000000000" foes="01000000100" cont="0"/>
- <request index="5" response="00000000000" foes="11000001100" cont="0"/>
- <request index="6" response="00000000000" foes="11000001100" cont="0"/>
- <request index="7" response="00100000011" foes="00100000011" cont="1"/>
- <request index="8" response="00000000011" foes="00010000011" cont="0"/>
- <request index="9" response="00001110111" foes="00001110111" cont="0"/>
- <request index="10" response="00001100111" foes="00001101111" cont="0"/>
- </junction>
- <junction id="1726394729" type="priority" x="1577.27" y="1836.52" incLanes="-160587537#3_0 -160587537#3_1 160587537#2_0 160587537#2_1 149408824#0_0 149408824#0_1" intLanes=":1726394729_0_0 :1726394729_1_0 :1726394729_2_0 :1726394729_3_0 :1726394729_4_0 :1726394729_5_0 :1726394729_6_0 :1726394729_7_0 :1726394729_8_0 :1726394729_9_0 :1726394729_10_0" shape="1574.48,1844.43 1585.60,1837.50 1586.14,1835.54 1583.11,1829.78 1580.97,1829.21 1569.21,1834.98 1568.70,1837.33 1571.71,1843.09">
- <request index="0" response="11110000000" foes="11111000000" cont="0"/>
- <request index="1" response="11100111000" foes="11100111000" cont="0"/>
- <request index="2" response="10000100000" foes="10000100000" cont="0"/>
- <request index="3" response="01100000000" foes="01100000010" cont="0"/>
- <request index="4" response="01100000000" foes="01100000010" cont="0"/>
- <request index="5" response="11100000000" foes="11100000110" cont="0"/>
- <request index="6" response="00010000001" foes="00010000001" cont="0"/>
- <request index="7" response="00000000000" foes="00001000001" cont="0"/>
- <request index="8" response="00000000000" foes="00000111011" cont="0"/>
- <request index="9" response="00000000000" foes="00000111011" cont="0"/>
- <request index="10" response="00000000000" foes="00000100111" cont="0"/>
- </junction>
- <junction id="1780219331" type="priority" x="820.14" y="1034.90" incLanes="42976406#2_0 42976406#2_1 42976406#2_2 -166576464#2_0 166576464#1_0" intLanes=":1780219331_0_0 :1780219331_1_0 :1780219331_2_0 :1780219331_3_0 :1780219331_4_0 :1780219331_5_0 :1780219331_6_0 :1780219331_7_0 :1780219331_8_0 :1780219331_9_0 :1780219331_10_0" shape="818.08,1041.46 826.73,1036.85 827.79,1032.11 823.32,1027.40 821.52,1027.11 812.88,1031.74 813.26,1034.98 816.39,1040.67">
- <request index="0" response="00000000000" foes="10000100000" cont="0"/>
- <request index="1" response="00000000000" foes="01101100000" cont="0"/>
- <request index="2" response="00000000000" foes="01101100000" cont="0"/>
- <request index="3" response="00000000000" foes="01101100000" cont="0"/>
- <request index="4" response="00000000000" foes="01011100000" cont="0"/>
- <request index="5" response="00000011111" foes="10000011111" cont="0"/>
- <request index="6" response="01100011110" foes="01100011110" cont="0"/>
- <request index="7" response="01000010000" foes="01000010000" cont="0"/>
- <request index="8" response="00000001110" foes="00001001110" cont="0"/>
- <request index="9" response="00000011110" foes="00011011110" cont="0"/>
- <request index="10" response="00000100001" foes="00000100001" cont="0"/>
- </junction>
- <junction id="1780219332" type="priority" x="934.51" y="1161.26" incLanes="38319550#8_0 -38319550#9_0 166576468#3_0" intLanes=":1780219332_0_0 :1780219332_1_0 :1780219332_2_0 :1780219332_3_0 :1780219332_4_0 :1780219332_5_0 :1780219332_6_0 :1780219332_7_0 :1780219332_8_0" shape="933.81,1166.98 939.58,1163.99 935.21,1155.56 929.44,1158.55 928.78,1160.58 931.79,1166.34">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219335" type="right_before_left" x="860.88" y="1140.91" incLanes="166576462#7_0 -166576462#8_0 -166576466#0_0" intLanes=":1780219335_0_0 :1780219335_1_0 :1780219335_2_0 :1780219335_3_0 :1780219335_4_0 :1780219335_5_0 :1780219335_6_0 :1780219335_7_0 :1780219335_8_0" shape="860.23,1146.59 865.96,1143.54 861.54,1135.18 855.78,1138.20 855.15,1140.21 858.13,1145.99">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219341" type="priority" x="909.11" y="1223.86" incLanes="166576462#3_0 37973569#2_0 -166576462#4_0" intLanes=":1780219341_0_0 :1780219341_1_0 :1780219341_2_0 :1780219341_3_0 :1780219341_4_0 :1780219341_5_0 :1780219341_6_0 :1780219341_7_0 :1780219341_8_0" shape="907.35,1228.39 913.43,1226.08 914.09,1222.91 912.52,1220.12 910.52,1219.52 904.75,1222.51 903.95,1224.93 905.51,1227.72">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1780219342" type="priority" x="833.43" y="1022.26" incLanes="-166576464#3_0 154500693#0_0 154500693#0_1 154500693#0_2 166576464#2_0" intLanes=":1780219342_0_0 :1780219342_1_0 :1780219342_2_0 :1780219342_3_0 :1780219342_4_0 :1780219342_5_0 :1780219342_6_0 :1780219342_7_0 :1780219342_8_0 :1780219342_9_0 :1780219342_10_0" shape="831.98,1030.12 840.68,1025.62 841.17,1018.18 836.22,1013.97 834.56,1013.78 825.86,1018.28 825.72,1025.11 830.20,1029.82">
- <request index="0" response="00001110000" foes="01001110000" cont="0"/>
- <request index="1" response="00011110000" foes="11011110000" cont="0"/>
- <request index="2" response="00100001000" foes="00100001000" cont="0"/>
- <request index="3" response="00000000000" foes="00100000100" cont="0"/>
- <request index="4" response="00000000000" foes="01100000011" cont="0"/>
- <request index="5" response="00000000000" foes="01100000011" cont="0"/>
- <request index="6" response="00000000000" foes="01100000011" cont="0"/>
- <request index="7" response="00000000000" foes="11100000010" cont="0"/>
- <request index="8" response="00011111000" foes="00011111100" cont="0"/>
- <request index="9" response="00011110011" foes="00011110011" cont="0"/>
- <request index="10" response="00010000010" foes="00010000010" cont="0"/>
- </junction>
- <junction id="1780219343" type="priority" x="897.67" y="1180.47" incLanes="42976406#1_0 42976406#1_1 42976406#1_2 -166576468#1_0 166576468#0_0" intLanes=":1780219343_0_0 :1780219343_1_0 :1780219343_2_0 :1780219343_3_0 :1780219343_4_0 :1780219343_5_0 :1780219343_6_0 :1780219343_7_0 :1780219343_8_0 :1780219343_9_0 :1780219343_10_0" shape="895.60,1187.01 904.25,1182.40 904.87,1180.38 901.87,1174.62 899.74,1173.94 891.09,1178.55 890.47,1180.56 893.47,1186.33">
- <request index="0" response="00000000000" foes="10000100000" cont="0"/>
- <request index="1" response="00000000000" foes="01101100000" cont="0"/>
- <request index="2" response="00000000000" foes="01101100000" cont="0"/>
- <request index="3" response="00000000000" foes="01101100000" cont="0"/>
- <request index="4" response="00000000000" foes="01011100000" cont="0"/>
- <request index="5" response="00000011111" foes="10000011111" cont="0"/>
- <request index="6" response="01100011110" foes="01100011110" cont="0"/>
- <request index="7" response="01000010000" foes="01000010000" cont="0"/>
- <request index="8" response="00000001110" foes="00001001110" cont="0"/>
- <request index="9" response="00000011110" foes="00011011110" cont="0"/>
- <request index="10" response="00000100001" foes="00000100001" cont="0"/>
- </junction>
- <junction id="1780219344" type="right_before_left" x="846.36" y="1148.40" incLanes="166576466#0_0 -166576463_0 -166576466#1_0" intLanes=":1780219344_0_0 :1780219344_1_0 :1780219344_2_0 :1780219344_3_0 :1780219344_4_0 :1780219344_5_0 :1780219344_6_0 :1780219344_7_0 :1780219344_8_0" shape="853.55,1148.35 850.57,1142.57 849.12,1141.77 842.64,1142.25 841.63,1147.21 844.65,1152.97">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219345" type="priority" x="786.51" y="1179.73" incLanes="166576466#2_0 -130443630#10_0 130443630#9_0" intLanes=":1780219345_0_0 :1780219345_1_0 :1780219345_2_0 :1780219345_3_0 :1780219345_4_0 :1780219345_9_0 :1780219345_6_0 :1780219345_10_0 :1780219345_11_0" shape="795.00,1178.99 792.01,1173.22 790.90,1172.42 784.47,1171.46 782.83,1182.37 789.26,1183.33">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1780219348" type="right_before_left" x="843.27" y="1107.37" incLanes="166576463_0 166576462#8_0 -166576462#9_0" intLanes=":1780219348_0_0 :1780219348_1_0 :1780219348_2_0 :1780219348_3_0 :1780219348_4_0 :1780219348_5_0 :1780219348_6_0 :1780219348_7_0 :1780219348_8_0" shape="841.32,1124.77 847.81,1124.28 848.39,1124.11 854.15,1121.09 851.73,1116.75 845.94,1119.71">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219352" type="priority" x="911.50" y="1173.27" incLanes="-166576468#2_0 154500693#1_0 154500693#1_1 154500693#1_2 166576468#1_0" intLanes=":1780219352_0_0 :1780219352_1_0 :1780219352_2_0 :1780219352_3_0 :1780219352_4_0 :1780219352_5_0 :1780219352_6_0 :1780219352_7_0 :1780219352_8_0 :1780219352_9_0 :1780219352_10_0" shape="909.34,1179.75 918.04,1175.24 918.69,1173.18 915.68,1167.42 913.67,1166.78 904.96,1171.28 904.32,1173.34 907.32,1179.11">
- <request index="0" response="00001110000" foes="01001110000" cont="0"/>
- <request index="1" response="00011110000" foes="11011110000" cont="0"/>
- <request index="2" response="00100001000" foes="00100001000" cont="0"/>
- <request index="3" response="00000000000" foes="00100000100" cont="0"/>
- <request index="4" response="00000000000" foes="01100000011" cont="0"/>
- <request index="5" response="00000000000" foes="01100000011" cont="0"/>
- <request index="6" response="00000000000" foes="01100000011" cont="0"/>
- <request index="7" response="00000000000" foes="11100000010" cont="0"/>
- <request index="8" response="00011111000" foes="00011111100" cont="0"/>
- <request index="9" response="00011110011" foes="00011110011" cont="0"/>
- <request index="10" response="00010000010" foes="00010000010" cont="0"/>
- </junction>
- <junction id="1780219353" type="priority" x="901.34" y="1208.86" incLanes="166576462#4_0 37973572#0_0 37973572#0_1 -166576462#5_0 -37973572#1_0 -37973572#1_1" intLanes=":1780219353_0_0 :1780219353_1_0 :1780219353_2_0 :1780219353_3_0 :1780219353_4_0 :1780219353_5_0 :1780219353_6_0 :1780219353_18_0 :1780219353_19_0 :1780219353_9_0 :1780219353_10_0 :1780219353_11_0 :1780219353_12_0 :1780219353_13_0 :1780219353_14_0 :1780219353_15_0 :1780219353_20_0 :1780219353_21_0" shape="902.22,1217.6 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="1780219355" type="priority" x="791.37" y="1147.45" incLanes="-166576459_0 -130443630#11_0 130443630#10_0" intLanes=":1780219355_0_0 :1780219355_1_0 :1780219355_2_0 :1780219355_3_0 :1780219355_4_0 :1780219355_9_0 :1780219355_6_0 :1780219355_10_0 :1780219355_11_0" shape="795.07,1153.84 798.69,1148.44 795.11,1144.41 788.69,1143.44 787.17,1153.52 793.60,1154.48">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="1780219359" type="priority" x="924.37" y="1227.56" incLanes="133960539#1_0 133960539#1_1 166576462#2_0 -166576462#3_0" intLanes=":1780219359_0_0 :1780219359_1_0 :1780219359_2_0 :1780219359_3_0 :1780219359_4_0 :1780219359_5_0 :1780219359_6_0 :1780219359_7_0 :1780219359_8_0 :1780219359_9_0" shape="923.63,1233.37 929.45,1230.47 930.18,1228.11 927.10,1222.39 925.11,1221.76 919.29,1224.66 918.53,1227.05 921.65,1232.75">
- <request index="0" response="0000000000" foes="1000010000" cont="0"/>
- <request index="1" response="0000000000" foes="0110110000" cont="0"/>
- <request index="2" response="0000000000" foes="0110110000" cont="0"/>
- <request index="3" response="0000000000" foes="0101110000" cont="0"/>
- <request index="4" response="0000001111" foes="1000001111" cont="0"/>
- <request index="5" response="0110001110" foes="0110001110" cont="0"/>
- <request index="6" response="0100001000" foes="0100001000" cont="0"/>
- <request index="7" response="0000000110" foes="0000100110" cont="0"/>
- <request index="8" response="0000001110" foes="0001101110" cont="0"/>
- <request index="9" response="0000010001" foes="0000010001" cont="0"/>
- </junction>
- <junction id="1780219360" type="priority" x="894.17" y="1195.25" incLanes="166576462#5_0 -166576462#6_0 37973568#4_0" intLanes=":1780219360_0_0 :1780219360_1_0 :1780219360_2_0 :1780219360_3_0 :1780219360_4_0 :1780219360_5_0 :1780219360_6_0 :1780219360_7_0 :1780219360_8_0" shape="892.78,1199.58 898.53,1196.55 899.07,1194.36 897.51,1191.56 894.44,1190.37 889.35,1194.42 888.98,1196.32 890.54,1199.12">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="1780219361" type="priority" x="935.02" y="1221.81" incLanes="166576462#1_0 42976405#2_0 42976405#2_1 -166576462#2_0" intLanes=":1780219361_0_0 :1780219361_1_0 :1780219361_2_0 :1780219361_3_0 :1780219361_4_0 :1780219361_5_0 :1780219361_6_0 :1780219361_7_0 :1780219361_8_0 :1780219361_9_0" shape="934.34,1227.57 940.12,1224.58 940.75,1222.47 937.73,1216.72 935.71,1216.08 929.94,1219.07 929.25,1221.23 932.33,1226.95">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="1780219362" type="priority" x="926.50" y="1165.44" incLanes="-166576468#3_0 101272424#2_0 166576468#2_0" intLanes=":1780219362_0_0 :1780219362_1_0 :1780219362_2_0 :1780219362_3_0 :1780219362_4_0 :1780219362_5_0 :1780219362_6_0 :1780219362_7_0 :1780219362_8_0" shape="927.29,1170.39 930.13,1168.90 930.76,1166.88 927.75,1161.12 925.71,1160.49 922.88,1161.97 922.24,1163.99 925.25,1169.76">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1780219363" type="priority" x="846.02" y="1007.46" incLanes="-166576464#4_0 101272424#0_0 166576464#3_0" intLanes=":1780219363_0_0 :1780219363_1_0 :1780219363_2_0 :1780219363_3_0 :1780219363_4_0 :1780219363_5_0 :1780219363_6_0 :1780219363_7_0 :1780219363_8_0" shape="847.15,1013.28 850.01,1011.85 851.19,1007.20 846.86,1002.35 845.07,1002.01 842.21,1003.44 840.55,1008.87 845.50,1013.08">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1780219365" type="priority" x="959.00" y="1208.51" incLanes="38319550#2_0 -38319550#3_0 -166576462#0_0" intLanes=":1780219365_0_0 :1780219365_1_0 :1780219365_2_0 :1780219365_3_0 :1780219365_4_0 :1780219365_5_0 :1780219365_6_0 :1780219365_7_0 :1780219365_8_0" shape="959.06,1213.97 965.62,1207.84 959.81,1203.00 954.03,1205.99 953.25,1208.23 956.65,1213.77">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219366" type="right_before_left" x="788.36" y="1034.38" incLanes="-166576464#0_0 -166576461#1_0 166576461#0_0" intLanes=":1780219366_0_0 :1780219366_1_0 :1780219366_2_0 :1780219366_3_0 :1780219366_4_0 :1780219366_5_0 :1780219366_6_0 :1780219366_7_0 :1780219366_8_0" shape="792.55,1038.20 793.39,1031.75 789.96,1030.02 784.03,1032.69 784.41,1038.45 790.82,1039.49">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219369" type="right_before_left" x="886.89" y="1186.10" incLanes="166576462#6_0 -166576468#0_0 -166576462#7_0" intLanes=":1780219369_0_0 :1780219369_1_0 :1780219369_2_0 :1780219369_3_0 :1780219369_4_0 :1780219369_5_0 :1780219369_6_0 :1780219369_7_0 :1780219369_8_0" shape="887.73,1192.38 892.82,1188.33 893.21,1186.46 890.21,1180.70 887.00,1180.70 881.73,1184.49">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219371" type="priority" x="852.00" y="1002.12" incLanes="38319550#10_0 -38319550#11_0 166576464#4_0" intLanes=":1780219371_0_0 :1780219371_1_0 :1780219371_2_0 :1780219371_3_0 :1780219371_4_0 :1780219371_5_0 :1780219371_6_0 :1780219371_7_0 :1780219371_8_0" shape="851.73,1008.66 857.50,1005.67 853.04,997.05 847.26,1000.04 845.59,1003.48 849.92,1008.33">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219373" type="right_before_left" x="814.82" y="1037.83" incLanes="-166576464#1_0 166576464#0_0 166576462#9_0" intLanes=":1780219373_0_0 :1780219373_1_0 :1780219373_2_0 :1780219373_3_0 :1780219373_4_0 :1780219373_5_0 :1780219373_6_0 :1780219373_7_0 :1780219373_8_0" shape="819.29,1039.08 816.16,1033.38 810.78,1034.02 809.94,1040.47 811.35,1042.16 817.85,1042.48">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219374" type="right_before_left" x="816.31" y="1164.16" incLanes="166576466#1_0 166576459_0 -166576466#2_0" intLanes=":1780219374_0_0 :1780219374_1_0 :1780219374_2_0 :1780219374_3_0 :1780219374_4_0 :1780219374_5_0 :1780219374_6_0 :1780219374_7_0 :1780219374_8_0" shape="820.85,1165.44 817.84,1159.68 812.33,1157.58 808.71,1162.98 808.63,1164.51 811.65,1170.27">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="1780219377" type="priority" x="951.10" y="1213.37" incLanes="166576462#0_0 42976410#2_0 -166576462#1_0" intLanes=":1780219377_0_0 :1780219377_1_0 :1780219377_2_0 :1780219377_3_0 :1780219377_4_0 :1780219377_5_0 :1780219377_6_0 :1780219377_7_0 :1780219377_8_0" shape="952.15,1218.16 955.03,1216.69 955.66,1214.38 952.26,1208.84 950.30,1208.29 947.45,1209.74 946.92,1211.89 949.94,1217.64">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="1780381201" type="priority" x="781.87" y="286.40" incLanes="38319548#16_0" intLanes=":1780381201_0_0" shape="781.91,286.37 784.68,284.77 779.06,288.03 781.83,286.42">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1780623649" type="priority" x="943.97" y="1747.10" incLanes="166625259_0" intLanes=":1780623649_0_0" shape="943.94,1747.06 942.50,1744.20 945.43,1750.00 943.99,1747.15">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="1812395450" type="unregulated" x="624.39" y="1523.01" incLanes="" intLanes="" shape="622.85,1523.45 625.93,1522.58">
- </junction>
- <junction id="1817657657" type="unregulated" x="1534.95" y="841.27" incLanes="170590354#2_0 170590354#2_1" intLanes="" shape="1533.38,838.42 1536.52,844.11">
- </junction>
- <junction id="1817657658" type="unregulated" x="1542.68" y="855.81" incLanes="" intLanes="" shape="1541.08,852.98 1544.28,858.63">
- </junction>
- <junction id="1843239244" type="unregulated" x="947.95" y="650.66" incLanes="166602674#2_0 166602674#2_1" intLanes="" shape="945.08,652.18 950.82,649.14">
- </junction>
- <junction id="1903640411" type="priority" x="660.44" y="1135.29" incLanes="179917801_0 106367427#1_0" intLanes=":1903640411_0_0 :1903640411_2_0" shape="659.77,1137.37 662.56,1135.82 662.55,1132.40 656.87,1135.55">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="1"/>
- </junction>
- <junction id="1913728534" type="traffic_light" x="1295.97" y="1300.91" incLanes="-160587538#7_0 -160587538#7_1 160587538#6_0 160587538#6_1" intLanes=":1913728534_0_0 :1913728534_1_0 :1913728534_6_0 :1913728534_3_0 :1913728534_4_0 :1913728534_7_0" shape="1290.18,1303.96 1301.77,1297.86 1290.18,1303.96">
- <request index="0" response="000000" foes="100000" cont="0"/>
- <request index="1" response="000000" foes="100000" cont="0"/>
- <request index="2" response="011000" foes="011000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000000" foes="000100" cont="0"/>
- <request index="5" response="000011" foes="000011" cont="1"/>
- </junction>
- <junction id="2004733211" type="priority" x="1465.13" y="2867.89" incLanes="23182358#2_0" intLanes=":2004733211_0_0" shape="1465.08,2867.90 1461.96,2868.61 1468.30,2867.17 1465.18,2867.88">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="2006433692" type="priority" x="1338.16" y="2034.12" incLanes="-190048065_0 132323955_0" intLanes=":2006433692_0_0 :2006433692_4_0 :2006433692_2_0 :2006433692_5_0" shape="1335.28,2035.62 1341.04,2032.61 1335.28,2035.62">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="2006433732" type="unregulated" x="1691.14" y="2453.43" incLanes="81096855#1_0" intLanes="" shape="1692.56,2452.68 1689.72,2454.17">
- </junction>
- <junction id="2016414174" type="unregulated" x="922.23" y="1589.47" incLanes="" intLanes="" shape="922.14,1587.87 922.31,1591.07">
- </junction>
- <junction id="2016414184" type="right_before_left" x="836.73" y="1633.45" incLanes="-191056427#1_0 191056428_0 191056427#0_0" intLanes=":2016414184_0_0 :2016414184_1_0 :2016414184_2_0 :2016414184_3_0 :2016414184_4_0 :2016414184_5_0" shape="847.26,1633.40 845.23,1627.23 844.78,1626.56 842.36,1624.47 840.49,1628.80 842.51,1634.97">
- <request index="0" response="000000" foes="100100" cont="0"/>
- <request index="1" response="011000" foes="011000" cont="0"/>
- <request index="2" response="000001" foes="110001" cont="0"/>
- <request index="3" response="000000" foes="010010" cont="0"/>
- <request index="4" response="001100" foes="001110" cont="0"/>
- <request index="5" response="000101" foes="000101" cont="0"/>
- </junction>
- <junction id="2016414185" type="priority" x="827.09" y="1636.61" incLanes="108329425#1_0 -191056427#0_0 -108329425#2_0" intLanes=":2016414185_0_0 :2016414185_9_0 :2016414185_10_0 :2016414185_3_0 :2016414185_4_0 :2016414185_5_0 :2016414185_6_0 :2016414185_7_0 :2016414185_11_0" shape="824.88,1639.43 830.66,1636.46 832.16,1638.37 830.14,1632.19 828.03,1631.32 822.24,1634.28">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="2017759586" type="priority" x="858.83" y="1723.33" incLanes="191176261_0 -191176262_0" intLanes=":2017759586_0_0 :2017759586_4_0 :2017759586_2_0 :2017759586_5_0" shape="857.51,1727.65 863.19,1724.47 854.57,1721.85 857.51,1727.65">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="2017759588" type="priority" x="875.15" y="1726.33" incLanes="69931595#1_0 -69931595#2_0 -191176268_0" intLanes=":2017759588_0_0 :2017759588_1_0 :2017759588_9_0 :2017759588_3_0 :2017759588_10_0 :2017759588_11_0 :2017759588_6_0 :2017759588_7_0 :2017759588_8_0" shape="874.11,1731.40 879.88,1728.42 875.43,1719.80 869.65,1722.78 868.88,1724.46 870.36,1730.79">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="000000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="1"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000010" foes="000100010" cont="0"/>
- <request index="7" response="000011010" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="2017759592" type="priority" x="863.56" y="1731.79" incLanes="191176264_0 -191176261_0" intLanes=":2017759592_0_0 :2017759592_4_0 :2017759592_2_0 :2017759592_5_0" shape="860.98,1733.77 866.32,1730.07 860.65,1733.24">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="2017759594" type="right_before_left" x="868.35" y="1738.70" incLanes="-191176263_0 191176265_0 191176266_0 -191176264_0" intLanes=":2017759594_0_0 :2017759594_1_0 :2017759594_2_0 :2017759594_3_0 :2017759594_4_0 :2017759594_5_0 :2017759594_6_0 :2017759594_7_0 :2017759594_8_0 :2017759594_9_0 :2017759594_10_0 :2017759594_11_0 :2017759594_12_0 :2017759594_13_0 :2017759594_14_0 :2017759594_15_0" shape="866.09,1741.66 871.41,1737.30 870.76,1735.67 865.02,1739.60">
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="2017759596" type="priority" x="870.93" y="1744.65" incLanes="-191176267_0 191176263_0" intLanes=":2017759596_0_0 :2017759596_4_0 :2017759596_2_0 :2017759596_5_0" shape="868.21,1746.44 873.84,1743.18 867.87,1745.77">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="2017759615" type="priority" x="858.28" y="1762.79" incLanes="191176267_0" intLanes=":2017759615_0_0" shape="858.26,1762.75 856.82,1759.89 859.75,1765.69 858.31,1762.84">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="2079750190" type="right_before_left" x="1477.48" y="2184.33" incLanes="197781817_0 -197794762_0 122394841#3_0" intLanes=":2079750190_0_0 :2079750190_1_0 :2079750190_2_0 :2079750190_3_0 :2079750190_4_0 :2079750190_5_0 :2079750190_6_0 :2079750190_7_0 :2079750190_8_0" shape="1476.83,2190.07 1482.58,2187.04 1483.21,2185.02 1480.23,2179.25 1471.79,2183.62 1474.77,2189.39">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="2081499947" type="priority" x="1165.60" y="1009.23" incLanes="37640550#4_0 197955309#5_0" intLanes=":2081499947_0_0 :2081499947_1_0 :2081499947_2_0 :2081499947_3_0" shape="1166.36,1014.20 1169.20,1012.74 1164.85,1004.29 1162.00,1005.76 1161.30,1007.83 1164.35,1013.57">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="2081499948" type="priority" x="1155.52" y="1014.57" incLanes="38319548#15_0 -197955309#5_0 -38319548#16_0 197955309#4_0" intLanes=":2081499948_0_0 :2081499948_1_0 :2081499948_2_0 :2081499948_3_0 :2081499948_4_0 :2081499948_5_0 :2081499948_16_0 :2081499948_17_0 :2081499948_8_0 :2081499948_9_0 :2081499948_10_0 :2081499948_11_0 :2081499948_12_0 :2081499948_13_0 :2081499948_18_0 :2081499948_19_0" shape="1154.89,1020.40 1160.66,1017.40 1161.27,1015.20 1158.22,1009.46 1156.21 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="2081499949" type="priority" x="1152.48" y="1016.31" incLanes="-197955309#4_0 81124943#0_0 81124943#0_1 197955309#3_0" intLanes=":2081499949_0_0 :2081499949_1_0 :2081499949_2_0 :2081499949_3_0 :2081499949_4_0 :2081499949_5_0 :2081499949_6_0 :2081499949_7_0 :2081499949_8_0 :2081499949_9_0" shape="1150.31,1019.15 1156.06,1016.11 1157.14,1017.39 1153.91,1011.75 1153.08,1010.49 1147.34,1013.54 1146.76,1015.66 1149.81,1021.40">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="2081499950" type="priority" x="1147.09" y="1019.16" incLanes="-160587538#1_0 -160587538#1_1 -197955309#3_0 160587538#0_0 160587538#0_1 197955309#2_0" intLanes=":2081499950_0_0 :2081499950_1_0 :2081499950_2_0 :2081499950_3_0 :2081499950_18_0 :2081499950_5_0 :2081499950_6_0 :2081499950_7_0 :2081499950_8_0 :2081499950_9_0 :2081499950_10_0 :2081499950_11_0 :2081499950_12_0 :2081499950_19_0 :2081499950_14_0 :2081499950_15_0 :2081499950_16_0 :2081499950_17_0" shape="1141.97,1 [...]
- <request index="0" response="000000000000000000" foes="100001000001000000" cont="0"/>
- <request index="1" response="000000000000000000" foes="011111000011000000" cont="0"/>
- <request index="2" response="000000000000000000" foes="011111000011000000" cont="0"/>
- <request index="3" response="000000111000000000" foes="011000111111000000" cont="0"/>
- <request index="4" response="010000110000100000" foes="010000110000100000" cont="1"/>
- <request index="5" response="000000110000000000" foes="010000110000010000" cont="0"/>
- <request index="6" response="000001110000001111" foes="110001110000001111" cont="0"/>
- <request index="7" response="001101110000001110" foes="001111110000001110" cont="0"/>
- <request index="8" response="001000001000001000" foes="001000001000001000" cont="0"/>
- <request index="9" response="000000000000000000" foes="001000000100001000" cont="0"/>
- <request index="10" response="000000000000000000" foes="011000000011111000" cont="0"/>
- <request index="11" response="000000000000000000" foes="011000000011111000" cont="0"/>
- <request index="12" response="000000000000000111" foes="111000000011000111" cont="0"/>
- <request index="13" response="000100000010000110" foes="000100000010000110" cont="1"/>
- <request index="14" response="000000000000000110" foes="000010000010000110" cont="0"/>
- <request index="15" response="000001111000001110" foes="000001111110001110" cont="0"/>
- <request index="16" response="000001110001101110" foes="000001110001111110" cont="0"/>
- <request index="17" response="000001000001000001" foes="000001000001000001" cont="0"/>
- </junction>
- <junction id="2081499951" type="priority" x="1142.14" y="1021.77" incLanes="166602674#1_0 166602674#1_1 -197955309#2_0 197955309#1_0" intLanes=":2081499951_0_0 :2081499951_1_0 :2081499951_2_0 :2081499951_3_0 :2081499951_4_0 :2081499951_5_0 :2081499951_6_0 :2081499951_7_0 :2081499951_8_0 :2081499951_9_0" shape="1140.94,1026.51 1146.71,1023.51 1147.87,1022.43 1144.85,1016.67 1142.83,1016.04 1137.06,1019.04 1136.40,1021.14 1139.45,1026.88">
- <request index="0" response="0000000000" foes="1000010000" cont="0"/>
- <request index="1" response="0000000000" foes="0110110000" cont="0"/>
- <request index="2" response="0000000000" foes="0110110000" cont="0"/>
- <request index="3" response="0000000000" foes="0101110000" cont="0"/>
- <request index="4" response="0000001111" foes="1000001111" cont="0"/>
- <request index="5" response="0110001110" foes="0110001110" cont="0"/>
- <request index="6" response="0100001000" foes="0100001000" cont="0"/>
- <request index="7" response="0000000110" foes="0000100110" cont="0"/>
- <request index="8" response="0000001110" foes="0001101110" cont="0"/>
- <request index="9" response="0000010001" foes="0000010001" cont="0"/>
- </junction>
- <junction id="2081499952" type="priority" x="1128.61" y="1029.11" incLanes="81096816#0_0 -197955309#0_0" intLanes=":2081499952_0_0 :2081499952_1_0 :2081499952_2_0 :2081499952_3_0" shape="1129.50,1034.05 1132.30,1032.50 1132.89,1030.47 1129.76,1024.77 1127.72,1024.18 1124.92,1025.73">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="2265767389" type="priority" x="1433.12" y="897.93" incLanes="-149422193#1_0 149422193#0_0 170590354#1_0 170590354#1_1" intLanes=":2265767389_0_0 :2265767389_1_0 :2265767389_2_0 :2265767389_3_0 :2265767389_4_0 :2265767389_5_0 :2265767389_6_0 :2265767389_7_0 :2265767389_8_0 :2265767389_9_0" shape="1432.48,903.74 1438.25,900.74 1438.95,898.38 1435.76,892.72 1433.76,892.12 1428.00,895.12 1427.30,897.48 1430.48,903.14">
- <request index="0" response="1111000000" foes="1111100000" cont="0"/>
- <request index="1" response="1110011000" foes="1110011000" cont="0"/>
- <request index="2" response="1000010000" foes="1000010000" cont="0"/>
- <request index="3" response="0110000000" foes="0110000010" cont="0"/>
- <request index="4" response="1110000000" foes="1110000110" cont="0"/>
- <request index="5" response="0001000001" foes="0001000001" cont="0"/>
- <request index="6" response="0000000000" foes="0000100001" cont="0"/>
- <request index="7" response="0000000000" foes="0000011011" cont="0"/>
- <request index="8" response="0000000000" foes="0000011011" cont="0"/>
- <request index="9" response="0000000000" foes="0000010111" cont="0"/>
- </junction>
- <junction id="2265767392" type="priority" x="1441.34" y="913.04" incLanes="-24573947#1_0 170594822#0_0 170594822#0_1 24573947#0_0" intLanes=":2265767392_0_0 :2265767392_1_0 :2265767392_2_0 :2265767392_3_0 :2265767392_4_0 :2265767392_5_0 :2265767392_6_0 :2265767392_7_0 :2265767392_8_0 :2265767392_9_0" shape="1440.88,918.79 1446.53,915.57 1447.09,913.53 1443.90,907.87 1441.80,907.29 1436.16,910.51 1435.59,912.55 1438.79,918.21">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="2265767394" type="priority" x="1341.98" y="949.16" incLanes="23262356#0_0 -23262356#1_0 170590354#0_0 170590354#0_1" intLanes=":2265767394_0_0 :2265767394_1_0 :2265767394_2_0 :2265767394_3_0 :2265767394_4_0 :2265767394_5_0 :2265767394_6_0 :2265767394_7_0 :2265767394_8_0 :2265767394_9_0" shape="1340.58,955.36 1346.76,953.35 1348.34,949.31 1345.16,943.65 1343.39,942.95 1337.20,944.96 1335.63,949.00 1338.81,954.67">
- <request index="0" response="1111000000" foes="1111100000" cont="0"/>
- <request index="1" response="1110011000" foes="1110011000" cont="0"/>
- <request index="2" response="1000010000" foes="1000010000" cont="0"/>
- <request index="3" response="0110000000" foes="0110000010" cont="0"/>
- <request index="4" response="1110000000" foes="1110000110" cont="0"/>
- <request index="5" response="0001000001" foes="0001000001" cont="0"/>
- <request index="6" response="0000000000" foes="0000100001" cont="0"/>
- <request index="7" response="0000000000" foes="0000011011" cont="0"/>
- <request index="8" response="0000000000" foes="0000011011" cont="0"/>
- <request index="9" response="0000000000" foes="0000010111" cont="0"/>
- </junction>
- <junction id="2265767395" type="priority" x="1347.48" y="965.97" incLanes="-37772597#1_0 170594822#1_0 170594822#1_1 37772597#0_0" intLanes=":2265767395_0_0 :2265767395_1_0 :2265767395_2_0 :2265767395_3_0 :2265767395_4_0 :2265767395_5_0 :2265767395_6_0 :2265767395_7_0 :2265767395_8_0 :2265767395_9_0" shape="1346.10,972.17 1352.27,970.14 1353.83,966.11 1350.64,960.45 1348.86,959.77 1342.69,961.80 1341.13,965.82 1344.32,971.48">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="243489891" type="priority" x="746.13" y="2290.28" incLanes="130443629#0_0 44641745#2_0 133868188_0 37351089#1_0 37351089#1_1 37351089#1_2 37351089#1_3 -130443629#1_0" intLanes=":243489891_0_0 :243489891_1_0 :243489891_2_0 :243489891_3_0 :243489891_4_0 :243489891_5_0 :243489891_6_0 :243489891_7_0 :243489891_8_0 :243489891_9_0 :243489891_10_0 :243489891_11_0 :243489891_12_0 :243489891_13_0 :243489891_14_0 :243489891_15_0 :243489891_16_0 :243489891_17_0" shape="744.34,2300 [...]
- <request index="0" response="000011110000000000" foes="010011110010010000" cont="0"/>
- <request index="1" response="000111110000000000" foes="110111110110110000" cont="0"/>
- <request index="2" response="001000001001001000" foes="001000001001001000" cont="0"/>
- <request index="3" response="000000001000000000" foes="001000001001000100" cont="0"/>
- <request index="4" response="000011111000000011" foes="011011111011000011" cont="0"/>
- <request index="5" response="000111111000000010" foes="111111111111000010" cont="0"/>
- <request index="6" response="000000001000111000" foes="001000001000111100" cont="0"/>
- <request index="7" response="000011111000110011" foes="011011111000110011" cont="0"/>
- <request index="8" response="000111111000100010" foes="111111111000100010" cont="0"/>
- <request index="9" response="000000000000000000" foes="001000000111111100" cont="0"/>
- <request index="10" response="000000000000000000" foes="011000000110110011" cont="0"/>
- <request index="11" response="000000000000000000" foes="011000000110110011" cont="0"/>
- <request index="12" response="000000000000000000" foes="011000000110110011" cont="0"/>
- <request index="13" response="000000000000000000" foes="011000000110110011" cont="0"/>
- <request index="14" response="000000000000000000" foes="111000000100100010" cont="0"/>
- <request index="15" response="000111111111111000" foes="000111111111111100" cont="0"/>
- <request index="16" response="000111110110110011" foes="000111110110110011" cont="0"/>
- <request index="17" response="000100000100100010" foes="000100000100100010" cont="0"/>
- </junction>
- <junction id="248913124" type="priority" x="1416.92" y="1928.01" incLanes="154409621_0 129780026#1_0 -129780022#0_0" intLanes=":248913124_0_0 :248913124_1_0 :248913124_9_0 :248913124_3_0 :248913124_4_0 :248913124_5_0 :248913124_6_0 :248913124_7_0 :248913124_10_0" shape="1417.71,1932.97 1420.54,1931.49 1421.18,1929.45 1418.16,1923.69 1416.14,1923.06 1413.31,1924.54 1412.66,1926.59 1415.69,1932.34">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="248913130" type="priority" x="1263.18" y="1808.91" incLanes="-23066446#0_0 37449253#1_0" intLanes=":248913130_0_0 :248913130_1_0 :248913130_2_0 :248913130_3_0" shape="1263.97,1813.87 1266.80,1812.38 1267.44,1810.37 1264.46,1804.59 1262.35,1803.99 1259.53,1805.51">
- <request index="0" response="1000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0001" cont="0"/>
- </junction>
- <junction id="248913131" type="priority" x="1335.43" y="1770.80" incLanes="-23066446#2_0 23066443#5_0 23066446#1_0" intLanes=":248913131_0_0 :248913131_1_0 :248913131_9_0 :248913131_3_0 :248913131_4_0 :248913131_5_0 :248913131_6_0 :248913131_10_0 :248913131_11_0" shape="1336.21,1775.77 1339.05,1774.30 1339.72,1772.20 1336.68,1766.46 1334.66,1765.83 1331.82,1767.31 1331.14,1769.40 1334.19,1775.14">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="248913133" type="priority" x="1407.77" y="1732.42" incLanes="58770725#1_0 -23066446#3_0 23066446#2_0" intLanes=":248913133_0_0 :248913133_1_0 :248913133_2_0 :248913133_3_0 :248913133_9_0 :248913133_10_0 :248913133_6_0 :248913133_7_0 :248913133_11_0" shape="1408.54,1737.38 1411.38,1735.91 1412.03,1733.85 1409.02,1728.09 1407.00,1727.46 1404.16,1728.93 1403.47,1731.01 1406.52,1736.76">
- <request index="0" response="000001000" foes="100001000" cont="0"/>
- <request index="1" response="011011000" foes="011011000" cont="0"/>
- <request index="2" response="010011000" foes="010111000" cont="0"/>
- <request index="3" response="000000000" foes="100000111" cont="0"/>
- <request index="4" response="011000000" foes="011000110" cont="1"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000000" foes="000010010" cont="0"/>
- <request index="7" response="000000000" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="248913142" type="priority" x="1444.56" y="1803.55" incLanes="58770725#0_0 81096844#0_0 -81096844#1_0" intLanes=":248913142_0_0 :248913142_1_0 :248913142_2_0 :248913142_3_0 :248913142_9_0 :248913142_10_0 :248913142_6_0 :248913142_7_0 :248913142_11_0" shape="1445.33,1808.52 1448.18,1807.05 1448.87,1804.93 1445.80,1799.20 1443.79,1798.57 1440.95,1800.04 1440.26,1802.16 1443.32,1807.90">
- <request index="0" response="000001000" foes="100001000" cont="0"/>
- <request index="1" response="011011000" foes="011011000" cont="0"/>
- <request index="2" response="010011000" foes="010111000" cont="0"/>
- <request index="3" response="000000000" foes="100000111" cont="0"/>
- <request index="4" response="011000000" foes="011000110" cont="1"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000000" foes="000010010" cont="0"/>
- <request index="7" response="000000000" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="248913144" type="priority" x="1372.41" y="1842.13" incLanes="81096844#1_0 23066443#6_0 -81096844#2_0" intLanes=":248913144_0_0 :248913144_1_0 :248913144_9_0 :248913144_3_0 :248913144_4_0 :248913144_5_0 :248913144_6_0 :248913144_10_0 :248913144_11_0" shape="1373.18,1847.10 1376.02,1845.63 1376.71,1843.51 1373.65,1837.78 1371.63,1837.16 1368.79,1838.63 1368.10,1840.75 1371.17,1846.48">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="248913145" type="priority" x="1300.65" y="1880.51" incLanes="81096844#3_0 37449253#2_0" intLanes=":248913145_0_0 :248913145_1_0 :248913145_2_0 :248913145_3_0" shape="1301.36,1885.44 1304.21,1883.99 1304.94,1881.90 1301.87,1876.16 1299.85,1875.54 1297.02,1877.03">
- <request index="0" response="1000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0001" cont="0"/>
- </junction>
- <junction id="248913154" type="traffic_light" x="1816.23" y="1394.26" incLanes="154844500#3_0" intLanes=":248913154_0_0" shape="1816.26,1394.31 1817.74,1397.14 1814.73,1391.38 1816.21,1394.22">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="248913200" type="priority" x="1290.84" y="1231.35" incLanes="23066462#4_0 -23066462#0_0" intLanes=":248913200_0_0 :248913200_4_0 :248913200_2_0 :248913200_5_0" shape="1289.56,1235.90 1295.31,1232.87 1292.62,1226.96">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="249235163" type="unregulated" x="1119.78" y="2118.58" incLanes="141191260#1_0" intLanes="" shape="1120.52,2120.00 1119.05,2117.16">
- </junction>
- <junction id="249404225" type="priority" x="1742.60" y="2818.18" incLanes="122302027#0_0 122302035#0_0" intLanes=":249404225_0_0 :249404225_4_0 :249404225_2_0 :249404225_5_0" shape="1741.13,2818.81 1744.19,2817.95 1744.08,2817.55 1741.22,2819.00">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="250682807" type="unregulated" x="1536.49" y="2453.11" incLanes="" intLanes="" shape="1537.91,2452.37 1535.08,2453.85">
- </junction>
- <junction id="250683336" type="priority" x="1210.76" y="2373.81" incLanes="-23182358#1_0 23182358#0_0 23182387#0_0" intLanes=":250683336_0_0 :250683336_9_0 :250683336_10_0 :250683336_3_0 :250683336_4_0 :250683336_11_0 :250683336_6_0 :250683336_7_0 :250683336_8_0" shape="1209.39,2378.13 1215.12,2375.08 1215.76,2373.08 1214.32,2370.22 1212.21,2369.55 1206.45,2372.56 1205.81,2374.58 1207.28,2377.42">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="250683337" type="priority" x="1434.38" y="2258.21" incLanes="130443635#0_0 23182387#4_0" intLanes=":250683337_0_0 :250683337_1_0" shape="1434.40,2261.70 1437.23,2260.20 1434.35,2254.72 1431.52,2256.21 1430.89,2258.23 1432.37,2261.07">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="250683362" type="priority" x="1323.71" y="2315.58" incLanes="23182340#0_0 23182387#2_0" intLanes=":250683362_0_0 :250683362_1_0 :250683362_2_0 :250683362_3_0" shape="1323.75,2319.08 1326.58,2317.58 1327.22,2315.56 1325.75,2312.72 1323.75,2312.07 1320.89,2313.49 1320.22,2315.61 1321.72,2318.44">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="250683402" type="priority" x="1267.73" y="2345.11" incLanes="23182391_0 23182387#1_0" intLanes=":250683402_0_0 :250683402_1_0" shape="1271.24,2345.06 1269.75,2342.23 1267.75,2341.59 1264.89,2343.02 1264.24,2345.07 1265.68,2347.93">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="250684983" type="traffic_light" x="1313.08" y="2568.15" incLanes="-23182358#2_0 23182358#1_0" intLanes=":250684983_0_0 :250684983_4_0 :250684983_2_0 :250684983_5_0" shape="1310.20,2569.65 1315.96,2566.65 1310.20,2569.65">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="250685721" type="priority" x="773.69" y="2484.93" incLanes="-130443629#0_0" intLanes=":250685721_0_0 :250685721_1_0" shape="779.55,2478.18 776.79,2476.55 775.83,2476.36 769.39,2477.21">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="250685766" type="traffic_light" x="1164.64" y="2285.38" incLanes="-23182358#0_0 141190466#1_0 -23182517#0_0" intLanes=":250685766_0_0 :250685766_1_0 :250685766_9_0 :250685766_3_0 :250685766_4_0 :250685766_10_0 :250685766_6_0 :250685766_11_0 :250685766_12_0" shape="1163.19,2289.63 1168.95,2286.63 1169.59,2284.57 1168.09,2281.74 1166.06,2281.11 1160.31,2284.15 1159.68,2286.16 1161.16,2289.00">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="1"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="250685816" type="priority" x="1278.62" y="2225.05" incLanes="23182340#1_0 23182484#2_0 141190463_0" intLanes=":250685816_0_0 :250685816_1_0 :250685816_2_0 :250685816_3_0 :250685816_4_0 :250685816_5_0" shape="1279.29,2229.98 1282.16,2228.55 1282.88,2226.47 1279.83,2220.73 1277.80,2220.11 1274.98,2221.62 1275.10,2225.10 1276.60,2227.93">
- <request index="0" response="000100" foes="100100" cont="0"/>
- <request index="1" response="010100" foes="011100" cont="0"/>
- <request index="2" response="000000" foes="100011" cont="0"/>
- <request index="3" response="010010" foes="010010" cont="0"/>
- <request index="4" response="000000" foes="001010" cont="0"/>
- <request index="5" response="000101" foes="000101" cont="0"/>
- </junction>
- <junction id="250685829" type="priority" x="1386.81" y="2167.65" incLanes="130443635#2_0 38318373#1_0 23182484#0_0 -23182484#1_0" intLanes=":250685829_0_0 :250685829_1_0 :250685829_2_0 :250685829_3_0 :250685829_4_0 :250685829_5_0 :250685829_6_0 :250685829_7_0 :250685829_8_0 :250685829_9_0 :250685829_16_0 :250685829_17_0 :250685829_12_0 :250685829_13_0 :250685829_18_0 :250685829_19_0" shape="1389.38,2175.99 1392.22,2174.51 1393.35,2174.86 1396.43,2169.13 1395.09,2167.01 1392.10,2161.2 [...]
- <request index="0" response="0000001000000000" foes="1000001000010000" cont="0"/>
- <request index="1" response="0111011000000000" foes="0111011000110000" cont="0"/>
- <request index="2" response="0110011000000000" foes="0110111001110000" cont="0"/>
- <request index="3" response="0100000100000000" foes="0100000111110000" cont="0"/>
- <request index="4" response="0000001000001111" foes="1000001000001111" cont="0"/>
- <request index="5" response="0111011000001110" foes="0111011000001110" cont="0"/>
- <request index="6" response="0110011000001100" foes="0110111000001100" cont="0"/>
- <request index="7" response="0100000100001000" foes="0100000100001000" cont="0"/>
- <request index="8" response="0000000000000000" foes="0100000010001000" cont="0"/>
- <request index="9" response="0000000000000000" foes="1100000001110111" cont="0"/>
- <request index="10" response="0011000000000000" foes="0011000001100110" cont="1"/>
- <request index="11" response="0010000001000100" foes="0010000001000100" cont="1"/>
- <request index="12" response="0000000000000000" foes="0000010000100010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000110001100110" cont="0"/>
- <request index="14" response="0000001100000000" foes="0000001111101110" cont="1"/>
- <request index="15" response="0000001000010001" foes="0000001000010001" cont="1"/>
- </junction>
- <junction id="250686490" type="unregulated" x="1552.96" y="2840.11" incLanes="" intLanes="" shape="1554.56,2840.16 1551.36,2840.06">
- </junction>
- <junction id="250686694" type="priority" x="1222.38" y="2254.74" incLanes="141190466#0_0" intLanes=":250686694_0_0 :250686694_1_0" shape="1222.35,2258.26 1225.21,2256.82 1225.84,2254.72 1224.34,2251.89 1218.85,2254.80 1220.35,2257.62">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="250688445" type="priority" x="1158.40" y="1258.68" incLanes="23182589#1_0" intLanes=":250688445_0_0" shape="1160.54,1259.38 1159.07,1256.53 1156.24,1258.04">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="250688540" type="priority" x="1122.03" y="1190.45" incLanes="23182589#0_0" intLanes=":250688540_0_0 :250688540_1_0" shape="1122.05,1193.90 1124.88,1192.39 1125.57,1190.28 1123.99,1187.50 1122.00,1186.90 1119.15,1188.37">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="250689131" type="right_before_left" x="1383.02" y="1266.41" incLanes="-23066462#3_0 83051426_0 23066462#2_0" intLanes=":250689131_0_0 :250689131_1_0 :250689131_2_0 :250689131_3_0 :250689131_4_0 :250689131_5_0 :250689131_6_0 :250689131_7_0 :250689131_8_0" shape="1380.31,1270.56 1386.75,1269.68 1389.54,1266.57 1386.43,1260.86 1384.74,1260.12 1378.45,1261.77">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="250689186" type="right_before_left" x="1348.78" y="1223.51" incLanes="-23066462#1_0 83051421#2_0 23066462#0_0" intLanes=":250689186_0_0 :250689186_1_0 :250689186_2_0 :250689186_3_0 :250689186_4_0 :250689186_5_0 :250689186_6_0 :250689186_7_0 :250689186_8_0" shape="1350.88,1228.66 1354.34,1223.16 1353.77,1221.04 1348.03,1218.00 1345.68,1219.30 1343.98,1225.57">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="250689201" type="right_before_left" x="1384.40" y="1289.75" incLanes="83051480#1_0 23066462#3_0 -23066462#4_0" intLanes=":250689201_0_0 :250689201_1_0 :250689201_2_0 :250689201_3_0 :250689201_4_0 :250689201_5_0 :250689201_6_0 :250689201_7_0 :250689201_8_0" shape="1389.10,1293.07 1389.20,1286.57 1387.72,1285.05 1381.23,1284.94 1380.03,1292.15 1386.11,1294.43">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="250689290" type="priority" x="1161.39" y="1611.23" incLanes="58770723#2_0 42976410#4_0" intLanes=":250689290_0_0 :250689290_1_0" shape="1161.32,1614.67 1164.18,1613.24 1164.83,1611.18 1163.29,1608.37 1161.14,1607.84 1158.43,1609.55">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="252417165" type="priority" x="1227.70" y="1562.85" incLanes="37771902#2_0" intLanes=":252417165_0_0 :252417165_1_0" shape="1227.71,1566.34 1230.55,1564.87 1231.20,1562.85 1229.74,1560.01 1224.25,1562.75 1225.65,1565.63">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="252417189" type="priority" x="1356.92" y="1634.07" incLanes="58770725#4_0 -110514869#1_0 -110514869#1_1 110514869#0_0 110514869#0_1" intLanes=":252417189_0_0 :252417189_1_0 :252417189_2_0 :252417189_3_0 :252417189_4_0 :252417189_11_0 :252417189_12_0 :252417189_7_0 :252417189_8_0 :252417189_9_0 :252417189_13_0" shape="1359.20,1641.96 1362.04,1640.49 1362.72,1638.43 1356.66,1626.82 1354.64,1626.18 1351.80,1627.65 1351.11,1629.71 1357.18,1641.32">
- <request index="0" response="00000011000" foes="10000011000" cont="0"/>
- <request index="1" response="01110111000" foes="01110111000" cont="0"/>
- <request index="2" response="01100111000" foes="01101111000" cont="0"/>
- <request index="3" response="00000000000" foes="10000000111" cont="0"/>
- <request index="4" response="00000000000" foes="10000000111" cont="0"/>
- <request index="5" response="01110000000" foes="01110000110" cont="1"/>
- <request index="6" response="01100000100" foes="01100000100" cont="1"/>
- <request index="7" response="00000000000" foes="00000100010" cont="0"/>
- <request index="8" response="00000000000" foes="00001100110" cont="0"/>
- <request index="9" response="00000000000" foes="00001100110" cont="0"/>
- <request index="10" response="00000011001" foes="00000011001" cont="1"/>
- </junction>
- <junction id="252417190" type="priority" x="1300.74" y="1525.44" incLanes="58770725#6_0 37771902#3_0" intLanes=":252417190_0_0 :252417190_1_0" shape="1300.74,1528.92 1303.58,1527.45 1304.19,1525.36 1302.64,1522.56 1297.26,1525.42 1298.72,1528.27">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="252417585" type="unregulated" x="1763.69" y="1292.21" incLanes="" intLanes="" shape="1763.03,1290.75 1764.35,1293.67">
- </junction>
- <junction id="252418151" type="priority" x="1457.11" y="2044.52" incLanes="154409616#0_0 129780028_0" intLanes=":252418151_0_0 :252418151_1_0" shape="1457.08,2047.97 1459.93,2046.51 1460.63,2044.41 1459.09,2041.61 1457.09,2041.00 1454.25,2042.46">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="252418152" type="priority" x="1408.67" y="1950.38" incLanes="154409616#1_0 139118802#2_0" intLanes=":252418152_0_0 :252418152_1_0" shape="1408.67,1953.88 1411.51,1952.41 1412.16,1950.39 1410.70,1947.54 1405.18,1950.39 1406.65,1953.23">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="252418937" type="traffic_light" x="1082.75" y="2122.97" incLanes="23182517#4_0 139118804#2_0 -23315111#0_0" intLanes=":252418937_0_0 :252418937_1_0 :252418937_9_0 :252418937_3_0 :252418937_4_0 :252418937_10_0 :252418937_6_0 :252418937_11_0 :252418937_12_0" shape="1081.27,2127.27 1087.08,2124.35 1087.78,2122.11 1086.27,2119.29 1084.32,2118.63 1078.42,2121.38 1077.78,2123.80 1079.28,2126.63">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="1"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="254594415" type="unregulated" x="2575.84" y="1321.27" incLanes="" intLanes="" shape="2575.09,1319.86 2576.59,1322.68">
- </junction>
- <junction id="255227471" type="priority" x="1344.93" y="958.21" incLanes="-37772597#0_0 149868584#1_0 149868584#1_1 -23262356#0_0 -149868584#2_0 -149868584#2_1" intLanes=":255227471_0_0 :255227471_1_0 :255227471_2_0 :255227471_3_0 :255227471_4_0 :255227471_5_0 :255227471_6_0 :255227471_7_0 :255227471_18_0 :255227471_9_0 :255227471_10_0 :255227471_11_0 :255227471_12_0 :255227471_13_0 :255227471_14_0 :255227471_15_0 :255227471_16_0 :255227471_19_0" shape="1344.39,966.99 1350.57,964.95 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="0"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="255227472" type="priority" x="1269.49" y="815.22" incLanes="23262356#3_0" intLanes=":255227472_0_0 :255227472_1_0" shape="1268.26,819.46 1273.82,816.10 1264.61,816.12 1266.17,818.91">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="255227475" type="priority" x="1307.18" y="877.42" incLanes="23262356#2_0 -149422199#0_0 -23262356#3_0 81124945_0" intLanes=":255227475_0_0 :255227475_12_0 :255227475_13_0 :255227475_3_0 :255227475_4_0 :255227475_5_0 :255227475_6_0 :255227475_7_0 :255227475_14_0 :255227475_9_0 :255227475_10_0 :255227475_11_0" shape="1306.28,882.89 1312.09,879.98 1312.93,877.73 1309.55,872.17 1307.49,871.67 1301.93,875.04 1302.18,878.37 1303.74,881.17">
- <request index="0" response="000000000000" foes="111100010000" cont="0"/>
- <request index="1" response="000011000000" foes="110011110000" cont="1"/>
- <request index="2" response="100010001000" foes="100010001000" cont="1"/>
- <request index="3" response="000010000000" foes="100010000100" cont="0"/>
- <request index="4" response="011010000011" foes="011110000011" cont="0"/>
- <request index="5" response="010001000010" foes="010001000010" cont="0"/>
- <request index="6" response="000000000000" foes="010000100010" cont="0"/>
- <request index="7" response="000000000000" foes="110000011110" cont="0"/>
- <request index="8" response="001000010001" foes="001000010001" cont="1"/>
- <request index="9" response="000000000001" foes="000100010001" cont="0"/>
- <request index="10" response="000011000011" foes="000011110011" cont="0"/>
- <request index="11" response="000010001011" foes="000010001111" cont="0"/>
- </junction>
- <junction id="255227478" type="priority" x="1257.12" y="791.07" incLanes="-23566901#0_0" intLanes=":255227478_0_0" shape="1257.09,791.03 1255.62,788.19 1258.61,793.96 1257.14,791.12">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="255227480" type="priority" x="1354.16" y="848.86" incLanes="166728377#2_0 -23566901#1_0 -149422199#1_0 -166728377#0_0 23566901#0_0 149422199#0_0" intLanes=":255227480_0_0 :255227480_1_0 :255227480_2_0 :255227480_3_0 :255227480_4_0 :255227480_5_0 :255227480_6_0 :255227480_7_0 :255227480_8_0 :255227480_9_0 :255227480_10_0 :255227480_11_0 :255227480_12_0 :255227480_13_0 :255227480_14_0 :255227480_15_0 :255227480_16_0 :255227480_36_0 :255227480_18_0 :255227480_19_0 :2552274 [...]
- <request index="0" response="000000000000000000000100000000000000" foes="100000010000000100000100000001000000" cont="0"/>
- <request index="1" response="011111000000000000001100000000000000" foes="011111110000001100001100000011000000" cont="0"/>
- <request index="2" response="011110001111010011010011000000000000" foes="011110001111110011110011000111000000" cont="0"/>
- <request index="3" response="011100001110010011000011000000000000" foes="011100001110010011100011001111000000" cont="0"/>
- <request index="4" response="010000001000000010000010000000000000" foes="010000001000000010000010100000000000" cont="0"/>
- <request index="5" response="011000001100000011000011110000000000" foes="011000001100000011000011110000000000" cont="0"/>
- <request index="6" response="011000000000000000000111000000001111" foes="111000011100000111000111000000001111" cont="0"/>
- <request index="7" response="000111000000000000001111000000001110" foes="000111111100001111001111000000001110" cont="0"/>
- <request index="8" response="000110000011010000010000000000001100" foes="000110000011110000110000000000001100" cont="0"/>
- <request index="9" response="000100000010010000000000000000001000" foes="000100000010010000100000000000001000" cont="0"/>
- <request index="10" response="001000000000000000000001000000000000" foes="001000000100000001000001000000100000" cont="0"/>
- <request index="11" response="011000001100000011000011000000010000" foes="011000001100000011000011000000110000" cont="0"/>
- <request index="12" response="000000000000000000000000000000000000" foes="001110000111110001000000110011101100" cont="0"/>
- <request index="13" response="000000000000000000000000000000000000" foes="011110001111110011000000100011111100" cont="0"/>
- <request index="14" response="000000000000000000000000000000000000" foes="111110011111110111000000000011000011" cont="0"/>
- <request index="15" response="000001000000000000000000000000000000" foes="000001111111111111000000000010000010" cont="0"/>
- <request index="16" response="000000000000000000000000000000000000" foes="000010000001100000000000000100000100" cont="0"/>
- <request index="17" response="000110000011110000000000001100001100" foes="000110000011110000000000001100001100" cont="1"/>
- <request index="18" response="001110000000000000001111010011000000" foes="001110000111000000001111110011101100" cont="0"/>
- <request index="19" response="011110000000000000001110000011000000" foes="011110001111000000001110100011111100" cont="0"/>
- <request index="20" response="011110000000000000001100000011000011" foes="111110011111000000001100000011000011" cont="0"/>
- <request index="21" response="000001000000000000001000000010000010" foes="000001111111000000001000000010000010" cont="0"/>
- <request index="22" response="000110000000000000001111000000000000" foes="000110000011000000101111001100001100" cont="0"/>
- <request index="23" response="000010000001000000011111000100000100" foes="000010000001000000111111000100000100" cont="0"/>
- <request index="24" response="000010000000011111011111000000000000" foes="000010000000111111111111000100000100" cont="0"/>
- <request index="25" response="000110000000011111001111000000000000" foes="000110000000011111101111001100001100" cont="0"/>
- <request index="26" response="001110000000001111001111010011000000" foes="001110000000001111001111110011101100" cont="0"/>
- <request index="27" response="011110000000001110001110000011000000" foes="011110000000001110001110100011111100" cont="0"/>
- <request index="28" response="011110000000001100001100000011000011" foes="111110000000001100001100000011000011" cont="0"/>
- <request index="29" response="000001000000001000001000000010000010" foes="000001000000001000001000000010000010" cont="0"/>
- <request index="30" response="000000000000000000000000000000000000" foes="000000100000001000001000000010000010" cont="0"/>
- <request index="31" response="000000000000000000010111000000000000" foes="000000011111110111110111000110000110" cont="0"/>
- <request index="32" response="000000000000000000000111000000000000" foes="000000011110010111100111001110001110" cont="0"/>
- <request index="33" response="000000000000000000000111000000000000" foes="000000011100000111000111110001101110" cont="1"/>
- <request index="34" response="000000000000000000000110000000000000" foes="000000011000000110000110100001111110" cont="1"/>
- <request index="35" response="000000010000000100000100000001000001" foes="000000010000000100000100000001000001" cont="1"/>
- </junction>
- <junction id="255227482" type="priority" x="1394.75" y="824.10" incLanes="-149422210#0_0 -166728377#1_0 -149422199#2_0 149422199#1_0 166728377#0_0" intLanes=":255227482_0_0 :255227482_1_0 :255227482_2_0 :255227482_3_0 :255227482_4_0 :255227482_5_0 :255227482_6_0 :255227482_7_0 :255227482_8_0 :255227482_9_0 :255227482_10_0 :255227482_11_0 :255227482_12_0 :255227482_13_0 :255227482_25_0 :255227482_15_0 :255227482_26_0 :255227482_27_0 :255227482_18_0 :255227482_28_0 :255227482_20_0 :255 [...]
- <request index="0" response="0000001110001110000000000" foes="1011001110001111100100000" cont="0"/>
- <request index="1" response="0000001110011110000000000" foes="1111011110011111101100000" cont="0"/>
- <request index="2" response="0000100001011110000000000" foes="0000100001111111111100000" cont="0"/>
- <request index="3" response="0000000010000010000000000" foes="0001000010000011000000000" cont="0"/>
- <request index="4" response="0011000110000111100000000" foes="0011000110000111100000000" cont="0"/>
- <request index="5" response="0000001110001110000000111" foes="1011001110001110000000111" cont="0"/>
- <request index="6" response="0000001110011110000000110" foes="1111011110011110000000110" cont="0"/>
- <request index="7" response="0000100001011110000000100" foes="0000100001111110000000100" cont="0"/>
- <request index="8" response="0000000110000110000000111" foes="0011000110000110000010111" cont="0"/>
- <request index="9" response="0001000010000010000001111" foes="0001000010000010000011111" cont="0"/>
- <request index="10" response="0000000000000000000000000" foes="0001000010000001111111111" cont="0"/>
- <request index="11" response="0000000000000000000000000" foes="0011000110000000111110111" cont="0"/>
- <request index="12" response="0000000000000000000000000" foes="1011001110000000011100111" cont="0"/>
- <request index="13" response="0000000000000000000000000" foes="1111011110000000011000110" cont="0"/>
- <request index="14" response="0000100001000000010000100" foes="0000100001000000010000100" cont="1"/>
- <request index="15" response="0000000000000000000000000" foes="0000100000100000010000100" cont="0"/>
- <request index="16" response="0000000000011110000000000" foes="0001100000011111101111011" cont="1"/>
- <request index="17" response="0000000000011100000000000" foes="0011100000011100101110011" cont="1"/>
- <request index="18" response="0000000000011000000000000" foes="1011100000011000001100011" cont="0"/>
- <request index="19" response="1111100000010000001000010" foes="1111100000010000001000010" cont="1"/>
- <request index="20" response="0000001111000000000000000" foes="0000011111100000010000100" cont="0"/>
- <request index="21" response="0000001110011110101101011" foes="0000011110011111101111011" cont="0"/>
- <request index="22" response="0000001100011100101100011" foes="0000011100011100101110011" cont="0"/>
- <request index="23" response="0000000000010000001000010" foes="0000010000010000001000010" cont="0"/>
- <request index="24" response="0000001000011000001100011" foes="0000011000011000001100011" cont="0"/>
- </junction>
- <junction id="255227483" type="priority" x="1437.23" y="905.83" incLanes="-24573947#0_0 149868584#0_0 149868584#0_1 149422193#1_0 -149868584#1_0 -149868584#1_1" intLanes=":255227483_0_0 :255227483_1_0 :255227483_2_0 :255227483_3_0 :255227483_4_0 :255227483_5_0 :255227483_6_0 :255227483_7_0 :255227483_18_0 :255227483_9_0 :255227483_10_0 :255227483_11_0 :255227483_12_0 :255227483_13_0 :255227483_14_0 :255227483_15_0 :255227483_16_0 :255227483_19_0" shape="1438.40,914.44 1444.05,911.22 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="0"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="256633248" type="priority" x="763.20" y="924.92" incLanes="123339613_0" intLanes=":256633248_0_0" shape="761.78,925.65 764.62,924.18 761.77,925.65">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="257907508" type="priority" x="1601.46" y="1287.40" incLanes="-83051480#0_0" intLanes=":257907508_0_0" shape="1601.46,1287.45 1601.55,1290.65 1601.36,1284.15 1601.45,1287.35">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="257907791" type="unregulated" x="1517.46" y="880.71" incLanes="" intLanes="" shape="1516.68,879.32 1518.23,882.11">
- </junction>
- <junction id="267169554" type="priority" x="1042.75" y="1031.65" incLanes="24573905#0_0 24573897#3_0" intLanes=":267169554_0_0 :267169554_1_0 :267169554_2_0 :267169554_3_0" shape="1042.79,1035.19 1045.63,1033.71 1046.25,1031.49 1044.67,1028.71 1042.64,1028.14 1039.84,1029.68 1039.21,1031.82 1040.79,1034.60">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="267169591" type="priority" x="899.16" y="1113.35" incLanes="24573905#3_0 101272424#1_0" intLanes=":267169591_0_0 :267169591_1_0" shape="899.16,1116.79 901.99,1115.31 902.72,1113.17 901.14,1110.39 899.16,1109.79 896.30,1111.22">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="267169592" type="priority" x="973.71" y="1070.89" incLanes="24573930#0_0 24573905#1_0" intLanes=":267169592_0_0 :267169592_1_0 :267169592_2_0 :267169592_3_0" shape="973.75,1074.44 976.59,1072.96 977.25,1070.72 975.66,1067.94 973.67,1067.35 970.83,1068.83 970.17,1071.07 971.75,1073.85">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="267169634" type="priority" x="1475.27" y="979.43" incLanes="-24573947#3_0 24573947#2_0 83051436#1_0 -83051421#0_0" intLanes=":267169634_0_0 :267169634_1_0 :267169634_2_0 :267169634_16_0 :267169634_4_0 :267169634_17_0 :267169634_18_0 :267169634_19_0 :267169634_8_0 :267169634_9_0 :267169634_10_0 :267169634_11_0 :267169634_12_0 :267169634_13_0 :267169634_14_0 :267169634_15_0" shape="1476.00,987.89 1481.77,984.90 1476.22,974.09 1470.42,977.01 1461.78,984.71 1465.44,990.08 1 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000000000000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="1"/>
- <request index="6" response="0000000000000110" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0000000000000100" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110100" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000001000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011101000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="267169686" type="right_before_left" x="1417.17" y="1094.54" incLanes="-24573939#1_0 83051421#0_0 24573939#0_0 -83051421#1_0" intLanes=":267169686_0_0 :267169686_1_0 :267169686_2_0 :267169686_3_0 :267169686_4_0 :267169686_5_0 :267169686_6_0 :267169686_7_0 :267169686_8_0 :267169686_9_0 :267169686_10_0 :267169686_11_0 :267169686_12_0 :267169686_13_0 :267169686_14_0 :267169686_15_0" shape="1417.69,1103.08 1423.54,1100.25 1423.48,1089.25 1417.68,1086.32 1416.26,1086.36 1410. [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="267169690" type="priority" x="1386.31" y="1040.19" incLanes="-24573939#0_0 -83051436#1_0 37772597#2_0 83051436#0_0" intLanes=":267169690_0_0 :267169690_1_0 :267169690_16_0 :267169690_17_0 :267169690_4_0 :267169690_5_0 :267169690_6_0 :267169690_7_0 :267169690_8_0 :267169690_9_0 :267169690_18_0 :267169690_19_0 :267169690_12_0 :267169690_13_0 :267169690_14_0 :267169690_15_0" shape="1385.83,1045.93 1391.49,1042.72 1392.35,1040.00 1388.68,1034.64 1386.72,1034.17 1381.02,1037 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="267169714" type="priority" x="1518.53" y="1062.74" incLanes="-24573947#4_0 37640549#0_0 24573947#3_0 -37640549#1_0" intLanes=":267169714_0_0 :267169714_1_0 :267169714_2_0 :267169714_3_0 :267169714_4_0 :267169714_5_0 :267169714_16_0 :267169714_17_0 :267169714_8_0 :267169714_9_0 :267169714_10_0 :267169714_11_0 :267169714_12_0 :267169714_13_0 :267169714_18_0 :267169714_19_0" shape="1517.83,1068.49 1523.61,1065.51 1524.31,1063.28 1521.20,1057.58 1519.19,1056.97 1513.42,1059 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="267169715" type="priority" x="1425.57" y="1111.91" incLanes="-24573939#2_0 37640549#1_0 24573939#1_0" intLanes=":267169715_0_0 :267169715_1_0 :267169715_2_0 :267169715_3_0 :267169715_4_0 :267169715_5_0 :267169715_6_0 :267169715_7_0 :267169715_8_0" shape="1424.61,1117.47 1430.48,1114.69 1431.39,1112.51 1428.35,1106.76 1426.37,1106.11 1420.52,1108.94">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="267169795" type="priority" x="1576.94" y="1162.84" incLanes="24573947#4_0" intLanes=":267169795_0_0" shape="1576.90,1162.87 1574.41,1164.88 1579.47,1160.80 1576.98,1162.81">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="267169964" type="priority" x="1228.66" y="1128.12" incLanes="-24573937_0 101272435#0_0" intLanes=":267169964_0_0 :267169964_4_0 :267169964_2_0 :267169964_3_0" shape="1229.45,1133.05 1232.28,1131.56 1233.00,1129.46 1229.89,1123.75 1227.89,1123.13 1225.04,1124.60">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="267584629" type="unregulated" x="607.00" y="2300.19" incLanes="" intLanes="" shape="610.15,2300.98 603.85,2299.41">
- </junction>
- <junction id="30406565" type="priority" x="688.62" y="1857.76" incLanes="130443629#8_0 -37973566_0" intLanes=":30406565_0_0 :30406565_4_0 :30406565_2_0 :30406565_5_0" shape="685.45,1858.58 691.90,1857.79 685.46,1856.88">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="30406599" type="traffic_light" x="771.72" y="1282.85" incLanes="37973572#1_0 37973572#1_1 -130443630#7_0 -37973572#2_0 -37973572#2_1 130443630#6_0" intLanes=":30406599_0_0 :30406599_1_0 :30406599_2_0 :30406599_3_0 :30406599_18_0 :30406599_5_0 :30406599_6_0 :30406599_19_0 :30406599_20_0 :30406599_9_0 :30406599_10_0 :30406599_11_0 :30406599_12_0 :30406599_21_0 :30406599_14_0 :30406599_15_0 :30406599_22_0 :30406599_23_0" shape="783.94,1283.41 777.45,1272.04 776.32,1271.30 [...]
- <request index="0" response="000000000000000000" foes="100001000001000000" cont="0"/>
- <request index="1" response="000000000000000000" foes="011111000011000000" cont="0"/>
- <request index="2" response="000000000000000000" foes="011111000011000000" cont="0"/>
- <request index="3" response="000000111000000000" foes="011000111111000000" cont="0"/>
- <request index="4" response="010000110000100000" foes="010000110000100000" cont="1"/>
- <request index="5" response="000000110000000000" foes="010000110000010000" cont="0"/>
- <request index="6" response="000001110000001111" foes="110001110000001111" cont="0"/>
- <request index="7" response="001101110000001110" foes="001111110000001110" cont="1"/>
- <request index="8" response="001000001000001000" foes="001000001000001000" cont="1"/>
- <request index="9" response="000000000000000000" foes="001000000100001000" cont="0"/>
- <request index="10" response="000000000000000000" foes="011000000011111000" cont="0"/>
- <request index="11" response="000000000000000000" foes="011000000011111000" cont="0"/>
- <request index="12" response="000000000000000111" foes="111000000011000111" cont="0"/>
- <request index="13" response="000100000010000110" foes="000100000010000110" cont="1"/>
- <request index="14" response="000000000000000110" foes="000010000010000110" cont="0"/>
- <request index="15" response="000001111000001110" foes="000001111110001110" cont="0"/>
- <request index="16" response="000001110001101110" foes="000001110001111110" cont="1"/>
- <request index="17" response="000001000001000001" foes="000001000001000001" cont="1"/>
- </junction>
- <junction id="314636763" type="priority" x="1396.03" y="2172.61" incLanes="38318373#0_0 -122394864#2_0 -38318373#1_0 122394864#1_0" intLanes=":314636763_0_0 :314636763_1_0 :314636763_2_0 :314636763_3_0 :314636763_4_0 :314636763_5_0 :314636763_6_0 :314636763_16_0 :314636763_8_0 :314636763_9_0 :314636763_10_0 :314636763_11_0 :314636763_12_0 :314636763_13_0 :314636763_17_0 :314636763_18_0" shape="1395.32,2178.31 1401.09,2175.32 1401.73,2173.30 1398.73,2167.53 1394.73,2168.22 1391.65,217 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="320879142" type="priority" x="1318.99" y="1997.42" incLanes="-132323955_0 81523343_0" intLanes=":320879142_0_0 :320879142_1_0 :320879142_6_0 :320879142_3_0 :320879142_4_0 :320879142_5_0" shape="1317.54,2001.67 1323.30,1998.66 1323.91,1996.59 1322.40,1993.77 1310.46,1996.06 1310.55,1999.26 1310.72,1999.91 1312.19,2002.75">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="0"/>
- <request index="5" response="000010" foes="000010" cont="0"/>
- </junction>
- <junction id="320879175" type="unregulated" x="1551.35" y="2445.66" incLanes="129780019#2_0" intLanes="" shape="1552.77,2444.93 1549.92,2446.39">
- </junction>
- <junction id="356693793" type="unregulated" x="262.42" y="1552.22" incLanes="" intLanes="" shape="263.19,1553.63 261.65,1550.82">
- </junction>
- <junction id="356693794" type="priority" x="273.02" y="1566.65" incLanes="37973572#5_0 37973572#5_1" intLanes=":356693794_0_0" shape="272.99,1566.60 269.83,1560.93 276.20,1572.37 273.04,1566.69">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="410296508" type="priority" x="674.29" y="1339.75" incLanes="37973572#3_0 37973572#3_1 -34962531#0_0 -37973572#4_0 -37973572#4_1" intLanes=":410296508_0_0 :410296508_1_0 :410296508_2_0 :410296508_11_0 :410296508_4_0 :410296508_5_0 :410296508_6_0 :410296508_7_0 :410296508_8_0 :410296508_9_0 :410296508_12_0" shape="681.89,1342.90 675.29,1331.58 673.28,1331.02 667.56,1334.10 667.05,1336.32 673.49,1347.72">
- <request index="0" response="00000000000" foes="10000100000" cont="0"/>
- <request index="1" response="00000000000" foes="10000100000" cont="0"/>
- <request index="2" response="01110000000" foes="01111100000" cont="0"/>
- <request index="3" response="01100010000" foes="01100010000" cont="1"/>
- <request index="4" response="01100000000" foes="01100001000" cont="0"/>
- <request index="5" response="01100000111" foes="11100000111" cont="0"/>
- <request index="6" response="00010000100" foes="00010000100" cont="0"/>
- <request index="7" response="00000000000" foes="00001000100" cont="0"/>
- <request index="8" response="00000000000" foes="00000111100" cont="0"/>
- <request index="9" response="00000000000" foes="00000111100" cont="0"/>
- <request index="10" response="00000100011" foes="00000100011" cont="1"/>
- </junction>
- <junction id="426879846" type="unregulated" x="852.14" y="2448.74" incLanes="141190466#2_0" intLanes="" shape="852.90,2450.15 851.38,2447.33">
- </junction>
- <junction id="427996791" type="traffic_light" x="1076.43" y="2109.41" incLanes="23315111#1_0 129780022#4_0 -23315111#2_0 -129780022#5_0" intLanes=":427996791_0_0 :427996791_1_0 :427996791_2_0 :427996791_16_0 :427996791_4_0 :427996791_5_0 :427996791_6_0 :427996791_17_0 :427996791_8_0 :427996791_9_0 :427996791_18_0 :427996791_19_0 :427996791_12_0 :427996791_13_0 :427996791_14_0 :427996791_20_0" shape="1075.56,2115.23 1081.45,2112.48 1082.13,2110.11 1079.14,2104.34 1077.31,2103.61 1071. [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="427996792" type="traffic_light" x="1068.75" y="2092.94" incLanes="23315111#3_0 -108329427#0_0 108329426#0_0 -108329426#1_0 44641744#0_0" intLanes=":427996792_0_0 :427996792_25_0 :427996792_26_0 :427996792_27_0 :427996792_28_0 :427996792_5_0 :427996792_29_0 :427996792_30_0 :427996792_8_0 :427996792_31_0 :427996792_10_0 :427996792_11_0 :427996792_12_0 :427996792_32_0 :427996792_33_0 :427996792_15_0 :427996792_16_0 :427996792_17_0 :427996792_18_0 :427996792_34_0 :427996792 [...]
- <request index="0" response="1111100000000000000100000" foes="1111110000001000000100000" cont="0"/>
- <request index="1" response="1111001111000000001100000" foes="1111001111011000001100000" cont="1"/>
- <request index="2" response="1110001110000000011100000" foes="1110001110111000011100000" cont="1"/>
- <request index="3" response="1100001100000110011100000" foes="1100001100000111011100000" cont="1"/>
- <request index="4" response="1000001000000100100000000" foes="1000001000000100100000000" cont="1"/>
- <request index="5" response="0000000000000000000000000" foes="0111111000001100000001111" cont="0"/>
- <request index="6" response="0000000111000000000000000" foes="0111000111011100000001110" cont="1"/>
- <request index="7" response="0000000110000000000000000" foes="0110000110111100000001100" cont="1"/>
- <request index="8" response="0000000000000000000000000" foes="1000001000000100000010000" cont="0"/>
- <request index="9" response="0100000100000010000001000" foes="0100000100000010000001000" cont="1"/>
- <request index="10" response="0000000100000000000000000" foes="0100000100000001000001000" cont="0"/>
- <request index="11" response="0000001100000000111100000" foes="1100001100000000111111000" cont="0"/>
- <request index="12" response="0011101100000000011100111" foes="0011111100000000011100111" cont="0"/>
- <request index="13" response="0011000011000000011000110" foes="0011000011000000011000110" cont="1"/>
- <request index="14" response="0010000010000000010000100" foes="0010000010000000010000100" cont="1"/>
- <request index="15" response="0000000000000000000000000" foes="0001000000010000001000010" cont="0"/>
- <request index="16" response="0000000000000000000000000" foes="0011000000110000011000110" cont="0"/>
- <request index="17" response="0000000000000000000000000" foes="0111000000001111011001110" cont="0"/>
- <request index="18" response="0000000000000000100100000" foes="1111000000001100100111110" cont="0"/>
- <request index="19" response="0000100000001000000100001" foes="0000100000001000000100001" cont="1"/>
- <request index="20" response="0000000000000000000100000" foes="0000010000001000000100001" cont="0"/>
- <request index="21" response="0000001111000000001100000" foes="0000001111011000001100011" cont="0"/>
- <request index="22" response="0000001110000000011100000" foes="0000001110111000011100111" cont="1"/>
- <request index="23" response="0000001100000110011100000" foes="0000001100000111011101111" cont="1"/>
- <request index="24" response="0000001000000100100000000" foes="0000001000000100100011111" cont="1"/>
- </junction>
- <junction id="428097664" type="priority" x="1352.49" y="1979.41" incLanes="144874008#1_0 172498367_0" intLanes=":428097664_0_0 :428097664_1_0" shape="1355.95,1979.45 1354.50,1976.59 1352.45,1975.93 1349.62,1977.43 1349.01,1979.47 1350.52,1982.29">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="428303370" type="priority" x="740.87" y="2236.01" incLanes="130443629#4_0 -130443629#5_0 134572336#2_0 134572336#2_1" intLanes=":428303370_0_0 :428303370_9_0 :428303370_10_0 :428303370_3_0 :428303370_4_0 :428303370_11_0 :428303370_6_0 :428303370_7_0 :428303370_8_0" shape="738.65,2247.43 745.12,2246.84 746.00,2246.45 750.80,2242.07 742.96,2227.64 736.53,2228.56 735.42,2229.33 732.30,2235.03">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="429179805" type="priority" x="755.76" y="1497.37" incLanes="108329425#4_0 -108329425#5_0" intLanes=":429179805_0_0 :429179805_1_0 :429179805_6_0 :429179805_3_0 :429179805_7_0 :429179805_8_0" shape="756.95,1506.83 762.74,1503.86 757.47,1494.40 752.61,1498.72 752.89,1506.55 756.06,1506.98">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="1"/>
- <request index="5" response="000010" foes="000010" cont="1"/>
- </junction>
- <junction id="429418283" type="unregulated" x="1886.93" y="1659.64" incLanes="172498387#5_0" intLanes="" shape="1886.15,1658.24 1887.70,1661.04">
- </junction>
- <junction id="432548413" type="unregulated" x="1499.78" y="852.67" incLanes="101272426#2_0" intLanes="" shape="1498.99,851.28 1500.58,854.06">
- </junction>
- <junction id="432548414" type="priority" x="1483.49" y="770.30" incLanes="149422199#2_0" intLanes=":432548414_0_0" shape="1483.51,770.34 1485.17,773.08 1481.80,767.52 1483.46,770.26">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="435668511" type="priority" x="744.37" y="2274.32" incLanes="130443629#2_0 -130443629#3_0 37369047#1_0 37369047#1_1 37369047#1_2 37369047#1_3" intLanes=":435668511_0_0 :435668511_1_0 :435668511_2_0 :435668511_3_0 :435668511_4_0 :435668511_5_0 :435668511_6_0 :435668511_7_0 :435668511_8_0 :435668511_9_0 :435668511_10_0 :435668511_11_0 :435668511_12_0 :435668511_13_0" shape="741.36,2276.25 747.80,2275.36 746.19,2280.79 745.55,2267.70 749.76,2271.08 747.47,2268.84 746.95,226 [...]
- <request index="0" response="11111100000000" foes="11111110000000" cont="0"/>
- <request index="1" response="11111001110000" foes="11111001110000" cont="0"/>
- <request index="2" response="11110001100000" foes="11110001100000" cont="0"/>
- <request index="3" response="10000001000000" foes="10000001000000" cont="0"/>
- <request index="4" response="00001000000000" foes="00001000000010" cont="0"/>
- <request index="5" response="01111000000000" foes="01111000000110" cont="0"/>
- <request index="6" response="11111000000000" foes="11111000001110" cont="0"/>
- <request index="7" response="00000100000001" foes="00000100000001" cont="0"/>
- <request index="8" response="00000000000000" foes="00000010000001" cont="0"/>
- <request index="9" response="00000000000000" foes="00000001110011" cont="0"/>
- <request index="10" response="00000000000000" foes="00000001100111" cont="0"/>
- <request index="11" response="00000000000000" foes="00000001100111" cont="0"/>
- <request index="12" response="00000000000000" foes="00000001100111" cont="0"/>
- <request index="13" response="00000000000000" foes="00000001001111" cont="0"/>
- </junction>
- <junction id="435668513" type="priority" x="1409.35" y="1913.50" incLanes="23066443#7_0 81523332#1_0" intLanes=":435668513_0_0 :435668513_1_0 :435668513_2_0 :435668513_3_0" shape="1409.38,1917.01 1412.21,1915.53 1412.85,1913.48 1411.36,1910.64 1409.35,1910.01 1406.50,1911.48 1405.85,1913.56 1407.36,1916.38">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="435668516" type="priority" x="1337.66" y="1952.73" incLanes="37449253#4_0 172498380#2_0" intLanes=":435668516_0_0 :435668516_1_0 :435668516_2_0 :435668516_3_0" shape="1337.90,1956.21 1340.64,1954.54 1341.24,1952.41 1339.56,1949.69 1336.50,1947.05 1333.66,1948.53 1332.94,1949.36 1331.87,1952.37">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="435668521" type="priority" x="1481.78" y="1875.56" incLanes="172498387#0_0" intLanes=":435668521_0_0 :435668521_1_0" shape="1485.29,1875.49 1483.78,1872.67 1481.77,1872.05 1478.92,1873.52 1478.30,1875.58 1479.78,1878.41">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="435668534" type="priority" x="1297.62" y="1991.64" incLanes="144874012#0_0 129780022#2_0 -129780022#3_0" intLanes=":435668534_0_0 :435668534_1_0 :435668534_2_0 :435668534_3_0 :435668534_4_0 :435668534_9_0 :435668534_6_0 :435668534_7_0 :435668534_10_0" shape="1298.45,1996.58 1301.27,1995.06 1302.05,1992.93 1298.94,1987.22 1296.97,1986.59 1294.08,1987.97 1293.36,1990.23 1296.42,1995.96">
- <request index="0" response="000001000" foes="100001000" cont="0"/>
- <request index="1" response="011011000" foes="011011000" cont="0"/>
- <request index="2" response="010011000" foes="010111000" cont="0"/>
- <request index="3" response="000000000" foes="100000111" cont="0"/>
- <request index="4" response="011000000" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000000" foes="000010010" cont="0"/>
- <request index="7" response="000000000" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="435668539" type="priority" x="762.39" y="2274.63" incLanes="129780022#5_0 37973565#6_0 133868186_0 133868186_1 133868186_2 133868186_3" intLanes=":435668539_0_0 :435668539_1_0 :435668539_11_0 :435668539_3_0 :435668539_4_0 :435668539_5_0 :435668539_6_0 :435668539_7_0 :435668539_8_0 :435668539_9_0 :435668539_10_0" shape="761.57,2285.68 764.76,2285.45 767.91,2275.40 764.88,2269.65 763.40,2268.85 760.22,2269.18 761.27,2268.01 760.51,2281.08 751.62,2275.46 760.35,2285.23">
- <request index="0" response="00000000000" foes="00100010000" cont="0"/>
- <request index="1" response="00000000000" foes="11101110000" cont="0"/>
- <request index="2" response="00010001000" foes="00010001000" cont="1"/>
- <request index="3" response="00010000000" foes="00010000100" cont="0"/>
- <request index="4" response="00110000011" foes="00110000011" cont="0"/>
- <request index="5" response="11110000010" foes="11110000010" cont="0"/>
- <request index="6" response="11110000010" foes="11110000010" cont="0"/>
- <request index="7" response="00000000000" foes="00001111100" cont="0"/>
- <request index="8" response="00000000011" foes="00001110011" cont="0"/>
- <request index="9" response="00000000010" foes="00001100010" cont="0"/>
- <request index="10" response="00000000010" foes="00001100010" cont="0"/>
- </junction>
- <junction id="435668557" type="unregulated" x="620.36" y="2358.65" incLanes="133868191#2_0 133868191#2_1 133868191#2_2 133868191#2_3" intLanes="" shape="623.51,2364.40 617.21,2352.91">
- </junction>
- <junction id="438042367" type="traffic_light" x="910.96" y="1203.37" incLanes="133960539#4_0 133960539#4_1 149868584#8_0 149868584#8_1 -37973572#0_0 -37973572#0_1" intLanes=":438042367_0_0 :438042367_1_0 :438042367_2_0 :438042367_11_0 :438042367_4_0 :438042367_12_0 :438042367_13_0 :438042367_7_0 :438042367_8_0 :438042367_9_0 :438042367_14_0" shape="912.49,1212.02 918.02,1208.61 919.57,1206.00 913.08,1194.62 910.81,1193.79 902.47,1198.94 901.96,1200.96 908.45,1212.34">
- <request index="0" response="00000010000" foes="10000010000" cont="0"/>
- <request index="1" response="01110110000" foes="01110110000" cont="0"/>
- <request index="2" response="01110110000" foes="01110110000" cont="0"/>
- <request index="3" response="01000110000" foes="01001110000" cont="1"/>
- <request index="4" response="00000000000" foes="10000001111" cont="0"/>
- <request index="5" response="01110000000" foes="01110001110" cont="1"/>
- <request index="6" response="01000001000" foes="01000001000" cont="1"/>
- <request index="7" response="00000000000" foes="00000100110" cont="0"/>
- <request index="8" response="00000000000" foes="00000100110" cont="0"/>
- <request index="9" response="00000000000" foes="00001101110" cont="0"/>
- <request index="10" response="00000010001" foes="00000010001" cont="1"/>
- </junction>
- <junction id="438042369" type="traffic_light" x="922.82" y="1196.60" incLanes="149868584#7_0 149868584#7_1 154500693#3_0 154500693#3_1 154500693#3_2 -149868584#8_0 -149868584#8_1" intLanes=":438042369_0_0 :438042369_1_0 :438042369_2_0 :438042369_11_0 :438042369_4_0 :438042369_5_0 :438042369_6_0 :438042369_12_0 :438042369_8_0 :438042369_9_0 :438042369_13_0" shape="923.38,1205.55 929.28,1202.82 932.12,1198.84 925.64,1187.46 923.70,1186.84 914.81,1190.96 914.49,1193.82 920.98,1205.19">
- <request index="0" response="00001100000" foes="01001100000" cont="0"/>
- <request index="1" response="00001100000" foes="01001100000" cont="0"/>
- <request index="2" response="00011100000" foes="11011100000" cont="0"/>
- <request index="3" response="00100010000" foes="00100010000" cont="1"/>
- <request index="4" response="00000000000" foes="00100001000" cont="0"/>
- <request index="5" response="00000000000" foes="01100000111" cont="0"/>
- <request index="6" response="00000000000" foes="01100000111" cont="0"/>
- <request index="7" response="00000000000" foes="11100000100" cont="1"/>
- <request index="8" response="00011110000" foes="00011111000" cont="0"/>
- <request index="9" response="00011100111" foes="00011100111" cont="0"/>
- <request index="10" response="00010000100" foes="00010000100" cont="1"/>
- </junction>
- <junction id="438042372" type="priority" x="1287.38" y="1678.03" incLanes="44738605#0_0 23066443#2_0" intLanes=":438042372_0_0 :438042372_1_0 :438042372_2_0 :438042372_3_0" shape="1287.39,1681.54 1290.23,1680.06 1291.12,1676.38 1288.78,1674.19 1287.07,1673.96 1284.23,1675.43 1283.88,1678.08 1285.38,1680.91">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="438042373" type="traffic_light" x="1242.56" y="1701.83" incLanes="44738605#2_0 154500695_0" intLanes=":438042373_0_0 :438042373_1_0" shape="1246.19,1701.71 1244.69,1698.89 1242.79,1698.21 1239.83,1699.43 1240.45,1702.89 1243.44,1704.02">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="438042374" type="priority" x="1231.88" y="1730.17" incLanes="37449249#0_0" intLanes=":438042374_0_0 :438042374_1_0" shape="1234.04,1728.97 1231.05,1727.84 1226.72,1732.77 1228.89,1735.12 1229.88,1735.59 1233.07,1735.83">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="438042376" type="priority" x="1280.33" y="1664.44" incLanes="23066443#1_0 151167658#1_0" intLanes=":438042376_0_0 :438042376_1_0 :438042376_2_0 :438042376_3_0" shape="1280.73,1668.68 1283.57,1667.21 1284.38,1665.78 1284.17,1662.59 1280.33,1660.96 1277.49,1662.43 1276.84,1664.46 1278.32,1667.30">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="438042377" type="traffic_light" x="1234.66" y="1688.33" incLanes="154500699#1_0" intLanes=":438042377_0_0 :438042377_1_0" shape="1235.54,1692.01 1238.05,1690.03 1238.44,1688.16 1236.96,1685.32 1233.43,1686.46 1232.82,1689.60">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="438042378" type="traffic_light" x="1201.45" y="1681.53" incLanes="42976410#5_0 154500699#0_0" intLanes=":438042378_0_0 :438042378_1_0" shape="1203.15,1683.52 1203.80,1680.39 1199.72,1676.86 1197.23,1678.88 1196.68,1680.09 1196.79,1683.29">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="438042379" type="priority" x="1125.23" y="1656.38" incLanes="81672207#0_0 -166625259_0" intLanes=":438042379_0_0 :438042379_1_0 :438042379_2_0 :438042379_4_0" shape="1126.73,1658.59 1127.77,1655.56 1124.38,1651.32 1121.55,1652.81 1120.87,1654.74 1123.47,1660.70">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="438042380" type="priority" x="1205.90" y="1773.17" incLanes="37449245#1_0 81394162#1_0 81394162#1_1" intLanes=":438042380_0_0 :438042380_1_0 :438042380_2_0" shape="1204.61,1786.36 1207.94,1786.11 1208.96,1785.97 1214.71,1782.95 1212.03,1778.93 1206.09,1781.58">
- <request index="0" response="110" foes="110" cont="0"/>
- <request index="1" response="000" foes="001" cont="0"/>
- <request index="2" response="000" foes="001" cont="0"/>
- </junction>
- <junction id="438042381" type="traffic_light" x="1167.26" y="1695.93" incLanes="37449249#3_0" intLanes=":438042381_0_0 :438042381_1_0 :438042381_2_0" shape="1172.10,1692.61 1169.64,1690.57 1167.97,1690.40 1162.25,1693.48 1164.75,1699.83 1167.93,1700.77">
- <request index="0" response="000" foes="000" cont="0"/>
- <request index="1" response="000" foes="000" cont="0"/>
- <request index="2" response="000" foes="000" cont="0"/>
- </junction>
- <junction id="438042385" type="traffic_light" x="1211.11" y="1748.62" incLanes="37449249#1_0 133960538#0_0 133960538#0_1" intLanes=":438042385_0_0 :438042385_1_0 :438042385_2_0 :438042385_3_0 :438042385_4_0" shape="1209.63,1753.91 1215.71,1751.63 1216.54,1746.13 1214.48,1743.69 1212.91,1743.22 1206.67,1745.05 1205.70,1750.86 1207.84,1753.31">
- <request index="0" response="01100" foes="01100" cont="0"/>
- <request index="1" response="11100" foes="11100" cont="0"/>
- <request index="2" response="00000" foes="00011" cont="0"/>
- <request index="3" response="00000" foes="00011" cont="0"/>
- <request index="4" response="00000" foes="00010" cont="0"/>
- </junction>
- <junction id="438042386" type="traffic_light" x="1175.97" y="1687.44" incLanes="42976405#3_0 42976405#3_1 154500698_0" intLanes=":438042386_0_0 :438042386_1_0 :438042386_2_0 :438042386_3_0 :438042386_4_0" shape="1177.63,1692.96 1181.72,1687.90 1181.90,1686.30 1180.48,1683.43 1177.47,1683.24 1171.69,1686.22 1171.45,1688.98 1173.44,1691.49">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="438042387" type="traffic_light" x="1198.12" y="1755.72" incLanes="81394162#2_0 81394162#2_1 37449249#2_0" intLanes=":438042387_0_0 :438042387_1_0" shape="1196.56,1760.21 1202.50,1757.56 1203.32,1755.73 1202.34,1752.68 1194.82,1751.47 1192.99,1754.10">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="441236049" type="priority" x="810.99" y="1017.83" incLanes="42976406#3_0 42976406#3_1 42976406#3_2 37638426#0_0 179692877#1_0" intLanes=":441236049_0_0 :441236049_1_0 :441236049_2_0 :441236049_3_0 :441236049_4_0 :441236049_5_0 :441236049_6_0 :441236049_7_0 :441236049_8_0 :441236049_9_0 :441236049_10_0" shape="812.07,1030.21 820.71,1025.59 818.01,1017.45 817.12,1014.38 812.78,1010.15 803.92,1014.34 803.08,1015.48 802.93,1018.71 804.76,1028.63 811.03,1030.36">
- <request index="0" response="00000000000" foes="10000100000" cont="0"/>
- <request index="1" response="00000000000" foes="01101100000" cont="0"/>
- <request index="2" response="00000000000" foes="01011100000" cont="0"/>
- <request index="3" response="00000000000" foes="01011100000" cont="0"/>
- <request index="4" response="00000000000" foes="01011100000" cont="0"/>
- <request index="5" response="00000011111" foes="10000011111" cont="0"/>
- <request index="6" response="01100011110" foes="01100011110" cont="0"/>
- <request index="7" response="01000011100" foes="01000011100" cont="0"/>
- <request index="8" response="00000000010" foes="00001000010" cont="0"/>
- <request index="9" response="00000011110" foes="00011011110" cont="0"/>
- <request index="10" response="00000100001" foes="00000100001" cont="0"/>
- </junction>
- <junction id="441236060" type="priority" x="788.69" y="970.63" incLanes="42976406#4_0 42976406#4_1 42976406#4_2 154500706#0_0" intLanes=":441236060_0_0 :441236060_1_0 :441236060_2_0 :441236060_3_0 :441236060_4_0 :441236060_5_0" shape="786.89,978.29 795.75,974.10 795.02,967.89 793.11,965.32 791.21,964.90 782.53,969.45 782.76,976.34 785.39,978.17">
- <request index="0" response="000000" foes="110000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="000000" foes="110000" cont="0"/>
- <request index="3" response="000000" foes="100000" cont="0"/>
- <request index="4" response="000111" foes="000111" cont="0"/>
- <request index="5" response="001111" foes="001111" cont="0"/>
- </junction>
- <junction id="441266854" type="traffic_light" x="1800.95" y="1402.27" incLanes="-154844500#3_0 154844500#2_0" intLanes=":441266854_0_0 :441266854_4_0 :441266854_2_0 :441266854_5_0" shape="1802.45,1405.15 1799.44,1399.39 1802.45,1405.15">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="441266862" type="unregulated" x="1742.60" y="1287.33" incLanes="37771904#1_0" intLanes="" shape="1741.89,1285.90 1743.31,1288.77">
- </junction>
- <junction id="441266865" type="priority" x="1604.66" y="1015.69" incLanes="-37640549#0_0" intLanes=":441266865_0_0" shape="1604.69,1015.73 1606.22,1018.54 1603.11,1012.83 1604.64,1015.64">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="441266870" type="right_before_left" x="1370.27" y="1239.60" incLanes="-23066462#2_0 83051455_0 23066462#1_0" intLanes=":441266870_0_0 :441266870_1_0 :441266870_2_0 :441266870_3_0 :441266870_4_0 :441266870_5_0 :441266870_6_0 :441266870_7_0 :441266870_8_0" shape="1370.72,1245.71 1375.96,1241.86 1376.39,1239.93 1373.24,1234.24 1369.53,1234.69 1365.30,1239.62">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="441266874" type="right_before_left" x="1456.29" y="1176.65" incLanes="-83051442#2_0 24573939#2_0 83051442#1_0" intLanes=":441266874_0_0 :441266874_1_0 :441266874_2_0 :441266874_3_0 :441266874_4_0 :441266874_5_0 :441266874_6_0 :441266874_7_0 :441266874_8_0" shape="1460.65,1179.27 1459.67,1172.85 1457.53,1171.70 1451.66,1174.48 1451.18,1176.83 1455.49,1181.70">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="441266876" type="priority" x="1144.45" y="968.24" incLanes="37640550#3_0" intLanes=":441266876_0_0 :441266876_1_0" shape="1144.42,971.68 1147.27,970.21 1147.97,968.10 1146.41,965.31 1144.40,964.71 1141.57,966.20">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="441266879" type="priority" x="1413.40" y="1478.37" incLanes="23182640_0 101272435#2_0" intLanes=":441266879_0_0 :441266879_1_0" shape="1413.42,1481.85 1416.25,1480.36 1416.90,1478.31 1415.38,1475.49 1413.36,1474.87 1410.53,1476.36">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="441266880" type="traffic_light" x="1465.56" y="1577.35" incLanes="-154844500#1_0 101272435#4_0 154844500#0_0" intLanes=":441266880_0_0 :441266880_1_0 :441266880_9_0 :441266880_3_0 :441266880_4_0 :441266880_10_0 :441266880_6_0 :441266880_11_0 :441266880_12_0" shape="1466.36,1582.30 1469.19,1580.81 1469.82,1578.79 1466.81,1573.03 1464.76,1572.40 1461.92,1573.89 1461.30,1575.91 1464.31,1581.67">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="1"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="441266884" type="traffic_light" x="1591.73" y="1816.80" incLanes="101272435#6_0 172498387#4_0" intLanes=":441266884_0_0 :441266884_1_0 :441266884_2_0 :441266884_3_0" shape="1591.76,1820.29 1594.59,1818.80 1595.22,1816.77 1593.73,1813.94 1591.70,1813.31 1588.87,1814.80 1588.24,1816.84 1589.74,1819.66">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="443089060" type="traffic_light" x="1552.91" y="1837.42" incLanes="37771900#0_0 172498387#1_0" intLanes=":443089060_0_0 :443089060_1_0 :443089060_2_0 :443089060_3_0" shape="1552.95,1840.91 1555.78,1839.41 1556.45,1837.34 1554.94,1834.52 1552.96,1833.88 1550.08,1835.29 1549.42,1837.48 1550.93,1840.30">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="443089061" type="priority" x="1517.24" y="1764.69" incLanes="37771900#1_0 -81096844#0_0" intLanes=":443089061_0_0 :443089061_1_0 :443089061_2_0 :443089061_3_0" shape="1517.92,1769.71 1520.79,1768.30 1516.45,1759.75 1513.62,1761.24 1512.87,1763.34 1515.93,1769.07">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0000" foes="0100" cont="0"/>
- <request index="2" response="0010" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="443089062" type="priority" x="1480.37" y="1694.48" incLanes="37771900#2_0 23066446#3_0" intLanes=":443089062_0_0 :443089062_1_0 :443089062_2_0 :443089062_3_0" shape="1481.16,1699.43 1483.99,1697.94 1479.55,1689.53 1476.72,1691.03 1476.10,1693.05 1479.11,1698.81">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0000" foes="0100" cont="0"/>
- <request index="2" response="0010" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="443089063" type="traffic_light" x="1427.34" y="1597.31" incLanes="37771900#5_0 -110514869#2_0 -110514869#2_1 110514869#1_0 110514869#1_1" intLanes=":443089063_0_0 :443089063_1_0 :443089063_11_0 :443089063_3_0 :443089063_4_0 :443089063_12_0 :443089063_13_0 :443089063_7_0 :443089063_8_0 :443089063_9_0 :443089063_14_0" shape="1430.12,1605.13 1432.87,1603.50 1433.44,1601.51 1427.38,1589.90 1425.16,1589.36 1422.30,1590.79 1421.67,1592.88 1427.73,1604.49">
- <request index="0" response="00000011000" foes="10000011000" cont="0"/>
- <request index="1" response="01110111000" foes="01110111000" cont="0"/>
- <request index="2" response="01100111000" foes="01101111000" cont="1"/>
- <request index="3" response="00000000000" foes="10000000111" cont="0"/>
- <request index="4" response="00000000000" foes="10000000111" cont="0"/>
- <request index="5" response="01110000000" foes="01110000110" cont="1"/>
- <request index="6" response="01100000100" foes="01100000100" cont="1"/>
- <request index="7" response="00000000000" foes="00000100010" cont="0"/>
- <request index="8" response="00000000000" foes="00001100110" cont="0"/>
- <request index="9" response="00000000000" foes="00001100110" cont="0"/>
- <request index="10" response="00000011001" foes="00000011001" cont="1"/>
- </junction>
- <junction id="443089064" type="priority" x="1377.93" y="1498.33" incLanes="37771900#6_0" intLanes=":443089064_0_0 :443089064_1_0" shape="1377.90,1501.85 1380.77,1500.42 1377.82,1494.82 1375.02,1496.36 1374.40,1498.40 1375.91,1501.22">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="443089065" type="priority" x="1230.62" y="1221.27" incLanes="58770837#1_0 24319547_0" intLanes=":443089065_0_0 :443089065_1_0" shape="1230.65,1224.75 1233.48,1223.27 1230.58,1217.77 1227.75,1219.27 1227.12,1221.28 1228.59,1224.13">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="443089066" type="priority" x="1192.98" y="1150.29" incLanes="58770836_0 24319558_0" intLanes=":443089066_0_0 :443089066_1_0" shape="1193.04,1153.82 1195.87,1152.32 1192.92,1146.83 1190.10,1148.36 1189.46,1150.45 1191.03,1153.23">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="443089068" type="priority" x="1109.13" y="993.76" incLanes="81096816#1_0" intLanes=":443089068_0_0 :443089068_1_0" shape="1109.24,997.26 1112.04,995.72 1109.16,990.33 1106.32,991.79 1105.63,993.92 1107.21,996.69">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="443089069" type="priority" x="1154.02" y="1599.58" incLanes="42976410#3_0" intLanes=":443089069_0_0 :443089069_1_0" shape="1154.42,1603.20 1157.12,1601.49 1157.66,1599.55 1156.24,1596.69 1153.98,1596.14 1151.16,1597.67">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="443089070" type="priority" x="1371.35" y="1486.40" incLanes="37771900#7_0 58770724_0" intLanes=":443089070_0_0 :443089070_1_0" shape="1371.45,1489.89 1374.25,1488.34 1371.30,1482.93 1368.48,1484.45 1367.87,1486.50 1369.41,1489.30">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="443089071" type="priority" x="1233.20" y="1573.47" incLanes="58770723#0_0 23066443#0_0" intLanes=":443089071_0_0 :443089071_1_0 :443089071_2_0 :443089071_3_0" shape="1233.22,1576.97 1236.06,1575.50 1236.71,1573.49 1235.27,1570.63 1233.20,1569.98 1230.36,1571.45 1229.71,1573.48 1231.19,1576.32">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="443089072" type="priority" x="1306.46" y="1536.50" incLanes="58770725#5_0 37771903_0" intLanes=":443089072_0_0 :443089072_1_0 :443089072_2_0 :443089072_3_0" shape="1306.45,1539.97 1309.30,1538.50 1309.97,1536.44 1308.46,1533.62 1306.45,1532.99 1303.60,1534.46 1302.96,1536.47 1304.40,1539.33">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="443089074" type="priority" x="1406.05" y="1464.41" incLanes="101272435#1_0" intLanes=":443089074_0_0 :443089074_1_0" shape="1406.06,1467.88 1408.90,1466.38 1409.56,1464.30 1408.02,1461.50 1406.01,1460.90 1403.18,1462.39">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="443101905" type="priority" x="1445.70" y="920.67" incLanes="-24573947#2_0 37772595#0_0 24573947#1_0" intLanes=":443101905_0_0 :443101905_1_0 :443101905_9_0 :443101905_3_0 :443101905_4_0 :443101905_5_0 :443101905_6_0 :443101905_10_0 :443101905_11_0" shape="1444.25,925.02 1450.06,922.10 1450.61,919.76 1449.06,916.97 1446.97,916.34 1441.32,919.56 1440.71,921.62 1442.27,924.42">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="443101906" type="priority" x="1350.14" y="974.07" incLanes="-37772597#2_0 37772595#1_0 37772597#1_0" intLanes=":443101906_0_0 :443101906_1_0 :443101906_9_0 :443101906_3_0 :443101906_4_0 :443101906_5_0 :443101906_6_0 :443101906_10_0 :443101906_11_0" shape="1348.79,978.38 1354.50,975.26 1355.40,972.97 1353.83,970.17 1352.06,969.48 1345.88,971.51 1345.20,975.00 1346.77,977.79">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="443101911" type="priority" x="1087.15" y="1122.88" incLanes="101272429#0_0" intLanes=":443101911_0_0 :443101911_1_0" shape="1087.19,1126.43 1090.03,1124.96 1090.57,1122.76 1088.97,1119.99 1083.61,1123.06 1085.19,1125.84">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="443101912" type="traffic_light" x="945.91" y="1203.21" incLanes="101272429#2_0 42976410#1_0" intLanes=":443101912_0_0 :443101912_1_0 :443101912_2_0 :443101912_3_0" shape="945.92,1206.75 948.77,1205.30 949.44,1203.07 947.87,1200.27 945.87,1199.68 943.03,1201.16 942.37,1203.36 943.93,1206.15">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="443101913" type="traffic_light" x="931.22" y="1174.43" incLanes="101272424#3_0 37973568#7_0" intLanes=":443101913_0_0 :443101913_1_0 :443101913_2_0 :443101913_3_0" shape="931.23,1177.97 934.08,1176.52 934.75,1174.28 933.18,1171.49 931.17,1170.90 928.34,1172.38 927.68,1174.59 929.25,1177.37">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="443101914" type="priority" x="1005.73" y="1132.44" incLanes="37772596#1_0" intLanes=":443101914_0_0 :443101914_1_0" shape="1009.27,1132.28 1007.69,1129.50 1005.69,1128.90 1002.86,1130.38 1002.29,1132.55 1003.86,1135.33">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="443101915" type="priority" x="1074.91" y="1093.27" incLanes="24573897#4_0 37772596#2_0" intLanes=":443101915_0_0 :443101915_1_0" shape="1078.42,1093.17 1076.89,1090.37 1074.88,1089.76 1072.04,1091.24 1071.47,1093.38 1073.04,1096.17">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="443101920" type="priority" x="1339.97" y="942.95" incLanes="23262356#1_0 -23262356#2_0 101272426#0_0" intLanes=":443101920_0_0 :443101920_9_0 :443101920_10_0 :443101920_3_0 :443101920_4_0 :443101920_11_0 :443101920_6_0 :443101920_7_0 :443101920_8_0" shape="1338.04,947.53 1344.22,945.53 1344.96,941.98 1343.40,939.19 1341.42,938.58 1335.60,941.49 1334.71,944.04 1336.26,946.83">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="443101921" type="priority" x="1430.21" y="892.33" incLanes="-149422193#0_0 149422210#1_0 101272426#1_0" intLanes=":443101921_0_0 :443101921_9_0 :443101921_10_0 :443101921_3_0 :443101921_4_0 :443101921_5_0 :443101921_6_0 :443101921_7_0 :443101921_8_0" shape="1428.81,896.67 1434.57,893.67 1435.19,891.34 1433.60,888.56 1431.61,887.97 1425.84,890.97 1425.24,893.29 1426.81,896.08">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110000000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="010000010" foes="010000010" cont="0"/>
- <request index="4" response="110000010" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="443101936" type="unregulated" x="1620.61" y="1959.22" incLanes="" intLanes="" shape="1619.88,1957.80 1621.35,1960.64">
- </junction>
- <junction id="443101938" type="traffic_light" x="1568.44" y="1866.64" incLanes="139118802#0_0" intLanes=":443101938_0_0" shape="1569.18,1868.06 1567.70,1865.22 1569.18,1868.06">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="444026884" type="traffic_light" x="754.64" y="1292.89" incLanes="37973572#2_0 37973572#2_1 -37973572#3_0 -37973572#3_1 81394192#12_0" intLanes=":444026884_0_0 :444026884_1_0 :444026884_2_0 :444026884_11_0 :444026884_4_0 :444026884_5_0 :444026884_6_0 :444026884_12_0 :444026884_8_0 :444026884_9_0 :444026884_13_0" shape="766.21,1293.68 759.57,1282.39 758.54,1281.87 755.41,1281.23 743.09,1292.04 749.69,1303.35 750.69,1304.07 753.82,1304.72">
- <request index="0" response="00000000000" foes="11110000000" cont="0"/>
- <request index="1" response="00000000000" foes="11110000000" cont="0"/>
- <request index="2" response="00001110000" foes="11001110000" cont="0"/>
- <request index="3" response="10001100000" foes="10001100000" cont="1"/>
- <request index="4" response="00000000000" foes="01000000100" cont="0"/>
- <request index="5" response="00000000000" foes="11000001100" cont="0"/>
- <request index="6" response="00000000000" foes="11000001100" cont="0"/>
- <request index="7" response="00100000011" foes="00100000011" cont="1"/>
- <request index="8" response="00000000011" foes="00010000011" cont="0"/>
- <request index="9" response="00001110111" foes="00001110111" cont="0"/>
- <request index="10" response="00001100111" foes="00001101111" cont="1"/>
- </junction>
- <junction id="444026886" type="priority" x="783.34" y="1096.11" incLanes="81394192#15_0" intLanes=":444026886_0_0" shape="784.90,1096.47 781.87,1095.46 781.73,1096.04 784.90,1096.47">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="444026889" type="priority" x="801.34" y="1081.22" incLanes="-179692877#0_0 37973571#1_0 130443630#11_0" intLanes=":444026889_0_0 :444026889_6_0 :444026889_2_0 :444026889_3_0 :444026889_4_0 :444026889_7_0" shape="804.74,1080.00 798.29,1079.27 795.00,1081.98 796.17,1084.96 797.35,1085.90 803.77,1086.86">
- <request index="0" response="000000" foes="101000" cont="0"/>
- <request index="1" response="010100" foes="010100" cont="1"/>
- <request index="2" response="010000" foes="010010" cont="0"/>
- <request index="3" response="010001" foes="110001" cont="0"/>
- <request index="4" response="000000" foes="001110" cont="0"/>
- <request index="5" response="001001" foes="001001" cont="1"/>
- </junction>
- <junction id="444026895" type="unregulated" x="702.21" y="805.87" incLanes="42976406#5_0 42976406#5_1 42976406#5_2" intLanes="" shape="697.87,808.15 706.55,803.59">
- </junction>
- <junction id="444026917" type="traffic_light" x="1039.53" y="859.01" incLanes="81096816#2_0 8272412#3_0" intLanes=":444026917_0_0 :444026917_1_0 :444026917_2_0 :444026917_3_0" shape="1039.56,862.56 1042.41,861.09 1043.07,858.84 1041.49,856.06 1039.49,855.47 1036.65,856.95 1035.99,859.18 1037.57,861.97">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="444026921" type="unregulated" x="741.26" y="288.18" incLanes="81096816#6_0" intLanes="" shape="739.83,288.90 742.69,287.46">
- </junction>
- <junction id="445506213" type="priority" x="703.58" y="1857.21" incLanes="37942667#5_0" intLanes=":445506213_0_0" shape="702.05,1857.75 705.20,1857.19 702.04,1856.71">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="445506215" type="priority" x="760.62" y="2257.65" incLanes="37973565#4_0 134572336#3_0 134572336#3_1 37351086#1_0" intLanes=":445506215_0_0 :445506215_1_0 :445506215_2_0 :445506215_3_0 :445506215_4_0 :445506215_5_0 :445506215_6_0 :445506215_7_0 :445506215_8_0 :445506215_9_0" shape="759.62,2263.50 762.81,2263.17 767.29,2263.10 769.20,2256.89 769.16,2255.88 767.94,2252.92 761.06,2248.15 757.88,2248.54 757.05,2248.92 752.25,2253.30 756.04,2260.05 758.33,2262.28">
- <request index="0" response="0000001000" foes="0010001000" cont="0"/>
- <request index="1" response="0000111000" foes="0110111000" cont="0"/>
- <request index="2" response="0001111000" foes="1111111000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000111" cont="0"/>
- <request index="4" response="0000000000" foes="0110000110" cont="0"/>
- <request index="5" response="0000000000" foes="0110000110" cont="0"/>
- <request index="6" response="0000000000" foes="1110000100" cont="0"/>
- <request index="7" response="0001111111" foes="0001111111" cont="0"/>
- <request index="8" response="0001110110" foes="0001110110" cont="0"/>
- <request index="9" response="0001000100" foes="0001000100" cont="0"/>
- </junction>
- <junction id="445506216" type="priority" x="976.83" y="1921.29" incLanes="108329426#2_0 -69931595#0_0" intLanes=":445506216_0_0 :445506216_1_0 :445506216_6_0 :445506216_3_0 :445506216_7_0 :445506216_8_0" shape="975.43,1925.57 981.16,1922.49 978.29,1917.08 972.53,1920.09 971.88,1922.14 973.40,1924.96">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="1"/>
- <request index="5" response="000010" foes="000010" cont="1"/>
- </junction>
- <junction id="445506217" type="priority" x="730.60" y="2053.47" incLanes="37942668#1_0 37973565#2_0" intLanes=":445506217_0_0 :445506217_1_0 :445506217_2_0 :445506217_3_0" shape="729.56,2057.35 732.73,2056.88 734.75,2053.07 733.25,2050.25 731.75,2049.46 728.57,2049.83 726.58,2053.65 727.99,2056.53">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="445506220" type="priority" x="742.78" y="1482.78" incLanes="108329425#5_0 -130443630#1_0 130443630#0_0" intLanes=":445506220_0_0 :445506220_1_0 :445506220_2_0 :445506220_3_0 :445506220_4_0 :445506220_9_0 :445506220_6_0 :445506220_10_0 :445506220_11_0" shape="745.97,1491.26 750.83,1486.94 746.44,1480.27 740.00,1479.32 738.33,1490.67 744.76,1491.62">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="445506221" type="priority" x="715.90" y="2060.68" incLanes="130443629#5_0 37942668#2_0 -130443629#6_0" intLanes=":445506221_0_0 :445506221_6_0 :445506221_2_0 :445506221_3_0 :445506221_4_0 :445506221_7_0" shape="712.98,2063.24 719.42,2062.32 721.50,2059.71 720.09,2056.84 718.55,2056.01 712.10,2056.89">
- <request index="0" response="000000" foes="101000" cont="0"/>
- <request index="1" response="010100" foes="010100" cont="1"/>
- <request index="2" response="010000" foes="010010" cont="0"/>
- <request index="3" response="010001" foes="110001" cont="0"/>
- <request index="4" response="000000" foes="001110" cont="0"/>
- <request index="5" response="001001" foes="001001" cont="1"/>
- </junction>
- <junction id="445823604" type="priority" x="763.73" y="2291.39" incLanes="139118804#4_0 37973565#8_0" intLanes=":445823604_0_0 :445823604_1_0 :445823604_2_0 :445823604_3_0" shape="762.52,2294.39 765.69,2293.95 767.90,2291.03 766.43,2288.19 764.95,2287.39 761.76,2287.69 760.46,2289.58 760.26,2292.77">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="446017735" type="priority" x="727.78" y="2228.85" incLanes="134572336#1_0 134572336#1_1" intLanes=":446017735_0_0 :446017735_1_0 :446017735_2_0" shape="728.05,2232.70 731.17,2227.00 728.59,2223.31 725.42,2223.78 724.15,2225.05 723.24,2231.48">
- <request index="0" response="000" foes="000" cont="0"/>
- <request index="1" response="000" foes="000" cont="0"/>
- <request index="2" response="000" foes="000" cont="0"/>
- </junction>
- <junction id="446017738" type="priority" x="667.27" y="1326.71" incLanes="34962531#1_0 -160584984_0 37973568#1_0" intLanes=":446017738_0_0 :446017738_9_0 :446017738_10_0 :446017738_3_0 :446017738_4_0 :446017738_11_0 :446017738_6_0 :446017738_7_0 :446017738_8_0" shape="665.91,1331.04 671.64,1327.96 674.10,1324.43 672.44,1321.69 671.36,1320.99 664.93,1320.08 662.32,1327.67 663.90,1330.46">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="446017739" type="traffic_light" x="759.21" y="1270.76" incLanes="37973568#2_0 81394192#14_0" intLanes=":446017739_0_0 :446017739_1_0 :446017739_2_0 :446017739_3_0" shape="764.13,1269.78 762.54,1267.01 761.44,1266.26 758.27,1265.83 753.95,1272.08 755.61,1274.82 756.59,1275.50 759.73,1276.15">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="446017740" type="traffic_light" x="750.28" y="1313.96" incLanes="37973569#6_0 81394192#10_0" intLanes=":446017740_0_0 :446017740_1_0 :446017740_2_0 :446017740_3_0" shape="755.48,1312.77 753.87,1310.01 752.87,1309.30 749.74,1308.65 745.37,1314.91 746.95,1317.69 748.05,1318.44 751.22,1318.87">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="446017741" type="traffic_light" x="774.09" y="1262.24" incLanes="-130443630#9_0 37973568#3_0 130443630#8_0" intLanes=":446017741_0_0 :446017741_1_0 :446017741_9_0 :446017741_3_0 :446017741_4_0 :446017741_10_0 :446017741_6_0 :446017741_11_0 :446017741_12_0" shape="780.85,1260.30 779.29,1257.51 778.20,1256.76 771.78,1255.79 767.47,1264.19 769.06,1266.96 770.19,1267.71 776.64,1268.46">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="1"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="446017742" type="traffic_light" x="902.94" y="1190.36" incLanes="42976406#0_0 42976406#0_1 42976406#0_2 37973568#5_0" intLanes=":446017742_0_0 :446017742_1_0 :446017742_2_0 :446017742_3_0 :446017742_4_0 :446017742_5_0" shape="900.50,1195.74 908.84,1190.59 909.35,1188.58 907.78,1185.79 905.75,1185.22 897.10,1189.83 896.59,1192.07 898.15,1194.87">
- <request index="0" response="000000" foes="110000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="000000" foes="110000" cont="0"/>
- <request index="3" response="000000" foes="100000" cont="0"/>
- <request index="4" response="000111" foes="000111" cont="0"/>
- <request index="5" response="001111" foes="001111" cont="0"/>
- </junction>
- <junction id="446017743" type="traffic_light" x="916.42" y="1182.76" incLanes="154500693#2_0 154500693#2_1 154500693#2_2 37973568#6_0" intLanes=":446017743_0_0 :446017743_1_0 :446017743_2_0 :446017743_3_0 :446017743_4_0 :446017743_7_0 :446017743_6_0" shape="913.44,1187.99 922.33,1183.88 922.83,1180.99 921.26,1178.20 919.26,1177.60 910.56,1182.11 909.93,1184.58 911.50,1187.37">
- <request index="0" response="0000000" foes="0010000" cont="0"/>
- <request index="1" response="0000000" foes="1110000" cont="0"/>
- <request index="2" response="0000000" foes="1110000" cont="0"/>
- <request index="3" response="0000000" foes="1110000" cont="0"/>
- <request index="4" response="0001111" foes="0001111" cont="0"/>
- <request index="5" response="0001110" foes="0001110" cont="1"/>
- <request index="6" response="0001110" foes="0001110" cont="0"/>
- </junction>
- <junction id="446017744" type="traffic_light" x="769.19" y="1302.90" incLanes="37973569#5_0 -130443630#5_0 130443630#4_0" intLanes=":446017744_0_0 :446017744_1_0 :446017744_9_0 :446017744_3_0 :446017744_10_0 :446017744_11_0 :446017744_6_0 :446017744_7_0 :446017744_12_0" shape="775.90,1300.95 774.33,1298.16 773.23,1297.41 766.79,1296.53 762.39,1305.03 764.01,1307.79 765.08,1308.52 771.51,1309.46">
- <request index="0" response="000001000" foes="100001000" cont="0"/>
- <request index="1" response="011011000" foes="011011000" cont="0"/>
- <request index="2" response="010011000" foes="010111000" cont="1"/>
- <request index="3" response="000000000" foes="100000111" cont="0"/>
- <request index="4" response="011000000" foes="011000110" cont="1"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000000" foes="000010010" cont="0"/>
- <request index="7" response="000000000" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="446017746" type="traffic_light" x="919.59" y="1217.98" incLanes="133960539#2_0 133960539#2_1 37973569#1_0" intLanes=":446017746_0_0 :446017746_1_0 :446017746_2_0 :446017746_3_0 :446017746_4_0" shape="918.14,1222.35 923.96,1219.45 924.51,1217.05 922.95,1214.26 920.89,1213.67 915.23,1216.87 914.60,1218.95 916.16,1221.74">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="446017747" type="traffic_light" x="930.01" y="1212.14" incLanes="37973569#0_0 42976405#1_0 42976405#1_1" intLanes=":446017747_0_0 :446017747_1_0 :446017747_2_0 :446017747_3_0 :446017747_4_0" shape="928.60,1216.48 934.37,1213.49 935.05,1211.14 933.49,1208.35 931.55,1207.72 925.65,1210.46 925.04,1213.09 926.60,1215.88">
- <request index="0" response="01100" foes="01100" cont="0"/>
- <request index="1" response="11100" foes="11100" cont="0"/>
- <request index="2" response="00000" foes="00011" cont="0"/>
- <request index="3" response="00000" foes="00011" cont="0"/>
- <request index="4" response="00000" foes="00010" cont="0"/>
- </junction>
- <junction id="446766148" type="priority" x="58.25" y="2228.62" incLanes="-38027102#0_0" intLanes=":446766148_0_0" shape="58.23,2228.58 56.63,2225.80 59.87,2231.44 58.28,2228.66">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="446766149" type="priority" x="675.84" y="1872.51" incLanes="81394192#2_0 -59159262#0_0 38027102#2_0" intLanes=":446766149_0_0 :446766149_1_0 :446766149_2_0 :446766149_3_0 :446766149_9_0 :446766149_10_0 :446766149_6_0 :446766149_7_0 :446766149_11_0" shape="675.07,1878.31 678.24,1877.85 679.43,1875.72 679.36,1869.22 676.94,1867.75 673.75,1868.10 670.31,1871.95 673.56,1877.58">
- <request index="0" response="000001000" foes="100001000" cont="0"/>
- <request index="1" response="011011000" foes="011011000" cont="0"/>
- <request index="2" response="010011000" foes="010111000" cont="0"/>
- <request index="3" response="000000000" foes="100000111" cont="0"/>
- <request index="4" response="011000000" foes="011000110" cont="1"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000000" foes="000010010" cont="0"/>
- <request index="7" response="000000000" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="446770956" type="priority" x="0.00" y="2037.67" incLanes="-38027665#0_0" intLanes=":446770956_0_0" shape="-0.02,2037.62 -1.55,2034.81 1.55,2040.52 0.02,2037.71">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="446770959" type="priority" x="697.15" y="1684.91" incLanes="38027665#3_0 81394192#5_0" intLanes=":446770959_0_0 :446770959_4_0 :446770959_2_0 :446770959_3_0" shape="699.42,1680.43 696.25,1679.97 694.55,1681.24 693.61,1687.67 694.89,1689.38 698.06,1689.83">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="450564002" type="priority" x="788.17" y="2469.73" incLanes="37973565#9_0 38230510#0_0" intLanes=":450564002_0_0 :450564002_1_0 :450564002_2_0 :450564002_3_0" shape="787.12,2474.08 790.30,2473.67 792.25,2469.42 790.78,2466.58 789.24,2465.78 786.07,2466.21 783.84,2470.87 785.71,2473.47">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="450564003" type="traffic_light" x="1160.22" y="2277.01" incLanes="23182517#0_0 -23182517#1_0 38230510#1_0" intLanes=":450564003_0_0 :450564003_9_0 :450564003_10_0 :450564003_3_0 :450564003_4_0 :450564003_11_0 :450564003_6_0 :450564003_7_0 :450564003_12_0" shape="1158.79,2281.27 1164.54,2278.23 1165.18,2276.19 1163.68,2273.36 1161.66,2272.73 1155.89,2275.72 1155.26,2277.78 1156.74,2280.62">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="1"/>
- </junction>
- <junction id="450564004" type="priority" x="1381.92" y="2158.63" incLanes="190048063_0 141190464_0" intLanes=":450564004_0_0 :450564004_1_0" shape="1382.01,2162.16 1384.83,2160.63 1385.45,2158.64 1384.01,2155.78 1378.44,2158.68 1379.95,2161.50">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="450564005" type="priority" x="1398.77" y="2150.14" incLanes="190048065_0 139118806_0" intLanes=":450564005_0_0 :450564005_4_0 :450564005_2_0 :450564005_3_0" shape="1398.81,2153.59 1401.63,2152.08 1400.20,2145.84 1394.43,2148.85 1393.79,2150.86 1395.23,2153.71">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="450564006" type="priority" x="1403.52" y="2158.97" incLanes="129780019#0_0 -23182484#0_0" intLanes=":450564006_0_0 :450564006_1_0 :450564006_4_0 :450564006_5_0" shape="1404.48,2163.82 1407.25,2162.22 1402.67,2154.01 1399.85,2155.52 1399.23,2157.54 1402.22,2163.31">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="1"/>
- <request index="3" response="0010" foes="0010" cont="1"/>
- </junction>
- <junction id="450564007" type="unregulated" x="821.48" y="2760.41" incLanes="37973565#11_0" intLanes="" shape="823.06,2760.15 819.91,2760.66">
- </junction>
- <junction id="450623549" type="unregulated" x="592.39" y="2365.36" incLanes="" intLanes="" shape="597.01,2370.01 587.76,2360.72">
- </junction>
- <junction id="452389251" type="unregulated" x="1599.92" y="1832.34" incLanes="101272435#7_0" intLanes="" shape="1601.34,1831.60 1598.51,1833.09">
- </junction>
- <junction id="452425486" type="priority" x="1349.06" y="1945.73" incLanes="38319546#3_0 -38319546#4_0 81523332#0_0" intLanes=":452425486_0_0 :452425486_1_0 :452425486_2_0 :452425486_3_0 :452425486_4_0 :452425486_5_0 :452425486_6_0 :452425486_7_0 :452425486_8_0" shape="1347.71,1950.19 1353.48,1947.19 1354.10,1944.85 1352.59,1942.03 1350.65,1941.37 1344.73,1944.04 1344.07,1946.92 1345.74,1949.65">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="452425487" type="priority" x="1315.95" y="1872.32" incLanes="38319546#5_0 81096844#2_0 -38319546#6_0 -81096844#3_0" intLanes=":452425487_0_0 :452425487_1_0 :452425487_2_0 :452425487_3_0 :452425487_4_0 :452425487_5_0 :452425487_16_0 :452425487_17_0 :452425487_8_0 :452425487_9_0 :452425487_10_0 :452425487_11_0 :452425487_12_0 :452425487_13_0 :452425487_18_0 :452425487_19_0" shape="1315.25,1878.08 1321.04,1875.13 1321.72,1872.92 1318.65,1867.19 1316.64,1866.56 1310.86,1869 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="452425488" type="priority" x="1279.04" y="1800.72" incLanes="38319546#6_0 -23066446#1_0 -38319546#7_0 23066446#0_0" intLanes=":452425488_0_0 :452425488_1_0 :452425488_2_0 :452425488_3_0 :452425488_4_0 :452425488_5_0 :452425488_16_0 :452425488_17_0 :452425488_8_0 :452425488_9_0 :452425488_10_0 :452425488_11_0 :452425488_12_0 :452425488_13_0 :452425488_18_0 :452425488_19_0" shape="1278.33,1806.44 1284.11,1803.46 1284.77,1801.37 1281.72,1795.62 1279.68,1794.98 1273.93,1798 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="452425489" type="priority" x="1246.99" y="1737.78" incLanes="38319546#8_0 -38319547_0" intLanes=":452425489_0_0 :452425489_4_0 :452425489_2_0 :452425489_5_0" shape="1244.53,1740.23 1250.46,1737.57 1244.24,1735.66">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="452425490" type="right_before_left" x="1256.78" y="1705.85" incLanes="-38319548#0_0 -38319549#0_0 38319547_0" intLanes=":452425490_0_0 :452425490_1_0 :452425490_2_0 :452425490_3_0 :452425490_4_0 :452425490_5_0 :452425490_6_0 :452425490_7_0 :452425490_8_0" shape="1262.54,1706.43 1259.45,1700.71 1257.43,1700.10 1251.68,1703.12 1253.61,1705.10 1259.83,1707.00">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="452425491" type="priority" x="1291.94" y="1686.84" incLanes="-38319548#1_0 23066443#3_0 38319548#0_0" intLanes=":452425491_0_0 :452425491_1_0 :452425491_2_0 :452425491_3_0 :452425491_4_0 :452425491_5_0 :452425491_6_0 :452425491_7_0 :452425491_8_0" shape="1292.72,1691.82 1295.56,1690.35 1296.28,1688.17 1293.17,1682.47 1291.16,1681.85 1288.32,1683.33 1287.62,1685.48 1290.71,1691.20">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="452425493" type="priority" x="1363.91" y="1647.60" incLanes="58770725#3_0 -38319548#2_0 38319548#1_0" intLanes=":452425493_0_0 :452425493_1_0 :452425493_2_0 :452425493_3_0 :452425493_4_0 :452425493_5_0 :452425493_6_0 :452425493_7_0 :452425493_8_0" shape="1364.69,1652.59 1367.53,1651.12 1368.16,1649.06 1365.17,1643.29 1363.15,1642.65 1360.31,1644.12 1359.57,1646.27 1362.68,1651.97">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="000000000" foes="011011000" cont="0"/>
- <request index="2" response="000000000" foes="010111000" cont="0"/>
- <request index="3" response="000000111" foes="100000111" cont="0"/>
- <request index="4" response="011000110" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="0"/>
- <request index="6" response="000000010" foes="000010010" cont="0"/>
- <request index="7" response="000000110" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="452425497" type="right_before_left" x="1469.13" y="1593.14" incLanes="-81096822#0_0 -38319548#7_0 38319548#6_0" intLanes=":452425497_0_0 :452425497_1_0 :452425497_2_0 :452425497_3_0 :452425497_4_0 :452425497_5_0 :452425497_6_0 :452425497_7_0 :452425497_8_0" shape="1468.45,1598.85 1474.21,1595.84 1474.36,1594.07 1471.34,1588.31 1463.43,1592.43 1466.42,1598.20">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="452425499" type="priority" x="1206.87" y="1665.88" incLanes="38319549#2_0 -38319550#0_0" intLanes=":452425499_0_0 :452425499_4_0 :452425499_2_0 :452425499_5_0" shape="1207.63,1669.39 1209.11,1663.06 1203.27,1665.91">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="452425500" type="priority" x="1176.22" y="1603.13" incLanes="38319550#0_0 58770723#1_0 -38319550#1_0" intLanes=":452425500_0_0 :452425500_1_0 :452425500_2_0 :452425500_3_0 :452425500_4_0 :452425500_5_0 :452425500_6_0 :452425500_7_0 :452425500_8_0" shape="1174.73,1607.48 1180.57,1604.63 1181.16,1602.37 1179.69,1599.53 1177.65,1598.90 1171.91,1601.95 1171.22,1604.04 1172.76,1606.85">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="452425501" type="priority" x="1170.08" y="1591.58" incLanes="38319550#1_0 -38319550#2_0 37771902#0_0" intLanes=":452425501_0_0 :452425501_1_0 :452425501_2_0 :452425501_3_0 :452425501_4_0 :452425501_5_0 :452425501_6_0 :452425501_7_0 :452425501_8_0" shape="1168.70,1595.90 1174.44,1592.85 1175.07,1590.85 1173.62,1587.99 1171.54,1587.30 1165.76,1590.27 1165.10,1592.27 1166.53,1595.14">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="452425502" type="traffic_light" x="953.92" y="1198.72" incLanes="38319550#3_0 101272429#1_0 -38319550#4_0" intLanes=":452425502_0_0 :452425502_1_0 :452425502_9_0 :452425502_3_0 :452425502_4_0 :452425502_10_0 :452425502_6_0 :452425502_11_0 :452425502_12_0" shape="952.51,1203.06 958.29,1200.07 958.90,1197.73 957.31,1194.95 955.32,1194.36 949.55,1197.36 948.95,1199.67 950.52,1202.46">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="1"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="452446338" type="unregulated" x="1588.22" y="1856.27" incLanes="" intLanes="" shape="1587.48,1854.85 1588.96,1857.69">
- </junction>
- <junction id="452446339" type="priority" x="1304.14" y="2005.12" incLanes="139118804#0_0" intLanes=":452446339_0_0" shape="1304.87,2006.55 1303.40,2003.71 1304.89,2006.54">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="452446340" type="priority" x="1302.36" y="1956.94" incLanes="172498380#0_0" intLanes=":452446340_0_0 :452446340_1_0 :452446340_2_0" shape="1307.33,1956.06 1305.81,1953.25 1303.81,1952.63 1298.02,1955.58 1297.89,1958.56 1299.93,1961.02">
- <request index="0" response="000" foes="000" cont="0"/>
- <request index="1" response="000" foes="000" cont="0"/>
- <request index="2" response="000" foes="000" cont="0"/>
- </junction>
- <junction id="452446345" type="priority" x="1314.14" y="1950.54" incLanes="133960538#2_0 133960538#2_1 172498380#1_0" intLanes=":452446345_0_0 :452446345_1_0" shape="1318.71,1951.39 1318.18,1948.24 1315.33,1946.14 1309.72,1949.42 1309.15,1951.43 1310.68,1954.24">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="477486714" type="priority" x="666.99" y="2225.88" incLanes="81394188#4_0 107066313#5_0 134572336#0_0 134572336#0_1" intLanes=":477486714_0_0 :477486714_9_0 :477486714_2_0 :477486714_3_0 :477486714_4_0 :477486714_10_0 :477486714_6_0 :477486714_7_0 :477486714_8_0" shape="671.15,2234.64 673.77,2232.81 674.18,2232.38 675.91,2229.69 675.77,2228.54 675.32,2222.06 666.96,2219.92 661.53,2223.49 661.05,2225.48 664.22,2231.15">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="000010000" foes="100010000" cont="0"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010111" foes="000010111" cont="0"/>
- </junction>
- <junction id="477486717" type="priority" x="504.35" y="1971.39" incLanes="-107066313#3_0 -38027102#1_0 107066313#2_0 38027102#0_0" intLanes=":477486717_0_0 :477486717_1_0 :477486717_16_0 :477486717_17_0 :477486717_4_0 :477486717_5_0 :477486717_6_0 :477486717_7_0 :477486717_8_0 :477486717_9_0 :477486717_18_0 :477486717_19_0 :477486717_12_0 :477486717_13_0 :477486717_14_0 :477486717_15_0" shape="504.27,1977.28 509.74,1973.76 510.23,1971.75 506.98,1966.12 504.47,1965.52 498.99,1969.00 4 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="477486719" type="priority" x="405.54" y="1816.27" incLanes="-107066313#1_0 -38027665#1_0 107066313#0_0 38027665#0_0" intLanes=":477486719_0_0 :477486719_1_0 :477486719_16_0 :477486719_17_0 :477486719_4_0 :477486719_5_0 :477486719_6_0 :477486719_7_0 :477486719_8_0 :477486719_9_0 :477486719_18_0 :477486719_19_0 :477486719_12_0 :477486719_13_0 :477486719_14_0 :477486719_15_0" shape="405.45,1822.17 410.93,1818.67 411.43,1816.67 408.23,1811.01 405.46,1810.25 400.04,1813.83 3 [...]
- <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
- <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
- </junction>
- <junction id="484282948" type="priority" x="576.24" y="946.72" incLanes="-40196944#0_0" intLanes=":484282948_0_0" shape="576.23,946.67 575.69,943.51 576.79,949.92 576.25,946.77">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="484282953" type="unregulated" x="619.99" y="844.83" incLanes="" intLanes="" shape="618.57,845.57 621.40,844.08">
- </junction>
- <junction id="484282955" type="priority" x="665.40" y="931.46" incLanes="-40196944#1_0 40196943_0 40196944#0_0" intLanes=":484282955_0_0 :484282955_6_0 :484282955_2_0 :484282955_3_0 :484282955_4_0 :484282955_7_0" shape="668.17,934.23 666.94,927.85 664.30,925.90 661.46,927.39 660.68,928.97 661.78,935.37">
- <request index="0" response="000000" foes="101000" cont="0"/>
- <request index="1" response="010100" foes="010100" cont="1"/>
- <request index="2" response="010000" foes="010010" cont="0"/>
- <request index="3" response="010001" foes="110001" cont="0"/>
- <request index="4" response="000000" foes="001110" cont="0"/>
- <request index="5" response="001001" foes="001001" cont="1"/>
- </junction>
- <junction id="484282961" type="priority" x="513.94" y="1033.03" incLanes="37638470#2_0" intLanes=":484282961_0_0" shape="513.93,1032.98 513.36,1029.83 514.52,1036.22 513.95,1033.08">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="503954409" type="priority" x="803.00" y="2587.20" incLanes="37973565#10_0" intLanes=":503954409_0_0 :503954409_1_0" shape="801.74,2589.99 804.92,2589.59 807.12,2586.85 805.63,2584.02 804.11,2583.23 800.94,2583.63">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="512548961" type="unregulated" x="1739.75" y="2821.51" incLanes="160587557_0" intLanes="" shape="1741.17,2820.78 1738.32,2822.23">
- </junction>
- <junction id="538265860" type="traffic_light" x="724.70" y="778.58" incLanes="42976407#0_0" intLanes=":538265860_0_0" shape="723.45,779.65 726.29,778.17 725.35,777.07 723.45,779.65">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="538265864" type="priority" x="741.65" y="916.79" incLanes="42976408#0_0 40196944#1_0" intLanes=":538265864_0_0 :538265864_1_0 :538265864_2_0 :538265864_4_0" shape="742.27,921.44 745.11,919.96 740.57,911.28 737.74,912.77 736.96,914.38 738.19,920.76">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="538265865" type="unregulated" x="717.31" y="797.74" incLanes="" intLanes="" shape="712.95,799.98 721.67,795.50">
- </junction>
- <junction id="538265866" type="traffic_light" x="687.53" y="813.50" incLanes="42976408#1_0" intLanes=":538265866_0_0" shape="686.22,814.46 689.06,812.97 685.91,813.55">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="538265870" type="priority" x="903.83" y="1226.83" incLanes="81672207#2_0 37973569#3_0" intLanes=":538265870_0_0 :538265870_1_0" shape="903.64,1230.49 906.59,1229.24 907.17,1226.79 905.61,1224.00 900.18,1227.06 901.75,1229.84">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="538810716" type="unregulated" x="683.02" y="512.58" incLanes="24573930#4_0" intLanes="" shape="681.61,513.32 684.44,511.83">
- </junction>
- <junction id="538810722" type="traffic_light" x="934.86" y="658.06" incLanes="81096816#4_0" intLanes=":538810722_0_0" shape="933.44,658.80 936.28,657.32 933.45,658.82">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="538810724" type="priority" x="903.70" y="936.28" incLanes="24573930#2_0 8272412#1_0" intLanes=":538810724_0_0 :538810724_1_0 :538810724_2_0 :538810724_3_0" shape="903.73,939.81 906.57,938.33 907.24,936.10 905.65,933.32 903.66,932.73 900.82,934.21 900.17,936.41 901.73,939.20">
- <request index="0" response="1100" foes="1100" cont="0"/>
- <request index="1" response="1000" foes="1000" cont="0"/>
- <request index="2" response="0000" foes="0001" cont="0"/>
- <request index="3" response="0000" foes="0011" cont="0"/>
- </junction>
- <junction id="538810726" type="priority" x="970.97" y="897.98" incLanes="24573897#1_0 8272412#2_0" intLanes=":538810726_0_0 :538810726_1_0 :538810726_2_0 :538810726_3_0" shape="971.01,901.52 973.85,900.04 974.50,897.81 972.92,895.03 970.92,894.44 968.09,895.92 967.43,898.15 969.01,900.94">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="538902966" type="unregulated" x="1487.88" y="2104.32" incLanes="" intLanes="" shape="1489.30,2103.59 1486.45,2105.05">
- </junction>
- <junction id="543360161" type="priority" x="1596.40" y="1836.52" incLanes="-81096822#2_0 75656628#0_0 81096822#1_0" intLanes=":543360161_0_0 :543360161_1_0 :543360161_2_0 :543360161_3_0 :543360161_4_0 :543360161_5_0 :543360161_6_0 :543360161_7_0 :543360161_8_0" shape="1594.97,1840.81 1600.74,1837.81 1601.35,1835.74 1599.87,1832.90 1597.84,1832.27 1592.08,1835.28 1591.44,1837.38 1592.96,1840.20">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="552842254" type="priority" x="452.00" y="1466.18" incLanes="43684741#5_0 37973572#4_0 37973572#4_1 -37973572#5_0 -37973572#5_1" intLanes=":552842254_0_0 :552842254_1_0 :552842254_2_0 :552842254_3_0 :552842254_4_0 :552842254_5_0 :552842254_11_0 :552842254_7_0 :552842254_8_0 :552842254_9_0 :552842254_12_0" shape="457.13,1473.92 460.95,1468.65 462.20,1467.87 455.66,1456.51 446.95,1461.51 453.41,1472.91">
- <request index="0" response="00000110000" foes="10000110000" cont="0"/>
- <request index="1" response="01110110000" foes="01111110000" cont="0"/>
- <request index="2" response="01000001000" foes="01000001000" cont="0"/>
- <request index="3" response="00000000000" foes="01000000100" cont="0"/>
- <request index="4" response="00000000000" foes="11000000011" cont="0"/>
- <request index="5" response="00000000000" foes="11000000011" cont="0"/>
- <request index="6" response="00110000010" foes="00110000010" cont="1"/>
- <request index="7" response="00000000000" foes="00001000010" cont="0"/>
- <request index="8" response="00000000000" foes="00001000010" cont="0"/>
- <request index="9" response="00000111000" foes="00000111110" cont="0"/>
- <request index="10" response="00000110001" foes="00000110001" cont="1"/>
- </junction>
- <junction id="552842255" type="priority" x="465.58" y="1476.04" incLanes="43684741#3_0 37973569#8_0 -43684741#4_0" intLanes=":552842255_0_0 :552842255_1_0 :552842255_9_0 :552842255_3_0 :552842255_4_0 :552842255_5_0 :552842255_6_0 :552842255_10_0 :552842255_11_0" shape="467.47,1481.45 471.30,1476.20 471.40,1474.57 469.81,1471.79 463.68,1470.64 459.86,1475.90 459.77,1477.53 461.37,1480.31">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="552842256" type="priority" x="716.75" y="1658.63" incLanes="59159259#1_0 105283535#1_0 -130443630#0_0 -43684741#0_0 107028581#3_0 37973566_0" intLanes=":552842256_0_0 :552842256_1_0 :552842256_2_0 :552842256_3_0 :552842256_4_0 :552842256_5_0 :552842256_6_0 :552842256_7_0 :552842256_8_0 :552842256_36_0 :552842256_10_0 :552842256_37_0 :552842256_12_0 :552842256_13_0 :552842256_14_0 :552842256_15_0 :552842256_16_0 :552842256_17_0 :552842256_18_0 :552842256_19_0 :552842256_ [...]
- <request index="0" response="000000010000000000000000000001000000" foes="100000010000001000000100000001000000" cont="0"/>
- <request index="1" response="011111010000000000000000000011000000" foes="011111110000011000001100000011000000" cont="0"/>
- <request index="2" response="011110001111000000000000000111000000" foes="011110001111111000011100000111000000" cont="0"/>
- <request index="3" response="011100001110000111000000001111000000" foes="011100001110000111111100001111000000" cont="0"/>
- <request index="4" response="011000001100000110000011011111000000" foes="011000001100000110000011011111000000" cont="0"/>
- <request index="5" response="010000001000000100000010011111000000" foes="010000001000000100000010111111000000" cont="0"/>
- <request index="6" response="000000000000000000000000000000000000" foes="100000010000001000000100000000111111" cont="0"/>
- <request index="7" response="000000000000000000000000000000000000" foes="011111110000011000001100000000111110" cont="0"/>
- <request index="8" response="000000001111000000000000000000000000" foes="011110001111111000011100000000111100" cont="0"/>
- <request index="9" response="000000001110000000000000000000000000" foes="011100001110000111111100000000111000" cont="1"/>
- <request index="10" response="000000001100000000000000000000000000" foes="011000001100000110000011000000110000" cont="0"/>
- <request index="11" response="010000001000000100000010000000100000" foes="010000001000000100000010000000100000" cont="1"/>
- <request index="12" response="000000000100000000000000010000000000" foes="001000000100000010000000010000010000" cont="0"/>
- <request index="13" response="000000001100000000000000010000000000" foes="011000001100000110000000110000110000" cont="0"/>
- <request index="14" response="000000011100000000000000001111001111" foes="111000011100001110000000001111001111" cont="0"/>
- <request index="15" response="000111011100000000000000001110001110" foes="000111111100011110000000001110001110" cont="0"/>
- <request index="16" response="000110000011000000000000001100001100" foes="000110000011111110000000001100001100" cont="0"/>
- <request index="17" response="000100000010000001000000001000001000" foes="000100000010000001000000001000001000" cont="0"/>
- <request index="18" response="000000000010000000000000001000000000" foes="000100000010000000100000001000001000" cont="0"/>
- <request index="19" response="000000000110000000011111011000000000" foes="001100000110000000011111011000011000" cont="0"/>
- <request index="20" response="000000001110000000011110011000000000" foes="011100001110000000011110111000111000" cont="0"/>
- <request index="21" response="000000011110000000011100000111000111" foes="111100011110000000011100000111000111" cont="0"/>
- <request index="22" response="000011011110000000011000000110000110" foes="000011111110000000011000000110000110" cont="0"/>
- <request index="23" response="000010000001000000010000000100000100" foes="000010000001000000010000000100000100" cont="0"/>
- <request index="24" response="000000000000000000000000000000000000" foes="000010000000100000010000000100000100" cont="0"/>
- <request index="25" response="000000000000000000000000000000000000" foes="000110000000011111110000001100001100" cont="0"/>
- <request index="26" response="000000000000000000000000000000000000" foes="001110000000011110001111011100011100" cont="0"/>
- <request index="27" response="000000000000000000000000000000000000" foes="011110000000011100001110111100111100" cont="0"/>
- <request index="28" response="000000000000000000000000000011000000" foes="111110000000011000001100000011000011" cont="1"/>
- <request index="29" response="000001000000010000001000000010000010" foes="000001000000010000001000000010000010" cont="1"/>
- <request index="30" response="000000000000000000000000000010000000" foes="000000100000010000001000000010000010" cont="0"/>
- <request index="31" response="000000011111000000000000000110000000" foes="000000011111110000011000000110000110" cont="0"/>
- <request index="32" response="000000011110001111000000001110000000" foes="000000011110001111111000001110001110" cont="0"/>
- <request index="33" response="000000011100001110000111011110000000" foes="000000011100001110000111011110011110" cont="0"/>
- <request index="34" response="000000011000001100000110011110000000" foes="000000011000001100000110111110111110" cont="0"/>
- <request index="35" response="000000010000001000000100000001000001" foes="000000010000001000000100000001000001" cont="0"/>
- </junction>
- <junction id="552842257" type="priority" x="701.23" y="1656.72" incLanes="-107028581#3_0 107028581#2_0 81394192#6_0" intLanes=":552842257_0_0 :552842257_9_0 :552842257_10_0 :552842257_3_0 :552842257_4_0 :552842257_11_0 :552842257_6_0 :552842257_7_0 :552842257_8_0" shape="705.43,1660.52 706.23,1654.06 705.49,1652.59 702.73,1650.97 698.44,1653.13 697.68,1659.58 698.96,1661.24 702.12,1661.70">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="560472377" type="priority" x="830.66" y="1979.49" incLanes="-44104491#1_0 44104491#0_0 44104490_0" intLanes=":560472377_0_0 :560472377_6_0 :560472377_2_0 :560472377_7_0 :560472377_4_0 :560472377_5_0" shape="829.16,1983.80 834.99,1980.92 832.05,1975.21 826.32,1978.29 825.67,1980.33 827.18,1983.16">
- <request index="0" response="000000" foes="111000" cont="0"/>
- <request index="1" response="100100" foes="100100" cont="1"/>
- <request index="2" response="000000" foes="100010" cont="0"/>
- <request index="3" response="010001" foes="010001" cont="1"/>
- <request index="4" response="000001" foes="001001" cont="0"/>
- <request index="5" response="000101" foes="000111" cont="0"/>
- </junction>
- <junction id="560472378" type="priority" x="838.77" y="1995.89" incLanes="37942668#0_0 44104491#1_0" intLanes=":560472378_0_0 :560472378_1_0 :560472378_4_0 :560472378_5_0" shape="843.76,1995.01 842.24,1992.19 840.25,1991.56 834.43,1994.44 833.86,1996.68 835.37,1999.51">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="1"/>
- <request index="3" response="0010" foes="0010" cont="1"/>
- </junction>
- <junction id="560472379" type="priority" x="728.36" y="2034.02" incLanes="37973565#1_0" intLanes=":560472379_0_0 :560472379_1_0" shape="727.06,2036.78 730.24,2036.41 732.46,2033.65 730.95,2030.83 729.43,2030.04 726.26,2030.48">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="561204538" type="priority" x="705.11" y="1650.07" incLanes="43684741#0_0 -43684741#1_0 81394192#7_0" intLanes=":561204538_0_0 :561204538_9_0 :561204538_10_0 :561204538_3_0 :561204538_4_0 :561204538_11_0 :561204538_6_0 :561204538_7_0 :561204538_8_0" shape="705.97,1654.74 709.82,1649.50 707.50,1644.29 704.33,1643.87 702.91,1644.47 699.11,1649.74 701.24,1653.53 704.00,1655.14">
- <request index="0" response="000000000" foes="111100000" cont="0"/>
- <request index="1" response="000011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="000000000" foes="010000010" cont="0"/>
- <request index="4" response="000000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000001" foes="000100001" cont="0"/>
- <request index="7" response="000011011" foes="000011011" cont="0"/>
- <request index="8" response="000010011" foes="000010111" cont="0"/>
- </junction>
- <junction id="566579334" type="unregulated" x="857.57" y="419.88" incLanes="" intLanes="" shape="856.15,420.62 858.99,419.15">
- </junction>
- <junction id="566579336" type="traffic_light" x="970.87" y="637.71" incLanes="37640550#0_0" intLanes=":566579336_0_0" shape="969.47,638.47 972.27,636.92 969.46,638.46">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="566579338" type="traffic_light" x="1076.57" y="837.91" incLanes="37640550#1_0" intLanes=":566579338_0_0" shape="1075.15,838.64 1077.99,837.17 1075.15,838.64">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="566579339" type="priority" x="1110.73" y="904.06" incLanes="23566902_0 37640550#2_0" intLanes=":566579339_0_0 :566579339_1_0" shape="1110.73,907.51 1113.57,906.02 1114.26,903.91 1112.70,901.12 1110.70,900.52 1107.86,901.99">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="566579340" type="priority" x="1560.92" y="1852.50" incLanes="-154409621_0" intLanes=":566579340_0_0 :566579340_1_0" shape="1560.10,1847.54 1557.28,1849.05 1556.65,1851.07 1559.67,1856.82">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="566670951" type="priority" x="1805.32" y="1410.87" incLanes="101272434_0" intLanes=":566670951_0_0" shape="1805.34,1410.91 1806.84,1413.74 1803.79,1407.99 1805.29,1410.82">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="650318340" type="priority" x="654.14" y="307.60" incLanes="38319550#14_0" intLanes=":650318340_0_0" shape="654.19,307.61 657.35,308.11 650.93,307.09 654.09,307.59">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="719463587" type="traffic_light" x="939.04" y="1170.02" incLanes="38319550#7_0 -38319550#8_0 37772596#0_0" intLanes=":719463587_0_0 :719463587_9_0 :719463587_10_0 :719463587_3_0 :719463587_4_0 :719463587_11_0 :719463587_6_0 :719463587_7_0 :719463587_12_0" shape="937.64,1174.37 943.41,1171.38 944.02,1169.05 942.45,1166.27 940.45,1165.67 934.68,1168.66 934.07,1170.98 935.64,1173.77">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="1"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="1"/>
- </junction>
- <junction id="719463795" type="priority" x="907.28" y="1108.73" incLanes="38319550#9_0 24573905#2_0 -38319550#10_0" intLanes=":719463795_0_0 :719463795_1_0 :719463795_2_0 :719463795_3_0 :719463795_4_0 :719463795_5_0 :719463795_6_0 :719463795_7_0 :719463795_8_0" shape="905.88,1113.09 911.65,1110.10 912.25,1107.74 910.67,1104.96 908.67,1104.37 902.90,1107.36 902.30,1109.73 903.88,1112.51">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="719464017" type="traffic_light" x="652.35" y="318.90" incLanes="-38319550#14_0 38319550#13_0" intLanes=":719464017_0_0 :719464017_4_0 :719464017_2_0 :719464017_5_0" shape="655.56,319.42 649.14,318.40 649.16,318.29 655.55,319.47">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="724002953" type="priority" x="728.03" y="2283.05" incLanes="81394188#1_0 37369047#0_0 37369047#0_1 37369047#0_2 37369047#0_3" intLanes=":724002953_0_0 :724002953_1_0 :724002953_2_0 :724002953_3_0 :724002953_4_0 :724002953_5_0" shape="727.74,2292.24 730.90,2291.78 731.85,2288.44 725.68,2276.88 728.91,2275.63 725.73,2275.94 720.01,2279.92 726.20,2291.46">
- <request index="0" response="000000" foes="111000" cont="0"/>
- <request index="1" response="000000" foes="000000" cont="0"/>
- <request index="2" response="000000" foes="000000" cont="0"/>
- <request index="3" response="000001" foes="000001" cont="0"/>
- <request index="4" response="000001" foes="000001" cont="0"/>
- <request index="5" response="000001" foes="000001" cont="0"/>
- </junction>
- <junction id="728444397" type="unregulated" x="276.97" y="1583.37" incLanes="37973569#9_0" intLanes="" shape="277.75,1584.77 276.20,1581.97">
- </junction>
- <junction id="728492341" type="priority" x="440.65" y="1871.28" incLanes="-107066313#2_0 -58779718#0_0 107066313#1_0" intLanes=":728492341_0_0 :728492341_9_0 :728492341_10_0 :728492341_3_0 :728492341_4_0 :728492341_5_0 :728492341_6_0 :728492341_7_0 :728492341_11_0" shape="440.53,1877.13 446.01,1873.63 446.49,1871.60 443.19,1866.00 440.90,1865.62 435.42,1869.12">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="1"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="010000000" foes="010000100" cont="0"/>
- <request index="4" response="010000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000000000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="728492348" type="priority" x="537.67" y="1882.44" incLanes="-58779719#0_0" intLanes=":728492348_0_0" shape="537.64,1882.40 536.05,1879.62 539.29,1885.26 537.69,1882.48">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="728492353" type="priority" x="629.00" y="1648.26" incLanes="-107028581#1_0 107028581#0_0 -107166846#0_0" intLanes=":728492353_0_0 :728492353_1_0 :728492353_9_0 :728492353_3_0 :728492353_10_0 :728492353_11_0 :728492353_6_0 :728492353_7_0 :728492353_8_0" shape="633.33,1652.04 634.09,1645.58 624.72,1644.43 623.90,1650.88 625.21,1652.58 631.66,1653.35">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="000000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="1"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000010" foes="000100010" cont="0"/>
- <request index="7" response="000011010" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="728492360" type="priority" x="613.04" y="1774.73" incLanes="-58779718#1_0 107166846#1_0 58779718#0_0 -107166846#2_0" intLanes=":728492360_0_0 :728492360_1_0 :728492360_2_0 :728492360_3_0 :728492360_4_0 :728492360_5_0 :728492360_16_0 :728492360_17_0 :728492360_8_0 :728492360_9_0 :728492360_10_0 :728492360_11_0 :728492360_12_0 :728492360_13_0 :728492360_18_0 :728492360_19_0" shape="617.59,1778.77 618.65,1772.36 616.86,1770.55 610.42,1769.71 605.14,1775.25 608.20,1780.99 6 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="728492361" type="priority" x="609.90" y="1840.82" incLanes="-58779719#1_0 107166846#2_0 58779719#0_0 -107166846#3_0" intLanes=":728492361_0_0 :728492361_1_0 :728492361_2_0 :728492361_3_0 :728492361_4_0 :728492361_5_0 :728492361_16_0 :728492361_17_0 :728492361_8_0 :728492361_9_0 :728492361_10_0 :728492361_11_0 :728492361_12_0 :728492361_13_0 :728492361_18_0 :728492361_19_0" shape="614.47,1844.74 615.37,1838.30 613.36,1836.52 606.87,1836.21 601.84,1841.72 605.08,1847.35 6 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="728492364" type="priority" x="682.53" y="1786.16" incLanes="58779718#1_0 81394192#4_0" intLanes=":728492364_0_0 :728492364_4_0 :728492364_2_0 :728492364_3_0" shape="684.80,1781.65 681.63,1781.19 679.94,1782.44 678.88,1788.85 680.28,1790.60 683.44,1791.06">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="728492366" type="priority" x="606.61" y="1912.43" incLanes="-107166846#4_0 -38027102#2_0 107166846#3_0 38027102#1_0" intLanes=":728492366_0_0 :728492366_1_0 :728492366_2_0 :728492366_3_0 :728492366_4_0 :728492366_5_0 :728492366_16_0 :728492366_17_0 :728492366_8_0 :728492366_9_0 :728492366_10_0 :728492366_11_0 :728492366_12_0 :728492366_13_0 :728492366_18_0 :728492366_19_0" shape="604.79,1918.89 611.12,1917.41 614.68,1911.53 611.43,1905.90 610.20,1905.15 603.71,1904.85 5 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="728492371" type="priority" x="673.36" y="1849.68" incLanes="81394192#3_0 58779719#1_0" intLanes=":728492371_0_0 :728492371_1_0 :728492371_2_0 :728492371_4_0" shape="672.25,1854.27 675.43,1853.93 675.62,1845.21 672.46,1844.76 670.76,1846.03 669.86,1852.47">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="728492372" type="priority" x="623.00" y="1698.07" incLanes="-38027665#2_0 107166846#0_0 38027665#1_0 -107166846#1_0" intLanes=":728492372_0_0 :728492372_1_0 :728492372_2_0 :728492372_3_0 :728492372_4_0 :728492372_5_0 :728492372_16_0 :728492372_17_0 :728492372_8_0 :728492372_9_0 :728492372_10_0 :728492372_11_0 :728492372_12_0 :728492372_13_0 :728492372_18_0 :728492372_19_0" shape="631.52,1696.97 628.30,1691.32 627.18,1690.57 620.73,1689.79 614.63,1698.78 617.65,1704.54 6 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="733663070" type="priority" x="717.17" y="1768.65" incLanes="59159266#1_0 37942667#4_0" intLanes=":733663070_0_0 :733663070_1_0" shape="722.01,1767.89 720.52,1765.07 719.40,1764.28 716.24,1763.83 715.24,1770.68 718.40,1771.17">
- <request index="0" response="00" foes="10" cont="0"/>
- <request index="1" response="01" foes="01" cont="0"/>
- </junction>
- <junction id="733663071" type="right_before_left" x="1456.20" y="1226.57" incLanes="83051442#2_0 -83051442#0_0 -83051426_0" intLanes=":733663071_0_0 :733663071_1_0 :733663071_2_0 :733663071_3_0 :733663071_4_0 :733663071_5_0 :733663071_6_0 :733663071_7_0 :733663071_8_0" shape="1458.20,1230.27 1459.45,1223.90 1453.76,1220.07 1449.46,1224.94 1449.26,1226.65 1452.37,1232.36">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="733663076" type="priority" x="848.02" y="1673.89" incLanes="69931595#3_0 -108329425#0_0 105251811#1_0 -105283535#0_0" intLanes=":733663076_0_0 :733663076_1_0 :733663076_2_0 :733663076_16_0 :733663076_4_0 :733663076_5_0 :733663076_6_0 :733663076_7_0 :733663076_8_0 :733663076_9_0 :733663076_10_0 :733663076_11_0 :733663076_12_0 :733663076_13_0 :733663076_17_0 :733663076_18_0" shape="846.09,1677.23 851.87,1674.25 847.73,1666.26 841.96,1669.24 829.51,1666.57 828.23,1674.87 8 [...]
- <request index="0" response="0000000000000000" foes="0100010000100000" cont="0"/>
- <request index="1" response="0000000000000000" foes="1100110001100000" cont="0"/>
- <request index="2" response="0011000000000000" foes="0011001111100000" cont="0"/>
- <request index="3" response="0010001000010000" foes="0010001000010000" cont="1"/>
- <request index="4" response="0010000000000000" foes="0010001000001000" cont="0"/>
- <request index="5" response="0110000000000111" foes="0110011000000111" cont="0"/>
- <request index="6" response="0110000000000110" foes="1110111000000110" cont="0"/>
- <request index="7" response="0001000100000100" foes="0001000100000100" cont="0"/>
- <request index="8" response="0001000000000100" foes="0001000010000100" cont="0"/>
- <request index="9" response="0011000001110100" foes="0011000001111100" cont="0"/>
- <request index="10" response="0111000001100011" foes="0111000001100011" cont="0"/>
- <request index="11" response="0111000001000010" foes="1111000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000111110000100" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000111001111100" cont="0"/>
- <request index="14" response="0000000000000011" foes="0000110001100011" cont="1"/>
- <request index="15" response="0000100001000010" foes="0000100001000010" cont="1"/>
- </junction>
- <junction id="733663078" type="right_before_left" x="1440.94" y="1200.45" incLanes="83051442#0_0 -83051442#1_0 -83051455_0" intLanes=":733663078_0_0 :733663078_1_0 :733663078_2_0 :733663078_3_0 :733663078_4_0 :733663078_5_0 :733663078_6_0 :733663078_7_0 :733663078_8_0" shape="1439.34,1206.73 1445.59,1204.96 1444.90,1198.83 1438.72,1196.80 1434.47,1200.32 1437.62,1206.01">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="733663082" type="priority" x="706.34" y="1872.73" incLanes="-59159262#2_0 37973565#0_0 59159262#1_0" intLanes=":733663082_0_0 :733663082_1_0 :733663082_9_0 :733663082_3_0 :733663082_4_0 :733663082_5_0 :733663082_6_0 :733663082_10_0 :733663082_11_0" shape="705.37,1877.44 708.54,1877.01 711.51,1873.76 708.58,1867.96 706.98,1867.16 703.83,1867.72 702.63,1869.39 702.48,1875.89">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="733663089" type="priority" x="1237.89" y="1761.89" incLanes="59159260#3_0 37449253#0_0" intLanes=":733663089_0_0 :733663089_1_0 :733663089_2_0 :733663089_3_0" shape="1238.72,1766.82 1241.54,1765.31 1242.54,1763.05 1239.41,1757.35 1237.55,1756.67 1234.57,1757.85">
- <request index="0" response="1000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0001" cont="0"/>
- </junction>
- <junction id="733663093" type="priority" x="1370.00" y="1659.38" incLanes="58770725#2_0 59159260#0_0 -59159260#1_0" intLanes=":733663093_0_0 :733663093_1_0 :733663093_2_0 :733663093_3_0 :733663093_9_0 :733663093_10_0 :733663093_6_0 :733663093_7_0 :733663093_11_0" shape="1370.76,1664.34 1373.60,1662.87 1374.29,1660.78 1371.25,1655.04 1369.23,1654.41 1366.39,1655.88 1365.74,1657.92 1368.74,1663.69">
- <request index="0" response="000001000" foes="100001000" cont="0"/>
- <request index="1" response="011011000" foes="011011000" cont="0"/>
- <request index="2" response="010011000" foes="010111000" cont="0"/>
- <request index="3" response="000000000" foes="100000111" cont="0"/>
- <request index="4" response="011000000" foes="011000110" cont="1"/>
- <request index="5" response="010000100" foes="010000100" cont="1"/>
- <request index="6" response="000000000" foes="000010010" cont="0"/>
- <request index="7" response="000000000" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="1"/>
- </junction>
- <junction id="733663096" type="priority" x="1253.88" y="1753.13" incLanes="38319546#7_0 59159260#2_0 -38319546#8_0 -59159260#3_0" intLanes=":733663096_0_0 :733663096_1_0 :733663096_2_0 :733663096_3_0 :733663096_4_0 :733663096_5_0 :733663096_16_0 :733663096_17_0 :733663096_8_0 :733663096_9_0 :733663096_10_0 :733663096_11_0 :733663096_12_0 :733663096_13_0 :733663096_18_0 :733663096_19_0" shape="1253.25,1758.89 1259.00,1755.85 1260.46,1746.74 1254.59,1743.98 1253.34,1743.97 1247.41,1746 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="733663116" type="priority" x="858.49" y="1694.13" incLanes="69931595#2_0 -69931595#3_0" intLanes=":733663116_0_0 :733663116_1_0 :733663116_6_0 :733663116_3_0 :733663116_7_0 :733663116_8_0" shape="857.04,1698.40 862.81,1695.41 859.97,1689.90 854.19,1692.89 853.53,1694.93 855.02,1697.76">
- <request index="0" response="000000" foes="010000" cont="0"/>
- <request index="1" response="000000" foes="110000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="1"/>
- <request index="3" response="000000" foes="000100" cont="0"/>
- <request index="4" response="000011" foes="000011" cont="1"/>
- <request index="5" response="000010" foes="000010" cont="1"/>
- </junction>
- <junction id="733663121" type="priority" x="1297.27" y="1697.13" incLanes="59159260#1_0 23066443#4_0 -59159260#2_0" intLanes=":733663121_0_0 :733663121_1_0 :733663121_9_0 :733663121_3_0 :733663121_4_0 :733663121_5_0 :733663121_6_0 :733663121_10_0 :733663121_11_0" shape="1298.06,1702.13 1300.90,1700.65 1301.52,1698.58 1298.53,1692.81 1296.51,1692.17 1293.66,1693.64 1292.89,1695.85 1296.06,1701.52">
- <request index="0" response="000000000" foes="010010000" cont="0"/>
- <request index="1" response="000000000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="1"/>
- <request index="3" response="001000000" foes="001000100" cont="0"/>
- <request index="4" response="011000011" foes="011000011" cont="0"/>
- <request index="5" response="011000010" foes="111000010" cont="0"/>
- <request index="6" response="000000000" foes="000111100" cont="0"/>
- <request index="7" response="000000011" foes="000110011" cont="1"/>
- <request index="8" response="000100010" foes="000100010" cont="1"/>
- </junction>
- <junction id="733663131" type="priority" x="1441.65" y="1621.44" incLanes="37771900#3_0 -59159260#0_0" intLanes=":733663131_0_0 :733663131_1_0 :733663131_2_0 :733663131_3_0" shape="1442.46,1626.38 1445.28,1624.88 1440.56,1616.47 1437.81,1618.10 1437.25,1620.09 1440.29,1625.83">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0000" foes="0100" cont="0"/>
- <request index="2" response="0010" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="733663136" type="priority" x="899.76" y="1773.94" incLanes="69931595#0_0 -69931595#1_0 59159262#4_0" intLanes=":733663136_0_0 :733663136_1_0 :733663136_9_0 :733663136_3_0 :733663136_10_0 :733663136_11_0 :733663136_6_0 :733663136_7_0 :733663136_8_0" shape="899.07,1779.63 904.83,1776.62 900.46,1768.21 894.69,1771.20 894.04,1773.22 897.01,1779.00">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="000000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="1"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="1"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000010" foes="000100010" cont="0"/>
- <request index="7" response="000011010" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="767282288" type="traffic_light" x="945.98" y="1183.41" incLanes="38319550#5_0 149868584#5_0 149868584#5_1 -38319550#6_0 -149868584#6_0 -149868584#6_1" intLanes=":767282288_0_0 :767282288_1_0 :767282288_18_0 :767282288_19_0 :767282288_4_0 :767282288_5_0 :767282288_6_0 :767282288_20_0 :767282288_21_0 :767282288_9_0 :767282288_10_0 :767282288_22_0 :767282288_23_0 :767282288_13_0 :767282288_14_0 :767282288_15_0 :767282288_24_0 :767282288_25_0" shape="946.85,1192.18 952.63,1 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="1"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="1"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="1"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="1"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="945146413" type="priority" x="1424.39" y="1942.32" incLanes="139118802#1_0 129780026#3_0" intLanes=":945146413_0_0 :945146413_1_0 :945146413_2_0 :945146413_3_0" shape="1424.40,1945.81 1427.24,1944.33 1427.88,1942.29 1426.39,1939.46 1424.37,1938.82 1421.53,1940.30 1420.89,1942.32 1422.35,1945.17">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="945146437" type="priority" x="1473.14" y="2035.72" incLanes="81096860_0 81096855#0_0" intLanes=":945146437_0_0 :945146437_1_0 :945146437_2_0 :945146437_3_0" shape="1473.17,2039.24 1476.01,2037.76 1476.63,2035.72 1475.16,2032.88 1473.12,2032.24 1470.29,2033.72 1469.62,2035.83 1471.16,2038.64">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="945146612" type="unregulated" x="1566.19" y="1826.94" incLanes="" intLanes="" shape="1569.06,1825.43 1563.31,1828.45">
- </junction>
- <junction id="946534458" type="unregulated" x="1752.24" y="2641.69" incLanes="75656628#1_0" intLanes="" shape="1753.84,2641.59 1750.65,2641.79">
- </junction>
- <junction id="948350565" type="priority" x="733.19" y="2322.32" incLanes="-81394200#0_0" intLanes=":948350565_0_0 :948350565_1_0" shape="736.43,2322.52 733.24,2322.32 729.94,2322.12 734.77,2322.12 731.60,2322.52">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="948350588" type="priority" x="761.69" y="2267.85" incLanes="-133868229#1_0 -133868229#1_1 37973565#5_0 133868229#0_0 133868229#0_1" intLanes=":948350588_0_0 :948350588_1_0 :948350588_2_0 :948350588_11_0 :948350588_4_0 :948350588_5_0 :948350588_6_0 :948350588_7_0 :948350588_8_0 :948350588_9_0 :948350588_12_0" shape="760.79,2274.79 763.98,2274.47 770.39,2270.33 763.74,2259.04 762.29,2258.31 759.11,2258.65 758.13,2262.35 764.73,2273.66">
- <request index="0" response="00000000000" foes="01000100000" cont="0"/>
- <request index="1" response="00000000000" foes="11001100000" cont="0"/>
- <request index="2" response="00000000000" foes="11001100000" cont="0"/>
- <request index="3" response="00110010000" foes="00110010000" cont="1"/>
- <request index="4" response="00110000000" foes="00110001000" cont="0"/>
- <request index="5" response="01110000111" foes="01110000111" cont="0"/>
- <request index="6" response="01110000110" foes="11110000110" cont="0"/>
- <request index="7" response="00000000000" foes="00001111000" cont="0"/>
- <request index="8" response="00000000000" foes="00001111000" cont="0"/>
- <request index="9" response="00000000111" foes="00001100111" cont="0"/>
- <request index="10" response="00001000110" foes="00001000110" cont="1"/>
- </junction>
- <junction id="948350595" type="priority" x="759.57" y="2291.12" incLanes="44641745#0_0 133868231#0_0" intLanes=":948350595_0_0 :948350595_1_0 :948350595_2_0 :948350595_3_0" shape="763.63,2292.99 763.83,2289.79 763.21,2288.44 760.52,2286.70 755.75,2289.29 755.55,2292.48 756.56,2293.98 759.52,2295.44">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="948350597" type="priority" x="735.50" y="2295.41" incLanes="133868191#0_0 133868191#0_1 133868191#0_2 133868191#0_3 -81394200#1_0 81394200#0_0" intLanes=":948350597_0_0 :948350597_1_0 :948350597_2_0 :948350597_3_0 :948350597_4_0 :948350597_5_0 :948350597_10_0 :948350597_7_0 :948350597_8_0 :948350597_11_0" shape="739.35,2300.83 733.65,2289.03 741.41,2289.26 735.30,2286.91 733.44,2289.05 739.92,2300.44 731.24,2302.42 737.74,2302.96">
- <request index="0" response="0000010000" foes="1000010000" cont="0"/>
- <request index="1" response="0100010000" foes="0100010000" cont="0"/>
- <request index="2" response="0100010000" foes="0100010000" cont="0"/>
- <request index="3" response="0100110000" foes="0101110000" cont="0"/>
- <request index="4" response="0000000000" foes="1000001111" cont="0"/>
- <request index="5" response="0100000000" foes="0100001000" cont="0"/>
- <request index="6" response="0100001000" foes="0100001000" cont="1"/>
- <request index="7" response="0000000000" foes="0000000000" cont="0"/>
- <request index="8" response="0000000000" foes="0001101110" cont="0"/>
- <request index="9" response="0000010001" foes="0000010001" cont="1"/>
- </junction>
- <junction id="948350607" type="priority" x="763.17" y="2285.56" incLanes="81523316_0 81523316_1 37973565#7_0" intLanes=":948350607_0_0 :948350607_1_0 :948350607_2_0 :948350607_3_0 :948350607_4_0 :948350607_5_0" shape="762.14,2291.54 765.32,2291.23 770.11,2283.33 765.43,2278.70 764.25,2278.25 761.06,2278.48 757.23,2285.55 758.09,2288.63 758.51,2289.81 761.20,2291.55">
- <request index="0" response="000000" foes="001000" cont="0"/>
- <request index="1" response="000000" foes="011000" cont="0"/>
- <request index="2" response="000000" foes="111000" cont="0"/>
- <request index="3" response="000111" foes="000111" cont="0"/>
- <request index="4" response="000110" foes="000110" cont="0"/>
- <request index="5" response="000100" foes="000100" cont="0"/>
- </junction>
- <junction id="948350615" type="priority" x="743.31" y="2262.65" incLanes="130443629#3_0 -130443629#4_0 81394169#1_0" intLanes=":948350615_0_0 :948350615_9_0 :948350615_10_0 :948350615_3_0 :948350615_4_0 :948350615_5_0 :948350615_6_0 :948350615_7_0 :948350615_8_0" shape="740.00,2262.20 746.47,2261.61 745.36,2267.20 747.71,2265.00 746.55,2262.41 740.07,2263.00 741.54,2257.59 738.97,2259.50">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110000000" foes="110011000" cont="1"/>
- <request index="2" response="100010000" foes="100010000" cont="1"/>
- <request index="3" response="010000010" foes="010000010" cont="0"/>
- <request index="4" response="110000010" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="948350621" type="priority" x="753.79" y="2282.31" incLanes="37351089#0_0 37351089#0_1 37351089#0_2 37351089#0_3 81394169#4_0" intLanes=":948350621_0_0 :948350621_1_0 :948350621_2_0 :948350621_3_0 :948350621_4_0 :948350621_5_0" shape="753.36,2290.76 756.53,2290.32 762.80,2283.04 754.08,2273.27 752.72,2273.51 749.67,2274.46 749.26,2277.57 758.70,2286.65">
- <request index="0" response="001000" foes="001000" cont="0"/>
- <request index="1" response="001000" foes="001000" cont="0"/>
- <request index="2" response="001000" foes="001000" cont="0"/>
- <request index="3" response="000000" foes="000111" cont="0"/>
- <request index="4" response="000000" foes="000000" cont="0"/>
- <request index="5" response="000000" foes="000000" cont="0"/>
- </junction>
- <junction id="948350630" type="priority" x="772.70" y="2261.37" incLanes="-81523330#0_0 -81523330#0_1 134572340#1_0 134572340#1_1 133868229#1_0 133868229#1_1" intLanes=":948350630_0_0 :948350630_1_0 :948350630_8_0 :948350630_3_0 :948350630_4_0 :948350630_5_0 :948350630_6_0 :948350630_9_0" shape="777.22,2266.39 771.09,2254.81 772.22,2257.82 770.31,2264.04 767.96,2256.56 774.61,2267.85">
- <request index="0" response="00000000" foes="10010000" cont="0"/>
- <request index="1" response="00000000" foes="10010000" cont="0"/>
- <request index="2" response="01101000" foes="01101000" cont="1"/>
- <request index="3" response="01100000" foes="01100100" cont="0"/>
- <request index="4" response="01100011" foes="11100011" cont="0"/>
- <request index="5" response="00000000" foes="00011100" cont="0"/>
- <request index="6" response="00000000" foes="00011100" cont="0"/>
- <request index="7" response="00010011" foes="00010011" cont="1"/>
- </junction>
- <junction id="948350636" type="unregulated" x="756.63" y="2306.21" incLanes="133868231#1_0 81394169#6_0" intLanes="" shape="758.22,2306.34 755.03,2306.08 758.22,2306.04 755.04,2306.38">
- </junction>
- <junction id="948350640" type="priority" x="744.96" y="2278.54" incLanes="130443629#1_0 -81394200#2_0 -130443629#2_0 81394200#1_0" intLanes=":948350640_0_0 :948350640_1_0 :948350640_2_0 :948350640_3_0 :948350640_4_0 :948350640_5_0 :948350640_16_0 :948350640_17_0 :948350640_8_0 :948350640_9_0 :948350640_10_0 :948350640_11_0 :948350640_12_0 :948350640_13_0 :948350640_14_0 :948350640_18_0" shape="742.70,2288.65 749.17,2288.01 749.59,2279.18 745.75,2273.94 747.78,2275.23 741.35,2276.13 7 [...]
- <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
- <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000000000110000" foes="0000011000111110" cont="0"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="948350673" type="priority" x="730.24" y="2298.40" incLanes="81394188#0_0 133868191#1_0 133868191#1_1 133868191#1_2 133868191#1_3" intLanes=":948350673_0_0 :948350673_1_0 :948350673_2_0 :948350673_3_0 :948350673_4_0 :948350673_5_0" shape="729.77,2307.71 732.95,2307.32 738.51,2301.24 732.04,2289.85 730.52,2289.10 727.35,2289.56 721.98,2295.46 728.28,2306.95">
- <request index="0" response="000000" foes="000000" cont="0"/>
- <request index="1" response="000000" foes="000000" cont="0"/>
- <request index="2" response="000000" foes="111000" cont="0"/>
- <request index="3" response="000100" foes="000100" cont="0"/>
- <request index="4" response="000100" foes="000100" cont="0"/>
- <request index="5" response="000100" foes="000100" cont="0"/>
- </junction>
- <junction id="948350676" type="priority" x="738.76" y="2256.54" incLanes="81394169#0_0" intLanes=":948350676_0_0 :948350676_1_0" shape="741.34,2262.69 743.91,2260.78 744.47,2259.94 745.44,2256.87 740.92,2256.30 738.82,2258.72">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="948350693" type="priority" x="748.62" y="2269.96" incLanes="81394169#2_0 37351086#0_0" intLanes=":948350693_0_0 :948350693_1_0 :948350693_2_0 :948350693_3_0" shape="749.17,2273.78 751.86,2272.06 752.35,2268.42 750.06,2266.19 748.31,2265.93 745.48,2267.42 745.02,2271.36 747.31,2273.60">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="948350705" type="priority" x="777.15" y="2274.14" incLanes="144874010#2_0 144874010#2_1" intLanes=":948350705_0_0 :948350705_1_0 :948350705_2_0" shape="753.45,2290.30 750.42,2284.55 747.61,2285.46 748.97,2288.50">
- <request index="0" response="000" foes="000" cont="0"/>
- <request index="1" response="000" foes="000" cont="0"/>
- <request index="2" response="000" foes="000" cont="0"/>
- </junction>
- <junction id="948350707" type="priority" x="751.19" y="2273.98" incLanes="-133868229#0_0 -133868229#0_1 81394169#3_0 37369047#2_0 37369047#2_1 37369047#2_2 37369047#2_3 81394200#2_0" intLanes=":948350707_0_0 :948350707_1_0 :948350707_2_0 :948350707_17_0 :948350707_4_0 :948350707_5_0 :948350707_6_0 :948350707_7_0 :948350707_8_0 :948350707_9_0 :948350707_10_0 :948350707_11_0 :948350707_12_0 :948350707_13_0 :948350707_14_0 :948350707_15_0 :948350707_18_0" shape="752.26,2282.78 755.32,22 [...]
- <request index="0" response="00000000000000000" foes="00000000000000000" cont="0"/>
- <request index="1" response="00000000000000000" foes="01100110001100000" cont="0"/>
- <request index="2" response="00000000000000000" foes="11101110011100000" cont="0"/>
- <request index="3" response="00010001100010000" foes="00010001100010000" cont="1"/>
- <request index="4" response="00010000000000000" foes="00010001100001000" cont="0"/>
- <request index="5" response="00010000000000110" foes="00010001100000110" cont="0"/>
- <request index="6" response="01110000000000110" foes="01110111100000110" cont="0"/>
- <request index="7" response="01110000000000100" foes="11111111100000100" cont="0"/>
- <request index="8" response="00010000011110000" foes="00010000011111000" cont="0"/>
- <request index="9" response="00010000011110000" foes="00010000011111000" cont="0"/>
- <request index="10" response="00010000011000110" foes="00010000011000110" cont="0"/>
- <request index="11" response="01110000011000110" foes="01110000011000110" cont="0"/>
- <request index="12" response="01110000010000100" foes="11110000010000100" cont="0"/>
- <request index="13" response="00000000000000000" foes="00001111111111000" cont="0"/>
- <request index="14" response="00000000000000110" foes="00001100011000110" cont="0"/>
- <request index="15" response="00000000000000110" foes="00001100011000110" cont="0"/>
- <request index="16" response="00001000010000100" foes="00001000010000100" cont="1"/>
- </junction>
- <junction id="948350715" type="priority" x="754.99" y="2290.84" incLanes="44641745#1_0 81394169#5_0" intLanes=":948350715_0_0 :948350715_1_0 :948350715_2_0 :948350715_3_0" shape="753.76,2294.39 756.94,2294.05 758.28,2292.65 758.47,2289.45 756.09,2287.19 752.92,2287.64 751.63,2289.03 751.43,2292.22">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="950094255" type="unregulated" x="1874.29" y="1679.23" incLanes="149408824#1_0 149408824#1_1" intLanes="" shape="1872.51,1676.51 1876.07,1681.95">
- </junction>
- <junction id="950094314" type="priority" x="1348.81" y="1972.51" incLanes="154489992#2_0 154489992#2_1 37449253#7_0" intLanes=":950094314_0_0 :950094314_1_0 :950094314_2_0 :950094314_3_0 :950094314_4_0" shape="1349.63,1977.45 1352.46,1975.95 1353.14,1973.81 1349.97,1968.14 1347.94,1967.55 1345.13,1969.08 1344.52,1971.11 1347.57,1976.85">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="950094380" type="priority" x="1301.00" y="1997.93" incLanes="129780020_0 172498388_0 172498388_1" intLanes=":950094380_0_0 :950094380_1_0 :950094380_2_0 :950094380_3_0 :950094380_4_0" shape="1313.08,1999.19 1312.99,1995.99 1312.81,1995.33 1309.76,1989.59 1300.15,1992.98 1297.33,1994.49 1296.72,1996.51 1299.75,2002.26">
- <request index="0" response="01100" foes="01100" cont="0"/>
- <request index="1" response="11100" foes="11100" cont="0"/>
- <request index="2" response="00000" foes="00011" cont="0"/>
- <request index="3" response="00000" foes="00011" cont="0"/>
- <request index="4" response="00000" foes="00010" cont="0"/>
- </junction>
- <junction id="950094408" type="unregulated" x="1576.50" y="1817.96" incLanes="154844474#1_0 154844474#1_1" intLanes="" shape="1579.37,1816.43 1573.63,1819.49">
- </junction>
- <junction id="950094412" type="priority" x="1079.00" y="2114.91" incLanes="23315111#0_0 144874010#1_0 144874010#1_1 -23315111#1_0" intLanes=":950094412_0_0 :950094412_1_0 :950094412_2_0 :950094412_3_0 :950094412_4_0 :950094412_5_0 :950094412_6_0 :950094412_7_0 :950094412_8_0 :950094412_9_0" shape="1078.13,2120.74 1084.02,2117.99 1084.84,2115.53 1081.84,2109.77 1079.87,2109.10 1073.98,2111.86 1073.13,2114.33 1076.17,2120.08">
- <request index="0" response="0000110000" foes="0100110000" cont="0"/>
- <request index="1" response="0001110000" foes="1101110000" cont="0"/>
- <request index="2" response="0010001000" foes="0010001000" cont="0"/>
- <request index="3" response="0000000000" foes="0010000100" cont="0"/>
- <request index="4" response="0000000000" foes="0110000011" cont="0"/>
- <request index="5" response="0000000000" foes="0110000011" cont="0"/>
- <request index="6" response="0000000000" foes="1110000010" cont="0"/>
- <request index="7" response="0001111000" foes="0001111100" cont="0"/>
- <request index="8" response="0001110011" foes="0001110011" cont="0"/>
- <request index="9" response="0001000010" foes="0001000010" cont="0"/>
- </junction>
- <junction id="950094425" type="priority" x="1073.15" y="2102.39" incLanes="23315111#2_0 -81523330#2_0 -81523330#2_1 -23315111#3_0 81523330#1_0 81523330#1_1" intLanes=":950094425_0_0 :950094425_1_0 :950094425_2_0 :950094425_3_0 :950094425_4_0 :950094425_5_0 :950094425_6_0 :950094425_18_0 :950094425_19_0 :950094425_9_0 :950094425_10_0 :950094425_11_0 :950094425_12_0 :950094425_13_0 :950094425_14_0 :950094425_15_0 :950094425_16_0 :950094425_20_0" shape="1073.48,2110.78 1079.37,2108.04 1 [...]
- <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
- <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
- <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
- <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
- <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
- <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
- <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
- <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
- <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
- <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
- <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
- <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
- <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
- <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
- <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
- <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
- </junction>
- <junction id="950094434" type="priority" x="1419.53" y="1932.99" incLanes="154489992#0_0 154489992#0_1 129780026#2_0" intLanes=":950094434_0_0 :950094434_1_0 :950094434_2_0 :950094434_3_0 :950094434_4_0" shape="1420.32,1937.99 1423.16,1936.51 1423.79,1934.42 1420.76,1928.67 1418.74,1928.04 1415.91,1929.52 1415.15,1931.71 1418.32,1937.39">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="950094458" type="priority" x="1413.95" y="1922.32" incLanes="129780026#0_0 139118805#2_0 139118805#2_1" intLanes=":950094458_0_0 :950094458_1_0 :950094458_2_0 :950094458_3_0 :950094458_4_0 :950094458_5_0 :950094458_6_0 :950094458_7_0" shape="1414.73,1927.26 1417.56,1925.78 1418.22,1923.74 1415.19,1917.99 1411.65,1914.45 1408.81,1915.93 1408.18,1917.96 1414.30,1929.54">
- <request index="0" response="00110000" foes="00110000" cont="0"/>
- <request index="1" response="01110000" foes="01110000" cont="0"/>
- <request index="2" response="01110000" foes="11110000" cont="0"/>
- <request index="3" response="01110000" foes="11110000" cont="0"/>
- <request index="4" response="00000000" foes="00001111" cont="0"/>
- <request index="5" response="00000000" foes="00001111" cont="0"/>
- <request index="6" response="00000000" foes="00001110" cont="0"/>
- <request index="7" response="00001100" foes="00001100" cont="0"/>
- </junction>
- <junction id="950094494" type="priority" x="1294.72" y="1985.59" incLanes="144874012#1_0 -139118805#0_0 -139118805#0_1 81523330#4_0 81523330#4_1" intLanes=":950094494_0_0 :950094494_1_0 :950094494_2_0 :950094494_3_0 :950094494_4_0 :950094494_11_0 :950094494_12_0 :950094494_7_0 :950094494_8_0 :950094494_9_0 :950094494_13_0" shape="1296.17,1992.33 1299.06,1990.95 1301.45,1989.42 1295.29,1977.86 1293.71,1977.09 1290.66,1978.24 1288.82,1981.25 1294.79,1992.91">
- <request index="0" response="00000011000" foes="10000011000" cont="0"/>
- <request index="1" response="01110111000" foes="01110111000" cont="0"/>
- <request index="2" response="01100111000" foes="01101111000" cont="0"/>
- <request index="3" response="00000000000" foes="10000000111" cont="0"/>
- <request index="4" response="00000000000" foes="10000000111" cont="0"/>
- <request index="5" response="01110000000" foes="01110000110" cont="1"/>
- <request index="6" response="01100000100" foes="01100000100" cont="1"/>
- <request index="7" response="00000000000" foes="00000100010" cont="0"/>
- <request index="8" response="00000000000" foes="00001100110" cont="0"/>
- <request index="9" response="00000000000" foes="00001100110" cont="0"/>
- <request index="10" response="00000011001" foes="00000011001" cont="1"/>
- </junction>
- <junction id="950640351" type="priority" x="942.06" y="1175.85" incLanes="38319550#6_0 -38319550#7_0 111549913#4_0" intLanes=":950640351_0_0 :950640351_1_0 :950640351_2_0 :950640351_3_0 :950640351_4_0 :950640351_5_0 :950640351_6_0 :950640351_7_0 :950640351_8_0" shape="940.71,1180.30 946.48,1177.30 947.04,1174.86 945.46,1172.08 943.46,1171.49 937.69,1174.48 937.07,1177.01 938.74,1179.74">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="950640361" type="priority" x="756.98" y="1281.55" incLanes="111549913#1_0 81394192#13_0" intLanes=":950640361_0_0 :950640361_1_0 :950640361_2_0 :950640361_3_0" shape="762.34,1279.93 760.58,1277.26 759.63,1276.61 756.50,1275.97 751.84,1282.58 753.39,1285.38 754.40,1286.12 757.54,1286.76">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="950640371" type="priority" x="670.40" y="1332.52" incLanes="34962531#0_0 -34962531#1_0 111549913#0_0" intLanes=":950640371_0_0 :950640371_1_0 :950640371_2_0 :950640371_3_0 :950640371_4_0 :950640371_5_0 :950640371_6_0 :950640371_7_0 :950640371_8_0" shape="669.05,1336.86 674.77,1333.78 675.37,1331.40 673.72,1328.66 671.72,1328.11 666.00,1331.19 665.45,1333.50 667.03,1336.28">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="950640393" type="priority" x="459.04" y="1471.28" incLanes="43684741#4_0 111863125#7_0 -43684741#5_0" intLanes=":950640393_0_0 :950640393_1_0 :950640393_2_0 :950640393_3_0 :950640393_4_0 :950640393_5_0 :950640393_6_0 :950640393_7_0 :950640393_8_0" shape="460.95,1476.69 464.77,1471.43 464.86,1469.81 463.27,1467.03 457.10,1465.87 453.29,1471.13 453.19,1472.75 454.77,1475.53">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="950640399" type="priority" x="934.34" y="1180.54" incLanes="101272424#4_0 111549913#3_0" intLanes=":950640399_0_0 :950640399_1_0 :950640399_2_0 :950640399_3_0" shape="934.37,1184.12 937.22,1182.66 937.93,1180.23 936.27,1177.50 934.30,1176.94 931.45,1178.40 930.78,1180.78 932.40,1183.54">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="1100" foes="1100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0010" cont="0"/>
- </junction>
- <junction id="950640411" type="priority" x="773.09" y="1270.92" incLanes="-130443630#8_0 111549913#2_0 130443630#7_0" intLanes=":950640411_0_0 :950640411_1_0 :950640411_2_0 :950640411_3_0 :950640411_4_0 :950640411_5_0 :950640411_6_0 :950640411_7_0 :950640411_8_0" shape="779.66,1269.14 778.12,1266.33 776.98,1265.57 770.52,1264.82 766.30,1273.49 768.06,1276.16 769.14,1276.82 775.60,1277.56">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="950640413" type="priority" x="770.49" y="1293.53" incLanes="111863125#5_0 -130443630#6_0 130443630#5_0" intLanes=":950640413_0_0 :950640413_1_0 :950640413_2_0 :950640413_3_0 :950640413_4_0 :950640413_5_0 :950640413_6_0 :950640413_7_0 :950640413_8_0" shape="777.11,1291.57 775.52,1288.80 774.39,1288.05 767.93,1287.31 763.69,1295.75 765.34,1298.49 766.42,1299.20 772.86,1300.09">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="000000000" foes="011011000" cont="0"/>
- <request index="2" response="000000000" foes="010111000" cont="0"/>
- <request index="3" response="000000111" foes="100000111" cont="0"/>
- <request index="4" response="011000110" foes="011000110" cont="0"/>
- <request index="5" response="010000100" foes="010000100" cont="0"/>
- <request index="6" response="000000010" foes="000010010" cont="0"/>
- <request index="7" response="000000110" foes="000110110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="950640428" type="priority" x="686.05" y="2240.70" incLanes="81394188#3_0" intLanes=":950640428_0_0 :950640428_1_0" shape="687.74,2242.40 687.94,2239.21 680.40,2236.42 679.10,2239.34 678.98,2240.18 679.48,2243.35">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="950640474" type="priority" x="752.22" y="1304.53" incLanes="111863125#6_0 81394192#11_0" intLanes=":950640474_0_0 :950640474_1_0 :950640474_2_0 :950640474_3_0" shape="757.47,1303.24 755.82,1300.50 754.84,1299.80 751.71,1299.15 747.07,1305.59 748.64,1308.38 749.64,1309.11 752.78,1309.76">
- <request index="0" response="0000" foes="1100" cont="0"/>
- <request index="1" response="0000" foes="1000" cont="0"/>
- <request index="2" response="0001" foes="0001" cont="0"/>
- <request index="3" response="0011" foes="0011" cont="0"/>
- </junction>
- <junction id="950640500" type="unregulated" x="384.42" y="1513.40" incLanes="111863125#8_0" intLanes="" shape="385.21,1514.79 383.64,1512.00">
- </junction>
- <junction id="950640525" type="priority" x="941.84" y="1195.43" incLanes="111863125#2_0 42976410#0_0" intLanes=":950640525_0_0 :950640525_1_0 :950640525_2_0 :950640525_3_0" shape="941.88,1198.97 944.72,1197.48 945.39,1195.27 943.83,1192.48 941.85,1191.87 938.99,1193.29 938.30,1195.59 939.88,1198.38">
- <request index="0" response="0000" foes="0100" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0011" foes="0011" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="950640531" type="priority" x="949.87" y="1190.93" incLanes="38319550#4_0 111863125#1_0 -38319550#5_0" intLanes=":950640531_0_0 :950640531_1_0 :950640531_2_0 :950640531_3_0 :950640531_4_0 :950640531_5_0 :950640531_6_0 :950640531_7_0 :950640531_8_0" shape="948.46,1195.27 954.23,1192.27 954.84,1189.95 953.27,1187.16 951.27,1186.57 945.50,1189.55 944.90,1191.88 946.46,1194.67">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="950640539" type="unregulated" x="370.49" y="1503.56" incLanes="" intLanes="" shape="371.29,1504.95 369.70,1502.17">
- </junction>
- <junction id="950640550" type="priority" x="915.35" y="1210.47" incLanes="133960539#3_0 133960539#3_1 111863125#4_0" intLanes=":950640550_0_0 :950640550_1_0 :950640550_2_0 :950640550_3_0" shape="914.06,1214.79 919.71,1211.59 920.26,1209.51 918.68,1206.73 916.43,1206.04 910.90,1209.45 910.39,1211.47 911.98,1214.25">
- <request index="0" response="0100" foes="0100" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0011" cont="0"/>
- <request index="3" response="0000" foes="0000" cont="0"/>
- </junction>
- <junction id="950640558" type="priority" x="926.33" y="1204.20" incLanes="111863125#3_0 42976405#0_0 42976405#0_1" intLanes=":950640558_0_0 :950640558_1_0 :950640558_2_0 :950640558_3_0" shape="924.81,1208.64 930.70,1205.90 931.38,1203.18 929.80,1200.40 927.87,1199.78 921.97,1202.50 921.29,1205.24 922.87,1208.02">
- <request index="0" response="0000" foes="0000" cont="0"/>
- <request index="1" response="0000" foes="1100" cont="0"/>
- <request index="2" response="0010" foes="0010" cont="0"/>
- <request index="3" response="0010" foes="0010" cont="0"/>
- </junction>
- <junction id="950640617" type="priority" x="278.01" y="1618.39" incLanes="-107066313#0_0" intLanes=":950640617_0_0" shape="278.05,1618.36 280.74,1616.63 275.27,1620.15 277.96,1618.42">
- <request index="0" response="0" foes="0" cont="0"/>
- </junction>
- <junction id="951739420" type="right_before_left" x="837.76" y="1312.08" incLanes="-81672216#3_0 -81672213_0 81672216#2_0" intLanes=":951739420_0_0 :951739420_1_0 :951739420_2_0 :951739420_3_0 :951739420_4_0 :951739420_5_0 :951739420_6_0 :951739420_7_0 :951739420_8_0" shape="837.13,1317.78 842.86,1314.71 843.51,1312.65 840.40,1306.94 838.37,1306.34 832.65,1309.41">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="951739443" type="priority" x="1158.40" y="1052.79" incLanes="166603397#1_0 166603397#1_1 111863096#0_0" intLanes=":951739443_0_0 :951739443_1_0 :951739443_2_0 :951739443_3_0 :951739443_4_0" shape="1157.05,1057.21 1162.80,1054.19 1163.38,1051.74 1161.77,1048.97 1159.78,1048.40 1154.01,1051.41 1153.42,1053.90 1155.06,1056.65">
- <request index="0" response="00000" foes="11000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="10000" cont="0"/>
- <request index="3" response="00011" foes="00011" cont="0"/>
- <request index="4" response="00111" foes="00111" cont="0"/>
- </junction>
- <junction id="951739458" type="right_before_left" x="845.96" y="1327.39" incLanes="-81672216#4_0 -81672209_0 81672216#3_0" intLanes=":951739458_0_0 :951739458_1_0 :951739458_2_0 :951739458_3_0 :951739458_4_0 :951739458_5_0 :951739458_6_0 :951739458_7_0 :951739458_8_0" shape="845.36,1333.14 851.09,1330.07 851.71,1328.06 848.72,1322.29 846.60,1321.70 840.87,1324.77">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="951739511" type="right_before_left" x="853.92" y="1342.24" incLanes="-81672216#5_0 -81672218_0 81672216#4_0" intLanes=":951739511_0_0 :951739511_1_0 :951739511_2_0 :951739511_3_0 :951739511_4_0 :951739511_5_0 :951739511_6_0 :951739511_7_0 :951739511_8_0" shape="853.31,1347.99 859.04,1344.93 859.66,1342.91 856.66,1337.15 854.56,1336.55 848.83,1339.62">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="011000000" foes="011101000" cont="0"/>
- <request index="2" response="010010000" foes="010010000" cont="0"/>
- <request index="3" response="000000011" foes="110000011" cont="0"/>
- <request index="4" response="000000000" foes="010000100" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="951739549" type="right_before_left" x="874.43" y="1273.42" incLanes="81672216#8_0 -81672216#9_0 81672214_0" intLanes=":951739549_0_0 :951739549_1_0 :951739549_2_0 :951739549_3_0 :951739549_4_0 :951739549_5_0 :951739549_6_0 :951739549_7_0 :951739549_8_0" shape="875.07,1278.39 879.44,1273.59 872.04,1266.93 867.71,1271.77 867.51,1273.49 870.63,1279.20">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="951739557" type="priority" x="1168.63" y="1046.83" incLanes="154844483#0_0 154844483#0_1 111863096#2_0" intLanes=":951739557_0_0 :951739557_1_0 :951739557_2_0 :951739557_3_0 :951739557_4_0" shape="1167.27,1051.21 1173.01,1048.17 1172.42,1046.56 1170.87,1043.76 1170.02,1042.51 1164.28,1045.55 1163.66,1047.87 1165.27,1050.64">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="951739568" type="right_before_left" x="887.31" y="1285.14" incLanes="81672216#7_0 -81672216#8_0 81672213_0" intLanes=":951739568_0_0 :951739568_1_0 :951739568_2_0 :951739568_3_0 :951739568_4_0 :951739568_5_0 :951739568_6_0 :951739568_7_0 :951739568_8_0" shape="888.06,1290.02 892.24,1285.05 885.01,1278.65 880.63,1283.46 880.42,1285.18 883.53,1290.90">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="951739649" type="priority" x="1171.65" y="1045.16" incLanes="38319548#13_0 -38319548#14_0 111863096#3_0" intLanes=":951739649_0_0 :951739649_1_0 :951739649_2_0 :951739649_3_0 :951739649_4_0 :951739649_5_0 :951739649_6_0 :951739649_7_0 :951739649_8_0" shape="1170.28,1049.46 1176.00,1046.37 1176.62,1044.04 1174.97,1041.30 1172.98,1040.74 1167.24,1043.80 1167.85,1045.43 1169.40,1048.23">
- <request index="0" response="111000000" foes="111100000" cont="0"/>
- <request index="1" response="110011000" foes="110011000" cont="0"/>
- <request index="2" response="100010000" foes="100010000" cont="0"/>
- <request index="3" response="010000000" foes="010000010" cont="0"/>
- <request index="4" response="110000000" foes="110000110" cont="0"/>
- <request index="5" response="001000001" foes="001000001" cont="0"/>
- <request index="6" response="000000000" foes="000100001" cont="0"/>
- <request index="7" response="000000000" foes="000011011" cont="0"/>
- <request index="8" response="000000000" foes="000010111" cont="0"/>
- </junction>
- <junction id="951739684" type="priority" x="1179.95" y="1060.50" incLanes="38319548#12_0 103851602#0_0 -38319548#13_0" intLanes=":951739684_0_0 :951739684_1_0 :951739684_2_0 :951739684_3_0 :951739684_4_0 :951739684_5_0 :951739684_6_0 :951739684_7_0 :951739684_8_0" shape="1179.33,1065.24 1184.63,1061.48 1185.08,1059.54 1183.56,1056.73 1181.33,1056.23 1175.62,1059.32 1176.02,1060.89 1177.60,1063.68">
- <request index="0" response="000010000" foes="010010000" cont="0"/>
- <request index="1" response="000110000" foes="110110000" cont="0"/>
- <request index="2" response="001001000" foes="001001000" cont="0"/>
- <request index="3" response="000000000" foes="001000100" cont="0"/>
- <request index="4" response="000000000" foes="011000011" cont="0"/>
- <request index="5" response="000000000" foes="111000010" cont="0"/>
- <request index="6" response="000111000" foes="000111100" cont="0"/>
- <request index="7" response="000110011" foes="000110011" cont="0"/>
- <request index="8" response="000100010" foes="000100010" cont="0"/>
- </junction>
- <junction id="951739693" type="priority" x="818.06" y="1275.29" incLanes="-81672216#0_0 37973569#4_0" intLanes=":951739693_0_0 :951739693_1_0 :951739693_2_0 :951739693_3_0" shape="816.70,1279.62 822.43,1276.55 822.96,1274.36 821.38,1271.58 813.11,1276.25 814.68,1279.04">
- <request index="0" response="1000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="0"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0000" foes="0001" cont="0"/>
- </junction>
- <junction id="951739718" type="priority" x="1176.81" y="1062.29" incLanes="103851602#1_0 154844483#1_0 154844483#1_1" intLanes=":951739718_0_0 :951739718_1_0 :951739718_2_0 :951739718_3_0 :951739718_4_0" shape="1175.43,1066.63 1181.17,1063.59 1180.74,1061.89 1179.16,1059.11 1178.18,1057.94 1172.44,1060.98 1171.84,1063.26 1173.42,1066.04">
- <request index="0" response="01100" foes="01100" cont="0"/>
- <request index="1" response="11100" foes="11100" cont="0"/>
- <request index="2" response="00000" foes="00011" cont="0"/>
- <request index="3" response="00000" foes="00011" cont="0"/>
- <request index="4" response="00000" foes="00010" cont="0"/>
- </junction>
- <junction id="951739766" type="right_before_left" x="830.02" y="1297.63" incLanes="-81672216#2_0 -81672214_0 81672216#1_0" intLanes=":951739766_0_0 :951739766_1_0 :951739766_2_0 :951739766_3_0 :951739766_4_0 :951739766_5_0 :951739766_6_0 :951739766_7_0 :951739766_8_0" shape="829.39,1303.33 835.12,1300.26 835.77,1298.19 832.66,1292.49 830.63,1291.88 824.90,1294.95">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="951739771" type="priority" x="1150.68" y="1665.14" incLanes="133960539#0_0 133960539#0_1" intLanes=":951739771_0_0 :951739771_1_0 :951739771_2_0" shape="1147.98,1666.98 1153.70,1663.89 1150.22,1657.21 1144.45,1660.21 1143.73,1661.05 1142.69,1664.08">
- <request index="0" response="000" foes="000" cont="0"/>
- <request index="1" response="000" foes="000" cont="0"/>
- <request index="2" response="000" foes="000" cont="0"/>
- </junction>
- <junction id="951739776" type="priority" x="1166.46" y="1068.17" incLanes="166603397#0_0 166603397#0_1 103851602#3_0" intLanes=":951739776_0_0 :951739776_1_0 :951739776_2_0 :951739776_3_0 :951739776_4_0" shape="1165.06,1072.51 1170.82,1069.49 1171.43,1067.18 1169.85,1064.40 1167.85,1063.81 1162.09,1066.83 1161.49,1069.12 1163.06,1071.91">
- <request index="0" response="00000" foes="01000" cont="0"/>
- <request index="1" response="00000" foes="11000" cont="0"/>
- <request index="2" response="00000" foes="11000" cont="0"/>
- <request index="3" response="00111" foes="00111" cont="0"/>
- <request index="4" response="00110" foes="00110" cont="0"/>
- </junction>
- <junction id="956116503" type="priority" x="758.92" y="1846.12" incLanes="-44104491#0_0 -59159262#3_0 59159262#2_0" intLanes=":956116503_0_0 :956116503_1_0 :956116503_2_0 :956116503_3_0 :956116503_4_0 :956116503_9_0 :956116503_6_0 :956116503_10_0 :956116503_11_0" shape="758.34,1851.90 764.06,1848.82 764.43,1846.95 761.47,1841.17 753.29,1845.33 756.22,1851.13">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="966097830" type="priority" x="828.22" y="1459.05" incLanes="83038920_0 83038923#1_0" intLanes=":966097830_0_0 :966097830_4_0 :966097830_2_0 :966097830_5_0" shape="826.76,1463.45 832.59,1460.58 823.79,1457.67 826.76,1463.45">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="966097837" type="right_before_left" x="813.60" y="1466.57" incLanes="-83038920_0 -83038923#1_0 83038923#0_0" intLanes=":966097837_0_0 :966097837_1_0 :966097837_2_0 :966097837_3_0 :966097837_4_0 :966097837_5_0 :966097837_6_0 :966097837_7_0 :966097837_8_0" shape="812.89,1472.28 818.67,1469.30 819.31,1467.28 816.34,1461.50 808.98,1464.26 810.40,1470.61">
- <request index="0" response="000000000" foes="100001000" cont="0"/>
- <request index="1" response="011000000" foes="011101000" cont="0"/>
- <request index="2" response="010010000" foes="010010000" cont="0"/>
- <request index="3" response="000000011" foes="110000011" cont="0"/>
- <request index="4" response="000000000" foes="010000100" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000001001" foes="000001001" cont="0"/>
- </junction>
- <junction id="966097869" type="priority" x="746.66" y="1456.35" incLanes="-83038923#0_0 -130443630#2_0 130443630#1_0" intLanes=":966097869_0_0 :966097869_1_0 :966097869_2_0 :966097869_3_0 :966097869_4_0 :966097869_9_0 :966097869_6_0 :966097869_10_0 :966097869_11_0" shape="750.88,1460.30 751.88,1453.88 750.56,1452.16 744.13,1451.21 742.75,1460.61 749.18,1461.55">
- <request index="0" response="000010000" foes="100010000" cont="0"/>
- <request index="1" response="011010000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000000" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="1"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="1"/>
- <request index="8" response="000010001" foes="000010001" cont="1"/>
- </junction>
- <junction id="966132112" type="priority" x="1203.25" y="1574.78" incLanes="83042949_0 37771902#1_0" intLanes=":966132112_0_0 :966132112_1_0" shape="1206.68,1574.89 1205.28,1572.01 1203.17,1571.26 1200.35,1572.78 1199.73,1574.78 1201.17,1577.63">
- <request index="0" response="10" foes="10" cont="0"/>
- <request index="1" response="00" foes="01" cont="0"/>
- </junction>
- <junction id="966132131" type="priority" x="1317.22" y="1386.16" incLanes="58770837#0_0" intLanes=":966132131_0_0 :966132131_1_0" shape="1317.29,1389.66 1320.11,1388.14 1317.21,1382.70 1314.38,1384.19 1313.72,1386.26 1315.26,1389.06">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="966193793" type="right_before_left" x="1418.55" y="1290.24" incLanes="83051424_0 83051480#0_0 -83051480#1_0" intLanes=":966193793_0_0 :966193793_1_0 :966193793_2_0 :966193793_3_0 :966193793_4_0 :966193793_5_0 :966193793_6_0 :966193793_7_0 :966193793_8_0" shape="1415.29,1295.03 1421.79,1295.04 1423.29,1293.56 1423.39,1287.06 1413.89,1286.92 1413.79,1293.42">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="966193796" type="priority" x="1269.58" y="1019.10" incLanes="83051420_0 37772595#2_0" intLanes=":966193796_0_0 :966193796_4_0 :966193796_2_0 :966193796_3_0" shape="1268.14,1023.48 1273.95,1020.56 1274.45,1018.22 1272.89,1015.42 1264.59,1020.10 1266.17,1022.88">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="966193808" type="priority" x="1303.82" y="1087.19" incLanes="83051417_0 -83051436#0_0 -83051420_0 24573937_0" intLanes=":966193808_0_0 :966193808_1_0 :966193808_2_0 :966193808_3_0 :966193808_4_0 :966193808_5_0 :966193808_6_0 :966193808_7_0 :966193808_8_0 :966193808_9_0 :966193808_10_0 :966193808_16_0 :966193808_12_0 :966193808_13_0 :966193808_17_0 :966193808_18_0" shape="1303.94,1093.16 1309.32,1089.51 1309.79,1087.53 1306.57,1081.88 1304.51,1081.33 1298.71,1084.25 1298 [...]
- <request index="0" response="0000010000000000" foes="1000010000100000" cont="0"/>
- <request index="1" response="0111010000000000" foes="0111110001100000" cont="0"/>
- <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
- <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
- <request index="4" response="0100001000000000" foes="0100001000001000" cont="0"/>
- <request index="5" response="0100011000000111" foes="1100011000000111" cont="0"/>
- <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
- <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
- <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
- <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
- <request index="10" response="0000000000000000" foes="1110000001100011" cont="0"/>
- <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
- <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
- <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
- <request index="14" response="0000011000000000" foes="0000011000111110" cont="1"/>
- <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
- </junction>
- <junction id="966193812" type="right_before_left" x="1382.82" y="1159.31" incLanes="83051421#1_0 -83051417_0 -83051421#2_0" intLanes=":966193812_0_0 :966193812_1_0 :966193812_2_0 :966193812_3_0 :966193812_4_0 :966193812_5_0 :966193812_6_0 :966193812_7_0 :966193812_8_0" shape="1387.94,1156.59 1382.20,1153.55 1380.18,1154.15 1377.05,1159.85 1377.75,1161.94 1383.49,1164.99">
- <request index="0" response="000000000" foes="100010000" cont="0"/>
- <request index="1" response="011000000" foes="011110000" cont="0"/>
- <request index="2" response="010001000" foes="010001000" cont="0"/>
- <request index="3" response="000000000" foes="010000100" cont="0"/>
- <request index="4" response="000000011" foes="110000011" cont="0"/>
- <request index="5" response="001000010" foes="001000010" cont="0"/>
- <request index="6" response="000000000" foes="000100010" cont="0"/>
- <request index="7" response="000011000" foes="000011110" cont="0"/>
- <request index="8" response="000010001" foes="000010001" cont="0"/>
- </junction>
- <junction id="966193814" type="priority" x="1418.53" y="1308.86" incLanes="83051483_0 -83051424_0" intLanes=":966193814_0_0 :966193814_4_0 :966193814_2_0 :966193814_5_0" shape="1415.30,1309.26 1421.78,1308.73 1415.28,1308.73">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="1"/>
- </junction>
- <junction id="966193857" type="priority" x="1461.49" y="1433.85" incLanes="-83051483_0 37771904#0_0" intLanes=":966193857_0_0 :966193857_4_0 :966193857_2_0 :966193857_3_0" shape="1466.43,1432.97 1464.89,1430.16 1462.87,1429.56 1457.15,1432.65 1456.57,1434.74 1458.11,1437.54">
- <request index="0" response="0000" foes="1000" cont="0"/>
- <request index="1" response="0100" foes="0100" cont="1"/>
- <request index="2" response="0000" foes="0010" cont="0"/>
- <request index="3" response="0001" foes="0001" cont="0"/>
- </junction>
- <junction id="974693391" type="priority" x="1342.23" y="1960.24" incLanes="-139118805#1_0 -139118805#1_1 37449253#5_0 139118805#0_0 139118805#0_1" intLanes=":974693391_0_0 :974693391_1_0 :974693391_2_0 :974693391_11_0 :974693391_4_0 :974693391_5_0 :974693391_6_0 :974693391_7_0 :974693391_8_0 :974693391_9_0 :974693391_12_0" shape="1341.52,1962.31 1344.35,1960.82 1347.70,1964.75 1341.56,1953.18 1339.36,1952.44 1336.62,1954.11 1336.08,1956.09 1342.25,1967.65">
- <request index="0" response="00000000000" foes="01000100000" cont="0"/>
- <request index="1" response="00000000000" foes="11001100000" cont="0"/>
- <request index="2" response="00000000000" foes="11001100000" cont="0"/>
- <request index="3" response="00110010000" foes="00110010000" cont="1"/>
- <request index="4" response="00110000000" foes="00110001000" cont="0"/>
- <request index="5" response="01110000111" foes="01110000111" cont="0"/>
- <request index="6" response="01110000110" foes="11110000110" cont="0"/>
- <request index="7" response="00000000000" foes="00001111000" cont="0"/>
- <request index="8" response="00000000000" foes="00001111000" cont="0"/>
- <request index="9" response="00000000111" foes="00001100111" cont="0"/>
- <request index="10" response="00001000110" foes="00001000110" cont="1"/>
- </junction>
- <junction id="975934874" type="priority" x="771.01" y="2287.62" incLanes="139118804#3_0" intLanes=":975934874_0_0 :975934874_1_0" shape="769.92,2291.58 773.09,2291.16 774.07,2287.82 772.58,2284.99 766.92,2287.94 768.39,2290.78">
- <request index="0" response="00" foes="00" cont="0"/>
- <request index="1" response="00" foes="00" cont="0"/>
- </junction>
- <junction id="975934878" type="priority" x="1156.30" y="2269.44" incLanes="23182517#1_0 -23182517#2_0 83827202_0" intLanes=":975934878_0_0 :975934878_6_0 :975934878_2_0 :975934878_7_0 :975934878_4_0 :975934878_5_0" shape="1154.85,2273.71 1160.62,2270.72 1157.84,2265.27 1152.03,2268.18 1151.35,2270.24 1152.83,2273.07">
- <request index="0" response="000000" foes="111000" cont="0"/>
- <request index="1" response="100100" foes="100100" cont="1"/>
- <request index="2" response="000000" foes="100010" cont="0"/>
- <request index="3" response="010001" foes="010001" cont="1"/>
- <request index="4" response="000001" foes="001001" cont="0"/>
- <request index="5" response="000101" foes="000111" cont="0"/>
- </junction>
-
- <junction id=":1168929308_6_0" type="internal" x="776.25" y="986.34" incLanes=":1168929308_2_0 37638426#1_0" intLanes=":1168929308_3_0"/>
- <junction id=":1168929383_9_0" type="internal" x="1145.13" y="1074.37" incLanes=":1168929383_2_0" intLanes=":1168929383_3_0 :1168929383_4_0 :1168929383_5_0 :1168929383_7_0"/>
- <junction id=":1168929383_10_0" type="internal" x="1144.26" y="1070.72" incLanes=":1168929383_5_0 -149868584#5_1 154844470#0_0" intLanes=":1168929383_2_0 :1168929383_7_0"/>
- <junction id=":1168929383_11_0" type="internal" x="1141.43" y="1072.33" incLanes=":1168929383_8_0 149868584#4_0 154844470#0_0" intLanes=":1168929383_0_0 :1168929383_3_0"/>
- <junction id=":1168929398_4_0" type="internal" x="806.18" y="1037.07" incLanes=":1168929398_1_0 179692877#0_0" intLanes=":1168929398_2_0"/>
- <junction id=":1168929398_5_0" type="internal" x="806.67" y="1034.17" incLanes=":1168929398_3_0 -179692877#1_0" intLanes=":1168929398_0_0"/>
- <junction id=":1168929558_9_0" type="internal" x="1182.26" y="1084.96" incLanes=":1168929558_2_0 154844482_0 160587538#5_0" intLanes=":1168929558_3_0 :1168929558_6_0"/>
- <junction id=":1168929558_10_0" type="internal" x="1182.28" y="1085.07" incLanes=":1168929558_8_0 -160587538#6_1 154844482_0" intLanes=":1168929558_1_0 :1168929558_5_0"/>
- <junction id=":1168929600_7_0" type="internal" x="798.41" y="964.25" incLanes=":1168929600_5_0 122301994#0_0 122301994#0_1 122301994#0_2" intLanes=":1168929600_1_0 :1168929600_2_0 :1168929600_3_0"/>
- <junction id=":1168929634_9_0" type="internal" x="1153.45" y="1031.21" incLanes=":1168929634_2_0 101272431_0 160587538#1_1" intLanes=":1168929634_4_0 :1168929634_8_0"/>
- <junction id=":1168929634_10_0" type="internal" x="1153.48" y="1031.40" incLanes=":1168929634_5_0 -160587538#2_0 101272431_0" intLanes=":1168929634_0_0 :1168929634_6_0"/>
- <junction id=":1168929652_9_0" type="internal" x="770.60" y="987.20" incLanes=":1168929652_5_0 -37638470#1_0 166576461#1_0" intLanes=":1168929652_1_0 :1168929652_6_0"/>
- <junction id=":1168929652_10_0" type="internal" x="767.73" y="989.30" incLanes=":1168929652_7_0 37638470#0_0" intLanes=":1168929652_1_0 :1168929652_2_0 :1168929652_3_0 :1168929652_4_0"/>
- <junction id=":1168929652_11_0" type="internal" x="763.42" y="988.34" incLanes=":1168929652_8_0 166576461#1_0 37638470#0_0" intLanes=":1168929652_0_0 :1168929652_4_0"/>
- <junction id=":1168929657_9_0" type="internal" x="1196.30" y="1041.30" incLanes=":1168929657_2_0 -149868584#3_0 154844487#0_0" intLanes=":1168929657_3_0 :1168929657_6_0"/>
- <junction id=":1168929657_10_0" type="internal" x="1192.06" y="1039.36" incLanes=":1168929657_5_0" intLanes=":1168929657_1_0 :1168929657_6_0 :1168929657_7_0 :1168929657_8_0"/>
- <junction id=":1168929657_11_0" type="internal" x="1195.05" y="1041.71" incLanes=":1168929657_7_0 149868584#2_0 149868584#2_1" intLanes=":1168929657_0_0 :1168929657_1_0 :1168929657_4_0 :1168929657_5_0"/>
- <junction id=":1168929657_12_0" type="internal" x="1193.24" y="1043.02" incLanes=":1168929657_8_0 149868584#2_1 154844487#0_0" intLanes=":1168929657_1_0 :1168929657_5_0"/>
- <junction id=":1212960877_9_0" type="internal" x="824.82" y="1628.57" incLanes=":1212960877_1_0 -108329425#3_0" intLanes=":1212960877_4_0 :1212960877_5_0 :1212960877_6_0 :1212960877_7_0"/>
- <junction id=":1212960877_10_0" type="internal" x="824.38" y="1631.33" incLanes=":1212960877_2_0 -105254618_0 -108329425#3_0" intLanes=":1212960877_3_0 :1212960877_6_0"/>
- <junction id=":1212960877_11_0" type="internal" x="822.52" y="1627.68" incLanes=":1212960877_8_0 -105254618_0 108329425#2_0" intLanes=":1212960877_0_0 :1212960877_4_0"/>
- <junction id=":1212960879_9_0" type="internal" x="829.75" y="1638.20" incLanes=":1212960879_1_0 -108329425#1_0" intLanes=":1212960879_4_0 :1212960879_5_0 :1212960879_6_0 :1212960879_7_0"/>
- <junction id=":1212960879_10_0" type="internal" x="830.19" y="1642.66" incLanes=":1212960879_2_0 -105254616#0_0 -108329425#1_0" intLanes=":1212960879_3_0 :1212960879_7_0"/>
- <junction id=":1212960879_11_0" type="internal" x="829.64" y="1639.77" incLanes=":1212960879_8_0 -105254616#0_0 108329425#0_0" intLanes=":1212960879_0_0 :1212960879_4_0"/>
- <junction id=":1213368991_9_0" type="internal" x="734.07" y="1660.70" incLanes=":1213368991_2_0 -105283535#1_0 37942667#2_0" intLanes=":1213368991_3_0 :1213368991_6_0"/>
- <junction id=":1213368991_10_0" type="internal" x="731.04" y="1660.35" incLanes=":1213368991_8_0 105283535#0_0 37942667#2_0" intLanes=":1213368991_1_0 :1213368991_5_0"/>
- <junction id=":1224074532_9_0" type="internal" x="685.61" y="1108.59" incLanes=":1224074532_1_0 149819227#2_0" intLanes=":1224074532_4_0 :1224074532_5_0 :1224074532_6_0 :1224074532_7_0"/>
- <junction id=":1224074532_10_0" type="internal" x="689.74" y="1108.43" incLanes=":1224074532_2_0 -149819220_0 149819227#2_0" intLanes=":1224074532_3_0 :1224074532_7_0"/>
- <junction id=":1224074532_11_0" type="internal" x="684.40" y="1110.85" incLanes=":1224074532_8_0 -149819220_0 -149819227#3_0" intLanes=":1224074532_0_0 :1224074532_4_0"/>
- <junction id=":1224074533_4_0" type="internal" x="787.10" y="1087.01" incLanes=":1224074533_1_0 37973571#0_0" intLanes=":1224074533_2_0"/>
- <junction id=":1224074534_9_0" type="internal" x="778.88" y="1086.40" incLanes=":1224074534_1_0 179917803#0_0" intLanes=":1224074534_4_0 :1224074534_5_0 :1224074534_6_0 :1224074534_7_0"/>
- <junction id=":1224074534_10_0" type="internal" x="779.97" y="1087.81" incLanes=":1224074534_2_0 -166576461#0_0 179917803#0_0" intLanes=":1224074534_3_0 :1224074534_7_0"/>
- <junction id=":1224074534_11_0" type="internal" x="777.62" y="1088.23" incLanes=":1224074534_8_0 -166576461#0_0 -179917803#1_0" intLanes=":1224074534_0_0 :1224074534_4_0"/>
- <junction id=":1224074535_9_0" type="internal" x="660.45" y="1049.82" incLanes=":1224074535_5_0 -149819232#1_0 149819220_0" intLanes=":1224074535_1_0 :1224074535_6_0"/>
- <junction id=":1224074535_10_0" type="internal" x="658.10" y="1051.86" incLanes=":1224074535_7_0 149819232#0_0" intLanes=":1224074535_1_0 :1224074535_2_0 :1224074535_3_0 :1224074535_4_0"/>
- <junction id=":1224074535_11_0" type="internal" x="653.96" y="1050.83" incLanes=":1224074535_8_0 149819220_0 149819232#0_0" intLanes=":1224074535_0_0 :1224074535_4_0"/>
- <junction id=":1224080660_4_0" type="internal" x="661.32" y="1328.28" incLanes=":1224080660_1_0 37973568#0_0" intLanes=":1224080660_2_0"/>
- <junction id=":1224080669_9_0" type="internal" x="525.80" y="1030.88" incLanes=":1224080669_5_0 -37638470#2_0 160584984_0" intLanes=":1224080669_1_0 :1224080669_6_0"/>
- <junction id=":1224080669_10_0" type="internal" x="523.57" y="1032.96" incLanes=":1224080669_7_0 37638470#1_0" intLanes=":1224080669_1_0 :1224080669_2_0 :1224080669_3_0 :1224080669_4_0"/>
- <junction id=":1224080669_11_0" type="internal" x="519.42" y="1032.03" incLanes=":1224080669_8_0 160584984_0 37638470#1_0" intLanes=":1224080669_0_0 :1224080669_4_0"/>
- <junction id=":1224091971_9_0" type="internal" x="623.89" y="1055.52" incLanes=":1224091971_5_0 -106367427#0_0 -149819232#3_0" intLanes=":1224091971_1_0 :1224091971_6_0"/>
- <junction id=":1224091971_10_0" type="internal" x="621.56" y="1057.56" incLanes=":1224091971_7_0 149819232#2_0" intLanes=":1224091971_1_0 :1224091971_2_0 :1224091971_3_0 :1224091971_4_0"/>
- <junction id=":1224091971_11_0" type="internal" x="617.43" y="1056.53" incLanes=":1224091971_8_0 -106367427#0_0 149819232#2_0" intLanes=":1224091971_0_0 :1224091971_4_0"/>
- <junction id=":1228499957_16_0" type="internal" x="628.32" y="2164.07" incLanes=":1228499957_2_0 107066313#4_0" intLanes=":1228499957_5_0 :1228499957_6_0 :1228499957_7_0 :1228499957_8_0 :1228499957_9_0 :1228499957_13_0 :1228499957_14_0"/>
- <junction id=":1228499957_17_0" type="internal" x="629.39" y="2168.75" incLanes=":1228499957_3_0 -106836308#2_0 106836308#1_0 107066313#4_0" intLanes=":1228499957_4_0 :1228499957_9_0 :1228499957_14_0"/>
- <junction id=":1228499957_18_0" type="internal" x="625.10" y="2165.16" incLanes=":1228499957_10_0 -107066313#5_0" intLanes=":1228499957_0_0 :1228499957_1_0 :1228499957_5_0 :1228499957_6_0 :1228499957_13_0 :1228499957_14_0 :1228499957_15_0"/>
- <junction id=":1228499957_19_0" type="internal" x="624.09" y="2160.50" incLanes=":1228499957_11_0 -106836308#2_0 -107066313#5_0 106836308#1_0" intLanes=":1228499957_1_0 :1228499957_6_0 :1228499957_12_0"/>
- <junction id=":1228499992_9_0" type="internal" x="570.87" y="2072.27" incLanes=":1228499992_1_0 107066313#3_0" intLanes=":1228499992_3_0 :1228499992_4_0 :1228499992_7_0 :1228499992_8_0"/>
- <junction id=":1228499992_10_0" type="internal" x="570.33" y="2074.48" incLanes=":1228499992_2_0 106836317#0_0 107066313#3_0" intLanes=":1228499992_4_0 :1228499992_8_0"/>
- <junction id=":1228499992_11_0" type="internal" x="567.35" y="2069.78" incLanes=":1228499992_5_0 -107066313#4_0 106836317#0_0" intLanes=":1228499992_0_0 :1228499992_6_0"/>
- <junction id=":1231011197_6_0" type="internal" x="713.66" y="2044.27" incLanes=":1231011197_1_0 -130443629#7_0 106836317#3_0" intLanes=":1231011197_2_0 :1231011197_5_0"/>
- <junction id=":1231011197_7_0" type="internal" x="713.27" y="2041.39" incLanes=":1231011197_3_0 106836317#3_0 130443629#6_0" intLanes=":1231011197_0_0 :1231011197_4_0"/>
- <junction id=":1232172714_9_0" type="internal" x="660.57" y="1677.90" incLanes=":1232172714_1_0 38027665#2_0" intLanes=":1232172714_4_0 :1232172714_5_0 :1232172714_6_0 :1232172714_7_0"/>
- <junction id=":1232172714_10_0" type="internal" x="664.43" y="1680.13" incLanes=":1232172714_2_0 107167209#1_0 38027665#2_0" intLanes=":1232172714_3_0 :1232172714_7_0"/>
- <junction id=":1232172714_11_0" type="internal" x="658.51" y="1679.33" incLanes=":1232172714_8_0 -38027665#3_0 107167209#1_0" intLanes=":1232172714_0_0 :1232172714_4_0"/>
- <junction id=":1232172723_9_0" type="internal" x="673.11" y="1626.95" incLanes=":1232172723_2_0 -107167209#0_0 -43684741#2_0" intLanes=":1232172723_3_0 :1232172723_7_0"/>
- <junction id=":1232172723_10_0" type="internal" x="669.68" y="1626.50" incLanes=":1232172723_4_0 43684741#1_0" intLanes=":1232172723_0_0 :1232172723_1_0 :1232172723_7_0 :1232172723_8_0"/>
- <junction id=":1232172723_11_0" type="internal" x="667.37" y="1622.80" incLanes=":1232172723_5_0 -107167209#0_0 43684741#1_0" intLanes=":1232172723_1_0 :1232172723_6_0"/>
- <junction id=":1239242543_16_0" type="internal" x="664.20" y="1650.72" incLanes=":1239242543_2_0 107028581#1_0" intLanes=":1239242543_5_0 :1239242543_6_0 :1239242543_7_0 :1239242543_8_0 :1239242543_9_0 :1239242543_13_0 :1239242543_14_0"/>
- <junction id=":1239242543_17_0" type="internal" x="668.15" y="1652.85" incLanes=":1239242543_3_0 -107167209#1_0 107028581#1_0 107167209#0_0" intLanes=":1239242543_4_0 :1239242543_9_0 :1239242543_14_0"/>
- <junction id=":1239242543_18_0" type="internal" x="665.84" y="1654.24" incLanes=":1239242543_10_0 -107028581#2_0" intLanes=":1239242543_0_0 :1239242543_1_0 :1239242543_5_0 :1239242543_6_0 :1239242543_13_0 :1239242543_14_0 :1239242543_15_0"/>
- <junction id=":1239242543_19_0" type="internal" x="661.89" y="1652.11" incLanes=":1239242543_11_0 -107028581#2_0 -107167209#1_0 107167209#0_0" intLanes=":1239242543_1_0 :1239242543_6_0 :1239242543_12_0"/>
- <junction id=":1239242544_9_0" type="internal" x="642.15" y="2057.49" incLanes=":1239242544_1_0 107166846#4_0" intLanes=":1239242544_3_0 :1239242544_4_0 :1239242544_7_0 :1239242544_8_0"/>
- <junction id=":1239242544_10_0" type="internal" x="640.81" y="2059.04" incLanes=":1239242544_2_0 106836317#1_0 107166846#4_0" intLanes=":1239242544_4_0 :1239242544_8_0"/>
- <junction id=":1239242544_11_0" type="internal" x="640.10" y="2056.03" incLanes=":1239242544_5_0 -107166846#5_0 106836317#1_0" intLanes=":1239242544_0_0 :1239242544_6_0"/>
- <junction id=":1239243628_16_0" type="internal" x="653.51" y="1124.90" incLanes=":1239243628_6_0 149819227#0_0" intLanes=":1239243628_1_0 :1239243628_2_0 :1239243628_9_0 :1239243628_10_0 :1239243628_11_0 :1239243628_12_0 :1239243628_13_0"/>
- <junction id=":1239243628_17_0" type="internal" x="658.06" y="1124.43" incLanes=":1239243628_7_0 -106367427#1_0 106367427#0_0 149819227#0_0" intLanes=":1239243628_2_0 :1239243628_8_0 :1239243628_13_0"/>
- <junction id=":1239243628_18_0" type="internal" x="656.95" y="1126.85" incLanes=":1239243628_14_0 -149819227#1_0" intLanes=":1239243628_1_0 :1239243628_2_0 :1239243628_3_0 :1239243628_4_0 :1239243628_5_0 :1239243628_9_0 :1239243628_10_0"/>
- <junction id=":1239243628_19_0" type="internal" x="652.45" y="1127.30" incLanes=":1239243628_15_0 -106367427#1_0 -149819227#1_0 106367427#0_0" intLanes=":1239243628_0_0 :1239243628_5_0 :1239243628_10_0"/>
- <junction id=":1243159115_5_0" type="internal" x="1089.60" y="2105.57" incLanes=":1243159115_4_0 144874010#0_1" intLanes=":1243159115_2_0"/>
- <junction id=":1243159116_11_0" type="internal" x="1079.98" y="2098.81" incLanes=":1243159116_3_0 -108329426#0_0 81523330#3_0 81523330#3_1" intLanes=":1243159116_4_0 :1243159116_8_0 :1243159116_9_0"/>
- <junction id=":1243159116_12_0" type="internal" x="1082.63" y="2097.41" incLanes=":1243159116_10_0 -108329426#0_0 -81523330#4_0 -81523330#4_1" intLanes=":1243159116_0_0 :1243159116_1_0 :1243159116_5_0"/>
- <junction id=":1244292210_4_0" type="internal" x="1165.95" y="1742.02" incLanes=":1244292210_1_0 -166625256#1_0" intLanes=":1244292210_2_0"/>
- <junction id=":1244292210_5_0" type="internal" x="1165.25" y="1744.18" incLanes=":1244292210_3_0 166625256#0_0" intLanes=":1244292210_0_0"/>
- <junction id=":1244292219_4_0" type="internal" x="1083.14" y="1786.13" incLanes=":1244292219_1_0 -166625256#0_0" intLanes=":1244292219_2_0"/>
- <junction id=":1244292219_5_0" type="internal" x="1080.99" y="1785.44" incLanes=":1244292219_3_0 166625256#1_0" intLanes=":1244292219_0_0"/>
- <junction id=":1246731455_6_0" type="internal" x="1152.46" y="1084.84" incLanes=":1246731455_4_0 154844461#2_0" intLanes=":1246731455_0_0 :1246731455_1_0"/>
- <junction id=":1246731455_7_0" type="internal" x="1150.14" y="1081.59" incLanes=":1246731455_5_0 154844461#2_0" intLanes=":1246731455_1_0"/>
- <junction id=":1246731460_4_0" type="internal" x="1173.32" y="1091.99" incLanes=":1246731460_1_0 154844461#0_0" intLanes=":1246731460_2_0"/>
- <junction id=":1246731470_5_0" type="internal" x="1204.94" y="1047.07" incLanes=":1246731470_4_0 170594822#2_0" intLanes=":1246731470_0_0"/>
- <junction id=":1246731482_4_0" type="internal" x="1191.02" y="1071.24" incLanes=":1246731482_3_0 154844489#0_0" intLanes=":1246731482_0_0"/>
- <junction id=":1246731504_4_0" type="internal" x="1144.02" y="1033.80" incLanes=":1246731504_1_0 154844465#3_0" intLanes=":1246731504_2_0"/>
- <junction id=":1246731525_4_0" type="internal" x="1199.11" y="1050.20" incLanes=":1246731525_3_0 154844462_0" intLanes=":1246731525_0_0"/>
- <junction id=":1246731541_4_0" type="internal" x="1197.89" y="1029.97" incLanes=":1246731541_1_0 81547611_0" intLanes=":1246731541_2_0"/>
- <junction id=":1246731544_4_0" type="internal" x="1177.52" y="1028.11" incLanes=":1246731544_1_0 154844463_0" intLanes=":1246731544_2_0 :1246731544_3_0"/>
- <junction id=":1246731544_5_0" type="internal" x="1175.72" y="1028.48" incLanes=":1246731544_2_0 108733422_0" intLanes=":1246731544_1_0"/>
- <junction id=":1246731574_4_0" type="internal" x="1176.53" y="1029.53" incLanes=":1246731574_1_0 154844479_0" intLanes=":1246731574_2_0"/>
- <junction id=":1246731576_4_0" type="internal" x="1132.72" y="1085.58" incLanes=":1246731576_1_0 111863125#0_0" intLanes=":1246731576_2_0"/>
- <junction id=":1246731601_4_0" type="internal" x="1133.69" y="1061.40" incLanes=":1246731601_1_0 111549913#5_0" intLanes=":1246731601_2_0"/>
- <junction id=":1246731620_5_0" type="internal" x="1163.86" y="1023.28" incLanes=":1246731620_1_0 81124943#1_0" intLanes=":1246731620_2_0"/>
- <junction id=":1246731627_4_0" type="internal" x="1140.30" y="1054.56" incLanes=":1246731627_1_0 154844465#1_0" intLanes=":1246731627_2_0"/>
- <junction id=":1246731647_5_0" type="internal" x="1181.50" y="1097.94" incLanes=":1246731647_4_0 154844485#0_0" intLanes=":1246731647_0_0"/>
- <junction id=":1252777720_8_0" type="internal" x="776.71" y="2259.25" incLanes=":1252777720_2_0 109438231#1_0 81523330#0_0 81523330#0_1" intLanes=":1252777720_3_0 :1252777720_5_0 :1252777720_6_0"/>
- <junction id=":1252777720_9_0" type="internal" x="776.76" y="2259.05" incLanes=":1252777720_7_0 -81523330#1_0 -81523330#1_1 109438231#1_0" intLanes=":1252777720_0_0 :1252777720_1_0 :1252777720_4_0"/>
- <junction id=":1257054077_4_0" type="internal" x="1079.16" y="2082.51" incLanes=":1257054077_1_0 -109912567#0_0" intLanes=":1257054077_2_0"/>
- <junction id=":1257054077_5_0" type="internal" x="1082.11" y="2080.99" incLanes=":1257054077_3_0 109912572#4_0" intLanes=":1257054077_0_0"/>
- <junction id=":1257054172_18_0" type="internal" x="1349.89" y="1950.57" incLanes=":1257054172_7_0 139118805#1_0" intLanes=":1257054172_1_0 :1257054172_2_0 :1257054172_10_0 :1257054172_11_0 :1257054172_12_0 :1257054172_13_0 :1257054172_14_0 :1257054172_15_0"/>
- <junction id=":1257054172_19_0" type="internal" x="1356.27" y="1952.79" incLanes=":1257054172_8_0 -38319546#3_0 139118805#1_0 139118805#1_1 38319546#2_0" intLanes=":1257054172_2_0 :1257054172_9_0 :1257054172_14_0 :1257054172_15_0"/>
- <junction id=":1257054172_20_0" type="internal" x="1350.80" y="1955.69" incLanes=":1257054172_17_0 -139118805#2_0 -139118805#2_1 -38319546#3_0 38319546#2_0" intLanes=":1257054172_0_0 :1257054172_5_0 :1257054172_6_0 :1257054172_11_0"/>
- <junction id=":1257054205_16_0" type="internal" x="1359.12" y="1958.46" incLanes=":1257054205_7_0 -129780022#1_0 -38319546#2_0 38319546#1_0" intLanes=":1257054205_2_0 :1257054205_8_0 :1257054205_13_0"/>
- <junction id=":1257054205_17_0" type="internal" x="1358.36" y="1960.73" incLanes=":1257054205_14_0 129780022#0_0" intLanes=":1257054205_1_0 :1257054205_2_0 :1257054205_3_0 :1257054205_4_0 :1257054205_5_0 :1257054205_9_0 :1257054205_10_0"/>
- <junction id=":1257054205_18_0" type="internal" x="1353.54" y="1961.40" incLanes=":1257054205_15_0 -38319546#2_0 129780022#0_0 38319546#1_0" intLanes=":1257054205_0_0 :1257054205_5_0 :1257054205_10_0"/>
- <junction id=":1257054208_16_0" type="internal" x="1067.58" y="2086.71" incLanes=":1257054208_2_0 -108329426#2_0" intLanes=":1257054208_5_0 :1257054208_6_0 :1257054208_7_0 :1257054208_8_0 :1257054208_9_0 :1257054208_13_0 :1257054208_14_0"/>
- <junction id=":1257054208_17_0" type="internal" x="1065.70" y="2088.12" incLanes=":1257054208_3_0 -108329426#2_0 -109912567#1_0 109912567#0_0" intLanes=":1257054208_4_0 :1257054208_9_0 :1257054208_14_0"/>
- <junction id=":1257054208_18_0" type="internal" x="1065.72" y="2090.38" incLanes=":1257054208_10_0 108329426#1_0" intLanes=":1257054208_0_0 :1257054208_1_0 :1257054208_5_0 :1257054208_6_0 :1257054208_13_0 :1257054208_14_0 :1257054208_15_0"/>
- <junction id=":1257054208_19_0" type="internal" x="1065.27" y="2085.89" incLanes=":1257054208_11_0 -109912567#1_0 108329426#1_0 109912567#0_0" intLanes=":1257054208_1_0 :1257054208_6_0 :1257054208_12_0"/>
- <junction id=":1261880295_5_0" type="internal" x="1294.40" y="1668.88" incLanes=":1261880295_1_0 151167658#2_0" intLanes=":1261880295_2_0 :1261880295_3_0"/>
- <junction id=":1263725264_18_0" type="internal" x="1076.77" y="2100.52" incLanes=":1263725264_8_0 -108329427#1_0 108329427#0_0 81523330#2_0 81523330#2_1" intLanes=":1263725264_2_0 :1263725264_9_0 :1263725264_14_0 :1263725264_15_0"/>
- <junction id=":1263725264_19_0" type="internal" x="1076.01" y="2100.85" incLanes=":1263725264_17_0 -108329427#1_0 -81523330#3_0 -81523330#3_1 108329427#0_0" intLanes=":1263725264_0_0 :1263725264_5_0 :1263725264_6_0 :1263725264_11_0"/>
- <junction id=":1263725266_16_0" type="internal" x="1080.54" y="2105.59" incLanes=":1263725266_2_0 108329427#1_0" intLanes=":1263725266_5_0 :1263725266_6_0 :1263725266_7_0 :1263725266_8_0 :1263725266_9_0 :1263725266_13_0 :1263725266_14_0"/>
- <junction id=":1263725266_17_0" type="internal" x="1079.79" y="2108.13" incLanes=":1263725266_3_0 -129780022#4_0 108329427#1_0 129780022#3_0" intLanes=":1263725266_4_0 :1263725266_9_0 :1263725266_14_0"/>
- <junction id=":1263725266_18_0" type="internal" x="1080.11" y="2108.80" incLanes=":1263725266_11_0 -108329427#2_0 -129780022#4_0 129780022#3_0" intLanes=":1263725266_1_0 :1263725266_6_0 :1263725266_12_0"/>
- <junction id=":1323557968_6_0" type="internal" x="797.18" y="1578.22" incLanes=":1323557968_2_0 -108329425#4_0" intLanes=":1323557968_3_0"/>
- <junction id=":1323557968_7_0" type="internal" x="794.90" y="1577.38" incLanes=":1323557968_4_0 108329425#3_0" intLanes=":1323557968_0_0 :1323557968_1_0"/>
- <junction id=":1323557968_8_0" type="internal" x="795.85" y="1575.63" incLanes=":1323557968_5_0 108329425#3_0" intLanes=":1323557968_1_0"/>
- <junction id=":1367855907_4_0" type="internal" x="1400.35" y="2204.38" incLanes=":1367855907_1_0 122394853_0" intLanes=":1367855907_2_0"/>
- <junction id=":1367855907_5_0" type="internal" x="1401.20" y="2205.24" incLanes=":1367855907_3_0 -122394834_0" intLanes=":1367855907_0_0"/>
- <junction id=":1367855909_16_0" type="internal" x="1406.83" y="2219.08" incLanes=":1367855909_6_0 122394845_0" intLanes=":1367855909_1_0 :1367855909_2_0 :1367855909_9_0 :1367855909_10_0 :1367855909_11_0 :1367855909_12_0 :1367855909_13_0"/>
- <junction id=":1367855909_17_0" type="internal" x="1411.21" y="2218.57" incLanes=":1367855909_7_0 122394834_0 122394845_0 122394860_0" intLanes=":1367855909_2_0 :1367855909_8_0 :1367855909_13_0"/>
- <junction id=":1367855909_18_0" type="internal" x="1410.47" y="2220.84" incLanes=":1367855909_14_0 -122394841#0_0" intLanes=":1367855909_1_0 :1367855909_2_0 :1367855909_3_0 :1367855909_4_0 :1367855909_5_0 :1367855909_9_0 :1367855909_10_0"/>
- <junction id=":1367855909_19_0" type="internal" x="1408.96" y="2219.39" incLanes=":1367855909_15_0 -122394841#0_0 122394834_0 122394860_0" intLanes=":1367855909_0_0 :1367855909_5_0 :1367855909_10_0"/>
- <junction id=":1367855910_4_0" type="internal" x="1416.77" y="2236.02" incLanes=":1367855910_1_0 122394859_0" intLanes=":1367855910_2_0"/>
- <junction id=":1367855910_5_0" type="internal" x="1416.59" y="2234.91" incLanes=":1367855910_3_0 -122394860_0" intLanes=":1367855910_0_0"/>
- <junction id=":1367855925_9_0" type="internal" x="1382.59" y="2169.89" incLanes=":1367855925_5_0 -23182484#2_0 122394833#5_0" intLanes=":1367855925_1_0 :1367855925_6_0"/>
- <junction id=":1367855925_10_0" type="internal" x="1381.98" y="2172.08" incLanes=":1367855925_7_0 23182484#1_0" intLanes=":1367855925_1_0 :1367855925_2_0 :1367855925_3_0 :1367855925_4_0"/>
- <junction id=":1367855925_11_0" type="internal" x="1377.34" y="2172.67" incLanes=":1367855925_8_0 122394833#5_0 23182484#1_0" intLanes=":1367855925_0_0 :1367855925_4_0"/>
- <junction id=":1369844757_16_0" type="internal" x="1448.85" y="2197.25" incLanes=":1369844757_6_0 122394841#2_0" intLanes=":1369844757_1_0 :1369844757_2_0 :1369844757_9_0 :1369844757_10_0 :1369844757_11_0 :1369844757_12_0 :1369844757_13_0"/>
- <junction id=":1369844757_17_0" type="internal" x="1453.32" y="2196.82" incLanes=":1369844757_7_0 -122641559#1_0 122394841#2_0 122641559#0_0" intLanes=":1369844757_2_0 :1369844757_8_0 :1369844757_13_0"/>
- <junction id=":1369844757_18_0" type="internal" x="1452.23" y="2199.22" incLanes=":1369844757_14_0 -122394841#3_0" intLanes=":1369844757_1_0 :1369844757_2_0 :1369844757_3_0 :1369844757_4_0 :1369844757_5_0 :1369844757_9_0 :1369844757_10_0"/>
- <junction id=":1369844757_19_0" type="internal" x="1447.79" y="2199.65" incLanes=":1369844757_15_0 -122394841#3_0 -122641559#1_0 122641559#0_0" intLanes=":1369844757_0_0 :1369844757_5_0 :1369844757_10_0"/>
- <junction id=":1369844762_16_0" type="internal" x="1436.22" y="2203.69" incLanes=":1369844762_6_0 122394841#1_0" intLanes=":1369844762_1_0 :1369844762_2_0 :1369844762_9_0 :1369844762_10_0 :1369844762_11_0 :1369844762_12_0 :1369844762_13_0"/>
- <junction id=":1369844762_17_0" type="internal" x="1440.69" y="2203.23" incLanes=":1369844762_7_0 -122641556#1_0 122394841#1_0 122641556#0_0" intLanes=":1369844762_2_0 :1369844762_8_0 :1369844762_13_0"/>
- <junction id=":1369844762_18_0" type="internal" x="1439.63" y="2205.64" incLanes=":1369844762_14_0 -122394841#2_0" intLanes=":1369844762_1_0 :1369844762_2_0 :1369844762_3_0 :1369844762_4_0 :1369844762_5_0 :1369844762_9_0 :1369844762_10_0"/>
- <junction id=":1369844762_19_0" type="internal" x="1435.14" y="2206.09" incLanes=":1369844762_15_0 -122394841#2_0 -122641556#1_0 122641556#0_0" intLanes=":1369844762_0_0 :1369844762_5_0 :1369844762_10_0"/>
- <junction id=":1369844772_16_0" type="internal" x="1422.50" y="2210.82" incLanes=":1369844772_6_0 122394841#0_0" intLanes=":1369844772_1_0 :1369844772_2_0 :1369844772_9_0 :1369844772_10_0 :1369844772_11_0 :1369844772_12_0 :1369844772_13_0"/>
- <junction id=":1369844772_17_0" type="internal" x="1426.96" y="2210.36" incLanes=":1369844772_7_0 -122641560#1_0 122394841#0_0 122641560#0_0" intLanes=":1369844772_2_0 :1369844772_8_0 :1369844772_13_0"/>
- <junction id=":1369844772_18_0" type="internal" x="1425.76" y="2212.85" incLanes=":1369844772_14_0 -122394841#1_0" intLanes=":1369844772_1_0 :1369844772_2_0 :1369844772_3_0 :1369844772_4_0 :1369844772_5_0 :1369844772_9_0 :1369844772_10_0"/>
- <junction id=":1369844772_19_0" type="internal" x="1421.30" y="2213.31" incLanes=":1369844772_15_0 -122394841#1_0 -122641560#1_0 122641560#0_0" intLanes=":1369844772_0_0 :1369844772_5_0 :1369844772_10_0"/>
- <junction id=":13929747_9_0" type="internal" x="1346.49" y="1965.13" incLanes=":13929747_2_0 -129780022#2_0 37449253#6_0" intLanes=":13929747_3_0 :13929747_6_0"/>
- <junction id=":13929747_10_0" type="internal" x="1345.87" y="1967.34" incLanes=":13929747_7_0 129780022#1_0" intLanes=":13929747_0_0 :13929747_1_0 :13929747_4_0 :13929747_5_0"/>
- <junction id=":13929747_11_0" type="internal" x="1343.91" y="1966.51" incLanes=":13929747_8_0 129780022#1_0 37449253#6_0" intLanes=":13929747_1_0 :13929747_5_0"/>
- <junction id=":13929775_11_0" type="internal" x="939.62" y="1187.03" incLanes=":13929775_3_0 -149868584#7_0 -149868584#7_1 101272424#5_0" intLanes=":13929775_4_0 :13929775_7_0 :13929775_8_0"/>
- <junction id=":13929775_12_0" type="internal" x="935.84" y="1183.49" incLanes=":13929775_6_0 -149868584#7_0 -149868584#7_1" intLanes=":13929775_1_0 :13929775_2_0 :13929775_7_0 :13929775_8_0 :13929775_9_0 :13929775_10_0"/>
- <junction id=":13929775_13_0" type="internal" x="938.49" y="1189.58" incLanes=":13929775_9_0 149868584#6_0 149868584#6_1" intLanes=":13929775_0_0 :13929775_1_0 :13929775_2_0 :13929775_5_0 :13929775_6_0"/>
- <junction id=":13929775_14_0" type="internal" x="936.51" y="1188.81" incLanes=":13929775_10_0 101272424#5_0 149868584#6_0 149868584#6_1" intLanes=":13929775_1_0 :13929775_2_0 :13929775_6_0"/>
- <junction id=":1457695393_16_0" type="internal" x="691.99" y="1871.61" incLanes=":1457695393_2_0 -130443629#8_0" intLanes=":1457695393_5_0 :1457695393_6_0 :1457695393_7_0 :1457695393_8_0 :1457695393_9_0 :1457695393_13_0 :1457695393_14_0"/>
- <junction id=":1457695393_17_0" type="internal" x="690.90" y="1875.98" incLanes=":1457695393_3_0 -130443629#8_0 -59159262#1_0 59159262#0_0" intLanes=":1457695393_4_0 :1457695393_9_0 :1457695393_14_0"/>
- <junction id=":1457695393_18_0" type="internal" x="688.87" y="1873.22" incLanes=":1457695393_10_0 130443629#7_0" intLanes=":1457695393_0_0 :1457695393_1_0 :1457695393_5_0 :1457695393_6_0 :1457695393_13_0 :1457695393_14_0 :1457695393_15_0"/>
- <junction id=":1457695393_19_0" type="internal" x="689.99" y="1868.90" incLanes=":1457695393_11_0 -59159262#1_0 130443629#7_0 59159262#0_0" intLanes=":1457695393_1_0 :1457695393_6_0 :1457695393_12_0"/>
- <junction id=":1474873133_4_0" type="internal" x="865.23" y="1729.38" incLanes=":1474873133_1_0 191176268_0" intLanes=":1474873133_2_0"/>
- <junction id=":1474873133_5_0" type="internal" x="866.27" y="1732.08" incLanes=":1474873133_3_0 -191176266_0" intLanes=":1474873133_0_0"/>
- <junction id=":1482088987_9_0" type="internal" x="760.40" y="1842.13" incLanes=":1482088987_1_0 59159262#3_0" intLanes=":1482088987_4_0 :1482088987_5_0 :1482088987_6_0 :1482088987_7_0"/>
- <junction id=":1482088987_10_0" type="internal" x="765.71" y="1842.64" incLanes=":1482088987_2_0 134872478_0 59159262#3_0" intLanes=":1482088987_3_0 :1482088987_7_0"/>
- <junction id=":1482088987_11_0" type="internal" x="764.42" y="1843.30" incLanes=":1482088987_8_0 -59159262#4_0 134872478_0" intLanes=":1482088987_0_0 :1482088987_4_0"/>
- <junction id=":1545672852_4_0" type="internal" x="1276.72" y="2102.22" incLanes=":1545672852_1_0 -141191259#0_0" intLanes=":1545672852_2_0"/>
- <junction id=":1545672852_5_0" type="internal" x="1278.66" y="2104.07" incLanes=":1545672852_3_0 141191259#5_0" intLanes=":1545672852_0_0"/>
- <junction id=":1545672923_4_0" type="internal" x="1275.17" y="2125.48" incLanes=":1545672923_1_0 -141191255#0_0" intLanes=":1545672923_2_0"/>
- <junction id=":1545672923_5_0" type="internal" x="1275.07" y="2124.84" incLanes=":1545672923_3_0 141191255#1_0" intLanes=":1545672923_0_0"/>
- <junction id=":1545673118_9_0" type="internal" x="1104.49" y="2162.58" incLanes=":1545673118_1_0 -23182517#4_0" intLanes=":1545673118_4_0 :1545673118_5_0 :1545673118_6_0 :1545673118_7_0"/>
- <junction id=":1545673118_10_0" type="internal" x="1104.99" y="2167.25" incLanes=":1545673118_2_0 -141191250#0_0 -23182517#4_0" intLanes=":1545673118_3_0 :1545673118_7_0"/>
- <junction id=":1545673118_11_0" type="internal" x="1102.21" y="2161.71" incLanes=":1545673118_8_0 -141191250#0_0 23182517#3_0" intLanes=":1545673118_0_0 :1545673118_4_0"/>
- <junction id=":1545673349_9_0" type="internal" x="1135.06" y="2223.46" incLanes=":1545673349_1_0 -23182517#3_0" intLanes=":1545673349_4_0 :1545673349_5_0 :1545673349_6_0 :1545673349_7_0"/>
- <junction id=":1545673349_10_0" type="internal" x="1135.55" y="2228.11" incLanes=":1545673349_2_0 -141191249#0_0 -23182517#3_0" intLanes=":1545673349_3_0 :1545673349_7_0"/>
- <junction id=":1545673349_11_0" type="internal" x="1132.77" y="2222.57" incLanes=":1545673349_8_0 -141191249#0_0 23182517#2_0" intLanes=":1545673349_0_0 :1545673349_4_0"/>
- <junction id=":1624060630_25_0" type="internal" x="1421.69" y="875.94" incLanes=":1624060630_4_0 -166728377#2_0 149422210#0_0 166728377#1_0 23566901#1_0" intLanes=":1624060630_5_0 :1624060630_10_0 :1624060630_17_0 :1624060630_22_0"/>
- <junction id=":1624060630_26_0" type="internal" x="1418.73" y="873.81" incLanes=":1624060630_6_0 -149422210#1_0" intLanes=":1624060630_0_0 :1624060630_1_0 :1624060630_2_0 :1624060630_3_0 :1624060630_10_0 :1624060630_11_0 :1624060630_17_0 :1624060630_19_0 :1624060630_22_0 :1624060630_23_0"/>
- <junction id=":1624060630_27_0" type="internal" x="1418.73" y="873.81" incLanes=":1624060630_7_0 -149422210#1_0" intLanes=":1624060630_1_0 :1624060630_2_0 :1624060630_3_0 :1624060630_10_0 :1624060630_11_0 :1624060630_12_0 :1624060630_15_0 :1624060630_16_0 :1624060630_18_0 :1624060630_20_0 :1624060630_21_0 :1624060630_24_0"/>
- <junction id=":1624060630_28_0" type="internal" x="1417.29" y="867.46" incLanes=":1624060630_9_0 -149422210#1_0 -166728377#2_0 166728377#1_0 23566901#1_0" intLanes=":1624060630_3_0 :1624060630_13_0 :1624060630_16_0 :1624060630_21_0"/>
- <junction id=":1627657715_9_0" type="internal" x="701.08" y="1102.27" incLanes=":1627657715_1_0 149819227#3_0" intLanes=":1627657715_4_0 :1627657715_5_0 :1627657715_6_0 :1627657715_7_0"/>
- <junction id=":1627657715_10_0" type="internal" x="705.44" y="1102.35" incLanes=":1627657715_2_0 149819222_0 149819227#3_0" intLanes=":1627657715_3_0 :1627657715_7_0"/>
- <junction id=":1627657715_11_0" type="internal" x="699.63" y="1104.60" incLanes=":1627657715_8_0 -179917803#0_0 149819222_0" intLanes=":1627657715_0_0 :1627657715_4_0"/>
- <junction id=":1627657822_9_0" type="internal" x="642.09" y="1052.68" incLanes=":1627657822_5_0 -149819224_0 -149819232#2_0" intLanes=":1627657822_1_0 :1627657822_6_0"/>
- <junction id=":1627657822_10_0" type="internal" x="639.76" y="1054.71" incLanes=":1627657822_7_0 149819232#1_0" intLanes=":1627657822_1_0 :1627657822_2_0 :1627657822_3_0 :1627657822_4_0"/>
- <junction id=":1627657822_11_0" type="internal" x="635.62" y="1053.69" incLanes=":1627657822_8_0 -149819224_0 149819232#1_0" intLanes=":1627657822_0_0 :1627657822_4_0"/>
- <junction id=":1627657825_9_0" type="internal" x="669.26" y="1116.80" incLanes=":1627657825_1_0 149819227#1_0" intLanes=":1627657825_4_0 :1627657825_5_0 :1627657825_6_0 :1627657825_7_0"/>
- <junction id=":1627657825_10_0" type="internal" x="673.72" y="1116.36" incLanes=":1627657825_2_0 149819224_0 149819227#1_0" intLanes=":1627657825_3_0 :1627657825_7_0"/>
- <junction id=":1627657825_11_0" type="internal" x="668.21" y="1119.20" incLanes=":1627657825_8_0 -149819227#2_0 149819224_0" intLanes=":1627657825_0_0 :1627657825_4_0"/>
- <junction id=":1634988377_9_0" type="internal" x="748.59" y="1443.18" incLanes=":1634988377_5_0 105254618_0 130443630#2_0" intLanes=":1634988377_1_0 :1634988377_6_0"/>
- <junction id=":1634988377_10_0" type="internal" x="749.92" y="1445.48" incLanes=":1634988377_7_0 -130443630#3_0" intLanes=":1634988377_1_0 :1634988377_2_0 :1634988377_3_0 :1634988377_4_0"/>
- <junction id=":1634988377_11_0" type="internal" x="747.68" y="1449.36" incLanes=":1634988377_8_0 -130443630#3_0 105254618_0" intLanes=":1634988377_0_0 :1634988377_4_0"/>
- <junction id=":1669480280_16_0" type="internal" x="1467.32" y="1574.43" incLanes=":1669480280_6_0 154844500#1_0" intLanes=":1669480280_1_0 :1669480280_2_0 :1669480280_9_0 :1669480280_10_0 :1669480280_11_0 :1669480280_12_0 :1669480280_13_0"/>
- <junction id=":1669480280_17_0" type="internal" x="1471.91" y="1574.03" incLanes=":1669480280_7_0 -38319548#10_0 154844500#1_0 38319548#9_0" intLanes=":1669480280_2_0 :1669480280_8_0 :1669480280_13_0"/>
- <junction id=":1669480280_18_0" type="internal" x="1471.18" y="1576.28" incLanes=":1669480280_14_0 -154844500#2_0" intLanes=":1669480280_1_0 :1669480280_2_0 :1669480280_3_0 :1669480280_4_0 :1669480280_5_0 :1669480280_9_0 :1669480280_10_0"/>
- <junction id=":1669480280_19_0" type="internal" x="1469.98" y="1574.50" incLanes=":1669480280_15_0 -154844500#2_0 -38319548#10_0 38319548#9_0" intLanes=":1669480280_0_0 :1669480280_5_0 :1669480280_10_0"/>
- <junction id=":1719223329_9_0" type="internal" x="922.47" y="1598.06" incLanes=":1719223329_2_0 105254616#0_0 191056427#1_0" intLanes=":1719223329_3_0 :1719223329_6_0"/>
- <junction id=":1719223329_10_0" type="internal" x="923.94" y="1598.95" incLanes=":1719223329_4_0 -105254616#1_0" intLanes=":1719223329_0_0 :1719223329_1_0 :1719223329_6_0 :1719223329_8_0"/>
- <junction id=":1719223329_11_0" type="internal" x="921.16" y="1598.33" incLanes=":1719223329_5_0 -105254616#1_0 105254616#0_0" intLanes=":1719223329_1_0 :1719223329_7_0"/>
- <junction id=":1726380184_4_0" type="internal" x="681.91" y="1354.63" incLanes=":1726380184_1_0 37973569#7_0" intLanes=":1726380184_2_0"/>
- <junction id=":1726380187_4_0" type="internal" x="713.75" y="1414.28" incLanes=":1726380187_3_0 160584980_0" intLanes=":1726380187_0_0"/>
- <junction id=":1726380194_6_0" type="internal" x="751.06" y="1426.46" incLanes=":1726380194_1_0 130443630#3_0 160584982#1_0" intLanes=":1726380194_2_0 :1726380194_4_0"/>
- <junction id=":1726380194_7_0" type="internal" x="750.63" y="1429.36" incLanes=":1726380194_5_0 -130443630#4_0 160584982#1_0" intLanes=":1726380194_0_0 :1726380194_3_0"/>
- <junction id=":1726380204_6_0" type="internal" x="647.41" y="1608.38" incLanes=":1726380204_1_0 -43684741#3_0 170088033_0" intLanes=":1726380204_2_0 :1726380204_4_0"/>
- <junction id=":1726380204_7_0" type="internal" x="643.48" y="1605.53" incLanes=":1726380204_5_0 170088033_0 43684741#2_0" intLanes=":1726380204_0_0 :1726380204_3_0"/>
- <junction id=":1726394724_18_0" type="internal" x="1169.08" y="1062.37" incLanes=":1726394724_2_0 160587538#3_0 160587538#3_1" intLanes=":1726394724_5_0 :1726394724_6_0 :1726394724_7_0 :1726394724_8_0 :1726394724_9_0 :1726394724_10_0 :1726394724_14_0 :1726394724_15_0 :1726394724_16_0"/>
- <junction id=":1726394724_19_0" type="internal" x="1170.37" y="1062.21" incLanes=":1726394724_3_0 -149868584#4_1 149868584#3_0 160587538#3_1" intLanes=":1726394724_4_0 :1726394724_10_0 :1726394724_16_0"/>
- <junction id=":1726394724_20_0" type="internal" x="1169.38" y="1056.36" incLanes=":1726394724_7_0 -149868584#4_0 -149868584#4_1" intLanes=":1726394724_1_0 :1726394724_2_0 :1726394724_10_0 :1726394724_11_0 :1726394724_12_0 :1726394724_13_0 :1726394724_14_0 :1726394724_15_0"/>
- <junction id=":1726394724_21_0" type="internal" x="1173.68" y="1054.08" incLanes=":1726394724_8_0 -149868584#4_0 -149868584#4_1 -160587538#4_1 160587538#3_0" intLanes=":1726394724_2_0 :1726394724_9_0 :1726394724_14_0 :1726394724_15_0"/>
- <junction id=":1726394724_22_0" type="internal" x="1166.78" y="1052.30" incLanes=":1726394724_11_0 -160587538#4_0 -160587538#4_1" intLanes=":1726394724_0_0 :1726394724_1_0 :1726394724_5_0 :1726394724_6_0 :1726394724_7_0 :1726394724_14_0 :1726394724_15_0 :1726394724_16_0 :1726394724_17_0"/>
- <junction id=":1726394724_23_0" type="internal" x="1165.33" y="1052.42" incLanes=":1726394724_12_0 -149868584#4_0 -160587538#4_1 149868584#3_1" intLanes=":1726394724_1_0 :1726394724_7_0 :1726394724_13_0"/>
- <junction id=":1726394724_24_0" type="internal" x="1166.62" y="1058.22" incLanes=":1726394724_16_0 149868584#3_0 149868584#3_1" intLanes=":1726394724_1_0 :1726394724_2_0 :1726394724_3_0 :1726394724_4_0 :1726394724_5_0 :1726394724_6_0 :1726394724_10_0 :1726394724_11_0"/>
- <junction id=":1726394724_25_0" type="internal" x="1162.13" y="1060.61" incLanes=":1726394724_17_0 -160587538#4_0 149868584#3_0 149868584#3_1 160587538#3_1" intLanes=":1726394724_0_0 :1726394724_5_0 :1726394724_6_0 :1726394724_11_0"/>
- <junction id=":1726394726_18_0" type="internal" x="1449.13" y="1588.04" incLanes=":1726394726_3_0 -160587542_0 154844503_1 160587538#7_1" intLanes=":1726394726_4_0 :1726394726_10_0 :1726394726_16_0"/>
- <junction id=":1726394726_19_0" type="internal" x="1443.21" y="1583.65" incLanes=":1726394726_7_0 154844503_0 154844503_1" intLanes=":1726394726_1_0 :1726394726_2_0 :1726394726_10_0 :1726394726_11_0 :1726394726_12_0 :1726394726_13_0 :1726394726_14_0 :1726394726_15_0"/>
- <junction id=":1726394726_20_0" type="internal" x="1446.40" y="1587.36" incLanes=":1726394726_8_0 -160587537#0_1 154844503_0 154844503_1 160587538#7_0" intLanes=":1726394726_2_0 :1726394726_9_0 :1726394726_14_0 :1726394726_15_0"/>
- <junction id=":1726394726_21_0" type="internal" x="1444.62" y="1582.93" incLanes=":1726394726_12_0 -160587537#0_1 -160587542_1 154844503_0" intLanes=":1726394726_1_0 :1726394726_7_0 :1726394726_13_0"/>
- <junction id=":1726394726_22_0" type="internal" x="1450.38" y="1590.69" incLanes=":1726394726_16_0 -160587542_0 -160587542_1" intLanes=":1726394726_1_0 :1726394726_2_0 :1726394726_3_0 :1726394726_4_0 :1726394726_5_0 :1726394726_6_0 :1726394726_10_0 :1726394726_11_0"/>
- <junction id=":1726394726_23_0" type="internal" x="1447.20" y="1586.94" incLanes=":1726394726_17_0 -160587537#0_0 -160587542_0 -160587542_1 160587538#7_1" intLanes=":1726394726_0_0 :1726394726_5_0 :1726394726_6_0 :1726394726_11_0"/>
- <junction id=":1726394727_18_0" type="internal" x="1454.96" y="1601.26" incLanes=":1726394727_4_0 -38319548#5_0 160587537#0_0 160587537#0_1 38319548#4_0" intLanes=":1726394727_5_0 :1726394727_10_0 :1726394727_11_0 :1726394727_16_0"/>
- <junction id=":1726394727_19_0" type="internal" x="1453.18" y="1599.65" incLanes=":1726394727_13_0 -160587537#1_0 -160587537#1_1 -38319548#5_0 38319548#4_0" intLanes=":1726394727_1_0 :1726394727_2_0 :1726394727_7_0 :1726394727_14_0"/>
- <junction id=":1726394728_11_0" type="internal" x="1576.96" y="1824.77" incLanes=":1726394728_2_0 160587537#1_0" intLanes=":1726394728_4_0 :1726394728_5_0 :1726394728_6_0 :1726394728_9_0 :1726394728_10_0"/>
- <junction id=":1726394728_12_0" type="internal" x="1573.29" y="1828.43" incLanes=":1726394728_3_0 160587537#1_0 160587537#1_1 172498387#2_0" intLanes=":1726394728_5_0 :1726394728_6_0 :1726394728_10_0"/>
- <junction id=":1726394728_13_0" type="internal" x="1571.87" y="1825.62" incLanes=":1726394728_7_0 -160587537#2_0 -160587537#2_1 172498387#2_0" intLanes=":1726394728_0_0 :1726394728_1_0 :1726394728_8_0"/>
- <junction id=":1780219345_9_0" type="internal" x="787.44" y="1173.57" incLanes=":1780219345_5_0 130443630#9_0 166576466#2_0" intLanes=":1780219345_1_0 :1780219345_6_0"/>
- <junction id=":1780219345_10_0" type="internal" x="788.55" y="1177.24" incLanes=":1780219345_7_0 -130443630#10_0" intLanes=":1780219345_1_0 :1780219345_2_0 :1780219345_3_0 :1780219345_4_0"/>
- <junction id=":1780219345_11_0" type="internal" x="786.29" y="1181.22" incLanes=":1780219345_8_0 -130443630#10_0 166576466#2_0" intLanes=":1780219345_0_0 :1780219345_4_0"/>
- <junction id=":1780219353_18_0" type="internal" x="897.85" y="1205.15" incLanes=":1780219353_7_0 -37973572#1_0" intLanes=":1780219353_1_0 :1780219353_2_0 :1780219353_10_0 :1780219353_11_0 :1780219353_12_0 :1780219353_13_0 :1780219353_14_0 :1780219353_15_0"/>
- <junction id=":1780219353_19_0" type="internal" x="903.77" y="1207.47" incLanes=":1780219353_8_0 -166576462#5_0 -37973572#1_0 -37973572#1_1 166576462#4_0" intLanes=":1780219353_2_0 :1780219353_9_0 :1780219353_14_0 :1780219353_15_0"/>
- <junction id=":1780219353_20_0" type="internal" x="904.77" y="1212.60" incLanes=":1780219353_16_0 37973572#0_0" intLanes=":1780219353_1_0 :1780219353_2_0 :1780219353_3_0 :1780219353_4_0 :1780219353_5_0 :1780219353_6_0 :1780219353_10_0 :1780219353_11_0"/>
- <junction id=":1780219353_21_0" type="internal" x="898.41" y="1210.53" incLanes=":1780219353_17_0 -166576462#5_0 166576462#4_0 37973572#0_0 37973572#0_1" intLanes=":1780219353_0_0 :1780219353_5_0 :1780219353_6_0 :1780219353_11_0"/>
- <junction id=":1780219355_9_0" type="internal" x="791.65" y="1145.56" incLanes=":1780219355_5_0 -166576459_0 130443630#10_0" intLanes=":1780219355_1_0 :1780219355_6_0"/>
- <junction id=":1780219355_10_0" type="internal" x="792.93" y="1148.14" incLanes=":1780219355_7_0 -130443630#11_0" intLanes=":1780219355_1_0 :1780219355_2_0 :1780219355_3_0 :1780219355_4_0"/>
- <junction id=":1780219355_11_0" type="internal" x="790.63" y="1152.37" incLanes=":1780219355_8_0 -130443630#11_0 -166576459_0" intLanes=":1780219355_0_0 :1780219355_4_0"/>
- <junction id=":1903640411_2_0" type="internal" x="660.51" y="1135.42" incLanes=":1903640411_1_0 179917801_0" intLanes=":1903640411_0_0"/>
- <junction id=":1913728534_6_0" type="internal" x="1295.20" y="1299.45" incLanes=":1913728534_2_0 160587538#6_0 160587538#6_1" intLanes=":1913728534_3_0 :1913728534_4_0"/>
- <junction id=":1913728534_7_0" type="internal" x="1296.74" y="1302.37" incLanes=":1913728534_5_0 -160587538#7_0 -160587538#7_1" intLanes=":1913728534_0_0 :1913728534_1_0"/>
- <junction id=":2006433692_4_0" type="internal" x="1337.40" y="2032.66" incLanes=":2006433692_1_0 132323955_0" intLanes=":2006433692_2_0"/>
- <junction id=":2006433692_5_0" type="internal" x="1338.93" y="2035.58" incLanes=":2006433692_3_0 -190048065_0" intLanes=":2006433692_0_0"/>
- <junction id=":2016414185_9_0" type="internal" x="827.98" y="1634.74" incLanes=":2016414185_1_0 -108329425#2_0" intLanes=":2016414185_4_0 :2016414185_5_0 :2016414185_6_0 :2016414185_7_0"/>
- <junction id=":2016414185_10_0" type="internal" x="826.33" y="1635.14" incLanes=":2016414185_2_0 -108329425#2_0 -191056427#0_0" intLanes=":2016414185_3_0 :2016414185_7_0"/>
- <junction id=":2016414185_11_0" type="internal" x="826.84" y="1636.14" incLanes=":2016414185_8_0 -191056427#0_0 108329425#1_0" intLanes=":2016414185_0_0 :2016414185_4_0"/>
- <junction id=":2017759586_4_0" type="internal" x="859.54" y="1724.62" incLanes=":2017759586_1_0 -191176262_0" intLanes=":2017759586_2_0"/>
- <junction id=":2017759586_5_0" type="internal" x="857.51" y="1724.00" incLanes=":2017759586_3_0 191176261_0" intLanes=":2017759586_0_0"/>
- <junction id=":2017759588_9_0" type="internal" x="876.24" y="1728.45" incLanes=":2017759588_2_0 -191176268_0 -69931595#2_0" intLanes=":2017759588_3_0 :2017759588_7_0"/>
- <junction id=":2017759588_10_0" type="internal" x="873.78" y="1727.28" incLanes=":2017759588_4_0 69931595#1_0" intLanes=":2017759588_0_0 :2017759588_1_0 :2017759588_7_0 :2017759588_8_0"/>
- <junction id=":2017759588_11_0" type="internal" x="873.30" y="1722.76" incLanes=":2017759588_5_0 -191176268_0 69931595#1_0" intLanes=":2017759588_1_0 :2017759588_6_0"/>
- <junction id=":2017759592_4_0" type="internal" x="862.71" y="1730.56" incLanes=":2017759592_1_0 -191176261_0" intLanes=":2017759592_2_0"/>
- <junction id=":2017759592_5_0" type="internal" x="864.29" y="1733.09" incLanes=":2017759592_3_0 191176264_0" intLanes=":2017759592_0_0"/>
- <junction id=":2017759596_4_0" type="internal" x="870.20" y="1743.38" incLanes=":2017759596_1_0 191176263_0" intLanes=":2017759596_2_0"/>
- <junction id=":2017759596_5_0" type="internal" x="871.51" y="1745.99" incLanes=":2017759596_3_0 -191176267_0" intLanes=":2017759596_0_0"/>
- <junction id=":2081499948_16_0" type="internal" x="1153.05" y="1012.75" incLanes=":2081499948_6_0 197955309#4_0" intLanes=":2081499948_1_0 :2081499948_2_0 :2081499948_9_0 :2081499948_10_0 :2081499948_11_0 :2081499948_12_0 :2081499948_13_0"/>
- <junction id=":2081499948_17_0" type="internal" x="1158.29" y="1013.10" incLanes=":2081499948_7_0 -38319548#16_0 197955309#4_0 38319548#15_0" intLanes=":2081499948_2_0 :2081499948_8_0 :2081499948_13_0"/>
- <junction id=":2081499948_18_0" type="internal" x="1157.60" y="1015.34" incLanes=":2081499948_14_0 -197955309#5_0" intLanes=":2081499948_1_0 :2081499948_2_0 :2081499948_3_0 :2081499948_4_0 :2081499948_5_0 :2081499948_9_0 :2081499948_10_0"/>
- <junction id=":2081499948_19_0" type="internal" x="1156.96" y="1013.75" incLanes=":2081499948_15_0 -197955309#5_0 -38319548#16_0 38319548#15_0" intLanes=":2081499948_0_0 :2081499948_5_0 :2081499948_10_0"/>
- <junction id=":2081499950_18_0" type="internal" x="1148.17" y="1019.39" incLanes=":2081499950_4_0 -197955309#3_0 160587538#0_0 160587538#0_1 197955309#2_0" intLanes=":2081499950_5_0 :2081499950_10_0 :2081499950_11_0 :2081499950_16_0"/>
- <junction id=":2081499950_19_0" type="internal" x="1146.38" y="1017.79" incLanes=":2081499950_13_0 -160587538#1_0 -160587538#1_1 -197955309#3_0 197955309#2_0" intLanes=":2081499950_1_0 :2081499950_2_0 :2081499950_7_0 :2081499950_14_0"/>
- <junction id=":248913124_9_0" type="internal" x="1418.21" y="1927.34" incLanes=":248913124_2_0 -129780022#0_0 129780026#1_0" intLanes=":248913124_3_0 :248913124_6_0"/>
- <junction id=":248913124_10_0" type="internal" x="1415.63" y="1928.69" incLanes=":248913124_8_0 129780026#1_0 154409621_0" intLanes=":248913124_1_0 :248913124_5_0"/>
- <junction id=":248913131_9_0" type="internal" x="1336.74" y="1770.11" incLanes=":248913131_2_0 23066443#5_0 23066446#1_0" intLanes=":248913131_3_0 :248913131_6_0"/>
- <junction id=":248913131_10_0" type="internal" x="1335.94" y="1772.40" incLanes=":248913131_7_0 -23066446#2_0" intLanes=":248913131_0_0 :248913131_1_0 :248913131_4_0 :248913131_5_0"/>
- <junction id=":248913131_11_0" type="internal" x="1334.13" y="1771.50" incLanes=":248913131_8_0 -23066446#2_0 23066443#5_0" intLanes=":248913131_1_0 :248913131_5_0"/>
- <junction id=":248913133_9_0" type="internal" x="1407.27" y="1730.83" incLanes=":248913133_4_0 23066446#2_0" intLanes=":248913133_1_0 :248913133_2_0 :248913133_6_0 :248913133_7_0"/>
- <junction id=":248913133_10_0" type="internal" x="1409.06" y="1731.74" incLanes=":248913133_5_0 23066446#2_0 58770725#1_0" intLanes=":248913133_2_0 :248913133_7_0"/>
- <junction id=":248913133_11_0" type="internal" x="1406.45" y="1733.11" incLanes=":248913133_8_0 -23066446#3_0 58770725#1_0" intLanes=":248913133_0_0 :248913133_3_0"/>
- <junction id=":248913142_9_0" type="internal" x="1444.06" y="1801.94" incLanes=":248913142_4_0 -81096844#1_0" intLanes=":248913142_1_0 :248913142_2_0 :248913142_6_0 :248913142_7_0"/>
- <junction id=":248913142_10_0" type="internal" x="1445.88" y="1802.84" incLanes=":248913142_5_0 -81096844#1_0 58770725#0_0" intLanes=":248913142_2_0 :248913142_7_0"/>
- <junction id=":248913142_11_0" type="internal" x="1443.25" y="1804.25" incLanes=":248913142_8_0 58770725#0_0 81096844#0_0" intLanes=":248913142_0_0 :248913142_3_0"/>
- <junction id=":248913144_9_0" type="internal" x="1373.73" y="1841.43" incLanes=":248913144_2_0 -81096844#2_0 23066443#6_0" intLanes=":248913144_3_0 :248913144_6_0"/>
- <junction id=":248913144_10_0" type="internal" x="1372.91" y="1843.73" incLanes=":248913144_7_0 81096844#1_0" intLanes=":248913144_0_0 :248913144_1_0 :248913144_4_0 :248913144_5_0"/>
- <junction id=":248913144_11_0" type="internal" x="1371.09" y="1842.83" incLanes=":248913144_8_0 23066443#6_0 81096844#1_0" intLanes=":248913144_1_0 :248913144_5_0"/>
- <junction id=":248913200_4_0" type="internal" x="1291.67" y="1232.93" incLanes=":248913200_1_0 -23066462#0_0" intLanes=":248913200_2_0"/>
- <junction id=":248913200_5_0" type="internal" x="1292.47" y="1230.60" incLanes=":248913200_3_0 23066462#4_0" intLanes=":248913200_0_0"/>
- <junction id=":249404225_4_0" type="internal" x="1742.67" y="2818.38" incLanes=":249404225_1_0 122302035#0_0" intLanes=":249404225_2_0"/>
- <junction id=":249404225_5_0" type="internal" x="1742.67" y="2818.38" incLanes=":249404225_3_0 122302027#0_0" intLanes=":249404225_0_0"/>
- <junction id=":250683336_9_0" type="internal" x="1212.38" y="2373.32" incLanes=":250683336_1_0 23182358#0_0" intLanes=":250683336_3_0 :250683336_4_0 :250683336_7_0 :250683336_8_0"/>
- <junction id=":250683336_10_0" type="internal" x="1211.48" y="2375.15" incLanes=":250683336_2_0 23182358#0_0 23182387#0_0" intLanes=":250683336_4_0 :250683336_8_0"/>
- <junction id=":250683336_11_0" type="internal" x="1210.09" y="2372.52" incLanes=":250683336_5_0 -23182358#1_0 23182387#0_0" intLanes=":250683336_0_0 :250683336_6_0"/>
- <junction id=":250684983_4_0" type="internal" x="1312.32" y="2566.69" incLanes=":250684983_1_0 23182358#1_0" intLanes=":250684983_2_0"/>
- <junction id=":250684983_5_0" type="internal" x="1313.84" y="2569.61" incLanes=":250684983_3_0 -23182358#2_0" intLanes=":250684983_0_0"/>
- <junction id=":250685766_9_0" type="internal" x="1165.31" y="2286.67" incLanes=":250685766_2_0 -23182517#0_0 141190466#1_0" intLanes=":250685766_3_0 :250685766_6_0"/>
- <junction id=":250685766_10_0" type="internal" x="1165.96" y="2284.36" incLanes=":250685766_5_0 -23182358#0_0" intLanes=":250685766_1_0 :250685766_6_0 :250685766_7_0 :250685766_8_0"/>
- <junction id=":250685766_11_0" type="internal" x="1163.04" y="2285.90" incLanes=":250685766_7_0 -23182358#0_0" intLanes=":250685766_0_0 :250685766_1_0 :250685766_4_0 :250685766_5_0"/>
- <junction id=":250685766_12_0" type="internal" x="1163.95" y="2284.09" incLanes=":250685766_8_0 -23182358#0_0 141190466#1_0" intLanes=":250685766_1_0 :250685766_5_0"/>
- <junction id=":250685829_16_0" type="internal" x="1386.64" y="2165.88" incLanes=":250685829_10_0 -23182484#1_0" intLanes=":250685829_1_0 :250685829_2_0 :250685829_5_0 :250685829_6_0 :250685829_12_0 :250685829_13_0"/>
- <junction id=":250685829_17_0" type="internal" x="1392.13" y="2164.88" incLanes=":250685829_11_0 -23182484#1_0 130443635#2_0 38318373#1_0" intLanes=":250685829_2_0 :250685829_6_0 :250685829_13_0"/>
- <junction id=":250685829_18_0" type="internal" x="1389.98" y="2167.85" incLanes=":250685829_14_0 23182484#0_0" intLanes=":250685829_1_0 :250685829_2_0 :250685829_3_0 :250685829_5_0 :250685829_6_0 :250685829_7_0 :250685829_8_0 :250685829_9_0"/>
- <junction id=":250685829_19_0" type="internal" x="1385.73" y="2168.22" incLanes=":250685829_15_0 130443635#2_0 23182484#0_0 38318373#1_0" intLanes=":250685829_0_0 :250685829_4_0 :250685829_9_0"/>
- <junction id=":252417189_11_0" type="internal" x="1354.77" y="1629.61" incLanes=":252417189_5_0 110514869#0_0" intLanes=":252417189_1_0 :252417189_2_0 :252417189_7_0 :252417189_8_0 :252417189_9_0"/>
- <junction id=":252417189_12_0" type="internal" x="1358.23" y="1633.39" incLanes=":252417189_6_0 110514869#0_0 110514869#0_1 58770725#4_0" intLanes=":252417189_2_0 :252417189_8_0 :252417189_9_0"/>
- <junction id=":252417189_13_0" type="internal" x="1355.61" y="1634.75" incLanes=":252417189_10_0 -110514869#1_0 -110514869#1_1 58770725#4_0" intLanes=":252417189_0_0 :252417189_3_0 :252417189_4_0"/>
- <junction id=":252418937_9_0" type="internal" x="1083.44" y="2124.33" incLanes=":252418937_2_0 -23315111#0_0 139118804#2_0" intLanes=":252418937_3_0 :252418937_6_0"/>
- <junction id=":252418937_10_0" type="internal" x="1084.12" y="2121.90" incLanes=":252418937_5_0 23182517#4_0" intLanes=":252418937_1_0 :252418937_6_0 :252418937_7_0 :252418937_8_0"/>
- <junction id=":252418937_11_0" type="internal" x="1081.20" y="2123.45" incLanes=":252418937_7_0 23182517#4_0" intLanes=":252418937_0_0 :252418937_1_0 :252418937_4_0 :252418937_5_0"/>
- <junction id=":252418937_12_0" type="internal" x="1082.07" y="2121.50" incLanes=":252418937_8_0 139118804#2_0 23182517#4_0" intLanes=":252418937_1_0 :252418937_5_0"/>
- <junction id=":255227471_18_0" type="internal" x="1348.85" y="955.99" incLanes=":255227471_8_0 -149868584#2_0 -149868584#2_1 -23262356#0_0 -37772597#0_0" intLanes=":255227471_2_0 :255227471_9_0 :255227471_14_0 :255227471_15_0"/>
- <junction id=":255227471_19_0" type="internal" x="1341.06" y="960.37" incLanes=":255227471_17_0 -23262356#0_0 -37772597#0_0 149868584#1_0 149868584#1_1" intLanes=":255227471_0_0 :255227471_5_0 :255227471_6_0 :255227471_11_0"/>
- <junction id=":255227475_12_0" type="internal" x="1307.93" y="875.77" incLanes=":255227475_1_0 -23262356#3_0" intLanes=":255227475_4_0 :255227475_5_0 :255227475_6_0 :255227475_7_0 :255227475_10_0 :255227475_11_0"/>
- <junction id=":255227475_13_0" type="internal" x="1308.45" y="879.96" incLanes=":255227475_2_0 -149422199#0_0 -23262356#3_0 81124945_0" intLanes=":255227475_3_0 :255227475_7_0 :255227475_11_0"/>
- <junction id=":255227475_14_0" type="internal" x="1305.57" y="874.76" incLanes=":255227475_8_0 -149422199#0_0 23262356#2_0 81124945_0" intLanes=":255227475_0_0 :255227475_4_0 :255227475_9_0"/>
- <junction id=":255227480_36_0" type="internal" x="1359.63" y="845.52" incLanes=":255227480_17_0 -166728377#0_0 -23566901#1_0 149422199#0_0 166728377#2_0 23566901#0_0" intLanes=":255227480_2_0 :255227480_3_0 :255227480_8_0 :255227480_9_0 :255227480_22_0 :255227480_23_0 :255227480_24_0 :255227480_25_0 :255227480_31_0 :255227480_32_0"/>
- <junction id=":255227480_37_0" type="internal" x="1357.14" y="848.97" incLanes=":255227480_33_0 -149422199#1_0" intLanes=":255227480_1_0 :255227480_2_0 :255227480_3_0 :255227480_5_0 :255227480_6_0 :255227480_10_0 :255227480_11_0 :255227480_12_0 :255227480_13_0 :255227480_14_0 :255227480_18_0 :255227480_19_0 :255227480_20_0 :255227480_26_0 :255227480_27_0 :255227480_28_0"/>
- <junction id=":255227480_38_0" type="internal" x="1357.14" y="848.97" incLanes=":255227480_34_0 -149422199#1_0" intLanes=":255227480_1_0 :255227480_2_0 :255227480_3_0 :255227480_4_0 :255227480_5_0 :255227480_6_0 :255227480_11_0 :255227480_13_0 :255227480_14_0 :255227480_19_0 :255227480_20_0 :255227480_27_0 :255227480_28_0"/>
- <junction id=":255227480_39_0" type="internal" x="1350.28" y="851.22" incLanes=":255227480_35_0 -149422199#1_0 -166728377#0_0 -23566901#1_0 166728377#2_0 23566901#0_0" intLanes=":255227480_0_0 :255227480_6_0 :255227480_14_0 :255227480_20_0 :255227480_28_0"/>
- <junction id=":255227482_25_0" type="internal" x="1397.22" y="822.60" incLanes=":255227482_14_0 -149422210#0_0 -166728377#1_0 149422199#1_0 166728377#0_0" intLanes=":255227482_2_0 :255227482_7_0 :255227482_15_0 :255227482_20_0"/>
- <junction id=":255227482_26_0" type="internal" x="1396.32" y="825.08" incLanes=":255227482_16_0 -149422199#2_0" intLanes=":255227482_0_0 :255227482_1_0 :255227482_3_0 :255227482_4_0 :255227482_5_0 :255227482_6_0 :255227482_8_0 :255227482_9_0 :255227482_10_0 :255227482_11_0 :255227482_12_0 :255227482_13_0 :255227482_20_0 :255227482_21_0"/>
- <junction id=":255227482_27_0" type="internal" x="1396.32" y="825.08" incLanes=":255227482_17_0 -149422199#2_0" intLanes=":255227482_0_0 :255227482_1_0 :255227482_4_0 :255227482_5_0 :255227482_6_0 :255227482_8_0 :255227482_11_0 :255227482_12_0 :255227482_13_0 :255227482_20_0 :255227482_21_0 :255227482_22_0"/>
- <junction id=":255227482_28_0" type="internal" x="1391.90" y="825.84" incLanes=":255227482_19_0 -149422199#2_0 -149422210#0_0 -166728377#1_0 166728377#0_0" intLanes=":255227482_1_0 :255227482_6_0 :255227482_13_0 :255227482_20_0 :255227482_21_0 :255227482_22_0 :255227482_23_0 :255227482_24_0"/>
- <junction id=":255227483_18_0" type="internal" x="1440.13" y="904.19" incLanes=":255227483_8_0 -149868584#1_0 -149868584#1_1 -24573947#0_0 149422193#1_0" intLanes=":255227483_2_0 :255227483_9_0 :255227483_14_0 :255227483_15_0"/>
- <junction id=":255227483_19_0" type="internal" x="1434.55" y="907.35" incLanes=":255227483_17_0 -24573947#0_0 149422193#1_0 149868584#0_0 149868584#0_1" intLanes=":255227483_0_0 :255227483_5_0 :255227483_6_0 :255227483_11_0"/>
- <junction id=":267169634_16_0" type="internal" x="1478.13" y="984.93" incLanes=":267169634_3_0 -83051421#0_0 24573947#2_0 83051436#1_0" intLanes=":267169634_4_0 :267169634_9_0 :267169634_14_0"/>
- <junction id=":267169634_17_0" type="internal" x="1474.73" y="981.97" incLanes=":267169634_5_0 -24573947#3_0" intLanes=":267169634_0_0 :267169634_1_0 :267169634_2_0 :267169634_9_0 :267169634_10_0 :267169634_14_0 :267169634_15_0"/>
- <junction id=":267169634_18_0" type="internal" x="1473.85" y="980.23" incLanes=":267169634_6_0 -24573947#3_0" intLanes=":267169634_1_0 :267169634_2_0 :267169634_9_0 :267169634_10_0 :267169634_11_0 :267169634_12_0 :267169634_13_0"/>
- <junction id=":267169634_19_0" type="internal" x="1474.06" y="977.02" incLanes=":267169634_7_0 -24573947#3_0 -83051421#0_0 83051436#1_0" intLanes=":267169634_2_0 :267169634_8_0 :267169634_13_0"/>
- <junction id=":267169690_16_0" type="internal" x="1387.20" y="1038.30" incLanes=":267169690_2_0 37772597#2_0" intLanes=":267169690_5_0 :267169690_6_0 :267169690_7_0 :267169690_8_0 :267169690_9_0 :267169690_13_0 :267169690_14_0"/>
- <junction id=":267169690_17_0" type="internal" x="1387.85" y="1042.89" incLanes=":267169690_3_0 -83051436#1_0 37772597#2_0 83051436#0_0" intLanes=":267169690_4_0 :267169690_9_0 :267169690_14_0"/>
- <junction id=":267169690_18_0" type="internal" x="1385.41" y="1041.88" incLanes=":267169690_10_0 -24573939#0_0" intLanes=":267169690_0_0 :267169690_1_0 :267169690_5_0 :267169690_6_0 :267169690_13_0 :267169690_14_0 :267169690_15_0"/>
- <junction id=":267169690_19_0" type="internal" x="1384.66" y="1037.17" incLanes=":267169690_11_0 -24573939#0_0 -83051436#1_0 83051436#0_0" intLanes=":267169690_1_0 :267169690_6_0 :267169690_12_0"/>
- <junction id=":267169714_16_0" type="internal" x="1516.83" y="1061.75" incLanes=":267169714_6_0 -37640549#1_0" intLanes=":267169714_1_0 :267169714_2_0 :267169714_9_0 :267169714_10_0 :267169714_11_0 :267169714_12_0 :267169714_13_0"/>
- <junction id=":267169714_17_0" type="internal" x="1521.31" y="1061.22" incLanes=":267169714_7_0 -24573947#4_0 -37640549#1_0 24573947#3_0" intLanes=":267169714_2_0 :267169714_8_0 :267169714_13_0"/>
- <junction id=":267169714_18_0" type="internal" x="1520.17" y="1063.70" incLanes=":267169714_14_0 37640549#0_0" intLanes=":267169714_1_0 :267169714_2_0 :267169714_3_0 :267169714_4_0 :267169714_5_0 :267169714_9_0 :267169714_10_0"/>
- <junction id=":267169714_19_0" type="internal" x="1515.75" y="1064.21" incLanes=":267169714_15_0 -24573947#4_0 24573947#3_0 37640549#0_0" intLanes=":267169714_0_0 :267169714_5_0 :267169714_10_0"/>
- <junction id=":267169964_4_0" type="internal" x="1230.00" y="1127.39" incLanes=":267169964_1_0 101272435#0_0" intLanes=":267169964_2_0"/>
- <junction id=":30406565_4_0" type="internal" x="688.47" y="1856.55" incLanes=":30406565_1_0 -37973566_0" intLanes=":30406565_2_0"/>
- <junction id=":30406565_5_0" type="internal" x="688.45" y="1858.97" incLanes=":30406565_3_0 130443629#8_0" intLanes=":30406565_0_0"/>
- <junction id=":30406599_18_0" type="internal" x="779.26" y="1278.54" incLanes=":30406599_4_0 -130443630#7_0 -37973572#2_0 -37973572#2_1 130443630#6_0" intLanes=":30406599_5_0 :30406599_10_0 :30406599_11_0 :30406599_16_0"/>
- <junction id=":30406599_19_0" type="internal" x="773.22" y="1280.10" incLanes=":30406599_7_0 130443630#6_0" intLanes=":30406599_1_0 :30406599_2_0 :30406599_3_0 :30406599_10_0 :30406599_11_0 :30406599_12_0 :30406599_13_0 :30406599_14_0 :30406599_15_0"/>
- <junction id=":30406599_20_0" type="internal" x="774.68" y="1281.98" incLanes=":30406599_8_0 -37973572#2_0 130443630#6_0 37973572#1_1" intLanes=":30406599_3_0 :30406599_9_0 :30406599_15_0"/>
- <junction id=":30406599_21_0" type="internal" x="764.32" y="1287.20" incLanes=":30406599_13_0 -130443630#7_0 130443630#6_0 37973572#1_0 37973572#1_1" intLanes=":30406599_1_0 :30406599_2_0 :30406599_7_0 :30406599_14_0"/>
- <junction id=":30406599_22_0" type="internal" x="770.07" y="1285.74" incLanes=":30406599_16_0 -130443630#7_0" intLanes=":30406599_1_0 :30406599_2_0 :30406599_3_0 :30406599_4_0 :30406599_5_0 :30406599_6_0 :30406599_10_0 :30406599_11_0 :30406599_12_0"/>
- <junction id=":30406599_23_0" type="internal" x="769.21" y="1283.35" incLanes=":30406599_17_0 -130443630#7_0 -37973572#2_1 37973572#1_0" intLanes=":30406599_0_0 :30406599_6_0 :30406599_12_0"/>
- <junction id=":314636763_16_0" type="internal" x="1398.77" y="2171.18" incLanes=":314636763_7_0 -38318373#1_0 122394864#1_0 38318373#0_0" intLanes=":314636763_2_0 :314636763_8_0 :314636763_13_0"/>
- <junction id=":314636763_17_0" type="internal" x="1397.89" y="2173.48" incLanes=":314636763_14_0 -122394864#2_0" intLanes=":314636763_1_0 :314636763_2_0 :314636763_3_0 :314636763_4_0 :314636763_5_0 :314636763_9_0 :314636763_10_0"/>
- <junction id=":314636763_18_0" type="internal" x="1395.09" y="2173.08" incLanes=":314636763_15_0 -122394864#2_0 -38318373#1_0 38318373#0_0" intLanes=":314636763_0_0 :314636763_5_0 :314636763_10_0"/>
- <junction id=":320879142_6_0" type="internal" x="1319.66" y="1998.70" incLanes=":320879142_2_0 81523343_0" intLanes=":320879142_3_0"/>
- <junction id=":410296508_11_0" type="internal" x="677.17" y="1338.07" incLanes=":410296508_3_0 -34962531#0_0 -37973572#4_0 -37973572#4_1" intLanes=":410296508_4_0 :410296508_8_0 :410296508_9_0"/>
- <junction id=":410296508_12_0" type="internal" x="671.71" y="1341.21" incLanes=":410296508_10_0 -34962531#0_0 37973572#3_0 37973572#3_1" intLanes=":410296508_0_0 :410296508_1_0 :410296508_5_0"/>
- <junction id=":427996791_16_0" type="internal" x="1076.23" y="2108.98" incLanes=":427996791_3_0 -129780022#5_0 -23315111#2_0 129780022#4_0" intLanes=":427996791_4_0 :427996791_9_0 :427996791_14_0"/>
- <junction id=":427996791_17_0" type="internal" x="1076.24" y="2110.58" incLanes=":427996791_7_0 -129780022#5_0 -23315111#2_0 23315111#1_0" intLanes=":427996791_2_0 :427996791_8_0 :427996791_13_0"/>
- <junction id=":427996791_18_0" type="internal" x="1075.26" y="2111.61" incLanes=":427996791_10_0 23315111#1_0" intLanes=":427996791_0_0 :427996791_1_0 :427996791_5_0 :427996791_6_0 :427996791_13_0 :427996791_14_0 :427996791_15_0"/>
- <junction id=":427996791_19_0" type="internal" x="1077.71" y="2109.30" incLanes=":427996791_11_0 -129780022#5_0 129780022#4_0 23315111#1_0" intLanes=":427996791_1_0 :427996791_6_0 :427996791_12_0"/>
- <junction id=":427996791_20_0" type="internal" x="1073.54" y="2110.93" incLanes=":427996791_15_0 -23315111#2_0 129780022#4_0 23315111#1_0" intLanes=":427996791_0_0 :427996791_5_0 :427996791_10_0"/>
- <junction id=":427996792_25_0" type="internal" x="1068.31" y="2095.22" incLanes=":427996792_1_0 -108329426#1_0" intLanes=":427996792_5_0 :427996792_6_0 :427996792_12_0 :427996792_13_0 :427996792_15_0 :427996792_16_0 :427996792_17_0 :427996792_18_0 :427996792_21_0 :427996792_22_0 :427996792_23_0 :427996792_24_0"/>
- <junction id=":427996792_26_0" type="internal" x="1068.09" y="2094.88" incLanes=":427996792_2_0 -108329426#1_0" intLanes=":427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_12_0 :427996792_13_0 :427996792_14_0 :427996792_16_0 :427996792_17_0 :427996792_18_0 :427996792_22_0 :427996792_23_0 :427996792_24_0"/>
- <junction id=":427996792_27_0" type="internal" x="1067.57" y="2094.16" incLanes=":427996792_3_0 -108329426#1_0" intLanes=":427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_9_0 :427996792_10_0 :427996792_11_0 :427996792_17_0 :427996792_18_0 :427996792_23_0 :427996792_24_0"/>
- <junction id=":427996792_28_0" type="internal" x="1069.12" y="2093.74" incLanes=":427996792_4_0 -108329426#1_0 -108329427#0_0 108329426#0_0 44641744#0_0" intLanes=":427996792_8_0 :427996792_11_0 :427996792_18_0 :427996792_24_0"/>
- <junction id=":427996792_29_0" type="internal" x="1068.76" y="2095.26" incLanes=":427996792_6_0 -108329426#1_0" intLanes=":427996792_1_0 :427996792_2_0 :427996792_3_0 :427996792_11_0 :427996792_12_0 :427996792_13_0 :427996792_15_0 :427996792_16_0 :427996792_17_0 :427996792_21_0 :427996792_22_0 :427996792_23_0"/>
- <junction id=":427996792_30_0" type="internal" x="1068.40" y="2094.96" incLanes=":427996792_7_0 -108329426#1_0" intLanes=":427996792_2_0 :427996792_3_0 :427996792_11_0 :427996792_12_0 :427996792_13_0 :427996792_14_0 :427996792_16_0 :427996792_17_0 :427996792_22_0 :427996792_23_0"/>
- <junction id=":427996792_31_0" type="internal" x="1069.37" y="2093.98" incLanes=":427996792_9_0 -108329426#1_0 108329426#0_0 23315111#3_0 44641744#0_0" intLanes=":427996792_3_0 :427996792_10_0 :427996792_17_0 :427996792_23_0"/>
- <junction id=":427996792_32_0" type="internal" x="1069.58" y="2093.69" incLanes=":427996792_13_0 -108329426#1_0" intLanes=":427996792_1_0 :427996792_2_0 :427996792_6_0 :427996792_7_0 :427996792_15_0 :427996792_16_0 :427996792_21_0 :427996792_22_0"/>
- <junction id=":427996792_33_0" type="internal" x="1071.71" y="2094.38" incLanes=":427996792_14_0 -108329426#1_0 -108329427#0_0 23315111#3_0 44641744#0_0" intLanes=":427996792_2_0 :427996792_7_0 :427996792_16_0 :427996792_22_0"/>
- <junction id=":427996792_34_0" type="internal" x="1069.45" y="2094.43" incLanes=":427996792_19_0 -108329427#0_0 108329426#0_0 23315111#3_0 44641744#0_0" intLanes=":427996792_0_0 :427996792_5_0 :427996792_12_0 :427996792_20_0"/>
- <junction id=":427996792_35_0" type="internal" x="1067.57" y="2094.30" incLanes=":427996792_22_0" intLanes=":427996792_0_0 :427996792_1_0 :427996792_2_0 :427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_12_0 :427996792_13_0 :427996792_14_0 :427996792_16_0 :427996792_17_0 :427996792_18_0"/>
- <junction id=":427996792_36_0" type="internal" x="1067.51" y="2094.18" incLanes=":427996792_23_0 108329426#0_0" intLanes=":427996792_0_0 :427996792_1_0 :427996792_2_0 :427996792_3_0 :427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_9_0 :427996792_10_0 :427996792_11_0 :427996792_17_0 :427996792_18_0"/>
- <junction id=":427996792_37_0" type="internal" x="1067.51" y="2094.17" incLanes=":427996792_24_0 108329426#0_0" intLanes=":427996792_0_0 :427996792_1_0 :427996792_2_0 :427996792_3_0 :427996792_4_0 :427996792_8_0 :427996792_11_0 :427996792_18_0"/>
- <junction id=":428303370_9_0" type="internal" x="743.04" y="2242.01" incLanes=":428303370_1_0 -130443629#5_0" intLanes=":428303370_3_0 :428303370_4_0 :428303370_7_0 :428303370_8_0"/>
- <junction id=":428303370_10_0" type="internal" x="741.74" y="2245.49" incLanes=":428303370_2_0 -130443629#5_0 134572336#2_1" intLanes=":428303370_4_0 :428303370_8_0"/>
- <junction id=":428303370_11_0" type="internal" x="739.98" y="2229.74" incLanes=":428303370_5_0 130443629#4_0 134572336#2_0" intLanes=":428303370_0_0 :428303370_6_0"/>
- <junction id=":429179805_6_0" type="internal" x="759.09" y="1503.88" incLanes=":429179805_2_0 -108329425#5_0" intLanes=":429179805_3_0"/>
- <junction id=":429179805_7_0" type="internal" x="755.36" y="1500.53" incLanes=":429179805_4_0 108329425#4_0" intLanes=":429179805_0_0 :429179805_1_0"/>
- <junction id=":429179805_8_0" type="internal" x="756.13" y="1497.79" incLanes=":429179805_5_0 108329425#4_0" intLanes=":429179805_1_0"/>
- <junction id=":435668534_9_0" type="internal" x="1299.04" y="1990.86" incLanes=":435668534_5_0 -129780022#3_0 144874012#0_0" intLanes=":435668534_2_0 :435668534_7_0"/>
- <junction id=":435668534_10_0" type="internal" x="1296.35" y="1992.32" incLanes=":435668534_8_0 129780022#2_0 144874012#0_0" intLanes=":435668534_0_0 :435668534_3_0"/>
- <junction id=":435668539_11_0" type="internal" x="764.94" y="2273.29" incLanes=":435668539_2_0 133868186_0 37973565#6_0" intLanes=":435668539_3_0 :435668539_7_0"/>
- <junction id=":438042367_11_0" type="internal" x="914.66" y="1206.05" incLanes=":438042367_3_0 -37973572#0_1" intLanes=":438042367_4_0 :438042367_5_0 :438042367_6_0 :438042367_9_0"/>
- <junction id=":438042367_12_0" type="internal" x="911.57" y="1197.78" incLanes=":438042367_5_0 -37973572#0_0 -37973572#0_1" intLanes=":438042367_1_0 :438042367_2_0 :438042367_3_0 :438042367_7_0 :438042367_8_0 :438042367_9_0"/>
- <junction id=":438042367_13_0" type="internal" x="914.89" y="1201.12" incLanes=":438042367_6_0 -37973572#0_1 133960539#4_1" intLanes=":438042367_3_0 :438042367_9_0"/>
- <junction id=":438042367_14_0" type="internal" x="907.09" y="1205.58" incLanes=":438042367_10_0 133960539#4_0 149868584#8_0" intLanes=":438042367_0_0 :438042367_4_0"/>
- <junction id=":438042369_11_0" type="internal" x="927.44" y="1193.97" incLanes=":438042369_3_0 -149868584#8_0 154500693#3_0" intLanes=":438042369_4_0 :438042369_8_0"/>
- <junction id=":438042369_12_0" type="internal" x="917.90" y="1194.14" incLanes=":438042369_7_0" intLanes=":438042369_2_0 :438042369_8_0 :438042369_9_0 :438042369_10_0"/>
- <junction id=":438042369_13_0" type="internal" x="919.16" y="1198.69" incLanes=":438042369_10_0 149868584#7_1 154500693#3_2" intLanes=":438042369_2_0 :438042369_7_0"/>
- <junction id=":438042379_4_0" type="internal" x="1123.68" y="1657.06" incLanes=":438042379_3_0 81672207#0_0" intLanes=":438042379_0_0"/>
- <junction id=":441266854_4_0" type="internal" x="1799.49" y="1403.04" incLanes=":441266854_1_0 154844500#2_0" intLanes=":441266854_2_0"/>
- <junction id=":441266854_5_0" type="internal" x="1802.41" y="1401.51" incLanes=":441266854_3_0 -154844500#3_0" intLanes=":441266854_0_0"/>
- <junction id=":441266880_9_0" type="internal" x="1464.10" y="1578.12" incLanes=":441266880_2_0 101272435#4_0 154844500#0_0" intLanes=":441266880_3_0 :441266880_6_0"/>
- <junction id=":441266880_10_0" type="internal" x="1464.54" y="1576.02" incLanes=":441266880_5_0 -154844500#1_0" intLanes=":441266880_1_0 :441266880_6_0 :441266880_7_0 :441266880_8_0"/>
- <junction id=":441266880_11_0" type="internal" x="1466.08" y="1578.94" incLanes=":441266880_7_0 -154844500#1_0" intLanes=":441266880_0_0 :441266880_1_0 :441266880_4_0 :441266880_5_0"/>
- <junction id=":441266880_12_0" type="internal" x="1464.26" y="1578.03" incLanes=":441266880_8_0 -154844500#1_0 101272435#4_0" intLanes=":441266880_1_0 :441266880_5_0"/>
- <junction id=":443089063_11_0" type="internal" x="1430.02" y="1601.49" incLanes=":443089063_2_0 110514869#1_0 110514869#1_1" intLanes=":443089063_3_0 :443089063_4_0 :443089063_5_0 :443089063_6_0 :443089063_8_0 :443089063_9_0"/>
- <junction id=":443089063_12_0" type="internal" x="1427.21" y="1595.51" incLanes=":443089063_5_0 110514869#1_0 110514869#1_1" intLanes=":443089063_1_0 :443089063_2_0 :443089063_7_0 :443089063_8_0 :443089063_9_0"/>
- <junction id=":443089063_13_0" type="internal" x="1428.94" y="1596.47" incLanes=":443089063_6_0 110514869#1_0 110514869#1_1 37771900#5_0" intLanes=":443089063_2_0 :443089063_8_0 :443089063_9_0"/>
- <junction id=":443089063_14_0" type="internal" x="1426.16" y="1597.92" incLanes=":443089063_10_0 -110514869#2_0 -110514869#2_1 37771900#5_0" intLanes=":443089063_0_0 :443089063_3_0 :443089063_4_0"/>
- <junction id=":443101905_9_0" type="internal" x="1446.41" y="922.09" incLanes=":443101905_2_0 24573947#1_0 37772595#0_0" intLanes=":443101905_3_0 :443101905_6_0"/>
- <junction id=":443101905_10_0" type="internal" x="1444.06" y="921.27" incLanes=":443101905_7_0 -24573947#2_0" intLanes=":443101905_0_0 :443101905_1_0 :443101905_4_0 :443101905_5_0"/>
- <junction id=":443101905_11_0" type="internal" x="1444.96" y="919.38" incLanes=":443101905_8_0 -24573947#2_0 37772595#0_0" intLanes=":443101905_1_0 :443101905_5_0"/>
- <junction id=":443101906_9_0" type="internal" x="1350.85" y="975.37" incLanes=":443101906_2_0 37772595#1_0 37772597#1_0" intLanes=":443101906_3_0 :443101906_6_0"/>
- <junction id=":443101906_10_0" type="internal" x="1348.83" y="974.45" incLanes=":443101906_7_0 -37772597#2_0" intLanes=":443101906_0_0 :443101906_1_0 :443101906_4_0 :443101906_5_0"/>
- <junction id=":443101906_11_0" type="internal" x="1349.70" y="972.72" incLanes=":443101906_8_0 -37772597#2_0 37772595#1_0" intLanes=":443101906_1_0 :443101906_5_0"/>
- <junction id=":443101920_9_0" type="internal" x="1341.33" y="942.27" incLanes=":443101920_1_0 -23262356#2_0" intLanes=":443101920_3_0 :443101920_4_0 :443101920_7_0 :443101920_8_0"/>
- <junction id=":443101920_10_0" type="internal" x="1339.79" y="942.39" incLanes=":443101920_2_0 -23262356#2_0 101272426#0_0" intLanes=":443101920_4_0 :443101920_8_0"/>
- <junction id=":443101920_11_0" type="internal" x="1339.25" y="941.51" incLanes=":443101920_5_0 101272426#0_0 23262356#1_0" intLanes=":443101920_0_0 :443101920_6_0"/>
- <junction id=":443101921_9_0" type="internal" x="1430.34" y="892.66" incLanes=":443101921_1_0" intLanes=":443101921_3_0 :443101921_4_0 :443101921_7_0 :443101921_8_0"/>
- <junction id=":443101921_10_0" type="internal" x="1429.58" y="892.90" incLanes=":443101921_2_0 101272426#1_0 149422210#1_0" intLanes=":443101921_4_0 :443101921_8_0"/>
- <junction id=":444026884_11_0" type="internal" x="761.23" y="1289.01" incLanes=":444026884_3_0 -37973572#3_0 -37973572#3_1 81394192#12_0" intLanes=":444026884_5_0 :444026884_6_0 :444026884_10_0"/>
- <junction id=":444026884_12_0" type="internal" x="747.82" y="1296.86" incLanes=":444026884_7_0 37973572#2_0 37973572#2_1 81394192#12_0" intLanes=":444026884_0_0 :444026884_1_0 :444026884_8_0"/>
- <junction id=":444026884_13_0" type="internal" x="754.87" y="1294.66" incLanes=":444026884_10_0 37973572#2_0 37973572#2_1" intLanes=":444026884_0_0 :444026884_1_0 :444026884_2_0 :444026884_3_0 :444026884_5_0 :444026884_6_0"/>
- <junction id=":444026889_6_0" type="internal" x="801.33" y="1081.28" incLanes=":444026889_1_0 130443630#11_0 37973571#1_0" intLanes=":444026889_2_0 :444026889_4_0"/>
- <junction id=":444026889_7_0" type="internal" x="800.80" y="1084.75" incLanes=":444026889_5_0 -179692877#0_0 37973571#1_0" intLanes=":444026889_0_0 :444026889_3_0"/>
- <junction id=":445506216_6_0" type="internal" x="977.52" y="1922.58" incLanes=":445506216_2_0 -69931595#0_0" intLanes=":445506216_3_0"/>
- <junction id=":445506216_7_0" type="internal" x="975.26" y="1921.82" incLanes=":445506216_4_0 108329426#2_0" intLanes=":445506216_0_0 :445506216_1_0"/>
- <junction id=":445506216_8_0" type="internal" x="976.17" y="1920.05" incLanes=":445506216_5_0 108329426#2_0" intLanes=":445506216_1_0"/>
- <junction id=":445506220_9_0" type="internal" x="742.98" y="1481.43" incLanes=":445506220_5_0 108329425#5_0 130443630#0_0" intLanes=":445506220_1_0 :445506220_6_0"/>
- <junction id=":445506220_10_0" type="internal" x="744.20" y="1484.45" incLanes=":445506220_7_0 -130443630#1_0" intLanes=":445506220_1_0 :445506220_2_0 :445506220_3_0 :445506220_4_0"/>
- <junction id=":445506220_11_0" type="internal" x="741.78" y="1489.51" incLanes=":445506220_8_0 -130443630#1_0 108329425#5_0" intLanes=":445506220_0_0 :445506220_4_0"/>
- <junction id=":445506221_6_0" type="internal" x="715.97" y="2061.15" incLanes=":445506221_1_0 -130443629#6_0 37942668#2_0" intLanes=":445506221_2_0 :445506221_4_0"/>
- <junction id=":445506221_7_0" type="internal" x="715.55" y="2058.09" incLanes=":445506221_5_0 130443629#5_0 37942668#2_0" intLanes=":445506221_0_0 :445506221_3_0"/>
- <junction id=":446017738_9_0" type="internal" x="670.03" y="1325.28" incLanes=":446017738_1_0 -160584984_0" intLanes=":446017738_3_0 :446017738_4_0 :446017738_7_0 :446017738_8_0"/>
- <junction id=":446017738_10_0" type="internal" x="667.99" y="1328.05" incLanes=":446017738_2_0 -160584984_0 37973568#1_0" intLanes=":446017738_4_0 :446017738_8_0"/>
- <junction id=":446017738_11_0" type="internal" x="667.92" y="1322.17" incLanes=":446017738_5_0 34962531#1_0 37973568#1_0" intLanes=":446017738_0_0 :446017738_6_0"/>
- <junction id=":446017741_9_0" type="internal" x="774.74" y="1257.90" incLanes=":446017741_2_0 130443630#8_0 37973568#3_0" intLanes=":446017741_3_0 :446017741_6_0"/>
- <junction id=":446017741_10_0" type="internal" x="772.29" y="1263.75" incLanes=":446017741_5_0 -130443630#9_0" intLanes=":446017741_1_0 :446017741_6_0 :446017741_7_0 :446017741_8_0"/>
- <junction id=":446017741_11_0" type="internal" x="775.94" y="1261.40" incLanes=":446017741_7_0 -130443630#9_0" intLanes=":446017741_0_0 :446017741_1_0 :446017741_4_0 :446017741_5_0"/>
- <junction id=":446017741_12_0" type="internal" x="773.94" y="1263.55" incLanes=":446017741_8_0 -130443630#9_0 37973568#3_0" intLanes=":446017741_1_0 :446017741_5_0"/>
- <junction id=":446017743_7_0" type="internal" x="913.61" y="1184.71" incLanes=":446017743_5_0 154500693#2_0 154500693#2_1 154500693#2_2" intLanes=":446017743_1_0 :446017743_2_0 :446017743_3_0"/>
- <junction id=":446017744_9_0" type="internal" x="771.06" y="1301.35" incLanes=":446017744_2_0 130443630#4_0" intLanes=":446017744_3_0 :446017744_4_0 :446017744_5_0 :446017744_7_0"/>
- <junction id=":446017744_10_0" type="internal" x="767.39" y="1303.74" incLanes=":446017744_4_0 130443630#4_0" intLanes=":446017744_1_0 :446017744_2_0 :446017744_6_0 :446017744_7_0"/>
- <junction id=":446017744_11_0" type="internal" x="769.42" y="1301.28" incLanes=":446017744_5_0 130443630#4_0 37973569#5_0" intLanes=":446017744_2_0 :446017744_7_0"/>
- <junction id=":446017744_12_0" type="internal" x="768.54" y="1307.35" incLanes=":446017744_8_0 -130443630#5_0 37973569#5_0" intLanes=":446017744_0_0 :446017744_3_0"/>
- <junction id=":446766149_9_0" type="internal" x="676.33" y="1871.74" incLanes=":446766149_4_0 38027102#2_0" intLanes=":446766149_1_0 :446766149_2_0 :446766149_6_0 :446766149_7_0"/>
- <junction id=":446766149_10_0" type="internal" x="677.75" y="1872.49" incLanes=":446766149_5_0 38027102#2_0 81394192#2_0" intLanes=":446766149_2_0 :446766149_7_0"/>
- <junction id=":446766149_11_0" type="internal" x="673.36" y="1873.94" incLanes=":446766149_8_0 -59159262#0_0 81394192#2_0" intLanes=":446766149_0_0 :446766149_3_0"/>
- <junction id=":446770959_4_0" type="internal" x="695.71" y="1684.70" incLanes=":446770959_1_0 81394192#5_0" intLanes=":446770959_2_0"/>
- <junction id=":450564003_9_0" type="internal" x="1161.82" y="2276.48" incLanes=":450564003_1_0 -23182517#1_0" intLanes=":450564003_3_0 :450564003_4_0 :450564003_7_0 :450564003_8_0"/>
- <junction id=":450564003_10_0" type="internal" x="1160.89" y="2278.29" incLanes=":450564003_2_0 -23182517#1_0 38230510#1_0" intLanes=":450564003_4_0 :450564003_8_0"/>
- <junction id=":450564003_11_0" type="internal" x="1159.53" y="2275.69" incLanes=":450564003_5_0 23182517#0_0 38230510#1_0" intLanes=":450564003_0_0 :450564003_6_0"/>
- <junction id=":450564003_12_0" type="internal" x="1158.90" y="2278.02" incLanes=":450564003_8_0 23182517#0_0" intLanes=":450564003_0_0 :450564003_1_0 :450564003_2_0 :450564003_4_0"/>
- <junction id=":450564005_4_0" type="internal" x="1398.08" y="2148.81" incLanes=":450564005_1_0 139118806_0" intLanes=":450564005_2_0"/>
- <junction id=":450564006_4_0" type="internal" x="1402.79" y="2159.17" incLanes=":450564006_2_0 129780019#0_0" intLanes=":450564006_0_0 :450564006_1_0"/>
- <junction id=":450564006_5_0" type="internal" x="1402.19" y="2159.66" incLanes=":450564006_3_0 129780019#0_0" intLanes=":450564006_1_0"/>
- <junction id=":452425487_16_0" type="internal" x="1314.28" y="1871.34" incLanes=":452425487_6_0 -81096844#3_0" intLanes=":452425487_1_0 :452425487_2_0 :452425487_9_0 :452425487_10_0 :452425487_11_0 :452425487_12_0 :452425487_13_0"/>
- <junction id=":452425487_17_0" type="internal" x="1318.73" y="1870.83" incLanes=":452425487_7_0 -38319546#6_0 -81096844#3_0 38319546#5_0" intLanes=":452425487_2_0 :452425487_8_0 :452425487_13_0"/>
- <junction id=":452425487_18_0" type="internal" x="1317.62" y="1873.30" incLanes=":452425487_14_0 81096844#2_0" intLanes=":452425487_1_0 :452425487_2_0 :452425487_3_0 :452425487_4_0 :452425487_5_0 :452425487_9_0 :452425487_10_0"/>
- <junction id=":452425487_19_0" type="internal" x="1313.16" y="1873.81" incLanes=":452425487_15_0 -38319546#6_0 38319546#5_0 81096844#2_0" intLanes=":452425487_0_0 :452425487_5_0 :452425487_10_0"/>
- <junction id=":452425488_16_0" type="internal" x="1277.30" y="1799.74" incLanes=":452425488_6_0 23066446#0_0" intLanes=":452425488_1_0 :452425488_2_0 :452425488_9_0 :452425488_10_0 :452425488_11_0 :452425488_12_0 :452425488_13_0"/>
- <junction id=":452425488_17_0" type="internal" x="1281.79" y="1799.27" incLanes=":452425488_7_0 -38319546#7_0 23066446#0_0 38319546#6_0" intLanes=":452425488_2_0 :452425488_8_0 :452425488_13_0"/>
- <junction id=":452425488_18_0" type="internal" x="1280.71" y="1801.68" incLanes=":452425488_14_0 -23066446#1_0" intLanes=":452425488_1_0 :452425488_2_0 :452425488_3_0 :452425488_4_0 :452425488_5_0 :452425488_9_0 :452425488_10_0"/>
- <junction id=":452425488_19_0" type="internal" x="1276.26" y="1802.16" incLanes=":452425488_15_0 -23066446#1_0 -38319546#7_0 38319546#6_0" intLanes=":452425488_0_0 :452425488_5_0 :452425488_10_0"/>
- <junction id=":452425489_4_0" type="internal" x="1246.82" y="1737.39" incLanes=":452425489_1_0 -38319547_0" intLanes=":452425489_2_0"/>
- <junction id=":452425489_5_0" type="internal" x="1246.87" y="1738.19" incLanes=":452425489_3_0 38319546#8_0" intLanes=":452425489_0_0"/>
- <junction id=":452425499_4_0" type="internal" x="1206.77" y="1665.85" incLanes=":452425499_1_0 -38319550#0_0" intLanes=":452425499_2_0"/>
- <junction id=":452425499_5_0" type="internal" x="1206.92" y="1665.97" incLanes=":452425499_3_0 38319549#2_0" intLanes=":452425499_0_0"/>
- <junction id=":452425502_9_0" type="internal" x="954.64" y="1200.10" incLanes=":452425502_2_0 -38319550#4_0 101272429#1_0" intLanes=":452425502_3_0 :452425502_6_0"/>
- <junction id=":452425502_10_0" type="internal" x="955.21" y="1197.63" incLanes=":452425502_5_0" intLanes=":452425502_1_0 :452425502_6_0 :452425502_7_0 :452425502_8_0"/>
- <junction id=":452425502_11_0" type="internal" x="952.35" y="1199.27" incLanes=":452425502_7_0 38319550#3_0" intLanes=":452425502_0_0 :452425502_1_0 :452425502_4_0 :452425502_5_0"/>
- <junction id=":452425502_12_0" type="internal" x="953.20" y="1197.33" incLanes=":452425502_8_0 101272429#1_0 38319550#3_0" intLanes=":452425502_1_0 :452425502_5_0"/>
- <junction id=":477486714_9_0" type="internal" x="671.68" y="2228.38" incLanes=":477486714_1_0 107066313#5_0" intLanes=":477486714_3_0 :477486714_4_0 :477486714_7_0 :477486714_8_0"/>
- <junction id=":477486714_10_0" type="internal" x="665.15" y="2223.08" incLanes=":477486714_5_0 134572336#0_0 81394188#4_0" intLanes=":477486714_0_0 :477486714_6_0"/>
- <junction id=":477486717_16_0" type="internal" x="505.26" y="1969.73" incLanes=":477486717_2_0 107066313#2_0" intLanes=":477486717_5_0 :477486717_6_0 :477486717_7_0 :477486717_8_0 :477486717_9_0 :477486717_13_0 :477486717_14_0"/>
- <junction id=":477486717_17_0" type="internal" x="506.12" y="1974.13" incLanes=":477486717_3_0 -38027102#1_0 107066313#2_0 38027102#0_0" intLanes=":477486717_4_0 :477486717_9_0 :477486717_14_0"/>
- <junction id=":477486717_18_0" type="internal" x="503.46" y="1973.03" incLanes=":477486717_10_0 -107066313#3_0" intLanes=":477486717_0_0 :477486717_1_0 :477486717_5_0 :477486717_6_0 :477486717_13_0 :477486717_14_0 :477486717_15_0"/>
- <junction id=":477486717_19_0" type="internal" x="502.61" y="1968.65" incLanes=":477486717_11_0 -107066313#3_0 -38027102#1_0 38027102#0_0" intLanes=":477486717_1_0 :477486717_6_0 :477486717_12_0"/>
- <junction id=":477486719_16_0" type="internal" x="406.45" y="1814.66" incLanes=":477486719_2_0 107066313#0_0" intLanes=":477486719_5_0 :477486719_6_0 :477486719_7_0 :477486719_8_0 :477486719_9_0 :477486719_13_0 :477486719_14_0"/>
- <junction id=":477486719_17_0" type="internal" x="407.31" y="1819.03" incLanes=":477486719_3_0 -38027665#1_0 107066313#0_0 38027665#0_0" intLanes=":477486719_4_0 :477486719_9_0 :477486719_14_0"/>
- <junction id=":477486719_18_0" type="internal" x="404.55" y="1817.84" incLanes=":477486719_10_0 -107066313#1_0" intLanes=":477486719_0_0 :477486719_1_0 :477486719_5_0 :477486719_6_0 :477486719_13_0 :477486719_14_0 :477486719_15_0"/>
- <junction id=":477486719_19_0" type="internal" x="403.66" y="1813.41" incLanes=":477486719_11_0 -107066313#1_0 -38027665#1_0 38027665#0_0" intLanes=":477486719_1_0 :477486719_6_0 :477486719_12_0"/>
- <junction id=":484282955_6_0" type="internal" x="665.94" y="931.35" incLanes=":484282955_1_0 40196943_0 40196944#0_0" intLanes=":484282955_2_0 :484282955_4_0"/>
- <junction id=":484282955_7_0" type="internal" x="662.86" y="931.89" incLanes=":484282955_5_0 -40196944#1_0 40196943_0" intLanes=":484282955_0_0 :484282955_3_0"/>
- <junction id=":538265864_4_0" type="internal" x="739.19" y="917.26" incLanes=":538265864_3_0 42976408#0_0" intLanes=":538265864_0_0"/>
- <junction id=":552842254_11_0" type="internal" x="457.50" y="1463.01" incLanes=":552842254_6_0 -37973572#5_0 -37973572#5_1 43684741#5_0" intLanes=":552842254_1_0 :552842254_7_0 :552842254_8_0"/>
- <junction id=":552842254_12_0" type="internal" x="451.62" y="1466.40" incLanes=":552842254_10_0 37973572#4_0 37973572#4_1 43684741#5_0" intLanes=":552842254_0_0 :552842254_4_0 :552842254_5_0"/>
- <junction id=":552842255_9_0" type="internal" x="468.05" y="1477.85" incLanes=":552842255_2_0 -43684741#4_0 37973569#8_0" intLanes=":552842255_3_0 :552842255_6_0"/>
- <junction id=":552842255_10_0" type="internal" x="463.63" y="1476.67" incLanes=":552842255_7_0 43684741#3_0" intLanes=":552842255_0_0 :552842255_1_0 :552842255_4_0 :552842255_5_0"/>
- <junction id=":552842255_11_0" type="internal" x="464.19" y="1475.03" incLanes=":552842255_8_0 37973569#8_0 43684741#3_0" intLanes=":552842255_1_0 :552842255_5_0"/>
- <junction id=":552842256_36_0" type="internal" x="716.65" y="1657.74" incLanes=":552842256_9_0 107028581#3_0" intLanes=":552842256_3_0 :552842256_4_0 :552842256_5_0 :552842256_14_0 :552842256_15_0 :552842256_16_0 :552842256_17_0 :552842256_18_0 :552842256_19_0 :552842256_20_0 :552842256_25_0 :552842256_26_0 :552842256_27_0 :552842256_32_0 :552842256_33_0 :552842256_34_0"/>
- <junction id=":552842256_37_0" type="internal" x="720.01" y="1658.79" incLanes=":552842256_11_0 -130443630#0_0 -43684741#0_0 107028581#3_0 37973566_0 59159259#1_0" intLanes=":552842256_5_0 :552842256_13_0 :552842256_20_0 :552842256_27_0 :552842256_34_0"/>
- <junction id=":552842256_38_0" type="internal" x="716.96" y="1660.32" incLanes=":552842256_28_0 105283535#1_0" intLanes=":552842256_0_0 :552842256_1_0 :552842256_6_0 :552842256_7_0 :552842256_14_0 :552842256_15_0 :552842256_21_0 :552842256_22_0 :552842256_31_0 :552842256_32_0 :552842256_33_0 :552842256_34_0 :552842256_35_0"/>
- <junction id=":552842256_39_0" type="internal" x="707.47" y="1657.49" incLanes=":552842256_29_0 -130443630#0_0 -43684741#0_0 105283535#1_0 37973566_0 59159259#1_0" intLanes=":552842256_1_0 :552842256_7_0 :552842256_15_0 :552842256_22_0 :552842256_30_0"/>
- <junction id=":552842257_9_0" type="internal" x="702.20" y="1655.19" incLanes=":552842257_1_0 107028581#2_0" intLanes=":552842257_3_0 :552842257_4_0 :552842257_7_0 :552842257_8_0"/>
- <junction id=":552842257_10_0" type="internal" x="701.30" y="1656.73" incLanes=":552842257_2_0 107028581#2_0 81394192#6_0" intLanes=":552842257_4_0 :552842257_8_0"/>
- <junction id=":552842257_11_0" type="internal" x="699.70" y="1656.55" incLanes=":552842257_5_0 -107028581#3_0 81394192#6_0" intLanes=":552842257_0_0 :552842257_6_0"/>
- <junction id=":560472377_6_0" type="internal" x="831.35" y="1980.88" incLanes=":560472377_1_0 44104490_0 44104491#0_0" intLanes=":560472377_2_0 :560472377_5_0"/>
- <junction id=":560472377_7_0" type="internal" x="829.97" y="1978.20" incLanes=":560472377_3_0 -44104491#1_0 44104490_0" intLanes=":560472377_0_0 :560472377_4_0"/>
- <junction id=":560472378_4_0" type="internal" x="838.47" y="1995.15" incLanes=":560472378_2_0 37942668#0_0" intLanes=":560472378_0_0 :560472378_1_0"/>
- <junction id=":560472378_5_0" type="internal" x="838.07" y="1994.48" incLanes=":560472378_3_0 37942668#0_0" intLanes=":560472378_1_0"/>
- <junction id=":561204538_9_0" type="internal" x="705.32" y="1648.19" incLanes=":561204538_1_0 -43684741#1_0" intLanes=":561204538_3_0 :561204538_4_0 :561204538_7_0 :561204538_8_0"/>
- <junction id=":561204538_10_0" type="internal" x="704.21" y="1649.41" incLanes=":561204538_2_0 -43684741#1_0 81394192#7_0" intLanes=":561204538_4_0 :561204538_8_0"/>
- <junction id=":561204538_11_0" type="internal" x="702.35" y="1648.07" incLanes=":561204538_5_0 43684741#0_0 81394192#7_0" intLanes=":561204538_0_0 :561204538_6_0"/>
- <junction id=":719463587_9_0" type="internal" x="940.62" y="1169.47" incLanes=":719463587_1_0 -38319550#8_0" intLanes=":719463587_3_0 :719463587_4_0 :719463587_7_0 :719463587_8_0"/>
- <junction id=":719463587_10_0" type="internal" x="939.76" y="1171.41" incLanes=":719463587_2_0 -38319550#8_0 37772596#0_0" intLanes=":719463587_4_0 :719463587_8_0"/>
- <junction id=":719463587_11_0" type="internal" x="938.32" y="1168.63" incLanes=":719463587_5_0 37772596#0_0 38319550#7_0" intLanes=":719463587_0_0 :719463587_6_0"/>
- <junction id=":719463587_12_0" type="internal" x="937.75" y="1171.10" incLanes=":719463587_8_0" intLanes=":719463587_0_0 :719463587_1_0 :719463587_2_0 :719463587_4_0"/>
- <junction id=":719464017_4_0" type="internal" x="652.08" y="320.53" incLanes=":719464017_1_0 38319550#13_0" intLanes=":719464017_2_0"/>
- <junction id=":719464017_5_0" type="internal" x="652.64" y="317.26" incLanes=":719464017_3_0 -38319550#14_0" intLanes=":719464017_0_0"/>
- <junction id=":728492341_9_0" type="internal" x="441.53" y="1869.59" incLanes=":728492341_1_0 107066313#1_0" intLanes=":728492341_4_0 :728492341_5_0 :728492341_6_0 :728492341_7_0"/>
- <junction id=":728492341_10_0" type="internal" x="442.38" y="1873.99" incLanes=":728492341_2_0 -58779718#0_0 107066313#1_0" intLanes=":728492341_3_0 :728492341_7_0"/>
- <junction id=":728492341_11_0" type="internal" x="439.04" y="1868.76" incLanes=":728492341_8_0 -107066313#2_0 -58779718#0_0" intLanes=":728492341_0_0 :728492341_4_0"/>
- <junction id=":728492353_9_0" type="internal" x="632.07" y="1648.62" incLanes=":728492353_2_0 -107166846#0_0 107028581#0_0" intLanes=":728492353_3_0 :728492353_7_0"/>
- <junction id=":728492353_10_0" type="internal" x="629.86" y="1650.00" incLanes=":728492353_4_0 -107028581#1_0" intLanes=":728492353_0_0 :728492353_1_0 :728492353_7_0 :728492353_8_0"/>
- <junction id=":728492353_11_0" type="internal" x="625.95" y="1647.87" incLanes=":728492353_5_0 -107028581#1_0 -107166846#0_0" intLanes=":728492353_1_0 :728492353_6_0"/>
- <junction id=":728492360_16_0" type="internal" x="611.31" y="1776.92" incLanes=":728492360_6_0 -107166846#2_0" intLanes=":728492360_1_0 :728492360_2_0 :728492360_9_0 :728492360_10_0 :728492360_11_0 :728492360_12_0 :728492360_13_0"/>
- <junction id=":728492360_17_0" type="internal" x="613.43" y="1771.77" incLanes=":728492360_7_0 -107166846#2_0 -58779718#1_0 58779718#0_0" intLanes=":728492360_2_0 :728492360_8_0 :728492360_13_0"/>
- <junction id=":728492360_18_0" type="internal" x="614.82" y="1774.32" incLanes=":728492360_14_0 107166846#1_0" intLanes=":728492360_1_0 :728492360_2_0 :728492360_3_0 :728492360_4_0 :728492360_5_0 :728492360_9_0 :728492360_10_0"/>
- <junction id=":728492360_19_0" type="internal" x="612.78" y="1780.29" incLanes=":728492360_15_0 -58779718#1_0 107166846#1_0 58779718#0_0" intLanes=":728492360_0_0 :728492360_5_0 :728492360_10_0"/>
- <junction id=":728492361_16_0" type="internal" x="608.15" y="1843.12" incLanes=":728492361_6_0 -107166846#3_0" intLanes=":728492361_1_0 :728492361_2_0 :728492361_9_0 :728492361_10_0 :728492361_11_0 :728492361_12_0 :728492361_13_0"/>
- <junction id=":728492361_17_0" type="internal" x="610.04" y="1838.01" incLanes=":728492361_7_0 -107166846#3_0 -58779719#1_0 58779719#0_0" intLanes=":728492361_2_0 :728492361_8_0 :728492361_13_0"/>
- <junction id=":728492361_18_0" type="internal" x="611.58" y="1840.42" incLanes=":728492361_14_0 107166846#2_0" intLanes=":728492361_1_0 :728492361_2_0 :728492361_3_0 :728492361_4_0 :728492361_5_0 :728492361_9_0 :728492361_10_0"/>
- <junction id=":728492361_19_0" type="internal" x="609.64" y="1846.60" incLanes=":728492361_15_0 -58779719#1_0 107166846#2_0 58779719#0_0" intLanes=":728492361_0_0 :728492361_5_0 :728492361_10_0"/>
- <junction id=":728492364_4_0" type="internal" x="681.04" y="1785.91" incLanes=":728492364_1_0 81394192#4_0" intLanes=":728492364_2_0"/>
- <junction id=":728492366_16_0" type="internal" x="606.59" y="1910.54" incLanes=":728492366_6_0 38027102#1_0" intLanes=":728492366_1_0 :728492366_2_0 :728492366_9_0 :728492366_10_0 :728492366_11_0 :728492366_12_0 :728492366_13_0"/>
- <junction id=":728492366_17_0" type="internal" x="611.63" y="1909.54" incLanes=":728492366_7_0 -107166846#4_0 107166846#3_0 38027102#1_0" intLanes=":728492366_2_0 :728492366_8_0 :728492366_13_0"/>
- <junction id=":728492366_18_0" type="internal" x="607.48" y="1913.83" incLanes=":728492366_14_0 -38027102#2_0" intLanes=":728492366_1_0 :728492366_2_0 :728492366_3_0 :728492366_4_0 :728492366_5_0 :728492366_9_0 :728492366_10_0"/>
- <junction id=":728492366_19_0" type="internal" x="602.95" y="1914.54" incLanes=":728492366_15_0 -107166846#4_0 -38027102#2_0 107166846#3_0" intLanes=":728492366_0_0 :728492366_5_0 :728492366_10_0"/>
- <junction id=":728492371_4_0" type="internal" x="671.94" y="1849.48" incLanes=":728492371_3_0 81394192#3_0" intLanes=":728492371_0_0"/>
- <junction id=":728492372_16_0" type="internal" x="621.08" y="1699.97" incLanes=":728492372_6_0 -107166846#1_0" intLanes=":728492372_1_0 :728492372_2_0 :728492372_9_0 :728492372_10_0 :728492372_11_0 :728492372_12_0 :728492372_13_0"/>
- <junction id=":728492372_17_0" type="internal" x="623.75" y="1691.82" incLanes=":728492372_7_0 -107166846#1_0 -38027665#2_0 38027665#1_0" intLanes=":728492372_2_0 :728492372_8_0 :728492372_13_0"/>
- <junction id=":728492372_18_0" type="internal" x="624.90" y="1696.04" incLanes=":728492372_14_0 107166846#0_0" intLanes=":728492372_1_0 :728492372_2_0 :728492372_3_0 :728492372_4_0 :728492372_5_0 :728492372_9_0 :728492372_10_0"/>
- <junction id=":728492372_19_0" type="internal" x="622.22" y="1704.12" incLanes=":728492372_15_0 -38027665#2_0 107166846#0_0 38027665#1_0" intLanes=":728492372_0_0 :728492372_5_0 :728492372_10_0"/>
- <junction id=":733663076_16_0" type="internal" x="848.22" y="1674.28" incLanes=":733663076_3_0 -105283535#0_0 -108329425#0_0 105251811#1_0" intLanes=":733663076_4_0 :733663076_9_0 :733663076_13_0"/>
- <junction id=":733663076_17_0" type="internal" x="838.81" y="1674.62" incLanes=":733663076_14_0 69931595#3_0" intLanes=":733663076_0_0 :733663076_1_0 :733663076_5_0 :733663076_6_0 :733663076_10_0 :733663076_11_0"/>
- <junction id=":733663076_18_0" type="internal" x="830.36" y="1671.91" incLanes=":733663076_15_0 -108329425#0_0 105251811#1_0 69931595#3_0" intLanes=":733663076_1_0 :733663076_6_0 :733663076_11_0"/>
- <junction id=":733663082_9_0" type="internal" x="708.57" y="1871.60" incLanes=":733663082_2_0 37973565#0_0 59159262#1_0" intLanes=":733663082_3_0 :733663082_6_0"/>
- <junction id=":733663082_10_0" type="internal" x="705.88" y="1873.50" incLanes=":733663082_7_0 -59159262#2_0" intLanes=":733663082_0_0 :733663082_1_0 :733663082_4_0 :733663082_5_0"/>
- <junction id=":733663082_11_0" type="internal" x="704.20" y="1872.68" incLanes=":733663082_8_0 -59159262#2_0 37973565#0_0" intLanes=":733663082_1_0 :733663082_5_0"/>
- <junction id=":733663093_9_0" type="internal" x="1369.49" y="1657.77" incLanes=":733663093_4_0 -59159260#1_0" intLanes=":733663093_1_0 :733663093_2_0 :733663093_6_0 :733663093_7_0"/>
- <junction id=":733663093_10_0" type="internal" x="1371.31" y="1658.68" incLanes=":733663093_5_0 -59159260#1_0 58770725#2_0" intLanes=":733663093_2_0 :733663093_7_0"/>
- <junction id=":733663093_11_0" type="internal" x="1368.71" y="1660.05" incLanes=":733663093_8_0 58770725#2_0 59159260#0_0" intLanes=":733663093_0_0 :733663093_3_0"/>
- <junction id=":733663096_16_0" type="internal" x="1252.66" y="1750.87" incLanes=":733663096_6_0 -59159260#3_0" intLanes=":733663096_1_0 :733663096_2_0 :733663096_9_0 :733663096_10_0 :733663096_11_0 :733663096_12_0 :733663096_13_0"/>
- <junction id=":733663096_17_0" type="internal" x="1256.82" y="1746.85" incLanes=":733663096_7_0 -38319546#8_0 -59159260#3_0 38319546#7_0" intLanes=":733663096_2_0 :733663096_8_0 :733663096_13_0"/>
- <junction id=":733663096_18_0" type="internal" x="1254.54" y="1753.47" incLanes=":733663096_14_0 59159260#2_0" intLanes=":733663096_1_0 :733663096_2_0 :733663096_3_0 :733663096_4_0 :733663096_5_0 :733663096_9_0 :733663096_10_0"/>
- <junction id=":733663096_19_0" type="internal" x="1251.12" y="1754.64" incLanes=":733663096_15_0 -38319546#8_0 38319546#7_0 59159260#2_0" intLanes=":733663096_0_0 :733663096_5_0 :733663096_10_0"/>
- <junction id=":733663116_6_0" type="internal" x="859.17" y="1695.44" incLanes=":733663116_2_0 -69931595#3_0" intLanes=":733663116_3_0"/>
- <junction id=":733663116_7_0" type="internal" x="856.90" y="1694.65" incLanes=":733663116_4_0 69931595#2_0" intLanes=":733663116_0_0 :733663116_1_0"/>
- <junction id=":733663116_8_0" type="internal" x="857.84" y="1692.86" incLanes=":733663116_5_0 69931595#2_0" intLanes=":733663116_1_0"/>
- <junction id=":733663121_9_0" type="internal" x="1298.56" y="1696.46" incLanes=":733663121_2_0 -59159260#2_0 23066443#4_0" intLanes=":733663121_3_0 :733663121_6_0"/>
- <junction id=":733663121_10_0" type="internal" x="1297.79" y="1698.77" incLanes=":733663121_7_0 59159260#1_0" intLanes=":733663121_0_0 :733663121_1_0 :733663121_4_0 :733663121_5_0"/>
- <junction id=":733663121_11_0" type="internal" x="1295.92" y="1697.88" incLanes=":733663121_8_0 23066443#4_0 59159260#1_0" intLanes=":733663121_1_0 :733663121_5_0"/>
- <junction id=":733663136_9_0" type="internal" x="901.19" y="1776.66" incLanes=":733663136_2_0 -69931595#1_0 59159262#4_0" intLanes=":733663136_3_0 :733663136_7_0"/>
- <junction id=":733663136_10_0" type="internal" x="898.79" y="1775.62" incLanes=":733663136_4_0 69931595#0_0" intLanes=":733663136_0_0 :733663136_1_0 :733663136_7_0 :733663136_8_0"/>
- <junction id=":733663136_11_0" type="internal" x="898.33" y="1771.17" incLanes=":733663136_5_0 59159262#4_0 69931595#0_0" intLanes=":733663136_1_0 :733663136_6_0"/>
- <junction id=":767282288_18_0" type="internal" x="946.85" y="1188.61" incLanes=":767282288_2_0 -38319550#6_0" intLanes=":767282288_5_0 :767282288_6_0 :767282288_7_0 :767282288_8_0 :767282288_9_0 :767282288_10_0 :767282288_14_0 :767282288_15_0 :767282288_16_0"/>
- <junction id=":767282288_19_0" type="internal" x="947.63" y="1186.59" incLanes=":767282288_3_0 -149868584#6_1 -38319550#6_0 149868584#5_0" intLanes=":767282288_4_0 :767282288_10_0 :767282288_16_0"/>
- <junction id=":767282288_20_0" type="internal" x="947.84" y="1183.41" incLanes=":767282288_7_0 -149868584#6_0 -149868584#6_1" intLanes=":767282288_1_0 :767282288_2_0 :767282288_10_0 :767282288_11_0 :767282288_12_0 :767282288_13_0 :767282288_14_0 :767282288_15_0"/>
- <junction id=":767282288_21_0" type="internal" x="948.90" y="1181.75" incLanes=":767282288_8_0 -149868584#6_0 -149868584#6_1 -38319550#6_0 38319550#5_0" intLanes=":767282288_2_0 :767282288_9_0 :767282288_14_0 :767282288_15_0"/>
- <junction id=":767282288_22_0" type="internal" x="945.12" y="1178.20" incLanes=":767282288_11_0 38319550#5_0" intLanes=":767282288_0_0 :767282288_1_0 :767282288_5_0 :767282288_6_0 :767282288_7_0 :767282288_14_0 :767282288_15_0 :767282288_16_0 :767282288_17_0"/>
- <junction id=":767282288_23_0" type="internal" x="944.35" y="1180.26" incLanes=":767282288_12_0 -149868584#6_0 149868584#5_1 38319550#5_0" intLanes=":767282288_1_0 :767282288_7_0 :767282288_13_0"/>
- <junction id=":767282288_24_0" type="internal" x="944.13" y="1183.41" incLanes=":767282288_16_0 149868584#5_0 149868584#5_1" intLanes=":767282288_1_0 :767282288_2_0 :767282288_3_0 :767282288_4_0 :767282288_5_0 :767282288_6_0 :767282288_10_0 :767282288_11_0"/>
- <junction id=":767282288_25_0" type="internal" x="943.05" y="1185.08" incLanes=":767282288_17_0 -38319550#6_0 149868584#5_0 149868584#5_1 38319550#5_0" intLanes=":767282288_0_0 :767282288_5_0 :767282288_6_0 :767282288_11_0"/>
- <junction id=":948350588_11_0" type="internal" x="765.65" y="2265.52" incLanes=":948350588_3_0 133868229#0_0 133868229#0_1 37973565#5_0" intLanes=":948350588_4_0 :948350588_7_0 :948350588_8_0"/>
- <junction id=":948350588_12_0" type="internal" x="762.86" y="2267.17" incLanes=":948350588_10_0 -133868229#1_0 -133868229#1_1 37973565#5_0" intLanes=":948350588_1_0 :948350588_2_0 :948350588_6_0"/>
- <junction id=":948350597_10_0" type="internal" x="737.76" y="2289.63" incLanes=":948350597_6_0 133868191#0_3 81394200#0_0" intLanes=":948350597_3_0 :948350597_8_0"/>
- <junction id=":948350597_11_0" type="internal" x="734.63" y="2301.04" incLanes=":948350597_9_0 -81394200#1_0 133868191#0_0" intLanes=":948350597_0_0 :948350597_4_0"/>
- <junction id=":948350615_9_0" type="internal" x="743.31" y="2263.00" incLanes=":948350615_1_0" intLanes=":948350615_3_0 :948350615_4_0 :948350615_7_0 :948350615_8_0"/>
- <junction id=":948350615_10_0" type="internal" x="743.12" y="2262.63" incLanes=":948350615_2_0 -130443629#4_0 81394169#1_0" intLanes=":948350615_4_0 :948350615_8_0"/>
- <junction id=":948350630_8_0" type="internal" x="772.70" y="2261.37" incLanes=":948350630_2_0 133868229#1_0 133868229#1_1 134572340#1_0" intLanes=":948350630_3_0 :948350630_5_0 :948350630_6_0"/>
- <junction id=":948350630_9_0" type="internal" x="771.93" y="2261.17" incLanes=":948350630_7_0 -81523330#0_0 -81523330#0_1 134572340#1_1" intLanes=":948350630_0_0 :948350630_1_0 :948350630_4_0"/>
- <junction id=":948350640_16_0" type="internal" x="743.48" y="2278.06" incLanes=":948350640_6_0 81394200#1_0" intLanes=":948350640_1_0 :948350640_2_0 :948350640_9_0 :948350640_10_0 :948350640_11_0 :948350640_12_0 :948350640_13_0"/>
- <junction id=":948350640_17_0" type="internal" x="746.21" y="2277.07" incLanes=":948350640_7_0 -130443629#2_0 130443629#1_0 81394200#1_0" intLanes=":948350640_2_0 :948350640_8_0 :948350640_13_0"/>
- <junction id=":948350640_18_0" type="internal" x="740.29" y="2285.13" incLanes=":948350640_15_0 -130443629#2_0 -81394200#2_0 130443629#1_0" intLanes=":948350640_0_0 :948350640_5_0 :948350640_10_0"/>
- <junction id=":948350707_17_0" type="internal" x="755.65" y="2269.47" incLanes=":948350707_3_0 37369047#2_0 37369047#2_1 81394169#3_0 81394200#2_0" intLanes=":948350707_4_0 :948350707_8_0 :948350707_9_0 :948350707_13_0"/>
- <junction id=":948350707_18_0" type="internal" x="750.57" y="2276.65" incLanes=":948350707_16_0 -133868229#0_1 37369047#2_3 81394169#3_0" intLanes=":948350707_2_0 :948350707_7_0 :948350707_12_0"/>
- <junction id=":950094425_18_0" type="internal" x="1069.65" y="2098.64" incLanes=":950094425_7_0 81523330#1_0" intLanes=":950094425_1_0 :950094425_2_0 :950094425_10_0 :950094425_11_0 :950094425_12_0 :950094425_13_0 :950094425_14_0 :950094425_15_0"/>
- <junction id=":950094425_19_0" type="internal" x="1071.68" y="2103.12" incLanes=":950094425_8_0 -23315111#3_0 23315111#2_0 81523330#1_0 81523330#1_1" intLanes=":950094425_2_0 :950094425_9_0 :950094425_14_0 :950094425_15_0"/>
- <junction id=":950094425_20_0" type="internal" x="1070.12" y="2103.99" incLanes=":950094425_17_0 -23315111#3_0 -81523330#2_0 -81523330#2_1 23315111#2_0" intLanes=":950094425_0_0 :950094425_5_0 :950094425_6_0 :950094425_11_0"/>
- <junction id=":950094494_11_0" type="internal" x="1293.00" y="1980.87" incLanes=":950094494_5_0 81523330#4_0" intLanes=":950094494_1_0 :950094494_2_0 :950094494_7_0 :950094494_8_0 :950094494_9_0"/>
- <junction id=":950094494_12_0" type="internal" x="1296.91" y="1984.42" incLanes=":950094494_6_0 144874012#1_0 81523330#4_0 81523330#4_1" intLanes=":950094494_2_0 :950094494_8_0 :950094494_9_0"/>
- <junction id=":950094494_13_0" type="internal" x="1293.27" y="1986.33" incLanes=":950094494_10_0 -139118805#0_0 -139118805#0_1 144874012#1_0" intLanes=":950094494_0_0 :950094494_3_0 :950094494_4_0"/>
- <junction id=":956116503_9_0" type="internal" x="757.45" y="1846.88" incLanes=":956116503_5_0 -44104491#0_0 59159262#2_0" intLanes=":956116503_1_0 :956116503_6_0"/>
- <junction id=":956116503_10_0" type="internal" x="761.55" y="1848.08" incLanes=":956116503_7_0 -59159262#3_0" intLanes=":956116503_1_0 :956116503_2_0 :956116503_3_0 :956116503_4_0"/>
- <junction id=":956116503_11_0" type="internal" x="756.23" y="1847.49" incLanes=":956116503_8_0 -44104491#0_0 -59159262#3_0" intLanes=":956116503_0_0 :956116503_4_0"/>
- <junction id=":966097830_4_0" type="internal" x="828.95" y="1460.53" incLanes=":966097830_1_0 83038923#1_0" intLanes=":966097830_2_0"/>
- <junction id=":966097830_5_0" type="internal" x="826.74" y="1459.80" incLanes=":966097830_3_0 83038920_0" intLanes=":966097830_0_0"/>
- <junction id=":966097869_9_0" type="internal" x="747.10" y="1453.32" incLanes=":966097869_5_0 -83038923#0_0 130443630#1_0" intLanes=":966097869_1_0 :966097869_6_0"/>
- <junction id=":966097869_10_0" type="internal" x="748.44" y="1455.57" incLanes=":966097869_7_0 -130443630#2_0" intLanes=":966097869_1_0 :966097869_2_0 :966097869_3_0 :966097869_4_0"/>
- <junction id=":966097869_11_0" type="internal" x="746.20" y="1459.45" incLanes=":966097869_8_0 -130443630#2_0 -83038923#0_0" intLanes=":966097869_0_0 :966097869_4_0"/>
- <junction id=":966193796_4_0" type="internal" x="1270.31" y="1020.55" incLanes=":966193796_1_0 37772595#2_0" intLanes=":966193796_2_0"/>
- <junction id=":966193808_16_0" type="internal" x="1302.35" y="1084.26" incLanes=":966193808_11_0 -83051436#0_0 24573937_0 83051417_0" intLanes=":966193808_1_0 :966193808_6_0 :966193808_12_0"/>
- <junction id=":966193808_17_0" type="internal" x="1303.91" y="1087.10" incLanes=":966193808_14_0" intLanes=":966193808_1_0 :966193808_2_0 :966193808_3_0 :966193808_4_0 :966193808_5_0 :966193808_9_0 :966193808_10_0"/>
- <junction id=":966193808_18_0" type="internal" x="1301.19" y="1088.62" incLanes=":966193808_15_0 -83051420_0 -83051436#0_0 83051417_0" intLanes=":966193808_0_0 :966193808_5_0 :966193808_10_0"/>
- <junction id=":966193814_4_0" type="internal" x="1418.41" y="1307.35" incLanes=":966193814_1_0 -83051424_0" intLanes=":966193814_2_0"/>
- <junction id=":966193814_5_0" type="internal" x="1418.53" y="1310.38" incLanes=":966193814_3_0 83051483_0" intLanes=":966193814_0_0"/>
- <junction id=":966193857_4_0" type="internal" x="1460.79" y="1432.56" incLanes=":966193857_1_0 37771904#0_0" intLanes=":966193857_2_0"/>
- <junction id=":974693391_11_0" type="internal" x="1343.17" y="1959.74" incLanes=":974693391_3_0 139118805#0_0 139118805#0_1 37449253#5_0" intLanes=":974693391_4_0 :974693391_7_0 :974693391_8_0"/>
- <junction id=":974693391_12_0" type="internal" x="1340.62" y="1961.10" incLanes=":974693391_10_0 -139118805#1_0 -139118805#1_1 37449253#5_0" intLanes=":974693391_1_0 :974693391_2_0 :974693391_6_0"/>
- <junction id=":975934878_6_0" type="internal" x="1156.98" y="2270.75" incLanes=":975934878_1_0 -23182517#2_0 83827202_0" intLanes=":975934878_2_0 :975934878_5_0"/>
- <junction id=":975934878_7_0" type="internal" x="1155.68" y="2268.20" incLanes=":975934878_3_0 23182517#1_0 83827202_0" intLanes=":975934878_0_0 :975934878_4_0"/>
-
- <connection from="-101272434" to="-38319548#8" fromLane="0" toLane="0" via=":1168929661_3_0" dir="r" state="="/>
- <connection from="-101272434" to="38319548#9" fromLane="0" toLane="0" via=":1168929661_4_0" dir="l" state="="/>
- <connection from="-101272434" to="101272434" fromLane="0" toLane="0" via=":1168929661_5_0" dir="t" state="="/>
- <connection from="-105254616#0" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_3_0" dir="r" state="m"/>
- <connection from="-105254616#0" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_4_0" dir="l" state="m"/>
- <connection from="-105254616#0" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_5_0" dir="t" state="m"/>
- <connection from="-105254616#1" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_0_0" dir="s" state="M"/>
- <connection from="-105254616#1" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_1_0" dir="s" state="M"/>
- <connection from="-105254616#1" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_2_0" dir="t" state="m"/>
- <connection from="-105254618" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_3_0" dir="r" state="m"/>
- <connection from="-105254618" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_4_0" dir="l" state="m"/>
- <connection from="-105254618" to="105254618" fromLane="0" toLane="0" via=":1212960877_5_0" dir="t" state="m"/>
- <connection from="-105283535#0" to="108329425#0" fromLane="0" toLane="0" via=":733663076_12_0" dir="r" state="M"/>
- <connection from="-105283535#0" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_13_0" dir="L" state="M"/>
- <connection from="-105283535#0" to="59159259#0" fromLane="0" toLane="0" via=":733663076_14_0" dir="l" state="m"/>
- <connection from="-105283535#0" to="105283535#0" fromLane="0" toLane="0" via=":733663076_15_0" dir="t" state="m"/>
- <connection from="-105283535#1" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_6_0" dir="s" state="M"/>
- <connection from="-105283535#1" to="37942667#3" fromLane="0" toLane="0" via=":1213368991_7_0" dir="l" state="m"/>
- <connection from="-105283535#1" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_8_0" dir="t" state="m"/>
- <connection from="-106366774" to="37973568#1" fromLane="0" toLane="0" via=":1224080660_0_0" dir="r" state="M"/>
- <connection from="-106366774" to="106366774" fromLane="0" toLane="0" via=":1224080660_1_0" dir="t" state="m"/>
- <connection from="-106367427#0" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_0_0" dir="r" state="m"/>
- <connection from="-106367427#0" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_1_0" dir="l" state="m"/>
- <connection from="-106367427#0" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_2_0" dir="t" state="m"/>
- <connection from="-106367427#1" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_0_0" dir="r" state="m"/>
- <connection from="-106367427#1" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_1_0" dir="s" state="m"/>
- <connection from="-106367427#1" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_2_0" dir="l" state="m"/>
- <connection from="-106367427#1" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_3_0" dir="t" state="m"/>
- <connection from="-106836308#0" to="81394192#1" fromLane="0" toLane="0" via=":1228499918_2_0" dir="r" state="m"/>
- <connection from="-106836308#0" to="106836308#0" fromLane="0" toLane="0" via=":1228499918_3_0" dir="t" state="m"/>
- <connection from="-106836308#1" to="-107166846#5" fromLane="0" toLane="0" via=":1232169474_6_0" dir="r" state="M"/>
- <connection from="-106836308#1" to="-106836308#0" fromLane="0" toLane="0" via=":1232169474_7_0" dir="s" state="m"/>
- <connection from="-106836308#1" to="106836308#1" fromLane="0" toLane="0" via=":1232169474_8_0" dir="t" state="m"/>
- <connection from="-106836308#2" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_12_0" dir="r" state="m"/>
- <connection from="-106836308#2" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_13_0" dir="s" state="m"/>
- <connection from="-106836308#2" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_14_0" dir="l" state="m"/>
- <connection from="-106836308#2" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_15_0" dir="t" state="m"/>
- <connection from="-107028581#0" to="107028581#0" fromLane="0" toLane="0" via=":1233612841_0_0" dir="t" state="M"/>
- <connection from="-107028581#1" to="107166846#0" fromLane="0" toLane="0" via=":728492353_0_0" dir="r" state="M"/>
- <connection from="-107028581#1" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_1_0" dir="s" state="M"/>
- <connection from="-107028581#1" to="107028581#1" fromLane="0" toLane="0" via=":728492353_2_0" dir="t" state="m"/>
- <connection from="-107028581#2" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_0_0" dir="r" state="M"/>
- <connection from="-107028581#2" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_1_0" dir="s" state="M"/>
- <connection from="-107028581#2" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_2_0" dir="l" state="m"/>
- <connection from="-107028581#2" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_3_0" dir="t" state="m"/>
- <connection from="-107028581#3" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_0_0" dir="s" state="M"/>
- <connection from="-107028581#3" to="81394192#7" fromLane="0" toLane="0" via=":552842257_1_0" dir="l" state="m"/>
- <connection from="-107028581#3" to="107028581#3" fromLane="0" toLane="0" via=":552842257_2_0" dir="t" state="m"/>
- <connection from="-107066313#0" to="107066313#0" fromLane="0" toLane="0" via=":950640617_0_0" dir="t" state="M"/>
- <connection from="-107066313#1" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_0_0" dir="r" state="M"/>
- <connection from="-107066313#1" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_1_0" dir="s" state="M"/>
- <connection from="-107066313#1" to="38027665#1" fromLane="0" toLane="0" via=":477486719_2_0" dir="l" state="m"/>
- <connection from="-107066313#1" to="107066313#1" fromLane="0" toLane="0" via=":477486719_3_0" dir="t" state="m"/>
- <connection from="-107066313#2" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_0_0" dir="s" state="M"/>
- <connection from="-107066313#2" to="58779718#0" fromLane="0" toLane="0" via=":728492341_1_0" dir="l" state="m"/>
- <connection from="-107066313#2" to="107066313#2" fromLane="0" toLane="0" via=":728492341_2_0" dir="t" state="m"/>
- <connection from="-107066313#3" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_0_0" dir="r" state="M"/>
- <connection from="-107066313#3" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_1_0" dir="s" state="M"/>
- <connection from="-107066313#3" to="38027102#1" fromLane="0" toLane="0" via=":477486717_2_0" dir="l" state="m"/>
- <connection from="-107066313#3" to="107066313#3" fromLane="0" toLane="0" via=":477486717_3_0" dir="t" state="m"/>
- <connection from="-107066313#4" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_0_0" dir="s" state="M"/>
- <connection from="-107066313#4" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_1_0" dir="l" state="m"/>
- <connection from="-107066313#4" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_2_0" dir="t" state="m"/>
- <connection from="-107066313#5" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_0_0" dir="r" state="M"/>
- <connection from="-107066313#5" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_1_0" dir="s" state="M"/>
- <connection from="-107066313#5" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_2_0" dir="l" state="m"/>
- <connection from="-107066313#5" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_3_0" dir="t" state="m"/>
- <connection from="-107166846#0" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_6_0" dir="r" state="m"/>
- <connection from="-107166846#0" to="107028581#1" fromLane="0" toLane="0" via=":728492353_7_0" dir="l" state="m"/>
- <connection from="-107166846#0" to="107166846#0" fromLane="0" toLane="0" via=":728492353_8_0" dir="t" state="m"/>
- <connection from="-107166846#1" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_12_0" dir="r" state="M"/>
- <connection from="-107166846#1" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_13_0" dir="s" state="M"/>
- <connection from="-107166846#1" to="38027665#2" fromLane="0" toLane="0" via=":728492372_14_0" dir="l" state="m"/>
- <connection from="-107166846#1" to="107166846#1" fromLane="0" toLane="0" via=":728492372_15_0" dir="t" state="m"/>
- <connection from="-107166846#2" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_12_0" dir="r" state="M"/>
- <connection from="-107166846#2" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_13_0" dir="s" state="M"/>
- <connection from="-107166846#2" to="58779718#1" fromLane="0" toLane="0" via=":728492360_14_0" dir="l" state="m"/>
- <connection from="-107166846#2" to="107166846#2" fromLane="0" toLane="0" via=":728492360_15_0" dir="t" state="m"/>
- <connection from="-107166846#3" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_12_0" dir="r" state="M"/>
- <connection from="-107166846#3" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_13_0" dir="s" state="M"/>
- <connection from="-107166846#3" to="58779719#1" fromLane="0" toLane="0" via=":728492361_14_0" dir="l" state="m"/>
- <connection from="-107166846#3" to="107166846#3" fromLane="0" toLane="0" via=":728492361_15_0" dir="t" state="m"/>
- <connection from="-107166846#4" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_0_0" dir="r" state="m"/>
- <connection from="-107166846#4" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_1_0" dir="s" state="m"/>
- <connection from="-107166846#4" to="38027102#2" fromLane="0" toLane="0" via=":728492366_2_0" dir="l" state="m"/>
- <connection from="-107166846#4" to="107166846#4" fromLane="0" toLane="0" via=":728492366_3_0" dir="t" state="m"/>
- <connection from="-107166846#5" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_0_0" dir="s" state="M"/>
- <connection from="-107166846#5" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_1_0" dir="l" state="m"/>
- <connection from="-107166846#5" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_2_0" dir="t" state="m"/>
- <connection from="-107167209#0" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_6_0" dir="r" state="m"/>
- <connection from="-107167209#0" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_7_0" dir="l" state="m"/>
- <connection from="-107167209#0" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_8_0" dir="t" state="m"/>
- <connection from="-107167209#1" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_12_0" dir="r" state="m"/>
- <connection from="-107167209#1" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_13_0" dir="s" state="m"/>
- <connection from="-107167209#1" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_14_0" dir="l" state="m"/>
- <connection from="-107167209#1" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_15_0" dir="t" state="m"/>
- <connection from="-108329425#0" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_4_0" dir="s" state="m"/>
- <connection from="-108329425#0" to="59159259#0" fromLane="0" toLane="0" via=":733663076_5_0" dir="L" state="m"/>
- <connection from="-108329425#0" to="105283535#0" fromLane="0" toLane="0" via=":733663076_6_0" dir="l" state="m"/>
- <connection from="-108329425#0" to="108329425#0" fromLane="0" toLane="0" via=":733663076_7_0" dir="t" state="m"/>
- <connection from="-108329425#1" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_6_0" dir="r" state="M"/>
- <connection from="-108329425#1" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_7_0" dir="s" state="M"/>
- <connection from="-108329425#1" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_8_0" dir="t" state="m"/>
- <connection from="-108329425#2" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_6_0" dir="r" state="M"/>
- <connection from="-108329425#2" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_7_0" dir="s" state="M"/>
- <connection from="-108329425#2" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_8_0" dir="t" state="m"/>
- <connection from="-108329425#3" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_6_0" dir="s" state="M"/>
- <connection from="-108329425#3" to="105254618" fromLane="0" toLane="0" via=":1212960877_7_0" dir="r" state="M"/>
- <connection from="-108329425#3" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_8_0" dir="t" state="m"/>
- <connection from="-108329425#4" to="-108329425#3" fromLane="0" toLane="0" via=":1323557968_3_0" dir="s" state="M"/>
- <connection from="-108329425#4" to="117492209" fromLane="0" toLane="0" via=":1323557968_4_0" dir="l" state="m"/>
- <connection from="-108329425#4" to="108329425#4" fromLane="0" toLane="0" via=":1323557968_5_0" dir="t" state="m"/>
- <connection from="-108329425#5" to="-108329425#4" fromLane="0" toLane="0" via=":429179805_3_0" dir="s" state="M"/>
- <connection from="-108329425#5" to="37942667#0" fromLane="0" toLane="0" via=":429179805_4_0" dir="l" state="m"/>
- <connection from="-108329425#5" to="108329425#5" fromLane="0" toLane="0" via=":429179805_5_0" dir="t" state="m"/>
- <connection from="-108329426#0" to="81523330#4" fromLane="0" toLane="0" via=":1243159116_4_0" dir="s" state="m"/>
- <connection from="-108329426#0" to="-81523330#3" fromLane="0" toLane="1" via=":1243159116_5_0" dir="l" state="m"/>
- <connection from="-108329426#0" to="108329426#0" fromLane="0" toLane="0" via=":1243159116_6_0" dir="t" state="m"/>
- <connection from="-108329426#1" to="44641744#1" fromLane="0" toLane="0" via=":427996792_15_0" tl="427996792" linkIndex="15" dir="r" state="o"/>
- <connection from="-108329426#1" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_16_0" tl="427996792" linkIndex="16" dir="s" state="o"/>
- <connection from="-108329426#1" to="108329427#0" fromLane="0" toLane="0" via=":427996792_17_0" tl="427996792" linkIndex="17" dir="s" state="o"/>
- <connection from="-108329426#1" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_18_0" tl="427996792" linkIndex="18" dir="s" state="o"/>
- <connection from="-108329426#1" to="108329426#1" fromLane="0" toLane="0" via=":427996792_19_0" tl="427996792" linkIndex="19" dir="t" state="o"/>
- <connection from="-108329426#2" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_8_0" dir="r" state="M"/>
- <connection from="-108329426#2" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_9_0" dir="s" state="M"/>
- <connection from="-108329426#2" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_10_0" dir="l" state="m"/>
- <connection from="-108329426#2" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_11_0" dir="t" state="m"/>
- <connection from="-108329427#0" to="108329426#1" fromLane="0" toLane="0" via=":427996792_5_0" tl="427996792" linkIndex="5" dir="s" state="o"/>
- <connection from="-108329427#0" to="44641744#1" fromLane="0" toLane="0" via=":427996792_6_0" tl="427996792" linkIndex="6" dir="L" state="o"/>
- <connection from="-108329427#0" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_7_0" tl="427996792" linkIndex="7" dir="l" state="o"/>
- <connection from="-108329427#0" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_8_0" tl="427996792" linkIndex="8" dir="L" state="o"/>
- <connection from="-108329427#0" to="108329427#0" fromLane="0" toLane="0" via=":427996792_9_0" tl="427996792" linkIndex="9" dir="t" state="o"/>
- <connection from="-108329427#1" to="-81523330#2" fromLane="0" toLane="0" via=":1263725264_0_0" dir="r" state="m"/>
- <connection from="-108329427#1" to="-108329427#0" fromLane="0" toLane="0" via=":1263725264_1_0" dir="s" state="m"/>
- <connection from="-108329427#1" to="81523330#3" fromLane="0" toLane="1" via=":1263725264_2_0" dir="l" state="m"/>
- <connection from="-108329427#1" to="108329427#1" fromLane="0" toLane="0" via=":1263725264_3_0" dir="t" state="m"/>
- <connection from="-108329427#2" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_0_0" dir="r" state="M"/>
- <connection from="-108329427#2" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_1_0" dir="s" state="M"/>
- <connection from="-108329427#2" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_2_0" dir="l" state="m"/>
- <connection from="-108329427#2" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_3_0" dir="t" state="m"/>
- <connection from="-108733421" to="154844467" fromLane="0" toLane="0" via=":1246731574_0_0" dir="r" state="M"/>
- <connection from="-108733421" to="108733421" fromLane="0" toLane="0" via=":1246731574_1_0" dir="t" state="m"/>
- <connection from="-108733422" to="170590352" fromLane="0" toLane="0" via=":1246731620_0_0" dir="r" state="M"/>
- <connection from="-108733422" to="108733422" fromLane="0" toLane="0" via=":1246731620_1_0" dir="t" state="m"/>
- <connection from="-108733424" to="170594822#3" fromLane="0" toLane="0" via=":1246731470_3_0" dir="r" state="M"/>
- <connection from="-108733424" to="108733424" fromLane="0" toLane="0" via=":1246731470_4_0" dir="t" state="m"/>
- <connection from="-108733425" to="154844465#4" fromLane="0" toLane="0" via=":1246731504_0_0" dir="r" state="M"/>
- <connection from="-108733425" to="108733425" fromLane="0" toLane="0" via=":1246731504_1_0" dir="t" state="m"/>
- <connection from="-108733428" to="154844461#3" fromLane="0" toLane="0" via=":1246731455_3_0" dir="r" state="M"/>
- <connection from="-108733428" to="101272429#0" fromLane="0" toLane="0" via=":1246731455_4_0" dir="l" state="m"/>
- <connection from="-108733428" to="108733428" fromLane="0" toLane="0" via=":1246731455_5_0" dir="t" state="m"/>
- <connection from="-108733429" to="154844485#1" fromLane="0" toLane="0" via=":1246731647_3_0" dir="r" state="M"/>
- <connection from="-108733429" to="108733429" fromLane="0" toLane="0" via=":1246731647_4_0" dir="t" state="m"/>
- <connection from="-108733430" to="154844489#1" fromLane="0" toLane="0" via=":1246731482_2_0" dir="r" state="M"/>
- <connection from="-108733430" to="108733430" fromLane="0" toLane="0" via=":1246731482_3_0" dir="t" state="m"/>
- <connection from="-108733431" to="111549913#6" fromLane="0" toLane="0" via=":1246731601_0_0" dir="r" state="M"/>
- <connection from="-108733431" to="108733431" fromLane="0" toLane="0" via=":1246731601_1_0" dir="t" state="m"/>
- <connection from="-109912567#0" to="-109912572#4" fromLane="0" toLane="0" via=":1257054077_2_0" dir="s" state="M"/>
- <connection from="-109912567#0" to="109912567#0" fromLane="0" toLane="0" via=":1257054077_3_0" dir="t" state="m"/>
- <connection from="-109912567#1" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_12_0" dir="r" state="m"/>
- <connection from="-109912567#1" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_13_0" dir="s" state="m"/>
- <connection from="-109912567#1" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_14_0" dir="l" state="m"/>
- <connection from="-109912567#1" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_15_0" dir="t" state="m"/>
- <connection from="-109912568" to="109912568" fromLane="0" toLane="0" via=":1257054196_0_0" dir="t" state="M"/>
- <connection from="-109912572#0" to="38319546#5" fromLane="0" toLane="0" via=":1257054178_6_0" dir="r" state="="/>
- <connection from="-109912572#0" to="-38319546#4" fromLane="0" toLane="0" via=":1257054178_7_0" dir="l" state="="/>
- <connection from="-109912572#0" to="109912572#0" fromLane="0" toLane="0" via=":1257054178_8_0" dir="t" state="="/>
- <connection from="-109912572#1" to="-109912572#0" fromLane="0" toLane="0" via=":1257054155_6_0" dir="s" state="m"/>
- <connection from="-109912572#1" to="37449253#4" fromLane="0" toLane="0" via=":1257054155_7_0" dir="l" state="m"/>
- <connection from="-109912572#1" to="109912572#1" fromLane="0" toLane="0" via=":1257054155_8_0" dir="t" state="m"/>
- <connection from="-109912572#2" to="-109912572#1" fromLane="0" toLane="0" via=":1257054108_7_0" dir="s" state="m"/>
- <connection from="-109912572#2" to="133960538#2" fromLane="0" toLane="1" via=":1257054108_8_0" dir="l" state="m"/>
- <connection from="-109912572#2" to="109912572#2" fromLane="0" toLane="0" via=":1257054108_9_0" dir="t" state="m"/>
- <connection from="-109912572#3" to="81394162#1" fromLane="0" toLane="0" via=":1257054092_7_0" dir="r" state="m"/>
- <connection from="-109912572#3" to="-109912572#2" fromLane="0" toLane="0" via=":1257054092_8_0" dir="s" state="m"/>
- <connection from="-109912572#3" to="109912572#3" fromLane="0" toLane="0" via=":1257054092_9_0" dir="t" state="m"/>
- <connection from="-109912572#4" to="37449245#1" fromLane="0" toLane="0" via=":1257054165_6_0" dir="r" state="m"/>
- <connection from="-109912572#4" to="-109912572#3" fromLane="0" toLane="0" via=":1257054165_7_0" dir="s" state="m"/>
- <connection from="-109912572#4" to="109912572#4" fromLane="0" toLane="0" via=":1257054165_8_0" dir="t" state="m"/>
- <connection from="-110514869#0" to="44738605#0" fromLane="0" toLane="0" via=":1261880295_0_0" dir="s" state="M"/>
- <connection from="-110514869#0" to="110514869#0" fromLane="1" toLane="1" via=":1261880295_1_0" dir="t" state="m"/>
- <connection from="-110514869#1" to="-110514869#0" fromLane="0" toLane="0" via=":252417189_3_0" dir="s" state="M"/>
- <connection from="-110514869#1" to="-110514869#0" fromLane="1" toLane="1" via=":252417189_4_0" dir="s" state="M"/>
- <connection from="-110514869#1" to="58770725#5" fromLane="1" toLane="0" via=":252417189_5_0" dir="l" state="m"/>
- <connection from="-110514869#1" to="110514869#1" fromLane="1" toLane="1" via=":252417189_6_0" dir="t" state="m"/>
- <connection from="-110514869#2" to="-110514869#1" fromLane="0" toLane="0" via=":443089063_3_0" tl="443089063" linkIndex="3" dir="s" state="o"/>
- <connection from="-110514869#2" to="-110514869#1" fromLane="1" toLane="1" via=":443089063_4_0" tl="443089063" linkIndex="4" dir="s" state="o"/>
- <connection from="-110514869#2" to="37771900#6" fromLane="1" toLane="0" via=":443089063_5_0" tl="443089063" linkIndex="5" dir="l" state="o"/>
- <connection from="-110514869#2" to="110514869#2" fromLane="1" toLane="1" via=":443089063_6_0" tl="443089063" linkIndex="6" dir="t" state="o"/>
- <connection from="-122394833#0" to="122394833#0" fromLane="0" toLane="0" via=":1367855969_0_0" dir="t" state="M"/>
- <connection from="-122394833#1" to="23182387#4" fromLane="0" toLane="0" via=":1367855932_3_0" dir="r" state="m"/>
- <connection from="-122394833#1" to="-122394833#0" fromLane="0" toLane="0" via=":1367855932_4_0" dir="s" state="m"/>
- <connection from="-122394833#1" to="122394833#1" fromLane="0" toLane="0" via=":1367855932_5_0" dir="t" state="m"/>
- <connection from="-122394833#2" to="122394859" fromLane="0" toLane="0" via=":1367855931_6_0" dir="r" state="="/>
- <connection from="-122394833#2" to="-122394833#1" fromLane="0" toLane="0" via=":1367855931_7_0" dir="s" state="="/>
- <connection from="-122394833#2" to="122394833#2" fromLane="0" toLane="0" via=":1367855931_8_0" dir="t" state="="/>
- <connection from="-122394833#3" to="122394845" fromLane="0" toLane="0" via=":1367855930_6_0" dir="r" state="="/>
- <connection from="-122394833#3" to="-122394833#2" fromLane="0" toLane="0" via=":1367855930_7_0" dir="s" state="="/>
- <connection from="-122394833#3" to="122394833#3" fromLane="0" toLane="0" via=":1367855930_8_0" dir="t" state="="/>
- <connection from="-122394833#4" to="122394853" fromLane="0" toLane="0" via=":1367855929_6_0" dir="s" state="="/>
- <connection from="-122394833#4" to="-122394833#3" fromLane="0" toLane="0" via=":1367855929_7_0" dir="s" state="="/>
- <connection from="-122394833#4" to="122394833#4" fromLane="0" toLane="0" via=":1367855929_8_0" dir="t" state="="/>
- <connection from="-122394833#5" to="122394864#0" fromLane="0" toLane="0" via=":1367855927_6_0" dir="r" state="="/>
- <connection from="-122394833#5" to="-122394833#4" fromLane="0" toLane="0" via=":1367855927_7_0" dir="s" state="="/>
- <connection from="-122394833#5" to="122394833#5" fromLane="0" toLane="0" via=":1367855927_8_0" dir="t" state="="/>
- <connection from="-122394834" to="-122394853" fromLane="0" toLane="0" via=":1367855907_0_0" dir="s" state="M"/>
- <connection from="-122394834" to="122394834" fromLane="0" toLane="0" via=":1367855907_1_0" dir="t" state="m"/>
- <connection from="-122394841#0" to="-122394860" fromLane="0" toLane="0" via=":1367855909_4_0" dir="r" state="M"/>
- <connection from="-122394841#0" to="-122394845" fromLane="0" toLane="0" via=":1367855909_5_0" dir="s" state="M"/>
- <connection from="-122394841#0" to="-122394834" fromLane="0" toLane="0" via=":1367855909_6_0" dir="l" state="m"/>
- <connection from="-122394841#0" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_7_0" dir="t" state="m"/>
- <connection from="-122394841#1" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_4_0" dir="r" state="M"/>
- <connection from="-122394841#1" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_5_0" dir="s" state="M"/>
- <connection from="-122394841#1" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_6_0" dir="l" state="m"/>
- <connection from="-122394841#1" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_7_0" dir="t" state="m"/>
- <connection from="-122394841#2" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_4_0" dir="r" state="M"/>
- <connection from="-122394841#2" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_5_0" dir="s" state="M"/>
- <connection from="-122394841#2" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_6_0" dir="l" state="m"/>
- <connection from="-122394841#2" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_7_0" dir="t" state="m"/>
- <connection from="-122394841#3" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_4_0" dir="r" state="M"/>
- <connection from="-122394841#3" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_5_0" dir="s" state="M"/>
- <connection from="-122394841#3" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_6_0" dir="l" state="m"/>
- <connection from="-122394841#3" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_7_0" dir="t" state="m"/>
- <connection from="-122394845" to="-122394833#2" fromLane="0" toLane="0" via=":1367855930_3_0" dir="r" state="="/>
- <connection from="-122394845" to="122394833#3" fromLane="0" toLane="0" via=":1367855930_4_0" dir="l" state="="/>
- <connection from="-122394845" to="122394845" fromLane="0" toLane="0" via=":1367855930_5_0" dir="t" state="="/>
- <connection from="-122394853" to="-122394833#3" fromLane="0" toLane="0" via=":1367855929_3_0" dir="r" state="="/>
- <connection from="-122394853" to="122394833#4" fromLane="0" toLane="0" via=":1367855929_4_0" dir="s" state="="/>
- <connection from="-122394853" to="122394853" fromLane="0" toLane="0" via=":1367855929_5_0" dir="t" state="="/>
- <connection from="-122394859" to="-122394833#1" fromLane="0" toLane="0" via=":1367855931_3_0" dir="s" state="="/>
- <connection from="-122394859" to="122394833#2" fromLane="0" toLane="0" via=":1367855931_4_0" dir="l" state="="/>
- <connection from="-122394859" to="122394859" fromLane="0" toLane="0" via=":1367855931_5_0" dir="t" state="="/>
- <connection from="-122394860" to="-122394859" fromLane="0" toLane="0" via=":1367855910_0_0" dir="s" state="M"/>
- <connection from="-122394860" to="122394860" fromLane="0" toLane="0" via=":1367855910_1_0" dir="t" state="m"/>
- <connection from="-122394864#0" to="-122394833#4" fromLane="0" toLane="0" via=":1367855927_3_0" dir="r" state="="/>
- <connection from="-122394864#0" to="122394833#5" fromLane="0" toLane="0" via=":1367855927_4_0" dir="l" state="="/>
- <connection from="-122394864#0" to="122394864#0" fromLane="0" toLane="0" via=":1367855927_5_0" dir="t" state="="/>
- <connection from="-122394864#1" to="-122394864#0" fromLane="0" toLane="0" via=":1367855926_3_0" dir="s" state="m"/>
- <connection from="-122394864#1" to="130443635#2" fromLane="0" toLane="0" via=":1367855926_4_0" dir="l" state="m"/>
- <connection from="-122394864#1" to="122394864#1" fromLane="0" toLane="0" via=":1367855926_5_0" dir="t" state="m"/>
- <connection from="-122394864#2" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_4_0" dir="r" state="M"/>
- <connection from="-122394864#2" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_5_0" dir="s" state="M"/>
- <connection from="-122394864#2" to="38318373#1" fromLane="0" toLane="0" via=":314636763_6_0" dir="l" state="m"/>
- <connection from="-122394864#2" to="122394864#2" fromLane="0" toLane="0" via=":314636763_7_0" dir="t" state="m"/>
- <connection from="-122641556#0" to="122641556#0" fromLane="0" toLane="0" via=":1369844758_0_0" dir="t" state="M"/>
- <connection from="-122641556#1" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_8_0" dir="r" state="m"/>
- <connection from="-122641556#1" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_9_0" dir="s" state="m"/>
- <connection from="-122641556#1" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_10_0" dir="l" state="m"/>
- <connection from="-122641556#1" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_11_0" dir="t" state="m"/>
- <connection from="-122641557" to="122641557" fromLane="0" toLane="0" via=":1369844780_0_0" dir="t" state="M"/>
- <connection from="-122641559#0" to="122641559#0" fromLane="0" toLane="0" via=":1369844756_0_0" dir="t" state="M"/>
- <connection from="-122641559#1" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_8_0" dir="r" state="m"/>
- <connection from="-122641559#1" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_9_0" dir="s" state="m"/>
- <connection from="-122641559#1" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_10_0" dir="l" state="m"/>
- <connection from="-122641559#1" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_11_0" dir="t" state="m"/>
- <connection from="-122641560#0" to="122641560#0" fromLane="0" toLane="0" via=":1369844763_0_0" dir="t" state="M"/>
- <connection from="-122641560#1" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_8_0" dir="r" state="m"/>
- <connection from="-122641560#1" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_9_0" dir="s" state="m"/>
- <connection from="-122641560#1" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_10_0" dir="l" state="m"/>
- <connection from="-122641560#1" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_11_0" dir="t" state="m"/>
- <connection from="-129780022#0" to="-154409621" fromLane="0" toLane="0" via=":248913124_6_0" dir="s" state="M"/>
- <connection from="-129780022#0" to="129780026#2" fromLane="0" toLane="0" via=":248913124_7_0" dir="l" state="m"/>
- <connection from="-129780022#0" to="129780022#0" fromLane="0" toLane="0" via=":248913124_8_0" dir="t" state="m"/>
- <connection from="-129780022#1" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_12_0" dir="r" state="M"/>
- <connection from="-129780022#1" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_13_0" dir="s" state="M"/>
- <connection from="-129780022#1" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_14_0" dir="l" state="m"/>
- <connection from="-129780022#1" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_15_0" dir="t" state="m"/>
- <connection from="-129780022#2" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_6_0" dir="s" state="M"/>
- <connection from="-129780022#2" to="37449253#7" fromLane="0" toLane="0" via=":13929747_7_0" dir="l" state="m"/>
- <connection from="-129780022#2" to="129780022#2" fromLane="0" toLane="0" via=":13929747_8_0" dir="t" state="m"/>
- <connection from="-129780022#3" to="144874012#1" fromLane="0" toLane="0" via=":435668534_6_0" dir="r" state="M"/>
- <connection from="-129780022#3" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_7_0" dir="s" state="M"/>
- <connection from="-129780022#3" to="129780022#3" fromLane="0" toLane="0" via=":435668534_8_0" dir="t" state="m"/>
- <connection from="-129780022#4" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_12_0" dir="r" state="m"/>
- <connection from="-129780022#4" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_13_0" dir="s" state="m"/>
- <connection from="-129780022#4" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_14_0" dir="l" state="m"/>
- <connection from="-129780022#4" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_15_0" dir="t" state="m"/>
- <connection from="-129780022#5" to="23315111#2" fromLane="0" toLane="0" via=":427996791_12_0" tl="427996791" linkIndex="12" dir="r" state="o"/>
- <connection from="-129780022#5" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_13_0" tl="427996791" linkIndex="13" dir="s" state="o"/>
- <connection from="-129780022#5" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_14_0" tl="427996791" linkIndex="14" dir="l" state="o"/>
- <connection from="-129780022#5" to="129780022#5" fromLane="0" toLane="0" via=":427996791_15_0" tl="427996791" linkIndex="15" dir="t" state="o"/>
- <connection from="-130443629#0" to="38230510#0" fromLane="0" toLane="0" via=":250685721_0_0" dir="r" state="M"/>
- <connection from="-130443629#0" to="130443629#0" fromLane="0" toLane="0" via=":250685721_1_0" dir="t" state="M"/>
- <connection from="-130443629#1" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_15_0" dir="s" state="m"/>
- <connection from="-130443629#1" to="133868191#0" fromLane="0" toLane="3" via=":243489891_16_0" dir="l" state="m"/>
- <connection from="-130443629#1" to="130443629#1" fromLane="0" toLane="0" via=":243489891_17_0" dir="t" state="m"/>
- <connection from="-130443629#2" to="81394200#2" fromLane="0" toLane="0" via=":948350640_8_0" dir="r" state="m"/>
- <connection from="-130443629#2" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_9_0" dir="s" state="m"/>
- <connection from="-130443629#2" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_10_0" dir="l" state="m"/>
- <connection from="-130443629#2" to="130443629#2" fromLane="0" toLane="0" via=":948350640_11_0" dir="t" state="m"/>
- <connection from="-130443629#3" to="37351086#0" fromLane="0" toLane="0" via=":435668511_4_0" dir="r" state="m"/>
- <connection from="-130443629#3" to="37369047#2" fromLane="0" toLane="0" via=":435668511_5_0" dir="R" state="M"/>
- <connection from="-130443629#3" to="-130443629#2" fromLane="0" toLane="0" via=":435668511_6_0" dir="s" state="m"/>
- <connection from="-130443629#3" to="130443629#3" fromLane="0" toLane="0" via=":435668511_7_0" dir="t" state="m"/>
- <connection from="-130443629#4" to="81394169#2" fromLane="0" toLane="0" via=":948350615_3_0" dir="s" state="m"/>
- <connection from="-130443629#4" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_4_0" dir="s" state="m"/>
- <connection from="-130443629#4" to="130443629#4" fromLane="0" toLane="0" via=":948350615_5_0" dir="t" state="m"/>
- <connection from="-130443629#5" to="134572336#3" fromLane="0" toLane="0" via=":428303370_3_0" dir="s" state="M"/>
- <connection from="-130443629#5" to="-130443629#4" fromLane="0" toLane="0" via=":428303370_4_0" dir="s" state="M"/>
- <connection from="-130443629#5" to="130443629#5" fromLane="0" toLane="0" via=":428303370_5_0" dir="t" state="m"/>
- <connection from="-130443629#6" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_4_0" dir="s" state="M"/>
- <connection from="-130443629#6" to="130443629#6" fromLane="0" toLane="0" via=":445506221_5_0" dir="t" state="m"/>
- <connection from="-130443629#7" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_2_0" dir="s" state="M"/>
- <connection from="-130443629#7" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_3_0" dir="t" state="m"/>
- <connection from="-130443629#8" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_8_0" dir="r" state="M"/>
- <connection from="-130443629#8" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_9_0" dir="s" state="M"/>
- <connection from="-130443629#8" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_10_0" dir="l" state="m"/>
- <connection from="-130443629#8" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_11_0" dir="t" state="m"/>
- <connection from="-130443630#0" to="105251811#0" fromLane="0" toLane="0" via=":552842256_12_0" dir="r" state="m"/>
- <connection from="-130443630#0" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_13_0" dir="R" state="m"/>
- <connection from="-130443630#0" to="-37973566" fromLane="0" toLane="0" via=":552842256_14_0" dir="s" state="m"/>
- <connection from="-130443630#0" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_15_0" dir="L" state="m"/>
- <connection from="-130443630#0" to="43684741#0" fromLane="0" toLane="0" via=":552842256_16_0" dir="l" state="m"/>
- <connection from="-130443630#0" to="130443630#0" fromLane="0" toLane="0" via=":552842256_17_0" dir="t" state="m"/>
- <connection from="-130443630#1" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_3_0" dir="r" state="M"/>
- <connection from="-130443630#1" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_4_0" dir="s" state="M"/>
- <connection from="-130443630#1" to="130443630#1" fromLane="0" toLane="0" via=":445506220_5_0" dir="t" state="m"/>
- <connection from="-130443630#10" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_3_0" dir="r" state="M"/>
- <connection from="-130443630#10" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_4_0" dir="s" state="M"/>
- <connection from="-130443630#10" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_5_0" dir="t" state="m"/>
- <connection from="-130443630#11" to="166576459" fromLane="0" toLane="0" via=":1780219355_3_0" dir="r" state="M"/>
- <connection from="-130443630#11" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_4_0" dir="s" state="M"/>
- <connection from="-130443630#11" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_5_0" dir="t" state="m"/>
- <connection from="-130443630#2" to="83038923#0" fromLane="0" toLane="0" via=":966097869_3_0" dir="r" state="M"/>
- <connection from="-130443630#2" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_4_0" dir="s" state="M"/>
- <connection from="-130443630#2" to="130443630#2" fromLane="0" toLane="0" via=":966097869_5_0" dir="t" state="m"/>
- <connection from="-130443630#3" to="-105254618" fromLane="0" toLane="0" via=":1634988377_3_0" dir="r" state="M"/>
- <connection from="-130443630#3" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_4_0" dir="s" state="M"/>
- <connection from="-130443630#3" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_5_0" dir="t" state="m"/>
- <connection from="-130443630#4" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_0_0" dir="s" state="M"/>
- <connection from="-130443630#4" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_1_0" dir="t" state="m"/>
- <connection from="-130443630#5" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_3_0" tl="446017744" linkIndex="3" dir="s" state="o"/>
- <connection from="-130443630#5" to="37973569#6" fromLane="0" toLane="0" via=":446017744_4_0" tl="446017744" linkIndex="4" dir="l" state="o"/>
- <connection from="-130443630#5" to="130443630#5" fromLane="0" toLane="0" via=":446017744_5_0" tl="446017744" linkIndex="5" dir="t" state="o"/>
- <connection from="-130443630#6" to="-130443630#5" fromLane="0" toLane="0" via=":950640413_3_0" dir="s" state="m"/>
- <connection from="-130443630#6" to="111863125#6" fromLane="0" toLane="0" via=":950640413_4_0" dir="l" state="m"/>
- <connection from="-130443630#6" to="130443630#6" fromLane="0" toLane="0" via=":950640413_5_0" dir="t" state="m"/>
- <connection from="-130443630#7" to="-37973572#1" fromLane="0" toLane="0" via=":30406599_5_0" tl="30406599" linkIndex="5" dir="r" state="o"/>
- <connection from="-130443630#7" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_6_0" tl="30406599" linkIndex="6" dir="s" state="o"/>
- <connection from="-130443630#7" to="37973572#2" fromLane="0" toLane="1" via=":30406599_7_0" tl="30406599" linkIndex="7" dir="l" state="o"/>
- <connection from="-130443630#7" to="130443630#7" fromLane="0" toLane="0" via=":30406599_8_0" tl="30406599" linkIndex="8" dir="t" state="o"/>
- <connection from="-130443630#8" to="111549913#3" fromLane="0" toLane="0" via=":950640411_0_0" dir="r" state="m"/>
- <connection from="-130443630#8" to="-130443630#7" fromLane="0" toLane="0" via=":950640411_1_0" dir="s" state="m"/>
- <connection from="-130443630#8" to="130443630#8" fromLane="0" toLane="0" via=":950640411_2_0" dir="t" state="m"/>
- <connection from="-130443630#9" to="37973568#4" fromLane="0" toLane="0" via=":446017741_0_0" tl="446017741" linkIndex="0" dir="r" state="o"/>
- <connection from="-130443630#9" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_1_0" tl="446017741" linkIndex="1" dir="s" state="o"/>
- <connection from="-130443630#9" to="130443630#9" fromLane="0" toLane="0" via=":446017741_2_0" tl="446017741" linkIndex="2" dir="t" state="o"/>
- <connection from="-132323955" to="139118804#0" fromLane="0" toLane="0" via=":320879142_0_0" dir="r" state="M"/>
- <connection from="-132323955" to="129780020" fromLane="0" toLane="0" via=":320879142_1_0" dir="R" state="M"/>
- <connection from="-132323955" to="132323955" fromLane="0" toLane="0" via=":320879142_2_0" dir="t" state="m"/>
- <connection from="-133868229#0" to="133868186" fromLane="0" toLane="0" via=":948350707_0_0" dir="r" state="M"/>
- <connection from="-133868229#0" to="81394169#4" fromLane="0" toLane="0" via=":948350707_1_0" dir="R" state="M"/>
- <connection from="-133868229#0" to="-81394200#2" fromLane="1" toLane="0" via=":948350707_2_0" dir="s" state="M"/>
- <connection from="-133868229#0" to="133868229#0" fromLane="1" toLane="1" via=":948350707_3_0" dir="t" state="m"/>
- <connection from="-133868229#1" to="37973565#6" fromLane="0" toLane="0" via=":948350588_0_0" dir="r" state="M"/>
- <connection from="-133868229#1" to="-133868229#0" fromLane="0" toLane="0" via=":948350588_1_0" dir="s" state="M"/>
- <connection from="-133868229#1" to="-133868229#0" fromLane="1" toLane="1" via=":948350588_2_0" dir="s" state="M"/>
- <connection from="-133868229#1" to="133868229#1" fromLane="1" toLane="1" via=":948350588_3_0" dir="t" state="m"/>
- <connection from="-134872478" to="59159266#1" fromLane="0" toLane="0" via=":1482088973_0_0" dir="r" state="m"/>
- <connection from="-134872478" to="134872478" fromLane="0" toLane="0" via=":1482088973_1_0" dir="t" state="m"/>
- <connection from="-139118805#0" to="-81523330#4" fromLane="0" toLane="0" via=":950094494_3_0" dir="s" state="M"/>
- <connection from="-139118805#0" to="-81523330#4" fromLane="1" toLane="1" via=":950094494_4_0" dir="s" state="M"/>
- <connection from="-139118805#0" to="139118808" fromLane="1" toLane="0" via=":950094494_5_0" dir="l" state="m"/>
- <connection from="-139118805#0" to="139118805#0" fromLane="1" toLane="1" via=":950094494_6_0" dir="t" state="m"/>
- <connection from="-139118805#1" to="37449253#6" fromLane="0" toLane="0" via=":974693391_0_0" dir="r" state="M"/>
- <connection from="-139118805#1" to="-139118805#0" fromLane="0" toLane="0" via=":974693391_1_0" dir="s" state="M"/>
- <connection from="-139118805#1" to="-139118805#0" fromLane="1" toLane="1" via=":974693391_2_0" dir="s" state="M"/>
- <connection from="-139118805#1" to="139118805#1" fromLane="1" toLane="1" via=":974693391_3_0" dir="t" state="m"/>
- <connection from="-139118805#2" to="-38319546#2" fromLane="0" toLane="0" via=":1257054172_4_0" dir="r" state="M"/>
- <connection from="-139118805#2" to="-139118805#1" fromLane="0" toLane="0" via=":1257054172_5_0" dir="s" state="M"/>
- <connection from="-139118805#2" to="-139118805#1" fromLane="1" toLane="1" via=":1257054172_6_0" dir="s" state="M"/>
- <connection from="-139118805#2" to="38319546#3" fromLane="1" toLane="0" via=":1257054172_7_0" dir="l" state="m"/>
- <connection from="-139118805#2" to="139118805#2" fromLane="1" toLane="1" via=":1257054172_8_0" dir="t" state="m"/>
- <connection from="-141191247#0" to="141191263#1" fromLane="0" toLane="0" via=":1545672819_6_0" dir="r" state="="/>
- <connection from="-141191247#0" to="-141191263#0" fromLane="0" toLane="0" via=":1545672819_7_0" dir="s" state="="/>
- <connection from="-141191247#0" to="141191247#0" fromLane="0" toLane="0" via=":1545672819_8_0" dir="t" state="="/>
- <connection from="-141191247#1" to="141191260#1" fromLane="0" toLane="0" via=":1545672806_6_0" dir="l" state="m"/>
- <connection from="-141191247#1" to="-141191247#0" fromLane="0" toLane="0" via=":1545672806_7_0" dir="s" state="m"/>
- <connection from="-141191247#1" to="141191247#1" fromLane="0" toLane="0" via=":1545672806_8_0" dir="t" state="m"/>
- <connection from="-141191247#2" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_0_0" dir="r" state="="/>
- <connection from="-141191247#2" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_1_0" dir="s" state="="/>
- <connection from="-141191247#2" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_2_0" dir="l" state="="/>
- <connection from="-141191247#2" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_3_0" dir="t" state="="/>
- <connection from="-141191247#3" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_0_0" dir="r" state="="/>
- <connection from="-141191247#3" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_1_0" dir="s" state="="/>
- <connection from="-141191247#3" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_2_0" dir="l" state="="/>
- <connection from="-141191247#3" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_3_0" dir="t" state="="/>
- <connection from="-141191247#4" to="141191261#1" fromLane="0" toLane="0" via=":1545673319_0_0" dir="r" state="m"/>
- <connection from="-141191247#4" to="-141191247#3" fromLane="0" toLane="0" via=":1545673319_1_0" dir="s" state="m"/>
- <connection from="-141191247#4" to="141191247#4" fromLane="0" toLane="0" via=":1545673319_2_0" dir="t" state="m"/>
- <connection from="-141191248#0" to="141191250#4" fromLane="0" toLane="0" via=":1545672864_3_0" dir="r" state="="/>
- <connection from="-141191248#0" to="-141191250#3" fromLane="0" toLane="0" via=":1545672864_4_0" dir="l" state="="/>
- <connection from="-141191248#0" to="141191248#0" fromLane="0" toLane="0" via=":1545672864_5_0" dir="t" state="="/>
- <connection from="-141191248#1" to="-141191248#0" fromLane="0" toLane="0" via=":1545672843_3_0" dir="s" state="="/>
- <connection from="-141191248#1" to="141191263#0" fromLane="0" toLane="0" via=":1545672843_4_0" dir="l" state="="/>
- <connection from="-141191248#1" to="141191248#1" fromLane="0" toLane="0" via=":1545672843_5_0" dir="t" state="="/>
- <connection from="-141191248#2" to="-141191248#1" fromLane="0" toLane="0" via=":1545672797_0_0" dir="s" state="="/>
- <connection from="-141191248#2" to="-141191263#1" fromLane="0" toLane="0" via=":1545672797_1_0" dir="s" state="="/>
- <connection from="-141191248#2" to="141191248#2" fromLane="0" toLane="0" via=":1545672797_2_0" dir="t" state="="/>
- <connection from="-141191249#0" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_3_0" dir="r" state="m"/>
- <connection from="-141191249#0" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_4_0" dir="l" state="m"/>
- <connection from="-141191249#0" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_5_0" dir="t" state="m"/>
- <connection from="-141191249#1" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_4_0" dir="r" state="="/>
- <connection from="-141191249#1" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_5_0" dir="s" state="="/>
- <connection from="-141191249#1" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_6_0" dir="l" state="="/>
- <connection from="-141191249#1" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_7_0" dir="t" state="="/>
- <connection from="-141191249#2" to="-141191249#1" fromLane="0" toLane="0" via=":1545673333_0_0" dir="s" state="="/>
- <connection from="-141191249#2" to="-141191251#2" fromLane="0" toLane="0" via=":1545673333_1_0" dir="l" state="="/>
- <connection from="-141191249#2" to="141191249#2" fromLane="0" toLane="0" via=":1545673333_2_0" dir="t" state="="/>
- <connection from="-141191249#3" to="-141191249#2" fromLane="0" toLane="0" via=":1545673280_0_0" dir="s" state="="/>
- <connection from="-141191249#3" to="141191251#0" fromLane="0" toLane="0" via=":1545673280_1_0" dir="l" state="="/>
- <connection from="-141191249#3" to="141191249#3" fromLane="0" toLane="0" via=":1545673280_2_0" dir="t" state="="/>
- <connection from="-141191249#4" to="-141191253#1" fromLane="0" toLane="0" via=":1545673191_3_0" dir="r" state="="/>
- <connection from="-141191249#4" to="-141191249#3" fromLane="0" toLane="0" via=":1545673191_4_0" dir="s" state="="/>
- <connection from="-141191249#4" to="141191249#4" fromLane="0" toLane="0" via=":1545673191_5_0" dir="t" state="="/>
- <connection from="-141191249#5" to="-141191249#4" fromLane="0" toLane="0" via=":1545673135_0_0" dir="s" state="="/>
- <connection from="-141191249#5" to="141191254#0" fromLane="0" toLane="0" via=":1545673135_1_0" dir="l" state="="/>
- <connection from="-141191249#5" to="141191249#5" fromLane="0" toLane="0" via=":1545673135_2_0" dir="t" state="="/>
- <connection from="-141191250#0" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_3_0" dir="r" state="m"/>
- <connection from="-141191250#0" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_4_0" dir="l" state="m"/>
- <connection from="-141191250#0" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_5_0" dir="t" state="m"/>
- <connection from="-141191250#1" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_4_0" dir="r" state="="/>
- <connection from="-141191250#1" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_5_0" dir="s" state="="/>
- <connection from="-141191250#1" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_6_0" dir="l" state="="/>
- <connection from="-141191250#1" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_7_0" dir="t" state="="/>
- <connection from="-141191250#2" to="141191264#0" fromLane="0" toLane="0" via=":1545673065_3_0" dir="r" state="="/>
- <connection from="-141191250#2" to="-141191250#1" fromLane="0" toLane="0" via=":1545673065_4_0" dir="l" state="="/>
- <connection from="-141191250#2" to="141191250#2" fromLane="0" toLane="0" via=":1545673065_5_0" dir="t" state="="/>
- <connection from="-141191250#3" to="141191262#0" fromLane="0" toLane="0" via=":1545672874_3_0" dir="r" state="="/>
- <connection from="-141191250#3" to="-141191250#2" fromLane="0" toLane="0" via=":1545672874_4_0" dir="s" state="="/>
- <connection from="-141191250#3" to="141191250#3" fromLane="0" toLane="0" via=":1545672874_5_0" dir="t" state="="/>
- <connection from="-141191250#4" to="-141191250#3" fromLane="0" toLane="0" via=":1545672864_0_0" dir="s" state="="/>
- <connection from="-141191250#4" to="141191248#0" fromLane="0" toLane="0" via=":1545672864_1_0" dir="l" state="="/>
- <connection from="-141191250#4" to="141191250#4" fromLane="0" toLane="0" via=":1545672864_2_0" dir="t" state="="/>
- <connection from="-141191250#5" to="141191252" fromLane="0" toLane="0" via=":1545672804_3_0" dir="r" state="="/>
- <connection from="-141191250#5" to="-141191250#4" fromLane="0" toLane="0" via=":1545672804_4_0" dir="s" state="="/>
- <connection from="-141191250#5" to="141191250#5" fromLane="0" toLane="0" via=":1545672804_5_0" dir="t" state="="/>
- <connection from="-141191251#0" to="141191249#3" fromLane="0" toLane="0" via=":1545673280_3_0" dir="r" state="="/>
- <connection from="-141191251#0" to="-141191249#2" fromLane="0" toLane="0" via=":1545673280_4_0" dir="l" state="="/>
- <connection from="-141191251#0" to="141191251#0" fromLane="0" toLane="0" via=":1545673280_5_0" dir="t" state="="/>
- <connection from="-141191251#1" to="-141191254#2" fromLane="0" toLane="0" via=":1545673218_6_0" dir="r" state="="/>
- <connection from="-141191251#1" to="-141191251#0" fromLane="0" toLane="0" via=":1545673218_7_0" dir="s" state="="/>
- <connection from="-141191251#1" to="141191251#1" fromLane="0" toLane="0" via=":1545673218_8_0" dir="t" state="="/>
- <connection from="-141191251#2" to="141191256#0" fromLane="0" toLane="0" via=":1545673223_6_0" dir="r" state="="/>
- <connection from="-141191251#2" to="-141191251#1" fromLane="0" toLane="0" via=":1545673223_7_0" dir="s" state="="/>
- <connection from="-141191251#2" to="141191251#2" fromLane="0" toLane="0" via=":1545673223_8_0" dir="t" state="="/>
- <connection from="-141191252" to="-141191250#4" fromLane="0" toLane="0" via=":1545672804_0_0" dir="r" state="="/>
- <connection from="-141191252" to="141191250#5" fromLane="0" toLane="0" via=":1545672804_1_0" dir="l" state="="/>
- <connection from="-141191252" to="141191252" fromLane="0" toLane="0" via=":1545672804_2_0" dir="t" state="="/>
- <connection from="-141191253#0" to="-141191258#1" fromLane="0" toLane="0" via=":1545673150_6_0" dir="r" state="="/>
- <connection from="-141191253#0" to="141191258#2" fromLane="0" toLane="0" via=":1545673150_7_0" dir="l" state="="/>
- <connection from="-141191253#0" to="141191253#0" fromLane="0" toLane="0" via=":1545673150_8_0" dir="t" state="="/>
- <connection from="-141191253#1" to="-141191253#0" fromLane="0" toLane="0" via=":1545673240_3_0" dir="s" state="="/>
- <connection from="-141191253#1" to="-141191258#3" fromLane="0" toLane="0" via=":1545673240_4_0" dir="l" state="="/>
- <connection from="-141191253#1" to="141191253#1" fromLane="0" toLane="0" via=":1545673240_5_0" dir="t" state="="/>
- <connection from="-141191254#0" to="141191249#5" fromLane="0" toLane="0" via=":1545673135_3_0" dir="r" state="="/>
- <connection from="-141191254#0" to="-141191249#4" fromLane="0" toLane="0" via=":1545673135_4_0" dir="l" state="="/>
- <connection from="-141191254#0" to="141191254#0" fromLane="0" toLane="0" via=":1545673135_5_0" dir="t" state="="/>
- <connection from="-141191254#1" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_12_0" dir="r" state="="/>
- <connection from="-141191254#1" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_13_0" dir="s" state="="/>
- <connection from="-141191254#1" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_14_0" dir="s" state="="/>
- <connection from="-141191254#1" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_15_0" dir="t" state="="/>
- <connection from="-141191254#2" to="-141191264#1" fromLane="0" toLane="0" via=":1545673123_6_0" dir="r" state="="/>
- <connection from="-141191254#2" to="-141191254#1" fromLane="0" toLane="0" via=":1545673123_7_0" dir="s" state="="/>
- <connection from="-141191254#2" to="141191254#2" fromLane="0" toLane="0" via=":1545673123_8_0" dir="t" state="="/>
- <connection from="-141191255#0" to="-141191255#1" fromLane="0" toLane="0" via=":1545672923_2_0" dir="r" state="M"/>
- <connection from="-141191255#0" to="141191255#0" fromLane="0" toLane="0" via=":1545672923_3_0" dir="t" state="m"/>
- <connection from="-141191255#1" to="-141191257" fromLane="0" toLane="0" via=":1545672999_3_0" dir="r" state="="/>
- <connection from="-141191255#1" to="-141191255#0" fromLane="0" toLane="0" via=":1545672999_4_0" dir="s" state="="/>
- <connection from="-141191255#1" to="141191255#1" fromLane="0" toLane="0" via=":1545672999_5_0" dir="t" state="="/>
- <connection from="-141191256#0" to="-141191251#1" fromLane="0" toLane="0" via=":1545673223_3_0" dir="r" state="="/>
- <connection from="-141191256#0" to="141191251#2" fromLane="0" toLane="0" via=":1545673223_4_0" dir="l" state="="/>
- <connection from="-141191256#0" to="141191256#0" fromLane="0" toLane="0" via=":1545673223_5_0" dir="t" state="="/>
- <connection from="-141191256#1" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_4_0" dir="r" state="="/>
- <connection from="-141191256#1" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_5_0" dir="s" state="="/>
- <connection from="-141191256#1" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_6_0" dir="l" state="="/>
- <connection from="-141191256#1" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_7_0" dir="t" state="="/>
- <connection from="-141191256#2" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_4_0" dir="r" state="="/>
- <connection from="-141191256#2" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_5_0" dir="s" state="="/>
- <connection from="-141191256#2" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_6_0" dir="l" state="="/>
- <connection from="-141191256#2" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_7_0" dir="t" state="="/>
- <connection from="-141191257" to="141191259#4" fromLane="0" toLane="0" via=":1545673030_3_0" dir="r" state="="/>
- <connection from="-141191257" to="-141191259#3" fromLane="0" toLane="0" via=":1545673030_4_0" dir="l" state="="/>
- <connection from="-141191257" to="141191257" fromLane="0" toLane="0" via=":1545673030_5_0" dir="t" state="="/>
- <connection from="-141191258#0" to="-141191259#4" fromLane="0" toLane="0" via=":1545672954_0_0" dir="r" state="="/>
- <connection from="-141191258#0" to="141191259#5" fromLane="0" toLane="0" via=":1545672954_1_0" dir="l" state="="/>
- <connection from="-141191258#0" to="141191258#0" fromLane="0" toLane="0" via=":1545672954_2_0" dir="t" state="="/>
- <connection from="-141191258#1" to="-141191249#5" fromLane="0" toLane="0" via=":1545673031_0_0" dir="r" state="="/>
- <connection from="-141191258#1" to="-141191258#0" fromLane="0" toLane="0" via=":1545673031_1_0" dir="s" state="="/>
- <connection from="-141191258#1" to="141191258#1" fromLane="0" toLane="0" via=":1545673031_2_0" dir="t" state="="/>
- <connection from="-141191258#2" to="141191253#0" fromLane="0" toLane="0" via=":1545673150_0_0" dir="r" state="="/>
- <connection from="-141191258#2" to="-141191258#1" fromLane="0" toLane="0" via=":1545673150_1_0" dir="s" state="="/>
- <connection from="-141191258#2" to="141191258#2" fromLane="0" toLane="0" via=":1545673150_2_0" dir="t" state="="/>
- <connection from="-141191258#3" to="-141191258#2" fromLane="0" toLane="0" via=":1545673304_6_0" dir="s" state="="/>
- <connection from="-141191258#3" to="-141191247#4" fromLane="0" toLane="0" via=":1545673304_7_0" dir="l" state="="/>
- <connection from="-141191258#3" to="141191258#3" fromLane="0" toLane="0" via=":1545673304_8_0" dir="t" state="="/>
- <connection from="-141191259#0" to="-141191259#5" fromLane="0" toLane="0" via=":1545672852_2_0" dir="s" state="M"/>
- <connection from="-141191259#0" to="141191259#0" fromLane="0" toLane="0" via=":1545672852_3_0" dir="t" state="m"/>
- <connection from="-141191259#1" to="-141191252" fromLane="0" toLane="0" via=":1545672824_6_0" dir="r" state="="/>
- <connection from="-141191259#1" to="-141191259#0" fromLane="0" toLane="0" via=":1545672824_7_0" dir="s" state="="/>
- <connection from="-141191259#1" to="141191259#1" fromLane="0" toLane="0" via=":1545672824_8_0" dir="t" state="="/>
- <connection from="-141191259#2" to="-141191256#2" fromLane="0" toLane="0" via=":1545672910_0_0" dir="r" state="="/>
- <connection from="-141191259#2" to="-141191259#1" fromLane="0" toLane="0" via=":1545672910_1_0" dir="s" state="="/>
- <connection from="-141191259#2" to="141191259#2" fromLane="0" toLane="0" via=":1545672910_2_0" dir="t" state="="/>
- <connection from="-141191259#3" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_4_0" dir="r" state="="/>
- <connection from="-141191259#3" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_5_0" dir="s" state="="/>
- <connection from="-141191259#3" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_6_0" dir="s" state="="/>
- <connection from="-141191259#3" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_7_0" dir="t" state="="/>
- <connection from="-141191259#4" to="-141191259#3" fromLane="0" toLane="0" via=":1545673030_0_0" dir="s" state="="/>
- <connection from="-141191259#4" to="141191257" fromLane="0" toLane="0" via=":1545673030_1_0" dir="l" state="="/>
- <connection from="-141191259#4" to="141191259#4" fromLane="0" toLane="0" via=":1545673030_2_0" dir="t" state="="/>
- <connection from="-141191259#5" to="141191258#0" fromLane="0" toLane="0" via=":1545672954_3_0" dir="r" state="="/>
- <connection from="-141191259#5" to="-141191259#4" fromLane="0" toLane="0" via=":1545672954_4_0" dir="s" state="="/>
- <connection from="-141191259#5" to="141191259#5" fromLane="0" toLane="0" via=":1545672954_5_0" dir="t" state="="/>
- <connection from="-141191262#0" to="-141191250#2" fromLane="0" toLane="0" via=":1545672874_0_0" dir="r" state="="/>
- <connection from="-141191262#0" to="141191250#3" fromLane="0" toLane="0" via=":1545672874_1_0" dir="l" state="="/>
- <connection from="-141191262#0" to="141191262#0" fromLane="0" toLane="0" via=":1545672874_2_0" dir="t" state="="/>
- <connection from="-141191262#1" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_0_0" dir="r" state="="/>
- <connection from="-141191262#1" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_1_0" dir="s" state="="/>
- <connection from="-141191262#1" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_2_0" dir="l" state="="/>
- <connection from="-141191262#1" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_3_0" dir="t" state="="/>
- <connection from="-141191263#0" to="141191248#1" fromLane="0" toLane="0" via=":1545672843_6_0" dir="r" state="="/>
- <connection from="-141191263#0" to="-141191248#0" fromLane="0" toLane="0" via=":1545672843_7_0" dir="l" state="="/>
- <connection from="-141191263#0" to="141191263#0" fromLane="0" toLane="0" via=":1545672843_8_0" dir="t" state="="/>
- <connection from="-141191263#1" to="-141191263#0" fromLane="0" toLane="0" via=":1545672819_3_0" dir="r" state="="/>
- <connection from="-141191263#1" to="141191247#0" fromLane="0" toLane="0" via=":1545672819_4_0" dir="l" state="="/>
- <connection from="-141191263#1" to="141191263#1" fromLane="0" toLane="0" via=":1545672819_5_0" dir="t" state="="/>
- <connection from="-141191264#0" to="-141191250#1" fromLane="0" toLane="0" via=":1545673065_0_0" dir="r" state="="/>
- <connection from="-141191264#0" to="141191250#2" fromLane="0" toLane="0" via=":1545673065_1_0" dir="l" state="="/>
- <connection from="-141191264#0" to="141191264#0" fromLane="0" toLane="0" via=":1545673065_2_0" dir="t" state="="/>
- <connection from="-141191264#1" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_0_0" dir="r" state="="/>
- <connection from="-141191264#1" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_1_0" dir="s" state="="/>
- <connection from="-141191264#1" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_2_0" dir="l" state="="/>
- <connection from="-141191264#1" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_3_0" dir="t" state="="/>
- <connection from="-149422193#0" to="-149422210#1" fromLane="0" toLane="0" via=":443101921_0_0" dir="s" state="m"/>
- <connection from="-149422193#0" to="101272426#2" fromLane="0" toLane="0" via=":443101921_1_0" dir="l" state="m"/>
- <connection from="-149422193#0" to="149422193#0" fromLane="0" toLane="0" via=":443101921_2_0" dir="t" state="m"/>
- <connection from="-149422193#1" to="-149422193#0" fromLane="0" toLane="0" via=":2265767389_0_0" dir="s" state="m"/>
- <connection from="-149422193#1" to="170590354#2" fromLane="0" toLane="1" via=":2265767389_1_0" dir="l" state="m"/>
- <connection from="-149422193#1" to="149422193#1" fromLane="0" toLane="0" via=":2265767389_2_0" dir="t" state="m"/>
- <connection from="-149422199#0" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_3_0" dir="r" state="m"/>
- <connection from="-149422199#0" to="23262356#3" fromLane="0" toLane="0" via=":255227475_4_0" dir="l" state="m"/>
- <connection from="-149422199#0" to="149422199#0" fromLane="0" toLane="0" via=":255227475_5_0" dir="t" state="m"/>
- <connection from="-149422199#1" to="23566901#1" fromLane="0" toLane="0" via=":255227480_12_0" dir="R" state="M"/>
- <connection from="-149422199#1" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_13_0" dir="R" state="M"/>
- <connection from="-149422199#1" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_14_0" dir="s" state="M"/>
- <connection from="-149422199#1" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_15_0" dir="l" state="m"/>
- <connection from="-149422199#1" to="166728377#0" fromLane="0" toLane="0" via=":255227480_16_0" dir="L" state="M"/>
- <connection from="-149422199#1" to="149422199#1" fromLane="0" toLane="0" via=":255227480_17_0" dir="t" state="m"/>
- <connection from="-149422199#2" to="166728377#1" fromLane="0" toLane="0" via=":255227482_10_0" dir="r" state="M"/>
- <connection from="-149422199#2" to="149422210#0" fromLane="0" toLane="0" via=":255227482_11_0" dir="R" state="M"/>
- <connection from="-149422199#2" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_12_0" dir="s" state="M"/>
- <connection from="-149422199#2" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_13_0" dir="s" state="M"/>
- <connection from="-149422199#2" to="149422199#2" fromLane="0" toLane="0" via=":255227482_14_0" dir="t" state="m"/>
- <connection from="-149422210#0" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_0_0" dir="R" state="m"/>
- <connection from="-149422210#0" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_1_0" dir="R" state="m"/>
- <connection from="-149422210#0" to="149422199#2" fromLane="0" toLane="0" via=":255227482_2_0" dir="l" state="m"/>
- <connection from="-149422210#0" to="166728377#1" fromLane="0" toLane="0" via=":255227482_3_0" dir="L" state="m"/>
- <connection from="-149422210#0" to="149422210#0" fromLane="0" toLane="0" via=":255227482_4_0" dir="t" state="m"/>
- <connection from="-149422210#1" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_0_0" dir="s" state="M"/>
- <connection from="-149422210#1" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_1_0" dir="s" state="M"/>
- <connection from="-149422210#1" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_2_0" dir="s" state="M"/>
- <connection from="-149422210#1" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_3_0" dir="s" state="M"/>
- <connection from="-149422210#1" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_4_0" dir="t" state="m"/>
- <connection from="-149819220" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_3_0" dir="r" state="m"/>
- <connection from="-149819220" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_4_0" dir="l" state="m"/>
- <connection from="-149819220" to="149819220" fromLane="0" toLane="0" via=":1224074532_5_0" dir="t" state="m"/>
- <connection from="-149819222" to="149819232#0" fromLane="0" toLane="0" via=":1627657783_0_0" dir="r" state="M"/>
- <connection from="-149819222" to="149819222" fromLane="0" toLane="0" via=":1627657783_1_0" dir="t" state="m"/>
- <connection from="-149819224" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_0_0" dir="r" state="m"/>
- <connection from="-149819224" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_1_0" dir="l" state="m"/>
- <connection from="-149819224" to="149819224" fromLane="0" toLane="0" via=":1627657822_2_0" dir="t" state="m"/>
- <connection from="-149819227#0" to="149819227#0" fromLane="0" toLane="0" via=":1224074527_0_0" dir="t" state="M"/>
- <connection from="-149819227#1" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_4_0" dir="r" state="M"/>
- <connection from="-149819227#1" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_5_0" dir="s" state="M"/>
- <connection from="-149819227#1" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_6_0" dir="l" state="m"/>
- <connection from="-149819227#1" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_7_0" dir="t" state="m"/>
- <connection from="-149819227#2" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_0_0" dir="s" state="M"/>
- <connection from="-149819227#2" to="-149819224" fromLane="0" toLane="0" via=":1627657825_1_0" dir="l" state="m"/>
- <connection from="-149819227#2" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_2_0" dir="t" state="m"/>
- <connection from="-149819227#3" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_0_0" dir="s" state="M"/>
- <connection from="-149819227#3" to="149819220" fromLane="0" toLane="0" via=":1224074532_1_0" dir="l" state="m"/>
- <connection from="-149819227#3" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_2_0" dir="t" state="m"/>
- <connection from="-149819232#0" to="149819222" fromLane="0" toLane="0" via=":1627657783_2_0" dir="l" state="M"/>
- <connection from="-149819232#0" to="149819232#0" fromLane="0" toLane="0" via=":1627657783_3_0" dir="t" state="m"/>
- <connection from="-149819232#1" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_6_0" dir="s" state="M"/>
- <connection from="-149819232#1" to="-149819220" fromLane="0" toLane="0" via=":1224074535_7_0" dir="l" state="m"/>
- <connection from="-149819232#1" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_8_0" dir="t" state="m"/>
- <connection from="-149819232#2" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_6_0" dir="s" state="M"/>
- <connection from="-149819232#2" to="149819224" fromLane="0" toLane="0" via=":1627657822_7_0" dir="l" state="m"/>
- <connection from="-149819232#2" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_8_0" dir="t" state="m"/>
- <connection from="-149819232#3" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_6_0" dir="s" state="M"/>
- <connection from="-149819232#3" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_7_0" dir="l" state="m"/>
- <connection from="-149819232#3" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_8_0" dir="t" state="m"/>
- <connection from="-149868584#0" to="149868584#0" fromLane="1" toLane="1" via=":13990620_0_0" dir="t" state="M"/>
- <connection from="-149868584#1" to="-149422193#1" fromLane="0" toLane="0" via=":255227483_13_0" dir="r" state="M"/>
- <connection from="-149868584#1" to="-149868584#0" fromLane="0" toLane="0" via=":255227483_14_0" dir="s" state="M"/>
- <connection from="-149868584#1" to="-149868584#0" fromLane="1" toLane="1" via=":255227483_15_0" dir="s" state="M"/>
- <connection from="-149868584#1" to="24573947#0" fromLane="1" toLane="0" via=":255227483_16_0" dir="l" state="m"/>
- <connection from="-149868584#1" to="149868584#1" fromLane="1" toLane="1" via=":255227483_17_0" dir="t" state="m"/>
- <connection from="-149868584#2" to="23262356#0" fromLane="0" toLane="0" via=":255227471_13_0" dir="r" state="M"/>
- <connection from="-149868584#2" to="-149868584#1" fromLane="0" toLane="0" via=":255227471_14_0" dir="s" state="M"/>
- <connection from="-149868584#2" to="-149868584#1" fromLane="1" toLane="1" via=":255227471_15_0" dir="s" state="M"/>
- <connection from="-149868584#2" to="37772597#0" fromLane="1" toLane="0" via=":255227471_16_0" dir="l" state="m"/>
- <connection from="-149868584#2" to="149868584#2" fromLane="1" toLane="1" via=":255227471_17_0" dir="t" state="m"/>
- <connection from="-149868584#3" to="-149868584#2" fromLane="0" toLane="1" via=":1168929657_6_0" tl="1168929657" linkIndex="6" dir="s" state="o"/>
- <connection from="-149868584#3" to="154844487#1" fromLane="1" toLane="0" via=":1168929657_7_0" tl="1168929657" linkIndex="7" dir="l" state="o"/>
- <connection from="-149868584#3" to="149868584#3" fromLane="1" toLane="1" via=":1168929657_8_0" tl="1168929657" linkIndex="8" dir="t" state="o"/>
- <connection from="-149868584#4" to="-160587538#3" fromLane="0" toLane="0" via=":1726394724_13_0" tl="1726394724" linkIndex="13" dir="r" state="o"/>
- <connection from="-149868584#4" to="-149868584#3" fromLane="0" toLane="0" via=":1726394724_14_0" tl="1726394724" linkIndex="14" dir="s" state="o"/>
- <connection from="-149868584#4" to="-149868584#3" fromLane="1" toLane="1" via=":1726394724_15_0" tl="1726394724" linkIndex="15" dir="s" state="o"/>
- <connection from="-149868584#4" to="160587538#4" fromLane="1" toLane="1" via=":1726394724_16_0" tl="1726394724" linkIndex="16" dir="l" state="o"/>
- <connection from="-149868584#4" to="149868584#4" fromLane="1" toLane="1" via=":1726394724_17_0" tl="1726394724" linkIndex="17" dir="t" state="o"/>
- <connection from="-149868584#5" to="154844470#1" fromLane="0" toLane="0" via=":1168929383_6_0" tl="1168929383" linkIndex="6" dir="r" state="o"/>
- <connection from="-149868584#5" to="-149868584#4" fromLane="1" toLane="0" via=":1168929383_7_0" tl="1168929383" linkIndex="7" dir="s" state="o"/>
- <connection from="-149868584#5" to="149868584#5" fromLane="1" toLane="1" via=":1168929383_8_0" tl="1168929383" linkIndex="8" dir="t" state="o"/>
- <connection from="-149868584#6" to="38319550#6" fromLane="0" toLane="0" via=":767282288_13_0" tl="767282288" linkIndex="13" dir="r" state="o"/>
- <connection from="-149868584#6" to="-149868584#5" fromLane="0" toLane="0" via=":767282288_14_0" tl="767282288" linkIndex="14" dir="s" state="o"/>
- <connection from="-149868584#6" to="-149868584#5" fromLane="1" toLane="1" via=":767282288_15_0" tl="767282288" linkIndex="15" dir="s" state="o"/>
- <connection from="-149868584#6" to="-38319550#5" fromLane="1" toLane="0" via=":767282288_16_0" tl="767282288" linkIndex="16" dir="l" state="o"/>
- <connection from="-149868584#6" to="149868584#6" fromLane="1" toLane="1" via=":767282288_17_0" tl="767282288" linkIndex="17" dir="t" state="o"/>
- <connection from="-149868584#7" to="-149868584#6" fromLane="0" toLane="0" via=":13929775_7_0" tl="13929775" linkIndex="7" dir="s" state="o"/>
- <connection from="-149868584#7" to="-149868584#6" fromLane="1" toLane="1" via=":13929775_8_0" tl="13929775" linkIndex="8" dir="s" state="o"/>
- <connection from="-149868584#7" to="42976410#0" fromLane="1" toLane="0" via=":13929775_9_0" tl="13929775" linkIndex="9" dir="l" state="o"/>
- <connection from="-149868584#7" to="149868584#7" fromLane="1" toLane="1" via=":13929775_10_0" tl="13929775" linkIndex="10" dir="t" state="o"/>
- <connection from="-149868584#8" to="-149868584#7" fromLane="0" toLane="1" via=":438042369_8_0" tl="438042369" linkIndex="8" dir="s" state="o"/>
- <connection from="-149868584#8" to="42976405#0" fromLane="1" toLane="1" via=":438042369_9_0" tl="438042369" linkIndex="9" dir="l" state="o"/>
- <connection from="-149868584#8" to="149868584#8" fromLane="1" toLane="1" via=":438042369_10_0" tl="438042369" linkIndex="10" dir="t" state="o"/>
- <connection from="-151164683" to="197955309#1" fromLane="0" toLane="0" via=":1639892546_3_0" dir="r" state="="/>
- <connection from="-151164683" to="-197955309#0" fromLane="0" toLane="0" via=":1639892546_4_0" dir="l" state="="/>
- <connection from="-151164683" to="151164683" fromLane="0" toLane="0" via=":1639892546_5_0" dir="t" state="="/>
- <connection from="-154409621" to="37771900#0" fromLane="0" toLane="0" via=":566579340_0_0" dir="r" state="M"/>
- <connection from="-154409621" to="154409621" fromLane="0" toLane="0" via=":566579340_1_0" dir="t" state="M"/>
- <connection from="-154844500#0" to="154844474#0" fromLane="0" toLane="0" via=":1669480281_0_0" dir="r" state="m"/>
- <connection from="-154844500#0" to="-160587542" fromLane="0" toLane="0" via=":1669480281_1_0" dir="s" state="M"/>
- <connection from="-154844500#0" to="154844500#0" fromLane="0" toLane="0" via=":1669480281_2_0" dir="t" state="m"/>
- <connection from="-154844500#1" to="101272435#5" fromLane="0" toLane="0" via=":441266880_0_0" tl="441266880" linkIndex="0" dir="r" state="o"/>
- <connection from="-154844500#1" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_1_0" tl="441266880" linkIndex="1" dir="s" state="o"/>
- <connection from="-154844500#1" to="154844500#1" fromLane="0" toLane="0" via=":441266880_2_0" tl="441266880" linkIndex="2" dir="t" state="o"/>
- <connection from="-154844500#2" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_4_0" dir="r" state="M"/>
- <connection from="-154844500#2" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_5_0" dir="s" state="M"/>
- <connection from="-154844500#2" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_6_0" dir="l" state="m"/>
- <connection from="-154844500#2" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_7_0" dir="t" state="m"/>
- <connection from="-154844500#3" to="-154844500#2" fromLane="0" toLane="0" via=":441266854_0_0" tl="441266854" linkIndex="0" dir="s" state="o"/>
- <connection from="-154844500#3" to="154844500#3" fromLane="0" toLane="0" via=":441266854_1_0" tl="441266854" linkIndex="1" dir="t" state="o"/>
- <connection from="-154844503" to="-110514869#2" fromLane="0" toLane="1" via=":1669480282_4_0" dir="s" state="m"/>
- <connection from="-154844503" to="154844485#0" fromLane="1" toLane="1" via=":1669480282_5_0" dir="l" state="m"/>
- <connection from="-154844503" to="154844503" fromLane="1" toLane="1" via=":1669480282_6_0" dir="t" state="m"/>
- <connection from="-160584981" to="160584982#0" fromLane="0" toLane="0" via=":1726380187_2_0" dir="s" state="M"/>
- <connection from="-160584981" to="160584981" fromLane="0" toLane="0" via=":1726380187_3_0" dir="t" state="m"/>
- <connection from="-160584984" to="37973568#2" fromLane="0" toLane="0" via=":446017738_3_0" dir="r" state="M"/>
- <connection from="-160584984" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_4_0" dir="s" state="M"/>
- <connection from="-160584984" to="160584984" fromLane="0" toLane="0" via=":446017738_5_0" dir="t" state="m"/>
- <connection from="-160587537#0" to="-154844503" fromLane="0" toLane="0" via=":1726394726_0_0" tl="1726394726" linkIndex="0" dir="r" state="o"/>
- <connection from="-160587537#0" to="-160587538#7" fromLane="1" toLane="1" via=":1726394726_1_0" tl="1726394726" linkIndex="1" dir="s" state="o"/>
- <connection from="-160587537#0" to="160587542" fromLane="1" toLane="1" via=":1726394726_2_0" tl="1726394726" linkIndex="2" dir="l" state="o"/>
- <connection from="-160587537#0" to="160587537#0" fromLane="1" toLane="1" via=":1726394726_3_0" tl="1726394726" linkIndex="3" dir="t" state="o"/>
- <connection from="-160587537#1" to="-38319548#4" fromLane="0" toLane="0" via=":1726394727_0_0" dir="r" state="M"/>
- <connection from="-160587537#1" to="-160587537#0" fromLane="0" toLane="0" via=":1726394727_1_0" dir="s" state="M"/>
- <connection from="-160587537#1" to="-160587537#0" fromLane="1" toLane="1" via=":1726394727_2_0" dir="s" state="M"/>
- <connection from="-160587537#1" to="38319548#5" fromLane="1" toLane="0" via=":1726394727_3_0" dir="l" state="m"/>
- <connection from="-160587537#1" to="160587537#1" fromLane="1" toLane="1" via=":1726394727_4_0" dir="t" state="m"/>
- <connection from="-160587537#2" to="-160587537#1" fromLane="0" toLane="0" via=":1726394728_0_0" dir="s" state="M"/>
- <connection from="-160587537#2" to="-160587537#1" fromLane="1" toLane="1" via=":1726394728_1_0" dir="s" state="M"/>
- <connection from="-160587537#2" to="172498387#3" fromLane="1" toLane="0" via=":1726394728_2_0" dir="l" state="m"/>
- <connection from="-160587537#2" to="160587537#2" fromLane="1" toLane="1" via=":1726394728_3_0" dir="t" state="m"/>
- <connection from="-160587537#3" to="-160587537#2" fromLane="0" toLane="1" via=":1726394729_0_0" dir="s" state="m"/>
- <connection from="-160587537#3" to="149408824#1" fromLane="1" toLane="1" via=":1726394729_1_0" dir="l" state="m"/>
- <connection from="-160587537#3" to="160587537#3" fromLane="1" toLane="1" via=":1726394729_2_0" dir="t" state="m"/>
- <connection from="-160587538#0" to="160587538#0" fromLane="1" toLane="1" via=":1726394722_0_0" tl="1726394722" linkIndex="0" dir="t" state="o"/>
- <connection from="-160587538#1" to="-197955309#2" fromLane="0" toLane="0" via=":2081499950_0_0" dir="r" state="M"/>
- <connection from="-160587538#1" to="-160587538#0" fromLane="0" toLane="0" via=":2081499950_1_0" dir="s" state="M"/>
- <connection from="-160587538#1" to="-160587538#0" fromLane="1" toLane="1" via=":2081499950_2_0" dir="s" state="M"/>
- <connection from="-160587538#1" to="197955309#3" fromLane="1" toLane="0" via=":2081499950_3_0" dir="l" state="m"/>
- <connection from="-160587538#1" to="160587538#1" fromLane="1" toLane="1" via=":2081499950_4_0" dir="t" state="m"/>
- <connection from="-160587538#2" to="-160587538#1" fromLane="0" toLane="1" via=":1168929634_0_0" tl="1168929634" linkIndex="0" dir="s" state="o"/>
- <connection from="-160587538#2" to="154844478" fromLane="1" toLane="0" via=":1168929634_1_0" tl="1168929634" linkIndex="1" dir="l" state="o"/>
- <connection from="-160587538#2" to="160587538#2" fromLane="1" toLane="1" via=":1168929634_2_0" tl="1168929634" linkIndex="2" dir="t" state="o"/>
- <connection from="-160587538#3" to="-160587538#2" fromLane="0" toLane="1" via=":1726394723_0_0" dir="s" state="m"/>
- <connection from="-160587538#3" to="111863096#2" fromLane="1" toLane="0" via=":1726394723_1_0" dir="l" state="m"/>
- <connection from="-160587538#3" to="160587538#3" fromLane="1" toLane="1" via=":1726394723_2_0" dir="t" state="m"/>
- <connection from="-160587538#4" to="149868584#4" fromLane="0" toLane="0" via=":1726394724_0_0" tl="1726394724" linkIndex="0" dir="r" state="o"/>
- <connection from="-160587538#4" to="-160587538#3" fromLane="1" toLane="1" via=":1726394724_1_0" tl="1726394724" linkIndex="1" dir="s" state="o"/>
- <connection from="-160587538#4" to="-149868584#3" fromLane="1" toLane="1" via=":1726394724_2_0" tl="1726394724" linkIndex="2" dir="l" state="o"/>
- <connection from="-160587538#4" to="160587538#4" fromLane="1" toLane="1" via=":1726394724_3_0" tl="1726394724" linkIndex="3" dir="t" state="o"/>
- <connection from="-160587538#5" to="103851602#3" fromLane="0" toLane="0" via=":1726394725_0_0" dir="r" state="m"/>
- <connection from="-160587538#5" to="-160587538#4" fromLane="1" toLane="0" via=":1726394725_1_0" dir="s" state="M"/>
- <connection from="-160587538#5" to="160587538#5" fromLane="1" toLane="1" via=":1726394725_2_0" dir="t" state="m"/>
- <connection from="-160587538#6" to="154844486" fromLane="0" toLane="0" via=":1168929558_0_0" tl="1168929558" linkIndex="0" dir="r" state="o"/>
- <connection from="-160587538#6" to="-160587538#5" fromLane="1" toLane="0" via=":1168929558_1_0" tl="1168929558" linkIndex="1" dir="s" state="o"/>
- <connection from="-160587538#6" to="160587538#6" fromLane="1" toLane="1" via=":1168929558_2_0" tl="1168929558" linkIndex="2" dir="t" state="o"/>
- <connection from="-160587538#7" to="-160587538#6" fromLane="0" toLane="0" via=":1913728534_0_0" tl="1913728534" linkIndex="0" dir="s" state="o"/>
- <connection from="-160587538#7" to="-160587538#6" fromLane="1" toLane="1" via=":1913728534_1_0" tl="1913728534" linkIndex="1" dir="s" state="o"/>
- <connection from="-160587538#7" to="160587538#7" fromLane="1" toLane="1" via=":1913728534_2_0" tl="1913728534" linkIndex="2" dir="t" state="o"/>
- <connection from="-160587542" to="160587537#0" fromLane="0" toLane="0" via=":1726394726_4_0" tl="1726394726" linkIndex="4" dir="r" state="o"/>
- <connection from="-160587542" to="-154844503" fromLane="0" toLane="0" via=":1726394726_5_0" tl="1726394726" linkIndex="5" dir="s" state="o"/>
- <connection from="-160587542" to="-154844503" fromLane="1" toLane="1" via=":1726394726_6_0" tl="1726394726" linkIndex="6" dir="s" state="o"/>
- <connection from="-160587542" to="-160587538#7" fromLane="1" toLane="1" via=":1726394726_7_0" tl="1726394726" linkIndex="7" dir="l" state="o"/>
- <connection from="-160587542" to="160587542" fromLane="1" toLane="1" via=":1726394726_8_0" tl="1726394726" linkIndex="8" dir="t" state="o"/>
- <connection from="-166576459" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_0_0" dir="r" state="m"/>
- <connection from="-166576459" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_1_0" dir="l" state="m"/>
- <connection from="-166576459" to="166576459" fromLane="0" toLane="0" via=":1780219355_2_0" dir="t" state="m"/>
- <connection from="-166576461#0" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_3_0" dir="r" state="m"/>
- <connection from="-166576461#0" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_4_0" dir="l" state="m"/>
- <connection from="-166576461#0" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_5_0" dir="t" state="m"/>
- <connection from="-166576461#1" to="166576464#0" fromLane="0" toLane="0" via=":1780219366_3_0" dir="r" state="="/>
- <connection from="-166576461#1" to="-166576461#0" fromLane="0" toLane="0" via=":1780219366_4_0" dir="s" state="="/>
- <connection from="-166576461#1" to="166576461#1" fromLane="0" toLane="0" via=":1780219366_5_0" dir="t" state="="/>
- <connection from="-166576462#0" to="38319550#3" fromLane="0" toLane="0" via=":1780219365_6_0" dir="r" state="M"/>
- <connection from="-166576462#0" to="-38319550#2" fromLane="0" toLane="0" via=":1780219365_7_0" dir="l" state="M"/>
- <connection from="-166576462#0" to="166576462#0" fromLane="0" toLane="0" via=":1780219365_8_0" dir="t" state="m"/>
- <connection from="-166576462#1" to="-166576462#0" fromLane="0" toLane="0" via=":1780219377_6_0" dir="s" state="m"/>
- <connection from="-166576462#1" to="42976410#3" fromLane="0" toLane="0" via=":1780219377_7_0" dir="l" state="m"/>
- <connection from="-166576462#1" to="166576462#1" fromLane="0" toLane="0" via=":1780219377_8_0" dir="t" state="m"/>
- <connection from="-166576462#2" to="-166576462#1" fromLane="0" toLane="0" via=":1780219361_7_0" dir="s" state="m"/>
- <connection from="-166576462#2" to="42976405#3" fromLane="0" toLane="1" via=":1780219361_8_0" dir="l" state="m"/>
- <connection from="-166576462#2" to="166576462#2" fromLane="0" toLane="0" via=":1780219361_9_0" dir="t" state="m"/>
- <connection from="-166576462#3" to="133960539#2" fromLane="0" toLane="0" via=":1780219359_7_0" dir="r" state="m"/>
- <connection from="-166576462#3" to="-166576462#2" fromLane="0" toLane="0" via=":1780219359_8_0" dir="s" state="m"/>
- <connection from="-166576462#3" to="166576462#3" fromLane="0" toLane="0" via=":1780219359_9_0" dir="t" state="m"/>
- <connection from="-166576462#4" to="-166576462#3" fromLane="0" toLane="0" via=":1780219341_6_0" dir="s" state="m"/>
- <connection from="-166576462#4" to="37973569#3" fromLane="0" toLane="0" via=":1780219341_7_0" dir="l" state="m"/>
- <connection from="-166576462#4" to="166576462#4" fromLane="0" toLane="0" via=":1780219341_8_0" dir="t" state="m"/>
- <connection from="-166576462#5" to="-37973572#0" fromLane="0" toLane="0" via=":1780219353_9_0" dir="r" state="m"/>
- <connection from="-166576462#5" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_10_0" dir="s" state="m"/>
- <connection from="-166576462#5" to="37973572#1" fromLane="0" toLane="1" via=":1780219353_11_0" dir="l" state="m"/>
- <connection from="-166576462#5" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_12_0" dir="t" state="m"/>
- <connection from="-166576462#6" to="37973568#5" fromLane="0" toLane="0" via=":1780219360_3_0" dir="r" state="m"/>
- <connection from="-166576462#6" to="-166576462#5" fromLane="0" toLane="0" via=":1780219360_4_0" dir="s" state="m"/>
- <connection from="-166576462#6" to="166576462#6" fromLane="0" toLane="0" via=":1780219360_5_0" dir="t" state="m"/>
- <connection from="-166576462#7" to="166576468#0" fromLane="0" toLane="0" via=":1780219369_6_0" dir="r" state="="/>
- <connection from="-166576462#7" to="-166576462#6" fromLane="0" toLane="0" via=":1780219369_7_0" dir="s" state="="/>
- <connection from="-166576462#7" to="166576462#7" fromLane="0" toLane="0" via=":1780219369_8_0" dir="t" state="="/>
- <connection from="-166576462#8" to="-166576462#7" fromLane="0" toLane="0" via=":1780219335_3_0" dir="s" state="="/>
- <connection from="-166576462#8" to="166576466#0" fromLane="0" toLane="0" via=":1780219335_4_0" dir="l" state="="/>
- <connection from="-166576462#8" to="166576462#8" fromLane="0" toLane="0" via=":1780219335_5_0" dir="t" state="="/>
- <connection from="-166576462#9" to="-166576462#8" fromLane="0" toLane="0" via=":1780219348_6_0" dir="s" state="="/>
- <connection from="-166576462#9" to="-166576463" fromLane="0" toLane="0" via=":1780219348_7_0" dir="s" state="="/>
- <connection from="-166576462#9" to="166576462#9" fromLane="0" toLane="0" via=":1780219348_8_0" dir="t" state="="/>
- <connection from="-166576463" to="-166576466#0" fromLane="0" toLane="0" via=":1780219344_3_0" dir="r" state="="/>
- <connection from="-166576463" to="166576466#1" fromLane="0" toLane="0" via=":1780219344_4_0" dir="l" state="="/>
- <connection from="-166576463" to="166576463" fromLane="0" toLane="0" via=":1780219344_5_0" dir="t" state="="/>
- <connection from="-166576464#0" to="-166576461#0" fromLane="0" toLane="0" via=":1780219366_0_0" dir="r" state="="/>
- <connection from="-166576464#0" to="166576461#1" fromLane="0" toLane="0" via=":1780219366_1_0" dir="l" state="="/>
- <connection from="-166576464#0" to="166576464#0" fromLane="0" toLane="0" via=":1780219366_2_0" dir="t" state="="/>
- <connection from="-166576464#1" to="-166576462#9" fromLane="0" toLane="0" via=":1780219373_0_0" dir="r" state="="/>
- <connection from="-166576464#1" to="-166576464#0" fromLane="0" toLane="0" via=":1780219373_1_0" dir="s" state="="/>
- <connection from="-166576464#1" to="166576464#1" fromLane="0" toLane="0" via=":1780219373_2_0" dir="t" state="="/>
- <connection from="-166576464#2" to="-166576464#1" fromLane="0" toLane="0" via=":1780219331_5_0" dir="s" state="m"/>
- <connection from="-166576464#2" to="42976406#3" fromLane="0" toLane="2" via=":1780219331_6_0" dir="l" state="m"/>
- <connection from="-166576464#2" to="166576464#2" fromLane="0" toLane="0" via=":1780219331_7_0" dir="t" state="m"/>
- <connection from="-166576464#3" to="154500693#1" fromLane="0" toLane="0" via=":1780219342_0_0" dir="r" state="m"/>
- <connection from="-166576464#3" to="-166576464#2" fromLane="0" toLane="0" via=":1780219342_1_0" dir="s" state="m"/>
- <connection from="-166576464#3" to="166576464#3" fromLane="0" toLane="0" via=":1780219342_2_0" dir="t" state="m"/>
- <connection from="-166576464#4" to="101272424#1" fromLane="0" toLane="0" via=":1780219363_0_0" dir="r" state="m"/>
- <connection from="-166576464#4" to="-166576464#3" fromLane="0" toLane="0" via=":1780219363_1_0" dir="s" state="m"/>
- <connection from="-166576464#4" to="166576464#4" fromLane="0" toLane="0" via=":1780219363_2_0" dir="t" state="m"/>
- <connection from="-166576466#0" to="166576462#8" fromLane="0" toLane="0" via=":1780219335_6_0" dir="r" state="="/>
- <connection from="-166576466#0" to="-166576462#7" fromLane="0" toLane="0" via=":1780219335_7_0" dir="l" state="="/>
- <connection from="-166576466#0" to="166576466#0" fromLane="0" toLane="0" via=":1780219335_8_0" dir="t" state="="/>
- <connection from="-166576466#1" to="166576463" fromLane="0" toLane="0" via=":1780219344_6_0" dir="r" state="="/>
- <connection from="-166576466#1" to="-166576466#0" fromLane="0" toLane="0" via=":1780219344_7_0" dir="s" state="="/>
- <connection from="-166576466#1" to="166576466#1" fromLane="0" toLane="0" via=":1780219344_8_0" dir="t" state="="/>
- <connection from="-166576466#2" to="-166576459" fromLane="0" toLane="0" via=":1780219374_6_0" dir="r" state="="/>
- <connection from="-166576466#2" to="-166576466#1" fromLane="0" toLane="0" via=":1780219374_7_0" dir="s" state="="/>
- <connection from="-166576466#2" to="166576466#2" fromLane="0" toLane="0" via=":1780219374_8_0" dir="t" state="="/>
- <connection from="-166576468#0" to="-166576462#6" fromLane="0" toLane="0" via=":1780219369_3_0" dir="r" state="="/>
- <connection from="-166576468#0" to="166576462#7" fromLane="0" toLane="0" via=":1780219369_4_0" dir="l" state="="/>
- <connection from="-166576468#0" to="166576468#0" fromLane="0" toLane="0" via=":1780219369_5_0" dir="t" state="="/>
- <connection from="-166576468#1" to="-166576468#0" fromLane="0" toLane="0" via=":1780219343_5_0" dir="s" state="m"/>
- <connection from="-166576468#1" to="42976406#2" fromLane="0" toLane="2" via=":1780219343_6_0" dir="l" state="m"/>
- <connection from="-166576468#1" to="166576468#1" fromLane="0" toLane="0" via=":1780219343_7_0" dir="t" state="m"/>
- <connection from="-166576468#2" to="154500693#2" fromLane="0" toLane="0" via=":1780219352_0_0" dir="r" state="m"/>
- <connection from="-166576468#2" to="-166576468#1" fromLane="0" toLane="0" via=":1780219352_1_0" dir="s" state="m"/>
- <connection from="-166576468#2" to="166576468#2" fromLane="0" toLane="0" via=":1780219352_2_0" dir="t" state="m"/>
- <connection from="-166576468#3" to="101272424#3" fromLane="0" toLane="0" via=":1780219362_0_0" dir="r" state="m"/>
- <connection from="-166576468#3" to="-166576468#2" fromLane="0" toLane="0" via=":1780219362_1_0" dir="s" state="m"/>
- <connection from="-166576468#3" to="166576468#3" fromLane="0" toLane="0" via=":1780219362_2_0" dir="t" state="m"/>
- <connection from="-166625256#0" to="-166625256#1" fromLane="0" toLane="0" via=":1244292219_2_0" dir="r" state="M"/>
- <connection from="-166625256#0" to="166625256#0" fromLane="0" toLane="0" via=":1244292219_3_0" dir="t" state="m"/>
- <connection from="-166625256#1" to="-166625256#0" fromLane="0" toLane="0" via=":1244292210_2_0" dir="r" state="M"/>
- <connection from="-166625256#1" to="166625256#1" fromLane="0" toLane="0" via=":1244292210_3_0" dir="t" state="m"/>
- <connection from="-166625259" to="81672207#1" fromLane="0" toLane="0" via=":438042379_2_0" dir="r" state="M"/>
- <connection from="-166625259" to="166625259" fromLane="0" toLane="0" via=":438042379_3_0" dir="t" state="m"/>
- <connection from="-166728377#0" to="23566901#1" fromLane="0" toLane="0" via=":255227480_18_0" dir="R" state="m"/>
- <connection from="-166728377#0" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_19_0" dir="R" state="m"/>
- <connection from="-166728377#0" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_20_0" dir="s" state="m"/>
- <connection from="-166728377#0" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_21_0" dir="l" state="m"/>
- <connection from="-166728377#0" to="149422199#1" fromLane="0" toLane="0" via=":255227480_22_0" dir="L" state="m"/>
- <connection from="-166728377#0" to="166728377#0" fromLane="0" toLane="0" via=":255227480_23_0" dir="t" state="m"/>
- <connection from="-166728377#1" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_5_0" dir="R" state="m"/>
- <connection from="-166728377#1" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_6_0" dir="R" state="m"/>
- <connection from="-166728377#1" to="149422199#2" fromLane="0" toLane="0" via=":255227482_7_0" dir="l" state="m"/>
- <connection from="-166728377#1" to="149422210#0" fromLane="0" toLane="0" via=":255227482_8_0" dir="L" state="m"/>
- <connection from="-166728377#1" to="166728377#1" fromLane="0" toLane="0" via=":255227482_9_0" dir="t" state="m"/>
- <connection from="-166728377#2" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_15_0" dir="R" state="m"/>
- <connection from="-166728377#2" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_16_0" dir="R" state="m"/>
- <connection from="-166728377#2" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_17_0" dir="s" state="m"/>
- <connection from="-166728377#2" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_18_0" dir="L" state="m"/>
- <connection from="-166728377#2" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_19_0" dir="t" state="m"/>
- <connection from="-179692877#0" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_0_0" dir="s" state="M"/>
- <connection from="-179692877#0" to="179692877#0" fromLane="0" toLane="0" via=":444026889_1_0" dir="t" state="m"/>
- <connection from="-179692877#1" to="-179692877#0" fromLane="0" toLane="0" via=":1168929398_0_0" tl="1168929398" linkIndex="0" dir="s" state="o"/>
- <connection from="-179692877#1" to="179692877#1" fromLane="0" toLane="0" via=":1168929398_1_0" tl="1168929398" linkIndex="1" dir="t" state="o"/>
- <connection from="-179917803#0" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_0_0" dir="s" state="M"/>
- <connection from="-179917803#0" to="-149819222" fromLane="0" toLane="0" via=":1627657715_1_0" dir="l" state="m"/>
- <connection from="-179917803#0" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_2_0" dir="t" state="m"/>
- <connection from="-179917803#1" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_0_0" dir="s" state="M"/>
- <connection from="-179917803#1" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_1_0" dir="l" state="m"/>
- <connection from="-179917803#1" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_2_0" dir="t" state="m"/>
- <connection from="-190048065" to="-132323955" fromLane="0" toLane="0" via=":2006433692_0_0" dir="s" state="M"/>
- <connection from="-190048065" to="190048065" fromLane="0" toLane="0" via=":2006433692_1_0" dir="t" state="m"/>
- <connection from="-191056427#0" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_3_0" dir="r" state="m"/>
- <connection from="-191056427#0" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_4_0" dir="l" state="m"/>
- <connection from="-191056427#0" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_5_0" dir="t" state="m"/>
- <connection from="-191056427#1" to="-191056427#0" fromLane="0" toLane="0" via=":2016414184_0_0" dir="s" state="="/>
- <connection from="-191056427#1" to="191056427#1" fromLane="0" toLane="0" via=":2016414184_1_0" dir="t" state="="/>
- <connection from="-191176261" to="-191176264" fromLane="0" toLane="0" via=":2017759592_2_0" dir="s" state="M"/>
- <connection from="-191176261" to="191176261" fromLane="0" toLane="0" via=":2017759592_3_0" dir="t" state="m"/>
- <connection from="-191176262" to="-191176261" fromLane="0" toLane="0" via=":2017759586_2_0" dir="l" state="M"/>
- <connection from="-191176262" to="191176262" fromLane="0" toLane="0" via=":2017759586_3_0" dir="t" state="m"/>
- <connection from="-191176263" to="191176264" fromLane="0" toLane="0" via=":2017759594_0_0" dir="s" state="="/>
- <connection from="-191176263" to="-191176266" fromLane="0" toLane="0" via=":2017759594_1_0" dir="s" state="="/>
- <connection from="-191176263" to="-191176265" fromLane="0" toLane="0" via=":2017759594_2_0" dir="l" state="="/>
- <connection from="-191176263" to="191176263" fromLane="0" toLane="0" via=":2017759594_3_0" dir="t" state="="/>
- <connection from="-191176264" to="-191176266" fromLane="0" toLane="0" via=":2017759594_12_0" dir="r" state="="/>
- <connection from="-191176264" to="-191176265" fromLane="0" toLane="0" via=":2017759594_13_0" dir="s" state="="/>
- <connection from="-191176264" to="191176263" fromLane="0" toLane="0" via=":2017759594_14_0" dir="s" state="="/>
- <connection from="-191176264" to="191176264" fromLane="0" toLane="0" via=":2017759594_15_0" dir="t" state="="/>
- <connection from="-191176265" to="191176265" fromLane="0" toLane="0" via=":1474873137_0_0" dir="t" state="M"/>
- <connection from="-191176266" to="-191176268" fromLane="0" toLane="0" via=":1474873133_0_0" dir="s" state="M"/>
- <connection from="-191176266" to="191176266" fromLane="0" toLane="0" via=":1474873133_1_0" dir="t" state="m"/>
- <connection from="-191176267" to="-191176263" fromLane="0" toLane="0" via=":2017759596_0_0" dir="s" state="M"/>
- <connection from="-191176267" to="191176267" fromLane="0" toLane="0" via=":2017759596_1_0" dir="t" state="m"/>
- <connection from="-191176268" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_6_0" dir="r" state="m"/>
- <connection from="-191176268" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_7_0" dir="l" state="m"/>
- <connection from="-191176268" to="191176268" fromLane="0" toLane="0" via=":2017759588_8_0" dir="t" state="m"/>
- <connection from="-197781817" to="197781817" fromLane="0" toLane="0" via=":1625774769_0_0" dir="t" state="M"/>
- <connection from="-197794762" to="-197781817" fromLane="0" toLane="0" via=":2079750190_3_0" dir="r" state="="/>
- <connection from="-197794762" to="-122394841#3" fromLane="0" toLane="0" via=":2079750190_4_0" dir="s" state="="/>
- <connection from="-197794762" to="197794762" fromLane="0" toLane="0" via=":2079750190_5_0" dir="t" state="="/>
- <connection from="-197955309#0" to="81096816#1" fromLane="0" toLane="0" via=":2081499952_2_0" dir="l" state="m"/>
- <connection from="-197955309#0" to="197955309#0" fromLane="0" toLane="0" via=":2081499952_3_0" dir="t" state="m"/>
- <connection from="-197955309#1" to="-197955309#0" fromLane="0" toLane="0" via=":1639892546_0_0" dir="s" state="="/>
- <connection from="-197955309#1" to="151164683" fromLane="0" toLane="0" via=":1639892546_1_0" dir="l" state="="/>
- <connection from="-197955309#1" to="197955309#1" fromLane="0" toLane="0" via=":1639892546_2_0" dir="t" state="="/>
- <connection from="-197955309#2" to="-197955309#1" fromLane="0" toLane="0" via=":2081499951_4_0" dir="s" state="m"/>
- <connection from="-197955309#2" to="166602674#2" fromLane="0" toLane="1" via=":2081499951_5_0" dir="l" state="m"/>
- <connection from="-197955309#2" to="197955309#2" fromLane="0" toLane="0" via=":2081499951_6_0" dir="t" state="m"/>
- <connection from="-197955309#3" to="160587538#1" fromLane="0" toLane="0" via=":2081499950_5_0" dir="r" state="m"/>
- <connection from="-197955309#3" to="-197955309#2" fromLane="0" toLane="0" via=":2081499950_6_0" dir="s" state="m"/>
- <connection from="-197955309#3" to="-160587538#0" fromLane="0" toLane="1" via=":2081499950_7_0" dir="l" state="m"/>
- <connection from="-197955309#3" to="197955309#3" fromLane="0" toLane="0" via=":2081499950_8_0" dir="t" state="m"/>
- <connection from="-197955309#4" to="81124943#1" fromLane="0" toLane="0" via=":2081499949_0_0" dir="r" state="m"/>
- <connection from="-197955309#4" to="-197955309#3" fromLane="0" toLane="0" via=":2081499949_1_0" dir="s" state="m"/>
- <connection from="-197955309#4" to="197955309#4" fromLane="0" toLane="0" via=":2081499949_2_0" dir="t" state="m"/>
- <connection from="-197955309#5" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_4_0" dir="r" state="M"/>
- <connection from="-197955309#5" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_5_0" dir="s" state="M"/>
- <connection from="-197955309#5" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_6_0" dir="l" state="m"/>
- <connection from="-197955309#5" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_7_0" dir="t" state="m"/>
- <connection from="-23066446#0" to="37449253#2" fromLane="0" toLane="0" via=":248913130_0_0" dir="r" state="m"/>
- <connection from="-23066446#0" to="23066446#0" fromLane="0" toLane="0" via=":248913130_1_0" dir="t" state="m"/>
- <connection from="-23066446#1" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_4_0" dir="r" state="M"/>
- <connection from="-23066446#1" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_5_0" dir="s" state="M"/>
- <connection from="-23066446#1" to="38319546#7" fromLane="0" toLane="0" via=":452425488_6_0" dir="l" state="m"/>
- <connection from="-23066446#1" to="23066446#1" fromLane="0" toLane="0" via=":452425488_7_0" dir="t" state="m"/>
- <connection from="-23066446#2" to="23066443#6" fromLane="0" toLane="0" via=":248913131_0_0" dir="r" state="M"/>
- <connection from="-23066446#2" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_1_0" dir="s" state="M"/>
- <connection from="-23066446#2" to="23066446#2" fromLane="0" toLane="0" via=":248913131_2_0" dir="t" state="m"/>
- <connection from="-23066446#3" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_3_0" dir="s" state="M"/>
- <connection from="-23066446#3" to="58770725#2" fromLane="0" toLane="0" via=":248913133_4_0" dir="l" state="m"/>
- <connection from="-23066446#3" to="23066446#3" fromLane="0" toLane="0" via=":248913133_5_0" dir="t" state="m"/>
- <connection from="-23066462#0" to="-23066462#4" fromLane="0" toLane="0" via=":248913200_2_0" dir="r" state="M"/>
- <connection from="-23066462#0" to="23066462#0" fromLane="0" toLane="0" via=":248913200_3_0" dir="t" state="m"/>
- <connection from="-23066462#1" to="-23066462#0" fromLane="0" toLane="0" via=":250689186_0_0" dir="s" state="="/>
- <connection from="-23066462#1" to="-83051421#2" fromLane="0" toLane="0" via=":250689186_1_0" dir="l" state="="/>
- <connection from="-23066462#1" to="23066462#1" fromLane="0" toLane="0" via=":250689186_2_0" dir="t" state="="/>
- <connection from="-23066462#2" to="-23066462#1" fromLane="0" toLane="0" via=":441266870_0_0" dir="s" state="="/>
- <connection from="-23066462#2" to="-83051455" fromLane="0" toLane="0" via=":441266870_1_0" dir="l" state="="/>
- <connection from="-23066462#2" to="23066462#2" fromLane="0" toLane="0" via=":441266870_2_0" dir="t" state="="/>
- <connection from="-23066462#3" to="-23066462#2" fromLane="0" toLane="0" via=":250689131_0_0" dir="s" state="="/>
- <connection from="-23066462#3" to="-83051426" fromLane="0" toLane="0" via=":250689131_1_0" dir="l" state="="/>
- <connection from="-23066462#3" to="23066462#3" fromLane="0" toLane="0" via=":250689131_2_0" dir="t" state="="/>
- <connection from="-23066462#4" to="-23066462#3" fromLane="0" toLane="0" via=":250689201_6_0" dir="s" state="="/>
- <connection from="-23066462#4" to="-83051480#1" fromLane="0" toLane="0" via=":250689201_7_0" dir="l" state="="/>
- <connection from="-23066462#4" to="23066462#4" fromLane="0" toLane="0" via=":250689201_8_0" dir="t" state="="/>
- <connection from="-23182358#0" to="141190466#2" fromLane="0" toLane="0" via=":250685766_0_0" tl="250685766" linkIndex="0" dir="r" state="o"/>
- <connection from="-23182358#0" to="23182517#0" fromLane="0" toLane="0" via=":250685766_1_0" tl="250685766" linkIndex="1" dir="s" state="o"/>
- <connection from="-23182358#0" to="23182358#0" fromLane="0" toLane="0" via=":250685766_2_0" tl="250685766" linkIndex="2" dir="t" state="o"/>
- <connection from="-23182358#1" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_0_0" dir="s" state="M"/>
- <connection from="-23182358#1" to="23182387#1" fromLane="0" toLane="0" via=":250683336_1_0" dir="l" state="m"/>
- <connection from="-23182358#1" to="23182358#1" fromLane="0" toLane="0" via=":250683336_2_0" dir="t" state="m"/>
- <connection from="-23182358#2" to="-23182358#1" fromLane="0" toLane="0" via=":250684983_0_0" tl="250684983" linkIndex="0" dir="s" state="o"/>
- <connection from="-23182358#2" to="23182358#2" fromLane="0" toLane="0" via=":250684983_1_0" tl="250684983" linkIndex="1" dir="t" state="o"/>
- <connection from="-23182484#0" to="129780019#1" fromLane="0" toLane="0" via=":450564006_2_0" dir="l" state="m"/>
- <connection from="-23182484#0" to="23182484#0" fromLane="0" toLane="0" via=":450564006_3_0" dir="t" state="m"/>
- <connection from="-23182484#1" to="190048063" fromLane="0" toLane="0" via=":250685829_12_0" dir="r" state="M"/>
- <connection from="-23182484#1" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_13_0" dir="s" state="M"/>
- <connection from="-23182484#1" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_14_0" dir="l" state="m"/>
- <connection from="-23182484#1" to="23182484#1" fromLane="0" toLane="0" via=":250685829_15_0" dir="t" state="m"/>
- <connection from="-23182484#2" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_6_0" dir="s" state="M"/>
- <connection from="-23182484#2" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_7_0" dir="l" state="m"/>
- <connection from="-23182484#2" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_8_0" dir="t" state="m"/>
- <connection from="-23182517#0" to="23182358#0" fromLane="0" toLane="0" via=":250685766_6_0" tl="250685766" linkIndex="6" dir="s" state="o"/>
- <connection from="-23182517#0" to="141190466#2" fromLane="0" toLane="0" via=":250685766_7_0" tl="250685766" linkIndex="7" dir="l" state="o"/>
- <connection from="-23182517#0" to="23182517#0" fromLane="0" toLane="0" via=":250685766_8_0" tl="250685766" linkIndex="8" dir="t" state="o"/>
- <connection from="-23182517#1" to="38230510#2" fromLane="0" toLane="0" via=":450564003_3_0" tl="450564003" linkIndex="3" dir="r" state="o"/>
- <connection from="-23182517#1" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_4_0" tl="450564003" linkIndex="4" dir="s" state="o"/>
- <connection from="-23182517#1" to="23182517#1" fromLane="0" toLane="0" via=":450564003_5_0" tl="450564003" linkIndex="5" dir="t" state="o"/>
- <connection from="-23182517#2" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_2_0" dir="s" state="M"/>
- <connection from="-23182517#2" to="23182517#2" fromLane="0" toLane="0" via=":975934878_3_0" dir="t" state="m"/>
- <connection from="-23182517#3" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_6_0" dir="r" state="M"/>
- <connection from="-23182517#3" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_7_0" dir="s" state="M"/>
- <connection from="-23182517#3" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_8_0" dir="t" state="m"/>
- <connection from="-23182517#4" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_6_0" dir="r" state="M"/>
- <connection from="-23182517#4" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_7_0" dir="s" state="M"/>
- <connection from="-23182517#4" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_8_0" dir="t" state="m"/>
- <connection from="-23262356#0" to="-149868584#1" fromLane="0" toLane="0" via=":255227471_9_0" dir="r" state="m"/>
- <connection from="-23262356#0" to="37772597#0" fromLane="0" toLane="0" via=":255227471_10_0" dir="s" state="m"/>
- <connection from="-23262356#0" to="149868584#2" fromLane="0" toLane="1" via=":255227471_11_0" dir="l" state="m"/>
- <connection from="-23262356#0" to="23262356#0" fromLane="0" toLane="0" via=":255227471_12_0" dir="t" state="m"/>
- <connection from="-23262356#1" to="170590354#1" fromLane="0" toLane="0" via=":2265767394_3_0" dir="r" state="m"/>
- <connection from="-23262356#1" to="-23262356#0" fromLane="0" toLane="0" via=":2265767394_4_0" dir="s" state="m"/>
- <connection from="-23262356#1" to="23262356#1" fromLane="0" toLane="0" via=":2265767394_5_0" dir="t" state="m"/>
- <connection from="-23262356#2" to="101272426#1" fromLane="0" toLane="0" via=":443101920_3_0" dir="r" state="M"/>
- <connection from="-23262356#2" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_4_0" dir="s" state="M"/>
- <connection from="-23262356#2" to="23262356#2" fromLane="0" toLane="0" via=":443101920_5_0" dir="t" state="m"/>
- <connection from="-23262356#3" to="149422199#0" fromLane="0" toLane="0" via=":255227475_6_0" dir="r" state="M"/>
- <connection from="-23262356#3" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_7_0" dir="s" state="M"/>
- <connection from="-23262356#3" to="23262356#3" fromLane="0" toLane="0" via=":255227475_8_0" dir="t" state="m"/>
- <connection from="-23315111#0" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_6_0" tl="252418937" linkIndex="6" dir="s" state="o"/>
- <connection from="-23315111#0" to="139118804#3" fromLane="0" toLane="0" via=":252418937_7_0" tl="252418937" linkIndex="7" dir="l" state="o"/>
- <connection from="-23315111#0" to="23315111#0" fromLane="0" toLane="0" via=":252418937_8_0" tl="252418937" linkIndex="8" dir="t" state="o"/>
- <connection from="-23315111#1" to="-23315111#0" fromLane="0" toLane="0" via=":950094412_7_0" dir="s" state="m"/>
- <connection from="-23315111#1" to="144874010#2" fromLane="0" toLane="1" via=":950094412_8_0" dir="l" state="m"/>
- <connection from="-23315111#1" to="23315111#1" fromLane="0" toLane="0" via=":950094412_9_0" dir="t" state="m"/>
- <connection from="-23315111#2" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_8_0" tl="427996791" linkIndex="8" dir="r" state="o"/>
- <connection from="-23315111#2" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_9_0" tl="427996791" linkIndex="9" dir="s" state="o"/>
- <connection from="-23315111#2" to="129780022#5" fromLane="0" toLane="0" via=":427996791_10_0" tl="427996791" linkIndex="10" dir="l" state="o"/>
- <connection from="-23315111#2" to="23315111#2" fromLane="0" toLane="0" via=":427996791_11_0" tl="427996791" linkIndex="11" dir="t" state="o"/>
- <connection from="-23315111#3" to="81523330#2" fromLane="0" toLane="0" via=":950094425_9_0" dir="r" state="m"/>
- <connection from="-23315111#3" to="-23315111#2" fromLane="0" toLane="0" via=":950094425_10_0" dir="s" state="m"/>
- <connection from="-23315111#3" to="-81523330#1" fromLane="0" toLane="1" via=":950094425_11_0" dir="l" state="m"/>
- <connection from="-23315111#3" to="23315111#3" fromLane="0" toLane="0" via=":950094425_12_0" dir="t" state="m"/>
- <connection from="-23566901#0" to="23566901#0" fromLane="0" toLane="0" via=":255227478_0_0" dir="t" state="M"/>
- <connection from="-23566901#1" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_6_0" dir="R" state="m"/>
- <connection from="-23566901#1" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_7_0" dir="s" state="m"/>
- <connection from="-23566901#1" to="166728377#0" fromLane="0" toLane="0" via=":255227480_8_0" dir="L" state="m"/>
- <connection from="-23566901#1" to="149422199#1" fromLane="0" toLane="0" via=":255227480_9_0" dir="l" state="m"/>
- <connection from="-23566901#1" to="23566901#1" fromLane="0" toLane="0" via=":255227480_10_0" dir="L" state="m"/>
- <connection from="-23566901#1" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_11_0" dir="t" state="m"/>
- <connection from="-24573937" to="101272435#1" fromLane="0" toLane="0" via=":267169964_0_0" dir="r" state="M"/>
- <connection from="-24573937" to="24573937" fromLane="0" toLane="0" via=":267169964_1_0" dir="t" state="m"/>
- <connection from="-24573939#0" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_0_0" dir="r" state="M"/>
- <connection from="-24573939#0" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_1_0" dir="s" state="M"/>
- <connection from="-24573939#0" to="83051436#1" fromLane="0" toLane="0" via=":267169690_2_0" dir="l" state="m"/>
- <connection from="-24573939#0" to="24573939#0" fromLane="0" toLane="0" via=":267169690_3_0" dir="t" state="m"/>
- <connection from="-24573939#1" to="83051421#1" fromLane="0" toLane="0" via=":267169686_0_0" dir="r" state="="/>
- <connection from="-24573939#1" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_1_0" dir="s" state="="/>
- <connection from="-24573939#1" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_2_0" dir="l" state="="/>
- <connection from="-24573939#1" to="24573939#1" fromLane="0" toLane="0" via=":267169686_3_0" dir="t" state="="/>
- <connection from="-24573939#2" to="-24573939#1" fromLane="0" toLane="0" via=":267169715_0_0" dir="s" state="m"/>
- <connection from="-24573939#2" to="-37640549#1" fromLane="0" toLane="0" via=":267169715_1_0" dir="l" state="m"/>
- <connection from="-24573939#2" to="24573939#2" fromLane="0" toLane="0" via=":267169715_2_0" dir="t" state="m"/>
- <connection from="-24573947#0" to="149868584#1" fromLane="0" toLane="0" via=":255227483_0_0" dir="r" state="m"/>
- <connection from="-24573947#0" to="-149422193#1" fromLane="0" toLane="0" via=":255227483_1_0" dir="s" state="m"/>
- <connection from="-24573947#0" to="-149868584#0" fromLane="0" toLane="1" via=":255227483_2_0" dir="l" state="m"/>
- <connection from="-24573947#0" to="24573947#0" fromLane="0" toLane="0" via=":255227483_3_0" dir="t" state="m"/>
- <connection from="-24573947#1" to="170594822#1" fromLane="0" toLane="0" via=":2265767392_0_0" dir="r" state="m"/>
- <connection from="-24573947#1" to="-24573947#0" fromLane="0" toLane="0" via=":2265767392_1_0" dir="s" state="m"/>
- <connection from="-24573947#1" to="24573947#1" fromLane="0" toLane="0" via=":2265767392_2_0" dir="t" state="m"/>
- <connection from="-24573947#2" to="37772595#1" fromLane="0" toLane="0" via=":443101905_0_0" dir="r" state="M"/>
- <connection from="-24573947#2" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_1_0" dir="s" state="M"/>
- <connection from="-24573947#2" to="24573947#2" fromLane="0" toLane="0" via=":443101905_2_0" dir="t" state="m"/>
- <connection from="-24573947#3" to="83051421#0" fromLane="0" toLane="0" via=":267169634_0_0" dir="r" state="M"/>
- <connection from="-24573947#3" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_1_0" dir="R" state="M"/>
- <connection from="-24573947#3" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_2_0" dir="s" state="M"/>
- <connection from="-24573947#3" to="24573947#3" fromLane="0" toLane="0" via=":267169634_3_0" dir="t" state="m"/>
- <connection from="-24573947#4" to="37640549#1" fromLane="0" toLane="0" via=":267169714_0_0" dir="r" state="m"/>
- <connection from="-24573947#4" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_1_0" dir="s" state="m"/>
- <connection from="-24573947#4" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_2_0" dir="l" state="m"/>
- <connection from="-24573947#4" to="24573947#4" fromLane="0" toLane="0" via=":267169714_3_0" dir="t" state="m"/>
- <connection from="-34962531#0" to="-37973572#3" fromLane="0" toLane="0" via=":410296508_4_0" dir="r" state="m"/>
- <connection from="-34962531#0" to="37973572#4" fromLane="0" toLane="1" via=":410296508_5_0" dir="l" state="m"/>
- <connection from="-34962531#0" to="34962531#0" fromLane="0" toLane="0" via=":410296508_6_0" dir="t" state="m"/>
- <connection from="-34962531#1" to="111549913#1" fromLane="0" toLane="0" via=":950640371_3_0" dir="r" state="m"/>
- <connection from="-34962531#1" to="-34962531#0" fromLane="0" toLane="0" via=":950640371_4_0" dir="s" state="m"/>
- <connection from="-34962531#1" to="34962531#1" fromLane="0" toLane="0" via=":950640371_5_0" dir="t" state="m"/>
- <connection from="-37638470#0" to="42976408#0" fromLane="0" toLane="0" via=":1168929308_0_0" tl="1168929308" linkIndex="0" dir="r" state="o"/>
- <connection from="-37638470#0" to="154500706#0" fromLane="0" toLane="0" via=":1168929308_1_0" tl="1168929308" linkIndex="1" dir="R" state="o"/>
- <connection from="-37638470#0" to="37638470#0" fromLane="0" toLane="0" via=":1168929308_2_0" tl="1168929308" linkIndex="2" dir="t" state="o"/>
- <connection from="-37638470#1" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_6_0" dir="s" state="M"/>
- <connection from="-37638470#1" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_7_0" dir="l" state="m"/>
- <connection from="-37638470#1" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_8_0" dir="t" state="m"/>
- <connection from="-37638470#2" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_6_0" dir="s" state="M"/>
- <connection from="-37638470#2" to="-160584984" fromLane="0" toLane="0" via=":1224080669_7_0" dir="l" state="m"/>
- <connection from="-37638470#2" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_8_0" dir="t" state="m"/>
- <connection from="-37640549#0" to="37640549#0" fromLane="0" toLane="0" via=":441266865_0_0" dir="t" state="M"/>
- <connection from="-37640549#1" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_12_0" dir="r" state="M"/>
- <connection from="-37640549#1" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_13_0" dir="s" state="M"/>
- <connection from="-37640549#1" to="24573947#4" fromLane="0" toLane="0" via=":267169714_14_0" dir="l" state="m"/>
- <connection from="-37640549#1" to="37640549#1" fromLane="0" toLane="0" via=":267169714_15_0" dir="t" state="m"/>
- <connection from="-37772597#0" to="149868584#2" fromLane="0" toLane="0" via=":255227471_0_0" dir="r" state="m"/>
- <connection from="-37772597#0" to="23262356#0" fromLane="0" toLane="0" via=":255227471_1_0" dir="s" state="m"/>
- <connection from="-37772597#0" to="-149868584#1" fromLane="0" toLane="1" via=":255227471_2_0" dir="l" state="m"/>
- <connection from="-37772597#0" to="37772597#0" fromLane="0" toLane="0" via=":255227471_3_0" dir="t" state="m"/>
- <connection from="-37772597#1" to="170594822#2" fromLane="0" toLane="0" via=":2265767395_0_0" dir="r" state="m"/>
- <connection from="-37772597#1" to="-37772597#0" fromLane="0" toLane="0" via=":2265767395_1_0" dir="s" state="m"/>
- <connection from="-37772597#1" to="37772597#1" fromLane="0" toLane="0" via=":2265767395_2_0" dir="t" state="m"/>
- <connection from="-37772597#2" to="37772595#2" fromLane="0" toLane="0" via=":443101906_0_0" dir="r" state="M"/>
- <connection from="-37772597#2" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_1_0" dir="s" state="M"/>
- <connection from="-37772597#2" to="37772597#2" fromLane="0" toLane="0" via=":443101906_2_0" dir="t" state="m"/>
- <connection from="-37973566" to="-130443629#8" fromLane="0" toLane="0" via=":30406565_2_0" dir="s" state="M"/>
- <connection from="-37973566" to="37973566" fromLane="0" toLane="0" via=":30406565_3_0" dir="t" state="m"/>
- <connection from="-37973572#0" to="42976406#0" fromLane="0" toLane="0" via=":438042367_7_0" tl="438042367" linkIndex="7" dir="r" state="o"/>
- <connection from="-37973572#0" to="42976406#0" fromLane="1" toLane="1" via=":438042367_8_0" tl="438042367" linkIndex="8" dir="r" state="o"/>
- <connection from="-37973572#0" to="-149868584#8" fromLane="1" toLane="0" via=":438042367_9_0" tl="438042367" linkIndex="9" dir="s" state="o"/>
- <connection from="-37973572#0" to="37973572#0" fromLane="1" toLane="1" via=":438042367_10_0" tl="438042367" linkIndex="10" dir="t" state="o"/>
- <connection from="-37973572#1" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_13_0" dir="r" state="M"/>
- <connection from="-37973572#1" to="-37973572#0" fromLane="0" toLane="0" via=":1780219353_14_0" dir="s" state="M"/>
- <connection from="-37973572#1" to="-37973572#0" fromLane="1" toLane="1" via=":1780219353_15_0" dir="s" state="M"/>
- <connection from="-37973572#1" to="-166576462#4" fromLane="1" toLane="0" via=":1780219353_16_0" dir="l" state="m"/>
- <connection from="-37973572#1" to="37973572#1" fromLane="1" toLane="1" via=":1780219353_17_0" dir="t" state="m"/>
- <connection from="-37973572#2" to="130443630#7" fromLane="0" toLane="0" via=":30406599_9_0" tl="30406599" linkIndex="9" dir="r" state="o"/>
- <connection from="-37973572#2" to="-37973572#1" fromLane="0" toLane="0" via=":30406599_10_0" tl="30406599" linkIndex="10" dir="s" state="o"/>
- <connection from="-37973572#2" to="-37973572#1" fromLane="1" toLane="1" via=":30406599_11_0" tl="30406599" linkIndex="11" dir="s" state="o"/>
- <connection from="-37973572#2" to="-130443630#6" fromLane="1" toLane="0" via=":30406599_12_0" tl="30406599" linkIndex="12" dir="l" state="o"/>
- <connection from="-37973572#2" to="37973572#2" fromLane="1" toLane="1" via=":30406599_13_0" tl="30406599" linkIndex="13" dir="t" state="o"/>
- <connection from="-37973572#3" to="81394192#13" fromLane="0" toLane="0" via=":444026884_4_0" tl="444026884" linkIndex="4" dir="r" state="o"/>
- <connection from="-37973572#3" to="-37973572#2" fromLane="0" toLane="0" via=":444026884_5_0" tl="444026884" linkIndex="5" dir="s" state="o"/>
- <connection from="-37973572#3" to="-37973572#2" fromLane="1" toLane="1" via=":444026884_6_0" tl="444026884" linkIndex="6" dir="s" state="o"/>
- <connection from="-37973572#3" to="37973572#3" fromLane="1" toLane="1" via=":444026884_7_0" tl="444026884" linkIndex="7" dir="t" state="o"/>
- <connection from="-37973572#4" to="34962531#0" fromLane="0" toLane="0" via=":410296508_7_0" dir="r" state="M"/>
- <connection from="-37973572#4" to="-37973572#3" fromLane="0" toLane="0" via=":410296508_8_0" dir="s" state="M"/>
- <connection from="-37973572#4" to="-37973572#3" fromLane="1" toLane="1" via=":410296508_9_0" dir="s" state="M"/>
- <connection from="-37973572#4" to="37973572#4" fromLane="1" toLane="1" via=":410296508_10_0" dir="t" state="m"/>
- <connection from="-37973572#5" to="-37973572#4" fromLane="0" toLane="0" via=":552842254_7_0" dir="s" state="M"/>
- <connection from="-37973572#5" to="-37973572#4" fromLane="1" toLane="1" via=":552842254_8_0" dir="s" state="M"/>
- <connection from="-37973572#5" to="-43684741#5" fromLane="1" toLane="0" via=":552842254_9_0" dir="l" state="m"/>
- <connection from="-37973572#5" to="37973572#5" fromLane="1" toLane="1" via=":552842254_10_0" dir="t" state="m"/>
- <connection from="-38027102#0" to="38027102#0" fromLane="0" toLane="0" via=":446766148_0_0" dir="t" state="M"/>
- <connection from="-38027102#1" to="107066313#3" fromLane="0" toLane="0" via=":477486717_4_0" dir="r" state="m"/>
- <connection from="-38027102#1" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_5_0" dir="s" state="m"/>
- <connection from="-38027102#1" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_6_0" dir="l" state="m"/>
- <connection from="-38027102#1" to="38027102#1" fromLane="0" toLane="0" via=":477486717_7_0" dir="t" state="m"/>
- <connection from="-38027102#2" to="107166846#4" fromLane="0" toLane="0" via=":728492366_4_0" dir="r" state="M"/>
- <connection from="-38027102#2" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_5_0" dir="s" state="M"/>
- <connection from="-38027102#2" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_6_0" dir="l" state="m"/>
- <connection from="-38027102#2" to="38027102#2" fromLane="0" toLane="0" via=":728492366_7_0" dir="t" state="m"/>
- <connection from="-38027665#0" to="38027665#0" fromLane="0" toLane="0" via=":446770956_0_0" dir="t" state="M"/>
- <connection from="-38027665#1" to="107066313#1" fromLane="0" toLane="0" via=":477486719_4_0" dir="r" state="m"/>
- <connection from="-38027665#1" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_5_0" dir="s" state="m"/>
- <connection from="-38027665#1" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_6_0" dir="l" state="m"/>
- <connection from="-38027665#1" to="38027665#1" fromLane="0" toLane="0" via=":477486719_7_0" dir="t" state="m"/>
- <connection from="-38027665#2" to="107166846#1" fromLane="0" toLane="0" via=":728492372_0_0" dir="r" state="m"/>
- <connection from="-38027665#2" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_1_0" dir="s" state="m"/>
- <connection from="-38027665#2" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_2_0" dir="l" state="m"/>
- <connection from="-38027665#2" to="38027665#2" fromLane="0" toLane="0" via=":728492372_3_0" dir="t" state="m"/>
- <connection from="-38027665#3" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_0_0" dir="s" state="M"/>
- <connection from="-38027665#3" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_1_0" dir="l" state="m"/>
- <connection from="-38027665#3" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_2_0" dir="t" state="m"/>
- <connection from="-38318373#0" to="38318373#0" fromLane="0" toLane="0" via=":1373642446_0_0" dir="t" state="M"/>
- <connection from="-38318373#1" to="122394864#2" fromLane="0" toLane="0" via=":314636763_8_0" dir="r" state="m"/>
- <connection from="-38318373#1" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_9_0" dir="s" state="m"/>
- <connection from="-38318373#1" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_10_0" dir="l" state="m"/>
- <connection from="-38318373#1" to="38318373#1" fromLane="0" toLane="0" via=":314636763_11_0" dir="t" state="m"/>
- <connection from="-38319546#0" to="144874008#1" fromLane="0" toLane="0" via=":1257054127_2_0" dir="l" state="m"/>
- <connection from="-38319546#0" to="38319546#0" fromLane="0" toLane="0" via=":1257054127_3_0" dir="t" state="m"/>
- <connection from="-38319546#1" to="-38319546#0" fromLane="0" toLane="0" via=":1257054074_7_0" dir="s" state="m"/>
- <connection from="-38319546#1" to="154489992#2" fromLane="0" toLane="1" via=":1257054074_8_0" dir="l" state="m"/>
- <connection from="-38319546#1" to="38319546#1" fromLane="0" toLane="0" via=":1257054074_9_0" dir="t" state="m"/>
- <connection from="-38319546#2" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_8_0" dir="r" state="m"/>
- <connection from="-38319546#2" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_9_0" dir="s" state="m"/>
- <connection from="-38319546#2" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_10_0" dir="l" state="m"/>
- <connection from="-38319546#2" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_11_0" dir="t" state="m"/>
- <connection from="-38319546#3" to="139118805#2" fromLane="0" toLane="0" via=":1257054172_9_0" dir="r" state="m"/>
- <connection from="-38319546#3" to="-38319546#2" fromLane="0" toLane="0" via=":1257054172_10_0" dir="s" state="m"/>
- <connection from="-38319546#3" to="-139118805#1" fromLane="0" toLane="1" via=":1257054172_11_0" dir="l" state="m"/>
- <connection from="-38319546#3" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_12_0" dir="t" state="m"/>
- <connection from="-38319546#4" to="81523332#1" fromLane="0" toLane="0" via=":452425486_3_0" dir="r" state="m"/>
- <connection from="-38319546#4" to="-38319546#3" fromLane="0" toLane="0" via=":452425486_4_0" dir="s" state="m"/>
- <connection from="-38319546#4" to="38319546#4" fromLane="0" toLane="0" via=":452425486_5_0" dir="t" state="m"/>
- <connection from="-38319546#5" to="-38319546#4" fromLane="0" toLane="0" via=":1257054178_3_0" dir="s" state="="/>
- <connection from="-38319546#5" to="109912572#0" fromLane="0" toLane="0" via=":1257054178_4_0" dir="l" state="="/>
- <connection from="-38319546#5" to="38319546#5" fromLane="0" toLane="0" via=":1257054178_5_0" dir="t" state="="/>
- <connection from="-38319546#6" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_8_0" dir="r" state="m"/>
- <connection from="-38319546#6" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_9_0" dir="s" state="m"/>
- <connection from="-38319546#6" to="81096844#3" fromLane="0" toLane="0" via=":452425487_10_0" dir="l" state="m"/>
- <connection from="-38319546#6" to="38319546#6" fromLane="0" toLane="0" via=":452425487_11_0" dir="t" state="m"/>
- <connection from="-38319546#7" to="23066446#1" fromLane="0" toLane="0" via=":452425488_8_0" dir="r" state="m"/>
- <connection from="-38319546#7" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_9_0" dir="s" state="m"/>
- <connection from="-38319546#7" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_10_0" dir="l" state="m"/>
- <connection from="-38319546#7" to="38319546#7" fromLane="0" toLane="0" via=":452425488_11_0" dir="t" state="m"/>
- <connection from="-38319546#8" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_8_0" dir="r" state="m"/>
- <connection from="-38319546#8" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_9_0" dir="s" state="m"/>
- <connection from="-38319546#8" to="59159260#3" fromLane="0" toLane="0" via=":733663096_10_0" dir="l" state="m"/>
- <connection from="-38319546#8" to="38319546#8" fromLane="0" toLane="0" via=":733663096_11_0" dir="t" state="m"/>
- <connection from="-38319547" to="-38319546#8" fromLane="0" toLane="0" via=":452425489_2_0" dir="s" state="M"/>
- <connection from="-38319547" to="38319547" fromLane="0" toLane="0" via=":452425489_3_0" dir="t" state="m"/>
- <connection from="-38319548#0" to="-38319547" fromLane="0" toLane="0" via=":452425490_0_0" dir="r" state="="/>
- <connection from="-38319548#0" to="38319549#0" fromLane="0" toLane="0" via=":452425490_1_0" dir="l" state="="/>
- <connection from="-38319548#0" to="38319548#0" fromLane="0" toLane="0" via=":452425490_2_0" dir="t" state="="/>
- <connection from="-38319548#1" to="23066443#4" fromLane="0" toLane="0" via=":452425491_0_0" dir="r" state="m"/>
- <connection from="-38319548#1" to="-38319548#0" fromLane="0" toLane="0" via=":452425491_1_0" dir="s" state="m"/>
- <connection from="-38319548#1" to="38319548#1" fromLane="0" toLane="0" via=":452425491_2_0" dir="t" state="m"/>
- <connection from="-38319548#10" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_8_0" dir="r" state="m"/>
- <connection from="-38319548#10" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_9_0" dir="s" state="m"/>
- <connection from="-38319548#10" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_10_0" dir="l" state="m"/>
- <connection from="-38319548#10" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_11_0" dir="t" state="m"/>
- <connection from="-38319548#11" to="-38319548#10" fromLane="0" toLane="0" via=":1669480279_6_0" dir="s" state="m"/>
- <connection from="-38319548#11" to="101272435#4" fromLane="0" toLane="0" via=":1669480279_7_0" dir="l" state="m"/>
- <connection from="-38319548#11" to="38319548#11" fromLane="0" toLane="0" via=":1669480279_8_0" dir="t" state="m"/>
- <connection from="-38319548#12" to="-38319548#11" fromLane="0" toLane="0" via=":1168929659_6_0" dir="s" state="m"/>
- <connection from="-38319548#12" to="154844489#2" fromLane="0" toLane="0" via=":1168929659_7_0" dir="l" state="m"/>
- <connection from="-38319548#12" to="38319548#12" fromLane="0" toLane="0" via=":1168929659_8_0" dir="t" state="m"/>
- <connection from="-38319548#13" to="-38319548#12" fromLane="0" toLane="0" via=":951739684_6_0" dir="s" state="m"/>
- <connection from="-38319548#13" to="103851602#1" fromLane="0" toLane="0" via=":951739684_7_0" dir="l" state="m"/>
- <connection from="-38319548#13" to="38319548#13" fromLane="0" toLane="0" via=":951739684_8_0" dir="t" state="m"/>
- <connection from="-38319548#14" to="111863096#4" fromLane="0" toLane="0" via=":951739649_3_0" dir="r" state="m"/>
- <connection from="-38319548#14" to="-38319548#13" fromLane="0" toLane="0" via=":951739649_4_0" dir="s" state="m"/>
- <connection from="-38319548#14" to="38319548#14" fromLane="0" toLane="0" via=":951739649_5_0" dir="t" state="m"/>
- <connection from="-38319548#15" to="154844484#1" fromLane="0" toLane="0" via=":1168929546_3_0" dir="r" state="m"/>
- <connection from="-38319548#15" to="-38319548#14" fromLane="0" toLane="0" via=":1168929546_4_0" dir="s" state="m"/>
- <connection from="-38319548#15" to="38319548#15" fromLane="0" toLane="0" via=":1168929546_5_0" dir="t" state="m"/>
- <connection from="-38319548#16" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_8_0" dir="r" state="m"/>
- <connection from="-38319548#16" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_9_0" dir="s" state="m"/>
- <connection from="-38319548#16" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_10_0" dir="l" state="m"/>
- <connection from="-38319548#16" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_11_0" dir="t" state="m"/>
- <connection from="-38319548#2" to="-38319548#1" fromLane="0" toLane="0" via=":452425493_3_0" dir="s" state="m"/>
- <connection from="-38319548#2" to="58770725#4" fromLane="0" toLane="0" via=":452425493_4_0" dir="l" state="m"/>
- <connection from="-38319548#2" to="38319548#2" fromLane="0" toLane="0" via=":452425493_5_0" dir="t" state="m"/>
- <connection from="-38319548#3" to="-38319548#2" fromLane="0" toLane="0" via=":1669480287_3_0" dir="s" state="m"/>
- <connection from="-38319548#3" to="37771900#5" fromLane="0" toLane="0" via=":1669480287_4_0" dir="l" state="m"/>
- <connection from="-38319548#3" to="38319548#3" fromLane="0" toLane="0" via=":1669480287_5_0" dir="t" state="m"/>
- <connection from="-38319548#4" to="-38319548#3" fromLane="0" toLane="0" via=":1669480286_4_0" dir="s" state="m"/>
- <connection from="-38319548#4" to="81124939#1" fromLane="0" toLane="1" via=":1669480286_5_0" dir="l" state="m"/>
- <connection from="-38319548#4" to="38319548#4" fromLane="0" toLane="0" via=":1669480286_6_0" dir="t" state="m"/>
- <connection from="-38319548#5" to="160587537#1" fromLane="0" toLane="0" via=":1726394727_5_0" dir="r" state="m"/>
- <connection from="-38319548#5" to="-38319548#4" fromLane="0" toLane="0" via=":1726394727_6_0" dir="s" state="m"/>
- <connection from="-38319548#5" to="-160587537#0" fromLane="0" toLane="1" via=":1726394727_7_0" dir="l" state="m"/>
- <connection from="-38319548#5" to="38319548#5" fromLane="0" toLane="0" via=":1726394727_8_0" dir="t" state="m"/>
- <connection from="-38319548#6" to="154844474#1" fromLane="0" toLane="0" via=":1669480284_0_0" dir="r" state="m"/>
- <connection from="-38319548#6" to="-38319548#5" fromLane="0" toLane="0" via=":1669480284_1_0" dir="s" state="m"/>
- <connection from="-38319548#6" to="38319548#6" fromLane="0" toLane="0" via=":1669480284_2_0" dir="t" state="m"/>
- <connection from="-38319548#7" to="81096822#0" fromLane="0" toLane="0" via=":452425497_3_0" dir="r" state="="/>
- <connection from="-38319548#7" to="-38319548#6" fromLane="0" toLane="0" via=":452425497_4_0" dir="s" state="="/>
- <connection from="-38319548#7" to="38319548#7" fromLane="0" toLane="0" via=":452425497_5_0" dir="t" state="="/>
- <connection from="-38319548#8" to="101272435#6" fromLane="0" toLane="0" via=":1669480283_0_0" dir="r" state="m"/>
- <connection from="-38319548#8" to="-38319548#7" fromLane="0" toLane="0" via=":1669480283_1_0" dir="s" state="m"/>
- <connection from="-38319548#8" to="38319548#8" fromLane="0" toLane="0" via=":1669480283_2_0" dir="t" state="m"/>
- <connection from="-38319548#9" to="101272434" fromLane="0" toLane="0" via=":1168929661_6_0" dir="r" state="="/>
- <connection from="-38319548#9" to="-38319548#8" fromLane="0" toLane="0" via=":1168929661_7_0" dir="s" state="="/>
- <connection from="-38319548#9" to="38319548#9" fromLane="0" toLane="0" via=":1168929661_8_0" dir="t" state="="/>
- <connection from="-38319549#0" to="38319548#0" fromLane="0" toLane="0" via=":452425490_3_0" dir="r" state="="/>
- <connection from="-38319549#0" to="-38319547" fromLane="0" toLane="0" via=":452425490_4_0" dir="l" state="="/>
- <connection from="-38319549#0" to="38319549#0" fromLane="0" toLane="0" via=":452425490_5_0" dir="t" state="="/>
- <connection from="-38319549#1" to="-38319549#0" fromLane="0" toLane="0" via=":1719213141_6_0" dir="s" state="m"/>
- <connection from="-38319549#1" to="44738605#2" fromLane="0" toLane="0" via=":1719213141_7_0" dir="l" state="m"/>
- <connection from="-38319549#1" to="38319549#1" fromLane="0" toLane="0" via=":1719213141_8_0" dir="t" state="m"/>
- <connection from="-38319549#2" to="151167658#1" fromLane="0" toLane="0" via=":1719213140_3_0" dir="r" state="m"/>
- <connection from="-38319549#2" to="-38319549#1" fromLane="0" toLane="0" via=":1719213140_4_0" dir="s" state="m"/>
- <connection from="-38319549#2" to="38319549#2" fromLane="0" toLane="0" via=":1719213140_5_0" dir="t" state="m"/>
- <connection from="-38319550#0" to="-38319549#2" fromLane="0" toLane="0" via=":452425499_2_0" dir="r" state="M"/>
- <connection from="-38319550#0" to="38319550#0" fromLane="0" toLane="0" via=":452425499_3_0" dir="t" state="m"/>
- <connection from="-38319550#1" to="-38319550#0" fromLane="0" toLane="0" via=":452425500_6_0" dir="s" state="m"/>
- <connection from="-38319550#1" to="58770723#2" fromLane="0" toLane="0" via=":452425500_7_0" dir="l" state="m"/>
- <connection from="-38319550#1" to="38319550#1" fromLane="0" toLane="0" via=":452425500_8_0" dir="t" state="m"/>
- <connection from="-38319550#10" to="-38319550#9" fromLane="0" toLane="0" via=":719463795_6_0" dir="s" state="m"/>
- <connection from="-38319550#10" to="24573905#3" fromLane="0" toLane="0" via=":719463795_7_0" dir="l" state="m"/>
- <connection from="-38319550#10" to="38319550#10" fromLane="0" toLane="0" via=":719463795_8_0" dir="t" state="m"/>
- <connection from="-38319550#11" to="-38319550#10" fromLane="0" toLane="0" via=":1780219371_3_0" dir="s" state="m"/>
- <connection from="-38319550#11" to="-166576464#4" fromLane="0" toLane="0" via=":1780219371_4_0" dir="l" state="m"/>
- <connection from="-38319550#11" to="38319550#11" fromLane="0" toLane="0" via=":1780219371_5_0" dir="t" state="m"/>
- <connection from="-38319550#12" to="8272412#1" fromLane="0" toLane="0" via=":1719213509_3_0" dir="r" state="m"/>
- <connection from="-38319550#12" to="-38319550#11" fromLane="0" toLane="0" via=":1719213509_4_0" dir="s" state="m"/>
- <connection from="-38319550#12" to="38319550#12" fromLane="0" toLane="0" via=":1719213509_5_0" dir="t" state="m"/>
- <connection from="-38319550#13" to="149419435#1" fromLane="0" toLane="0" via=":1719213668_3_0" dir="r" state="m"/>
- <connection from="-38319550#13" to="-38319550#12" fromLane="0" toLane="0" via=":1719213668_4_0" dir="s" state="m"/>
- <connection from="-38319550#13" to="38319550#13" fromLane="0" toLane="0" via=":1719213668_5_0" dir="t" state="m"/>
- <connection from="-38319550#14" to="-38319550#13" fromLane="0" toLane="0" via=":719464017_0_0" tl="719464017" linkIndex="0" dir="s" state="o"/>
- <connection from="-38319550#14" to="38319550#14" fromLane="0" toLane="0" via=":719464017_1_0" tl="719464017" linkIndex="1" dir="t" state="o"/>
- <connection from="-38319550#2" to="37771902#1" fromLane="0" toLane="0" via=":452425501_3_0" dir="r" state="m"/>
- <connection from="-38319550#2" to="-38319550#1" fromLane="0" toLane="0" via=":452425501_4_0" dir="s" state="m"/>
- <connection from="-38319550#2" to="38319550#2" fromLane="0" toLane="0" via=":452425501_5_0" dir="t" state="m"/>
- <connection from="-38319550#3" to="-38319550#2" fromLane="0" toLane="0" via=":1780219365_3_0" dir="s" state="m"/>
- <connection from="-38319550#3" to="166576462#0" fromLane="0" toLane="0" via=":1780219365_4_0" dir="l" state="m"/>
- <connection from="-38319550#3" to="38319550#3" fromLane="0" toLane="0" via=":1780219365_5_0" dir="t" state="m"/>
- <connection from="-38319550#4" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_6_0" tl="452425502" linkIndex="6" dir="s" state="o"/>
- <connection from="-38319550#4" to="101272429#2" fromLane="0" toLane="0" via=":452425502_7_0" tl="452425502" linkIndex="7" dir="l" state="o"/>
- <connection from="-38319550#4" to="38319550#4" fromLane="0" toLane="0" via=":452425502_8_0" tl="452425502" linkIndex="8" dir="t" state="o"/>
- <connection from="-38319550#5" to="-38319550#4" fromLane="0" toLane="0" via=":950640531_6_0" dir="s" state="m"/>
- <connection from="-38319550#5" to="111863125#2" fromLane="0" toLane="0" via=":950640531_7_0" dir="l" state="m"/>
- <connection from="-38319550#5" to="38319550#5" fromLane="0" toLane="0" via=":950640531_8_0" dir="t" state="m"/>
- <connection from="-38319550#6" to="-149868584#5" fromLane="0" toLane="0" via=":767282288_9_0" tl="767282288" linkIndex="9" dir="r" state="o"/>
- <connection from="-38319550#6" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_10_0" tl="767282288" linkIndex="10" dir="s" state="o"/>
- <connection from="-38319550#6" to="149868584#6" fromLane="0" toLane="1" via=":767282288_11_0" tl="767282288" linkIndex="11" dir="l" state="o"/>
- <connection from="-38319550#6" to="38319550#6" fromLane="0" toLane="0" via=":767282288_12_0" tl="767282288" linkIndex="12" dir="t" state="o"/>
- <connection from="-38319550#7" to="111549913#5" fromLane="0" toLane="0" via=":950640351_3_0" dir="r" state="m"/>
- <connection from="-38319550#7" to="-38319550#6" fromLane="0" toLane="0" via=":950640351_4_0" dir="s" state="m"/>
- <connection from="-38319550#7" to="38319550#7" fromLane="0" toLane="0" via=":950640351_5_0" dir="t" state="m"/>
- <connection from="-38319550#8" to="37772596#1" fromLane="0" toLane="0" via=":719463587_3_0" tl="719463587" linkIndex="3" dir="r" state="o"/>
- <connection from="-38319550#8" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_4_0" tl="719463587" linkIndex="4" dir="s" state="o"/>
- <connection from="-38319550#8" to="38319550#8" fromLane="0" toLane="0" via=":719463587_5_0" tl="719463587" linkIndex="5" dir="t" state="o"/>
- <connection from="-38319550#9" to="-38319550#8" fromLane="0" toLane="0" via=":1780219332_3_0" dir="s" state="m"/>
- <connection from="-38319550#9" to="-166576468#3" fromLane="0" toLane="0" via=":1780219332_4_0" dir="l" state="m"/>
- <connection from="-38319550#9" to="38319550#9" fromLane="0" toLane="0" via=":1780219332_5_0" dir="t" state="m"/>
- <connection from="-40196944#0" to="40196944#0" fromLane="0" toLane="0" via=":484282948_0_0" dir="t" state="M"/>
- <connection from="-40196944#1" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_0_0" dir="s" state="M"/>
- <connection from="-40196944#1" to="40196944#1" fromLane="0" toLane="0" via=":484282955_1_0" dir="t" state="m"/>
- <connection from="-43684741#0" to="130443630#0" fromLane="0" toLane="0" via=":552842256_18_0" dir="r" state="m"/>
- <connection from="-43684741#0" to="105251811#0" fromLane="0" toLane="0" via=":552842256_19_0" dir="s" state="m"/>
- <connection from="-43684741#0" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_20_0" dir="s" state="m"/>
- <connection from="-43684741#0" to="-37973566" fromLane="0" toLane="0" via=":552842256_21_0" dir="L" state="m"/>
- <connection from="-43684741#0" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_22_0" dir="l" state="m"/>
- <connection from="-43684741#0" to="43684741#0" fromLane="0" toLane="0" via=":552842256_23_0" dir="t" state="m"/>
- <connection from="-43684741#1" to="81394192#8" fromLane="0" toLane="0" via=":561204538_3_0" dir="r" state="M"/>
- <connection from="-43684741#1" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_4_0" dir="s" state="M"/>
- <connection from="-43684741#1" to="43684741#1" fromLane="0" toLane="0" via=":561204538_5_0" dir="t" state="m"/>
- <connection from="-43684741#2" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_3_0" dir="s" state="M"/>
- <connection from="-43684741#2" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_4_0" dir="l" state="m"/>
- <connection from="-43684741#2" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_5_0" dir="t" state="m"/>
- <connection from="-43684741#3" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_4_0" dir="s" state="M"/>
- <connection from="-43684741#3" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_5_0" dir="t" state="m"/>
- <connection from="-43684741#4" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_6_0" dir="s" state="M"/>
- <connection from="-43684741#4" to="37973569#9" fromLane="0" toLane="0" via=":552842255_7_0" dir="l" state="m"/>
- <connection from="-43684741#4" to="43684741#4" fromLane="0" toLane="0" via=":552842255_8_0" dir="t" state="m"/>
- <connection from="-43684741#5" to="-43684741#4" fromLane="0" toLane="0" via=":950640393_6_0" dir="s" state="m"/>
- <connection from="-43684741#5" to="111863125#8" fromLane="0" toLane="0" via=":950640393_7_0" dir="l" state="m"/>
- <connection from="-43684741#5" to="43684741#5" fromLane="0" toLane="0" via=":950640393_8_0" dir="t" state="m"/>
- <connection from="-44104491#0" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_0_0" dir="r" state="m"/>
- <connection from="-44104491#0" to="59159262#3" fromLane="0" toLane="0" via=":956116503_1_0" dir="l" state="m"/>
- <connection from="-44104491#0" to="44104491#0" fromLane="0" toLane="0" via=":956116503_2_0" dir="t" state="m"/>
- <connection from="-44104491#1" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_0_0" dir="s" state="M"/>
- <connection from="-44104491#1" to="44104491#1" fromLane="0" toLane="0" via=":560472377_1_0" dir="t" state="m"/>
- <connection from="-58779718#0" to="107066313#2" fromLane="0" toLane="0" via=":728492341_3_0" dir="r" state="m"/>
- <connection from="-58779718#0" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_4_0" dir="l" state="m"/>
- <connection from="-58779718#0" to="58779718#0" fromLane="0" toLane="0" via=":728492341_5_0" dir="t" state="m"/>
- <connection from="-58779718#1" to="107166846#2" fromLane="0" toLane="0" via=":728492360_0_0" dir="r" state="m"/>
- <connection from="-58779718#1" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_1_0" dir="s" state="m"/>
- <connection from="-58779718#1" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_2_0" dir="l" state="m"/>
- <connection from="-58779718#1" to="58779718#1" fromLane="0" toLane="0" via=":728492360_3_0" dir="t" state="m"/>
- <connection from="-58779719#0" to="58779719#0" fromLane="0" toLane="0" via=":728492348_0_0" dir="t" state="M"/>
- <connection from="-58779719#1" to="107166846#3" fromLane="0" toLane="0" via=":728492361_0_0" dir="r" state="m"/>
- <connection from="-58779719#1" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_1_0" dir="s" state="m"/>
- <connection from="-58779719#1" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_2_0" dir="l" state="m"/>
- <connection from="-58779719#1" to="58779719#1" fromLane="0" toLane="0" via=":728492361_3_0" dir="t" state="m"/>
- <connection from="-59159260#0" to="37771900#4" fromLane="0" toLane="0" via=":733663131_2_0" dir="r" state="m"/>
- <connection from="-59159260#0" to="59159260#0" fromLane="0" toLane="0" via=":733663131_3_0" dir="t" state="m"/>
- <connection from="-59159260#1" to="58770725#3" fromLane="0" toLane="0" via=":733663093_6_0" dir="r" state="M"/>
- <connection from="-59159260#1" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_7_0" dir="s" state="M"/>
- <connection from="-59159260#1" to="59159260#1" fromLane="0" toLane="0" via=":733663093_8_0" dir="t" state="m"/>
- <connection from="-59159260#2" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_6_0" dir="s" state="M"/>
- <connection from="-59159260#2" to="23066443#5" fromLane="0" toLane="0" via=":733663121_7_0" dir="l" state="m"/>
- <connection from="-59159260#2" to="59159260#2" fromLane="0" toLane="0" via=":733663121_8_0" dir="t" state="m"/>
- <connection from="-59159260#3" to="38319546#8" fromLane="0" toLane="0" via=":733663096_12_0" dir="r" state="M"/>
- <connection from="-59159260#3" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_13_0" dir="s" state="M"/>
- <connection from="-59159260#3" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_14_0" dir="l" state="m"/>
- <connection from="-59159260#3" to="59159260#3" fromLane="0" toLane="0" via=":733663096_15_0" dir="t" state="m"/>
- <connection from="-59159262#0" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_3_0" dir="s" state="M"/>
- <connection from="-59159262#0" to="81394192#3" fromLane="0" toLane="0" via=":446766149_4_0" dir="l" state="m"/>
- <connection from="-59159262#0" to="59159262#0" fromLane="0" toLane="0" via=":446766149_5_0" dir="t" state="m"/>
- <connection from="-59159262#1" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_4_0" dir="r" state="m"/>
- <connection from="-59159262#1" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_5_0" dir="s" state="m"/>
- <connection from="-59159262#1" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_6_0" dir="l" state="m"/>
- <connection from="-59159262#1" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_7_0" dir="t" state="m"/>
- <connection from="-59159262#2" to="37973565#1" fromLane="0" toLane="0" via=":733663082_0_0" dir="r" state="M"/>
- <connection from="-59159262#2" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_1_0" dir="s" state="M"/>
- <connection from="-59159262#2" to="59159262#2" fromLane="0" toLane="0" via=":733663082_2_0" dir="t" state="m"/>
- <connection from="-59159262#3" to="44104491#0" fromLane="0" toLane="0" via=":956116503_3_0" dir="r" state="M"/>
- <connection from="-59159262#3" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_4_0" dir="s" state="M"/>
- <connection from="-59159262#3" to="59159262#3" fromLane="0" toLane="0" via=":956116503_5_0" dir="t" state="m"/>
- <connection from="-59159262#4" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_0_0" dir="s" state="M"/>
- <connection from="-59159262#4" to="-134872478" fromLane="0" toLane="0" via=":1482088987_1_0" dir="l" state="m"/>
- <connection from="-59159262#4" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_2_0" dir="t" state="m"/>
- <connection from="-69931595#0" to="-108329426#2" fromLane="0" toLane="0" via=":445506216_3_0" dir="s" state="M"/>
- <connection from="-69931595#0" to="37942668#0" fromLane="0" toLane="0" via=":445506216_4_0" dir="l" state="m"/>
- <connection from="-69931595#0" to="69931595#0" fromLane="0" toLane="0" via=":445506216_5_0" dir="t" state="m"/>
- <connection from="-69931595#1" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_3_0" dir="s" state="M"/>
- <connection from="-69931595#1" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_4_0" dir="l" state="m"/>
- <connection from="-69931595#1" to="69931595#1" fromLane="0" toLane="0" via=":733663136_5_0" dir="t" state="m"/>
- <connection from="-69931595#2" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_3_0" dir="s" state="M"/>
- <connection from="-69931595#2" to="191176268" fromLane="0" toLane="0" via=":2017759588_4_0" dir="l" state="m"/>
- <connection from="-69931595#2" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_5_0" dir="t" state="m"/>
- <connection from="-69931595#3" to="-69931595#2" fromLane="0" toLane="0" via=":733663116_3_0" dir="s" state="M"/>
- <connection from="-69931595#3" to="59159266#0" fromLane="0" toLane="0" via=":733663116_4_0" dir="l" state="m"/>
- <connection from="-69931595#3" to="69931595#3" fromLane="0" toLane="0" via=":733663116_5_0" dir="t" state="m"/>
- <connection from="-81096822#0" to="-38319548#6" fromLane="0" toLane="0" via=":452425497_0_0" dir="r" state="="/>
- <connection from="-81096822#0" to="38319548#7" fromLane="0" toLane="0" via=":452425497_1_0" dir="l" state="="/>
- <connection from="-81096822#0" to="81096822#0" fromLane="0" toLane="0" via=":452425497_2_0" dir="t" state="="/>
- <connection from="-81096822#1" to="-81096822#0" fromLane="0" toLane="0" via=":1669480292_0_0" dir="s" state="m"/>
- <connection from="-81096822#1" to="172498387#4" fromLane="0" toLane="0" via=":1669480292_1_0" dir="l" state="m"/>
- <connection from="-81096822#1" to="81096822#1" fromLane="0" toLane="0" via=":1669480292_2_0" dir="t" state="m"/>
- <connection from="-81096822#2" to="75656628#1" fromLane="0" toLane="0" via=":543360161_0_0" dir="r" state="m"/>
- <connection from="-81096822#2" to="-81096822#1" fromLane="0" toLane="0" via=":543360161_1_0" dir="s" state="m"/>
- <connection from="-81096822#2" to="81096822#2" fromLane="0" toLane="0" via=":543360161_2_0" dir="t" state="m"/>
- <connection from="-81096844#0" to="37771900#2" fromLane="0" toLane="0" via=":443089061_2_0" dir="r" state="m"/>
- <connection from="-81096844#0" to="81096844#0" fromLane="0" toLane="0" via=":443089061_3_0" dir="t" state="m"/>
- <connection from="-81096844#1" to="58770725#1" fromLane="0" toLane="0" via=":248913142_6_0" dir="r" state="M"/>
- <connection from="-81096844#1" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_7_0" dir="s" state="M"/>
- <connection from="-81096844#1" to="81096844#1" fromLane="0" toLane="0" via=":248913142_8_0" dir="t" state="m"/>
- <connection from="-81096844#2" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_6_0" dir="s" state="M"/>
- <connection from="-81096844#2" to="23066443#7" fromLane="0" toLane="0" via=":248913144_7_0" dir="l" state="m"/>
- <connection from="-81096844#2" to="81096844#2" fromLane="0" toLane="0" via=":248913144_8_0" dir="t" state="m"/>
- <connection from="-81096844#3" to="38319546#6" fromLane="0" toLane="0" via=":452425487_12_0" dir="r" state="M"/>
- <connection from="-81096844#3" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_13_0" dir="s" state="M"/>
- <connection from="-81096844#3" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_14_0" dir="l" state="m"/>
- <connection from="-81096844#3" to="81096844#3" fromLane="0" toLane="0" via=":452425487_15_0" dir="t" state="m"/>
- <connection from="-81394200#0" to="81394188#0" fromLane="0" toLane="0" via=":948350565_0_0" dir="l" state="M"/>
- <connection from="-81394200#0" to="81394200#0" fromLane="0" toLane="0" via=":948350565_1_0" dir="t" state="M"/>
- <connection from="-81394200#1" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_4_0" dir="s" state="M"/>
- <connection from="-81394200#1" to="133868191#1" fromLane="0" toLane="3" via=":948350597_5_0" dir="s" state="M"/>
- <connection from="-81394200#1" to="81394200#1" fromLane="0" toLane="0" via=":948350597_6_0" dir="t" state="m"/>
- <connection from="-81394200#2" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_4_0" dir="r" state="M"/>
- <connection from="-81394200#2" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_5_0" dir="s" state="M"/>
- <connection from="-81394200#2" to="130443629#2" fromLane="0" toLane="0" via=":948350640_6_0" dir="l" state="m"/>
- <connection from="-81394200#2" to="81394200#2" fromLane="0" toLane="0" via=":948350640_7_0" dir="t" state="m"/>
- <connection from="-81523330#0" to="-133868229#1" fromLane="0" toLane="0" via=":948350630_0_0" dir="s" state="M"/>
- <connection from="-81523330#0" to="-133868229#1" fromLane="1" toLane="1" via=":948350630_1_0" dir="s" state="M"/>
- <connection from="-81523330#0" to="81523330#0" fromLane="1" toLane="1" via=":948350630_2_0" dir="t" state="m"/>
- <connection from="-81523330#1" to="-81523330#0" fromLane="0" toLane="0" via=":1252777720_0_0" dir="s" state="M"/>
- <connection from="-81523330#1" to="-81523330#0" fromLane="1" toLane="1" via=":1252777720_1_0" dir="s" state="M"/>
- <connection from="-81523330#1" to="81523330#1" fromLane="1" toLane="1" via=":1252777720_2_0" dir="t" state="m"/>
- <connection from="-81523330#2" to="-23315111#2" fromLane="0" toLane="0" via=":950094425_4_0" dir="r" state="M"/>
- <connection from="-81523330#2" to="-81523330#1" fromLane="0" toLane="0" via=":950094425_5_0" dir="s" state="M"/>
- <connection from="-81523330#2" to="-81523330#1" fromLane="1" toLane="1" via=":950094425_6_0" dir="s" state="M"/>
- <connection from="-81523330#2" to="23315111#3" fromLane="1" toLane="0" via=":950094425_7_0" dir="l" state="m"/>
- <connection from="-81523330#2" to="81523330#2" fromLane="1" toLane="1" via=":950094425_8_0" dir="t" state="m"/>
- <connection from="-81523330#3" to="108329427#1" fromLane="0" toLane="0" via=":1263725264_4_0" dir="r" state="M"/>
- <connection from="-81523330#3" to="-81523330#2" fromLane="0" toLane="0" via=":1263725264_5_0" dir="s" state="M"/>
- <connection from="-81523330#3" to="-81523330#2" fromLane="1" toLane="1" via=":1263725264_6_0" dir="s" state="M"/>
- <connection from="-81523330#3" to="-108329427#0" fromLane="1" toLane="0" via=":1263725264_7_0" dir="l" state="m"/>
- <connection from="-81523330#3" to="81523330#3" fromLane="1" toLane="1" via=":1263725264_8_0" dir="t" state="m"/>
- <connection from="-81523330#4" to="-81523330#3" fromLane="0" toLane="0" via=":1243159116_0_0" dir="s" state="M"/>
- <connection from="-81523330#4" to="-81523330#3" fromLane="1" toLane="1" via=":1243159116_1_0" dir="s" state="M"/>
- <connection from="-81523330#4" to="108329426#0" fromLane="1" toLane="0" via=":1243159116_2_0" dir="s" state="m"/>
- <connection from="-81523330#4" to="81523330#4" fromLane="1" toLane="1" via=":1243159116_3_0" dir="t" state="m"/>
- <connection from="-81672209" to="81672216#4" fromLane="0" toLane="0" via=":951739458_3_0" dir="r" state="="/>
- <connection from="-81672209" to="-81672216#3" fromLane="0" toLane="0" via=":951739458_4_0" dir="l" state="="/>
- <connection from="-81672209" to="81672209" fromLane="0" toLane="0" via=":951739458_5_0" dir="t" state="="/>
- <connection from="-81672213" to="81672216#3" fromLane="0" toLane="0" via=":951739420_3_0" dir="r" state="="/>
- <connection from="-81672213" to="-81672216#2" fromLane="0" toLane="0" via=":951739420_4_0" dir="l" state="="/>
- <connection from="-81672213" to="81672213" fromLane="0" toLane="0" via=":951739420_5_0" dir="t" state="="/>
- <connection from="-81672214" to="81672216#2" fromLane="0" toLane="0" via=":951739766_3_0" dir="r" state="="/>
- <connection from="-81672214" to="-81672216#1" fromLane="0" toLane="0" via=":951739766_4_0" dir="l" state="="/>
- <connection from="-81672214" to="81672214" fromLane="0" toLane="0" via=":951739766_5_0" dir="t" state="="/>
- <connection from="-81672216#0" to="37973569#5" fromLane="0" toLane="0" via=":951739693_0_0" dir="r" state="m"/>
- <connection from="-81672216#0" to="81672216#0" fromLane="0" toLane="0" via=":951739693_1_0" dir="t" state="m"/>
- <connection from="-81672216#1" to="-81672216#0" fromLane="0" toLane="0" via=":1457699220_0_0" dir="s" state="="/>
- <connection from="-81672216#1" to="-81672216#9" fromLane="0" toLane="0" via=":1457699220_1_0" dir="l" state="="/>
- <connection from="-81672216#1" to="81672216#1" fromLane="0" toLane="0" via=":1457699220_2_0" dir="t" state="="/>
- <connection from="-81672216#2" to="-81672216#1" fromLane="0" toLane="0" via=":951739766_0_0" dir="s" state="="/>
- <connection from="-81672216#2" to="81672214" fromLane="0" toLane="0" via=":951739766_1_0" dir="l" state="="/>
- <connection from="-81672216#2" to="81672216#2" fromLane="0" toLane="0" via=":951739766_2_0" dir="t" state="="/>
- <connection from="-81672216#3" to="-81672216#2" fromLane="0" toLane="0" via=":951739420_0_0" dir="s" state="="/>
- <connection from="-81672216#3" to="81672213" fromLane="0" toLane="0" via=":951739420_1_0" dir="l" state="="/>
- <connection from="-81672216#3" to="81672216#3" fromLane="0" toLane="0" via=":951739420_2_0" dir="t" state="="/>
- <connection from="-81672216#4" to="-81672216#3" fromLane="0" toLane="0" via=":951739458_0_0" dir="s" state="="/>
- <connection from="-81672216#4" to="81672209" fromLane="0" toLane="0" via=":951739458_1_0" dir="l" state="="/>
- <connection from="-81672216#4" to="81672216#4" fromLane="0" toLane="0" via=":951739458_2_0" dir="t" state="="/>
- <connection from="-81672216#5" to="-81672216#4" fromLane="0" toLane="0" via=":951739511_0_0" dir="s" state="="/>
- <connection from="-81672216#5" to="81672218" fromLane="0" toLane="0" via=":951739511_1_0" dir="l" state="="/>
- <connection from="-81672216#5" to="81672216#5" fromLane="0" toLane="0" via=":951739511_2_0" dir="t" state="="/>
- <connection from="-81672216#6" to="-81672218" fromLane="0" toLane="0" via=":1457699223_3_0" dir="l" state="="/>
- <connection from="-81672216#6" to="-81672216#5" fromLane="0" toLane="0" via=":1457699223_4_0" dir="s" state="="/>
- <connection from="-81672216#6" to="81672216#6" fromLane="0" toLane="0" via=":1457699223_5_0" dir="t" state="="/>
- <connection from="-81672216#7" to="-81672216#6" fromLane="0" toLane="0" via=":1457699222_3_0" dir="s" state="="/>
- <connection from="-81672216#7" to="-81672209" fromLane="0" toLane="0" via=":1457699222_4_0" dir="l" state="="/>
- <connection from="-81672216#7" to="81672216#7" fromLane="0" toLane="0" via=":1457699222_5_0" dir="t" state="="/>
- <connection from="-81672216#8" to="-81672216#7" fromLane="0" toLane="0" via=":951739568_3_0" dir="s" state="="/>
- <connection from="-81672216#8" to="-81672213" fromLane="0" toLane="0" via=":951739568_4_0" dir="l" state="="/>
- <connection from="-81672216#8" to="81672216#8" fromLane="0" toLane="0" via=":951739568_5_0" dir="t" state="="/>
- <connection from="-81672216#9" to="-81672216#8" fromLane="0" toLane="0" via=":951739549_3_0" dir="s" state="="/>
- <connection from="-81672216#9" to="-81672214" fromLane="0" toLane="0" via=":951739549_4_0" dir="l" state="="/>
- <connection from="-81672216#9" to="81672216#9" fromLane="0" toLane="0" via=":951739549_5_0" dir="t" state="="/>
- <connection from="-81672218" to="-81672216#4" fromLane="0" toLane="0" via=":951739511_3_0" dir="l" state="="/>
- <connection from="-81672218" to="81672216#5" fromLane="0" toLane="0" via=":951739511_4_0" dir="r" state="="/>
- <connection from="-81672218" to="81672218" fromLane="0" toLane="0" via=":951739511_5_0" dir="t" state="="/>
- <connection from="-83038920" to="-83038923#0" fromLane="0" toLane="0" via=":966097837_0_0" dir="r" state="="/>
- <connection from="-83038920" to="83038923#1" fromLane="0" toLane="0" via=":966097837_1_0" dir="l" state="="/>
- <connection from="-83038920" to="83038920" fromLane="0" toLane="0" via=":966097837_2_0" dir="t" state="="/>
- <connection from="-83038923#0" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_0_0" dir="r" state="m"/>
- <connection from="-83038923#0" to="130443630#2" fromLane="0" toLane="0" via=":966097869_1_0" dir="l" state="m"/>
- <connection from="-83038923#0" to="83038923#0" fromLane="0" toLane="0" via=":966097869_2_0" dir="t" state="m"/>
- <connection from="-83038923#1" to="-83038923#0" fromLane="0" toLane="0" via=":966097837_3_0" dir="s" state="="/>
- <connection from="-83038923#1" to="83038920" fromLane="0" toLane="0" via=":966097837_4_0" dir="r" state="="/>
- <connection from="-83038923#1" to="83038923#1" fromLane="0" toLane="0" via=":966097837_5_0" dir="t" state="="/>
- <connection from="-83051417" to="-83051421#1" fromLane="0" toLane="0" via=":966193812_3_0" dir="r" state="="/>
- <connection from="-83051417" to="83051421#2" fromLane="0" toLane="0" via=":966193812_4_0" dir="l" state="="/>
- <connection from="-83051417" to="83051417" fromLane="0" toLane="0" via=":966193812_5_0" dir="t" state="="/>
- <connection from="-83051420" to="83051436#0" fromLane="0" toLane="0" via=":966193808_8_0" dir="r" state="M"/>
- <connection from="-83051420" to="-83051417" fromLane="0" toLane="0" via=":966193808_9_0" dir="s" state="M"/>
- <connection from="-83051420" to="-24573937" fromLane="0" toLane="0" via=":966193808_10_0" dir="l" state="M"/>
- <connection from="-83051420" to="83051420" fromLane="0" toLane="0" via=":966193808_11_0" dir="t" state="m"/>
- <connection from="-83051421#0" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_12_0" dir="r" state="m"/>
- <connection from="-83051421#0" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_13_0" dir="R" state="m"/>
- <connection from="-83051421#0" to="24573947#3" fromLane="0" toLane="0" via=":267169634_14_0" dir="l" state="m"/>
- <connection from="-83051421#0" to="83051421#0" fromLane="0" toLane="0" via=":267169634_15_0" dir="t" state="m"/>
- <connection from="-83051421#1" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_12_0" dir="r" state="="/>
- <connection from="-83051421#1" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_13_0" dir="s" state="="/>
- <connection from="-83051421#1" to="24573939#1" fromLane="0" toLane="0" via=":267169686_14_0" dir="l" state="="/>
- <connection from="-83051421#1" to="83051421#1" fromLane="0" toLane="0" via=":267169686_15_0" dir="t" state="="/>
- <connection from="-83051421#2" to="83051417" fromLane="0" toLane="0" via=":966193812_6_0" dir="r" state="="/>
- <connection from="-83051421#2" to="-83051421#1" fromLane="0" toLane="0" via=":966193812_7_0" dir="s" state="="/>
- <connection from="-83051421#2" to="83051421#2" fromLane="0" toLane="0" via=":966193812_8_0" dir="t" state="="/>
- <connection from="-83051424" to="-83051483" fromLane="0" toLane="0" via=":966193814_2_0" dir="s" state="M"/>
- <connection from="-83051424" to="83051424" fromLane="0" toLane="0" via=":966193814_3_0" dir="t" state="m"/>
- <connection from="-83051426" to="83051442#0" fromLane="0" toLane="0" via=":733663071_6_0" dir="r" state="="/>
- <connection from="-83051426" to="-83051442#2" fromLane="0" toLane="0" via=":733663071_7_0" dir="s" state="="/>
- <connection from="-83051426" to="83051426" fromLane="0" toLane="0" via=":733663071_8_0" dir="t" state="="/>
- <connection from="-83051436#0" to="-83051417" fromLane="0" toLane="0" via=":966193808_4_0" dir="r" state="m"/>
- <connection from="-83051436#0" to="-24573937" fromLane="0" toLane="0" via=":966193808_5_0" dir="s" state="m"/>
- <connection from="-83051436#0" to="83051420" fromLane="0" toLane="0" via=":966193808_6_0" dir="l" state="m"/>
- <connection from="-83051436#0" to="83051436#0" fromLane="0" toLane="0" via=":966193808_7_0" dir="t" state="m"/>
- <connection from="-83051436#1" to="24573939#0" fromLane="0" toLane="0" via=":267169690_4_0" dir="r" state="m"/>
- <connection from="-83051436#1" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_5_0" dir="s" state="m"/>
- <connection from="-83051436#1" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_6_0" dir="l" state="m"/>
- <connection from="-83051436#1" to="83051436#1" fromLane="0" toLane="0" via=":267169690_7_0" dir="t" state="m"/>
- <connection from="-83051442#0" to="-83051442#2" fromLane="0" toLane="0" via=":733663071_3_0" dir="s" state="="/>
- <connection from="-83051442#0" to="83051426" fromLane="0" toLane="0" via=":733663071_4_0" dir="l" state="="/>
- <connection from="-83051442#0" to="83051442#0" fromLane="0" toLane="0" via=":733663071_5_0" dir="t" state="="/>
- <connection from="-83051442#1" to="-83051442#0" fromLane="0" toLane="0" via=":733663078_3_0" dir="s" state="="/>
- <connection from="-83051442#1" to="83051455" fromLane="0" toLane="0" via=":733663078_4_0" dir="s" state="="/>
- <connection from="-83051442#1" to="83051442#1" fromLane="0" toLane="0" via=":733663078_5_0" dir="t" state="="/>
- <connection from="-83051442#2" to="-83051442#1" fromLane="0" toLane="0" via=":441266874_0_0" dir="s" state="="/>
- <connection from="-83051442#2" to="-24573939#2" fromLane="0" toLane="0" via=":441266874_1_0" dir="l" state="="/>
- <connection from="-83051442#2" to="83051442#2" fromLane="0" toLane="0" via=":441266874_2_0" dir="t" state="="/>
- <connection from="-83051455" to="83051442#1" fromLane="0" toLane="0" via=":733663078_6_0" dir="s" state="="/>
- <connection from="-83051455" to="-83051442#0" fromLane="0" toLane="0" via=":733663078_7_0" dir="l" state="="/>
- <connection from="-83051455" to="83051455" fromLane="0" toLane="0" via=":733663078_8_0" dir="t" state="="/>
- <connection from="-83051480#0" to="83051480#0" fromLane="0" toLane="0" via=":257907508_0_0" dir="t" state="M"/>
- <connection from="-83051480#1" to="-83051480#0" fromLane="0" toLane="0" via=":966193793_6_0" dir="s" state="="/>
- <connection from="-83051480#1" to="-83051424" fromLane="0" toLane="0" via=":966193793_7_0" dir="l" state="="/>
- <connection from="-83051480#1" to="83051480#1" fromLane="0" toLane="0" via=":966193793_8_0" dir="t" state="="/>
- <connection from="-83051483" to="37771904#1" fromLane="0" toLane="0" via=":966193857_0_0" dir="r" state="M"/>
- <connection from="-83051483" to="83051483" fromLane="0" toLane="0" via=":966193857_1_0" dir="t" state="m"/>
- <connection from="101272424#0" to="166576464#4" fromLane="0" toLane="0" via=":1780219363_3_0" dir="r" state="M"/>
- <connection from="101272424#0" to="101272424#1" fromLane="0" toLane="0" via=":1780219363_4_0" dir="s" state="M"/>
- <connection from="101272424#0" to="-166576464#3" fromLane="0" toLane="0" via=":1780219363_5_0" dir="l" state="M"/>
- <connection from="101272424#1" to="101272424#2" fromLane="0" toLane="0" via=":267169591_1_0" dir="s" state="m"/>
- <connection from="101272424#2" to="166576468#3" fromLane="0" toLane="0" via=":1780219362_3_0" dir="r" state="M"/>
- <connection from="101272424#2" to="101272424#3" fromLane="0" toLane="0" via=":1780219362_4_0" dir="s" state="M"/>
- <connection from="101272424#2" to="-166576468#2" fromLane="0" toLane="0" via=":1780219362_5_0" dir="l" state="M"/>
- <connection from="101272424#3" to="37772596#0" fromLane="0" toLane="0" via=":443101913_0_0" tl="443101913" linkIndex="0" dir="r" state="o"/>
- <connection from="101272424#3" to="101272424#4" fromLane="0" toLane="0" via=":443101913_1_0" tl="443101913" linkIndex="1" dir="s" state="o"/>
- <connection from="101272424#4" to="111549913#4" fromLane="0" toLane="0" via=":950640399_0_0" dir="r" state="m"/>
- <connection from="101272424#4" to="101272424#5" fromLane="0" toLane="0" via=":950640399_1_0" dir="s" state="m"/>
- <connection from="101272424#5" to="-149868584#6" fromLane="0" toLane="0" via=":13929775_4_0" tl="13929775" linkIndex="4" dir="r" state="o"/>
- <connection from="101272424#5" to="42976410#0" fromLane="0" toLane="0" via=":13929775_5_0" tl="13929775" linkIndex="5" dir="s" state="o"/>
- <connection from="101272424#5" to="149868584#7" fromLane="0" toLane="1" via=":13929775_6_0" tl="13929775" linkIndex="6" dir="l" state="o"/>
- <connection from="101272426#0" to="23262356#2" fromLane="0" toLane="0" via=":443101920_6_0" dir="r" state="m"/>
- <connection from="101272426#0" to="101272426#1" fromLane="0" toLane="0" via=":443101920_7_0" dir="s" state="m"/>
- <connection from="101272426#0" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_8_0" dir="l" state="m"/>
- <connection from="101272426#1" to="-149422210#1" fromLane="0" toLane="0" via=":443101921_6_0" dir="r" state="M"/>
- <connection from="101272426#1" to="101272426#2" fromLane="0" toLane="0" via=":443101921_7_0" dir="s" state="M"/>
- <connection from="101272426#1" to="149422193#0" fromLane="0" toLane="0" via=":443101921_8_0" dir="l" state="M"/>
- <connection from="101272429#0" to="23182589#0" fromLane="0" toLane="0" via=":443101911_0_0" dir="r" state="M"/>
- <connection from="101272429#0" to="101272429#1" fromLane="0" toLane="0" via=":443101911_1_0" dir="s" state="M"/>
- <connection from="101272429#1" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_3_0" tl="452425502" linkIndex="3" dir="r" state="o"/>
- <connection from="101272429#1" to="101272429#2" fromLane="0" toLane="0" via=":452425502_4_0" tl="452425502" linkIndex="4" dir="s" state="o"/>
- <connection from="101272429#1" to="38319550#4" fromLane="0" toLane="0" via=":452425502_5_0" tl="452425502" linkIndex="5" dir="l" state="o"/>
- <connection from="101272429#2" to="42976410#2" fromLane="0" toLane="0" via=":443101912_0_0" tl="443101912" linkIndex="0" dir="r" state="o"/>
- <connection from="101272429#2" to="37973569#0" fromLane="0" toLane="0" via=":443101912_1_0" tl="443101912" linkIndex="1" dir="s" state="o"/>
- <connection from="101272431" to="-160587538#1" fromLane="0" toLane="0" via=":1168929634_6_0" tl="1168929634" linkIndex="6" dir="r" state="o"/>
- <connection from="101272431" to="154844478" fromLane="0" toLane="0" via=":1168929634_7_0" tl="1168929634" linkIndex="7" dir="s" state="o"/>
- <connection from="101272431" to="160587538#2" fromLane="0" toLane="1" via=":1168929634_8_0" tl="1168929634" linkIndex="8" dir="l" state="o"/>
- <connection from="101272434" to="-101272434" fromLane="0" toLane="0" via=":566670951_0_0" dir="t" state="M"/>
- <connection from="101272435#0" to="24573937" fromLane="0" toLane="0" via=":267169964_2_0" dir="r" state="M"/>
- <connection from="101272435#0" to="101272435#1" fromLane="0" toLane="0" via=":267169964_3_0" dir="s" state="m"/>
- <connection from="101272435#1" to="37771904#0" fromLane="0" toLane="0" via=":443089074_0_0" dir="r" state="M"/>
- <connection from="101272435#1" to="101272435#2" fromLane="0" toLane="0" via=":443089074_1_0" dir="s" state="M"/>
- <connection from="101272435#2" to="101272435#3" fromLane="0" toLane="0" via=":441266879_1_0" dir="s" state="m"/>
- <connection from="101272435#3" to="-38319548#10" fromLane="0" toLane="0" via=":1669480279_3_0" dir="r" state="M"/>
- <connection from="101272435#3" to="101272435#4" fromLane="0" toLane="0" via=":1669480279_4_0" dir="s" state="M"/>
- <connection from="101272435#3" to="38319548#11" fromLane="0" toLane="0" via=":1669480279_5_0" dir="l" state="M"/>
- <connection from="101272435#4" to="154844500#1" fromLane="0" toLane="0" via=":441266880_3_0" tl="441266880" linkIndex="3" dir="r" state="o"/>
- <connection from="101272435#4" to="101272435#5" fromLane="0" toLane="0" via=":441266880_4_0" tl="441266880" linkIndex="4" dir="s" state="o"/>
- <connection from="101272435#4" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_5_0" tl="441266880" linkIndex="5" dir="l" state="o"/>
- <connection from="101272435#5" to="38319548#8" fromLane="0" toLane="0" via=":1669480283_3_0" dir="r" state="M"/>
- <connection from="101272435#5" to="101272435#6" fromLane="0" toLane="0" via=":1669480283_4_0" dir="s" state="M"/>
- <connection from="101272435#5" to="-38319548#7" fromLane="0" toLane="0" via=":1669480283_5_0" dir="l" state="M"/>
- <connection from="101272435#6" to="172498387#5" fromLane="0" toLane="0" via=":441266884_0_0" tl="441266884" linkIndex="0" dir="r" state="o"/>
- <connection from="101272435#6" to="101272435#7" fromLane="0" toLane="0" via=":441266884_1_0" tl="441266884" linkIndex="1" dir="s" state="o"/>
- <connection from="103851602#0" to="-38319548#12" fromLane="0" toLane="0" via=":951739684_3_0" dir="r" state="M"/>
- <connection from="103851602#0" to="103851602#1" fromLane="0" toLane="0" via=":951739684_4_0" dir="s" state="M"/>
- <connection from="103851602#0" to="38319548#13" fromLane="0" toLane="0" via=":951739684_5_0" dir="l" state="M"/>
- <connection from="103851602#1" to="154844483#2" fromLane="0" toLane="0" via=":951739718_0_0" dir="r" state="m"/>
- <connection from="103851602#1" to="103851602#2" fromLane="0" toLane="0" via=":951739718_1_0" dir="s" state="m"/>
- <connection from="103851602#2" to="160587538#5" fromLane="0" toLane="0" via=":1726394725_3_0" dir="r" state="M"/>
- <connection from="103851602#2" to="103851602#3" fromLane="0" toLane="0" via=":1726394725_4_0" dir="s" state="M"/>
- <connection from="103851602#2" to="-160587538#4" fromLane="0" toLane="1" via=":1726394725_5_0" dir="l" state="M"/>
- <connection from="103851602#3" to="103851602#4" fromLane="0" toLane="0" via=":951739776_3_0" dir="s" state="m"/>
- <connection from="103851602#3" to="166603397#1" fromLane="0" toLane="1" via=":951739776_4_0" dir="l" state="m"/>
- <connection from="103851602#4" to="111863125#0" fromLane="0" toLane="0" via=":1168929523_2_0" dir="s" state="m"/>
- <connection from="103851602#4" to="154844470#0" fromLane="0" toLane="0" via=":1168929523_3_0" dir="l" state="m"/>
- <connection from="105251811#0" to="105251811#1" fromLane="0" toLane="0" via=":1212941056_2_0" dir="s" state="m"/>
- <connection from="105251811#0" to="37942667#2" fromLane="0" toLane="0" via=":1212941056_3_0" dir="l" state="m"/>
- <connection from="105251811#1" to="108329425#0" fromLane="0" toLane="0" via=":733663076_8_0" dir="r" state="m"/>
- <connection from="105251811#1" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_9_0" dir="L" state="m"/>
- <connection from="105251811#1" to="59159259#0" fromLane="0" toLane="0" via=":733663076_10_0" dir="L" state="m"/>
- <connection from="105251811#1" to="105283535#0" fromLane="0" toLane="0" via=":733663076_11_0" dir="l" state="m"/>
- <connection from="105254616#0" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_6_0" dir="s" state="m"/>
- <connection from="105254616#0" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_7_0" dir="r" state="m"/>
- <connection from="105254616#0" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_8_0" dir="t" state="m"/>
- <connection from="105254616#1" to="81672207#2" fromLane="0" toLane="0" via=":1719223322_2_0" dir="r" state="m"/>
- <connection from="105254616#1" to="-105254616#1" fromLane="0" toLane="0" via=":1719223322_3_0" dir="t" state="m"/>
- <connection from="105254618" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_0_0" dir="r" state="m"/>
- <connection from="105254618" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_1_0" dir="l" state="m"/>
- <connection from="105254618" to="-105254618" fromLane="0" toLane="0" via=":1634988377_2_0" dir="t" state="m"/>
- <connection from="105283535#0" to="37942667#3" fromLane="0" toLane="0" via=":1213368991_0_0" dir="r" state="M"/>
- <connection from="105283535#0" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_1_0" dir="s" state="M"/>
- <connection from="105283535#0" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_2_0" dir="t" state="m"/>
- <connection from="105283535#1" to="-37973566" fromLane="0" toLane="0" via=":552842256_6_0" dir="r" state="M"/>
- <connection from="105283535#1" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_7_0" dir="s" state="M"/>
- <connection from="105283535#1" to="43684741#0" fromLane="0" toLane="0" via=":552842256_8_0" dir="s" state="m"/>
- <connection from="105283535#1" to="130443630#0" fromLane="0" toLane="0" via=":552842256_9_0" dir="L" state="m"/>
- <connection from="105283535#1" to="105251811#0" fromLane="0" toLane="0" via=":552842256_10_0" dir="l" state="m"/>
- <connection from="105283535#1" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_11_0" dir="t" state="m"/>
- <connection from="106366773" to="179917801" fromLane="0" toLane="0" via=":1224080662_0_0" dir="s" state="M"/>
- <connection from="106366774" to="-106366774" fromLane="0" toLane="0" via=":1224080676_0_0" dir="t" state="M"/>
- <connection from="106367427#0" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_8_0" dir="r" state="m"/>
- <connection from="106367427#0" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_9_0" dir="s" state="m"/>
- <connection from="106367427#0" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_10_0" dir="l" state="m"/>
- <connection from="106367427#0" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_11_0" dir="t" state="m"/>
- <connection from="106367427#1" to="-106367427#1" fromLane="0" toLane="0" via=":1903640411_1_0" dir="t" state="m"/>
- <connection from="106836308#0" to="106836308#1" fromLane="0" toLane="0" via=":1232169474_0_0" dir="s" state="m"/>
- <connection from="106836308#0" to="-107166846#5" fromLane="0" toLane="0" via=":1232169474_1_0" dir="l" state="m"/>
- <connection from="106836308#0" to="-106836308#0" fromLane="0" toLane="0" via=":1232169474_2_0" dir="t" state="m"/>
- <connection from="106836308#1" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_4_0" dir="r" state="m"/>
- <connection from="106836308#1" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_5_0" dir="s" state="m"/>
- <connection from="106836308#1" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_6_0" dir="l" state="m"/>
- <connection from="106836308#1" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_7_0" dir="t" state="m"/>
- <connection from="106836308#2" to="-106836308#2" fromLane="0" toLane="0" via=":1228499925_0_0" dir="t" state="M"/>
- <connection from="106836317#0" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_6_0" dir="r" state="m"/>
- <connection from="106836317#0" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_7_0" dir="s" state="m"/>
- <connection from="106836317#0" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_8_0" dir="l" state="m"/>
- <connection from="106836317#1" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_6_0" dir="r" state="m"/>
- <connection from="106836317#1" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_7_0" dir="s" state="m"/>
- <connection from="106836317#1" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_8_0" dir="l" state="m"/>
- <connection from="106836317#2" to="81394192#2" fromLane="0" toLane="0" via=":1228499945_2_0" dir="r" state="m"/>
- <connection from="106836317#2" to="106836317#3" fromLane="0" toLane="0" via=":1228499945_3_0" dir="s" state="m"/>
- <connection from="106836317#3" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_4_0" dir="r" state="m"/>
- <connection from="106836317#3" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_5_0" dir="l" state="m"/>
- <connection from="107028581#0" to="107028581#1" fromLane="0" toLane="0" via=":728492353_3_0" dir="s" state="M"/>
- <connection from="107028581#0" to="107166846#0" fromLane="0" toLane="0" via=":728492353_4_0" dir="l" state="m"/>
- <connection from="107028581#0" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_5_0" dir="t" state="m"/>
- <connection from="107028581#1" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_8_0" dir="r" state="M"/>
- <connection from="107028581#1" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_9_0" dir="s" state="M"/>
- <connection from="107028581#1" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_10_0" dir="l" state="m"/>
- <connection from="107028581#1" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_11_0" dir="t" state="m"/>
- <connection from="107028581#2" to="81394192#7" fromLane="0" toLane="0" via=":552842257_3_0" dir="r" state="M"/>
- <connection from="107028581#2" to="107028581#3" fromLane="0" toLane="0" via=":552842257_4_0" dir="s" state="M"/>
- <connection from="107028581#2" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_5_0" dir="t" state="m"/>
- <connection from="107028581#3" to="43684741#0" fromLane="0" toLane="0" via=":552842256_24_0" dir="r" state="M"/>
- <connection from="107028581#3" to="130443630#0" fromLane="0" toLane="0" via=":552842256_25_0" dir="R" state="M"/>
- <connection from="107028581#3" to="105251811#0" fromLane="0" toLane="0" via=":552842256_26_0" dir="s" state="M"/>
- <connection from="107028581#3" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_27_0" dir="s" state="M"/>
- <connection from="107028581#3" to="-37973566" fromLane="0" toLane="0" via=":552842256_28_0" dir="l" state="m"/>
- <connection from="107028581#3" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_29_0" dir="t" state="m"/>
- <connection from="107066313#0" to="38027665#1" fromLane="0" toLane="0" via=":477486719_8_0" dir="r" state="M"/>
- <connection from="107066313#0" to="107066313#1" fromLane="0" toLane="0" via=":477486719_9_0" dir="s" state="M"/>
- <connection from="107066313#0" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_10_0" dir="l" state="m"/>
- <connection from="107066313#0" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_11_0" dir="t" state="m"/>
- <connection from="107066313#1" to="58779718#0" fromLane="0" toLane="0" via=":728492341_6_0" dir="r" state="M"/>
- <connection from="107066313#1" to="107066313#2" fromLane="0" toLane="0" via=":728492341_7_0" dir="s" state="M"/>
- <connection from="107066313#1" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_8_0" dir="t" state="m"/>
- <connection from="107066313#2" to="38027102#1" fromLane="0" toLane="0" via=":477486717_8_0" dir="r" state="M"/>
- <connection from="107066313#2" to="107066313#3" fromLane="0" toLane="0" via=":477486717_9_0" dir="s" state="M"/>
- <connection from="107066313#2" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_10_0" dir="l" state="m"/>
- <connection from="107066313#2" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_11_0" dir="t" state="m"/>
- <connection from="107066313#3" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_3_0" dir="r" state="M"/>
- <connection from="107066313#3" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_4_0" dir="s" state="M"/>
- <connection from="107066313#3" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_5_0" dir="t" state="m"/>
- <connection from="107066313#4" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_8_0" dir="r" state="M"/>
- <connection from="107066313#4" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_9_0" dir="s" state="M"/>
- <connection from="107066313#4" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_10_0" dir="l" state="m"/>
- <connection from="107066313#4" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_11_0" dir="t" state="m"/>
- <connection from="107066313#5" to="134572336#1" fromLane="0" toLane="0" via=":477486714_3_0" dir="r" state="M"/>
- <connection from="107066313#5" to="81394169#0" fromLane="0" toLane="0" via=":477486714_4_0" dir="s" state="M"/>
- <connection from="107066313#5" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_5_0" dir="t" state="m"/>
- <connection from="107166846#0" to="38027665#2" fromLane="0" toLane="0" via=":728492372_4_0" dir="r" state="M"/>
- <connection from="107166846#0" to="107166846#1" fromLane="0" toLane="0" via=":728492372_5_0" dir="s" state="M"/>
- <connection from="107166846#0" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_6_0" dir="l" state="m"/>
- <connection from="107166846#0" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_7_0" dir="t" state="m"/>
- <connection from="107166846#1" to="58779718#1" fromLane="0" toLane="0" via=":728492360_4_0" dir="r" state="M"/>
- <connection from="107166846#1" to="107166846#2" fromLane="0" toLane="0" via=":728492360_5_0" dir="s" state="M"/>
- <connection from="107166846#1" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_6_0" dir="l" state="m"/>
- <connection from="107166846#1" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_7_0" dir="t" state="m"/>
- <connection from="107166846#2" to="58779719#1" fromLane="0" toLane="0" via=":728492361_4_0" dir="r" state="M"/>
- <connection from="107166846#2" to="107166846#3" fromLane="0" toLane="0" via=":728492361_5_0" dir="s" state="M"/>
- <connection from="107166846#2" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_6_0" dir="l" state="m"/>
- <connection from="107166846#2" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_7_0" dir="t" state="m"/>
- <connection from="107166846#3" to="38027102#2" fromLane="0" toLane="0" via=":728492366_8_0" dir="r" state="m"/>
- <connection from="107166846#3" to="107166846#4" fromLane="0" toLane="0" via=":728492366_9_0" dir="s" state="m"/>
- <connection from="107166846#3" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_10_0" dir="l" state="m"/>
- <connection from="107166846#3" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_11_0" dir="t" state="m"/>
- <connection from="107166846#4" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_3_0" dir="r" state="M"/>
- <connection from="107166846#4" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_4_0" dir="s" state="M"/>
- <connection from="107166846#4" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_5_0" dir="t" state="m"/>
- <connection from="107166846#5" to="-106836308#0" fromLane="0" toLane="0" via=":1232169474_3_0" dir="r" state="M"/>
- <connection from="107166846#5" to="106836308#1" fromLane="0" toLane="0" via=":1232169474_4_0" dir="l" state="M"/>
- <connection from="107166846#5" to="-107166846#5" fromLane="0" toLane="0" via=":1232169474_5_0" dir="t" state="m"/>
- <connection from="107167209#0" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_4_0" dir="r" state="m"/>
- <connection from="107167209#0" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_5_0" dir="s" state="m"/>
- <connection from="107167209#0" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_6_0" dir="l" state="m"/>
- <connection from="107167209#0" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_7_0" dir="t" state="m"/>
- <connection from="107167209#1" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_3_0" dir="r" state="m"/>
- <connection from="107167209#1" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_4_0" dir="l" state="m"/>
- <connection from="107167209#1" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_5_0" dir="t" state="m"/>
- <connection from="108329425#0" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_0_0" dir="s" state="M"/>
- <connection from="108329425#0" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_1_0" dir="l" state="m"/>
- <connection from="108329425#0" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_2_0" dir="t" state="m"/>
- <connection from="108329425#1" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_0_0" dir="s" state="M"/>
- <connection from="108329425#1" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_1_0" dir="l" state="m"/>
- <connection from="108329425#1" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_2_0" dir="t" state="m"/>
- <connection from="108329425#2" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_0_0" dir="s" state="M"/>
- <connection from="108329425#2" to="105254618" fromLane="0" toLane="0" via=":1212960877_1_0" dir="l" state="m"/>
- <connection from="108329425#2" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_2_0" dir="t" state="m"/>
- <connection from="108329425#3" to="117492209" fromLane="0" toLane="0" via=":1323557968_0_0" dir="r" state="M"/>
- <connection from="108329425#3" to="108329425#4" fromLane="0" toLane="0" via=":1323557968_1_0" dir="s" state="M"/>
- <connection from="108329425#3" to="-108329425#3" fromLane="0" toLane="0" via=":1323557968_2_0" dir="t" state="m"/>
- <connection from="108329425#4" to="37942667#0" fromLane="0" toLane="0" via=":429179805_0_0" dir="r" state="M"/>
- <connection from="108329425#4" to="108329425#5" fromLane="0" toLane="0" via=":429179805_1_0" dir="s" state="M"/>
- <connection from="108329425#4" to="-108329425#4" fromLane="0" toLane="0" via=":429179805_2_0" dir="t" state="m"/>
- <connection from="108329425#5" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_0_0" dir="r" state="m"/>
- <connection from="108329425#5" to="130443630#1" fromLane="0" toLane="0" via=":445506220_1_0" dir="l" state="m"/>
- <connection from="108329425#5" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_2_0" dir="t" state="m"/>
- <connection from="108329426#0" to="108329427#0" fromLane="0" toLane="0" via=":427996792_10_0" tl="427996792" linkIndex="10" dir="r" state="o"/>
- <connection from="108329426#0" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_11_0" tl="427996792" linkIndex="11" dir="R" state="o"/>
- <connection from="108329426#0" to="108329426#1" fromLane="0" toLane="0" via=":427996792_12_0" tl="427996792" linkIndex="12" dir="s" state="o"/>
- <connection from="108329426#0" to="44641744#1" fromLane="0" toLane="0" via=":427996792_13_0" tl="427996792" linkIndex="13" dir="l" state="o"/>
- <connection from="108329426#0" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_14_0" tl="427996792" linkIndex="14" dir="t" state="o"/>
- <connection from="108329426#1" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_0_0" dir="r" state="M"/>
- <connection from="108329426#1" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_1_0" dir="s" state="M"/>
- <connection from="108329426#1" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_2_0" dir="l" state="m"/>
- <connection from="108329426#1" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_3_0" dir="t" state="m"/>
- <connection from="108329426#2" to="37942668#0" fromLane="0" toLane="0" via=":445506216_0_0" dir="r" state="M"/>
- <connection from="108329426#2" to="69931595#0" fromLane="0" toLane="0" via=":445506216_1_0" dir="s" state="M"/>
- <connection from="108329426#2" to="-108329426#2" fromLane="0" toLane="0" via=":445506216_2_0" dir="t" state="m"/>
- <connection from="108329427#0" to="81523330#3" fromLane="0" toLane="0" via=":1263725264_9_0" dir="r" state="m"/>
- <connection from="108329427#0" to="108329427#1" fromLane="0" toLane="0" via=":1263725264_10_0" dir="s" state="m"/>
- <connection from="108329427#0" to="-81523330#2" fromLane="0" toLane="1" via=":1263725264_11_0" dir="l" state="m"/>
- <connection from="108329427#0" to="-108329427#0" fromLane="0" toLane="0" via=":1263725264_12_0" dir="t" state="m"/>
- <connection from="108329427#1" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_8_0" dir="r" state="M"/>
- <connection from="108329427#1" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_9_0" dir="s" state="M"/>
- <connection from="108329427#1" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_10_0" dir="l" state="m"/>
- <connection from="108329427#1" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_11_0" dir="t" state="m"/>
- <connection from="108329427#2" to="144874010#1" fromLane="0" toLane="1" via=":1243159115_3_0" dir="l" state="m"/>
- <connection from="108329427#2" to="-108329427#2" fromLane="0" toLane="0" via=":1243159115_4_0" dir="t" state="m"/>
- <connection from="108733421" to="170590354#0" fromLane="0" toLane="0" via=":1246731541_0_0" dir="s" state="M"/>
- <connection from="108733421" to="-108733421" fromLane="0" toLane="0" via=":1246731541_1_0" dir="t" state="m"/>
- <connection from="108733422" to="154844479" fromLane="0" toLane="0" via=":1246731544_0_0" tl="1246731544" linkIndex="0" dir="s" state="o"/>
- <connection from="108733422" to="-108733422" fromLane="0" toLane="0" via=":1246731544_1_0" tl="1246731544" linkIndex="1" dir="t" state="o"/>
- <connection from="108733424" to="154844481" fromLane="0" toLane="0" via=":1246731525_2_0" dir="s" state="m"/>
- <connection from="108733424" to="-108733424" fromLane="0" toLane="0" via=":1246731525_3_0" dir="t" state="m"/>
- <connection from="108733425" to="166602674#1" fromLane="0" toLane="0" via=":1246731466_0_0" dir="s" state="m"/>
- <connection from="108733425" to="-108733425" fromLane="0" toLane="0" via=":1246731466_1_0" dir="t" state="m"/>
- <connection from="108733428" to="111863125#1" fromLane="0" toLane="0" via=":1246731576_0_0" dir="s" state="M"/>
- <connection from="108733428" to="-108733428" fromLane="0" toLane="0" via=":1246731576_1_0" dir="t" state="m"/>
- <connection from="108733429" to="154844461#1" fromLane="0" toLane="0" via=":1246731460_0_0" dir="s" state="M"/>
- <connection from="108733429" to="-108733429" fromLane="0" toLane="0" via=":1246731460_1_0" dir="t" state="m"/>
- <connection from="108733430" to="154844491#1" fromLane="0" toLane="0" via=":1246731457_0_0" dir="s" state="m"/>
- <connection from="108733430" to="-108733430" fromLane="0" toLane="0" via=":1246731457_1_0" dir="t" state="m"/>
- <connection from="108733431" to="154844465#2" fromLane="0" toLane="0" via=":1246731627_0_0" dir="s" state="M"/>
- <connection from="108733431" to="-108733431" fromLane="0" toLane="0" via=":1246731627_1_0" dir="t" state="m"/>
- <connection from="109438231#0" to="109438231#1" fromLane="0" toLane="0" via=":1479400627_2_0" dir="s" state="M"/>
- <connection from="109438231#0" to="134572340#1" fromLane="0" toLane="1" via=":1479400627_3_0" dir="s" state="M"/>
- <connection from="109438231#1" to="81523330#1" fromLane="0" toLane="0" via=":1252777720_3_0" dir="s" state="m"/>
- <connection from="109438231#1" to="-81523330#0" fromLane="0" toLane="1" via=":1252777720_4_0" dir="l" state="m"/>
- <connection from="109438232" to="81394188#3" fromLane="0" toLane="0" via=":1252777712_1_0" dir="s" state="m"/>
- <connection from="109912567#0" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_4_0" dir="r" state="m"/>
- <connection from="109912567#0" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_5_0" dir="s" state="m"/>
- <connection from="109912567#0" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_6_0" dir="l" state="m"/>
- <connection from="109912567#0" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_7_0" dir="t" state="m"/>
- <connection from="109912567#1" to="37973565#4" fromLane="0" toLane="0" via=":1257054132_0_0" dir="r" state="m"/>
- <connection from="109912567#1" to="-109912567#1" fromLane="0" toLane="0" via=":1257054132_1_0" dir="t" state="m"/>
- <connection from="109912568" to="-109912568" fromLane="0" toLane="0" via=":1257054162_0_0" dir="t" state="M"/>
- <connection from="109912572#0" to="37449253#4" fromLane="0" toLane="0" via=":1257054155_0_0" dir="r" state="m"/>
- <connection from="109912572#0" to="109912572#1" fromLane="0" toLane="0" via=":1257054155_1_0" dir="s" state="m"/>
- <connection from="109912572#0" to="-109912572#0" fromLane="0" toLane="0" via=":1257054155_2_0" dir="t" state="m"/>
- <connection from="109912572#1" to="133960538#2" fromLane="0" toLane="0" via=":1257054108_0_0" dir="r" state="m"/>
- <connection from="109912572#1" to="109912572#2" fromLane="0" toLane="0" via=":1257054108_1_0" dir="s" state="m"/>
- <connection from="109912572#1" to="-109912572#1" fromLane="0" toLane="0" via=":1257054108_2_0" dir="t" state="m"/>
- <connection from="109912572#2" to="109912572#3" fromLane="0" toLane="0" via=":1257054092_4_0" dir="s" state="m"/>
- <connection from="109912572#2" to="81394162#1" fromLane="0" toLane="1" via=":1257054092_5_0" dir="l" state="m"/>
- <connection from="109912572#2" to="-109912572#2" fromLane="0" toLane="0" via=":1257054092_6_0" dir="t" state="m"/>
- <connection from="109912572#3" to="109912572#4" fromLane="0" toLane="0" via=":1257054165_3_0" dir="s" state="m"/>
- <connection from="109912572#3" to="37449245#1" fromLane="0" toLane="0" via=":1257054165_4_0" dir="l" state="m"/>
- <connection from="109912572#3" to="-109912572#3" fromLane="0" toLane="0" via=":1257054165_5_0" dir="t" state="m"/>
- <connection from="109912572#4" to="109912567#0" fromLane="0" toLane="0" via=":1257054077_0_0" dir="s" state="M"/>
- <connection from="109912572#4" to="-109912572#4" fromLane="0" toLane="0" via=":1257054077_1_0" dir="t" state="m"/>
- <connection from="110514869#0" to="58770725#5" fromLane="0" toLane="0" via=":252417189_7_0" dir="r" state="M"/>
- <connection from="110514869#0" to="110514869#1" fromLane="0" toLane="0" via=":252417189_8_0" dir="s" state="M"/>
- <connection from="110514869#0" to="110514869#1" fromLane="1" toLane="1" via=":252417189_9_0" dir="s" state="M"/>
- <connection from="110514869#0" to="-110514869#0" fromLane="1" toLane="1" via=":252417189_10_0" dir="t" state="m"/>
- <connection from="110514869#1" to="37771900#6" fromLane="0" toLane="0" via=":443089063_7_0" tl="443089063" linkIndex="7" dir="r" state="o"/>
- <connection from="110514869#1" to="110514869#2" fromLane="0" toLane="0" via=":443089063_8_0" tl="443089063" linkIndex="8" dir="s" state="o"/>
- <connection from="110514869#1" to="110514869#2" fromLane="1" toLane="1" via=":443089063_9_0" tl="443089063" linkIndex="9" dir="s" state="o"/>
- <connection from="110514869#1" to="-110514869#1" fromLane="1" toLane="1" via=":443089063_10_0" tl="443089063" linkIndex="10" dir="t" state="o"/>
- <connection from="110514869#2" to="154844485#0" fromLane="0" toLane="0" via=":1669480282_7_0" dir="r" state="m"/>
- <connection from="110514869#2" to="154844485#0" fromLane="1" toLane="1" via=":1669480282_8_0" dir="r" state="m"/>
- <connection from="110514869#2" to="154844503" fromLane="1" toLane="0" via=":1669480282_9_0" dir="s" state="M"/>
- <connection from="110514869#2" to="-110514869#2" fromLane="1" toLane="1" via=":1669480282_10_0" dir="t" state="m"/>
- <connection from="111549913#0" to="34962531#1" fromLane="0" toLane="0" via=":950640371_6_0" dir="r" state="M"/>
- <connection from="111549913#0" to="111549913#1" fromLane="0" toLane="0" via=":950640371_7_0" dir="s" state="M"/>
- <connection from="111549913#0" to="-34962531#0" fromLane="0" toLane="0" via=":950640371_8_0" dir="l" state="M"/>
- <connection from="111549913#1" to="81394192#14" fromLane="0" toLane="0" via=":950640361_0_0" dir="r" state="M"/>
- <connection from="111549913#1" to="111549913#2" fromLane="0" toLane="0" via=":950640361_1_0" dir="s" state="M"/>
- <connection from="111549913#2" to="130443630#8" fromLane="0" toLane="0" via=":950640411_3_0" dir="r" state="M"/>
- <connection from="111549913#2" to="111549913#3" fromLane="0" toLane="0" via=":950640411_4_0" dir="s" state="M"/>
- <connection from="111549913#2" to="-130443630#7" fromLane="0" toLane="0" via=":950640411_5_0" dir="l" state="M"/>
- <connection from="111549913#3" to="111549913#4" fromLane="0" toLane="0" via=":950640399_2_0" dir="s" state="M"/>
- <connection from="111549913#3" to="101272424#5" fromLane="0" toLane="0" via=":950640399_3_0" dir="l" state="M"/>
- <connection from="111549913#4" to="38319550#7" fromLane="0" toLane="0" via=":950640351_6_0" dir="r" state="M"/>
- <connection from="111549913#4" to="111549913#5" fromLane="0" toLane="0" via=":950640351_7_0" dir="s" state="M"/>
- <connection from="111549913#4" to="-38319550#6" fromLane="0" toLane="0" via=":950640351_8_0" dir="l" state="M"/>
- <connection from="111549913#5" to="108733431" fromLane="0" toLane="0" via=":1246731601_2_0" dir="s" state="M"/>
- <connection from="111549913#5" to="111549913#6" fromLane="0" toLane="0" via=":1246731601_3_0" dir="s" state="m"/>
- <connection from="111549913#6" to="154844465#0" fromLane="0" toLane="0" via=":1168929310_2_0" dir="r" state="M"/>
- <connection from="111549913#6" to="111863096#0" fromLane="0" toLane="0" via=":1168929310_3_0" dir="s" state="M"/>
- <connection from="111863096#0" to="166603397#2" fromLane="0" toLane="0" via=":951739443_3_0" dir="r" state="m"/>
- <connection from="111863096#0" to="111863096#1" fromLane="0" toLane="0" via=":951739443_4_0" dir="s" state="m"/>
- <connection from="111863096#1" to="-160587538#2" fromLane="0" toLane="0" via=":1726394723_6_0" dir="r" state="M"/>
- <connection from="111863096#1" to="111863096#2" fromLane="0" toLane="0" via=":1726394723_7_0" dir="s" state="M"/>
- <connection from="111863096#1" to="160587538#3" fromLane="0" toLane="1" via=":1726394723_8_0" dir="l" state="M"/>
- <connection from="111863096#2" to="111863096#3" fromLane="0" toLane="0" via=":951739557_3_0" dir="s" state="m"/>
- <connection from="111863096#2" to="154844483#1" fromLane="0" toLane="1" via=":951739557_4_0" dir="l" state="m"/>
- <connection from="111863096#3" to="38319548#14" fromLane="0" toLane="0" via=":951739649_6_0" dir="r" state="M"/>
- <connection from="111863096#3" to="111863096#4" fromLane="0" toLane="0" via=":951739649_7_0" dir="s" state="M"/>
- <connection from="111863096#3" to="-38319548#13" fromLane="0" toLane="0" via=":951739649_8_0" dir="l" state="M"/>
- <connection from="111863096#4" to="81547611" fromLane="0" toLane="0" via=":1168929388_2_0" dir="s" state="m"/>
- <connection from="111863096#4" to="154844487#0" fromLane="0" toLane="0" via=":1168929388_3_0" dir="l" state="m"/>
- <connection from="111863125#0" to="-108733428" fromLane="0" toLane="0" via=":1246731576_2_0" dir="r" state="M"/>
- <connection from="111863125#0" to="111863125#1" fromLane="0" toLane="0" via=":1246731576_3_0" dir="s" state="m"/>
- <connection from="111863125#1" to="-38319550#4" fromLane="0" toLane="0" via=":950640531_3_0" dir="r" state="M"/>
- <connection from="111863125#1" to="111863125#2" fromLane="0" toLane="0" via=":950640531_4_0" dir="s" state="M"/>
- <connection from="111863125#1" to="38319550#5" fromLane="0" toLane="0" via=":950640531_5_0" dir="l" state="M"/>
- <connection from="111863125#2" to="42976410#1" fromLane="0" toLane="0" via=":950640525_0_0" dir="r" state="M"/>
- <connection from="111863125#2" to="111863125#3" fromLane="0" toLane="0" via=":950640525_1_0" dir="s" state="M"/>
- <connection from="111863125#3" to="42976405#1" fromLane="0" toLane="0" via=":950640558_0_0" dir="r" state="M"/>
- <connection from="111863125#3" to="111863125#4" fromLane="0" toLane="0" via=":950640558_1_0" dir="s" state="M"/>
- <connection from="111863125#4" to="111863125#5" fromLane="0" toLane="0" via=":950640550_2_0" dir="s" state="M"/>
- <connection from="111863125#4" to="133960539#4" fromLane="0" toLane="1" via=":950640550_3_0" dir="l" state="M"/>
- <connection from="111863125#5" to="-130443630#5" fromLane="0" toLane="0" via=":950640413_0_0" dir="r" state="M"/>
- <connection from="111863125#5" to="111863125#6" fromLane="0" toLane="0" via=":950640413_1_0" dir="s" state="M"/>
- <connection from="111863125#5" to="130443630#6" fromLane="0" toLane="0" via=":950640413_2_0" dir="l" state="M"/>
- <connection from="111863125#6" to="111863125#7" fromLane="0" toLane="0" via=":950640474_0_0" dir="s" state="M"/>
- <connection from="111863125#6" to="81394192#12" fromLane="0" toLane="0" via=":950640474_1_0" dir="l" state="M"/>
- <connection from="111863125#7" to="-43684741#4" fromLane="0" toLane="0" via=":950640393_3_0" dir="r" state="M"/>
- <connection from="111863125#7" to="111863125#8" fromLane="0" toLane="0" via=":950640393_4_0" dir="s" state="M"/>
- <connection from="111863125#7" to="43684741#5" fromLane="0" toLane="0" via=":950640393_5_0" dir="l" state="M"/>
- <connection from="117492209" to="37942667#1" fromLane="0" toLane="0" via=":1323557956_0_0" dir="s" state="m"/>
- <connection from="122301994#0" to="154500706#2" fromLane="0" toLane="0" via=":1168929600_0_0" tl="1168929600" linkIndex="0" dir="r" state="o"/>
- <connection from="122301994#0" to="122301994#1" fromLane="0" toLane="0" via=":1168929600_1_0" tl="1168929600" linkIndex="1" dir="s" state="o"/>
- <connection from="122301994#0" to="122301994#1" fromLane="1" toLane="1" via=":1168929600_2_0" tl="1168929600" linkIndex="2" dir="s" state="o"/>
- <connection from="122301994#0" to="122301994#1" fromLane="2" toLane="2" via=":1168929600_3_0" tl="1168929600" linkIndex="3" dir="s" state="o"/>
- <connection from="122301994#1" to="154500693#0" fromLane="0" toLane="0" via=":1168929349_2_0" dir="s" state="M"/>
- <connection from="122301994#1" to="154500693#0" fromLane="1" toLane="1" via=":1168929349_3_0" dir="s" state="M"/>
- <connection from="122301994#1" to="154500693#0" fromLane="2" toLane="2" via=":1168929349_4_0" dir="s" state="M"/>
- <connection from="122301994#1" to="37638426#0" fromLane="2" toLane="0" via=":1168929349_5_0" dir="l" state="M"/>
- <connection from="122302027#0" to="122302027#1" fromLane="0" toLane="0" via=":249404225_0_0" dir="s" state="M"/>
- <connection from="122302027#0" to="122302035#1" fromLane="0" toLane="0" via=":249404225_1_0" dir="t" state="m"/>
- <connection from="122302027#1" to="123339612" fromLane="0" toLane="0" via=":1366723470_0_0" dir="s" state="M"/>
- <connection from="122302035#0" to="122302035#1" fromLane="0" toLane="0" via=":249404225_2_0" dir="s" state="M"/>
- <connection from="122302035#0" to="122302027#1" fromLane="0" toLane="0" via=":249404225_3_0" dir="t" state="m"/>
- <connection from="122394833#0" to="122394833#1" fromLane="0" toLane="0" via=":1367855932_0_0" dir="s" state="m"/>
- <connection from="122394833#0" to="23182387#4" fromLane="0" toLane="0" via=":1367855932_1_0" dir="l" state="m"/>
- <connection from="122394833#0" to="-122394833#0" fromLane="0" toLane="0" via=":1367855932_2_0" dir="t" state="m"/>
- <connection from="122394833#1" to="122394833#2" fromLane="0" toLane="0" via=":1367855931_0_0" dir="s" state="="/>
- <connection from="122394833#1" to="122394859" fromLane="0" toLane="0" via=":1367855931_1_0" dir="s" state="="/>
- <connection from="122394833#1" to="-122394833#1" fromLane="0" toLane="0" via=":1367855931_2_0" dir="t" state="="/>
- <connection from="122394833#2" to="122394833#3" fromLane="0" toLane="0" via=":1367855930_0_0" dir="s" state="="/>
- <connection from="122394833#2" to="122394845" fromLane="0" toLane="0" via=":1367855930_1_0" dir="l" state="="/>
- <connection from="122394833#2" to="-122394833#2" fromLane="0" toLane="0" via=":1367855930_2_0" dir="t" state="="/>
- <connection from="122394833#3" to="122394833#4" fromLane="0" toLane="0" via=":1367855929_0_0" dir="s" state="="/>
- <connection from="122394833#3" to="122394853" fromLane="0" toLane="0" via=":1367855929_1_0" dir="l" state="="/>
- <connection from="122394833#3" to="-122394833#3" fromLane="0" toLane="0" via=":1367855929_2_0" dir="t" state="="/>
- <connection from="122394833#4" to="122394833#5" fromLane="0" toLane="0" via=":1367855927_0_0" dir="s" state="="/>
- <connection from="122394833#4" to="122394864#0" fromLane="0" toLane="0" via=":1367855927_1_0" dir="l" state="="/>
- <connection from="122394833#4" to="-122394833#4" fromLane="0" toLane="0" via=":1367855927_2_0" dir="t" state="="/>
- <connection from="122394833#5" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_0_0" dir="r" state="m"/>
- <connection from="122394833#5" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_1_0" dir="l" state="m"/>
- <connection from="122394833#5" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_2_0" dir="t" state="m"/>
- <connection from="122394834" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_8_0" dir="r" state="m"/>
- <connection from="122394834" to="-122394860" fromLane="0" toLane="0" via=":1367855909_9_0" dir="s" state="m"/>
- <connection from="122394834" to="-122394845" fromLane="0" toLane="0" via=":1367855909_10_0" dir="l" state="m"/>
- <connection from="122394834" to="-122394834" fromLane="0" toLane="0" via=":1367855909_11_0" dir="t" state="m"/>
- <connection from="122394841#0" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_12_0" dir="r" state="M"/>
- <connection from="122394841#0" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_13_0" dir="s" state="M"/>
- <connection from="122394841#0" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_14_0" dir="l" state="m"/>
- <connection from="122394841#0" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_15_0" dir="t" state="m"/>
- <connection from="122394841#1" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_12_0" dir="r" state="M"/>
- <connection from="122394841#1" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_13_0" dir="s" state="M"/>
- <connection from="122394841#1" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_14_0" dir="l" state="m"/>
- <connection from="122394841#1" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_15_0" dir="t" state="m"/>
- <connection from="122394841#2" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_12_0" dir="r" state="M"/>
- <connection from="122394841#2" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_13_0" dir="s" state="M"/>
- <connection from="122394841#2" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_14_0" dir="l" state="m"/>
- <connection from="122394841#2" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_15_0" dir="t" state="m"/>
- <connection from="122394841#3" to="197794762" fromLane="0" toLane="0" via=":2079750190_6_0" dir="s" state="="/>
- <connection from="122394841#3" to="-197781817" fromLane="0" toLane="0" via=":2079750190_7_0" dir="l" state="="/>
- <connection from="122394841#3" to="-122394841#3" fromLane="0" toLane="0" via=":2079750190_8_0" dir="t" state="="/>
- <connection from="122394845" to="-122394834" fromLane="0" toLane="0" via=":1367855909_12_0" dir="r" state="M"/>
- <connection from="122394845" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_13_0" dir="s" state="M"/>
- <connection from="122394845" to="-122394860" fromLane="0" toLane="0" via=":1367855909_14_0" dir="l" state="m"/>
- <connection from="122394845" to="-122394845" fromLane="0" toLane="0" via=":1367855909_15_0" dir="t" state="m"/>
- <connection from="122394853" to="122394834" fromLane="0" toLane="0" via=":1367855907_2_0" dir="s" state="M"/>
- <connection from="122394853" to="-122394853" fromLane="0" toLane="0" via=":1367855907_3_0" dir="t" state="m"/>
- <connection from="122394859" to="122394860" fromLane="0" toLane="0" via=":1367855910_2_0" dir="s" state="M"/>
- <connection from="122394859" to="-122394859" fromLane="0" toLane="0" via=":1367855910_3_0" dir="t" state="m"/>
- <connection from="122394860" to="-122394845" fromLane="0" toLane="0" via=":1367855909_0_0" dir="r" state="m"/>
- <connection from="122394860" to="-122394834" fromLane="0" toLane="0" via=":1367855909_1_0" dir="s" state="m"/>
- <connection from="122394860" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_2_0" dir="l" state="m"/>
- <connection from="122394860" to="-122394860" fromLane="0" toLane="0" via=":1367855909_3_0" dir="t" state="m"/>
- <connection from="122394864#0" to="130443635#2" fromLane="0" toLane="0" via=":1367855926_6_0" dir="r" state="m"/>
- <connection from="122394864#0" to="122394864#1" fromLane="0" toLane="0" via=":1367855926_7_0" dir="s" state="m"/>
- <connection from="122394864#0" to="-122394864#0" fromLane="0" toLane="0" via=":1367855926_8_0" dir="t" state="m"/>
- <connection from="122394864#1" to="38318373#1" fromLane="0" toLane="0" via=":314636763_12_0" dir="r" state="M"/>
- <connection from="122394864#1" to="122394864#2" fromLane="0" toLane="0" via=":314636763_13_0" dir="s" state="M"/>
- <connection from="122394864#1" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_14_0" dir="l" state="m"/>
- <connection from="122394864#1" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_15_0" dir="t" state="m"/>
- <connection from="122394864#2" to="129780019#2" fromLane="0" toLane="0" via=":1367855923_2_0" dir="l" state="m"/>
- <connection from="122394864#2" to="-122394864#2" fromLane="0" toLane="0" via=":1367855923_3_0" dir="t" state="m"/>
- <connection from="122641556#0" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_0_0" dir="r" state="m"/>
- <connection from="122641556#0" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_1_0" dir="s" state="m"/>
- <connection from="122641556#0" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_2_0" dir="l" state="m"/>
- <connection from="122641556#0" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_3_0" dir="t" state="m"/>
- <connection from="122641556#1" to="-122641556#1" fromLane="0" toLane="0" via=":1369844770_0_0" dir="t" state="M"/>
- <connection from="122641557" to="-122641557" fromLane="0" toLane="0" via=":1369844786_0_0" dir="t" state="M"/>
- <connection from="122641559#0" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_0_0" dir="r" state="m"/>
- <connection from="122641559#0" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_1_0" dir="s" state="m"/>
- <connection from="122641559#0" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_2_0" dir="l" state="m"/>
- <connection from="122641559#0" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_3_0" dir="t" state="m"/>
- <connection from="122641559#1" to="-122641559#1" fromLane="0" toLane="0" via=":1369844760_0_0" dir="t" state="M"/>
- <connection from="122641560#0" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_0_0" dir="r" state="m"/>
- <connection from="122641560#0" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_1_0" dir="s" state="m"/>
- <connection from="122641560#0" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_2_0" dir="l" state="m"/>
- <connection from="122641560#0" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_3_0" dir="t" state="m"/>
- <connection from="122641560#1" to="-122641560#1" fromLane="0" toLane="0" via=":1369844774_0_0" dir="t" state="M"/>
- <connection from="123339613" to="160587557" fromLane="0" toLane="0" via=":256633248_0_0" dir="s" state="M"/>
- <connection from="123339619" to="122302035#0" fromLane="0" toLane="0" via=":1367073442_0_0" dir="s" state="M"/>
- <connection from="129780019#0" to="129780019#1" fromLane="0" toLane="0" via=":450564006_0_0" dir="s" state="M"/>
- <connection from="129780019#0" to="23182484#0" fromLane="0" toLane="0" via=":450564006_1_0" dir="l" state="M"/>
- <connection from="129780019#1" to="129780019#2" fromLane="0" toLane="0" via=":1367855923_0_0" dir="s" state="M"/>
- <connection from="129780019#1" to="-122394864#2" fromLane="0" toLane="0" via=":1367855923_1_0" dir="l" state="M"/>
- <connection from="129780020" to="144874010#0" fromLane="0" toLane="0" via=":950094380_0_0" dir="s" state="m"/>
- <connection from="129780020" to="144874012#0" fromLane="0" toLane="0" via=":950094380_1_0" dir="l" state="m"/>
- <connection from="129780022#0" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_4_0" dir="r" state="M"/>
- <connection from="129780022#0" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_5_0" dir="s" state="M"/>
- <connection from="129780022#0" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_6_0" dir="l" state="m"/>
- <connection from="129780022#0" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_7_0" dir="t" state="m"/>
- <connection from="129780022#1" to="37449253#7" fromLane="0" toLane="0" via=":13929747_0_0" dir="r" state="M"/>
- <connection from="129780022#1" to="129780022#2" fromLane="0" toLane="0" via=":13929747_1_0" dir="s" state="M"/>
- <connection from="129780022#1" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_2_0" dir="t" state="m"/>
- <connection from="129780022#2" to="129780022#3" fromLane="0" toLane="0" via=":435668534_3_0" dir="s" state="M"/>
- <connection from="129780022#2" to="144874012#1" fromLane="0" toLane="0" via=":435668534_4_0" dir="l" state="m"/>
- <connection from="129780022#2" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_5_0" dir="t" state="m"/>
- <connection from="129780022#3" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_4_0" dir="r" state="m"/>
- <connection from="129780022#3" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_5_0" dir="s" state="m"/>
- <connection from="129780022#3" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_6_0" dir="l" state="m"/>
- <connection from="129780022#3" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_7_0" dir="t" state="m"/>
- <connection from="129780022#4" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_4_0" tl="427996791" linkIndex="4" dir="r" state="o"/>
- <connection from="129780022#4" to="129780022#5" fromLane="0" toLane="0" via=":427996791_5_0" tl="427996791" linkIndex="5" dir="s" state="o"/>
- <connection from="129780022#4" to="23315111#2" fromLane="0" toLane="0" via=":427996791_6_0" tl="427996791" linkIndex="6" dir="l" state="o"/>
- <connection from="129780022#4" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_7_0" tl="427996791" linkIndex="7" dir="t" state="o"/>
- <connection from="129780022#5" to="37973565#7" fromLane="0" toLane="0" via=":435668539_0_0" dir="r" state="M"/>
- <connection from="129780022#5" to="37351089#0" fromLane="0" toLane="0" via=":435668539_1_0" dir="s" state="M"/>
- <connection from="129780022#5" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_2_0" dir="t" state="m"/>
- <connection from="129780026#0" to="149408824#0" fromLane="0" toLane="0" via=":950094458_0_0" dir="r" state="m"/>
- <connection from="129780026#0" to="129780026#1" fromLane="0" toLane="0" via=":950094458_1_0" dir="s" state="m"/>
- <connection from="129780026#0" to="-139118805#2" fromLane="0" toLane="0" via=":950094458_2_0" dir="l" state="M"/>
- <connection from="129780026#0" to="-139118805#2" fromLane="0" toLane="1" via=":950094458_3_0" dir="l" state="m"/>
- <connection from="129780026#1" to="-154409621" fromLane="0" toLane="0" via=":248913124_3_0" dir="r" state="m"/>
- <connection from="129780026#1" to="129780026#2" fromLane="0" toLane="0" via=":248913124_4_0" dir="s" state="m"/>
- <connection from="129780026#1" to="129780022#0" fromLane="0" toLane="0" via=":248913124_5_0" dir="l" state="m"/>
- <connection from="129780026#2" to="129780026#3" fromLane="0" toLane="0" via=":950094434_3_0" dir="s" state="m"/>
- <connection from="129780026#2" to="154489992#1" fromLane="0" toLane="1" via=":950094434_4_0" dir="l" state="m"/>
- <connection from="129780026#3" to="81096855#0" fromLane="0" toLane="0" via=":945146413_2_0" dir="s" state="m"/>
- <connection from="129780026#3" to="139118802#2" fromLane="0" toLane="0" via=":945146413_3_0" dir="l" state="m"/>
- <connection from="129780028" to="154409616#1" fromLane="0" toLane="0" via=":252418151_1_0" dir="l" state="m"/>
- <connection from="130443629#0" to="133868191#0" fromLane="0" toLane="0" via=":243489891_0_0" dir="r" state="m"/>
- <connection from="130443629#0" to="130443629#1" fromLane="0" toLane="0" via=":243489891_1_0" dir="s" state="m"/>
- <connection from="130443629#0" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_2_0" dir="t" state="m"/>
- <connection from="130443629#1" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_0_0" dir="r" state="m"/>
- <connection from="130443629#1" to="130443629#2" fromLane="0" toLane="0" via=":948350640_1_0" dir="s" state="m"/>
- <connection from="130443629#1" to="81394200#2" fromLane="0" toLane="0" via=":948350640_2_0" dir="l" state="m"/>
- <connection from="130443629#1" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_3_0" dir="t" state="m"/>
- <connection from="130443629#2" to="130443629#3" fromLane="0" toLane="0" via=":435668511_0_0" dir="s" state="m"/>
- <connection from="130443629#2" to="37351086#0" fromLane="0" toLane="0" via=":435668511_1_0" dir="L" state="m"/>
- <connection from="130443629#2" to="37369047#2" fromLane="0" toLane="3" via=":435668511_2_0" dir="l" state="m"/>
- <connection from="130443629#2" to="-130443629#2" fromLane="0" toLane="0" via=":435668511_3_0" dir="t" state="m"/>
- <connection from="130443629#3" to="130443629#4" fromLane="0" toLane="0" via=":948350615_0_0" dir="s" state="m"/>
- <connection from="130443629#3" to="81394169#2" fromLane="0" toLane="0" via=":948350615_1_0" dir="l" state="m"/>
- <connection from="130443629#3" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_2_0" dir="t" state="m"/>
- <connection from="130443629#4" to="130443629#5" fromLane="0" toLane="0" via=":428303370_0_0" dir="s" state="M"/>
- <connection from="130443629#4" to="134572336#3" fromLane="0" toLane="1" via=":428303370_1_0" dir="l" state="m"/>
- <connection from="130443629#4" to="-130443629#4" fromLane="0" toLane="0" via=":428303370_2_0" dir="t" state="m"/>
- <connection from="130443629#5" to="130443629#6" fromLane="0" toLane="0" via=":445506221_0_0" dir="s" state="M"/>
- <connection from="130443629#5" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_1_0" dir="t" state="m"/>
- <connection from="130443629#6" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_0_0" dir="s" state="M"/>
- <connection from="130443629#6" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_1_0" dir="t" state="m"/>
- <connection from="130443629#7" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_0_0" dir="r" state="M"/>
- <connection from="130443629#7" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_1_0" dir="s" state="M"/>
- <connection from="130443629#7" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_2_0" dir="l" state="m"/>
- <connection from="130443629#7" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_3_0" dir="t" state="m"/>
- <connection from="130443629#8" to="37973566" fromLane="0" toLane="0" via=":30406565_0_0" dir="s" state="M"/>
- <connection from="130443629#8" to="-130443629#8" fromLane="0" toLane="0" via=":30406565_1_0" dir="t" state="m"/>
- <connection from="130443630#0" to="130443630#1" fromLane="0" toLane="0" via=":445506220_6_0" dir="s" state="M"/>
- <connection from="130443630#0" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_7_0" dir="l" state="m"/>
- <connection from="130443630#0" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_8_0" dir="t" state="m"/>
- <connection from="130443630#1" to="130443630#2" fromLane="0" toLane="0" via=":966097869_6_0" dir="s" state="M"/>
- <connection from="130443630#1" to="83038923#0" fromLane="0" toLane="0" via=":966097869_7_0" dir="l" state="m"/>
- <connection from="130443630#1" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_8_0" dir="t" state="m"/>
- <connection from="130443630#10" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_6_0" dir="s" state="M"/>
- <connection from="130443630#10" to="166576459" fromLane="0" toLane="0" via=":1780219355_7_0" dir="l" state="m"/>
- <connection from="130443630#10" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_8_0" dir="t" state="m"/>
- <connection from="130443630#11" to="179692877#0" fromLane="0" toLane="0" via=":444026889_4_0" dir="s" state="M"/>
- <connection from="130443630#11" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_5_0" dir="t" state="m"/>
- <connection from="130443630#2" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_6_0" dir="s" state="M"/>
- <connection from="130443630#2" to="-105254618" fromLane="0" toLane="0" via=":1634988377_7_0" dir="l" state="m"/>
- <connection from="130443630#2" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_8_0" dir="t" state="m"/>
- <connection from="130443630#3" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_4_0" dir="s" state="M"/>
- <connection from="130443630#3" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_5_0" dir="t" state="m"/>
- <connection from="130443630#4" to="37973569#6" fromLane="0" toLane="0" via=":446017744_6_0" tl="446017744" linkIndex="6" dir="r" state="o"/>
- <connection from="130443630#4" to="130443630#5" fromLane="0" toLane="0" via=":446017744_7_0" tl="446017744" linkIndex="7" dir="s" state="o"/>
- <connection from="130443630#4" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_8_0" tl="446017744" linkIndex="8" dir="t" state="o"/>
- <connection from="130443630#5" to="111863125#6" fromLane="0" toLane="0" via=":950640413_6_0" dir="r" state="m"/>
- <connection from="130443630#5" to="130443630#6" fromLane="0" toLane="0" via=":950640413_7_0" dir="s" state="m"/>
- <connection from="130443630#5" to="-130443630#5" fromLane="0" toLane="0" via=":950640413_8_0" dir="t" state="m"/>
- <connection from="130443630#6" to="37973572#2" fromLane="0" toLane="0" via=":30406599_14_0" tl="30406599" linkIndex="14" dir="r" state="o"/>
- <connection from="130443630#6" to="130443630#7" fromLane="0" toLane="0" via=":30406599_15_0" tl="30406599" linkIndex="15" dir="s" state="o"/>
- <connection from="130443630#6" to="-37973572#1" fromLane="0" toLane="1" via=":30406599_16_0" tl="30406599" linkIndex="16" dir="l" state="o"/>
- <connection from="130443630#6" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_17_0" tl="30406599" linkIndex="17" dir="t" state="o"/>
- <connection from="130443630#7" to="130443630#8" fromLane="0" toLane="0" via=":950640411_6_0" dir="s" state="m"/>
- <connection from="130443630#7" to="111549913#3" fromLane="0" toLane="0" via=":950640411_7_0" dir="l" state="m"/>
- <connection from="130443630#7" to="-130443630#7" fromLane="0" toLane="0" via=":950640411_8_0" dir="t" state="m"/>
- <connection from="130443630#8" to="130443630#9" fromLane="0" toLane="0" via=":446017741_6_0" tl="446017741" linkIndex="6" dir="s" state="o"/>
- <connection from="130443630#8" to="37973568#4" fromLane="0" toLane="0" via=":446017741_7_0" tl="446017741" linkIndex="7" dir="l" state="o"/>
- <connection from="130443630#8" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_8_0" tl="446017741" linkIndex="8" dir="t" state="o"/>
- <connection from="130443630#9" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_6_0" dir="s" state="M"/>
- <connection from="130443630#9" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_7_0" dir="l" state="m"/>
- <connection from="130443630#9" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_8_0" dir="t" state="m"/>
- <connection from="130443635#0" to="130443635#1" fromLane="0" toLane="0" via=":250683337_0_0" dir="s" state="m"/>
- <connection from="130443635#1" to="-122394864#0" fromLane="0" toLane="0" via=":1367855926_0_0" dir="r" state="M"/>
- <connection from="130443635#1" to="130443635#2" fromLane="0" toLane="0" via=":1367855926_1_0" dir="s" state="M"/>
- <connection from="130443635#1" to="122394864#1" fromLane="0" toLane="0" via=":1367855926_2_0" dir="l" state="M"/>
- <connection from="130443635#2" to="23182484#1" fromLane="0" toLane="0" via=":250685829_0_0" dir="r" state="m"/>
- <connection from="130443635#2" to="190048063" fromLane="0" toLane="0" via=":250685829_1_0" dir="s" state="m"/>
- <connection from="130443635#2" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_2_0" dir="L" state="m"/>
- <connection from="130443635#2" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_3_0" dir="l" state="m"/>
- <connection from="132323955" to="190048065" fromLane="0" toLane="0" via=":2006433692_2_0" dir="s" state="M"/>
- <connection from="132323955" to="-132323955" fromLane="0" toLane="0" via=":2006433692_3_0" dir="t" state="m"/>
- <connection from="133868186" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_7_0" dir="s" state="M"/>
- <connection from="133868186" to="37973565#7" fromLane="1" toLane="0" via=":435668539_8_0" dir="L" state="m"/>
- <connection from="133868186" to="37351089#0" fromLane="2" toLane="2" via=":435668539_9_0" dir="l" state="m"/>
- <connection from="133868186" to="37351089#0" fromLane="3" toLane="3" via=":435668539_10_0" dir="l" state="M"/>
- <connection from="133868188" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_6_0" dir="r" state="m"/>
- <connection from="133868188" to="133868191#0" fromLane="0" toLane="2" via=":243489891_7_0" dir="s" state="m"/>
- <connection from="133868188" to="130443629#1" fromLane="0" toLane="0" via=":243489891_8_0" dir="l" state="m"/>
- <connection from="133868191#0" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_0_0" dir="r" state="m"/>
- <connection from="133868191#0" to="133868191#1" fromLane="1" toLane="1" via=":948350597_1_0" dir="s" state="M"/>
- <connection from="133868191#0" to="133868191#1" fromLane="2" toLane="2" via=":948350597_2_0" dir="s" state="M"/>
- <connection from="133868191#0" to="81394200#1" fromLane="3" toLane="0" via=":948350597_3_0" dir="l" state="m"/>
- <connection from="133868191#1" to="133868191#2" fromLane="0" toLane="2" via=":948350673_3_0" dir="s" state="M"/>
- <connection from="133868191#1" to="133868191#2" fromLane="0" toLane="3" via=":948350673_4_0" dir="s" state="M"/>
- <connection from="133868191#1" to="81394188#1" fromLane="1" toLane="0" via=":948350673_5_0" dir="l" state="m"/>
- <connection from="133868229#0" to="133868229#1" fromLane="0" toLane="0" via=":948350588_7_0" dir="s" state="M"/>
- <connection from="133868229#0" to="133868229#1" fromLane="1" toLane="1" via=":948350588_8_0" dir="s" state="M"/>
- <connection from="133868229#0" to="37973565#6" fromLane="1" toLane="0" via=":948350588_9_0" dir="l" state="m"/>
- <connection from="133868229#0" to="-133868229#0" fromLane="1" toLane="1" via=":948350588_10_0" dir="t" state="m"/>
- <connection from="133868229#1" to="81523330#0" fromLane="0" toLane="0" via=":948350630_5_0" dir="s" state="M"/>
- <connection from="133868229#1" to="81523330#0" fromLane="1" toLane="1" via=":948350630_6_0" dir="s" state="M"/>
- <connection from="133868229#1" to="-133868229#1" fromLane="1" toLane="1" via=":948350630_7_0" dir="t" state="m"/>
- <connection from="133868231#0" to="133868231#1" fromLane="0" toLane="0" via=":948350595_2_0" dir="s" state="M"/>
- <connection from="133868231#0" to="44641745#1" fromLane="0" toLane="0" via=":948350595_3_0" dir="l" state="M"/>
- <connection from="133960538#0" to="133960538#1" fromLane="0" toLane="0" via=":438042385_2_0" tl="438042385" linkIndex="2" dir="s" state="o"/>
- <connection from="133960538#0" to="133960538#1" fromLane="1" toLane="1" via=":438042385_3_0" tl="438042385" linkIndex="3" dir="s" state="o"/>
- <connection from="133960538#0" to="37449249#2" fromLane="1" toLane="0" via=":438042385_4_0" tl="438042385" linkIndex="4" dir="l" state="o"/>
- <connection from="133960538#1" to="-109912572#1" fromLane="0" toLane="0" via=":1257054108_3_0" dir="r" state="M"/>
- <connection from="133960538#1" to="133960538#2" fromLane="0" toLane="0" via=":1257054108_4_0" dir="s" state="M"/>
- <connection from="133960538#1" to="133960538#2" fromLane="1" toLane="1" via=":1257054108_5_0" dir="s" state="M"/>
- <connection from="133960538#1" to="109912572#2" fromLane="1" toLane="0" via=":1257054108_6_0" dir="l" state="M"/>
- <connection from="133960538#2" to="172498380#2" fromLane="0" toLane="0" via=":452446345_0_0" dir="r" state="M"/>
- <connection from="133960539#0" to="81672207#0" fromLane="0" toLane="0" via=":951739771_0_0" dir="s" state="M"/>
- <connection from="133960539#0" to="133960539#1" fromLane="0" toLane="0" via=":951739771_1_0" dir="s" state="M"/>
- <connection from="133960539#0" to="133960539#1" fromLane="1" toLane="1" via=":951739771_2_0" dir="s" state="M"/>
- <connection from="133960539#1" to="166576462#3" fromLane="0" toLane="0" via=":1780219359_0_0" dir="r" state="M"/>
- <connection from="133960539#1" to="133960539#2" fromLane="0" toLane="0" via=":1780219359_1_0" dir="s" state="M"/>
- <connection from="133960539#1" to="133960539#2" fromLane="1" toLane="1" via=":1780219359_2_0" dir="s" state="M"/>
- <connection from="133960539#1" to="-166576462#2" fromLane="1" toLane="0" via=":1780219359_3_0" dir="l" state="M"/>
- <connection from="133960539#2" to="37973569#2" fromLane="0" toLane="0" via=":446017746_0_0" tl="446017746" linkIndex="0" dir="r" state="o"/>
- <connection from="133960539#2" to="133960539#3" fromLane="0" toLane="0" via=":446017746_1_0" tl="446017746" linkIndex="1" dir="s" state="o"/>
- <connection from="133960539#2" to="133960539#3" fromLane="1" toLane="1" via=":446017746_2_0" tl="446017746" linkIndex="2" dir="s" state="o"/>
- <connection from="133960539#3" to="111863125#5" fromLane="0" toLane="0" via=":950640550_0_0" dir="r" state="m"/>
- <connection from="133960539#3" to="133960539#4" fromLane="1" toLane="0" via=":950640550_1_0" dir="s" state="M"/>
- <connection from="133960539#4" to="37973572#0" fromLane="0" toLane="0" via=":438042367_0_0" tl="438042367" linkIndex="0" dir="r" state="o"/>
- <connection from="133960539#4" to="42976406#0" fromLane="0" toLane="1" via=":438042367_1_0" tl="438042367" linkIndex="1" dir="s" state="o"/>
- <connection from="133960539#4" to="42976406#0" fromLane="1" toLane="2" via=":438042367_2_0" tl="438042367" linkIndex="2" dir="s" state="o"/>
- <connection from="133960539#4" to="-149868584#8" fromLane="1" toLane="1" via=":438042367_3_0" tl="438042367" linkIndex="3" dir="l" state="o"/>
- <connection from="134572336#0" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_6_0" dir="r" state="m"/>
- <connection from="134572336#0" to="134572336#1" fromLane="1" toLane="1" via=":477486714_7_0" dir="s" state="m"/>
- <connection from="134572336#0" to="81394169#0" fromLane="1" toLane="0" via=":477486714_8_0" dir="l" state="m"/>
- <connection from="134572336#1" to="81394192#0" fromLane="0" toLane="0" via=":446017735_0_0" dir="r" state="M"/>
- <connection from="134572336#1" to="134572336#2" fromLane="0" toLane="0" via=":446017735_1_0" dir="s" state="M"/>
- <connection from="134572336#1" to="134572336#2" fromLane="1" toLane="1" via=":446017735_2_0" dir="s" state="M"/>
- <connection from="134572336#2" to="130443629#5" fromLane="0" toLane="0" via=":428303370_6_0" dir="r" state="m"/>
- <connection from="134572336#2" to="134572336#3" fromLane="1" toLane="1" via=":428303370_7_0" dir="s" state="m"/>
- <connection from="134572336#2" to="-130443629#4" fromLane="1" toLane="0" via=":428303370_8_0" dir="l" state="m"/>
- <connection from="134572336#3" to="44641744#0" fromLane="0" toLane="0" via=":445506215_3_0" dir="r" state="M"/>
- <connection from="134572336#3" to="134572340#0" fromLane="0" toLane="0" via=":445506215_4_0" dir="s" state="M"/>
- <connection from="134572336#3" to="134572340#0" fromLane="1" toLane="1" via=":445506215_5_0" dir="s" state="M"/>
- <connection from="134572336#3" to="37973565#5" fromLane="1" toLane="0" via=":445506215_6_0" dir="s" state="M"/>
- <connection from="134572340#0" to="109438231#1" fromLane="0" toLane="0" via=":1479400627_0_0" dir="s" state="m"/>
- <connection from="134572340#0" to="134572340#1" fromLane="1" toLane="0" via=":1479400627_1_0" dir="s" state="M"/>
- <connection from="134572340#1" to="81523330#0" fromLane="0" toLane="0" via=":948350630_3_0" dir="r" state="m"/>
- <connection from="134572340#1" to="-133868229#1" fromLane="1" toLane="1" via=":948350630_4_0" dir="l" state="m"/>
- <connection from="134872478" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_3_0" dir="r" state="m"/>
- <connection from="134872478" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_4_0" dir="l" state="m"/>
- <connection from="134872478" to="-134872478" fromLane="0" toLane="0" via=":1482088987_5_0" dir="t" state="m"/>
- <connection from="139118802#0" to="139118802#1" fromLane="0" toLane="0" via=":443101938_0_0" tl="443101938" linkIndex="0" dir="s" state="o"/>
- <connection from="139118802#1" to="81096855#0" fromLane="0" toLane="0" via=":945146413_0_0" dir="r" state="M"/>
- <connection from="139118802#1" to="139118802#2" fromLane="0" toLane="0" via=":945146413_1_0" dir="s" state="M"/>
- <connection from="139118802#2" to="144874008#0" fromLane="0" toLane="0" via=":252418152_1_0" dir="s" state="m"/>
- <connection from="139118804#0" to="139118804#1" fromLane="0" toLane="0" via=":452446339_0_0" dir="s" state="M"/>
- <connection from="139118804#1" to="141191260#0" fromLane="0" toLane="0" via=":1545672787_0_0" dir="s" state="M"/>
- <connection from="139118804#1" to="139118804#2" fromLane="0" toLane="0" via=":1545672787_1_0" dir="s" state="M"/>
- <connection from="139118804#2" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_3_0" tl="252418937" linkIndex="3" dir="r" state="o"/>
- <connection from="139118804#2" to="139118804#3" fromLane="0" toLane="0" via=":252418937_4_0" tl="252418937" linkIndex="4" dir="s" state="o"/>
- <connection from="139118804#2" to="23315111#0" fromLane="0" toLane="0" via=":252418937_5_0" tl="252418937" linkIndex="5" dir="l" state="o"/>
- <connection from="139118804#3" to="83827202" fromLane="0" toLane="0" via=":975934874_0_0" dir="r" state="M"/>
- <connection from="139118804#3" to="139118804#4" fromLane="0" toLane="0" via=":975934874_1_0" dir="s" state="M"/>
- <connection from="139118804#4" to="37973565#9" fromLane="0" toLane="0" via=":445823604_0_0" dir="r" state="M"/>
- <connection from="139118804#4" to="44641745#0" fromLane="0" toLane="0" via=":445823604_1_0" dir="s" state="M"/>
- <connection from="139118805#0" to="139118805#1" fromLane="0" toLane="0" via=":974693391_7_0" dir="s" state="M"/>
- <connection from="139118805#0" to="139118805#1" fromLane="1" toLane="1" via=":974693391_8_0" dir="s" state="M"/>
- <connection from="139118805#0" to="37449253#6" fromLane="1" toLane="0" via=":974693391_9_0" dir="l" state="m"/>
- <connection from="139118805#0" to="-139118805#0" fromLane="1" toLane="1" via=":974693391_10_0" dir="t" state="m"/>
- <connection from="139118805#1" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_13_0" dir="r" state="M"/>
- <connection from="139118805#1" to="139118805#2" fromLane="0" toLane="0" via=":1257054172_14_0" dir="s" state="M"/>
- <connection from="139118805#1" to="139118805#2" fromLane="1" toLane="1" via=":1257054172_15_0" dir="s" state="M"/>
- <connection from="139118805#1" to="-38319546#2" fromLane="1" toLane="0" via=":1257054172_16_0" dir="l" state="m"/>
- <connection from="139118805#1" to="-139118805#1" fromLane="1" toLane="1" via=":1257054172_17_0" dir="t" state="m"/>
- <connection from="139118805#2" to="149408824#0" fromLane="0" toLane="0" via=":950094458_4_0" dir="s" state="M"/>
- <connection from="139118805#2" to="149408824#0" fromLane="1" toLane="1" via=":950094458_5_0" dir="s" state="M"/>
- <connection from="139118805#2" to="129780026#1" fromLane="1" toLane="0" via=":950094458_6_0" dir="l" state="M"/>
- <connection from="139118805#2" to="-139118805#2" fromLane="1" toLane="1" via=":950094458_7_0" dir="t" state="m"/>
- <connection from="139118806" to="-190048065" fromLane="0" toLane="0" via=":450564005_2_0" dir="r" state="M"/>
- <connection from="139118806" to="129780019#0" fromLane="0" toLane="0" via=":450564005_3_0" dir="l" state="m"/>
- <connection from="139118808" to="37449245#0" fromLane="0" toLane="0" via=":13929737_0_0" dir="s" state="m"/>
- <connection from="139118808" to="172498380#0" fromLane="0" toLane="0" via=":13929737_1_0" dir="s" state="m"/>
- <connection from="141190463" to="-23182484#2" fromLane="0" toLane="0" via=":250685816_4_0" dir="r" state="M"/>
- <connection from="141190463" to="141190466#0" fromLane="0" toLane="0" via=":250685816_5_0" dir="l" state="m"/>
- <connection from="141190464" to="139118806" fromLane="0" toLane="0" via=":450564004_1_0" dir="s" state="M"/>
- <connection from="141190466#0" to="23182391" fromLane="0" toLane="0" via=":250686694_0_0" dir="r" state="M"/>
- <connection from="141190466#0" to="141190466#1" fromLane="0" toLane="0" via=":250686694_1_0" dir="s" state="M"/>
- <connection from="141190466#1" to="23182358#0" fromLane="0" toLane="0" via=":250685766_3_0" tl="250685766" linkIndex="3" dir="r" state="o"/>
- <connection from="141190466#1" to="141190466#2" fromLane="0" toLane="0" via=":250685766_4_0" tl="250685766" linkIndex="4" dir="s" state="o"/>
- <connection from="141190466#1" to="23182517#0" fromLane="0" toLane="0" via=":250685766_5_0" tl="250685766" linkIndex="5" dir="l" state="o"/>
- <connection from="141191247#0" to="141191247#1" fromLane="0" toLane="0" via=":1545672806_0_0" dir="s" state="m"/>
- <connection from="141191247#0" to="141191260#1" fromLane="0" toLane="0" via=":1545672806_1_0" dir="r" state="m"/>
- <connection from="141191247#0" to="-141191247#0" fromLane="0" toLane="0" via=":1545672806_2_0" dir="t" state="m"/>
- <connection from="141191247#1" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_8_0" dir="r" state="="/>
- <connection from="141191247#1" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_9_0" dir="s" state="="/>
- <connection from="141191247#1" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_10_0" dir="l" state="="/>
- <connection from="141191247#1" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_11_0" dir="t" state="="/>
- <connection from="141191247#2" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_8_0" dir="r" state="="/>
- <connection from="141191247#2" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_9_0" dir="s" state="="/>
- <connection from="141191247#2" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_10_0" dir="l" state="="/>
- <connection from="141191247#2" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_11_0" dir="t" state="="/>
- <connection from="141191247#3" to="141191247#4" fromLane="0" toLane="0" via=":1545673319_6_0" dir="s" state="m"/>
- <connection from="141191247#3" to="141191261#1" fromLane="0" toLane="0" via=":1545673319_7_0" dir="l" state="m"/>
- <connection from="141191247#3" to="-141191247#3" fromLane="0" toLane="0" via=":1545673319_8_0" dir="t" state="m"/>
- <connection from="141191247#4" to="141191258#3" fromLane="0" toLane="0" via=":1545673304_0_0" dir="r" state="="/>
- <connection from="141191247#4" to="-141191258#2" fromLane="0" toLane="0" via=":1545673304_1_0" dir="l" state="="/>
- <connection from="141191247#4" to="-141191247#4" fromLane="0" toLane="0" via=":1545673304_2_0" dir="t" state="="/>
- <connection from="141191248#0" to="141191263#0" fromLane="0" toLane="0" via=":1545672843_0_0" dir="r" state="="/>
- <connection from="141191248#0" to="141191248#1" fromLane="0" toLane="0" via=":1545672843_1_0" dir="s" state="="/>
- <connection from="141191248#0" to="-141191248#0" fromLane="0" toLane="0" via=":1545672843_2_0" dir="t" state="="/>
- <connection from="141191248#1" to="-141191263#1" fromLane="0" toLane="0" via=":1545672797_6_0" dir="r" state="="/>
- <connection from="141191248#1" to="141191248#2" fromLane="0" toLane="0" via=":1545672797_7_0" dir="s" state="="/>
- <connection from="141191248#1" to="-141191248#1" fromLane="0" toLane="0" via=":1545672797_8_0" dir="t" state="="/>
- <connection from="141191248#2" to="-141191248#2" fromLane="0" toLane="0" via=":1545672785_0_0" dir="t" state="M"/>
- <connection from="141191249#0" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_12_0" dir="r" state="="/>
- <connection from="141191249#0" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_13_0" dir="s" state="="/>
- <connection from="141191249#0" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_14_0" dir="l" state="="/>
- <connection from="141191249#0" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_15_0" dir="t" state="="/>
- <connection from="141191249#1" to="-141191251#2" fromLane="0" toLane="0" via=":1545673333_6_0" dir="r" state="="/>
- <connection from="141191249#1" to="141191249#2" fromLane="0" toLane="0" via=":1545673333_7_0" dir="s" state="="/>
- <connection from="141191249#1" to="-141191249#1" fromLane="0" toLane="0" via=":1545673333_8_0" dir="t" state="="/>
- <connection from="141191249#2" to="141191251#0" fromLane="0" toLane="0" via=":1545673280_6_0" dir="r" state="="/>
- <connection from="141191249#2" to="141191249#3" fromLane="0" toLane="0" via=":1545673280_7_0" dir="s" state="="/>
- <connection from="141191249#2" to="-141191249#2" fromLane="0" toLane="0" via=":1545673280_8_0" dir="t" state="="/>
- <connection from="141191249#3" to="141191249#4" fromLane="0" toLane="0" via=":1545673191_6_0" dir="s" state="="/>
- <connection from="141191249#3" to="-141191253#1" fromLane="0" toLane="0" via=":1545673191_7_0" dir="l" state="="/>
- <connection from="141191249#3" to="-141191249#3" fromLane="0" toLane="0" via=":1545673191_8_0" dir="t" state="="/>
- <connection from="141191249#4" to="141191254#0" fromLane="0" toLane="0" via=":1545673135_6_0" dir="r" state="="/>
- <connection from="141191249#4" to="141191249#5" fromLane="0" toLane="0" via=":1545673135_7_0" dir="s" state="="/>
- <connection from="141191249#4" to="-141191249#4" fromLane="0" toLane="0" via=":1545673135_8_0" dir="t" state="="/>
- <connection from="141191249#5" to="-141191258#0" fromLane="0" toLane="0" via=":1545673031_6_0" dir="r" state="="/>
- <connection from="141191249#5" to="141191258#1" fromLane="0" toLane="0" via=":1545673031_7_0" dir="l" state="="/>
- <connection from="141191249#5" to="-141191249#5" fromLane="0" toLane="0" via=":1545673031_8_0" dir="t" state="="/>
- <connection from="141191250#0" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_12_0" dir="r" state="="/>
- <connection from="141191250#0" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_13_0" dir="s" state="="/>
- <connection from="141191250#0" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_14_0" dir="l" state="="/>
- <connection from="141191250#0" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_15_0" dir="t" state="="/>
- <connection from="141191250#1" to="141191250#2" fromLane="0" toLane="0" via=":1545673065_6_0" dir="r" state="="/>
- <connection from="141191250#1" to="141191264#0" fromLane="0" toLane="0" via=":1545673065_7_0" dir="l" state="="/>
- <connection from="141191250#1" to="-141191250#1" fromLane="0" toLane="0" via=":1545673065_8_0" dir="t" state="="/>
- <connection from="141191250#2" to="141191250#3" fromLane="0" toLane="0" via=":1545672874_6_0" dir="s" state="="/>
- <connection from="141191250#2" to="141191262#0" fromLane="0" toLane="0" via=":1545672874_7_0" dir="l" state="="/>
- <connection from="141191250#2" to="-141191250#2" fromLane="0" toLane="0" via=":1545672874_8_0" dir="t" state="="/>
- <connection from="141191250#3" to="141191248#0" fromLane="0" toLane="0" via=":1545672864_6_0" dir="r" state="="/>
- <connection from="141191250#3" to="141191250#4" fromLane="0" toLane="0" via=":1545672864_7_0" dir="s" state="="/>
- <connection from="141191250#3" to="-141191250#3" fromLane="0" toLane="0" via=":1545672864_8_0" dir="t" state="="/>
- <connection from="141191250#4" to="141191250#5" fromLane="0" toLane="0" via=":1545672804_6_0" dir="s" state="="/>
- <connection from="141191250#4" to="141191252" fromLane="0" toLane="0" via=":1545672804_7_0" dir="l" state="="/>
- <connection from="141191250#4" to="-141191250#4" fromLane="0" toLane="0" via=":1545672804_8_0" dir="t" state="="/>
- <connection from="141191250#5" to="-141191250#5" fromLane="0" toLane="0" via=":1545672788_0_0" dir="t" state="M"/>
- <connection from="141191251#0" to="141191251#1" fromLane="0" toLane="0" via=":1545673218_0_0" dir="s" state="="/>
- <connection from="141191251#0" to="-141191254#2" fromLane="0" toLane="0" via=":1545673218_1_0" dir="l" state="="/>
- <connection from="141191251#0" to="-141191251#0" fromLane="0" toLane="0" via=":1545673218_2_0" dir="t" state="="/>
- <connection from="141191251#1" to="141191251#2" fromLane="0" toLane="0" via=":1545673223_0_0" dir="s" state="="/>
- <connection from="141191251#1" to="141191256#0" fromLane="0" toLane="0" via=":1545673223_1_0" dir="l" state="="/>
- <connection from="141191251#1" to="-141191251#1" fromLane="0" toLane="0" via=":1545673223_2_0" dir="t" state="="/>
- <connection from="141191251#2" to="141191249#2" fromLane="0" toLane="0" via=":1545673333_3_0" dir="r" state="="/>
- <connection from="141191251#2" to="-141191249#1" fromLane="0" toLane="0" via=":1545673333_4_0" dir="l" state="="/>
- <connection from="141191251#2" to="-141191251#2" fromLane="0" toLane="0" via=":1545673333_5_0" dir="t" state="="/>
- <connection from="141191252" to="-141191259#0" fromLane="0" toLane="0" via=":1545672824_3_0" dir="r" state="="/>
- <connection from="141191252" to="141191259#1" fromLane="0" toLane="0" via=":1545672824_4_0" dir="l" state="="/>
- <connection from="141191252" to="-141191252" fromLane="0" toLane="0" via=":1545672824_5_0" dir="t" state="="/>
- <connection from="141191253#0" to="-141191258#3" fromLane="0" toLane="0" via=":1545673240_0_0" dir="s" state="="/>
- <connection from="141191253#0" to="141191253#1" fromLane="0" toLane="0" via=":1545673240_1_0" dir="s" state="="/>
- <connection from="141191253#0" to="-141191253#0" fromLane="0" toLane="0" via=":1545673240_2_0" dir="t" state="="/>
- <connection from="141191253#1" to="-141191249#3" fromLane="0" toLane="0" via=":1545673191_0_0" dir="r" state="="/>
- <connection from="141191253#1" to="141191249#4" fromLane="0" toLane="0" via=":1545673191_1_0" dir="l" state="="/>
- <connection from="141191253#1" to="-141191253#1" fromLane="0" toLane="0" via=":1545673191_2_0" dir="t" state="="/>
- <connection from="141191254#0" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_0_0" dir="s" state="="/>
- <connection from="141191254#0" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_1_0" dir="s" state="="/>
- <connection from="141191254#0" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_2_0" dir="l" state="="/>
- <connection from="141191254#0" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_3_0" dir="t" state="="/>
- <connection from="141191254#1" to="141191254#2" fromLane="0" toLane="0" via=":1545673123_0_0" dir="s" state="="/>
- <connection from="141191254#1" to="-141191264#1" fromLane="0" toLane="0" via=":1545673123_1_0" dir="s" state="="/>
- <connection from="141191254#1" to="-141191254#1" fromLane="0" toLane="0" via=":1545673123_2_0" dir="t" state="="/>
- <connection from="141191254#2" to="-141191251#0" fromLane="0" toLane="0" via=":1545673218_3_0" dir="r" state="="/>
- <connection from="141191254#2" to="141191251#1" fromLane="0" toLane="0" via=":1545673218_4_0" dir="l" state="="/>
- <connection from="141191254#2" to="-141191254#2" fromLane="0" toLane="0" via=":1545673218_5_0" dir="t" state="="/>
- <connection from="141191255#0" to="-141191257" fromLane="0" toLane="0" via=":1545672999_6_0" dir="l" state="="/>
- <connection from="141191255#0" to="141191255#1" fromLane="0" toLane="0" via=":1545672999_7_0" dir="s" state="="/>
- <connection from="141191255#0" to="-141191255#0" fromLane="0" toLane="0" via=":1545672999_8_0" dir="t" state="="/>
- <connection from="141191255#1" to="141191255#0" fromLane="0" toLane="0" via=":1545672923_0_0" dir="l" state="M"/>
- <connection from="141191255#1" to="-141191255#1" fromLane="0" toLane="0" via=":1545672923_1_0" dir="t" state="m"/>
- <connection from="141191256#0" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_12_0" dir="r" state="="/>
- <connection from="141191256#0" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_13_0" dir="s" state="="/>
- <connection from="141191256#0" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_14_0" dir="l" state="="/>
- <connection from="141191256#0" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_15_0" dir="t" state="="/>
- <connection from="141191256#1" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_12_0" dir="r" state="="/>
- <connection from="141191256#1" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_13_0" dir="s" state="="/>
- <connection from="141191256#1" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_14_0" dir="l" state="="/>
- <connection from="141191256#1" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_15_0" dir="t" state="="/>
- <connection from="141191256#2" to="-141191259#1" fromLane="0" toLane="0" via=":1545672910_6_0" dir="r" state="="/>
- <connection from="141191256#2" to="141191259#2" fromLane="0" toLane="0" via=":1545672910_7_0" dir="l" state="="/>
- <connection from="141191256#2" to="-141191256#2" fromLane="0" toLane="0" via=":1545672910_8_0" dir="t" state="="/>
- <connection from="141191257" to="-141191255#0" fromLane="0" toLane="0" via=":1545672999_0_0" dir="r" state="="/>
- <connection from="141191257" to="141191255#1" fromLane="0" toLane="0" via=":1545672999_1_0" dir="l" state="="/>
- <connection from="141191257" to="-141191257" fromLane="0" toLane="0" via=":1545672999_2_0" dir="t" state="="/>
- <connection from="141191258#0" to="141191258#1" fromLane="0" toLane="0" via=":1545673031_3_0" dir="s" state="="/>
- <connection from="141191258#0" to="-141191249#5" fromLane="0" toLane="0" via=":1545673031_4_0" dir="l" state="="/>
- <connection from="141191258#0" to="-141191258#0" fromLane="0" toLane="0" via=":1545673031_5_0" dir="t" state="="/>
- <connection from="141191258#1" to="141191258#2" fromLane="0" toLane="0" via=":1545673150_3_0" dir="s" state="="/>
- <connection from="141191258#1" to="141191253#0" fromLane="0" toLane="0" via=":1545673150_4_0" dir="l" state="="/>
- <connection from="141191258#1" to="-141191258#1" fromLane="0" toLane="0" via=":1545673150_5_0" dir="t" state="="/>
- <connection from="141191258#2" to="-141191247#4" fromLane="0" toLane="0" via=":1545673304_3_0" dir="r" state="="/>
- <connection from="141191258#2" to="141191258#3" fromLane="0" toLane="0" via=":1545673304_4_0" dir="s" state="="/>
- <connection from="141191258#2" to="-141191258#2" fromLane="0" toLane="0" via=":1545673304_5_0" dir="t" state="="/>
- <connection from="141191258#3" to="141191253#1" fromLane="0" toLane="0" via=":1545673240_6_0" dir="r" state="="/>
- <connection from="141191258#3" to="-141191253#0" fromLane="0" toLane="0" via=":1545673240_7_0" dir="s" state="="/>
- <connection from="141191258#3" to="-141191258#3" fromLane="0" toLane="0" via=":1545673240_8_0" dir="t" state="="/>
- <connection from="141191259#0" to="141191259#1" fromLane="0" toLane="0" via=":1545672824_0_0" dir="s" state="="/>
- <connection from="141191259#0" to="-141191252" fromLane="0" toLane="0" via=":1545672824_1_0" dir="l" state="="/>
- <connection from="141191259#0" to="-141191259#0" fromLane="0" toLane="0" via=":1545672824_2_0" dir="t" state="="/>
- <connection from="141191259#1" to="141191259#2" fromLane="0" toLane="0" via=":1545672910_3_0" dir="s" state="="/>
- <connection from="141191259#1" to="-141191256#2" fromLane="0" toLane="0" via=":1545672910_4_0" dir="l" state="="/>
- <connection from="141191259#1" to="-141191259#1" fromLane="0" toLane="0" via=":1545672910_5_0" dir="t" state="="/>
- <connection from="141191259#2" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_8_0" dir="s" state="="/>
- <connection from="141191259#2" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_9_0" dir="s" state="="/>
- <connection from="141191259#2" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_10_0" dir="l" state="="/>
- <connection from="141191259#2" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_11_0" dir="t" state="="/>
- <connection from="141191259#3" to="141191257" fromLane="0" toLane="0" via=":1545673030_6_0" dir="r" state="="/>
- <connection from="141191259#3" to="141191259#4" fromLane="0" toLane="0" via=":1545673030_7_0" dir="s" state="="/>
- <connection from="141191259#3" to="-141191259#3" fromLane="0" toLane="0" via=":1545673030_8_0" dir="t" state="="/>
- <connection from="141191259#4" to="141191259#5" fromLane="0" toLane="0" via=":1545672954_6_0" dir="s" state="="/>
- <connection from="141191259#4" to="141191258#0" fromLane="0" toLane="0" via=":1545672954_7_0" dir="l" state="="/>
- <connection from="141191259#4" to="-141191259#4" fromLane="0" toLane="0" via=":1545672954_8_0" dir="t" state="="/>
- <connection from="141191259#5" to="141191259#0" fromLane="0" toLane="0" via=":1545672852_0_0" dir="s" state="M"/>
- <connection from="141191259#5" to="-141191259#5" fromLane="0" toLane="0" via=":1545672852_1_0" dir="t" state="m"/>
- <connection from="141191260#0" to="-141191247#0" fromLane="0" toLane="0" via=":1545672806_3_0" dir="r" state="M"/>
- <connection from="141191260#0" to="141191247#1" fromLane="0" toLane="0" via=":1545672806_4_0" dir="l" state="M"/>
- <connection from="141191260#0" to="141191260#1" fromLane="0" toLane="0" via=":1545672806_5_0" dir="s" state="M"/>
- <connection from="141191261#0" to="-141191247#3" fromLane="0" toLane="0" via=":1545673319_3_0" dir="l" state="M"/>
- <connection from="141191261#0" to="141191247#4" fromLane="0" toLane="0" via=":1545673319_4_0" dir="r" state="M"/>
- <connection from="141191261#0" to="141191261#1" fromLane="0" toLane="0" via=":1545673319_5_0" dir="s" state="M"/>
- <connection from="141191261#1" to="141190464" fromLane="0" toLane="0" via=":1545661417_0_0" dir="r" state="m"/>
- <connection from="141191261#1" to="141190463" fromLane="0" toLane="0" via=":1545661417_1_0" dir="s" state="m"/>
- <connection from="141191262#0" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_8_0" dir="r" state="="/>
- <connection from="141191262#0" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_9_0" dir="s" state="="/>
- <connection from="141191262#0" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_10_0" dir="l" state="="/>
- <connection from="141191262#0" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_11_0" dir="t" state="="/>
- <connection from="141191262#1" to="-141191262#1" fromLane="0" toLane="0" via=":1545672971_0_0" dir="t" state="M"/>
- <connection from="141191263#0" to="141191247#0" fromLane="0" toLane="0" via=":1545672819_0_0" dir="s" state="="/>
- <connection from="141191263#0" to="141191263#1" fromLane="0" toLane="0" via=":1545672819_1_0" dir="l" state="="/>
- <connection from="141191263#0" to="-141191263#0" fromLane="0" toLane="0" via=":1545672819_2_0" dir="t" state="="/>
- <connection from="141191263#1" to="141191248#2" fromLane="0" toLane="0" via=":1545672797_3_0" dir="s" state="="/>
- <connection from="141191263#1" to="-141191248#1" fromLane="0" toLane="0" via=":1545672797_4_0" dir="l" state="="/>
- <connection from="141191263#1" to="-141191263#1" fromLane="0" toLane="0" via=":1545672797_5_0" dir="t" state="="/>
- <connection from="141191264#0" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_8_0" dir="r" state="="/>
- <connection from="141191264#0" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_9_0" dir="s" state="="/>
- <connection from="141191264#0" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_10_0" dir="l" state="="/>
- <connection from="141191264#0" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_11_0" dir="t" state="="/>
- <connection from="141191264#1" to="-141191254#1" fromLane="0" toLane="0" via=":1545673123_3_0" dir="s" state="="/>
- <connection from="141191264#1" to="141191254#2" fromLane="0" toLane="0" via=":1545673123_4_0" dir="l" state="="/>
- <connection from="141191264#1" to="-141191264#1" fromLane="0" toLane="0" via=":1545673123_5_0" dir="t" state="="/>
- <connection from="144874008#0" to="144874008#1" fromLane="0" toLane="0" via=":1257054127_0_0" dir="s" state="M"/>
- <connection from="144874008#0" to="38319546#0" fromLane="0" toLane="0" via=":1257054127_1_0" dir="l" state="M"/>
- <connection from="144874008#1" to="81523343" fromLane="0" toLane="0" via=":428097664_0_0" dir="s" state="M"/>
- <connection from="144874010#0" to="144874010#1" fromLane="0" toLane="0" via=":1243159115_0_0" dir="s" state="M"/>
- <connection from="144874010#0" to="144874010#1" fromLane="1" toLane="1" via=":1243159115_1_0" dir="s" state="M"/>
- <connection from="144874010#0" to="-108329427#2" fromLane="1" toLane="0" via=":1243159115_2_0" dir="s" state="M"/>
- <connection from="144874010#1" to="-23315111#0" fromLane="0" toLane="0" via=":950094412_3_0" dir="r" state="M"/>
- <connection from="144874010#1" to="144874010#2" fromLane="0" toLane="0" via=":950094412_4_0" dir="s" state="M"/>
- <connection from="144874010#1" to="144874010#2" fromLane="1" toLane="1" via=":950094412_5_0" dir="s" state="M"/>
- <connection from="144874010#1" to="23315111#1" fromLane="1" toLane="0" via=":950094412_6_0" dir="l" state="M"/>
- <connection from="144874010#2" to="81523316" fromLane="0" toLane="0" via=":948350705_0_0" dir="s" state="M"/>
- <connection from="144874010#2" to="81523316" fromLane="1" toLane="1" via=":948350705_1_0" dir="s" state="M"/>
- <connection from="144874010#2" to="109438232" fromLane="1" toLane="0" via=":948350705_2_0" dir="s" state="M"/>
- <connection from="144874012#0" to="129780022#3" fromLane="0" toLane="0" via=":435668534_0_0" dir="r" state="m"/>
- <connection from="144874012#0" to="144874012#1" fromLane="0" toLane="0" via=":435668534_1_0" dir="s" state="m"/>
- <connection from="144874012#0" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_2_0" dir="l" state="m"/>
- <connection from="144874012#1" to="-81523330#4" fromLane="0" toLane="0" via=":950094494_0_0" dir="r" state="m"/>
- <connection from="144874012#1" to="139118808" fromLane="0" toLane="0" via=":950094494_1_0" dir="s" state="m"/>
- <connection from="144874012#1" to="139118805#0" fromLane="0" toLane="1" via=":950094494_2_0" dir="l" state="m"/>
- <connection from="149408824#0" to="-160587537#2" fromLane="0" toLane="0" via=":1726394729_7_0" dir="r" state="M"/>
- <connection from="149408824#0" to="149408824#1" fromLane="0" toLane="0" via=":1726394729_8_0" dir="s" state="M"/>
- <connection from="149408824#0" to="149408824#1" fromLane="1" toLane="1" via=":1726394729_9_0" dir="s" state="M"/>
- <connection from="149408824#0" to="160587537#3" fromLane="1" toLane="1" via=":1726394729_10_0" dir="l" state="M"/>
- <connection from="149419435#0" to="38319550#13" fromLane="0" toLane="0" via=":1719213668_6_0" dir="r" state="M"/>
- <connection from="149419435#0" to="149419435#1" fromLane="0" toLane="0" via=":1719213668_7_0" dir="s" state="M"/>
- <connection from="149419435#0" to="-38319550#12" fromLane="0" toLane="0" via=":1719213668_8_0" dir="l" state="M"/>
- <connection from="149419435#1" to="24573930#4" fromLane="0" toLane="0" via=":1624003193_2_0" dir="r" state="M"/>
- <connection from="149419435#1" to="149419435#2" fromLane="0" toLane="0" via=":1624003193_3_0" dir="s" state="M"/>
- <connection from="149419435#2" to="149419435#3" fromLane="0" toLane="0" via=":1624003168_2_0" dir="s" state="m"/>
- <connection from="149419435#2" to="24573897#1" fromLane="0" toLane="0" via=":1624003168_3_0" dir="l" state="m"/>
- <connection from="149419435#3" to="81096816#4" fromLane="0" toLane="0" via=":1624003199_1_0" dir="r" state="M"/>
- <connection from="149420179" to="24573930#2" fromLane="0" toLane="0" via=":1624020482_1_0" dir="l" state="m"/>
- <connection from="149422193#0" to="170590354#2" fromLane="0" toLane="0" via=":2265767389_3_0" dir="r" state="m"/>
- <connection from="149422193#0" to="149422193#1" fromLane="0" toLane="0" via=":2265767389_4_0" dir="s" state="m"/>
- <connection from="149422193#0" to="-149422193#0" fromLane="0" toLane="0" via=":2265767389_5_0" dir="t" state="m"/>
- <connection from="149422193#1" to="-149868584#0" fromLane="0" toLane="0" via=":255227483_9_0" dir="r" state="m"/>
- <connection from="149422193#1" to="24573947#0" fromLane="0" toLane="0" via=":255227483_10_0" dir="s" state="m"/>
- <connection from="149422193#1" to="149868584#1" fromLane="0" toLane="1" via=":255227483_11_0" dir="l" state="m"/>
- <connection from="149422193#1" to="-149422193#1" fromLane="0" toLane="0" via=":255227483_12_0" dir="t" state="m"/>
- <connection from="149422199#0" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_30_0" dir="r" state="M"/>
- <connection from="149422199#0" to="166728377#0" fromLane="0" toLane="0" via=":255227480_31_0" dir="s" state="m"/>
- <connection from="149422199#0" to="149422199#1" fromLane="0" toLane="0" via=":255227480_32_0" dir="s" state="m"/>
- <connection from="149422199#0" to="23566901#1" fromLane="0" toLane="0" via=":255227480_33_0" dir="L" state="m"/>
- <connection from="149422199#0" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_34_0" dir="l" state="m"/>
- <connection from="149422199#0" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_35_0" dir="t" state="m"/>
- <connection from="149422199#1" to="149422199#2" fromLane="0" toLane="0" via=":255227482_15_0" dir="s" state="M"/>
- <connection from="149422199#1" to="166728377#1" fromLane="0" toLane="0" via=":255227482_16_0" dir="L" state="m"/>
- <connection from="149422199#1" to="149422210#0" fromLane="0" toLane="0" via=":255227482_17_0" dir="L" state="m"/>
- <connection from="149422199#1" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_18_0" dir="l" state="m"/>
- <connection from="149422199#1" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_19_0" dir="t" state="m"/>
- <connection from="149422199#2" to="-149422199#2" fromLane="0" toLane="0" via=":432548414_0_0" dir="t" state="M"/>
- <connection from="149422210#0" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_5_0" dir="s" state="M"/>
- <connection from="149422210#0" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_6_0" dir="L" state="m"/>
- <connection from="149422210#0" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_7_0" dir="L" state="m"/>
- <connection from="149422210#0" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_8_0" dir="l" state="m"/>
- <connection from="149422210#0" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_9_0" dir="t" state="m"/>
- <connection from="149422210#1" to="101272426#2" fromLane="0" toLane="0" via=":443101921_3_0" dir="r" state="m"/>
- <connection from="149422210#1" to="149422193#0" fromLane="0" toLane="0" via=":443101921_4_0" dir="s" state="m"/>
- <connection from="149422210#1" to="-149422210#1" fromLane="0" toLane="0" via=":443101921_5_0" dir="t" state="m"/>
- <connection from="149819220" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_0_0" dir="r" state="m"/>
- <connection from="149819220" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_1_0" dir="l" state="m"/>
- <connection from="149819220" to="-149819220" fromLane="0" toLane="0" via=":1224074535_2_0" dir="t" state="m"/>
- <connection from="149819222" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_3_0" dir="r" state="m"/>
- <connection from="149819222" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_4_0" dir="l" state="m"/>
- <connection from="149819222" to="-149819222" fromLane="0" toLane="0" via=":1627657715_5_0" dir="t" state="m"/>
- <connection from="149819224" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_3_0" dir="r" state="m"/>
- <connection from="149819224" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_4_0" dir="l" state="m"/>
- <connection from="149819224" to="-149819224" fromLane="0" toLane="0" via=":1627657825_5_0" dir="t" state="m"/>
- <connection from="149819227#0" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_12_0" dir="r" state="M"/>
- <connection from="149819227#0" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_13_0" dir="s" state="M"/>
- <connection from="149819227#0" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_14_0" dir="l" state="m"/>
- <connection from="149819227#0" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_15_0" dir="t" state="m"/>
- <connection from="149819227#1" to="-149819224" fromLane="0" toLane="0" via=":1627657825_6_0" dir="r" state="M"/>
- <connection from="149819227#1" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_7_0" dir="s" state="M"/>
- <connection from="149819227#1" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_8_0" dir="t" state="m"/>
- <connection from="149819227#2" to="149819220" fromLane="0" toLane="0" via=":1224074532_6_0" dir="r" state="M"/>
- <connection from="149819227#2" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_7_0" dir="s" state="M"/>
- <connection from="149819227#2" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_8_0" dir="t" state="m"/>
- <connection from="149819227#3" to="-149819222" fromLane="0" toLane="0" via=":1627657715_6_0" dir="r" state="M"/>
- <connection from="149819227#3" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_7_0" dir="s" state="M"/>
- <connection from="149819227#3" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_8_0" dir="t" state="m"/>
- <connection from="149819232#0" to="-149819220" fromLane="0" toLane="0" via=":1224074535_3_0" dir="r" state="M"/>
- <connection from="149819232#0" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_4_0" dir="s" state="M"/>
- <connection from="149819232#0" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_5_0" dir="t" state="m"/>
- <connection from="149819232#1" to="149819224" fromLane="0" toLane="0" via=":1627657822_3_0" dir="r" state="M"/>
- <connection from="149819232#1" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_4_0" dir="s" state="M"/>
- <connection from="149819232#1" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_5_0" dir="t" state="m"/>
- <connection from="149819232#2" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_3_0" dir="r" state="M"/>
- <connection from="149819232#2" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_4_0" dir="s" state="M"/>
- <connection from="149819232#2" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_5_0" dir="t" state="m"/>
- <connection from="149819232#3" to="-149819232#3" fromLane="0" toLane="0" via=":1224074526_0_0" dir="t" state="M"/>
- <connection from="149868584#0" to="24573947#0" fromLane="0" toLane="0" via=":255227483_4_0" dir="r" state="M"/>
- <connection from="149868584#0" to="149868584#1" fromLane="0" toLane="0" via=":255227483_5_0" dir="s" state="M"/>
- <connection from="149868584#0" to="149868584#1" fromLane="1" toLane="1" via=":255227483_6_0" dir="s" state="M"/>
- <connection from="149868584#0" to="-149422193#1" fromLane="1" toLane="0" via=":255227483_7_0" dir="l" state="m"/>
- <connection from="149868584#0" to="-149868584#0" fromLane="1" toLane="1" via=":255227483_8_0" dir="t" state="m"/>
- <connection from="149868584#1" to="37772597#0" fromLane="0" toLane="0" via=":255227471_4_0" dir="r" state="M"/>
- <connection from="149868584#1" to="149868584#2" fromLane="0" toLane="0" via=":255227471_5_0" dir="s" state="M"/>
- <connection from="149868584#1" to="149868584#2" fromLane="1" toLane="1" via=":255227471_6_0" dir="s" state="M"/>
- <connection from="149868584#1" to="23262356#0" fromLane="1" toLane="0" via=":255227471_7_0" dir="l" state="m"/>
- <connection from="149868584#1" to="-149868584#1" fromLane="1" toLane="1" via=":255227471_8_0" dir="t" state="m"/>
- <connection from="149868584#2" to="154844487#1" fromLane="0" toLane="0" via=":1168929657_0_0" tl="1168929657" linkIndex="0" dir="r" state="o"/>
- <connection from="149868584#2" to="149868584#3" fromLane="1" toLane="0" via=":1168929657_1_0" tl="1168929657" linkIndex="1" dir="s" state="o"/>
- <connection from="149868584#2" to="-149868584#2" fromLane="1" toLane="1" via=":1168929657_2_0" tl="1168929657" linkIndex="2" dir="t" state="o"/>
- <connection from="149868584#3" to="160587538#4" fromLane="0" toLane="0" via=":1726394724_4_0" tl="1726394724" linkIndex="4" dir="r" state="o"/>
- <connection from="149868584#3" to="149868584#4" fromLane="0" toLane="0" via=":1726394724_5_0" tl="1726394724" linkIndex="5" dir="s" state="o"/>
- <connection from="149868584#3" to="149868584#4" fromLane="1" toLane="1" via=":1726394724_6_0" tl="1726394724" linkIndex="6" dir="s" state="o"/>
- <connection from="149868584#3" to="-160587538#3" fromLane="1" toLane="1" via=":1726394724_7_0" tl="1726394724" linkIndex="7" dir="l" state="o"/>
- <connection from="149868584#3" to="-149868584#3" fromLane="1" toLane="1" via=":1726394724_8_0" tl="1726394724" linkIndex="8" dir="t" state="o"/>
- <connection from="149868584#4" to="149868584#5" fromLane="0" toLane="1" via=":1168929383_3_0" tl="1168929383" linkIndex="3" dir="s" state="o"/>
- <connection from="149868584#4" to="154844470#1" fromLane="1" toLane="0" via=":1168929383_4_0" tl="1168929383" linkIndex="4" dir="l" state="o"/>
- <connection from="149868584#4" to="-149868584#4" fromLane="1" toLane="1" via=":1168929383_5_0" tl="1168929383" linkIndex="5" dir="t" state="o"/>
- <connection from="149868584#5" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_4_0" tl="767282288" linkIndex="4" dir="r" state="o"/>
- <connection from="149868584#5" to="149868584#6" fromLane="0" toLane="0" via=":767282288_5_0" tl="767282288" linkIndex="5" dir="s" state="o"/>
- <connection from="149868584#5" to="149868584#6" fromLane="1" toLane="1" via=":767282288_6_0" tl="767282288" linkIndex="6" dir="s" state="o"/>
- <connection from="149868584#5" to="38319550#6" fromLane="1" toLane="0" via=":767282288_7_0" tl="767282288" linkIndex="7" dir="l" state="o"/>
- <connection from="149868584#5" to="-149868584#5" fromLane="1" toLane="1" via=":767282288_8_0" tl="767282288" linkIndex="8" dir="t" state="o"/>
- <connection from="149868584#6" to="42976410#0" fromLane="0" toLane="0" via=":13929775_0_0" tl="13929775" linkIndex="0" dir="r" state="o"/>
- <connection from="149868584#6" to="149868584#7" fromLane="0" toLane="0" via=":13929775_1_0" tl="13929775" linkIndex="1" dir="s" state="o"/>
- <connection from="149868584#6" to="149868584#7" fromLane="1" toLane="1" via=":13929775_2_0" tl="13929775" linkIndex="2" dir="s" state="o"/>
- <connection from="149868584#6" to="-149868584#6" fromLane="1" toLane="1" via=":13929775_3_0" tl="13929775" linkIndex="3" dir="t" state="o"/>
- <connection from="149868584#7" to="42976405#0" fromLane="0" toLane="0" via=":438042369_0_0" tl="438042369" linkIndex="0" dir="r" state="o"/>
- <connection from="149868584#7" to="42976405#0" fromLane="1" toLane="1" via=":438042369_1_0" tl="438042369" linkIndex="1" dir="r" state="o"/>
- <connection from="149868584#7" to="149868584#8" fromLane="1" toLane="0" via=":438042369_2_0" tl="438042369" linkIndex="2" dir="s" state="o"/>
- <connection from="149868584#7" to="-149868584#7" fromLane="1" toLane="1" via=":438042369_3_0" tl="438042369" linkIndex="3" dir="t" state="o"/>
- <connection from="149868584#8" to="37973572#0" fromLane="0" toLane="1" via=":438042367_4_0" tl="438042367" linkIndex="4" dir="s" state="o"/>
- <connection from="149868584#8" to="42976406#0" fromLane="1" toLane="2" via=":438042367_5_0" tl="438042367" linkIndex="5" dir="l" state="o"/>
- <connection from="149868584#8" to="-149868584#8" fromLane="1" toLane="1" via=":438042367_6_0" tl="438042367" linkIndex="6" dir="t" state="o"/>
- <connection from="151164683" to="-151164683" fromLane="0" toLane="0" via=":1718241040_0_0" dir="t" state="M"/>
- <connection from="151167658#0" to="38319549#2" fromLane="0" toLane="0" via=":1719213140_6_0" dir="r" state="M"/>
- <connection from="151167658#0" to="151167658#1" fromLane="0" toLane="0" via=":1719213140_7_0" dir="s" state="M"/>
- <connection from="151167658#0" to="-38319549#1" fromLane="0" toLane="0" via=":1719213140_8_0" dir="l" state="M"/>
- <connection from="151167658#1" to="151167658#2" fromLane="0" toLane="0" via=":438042376_2_0" dir="s" state="M"/>
- <connection from="151167658#1" to="23066443#2" fromLane="0" toLane="0" via=":438042376_3_0" dir="l" state="M"/>
- <connection from="151167658#2" to="110514869#0" fromLane="0" toLane="0" via=":1261880295_2_0" dir="s" state="M"/>
- <connection from="151167658#2" to="110514869#0" fromLane="0" toLane="1" via=":1261880295_3_0" dir="s" state="M"/>
- <connection from="151167658#2" to="44738605#0" fromLane="0" toLane="0" via=":1261880295_4_0" dir="l" state="m"/>
- <connection from="154409616#0" to="154409616#1" fromLane="0" toLane="0" via=":252418151_0_0" dir="s" state="M"/>
- <connection from="154409616#1" to="144874008#0" fromLane="0" toLane="0" via=":252418152_0_0" dir="r" state="M"/>
- <connection from="154409621" to="129780026#2" fromLane="0" toLane="0" via=":248913124_0_0" dir="r" state="M"/>
- <connection from="154409621" to="129780022#0" fromLane="0" toLane="0" via=":248913124_1_0" dir="s" state="M"/>
- <connection from="154409621" to="-154409621" fromLane="0" toLane="0" via=":248913124_2_0" dir="t" state="m"/>
- <connection from="154489992#0" to="129780026#3" fromLane="0" toLane="0" via=":950094434_0_0" dir="r" state="M"/>
- <connection from="154489992#0" to="154489992#1" fromLane="0" toLane="0" via=":950094434_1_0" dir="s" state="M"/>
- <connection from="154489992#0" to="154489992#1" fromLane="1" toLane="1" via=":950094434_2_0" dir="s" state="M"/>
- <connection from="154489992#1" to="-38319546#0" fromLane="0" toLane="0" via=":1257054074_3_0" dir="r" state="M"/>
- <connection from="154489992#1" to="154489992#2" fromLane="0" toLane="0" via=":1257054074_4_0" dir="s" state="M"/>
- <connection from="154489992#1" to="154489992#2" fromLane="1" toLane="1" via=":1257054074_5_0" dir="s" state="M"/>
- <connection from="154489992#1" to="38319546#1" fromLane="1" toLane="0" via=":1257054074_6_0" dir="l" state="M"/>
- <connection from="154489992#2" to="172498367" fromLane="0" toLane="0" via=":950094314_0_0" dir="r" state="M"/>
- <connection from="154489992#2" to="172498388" fromLane="0" toLane="0" via=":950094314_1_0" dir="s" state="M"/>
- <connection from="154489992#2" to="172498388" fromLane="1" toLane="1" via=":950094314_2_0" dir="s" state="M"/>
- <connection from="154500693#0" to="166576464#3" fromLane="0" toLane="0" via=":1780219342_3_0" dir="r" state="M"/>
- <connection from="154500693#0" to="154500693#1" fromLane="0" toLane="0" via=":1780219342_4_0" dir="s" state="M"/>
- <connection from="154500693#0" to="154500693#1" fromLane="1" toLane="1" via=":1780219342_5_0" dir="s" state="M"/>
- <connection from="154500693#0" to="154500693#1" fromLane="2" toLane="2" via=":1780219342_6_0" dir="s" state="M"/>
- <connection from="154500693#0" to="-166576464#2" fromLane="2" toLane="0" via=":1780219342_7_0" dir="l" state="M"/>
- <connection from="154500693#1" to="166576468#2" fromLane="0" toLane="0" via=":1780219352_3_0" dir="r" state="M"/>
- <connection from="154500693#1" to="154500693#2" fromLane="0" toLane="0" via=":1780219352_4_0" dir="s" state="M"/>
- <connection from="154500693#1" to="154500693#2" fromLane="1" toLane="1" via=":1780219352_5_0" dir="s" state="M"/>
- <connection from="154500693#1" to="154500693#2" fromLane="2" toLane="2" via=":1780219352_6_0" dir="s" state="M"/>
- <connection from="154500693#1" to="-166576468#1" fromLane="2" toLane="0" via=":1780219352_7_0" dir="l" state="M"/>
- <connection from="154500693#2" to="37973568#7" fromLane="0" toLane="0" via=":446017743_0_0" tl="446017743" linkIndex="0" dir="r" state="o"/>
- <connection from="154500693#2" to="154500693#3" fromLane="0" toLane="0" via=":446017743_1_0" tl="446017743" linkIndex="1" dir="s" state="o"/>
- <connection from="154500693#2" to="154500693#3" fromLane="1" toLane="1" via=":446017743_2_0" tl="446017743" linkIndex="2" dir="s" state="o"/>
- <connection from="154500693#2" to="154500693#3" fromLane="2" toLane="2" via=":446017743_3_0" tl="446017743" linkIndex="3" dir="s" state="o"/>
- <connection from="154500693#3" to="-149868584#7" fromLane="0" toLane="0" via=":438042369_4_0" tl="438042369" linkIndex="4" dir="r" state="o"/>
- <connection from="154500693#3" to="42976405#0" fromLane="0" toLane="0" via=":438042369_5_0" tl="438042369" linkIndex="5" dir="s" state="o"/>
- <connection from="154500693#3" to="42976405#0" fromLane="1" toLane="1" via=":438042369_6_0" tl="438042369" linkIndex="6" dir="s" state="o"/>
- <connection from="154500693#3" to="149868584#8" fromLane="2" toLane="1" via=":438042369_7_0" tl="438042369" linkIndex="7" dir="l" state="o"/>
- <connection from="154500695" to="37449249#0" fromLane="0" toLane="0" via=":438042373_1_0" tl="438042373" linkIndex="1" dir="s" state="o"/>
- <connection from="154500698" to="154500699#0" fromLane="0" toLane="0" via=":438042386_3_0" tl="438042386" linkIndex="3" dir="s" state="o"/>
- <connection from="154500698" to="133960538#0" fromLane="0" toLane="1" via=":438042386_4_0" tl="438042386" linkIndex="4" dir="l" state="o"/>
- <connection from="154500699#0" to="154500699#1" fromLane="0" toLane="0" via=":438042378_1_0" tl="438042378" linkIndex="1" dir="s" state="o"/>
- <connection from="154500699#1" to="151167658#0" fromLane="0" toLane="0" via=":438042377_0_0" tl="438042377" linkIndex="0" dir="s" state="o"/>
- <connection from="154500699#1" to="154500695" fromLane="0" toLane="0" via=":438042377_1_0" tl="438042377" linkIndex="1" dir="s" state="o"/>
- <connection from="154500706#0" to="42976406#5" fromLane="0" toLane="0" via=":441236060_4_0" dir="r" state="m"/>
- <connection from="154500706#0" to="154500706#1" fromLane="0" toLane="0" via=":441236060_5_0" dir="s" state="m"/>
- <connection from="154500706#1" to="154500706#2" fromLane="0" toLane="0" via=":1168929600_4_0" tl="1168929600" linkIndex="4" dir="s" state="o"/>
- <connection from="154500706#1" to="122301994#1" fromLane="0" toLane="1" via=":1168929600_5_0" tl="1168929600" linkIndex="5" dir="l" state="o"/>
- <connection from="154500706#1" to="122301994#1" fromLane="0" toLane="2" via=":1168929600_6_0" tl="1168929600" linkIndex="6" dir="l" state="o"/>
- <connection from="154500706#2" to="154500706#3" fromLane="0" toLane="0" via=":1168929298_1_0" tl="1168929298" linkIndex="1" dir="s" state="o"/>
- <connection from="154500706#3" to="8272412#0" fromLane="0" toLane="0" via=":1096401733_0_0" dir="r" state="M"/>
- <connection from="154500706#3" to="160587552#0" fromLane="0" toLane="0" via=":1096401733_1_0" dir="s" state="M"/>
- <connection from="154844461#0" to="-108733429" fromLane="0" toLane="0" via=":1246731460_2_0" dir="r" state="M"/>
- <connection from="154844461#0" to="154844461#1" fromLane="0" toLane="0" via=":1246731460_3_0" dir="s" state="m"/>
- <connection from="154844461#1" to="154844461#2" fromLane="0" toLane="0" via=":1168929295_1_0" tl="1168929295" linkIndex="1" dir="s" state="o"/>
- <connection from="154844461#2" to="101272429#0" fromLane="0" toLane="0" via=":1246731455_0_0" dir="r" state="M"/>
- <connection from="154844461#2" to="108733428" fromLane="0" toLane="0" via=":1246731455_1_0" dir="s" state="M"/>
- <connection from="154844461#2" to="154844461#3" fromLane="0" toLane="0" via=":1246731455_2_0" dir="s" state="m"/>
- <connection from="154844461#3" to="111863125#0" fromLane="0" toLane="0" via=":1168929523_0_0" dir="r" state="M"/>
- <connection from="154844461#3" to="154844470#0" fromLane="0" toLane="0" via=":1168929523_1_0" dir="s" state="M"/>
- <connection from="154844462" to="-108733424" fromLane="0" toLane="0" via=":1246731525_0_0" dir="l" state="M"/>
- <connection from="154844462" to="154844481" fromLane="0" toLane="0" via=":1246731525_1_0" dir="s" state="M"/>
- <connection from="154844463" to="-108733422" fromLane="0" toLane="0" via=":1246731544_2_0" tl="1246731544" linkIndex="2" dir="t" state="o"/>
- <connection from="154844463" to="154844479" fromLane="0" toLane="0" via=":1246731544_3_0" tl="1246731544" linkIndex="3" dir="s" state="o"/>
- <connection from="154844465#0" to="154844465#1" fromLane="0" toLane="0" via=":1168929613_0_0" tl="1168929613" linkIndex="0" dir="s" state="o"/>
- <connection from="154844465#1" to="-108733431" fromLane="0" toLane="0" via=":1246731627_2_0" dir="r" state="M"/>
- <connection from="154844465#1" to="154844465#2" fromLane="0" toLane="0" via=":1246731627_3_0" dir="s" state="m"/>
- <connection from="154844465#2" to="81096816#0" fromLane="0" toLane="0" via=":1168929272_0_0" dir="s" state="M"/>
- <connection from="154844465#2" to="154844465#3" fromLane="0" toLane="0" via=":1168929272_1_0" dir="s" state="M"/>
- <connection from="154844465#3" to="108733425" fromLane="0" toLane="0" via=":1246731504_2_0" dir="s" state="M"/>
- <connection from="154844465#3" to="154844465#4" fromLane="0" toLane="0" via=":1246731504_3_0" dir="s" state="m"/>
- <connection from="154844465#4" to="166602674#0" fromLane="0" toLane="0" via=":1168929382_3_0" dir="r" state="m"/>
- <connection from="154844465#4" to="101272431" fromLane="0" toLane="0" via=":1168929382_4_0" dir="s" state="m"/>
- <connection from="154844467" to="101272426#0" fromLane="0" toLane="0" via=":1168929367_0_0" dir="r" state="M"/>
- <connection from="154844467" to="154844473" fromLane="0" toLane="0" via=":1168929367_1_0" dir="R" state="M"/>
- <connection from="154844470#0" to="149868584#5" fromLane="0" toLane="0" via=":1168929383_0_0" tl="1168929383" linkIndex="0" dir="r" state="o"/>
- <connection from="154844470#0" to="154844470#1" fromLane="0" toLane="0" via=":1168929383_1_0" tl="1168929383" linkIndex="1" dir="s" state="o"/>
- <connection from="154844470#0" to="-149868584#4" fromLane="0" toLane="1" via=":1168929383_2_0" tl="1168929383" linkIndex="2" dir="l" state="o"/>
- <connection from="154844470#1" to="154844465#0" fromLane="0" toLane="0" via=":1168929310_0_0" dir="s" state="m"/>
- <connection from="154844470#1" to="111863096#0" fromLane="0" toLane="0" via=":1168929310_1_0" dir="l" state="m"/>
- <connection from="154844473" to="81547611" fromLane="0" toLane="0" via=":1168929388_0_0" dir="r" state="M"/>
- <connection from="154844473" to="154844487#0" fromLane="0" toLane="0" via=":1168929388_1_0" dir="s" state="M"/>
- <connection from="154844474#0" to="38319548#6" fromLane="0" toLane="0" via=":1669480284_3_0" dir="r" state="M"/>
- <connection from="154844474#0" to="154844474#1" fromLane="0" toLane="0" via=":1669480284_4_0" dir="s" state="M"/>
- <connection from="154844474#0" to="154844474#1" fromLane="1" toLane="1" via=":1669480284_5_0" dir="s" state="M"/>
- <connection from="154844474#0" to="-38319548#5" fromLane="1" toLane="0" via=":1669480284_6_0" dir="l" state="M"/>
- <connection from="154844477" to="101272435#0" fromLane="0" toLane="0" via=":1168929459_0_0" dir="r" state="M"/>
- <connection from="154844477" to="154844489#0" fromLane="0" toLane="0" via=":1168929459_1_0" dir="s" state="M"/>
- <connection from="154844478" to="154844484#0" fromLane="0" toLane="0" via=":1168929385_3_0" dir="s" state="m"/>
- <connection from="154844478" to="154844483#0" fromLane="0" toLane="1" via=":1168929385_4_0" dir="l" state="m"/>
- <connection from="154844479" to="108733421" fromLane="0" toLane="0" via=":1246731574_2_0" dir="s" state="M"/>
- <connection from="154844479" to="154844467" fromLane="0" toLane="0" via=":1246731574_3_0" dir="l" state="m"/>
- <connection from="154844481" to="154844477" fromLane="0" toLane="0" via=":1168929549_1_0" tl="1168929549" linkIndex="1" dir="s" state="o"/>
- <connection from="154844482" to="160587538#6" fromLane="0" toLane="0" via=":1168929558_3_0" tl="1168929558" linkIndex="3" dir="r" state="o"/>
- <connection from="154844482" to="154844486" fromLane="0" toLane="0" via=":1168929558_4_0" tl="1168929558" linkIndex="4" dir="s" state="o"/>
- <connection from="154844482" to="-160587538#5" fromLane="0" toLane="1" via=":1168929558_5_0" tl="1168929558" linkIndex="5" dir="l" state="o"/>
- <connection from="154844483#0" to="111863096#3" fromLane="0" toLane="0" via=":951739557_0_0" dir="r" state="M"/>
- <connection from="154844483#0" to="154844483#1" fromLane="0" toLane="0" via=":951739557_1_0" dir="s" state="M"/>
- <connection from="154844483#0" to="154844483#1" fromLane="1" toLane="1" via=":951739557_2_0" dir="s" state="M"/>
- <connection from="154844483#1" to="154844483#2" fromLane="0" toLane="0" via=":951739718_2_0" dir="s" state="M"/>
- <connection from="154844483#1" to="154844483#2" fromLane="1" toLane="1" via=":951739718_3_0" dir="s" state="M"/>
- <connection from="154844483#1" to="103851602#2" fromLane="1" toLane="0" via=":951739718_4_0" dir="l" state="M"/>
- <connection from="154844483#2" to="154844491#0" fromLane="0" toLane="0" via=":1168929269_2_0" dir="s" state="M"/>
- <connection from="154844483#2" to="154844491#0" fromLane="1" toLane="1" via=":1168929269_3_0" dir="s" state="M"/>
- <connection from="154844483#2" to="154844482" fromLane="1" toLane="0" via=":1168929269_4_0" dir="l" state="M"/>
- <connection from="154844484#0" to="38319548#15" fromLane="0" toLane="0" via=":1168929546_6_0" dir="r" state="M"/>
- <connection from="154844484#0" to="154844484#1" fromLane="0" toLane="0" via=":1168929546_7_0" dir="s" state="M"/>
- <connection from="154844484#0" to="-38319548#14" fromLane="0" toLane="0" via=":1168929546_8_0" dir="l" state="M"/>
- <connection from="154844484#1" to="154844463" fromLane="0" toLane="0" via=":1168929585_1_0" dir="s" state="M"/>
- <connection from="154844485#0" to="108733429" fromLane="0" toLane="0" via=":1246731647_0_0" dir="s" state="M"/>
- <connection from="154844485#0" to="154844485#1" fromLane="0" toLane="0" via=":1246731647_1_0" dir="s" state="m"/>
- <connection from="154844485#0" to="154844485#1" fromLane="1" toLane="1" via=":1246731647_2_0" dir="s" state="M"/>
- <connection from="154844485#1" to="154844461#0" fromLane="0" toLane="0" via=":1168929562_0_0" dir="r" state="M"/>
- <connection from="154844485#1" to="166603397#0" fromLane="0" toLane="0" via=":1168929562_1_0" dir="s" state="M"/>
- <connection from="154844485#1" to="166603397#0" fromLane="1" toLane="1" via=":1168929562_2_0" dir="s" state="M"/>
- <connection from="154844486" to="154844461#0" fromLane="0" toLane="0" via=":1168929562_3_0" dir="s" state="m"/>
- <connection from="154844486" to="166603397#0" fromLane="0" toLane="1" via=":1168929562_4_0" dir="l" state="m"/>
- <connection from="154844487#0" to="-149868584#2" fromLane="0" toLane="0" via=":1168929657_3_0" tl="1168929657" linkIndex="3" dir="r" state="o"/>
- <connection from="154844487#0" to="154844487#1" fromLane="0" toLane="0" via=":1168929657_4_0" tl="1168929657" linkIndex="4" dir="s" state="o"/>
- <connection from="154844487#0" to="149868584#3" fromLane="0" toLane="1" via=":1168929657_5_0" tl="1168929657" linkIndex="5" dir="l" state="o"/>
- <connection from="154844487#1" to="154844462" fromLane="0" toLane="0" via=":1168929324_2_0" dir="s" state="m"/>
- <connection from="154844487#1" to="103851602#0" fromLane="0" toLane="0" via=":1168929324_3_0" dir="l" state="m"/>
- <connection from="154844489#0" to="108733430" fromLane="0" toLane="0" via=":1246731482_0_0" dir="s" state="M"/>
- <connection from="154844489#0" to="154844489#1" fromLane="0" toLane="0" via=":1246731482_1_0" dir="s" state="m"/>
- <connection from="154844489#1" to="-38319548#11" fromLane="0" toLane="0" via=":1168929659_3_0" dir="r" state="M"/>
- <connection from="154844489#1" to="154844489#2" fromLane="0" toLane="0" via=":1168929659_4_0" dir="s" state="M"/>
- <connection from="154844489#1" to="38319548#12" fromLane="0" toLane="0" via=":1168929659_5_0" dir="l" state="M"/>
- <connection from="154844489#2" to="154844491#0" fromLane="0" toLane="0" via=":1168929269_0_0" dir="r" state="m"/>
- <connection from="154844489#2" to="154844482" fromLane="0" toLane="0" via=":1168929269_1_0" dir="s" state="m"/>
- <connection from="154844491#0" to="-108733430" fromLane="0" toLane="0" via=":1246731457_2_0" dir="r" state="M"/>
- <connection from="154844491#0" to="154844491#1" fromLane="0" toLane="0" via=":1246731457_3_0" dir="s" state="M"/>
- <connection from="154844491#0" to="154844491#1" fromLane="1" toLane="1" via=":1246731457_4_0" dir="s" state="M"/>
- <connection from="154844491#1" to="154844500#0" fromLane="0" toLane="0" via=":1669480281_3_0" dir="r" state="M"/>
- <connection from="154844491#1" to="154844474#0" fromLane="0" toLane="0" via=":1669480281_4_0" dir="s" state="M"/>
- <connection from="154844491#1" to="154844474#0" fromLane="1" toLane="1" via=":1669480281_5_0" dir="s" state="M"/>
- <connection from="154844491#1" to="-160587542" fromLane="1" toLane="1" via=":1669480281_6_0" dir="l" state="M"/>
- <connection from="154844500#0" to="154844500#1" fromLane="0" toLane="0" via=":441266880_6_0" tl="441266880" linkIndex="6" dir="s" state="o"/>
- <connection from="154844500#0" to="101272435#5" fromLane="0" toLane="0" via=":441266880_7_0" tl="441266880" linkIndex="7" dir="l" state="o"/>
- <connection from="154844500#0" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_8_0" tl="441266880" linkIndex="8" dir="t" state="o"/>
- <connection from="154844500#1" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_12_0" dir="r" state="M"/>
- <connection from="154844500#1" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_13_0" dir="s" state="M"/>
- <connection from="154844500#1" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_14_0" dir="l" state="m"/>
- <connection from="154844500#1" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_15_0" dir="t" state="m"/>
- <connection from="154844500#2" to="154844500#3" fromLane="0" toLane="0" via=":441266854_2_0" tl="441266854" linkIndex="2" dir="s" state="o"/>
- <connection from="154844500#2" to="-154844500#2" fromLane="0" toLane="0" via=":441266854_3_0" tl="441266854" linkIndex="3" dir="t" state="o"/>
- <connection from="154844500#3" to="-154844500#3" fromLane="0" toLane="0" via=":248913154_0_0" tl="248913154" linkIndex="0" dir="t" state="o"/>
- <connection from="154844503" to="-160587538#7" fromLane="0" toLane="0" via=":1726394726_13_0" tl="1726394726" linkIndex="13" dir="r" state="o"/>
- <connection from="154844503" to="160587542" fromLane="0" toLane="0" via=":1726394726_14_0" tl="1726394726" linkIndex="14" dir="s" state="o"/>
- <connection from="154844503" to="160587542" fromLane="1" toLane="1" via=":1726394726_15_0" tl="1726394726" linkIndex="15" dir="s" state="o"/>
- <connection from="154844503" to="160587537#0" fromLane="1" toLane="1" via=":1726394726_16_0" tl="1726394726" linkIndex="16" dir="l" state="o"/>
- <connection from="154844503" to="-154844503" fromLane="1" toLane="1" via=":1726394726_17_0" tl="1726394726" linkIndex="17" dir="t" state="o"/>
- <connection from="160584980" to="160584981" fromLane="0" toLane="0" via=":1726380187_0_0" dir="s" state="M"/>
- <connection from="160584980" to="160584982#0" fromLane="0" toLane="0" via=":1726380187_1_0" dir="l" state="m"/>
- <connection from="160584981" to="37973569#8" fromLane="0" toLane="0" via=":1726380184_0_0" dir="r" state="M"/>
- <connection from="160584981" to="-160584981" fromLane="0" toLane="0" via=":1726380184_1_0" dir="t" state="m"/>
- <connection from="160584982#0" to="81394192#10" fromLane="0" toLane="0" via=":1726380193_0_0" dir="r" state="M"/>
- <connection from="160584982#0" to="160584982#1" fromLane="0" toLane="0" via=":1726380193_1_0" dir="s" state="M"/>
- <connection from="160584982#1" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_2_0" dir="r" state="m"/>
- <connection from="160584982#1" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_3_0" dir="l" state="m"/>
- <connection from="160584984" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_0_0" dir="r" state="m"/>
- <connection from="160584984" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_1_0" dir="l" state="m"/>
- <connection from="160584984" to="-160584984" fromLane="0" toLane="0" via=":1224080669_2_0" dir="t" state="m"/>
- <connection from="160587537#0" to="38319548#5" fromLane="0" toLane="0" via=":1726394727_9_0" dir="r" state="M"/>
- <connection from="160587537#0" to="160587537#1" fromLane="0" toLane="0" via=":1726394727_10_0" dir="s" state="M"/>
- <connection from="160587537#0" to="160587537#1" fromLane="1" toLane="1" via=":1726394727_11_0" dir="s" state="M"/>
- <connection from="160587537#0" to="-38319548#4" fromLane="1" toLane="0" via=":1726394727_12_0" dir="l" state="m"/>
- <connection from="160587537#0" to="-160587537#0" fromLane="1" toLane="1" via=":1726394727_13_0" dir="t" state="m"/>
- <connection from="160587537#1" to="172498387#3" fromLane="0" toLane="0" via=":1726394728_4_0" dir="r" state="M"/>
- <connection from="160587537#1" to="160587537#2" fromLane="0" toLane="0" via=":1726394728_5_0" dir="s" state="M"/>
- <connection from="160587537#1" to="160587537#2" fromLane="1" toLane="1" via=":1726394728_6_0" dir="s" state="M"/>
- <connection from="160587537#1" to="-160587537#1" fromLane="1" toLane="1" via=":1726394728_7_0" dir="t" state="m"/>
- <connection from="160587537#2" to="149408824#1" fromLane="0" toLane="0" via=":1726394729_3_0" dir="r" state="m"/>
- <connection from="160587537#2" to="149408824#1" fromLane="1" toLane="1" via=":1726394729_4_0" dir="r" state="m"/>
- <connection from="160587537#2" to="160587537#3" fromLane="1" toLane="0" via=":1726394729_5_0" dir="s" state="M"/>
- <connection from="160587537#2" to="-160587537#2" fromLane="1" toLane="1" via=":1726394729_6_0" dir="t" state="m"/>
- <connection from="160587537#3" to="-160587537#3" fromLane="1" toLane="1" via=":13929752_0_0" tl="13929752" linkIndex="0" dir="t" state="o"/>
- <connection from="160587538#0" to="197955309#3" fromLane="0" toLane="0" via=":2081499950_9_0" dir="r" state="M"/>
- <connection from="160587538#0" to="160587538#1" fromLane="0" toLane="0" via=":2081499950_10_0" dir="s" state="M"/>
- <connection from="160587538#0" to="160587538#1" fromLane="1" toLane="1" via=":2081499950_11_0" dir="s" state="M"/>
- <connection from="160587538#0" to="-197955309#2" fromLane="1" toLane="0" via=":2081499950_12_0" dir="l" state="m"/>
- <connection from="160587538#0" to="-160587538#0" fromLane="1" toLane="1" via=":2081499950_13_0" dir="t" state="m"/>
- <connection from="160587538#1" to="154844478" fromLane="0" toLane="0" via=":1168929634_3_0" tl="1168929634" linkIndex="3" dir="r" state="o"/>
- <connection from="160587538#1" to="160587538#2" fromLane="1" toLane="0" via=":1168929634_4_0" tl="1168929634" linkIndex="4" dir="s" state="o"/>
- <connection from="160587538#1" to="-160587538#1" fromLane="1" toLane="1" via=":1168929634_5_0" tl="1168929634" linkIndex="5" dir="t" state="o"/>
- <connection from="160587538#2" to="111863096#2" fromLane="0" toLane="0" via=":1726394723_3_0" dir="r" state="m"/>
- <connection from="160587538#2" to="160587538#3" fromLane="1" toLane="0" via=":1726394723_4_0" dir="s" state="M"/>
- <connection from="160587538#2" to="-160587538#2" fromLane="1" toLane="1" via=":1726394723_5_0" dir="t" state="m"/>
- <connection from="160587538#3" to="-149868584#3" fromLane="0" toLane="0" via=":1726394724_9_0" tl="1726394724" linkIndex="9" dir="r" state="o"/>
- <connection from="160587538#3" to="160587538#4" fromLane="1" toLane="1" via=":1726394724_10_0" tl="1726394724" linkIndex="10" dir="s" state="o"/>
- <connection from="160587538#3" to="149868584#4" fromLane="1" toLane="1" via=":1726394724_11_0" tl="1726394724" linkIndex="11" dir="l" state="o"/>
- <connection from="160587538#3" to="-160587538#3" fromLane="1" toLane="1" via=":1726394724_12_0" tl="1726394724" linkIndex="12" dir="t" state="o"/>
- <connection from="160587538#4" to="160587538#5" fromLane="0" toLane="1" via=":1726394725_6_0" dir="s" state="m"/>
- <connection from="160587538#4" to="103851602#3" fromLane="1" toLane="0" via=":1726394725_7_0" dir="l" state="m"/>
- <connection from="160587538#4" to="-160587538#4" fromLane="1" toLane="1" via=":1726394725_8_0" dir="t" state="m"/>
- <connection from="160587538#5" to="160587538#6" fromLane="0" toLane="1" via=":1168929558_6_0" tl="1168929558" linkIndex="6" dir="s" state="o"/>
- <connection from="160587538#5" to="154844486" fromLane="1" toLane="0" via=":1168929558_7_0" tl="1168929558" linkIndex="7" dir="l" state="o"/>
- <connection from="160587538#5" to="-160587538#5" fromLane="1" toLane="1" via=":1168929558_8_0" tl="1168929558" linkIndex="8" dir="t" state="o"/>
- <connection from="160587538#6" to="160587538#7" fromLane="0" toLane="0" via=":1913728534_3_0" tl="1913728534" linkIndex="3" dir="s" state="o"/>
- <connection from="160587538#6" to="160587538#7" fromLane="1" toLane="1" via=":1913728534_4_0" tl="1913728534" linkIndex="4" dir="s" state="o"/>
- <connection from="160587538#6" to="-160587538#6" fromLane="1" toLane="1" via=":1913728534_5_0" tl="1913728534" linkIndex="5" dir="t" state="o"/>
- <connection from="160587538#7" to="160587542" fromLane="0" toLane="0" via=":1726394726_9_0" tl="1726394726" linkIndex="9" dir="r" state="o"/>
- <connection from="160587538#7" to="160587537#0" fromLane="1" toLane="1" via=":1726394726_10_0" tl="1726394726" linkIndex="10" dir="s" state="o"/>
- <connection from="160587538#7" to="-154844503" fromLane="1" toLane="1" via=":1726394726_11_0" tl="1726394726" linkIndex="11" dir="l" state="o"/>
- <connection from="160587538#7" to="-160587538#7" fromLane="1" toLane="1" via=":1726394726_12_0" tl="1726394726" linkIndex="12" dir="t" state="o"/>
- <connection from="160587542" to="154844500#0" fromLane="0" toLane="0" via=":1669480281_7_0" dir="s" state="m"/>
- <connection from="160587542" to="154844474#0" fromLane="1" toLane="1" via=":1669480281_8_0" dir="l" state="m"/>
- <connection from="160587542" to="-160587542" fromLane="1" toLane="1" via=":1669480281_9_0" dir="t" state="m"/>
- <connection from="160587552#0" to="101272424#0" fromLane="0" toLane="0" via=":1168929542_0_0" dir="s" state="M"/>
- <connection from="160587552#0" to="160587552#1" fromLane="0" toLane="0" via=":1168929542_1_0" dir="s" state="M"/>
- <connection from="160587552#1" to="154500693#0" fromLane="0" toLane="0" via=":1168929349_0_0" dir="r" state="m"/>
- <connection from="160587552#1" to="37638426#0" fromLane="0" toLane="0" via=":1168929349_1_0" dir="s" state="m"/>
- <connection from="166576459" to="-166576466#1" fromLane="0" toLane="0" via=":1780219374_3_0" dir="r" state="="/>
- <connection from="166576459" to="166576466#2" fromLane="0" toLane="0" via=":1780219374_4_0" dir="l" state="="/>
- <connection from="166576459" to="-166576459" fromLane="0" toLane="0" via=":1780219374_5_0" dir="t" state="="/>
- <connection from="166576461#0" to="166576461#1" fromLane="0" toLane="0" via=":1780219366_6_0" dir="s" state="="/>
- <connection from="166576461#0" to="166576464#0" fromLane="0" toLane="0" via=":1780219366_7_0" dir="l" state="="/>
- <connection from="166576461#0" to="-166576461#0" fromLane="0" toLane="0" via=":1780219366_8_0" dir="t" state="="/>
- <connection from="166576461#1" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_0_0" dir="r" state="m"/>
- <connection from="166576461#1" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_1_0" dir="l" state="m"/>
- <connection from="166576461#1" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_2_0" dir="t" state="m"/>
- <connection from="166576462#0" to="42976410#3" fromLane="0" toLane="0" via=":1780219377_0_0" dir="r" state="m"/>
- <connection from="166576462#0" to="166576462#1" fromLane="0" toLane="0" via=":1780219377_1_0" dir="s" state="m"/>
- <connection from="166576462#0" to="-166576462#0" fromLane="0" toLane="0" via=":1780219377_2_0" dir="t" state="m"/>
- <connection from="166576462#1" to="42976405#3" fromLane="0" toLane="0" via=":1780219361_0_0" dir="r" state="m"/>
- <connection from="166576462#1" to="166576462#2" fromLane="0" toLane="0" via=":1780219361_1_0" dir="s" state="m"/>
- <connection from="166576462#1" to="-166576462#1" fromLane="0" toLane="0" via=":1780219361_2_0" dir="t" state="m"/>
- <connection from="166576462#2" to="166576462#3" fromLane="0" toLane="0" via=":1780219359_4_0" dir="s" state="m"/>
- <connection from="166576462#2" to="133960539#2" fromLane="0" toLane="1" via=":1780219359_5_0" dir="l" state="m"/>
- <connection from="166576462#2" to="-166576462#2" fromLane="0" toLane="0" via=":1780219359_6_0" dir="t" state="m"/>
- <connection from="166576462#3" to="37973569#3" fromLane="0" toLane="0" via=":1780219341_0_0" dir="r" state="m"/>
- <connection from="166576462#3" to="166576462#4" fromLane="0" toLane="0" via=":1780219341_1_0" dir="s" state="m"/>
- <connection from="166576462#3" to="-166576462#3" fromLane="0" toLane="0" via=":1780219341_2_0" dir="t" state="m"/>
- <connection from="166576462#4" to="37973572#1" fromLane="0" toLane="0" via=":1780219353_0_0" dir="r" state="m"/>
- <connection from="166576462#4" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_1_0" dir="s" state="m"/>
- <connection from="166576462#4" to="-37973572#0" fromLane="0" toLane="1" via=":1780219353_2_0" dir="l" state="m"/>
- <connection from="166576462#4" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_3_0" dir="t" state="m"/>
- <connection from="166576462#5" to="166576462#6" fromLane="0" toLane="0" via=":1780219360_0_0" dir="s" state="m"/>
- <connection from="166576462#5" to="37973568#5" fromLane="0" toLane="0" via=":1780219360_1_0" dir="l" state="m"/>
- <connection from="166576462#5" to="-166576462#5" fromLane="0" toLane="0" via=":1780219360_2_0" dir="t" state="m"/>
- <connection from="166576462#6" to="166576462#7" fromLane="0" toLane="0" via=":1780219369_0_0" dir="s" state="="/>
- <connection from="166576462#6" to="166576468#0" fromLane="0" toLane="0" via=":1780219369_1_0" dir="l" state="="/>
- <connection from="166576462#6" to="-166576462#6" fromLane="0" toLane="0" via=":1780219369_2_0" dir="t" state="="/>
- <connection from="166576462#7" to="166576466#0" fromLane="0" toLane="0" via=":1780219335_0_0" dir="r" state="="/>
- <connection from="166576462#7" to="166576462#8" fromLane="0" toLane="0" via=":1780219335_1_0" dir="s" state="="/>
- <connection from="166576462#7" to="-166576462#7" fromLane="0" toLane="0" via=":1780219335_2_0" dir="t" state="="/>
- <connection from="166576462#8" to="-166576463" fromLane="0" toLane="0" via=":1780219348_3_0" dir="r" state="="/>
- <connection from="166576462#8" to="166576462#9" fromLane="0" toLane="0" via=":1780219348_4_0" dir="s" state="="/>
- <connection from="166576462#8" to="-166576462#8" fromLane="0" toLane="0" via=":1780219348_5_0" dir="t" state="="/>
- <connection from="166576462#9" to="-166576464#0" fromLane="0" toLane="0" via=":1780219373_6_0" dir="r" state="="/>
- <connection from="166576462#9" to="166576464#1" fromLane="0" toLane="0" via=":1780219373_7_0" dir="l" state="="/>
- <connection from="166576462#9" to="-166576462#9" fromLane="0" toLane="0" via=":1780219373_8_0" dir="t" state="="/>
- <connection from="166576463" to="166576462#9" fromLane="0" toLane="0" via=":1780219348_0_0" dir="s" state="="/>
- <connection from="166576463" to="-166576462#8" fromLane="0" toLane="0" via=":1780219348_1_0" dir="l" state="="/>
- <connection from="166576463" to="-166576463" fromLane="0" toLane="0" via=":1780219348_2_0" dir="t" state="="/>
- <connection from="166576464#0" to="166576464#1" fromLane="0" toLane="0" via=":1780219373_3_0" dir="s" state="="/>
- <connection from="166576464#0" to="-166576462#9" fromLane="0" toLane="0" via=":1780219373_4_0" dir="l" state="="/>
- <connection from="166576464#0" to="-166576464#0" fromLane="0" toLane="0" via=":1780219373_5_0" dir="t" state="="/>
- <connection from="166576464#1" to="42976406#3" fromLane="0" toLane="0" via=":1780219331_8_0" dir="r" state="m"/>
- <connection from="166576464#1" to="166576464#2" fromLane="0" toLane="0" via=":1780219331_9_0" dir="s" state="m"/>
- <connection from="166576464#1" to="-166576464#1" fromLane="0" toLane="0" via=":1780219331_10_0" dir="t" state="m"/>
- <connection from="166576464#2" to="166576464#3" fromLane="0" toLane="0" via=":1780219342_8_0" dir="s" state="m"/>
- <connection from="166576464#2" to="154500693#1" fromLane="0" toLane="2" via=":1780219342_9_0" dir="l" state="m"/>
- <connection from="166576464#2" to="-166576464#2" fromLane="0" toLane="0" via=":1780219342_10_0" dir="t" state="m"/>
- <connection from="166576464#3" to="166576464#4" fromLane="0" toLane="0" via=":1780219363_6_0" dir="s" state="m"/>
- <connection from="166576464#3" to="101272424#1" fromLane="0" toLane="0" via=":1780219363_7_0" dir="l" state="m"/>
- <connection from="166576464#3" to="-166576464#3" fromLane="0" toLane="0" via=":1780219363_8_0" dir="t" state="m"/>
- <connection from="166576464#4" to="38319550#11" fromLane="0" toLane="0" via=":1780219371_6_0" dir="r" state="M"/>
- <connection from="166576464#4" to="-38319550#10" fromLane="0" toLane="0" via=":1780219371_7_0" dir="l" state="M"/>
- <connection from="166576464#4" to="-166576464#4" fromLane="0" toLane="0" via=":1780219371_8_0" dir="t" state="m"/>
- <connection from="166576466#0" to="166576466#1" fromLane="0" toLane="0" via=":1780219344_0_0" dir="s" state="="/>
- <connection from="166576466#0" to="166576463" fromLane="0" toLane="0" via=":1780219344_1_0" dir="l" state="="/>
- <connection from="166576466#0" to="-166576466#0" fromLane="0" toLane="0" via=":1780219344_2_0" dir="t" state="="/>
- <connection from="166576466#1" to="166576466#2" fromLane="0" toLane="0" via=":1780219374_0_0" dir="s" state="="/>
- <connection from="166576466#1" to="-166576459" fromLane="0" toLane="0" via=":1780219374_1_0" dir="l" state="="/>
- <connection from="166576466#1" to="-166576466#1" fromLane="0" toLane="0" via=":1780219374_2_0" dir="t" state="="/>
- <connection from="166576466#2" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_0_0" dir="r" state="m"/>
- <connection from="166576466#2" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_1_0" dir="l" state="m"/>
- <connection from="166576466#2" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_2_0" dir="t" state="m"/>
- <connection from="166576468#0" to="42976406#2" fromLane="0" toLane="0" via=":1780219343_8_0" dir="r" state="m"/>
- <connection from="166576468#0" to="166576468#1" fromLane="0" toLane="0" via=":1780219343_9_0" dir="s" state="m"/>
- <connection from="166576468#0" to="-166576468#0" fromLane="0" toLane="0" via=":1780219343_10_0" dir="t" state="m"/>
- <connection from="166576468#1" to="166576468#2" fromLane="0" toLane="0" via=":1780219352_8_0" dir="s" state="m"/>
- <connection from="166576468#1" to="154500693#2" fromLane="0" toLane="2" via=":1780219352_9_0" dir="l" state="m"/>
- <connection from="166576468#1" to="-166576468#1" fromLane="0" toLane="0" via=":1780219352_10_0" dir="t" state="m"/>
- <connection from="166576468#2" to="166576468#3" fromLane="0" toLane="0" via=":1780219362_6_0" dir="s" state="m"/>
- <connection from="166576468#2" to="101272424#3" fromLane="0" toLane="0" via=":1780219362_7_0" dir="l" state="m"/>
- <connection from="166576468#2" to="-166576468#2" fromLane="0" toLane="0" via=":1780219362_8_0" dir="t" state="m"/>
- <connection from="166576468#3" to="38319550#9" fromLane="0" toLane="0" via=":1780219332_6_0" dir="r" state="M"/>
- <connection from="166576468#3" to="-38319550#8" fromLane="0" toLane="0" via=":1780219332_7_0" dir="l" state="M"/>
- <connection from="166576468#3" to="-166576468#3" fromLane="0" toLane="0" via=":1780219332_8_0" dir="t" state="m"/>
- <connection from="166602674#0" to="-108733425" fromLane="0" toLane="0" via=":1246731466_2_0" dir="r" state="M"/>
- <connection from="166602674#0" to="166602674#1" fromLane="0" toLane="0" via=":1246731466_3_0" dir="s" state="M"/>
- <connection from="166602674#0" to="166602674#1" fromLane="1" toLane="1" via=":1246731466_4_0" dir="s" state="M"/>
- <connection from="166602674#1" to="-197955309#1" fromLane="0" toLane="0" via=":2081499951_0_0" dir="r" state="M"/>
- <connection from="166602674#1" to="166602674#2" fromLane="0" toLane="0" via=":2081499951_1_0" dir="s" state="M"/>
- <connection from="166602674#1" to="166602674#2" fromLane="1" toLane="1" via=":2081499951_2_0" dir="s" state="M"/>
- <connection from="166602674#1" to="197955309#2" fromLane="1" toLane="0" via=":2081499951_3_0" dir="l" state="M"/>
- <connection from="166603397#0" to="103851602#4" fromLane="0" toLane="0" via=":951739776_0_0" dir="r" state="M"/>
- <connection from="166603397#0" to="166603397#1" fromLane="0" toLane="0" via=":951739776_1_0" dir="s" state="M"/>
- <connection from="166603397#0" to="166603397#1" fromLane="1" toLane="1" via=":951739776_2_0" dir="s" state="M"/>
- <connection from="166603397#1" to="166603397#2" fromLane="0" toLane="0" via=":951739443_0_0" dir="s" state="M"/>
- <connection from="166603397#1" to="166603397#2" fromLane="1" toLane="1" via=":951739443_1_0" dir="s" state="M"/>
- <connection from="166603397#1" to="111863096#1" fromLane="1" toLane="0" via=":951739443_2_0" dir="l" state="M"/>
- <connection from="166603397#2" to="166602674#0" fromLane="0" toLane="0" via=":1168929382_0_0" dir="s" state="M"/>
- <connection from="166603397#2" to="166602674#0" fromLane="1" toLane="1" via=":1168929382_1_0" dir="s" state="M"/>
- <connection from="166603397#2" to="101272431" fromLane="1" toLane="0" via=":1168929382_2_0" dir="l" state="M"/>
- <connection from="166625256#0" to="166625256#1" fromLane="0" toLane="0" via=":1244292210_0_0" dir="l" state="M"/>
- <connection from="166625256#0" to="-166625256#0" fromLane="0" toLane="0" via=":1244292210_1_0" dir="t" state="m"/>
- <connection from="166625256#1" to="166625256#0" fromLane="0" toLane="0" via=":1244292219_0_0" dir="l" state="M"/>
- <connection from="166625256#1" to="-166625256#1" fromLane="0" toLane="0" via=":1244292219_1_0" dir="t" state="m"/>
- <connection from="166625259" to="-166625259" fromLane="0" toLane="0" via=":1780623649_0_0" dir="t" state="M"/>
- <connection from="166728377#0" to="149422199#2" fromLane="0" toLane="0" via=":255227482_20_0" dir="s" state="m"/>
- <connection from="166728377#0" to="166728377#1" fromLane="0" toLane="0" via=":255227482_21_0" dir="L" state="m"/>
- <connection from="166728377#0" to="149422210#0" fromLane="0" toLane="0" via=":255227482_22_0" dir="L" state="m"/>
- <connection from="166728377#0" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_23_0" dir="l" state="m"/>
- <connection from="166728377#0" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_24_0" dir="t" state="m"/>
- <connection from="166728377#1" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_10_0" dir="s" state="m"/>
- <connection from="166728377#1" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_11_0" dir="L" state="m"/>
- <connection from="166728377#1" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_12_0" dir="l" state="m"/>
- <connection from="166728377#1" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_13_0" dir="L" state="m"/>
- <connection from="166728377#1" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_14_0" dir="t" state="m"/>
- <connection from="166728377#2" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_0_0" dir="r" state="m"/>
- <connection from="166728377#2" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_1_0" dir="s" state="m"/>
- <connection from="166728377#2" to="166728377#0" fromLane="0" toLane="0" via=":255227480_2_0" dir="L" state="m"/>
- <connection from="166728377#2" to="149422199#1" fromLane="0" toLane="0" via=":255227480_3_0" dir="L" state="m"/>
- <connection from="166728377#2" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_4_0" dir="l" state="m"/>
- <connection from="166728377#2" to="23566901#1" fromLane="0" toLane="0" via=":255227480_5_0" dir="t" state="m"/>
- <connection from="170088033" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_2_0" dir="s" state="m"/>
- <connection from="170088033" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_3_0" dir="l" state="m"/>
- <connection from="170590352" to="154844484#0" fromLane="0" toLane="0" via=":1168929385_0_0" dir="r" state="M"/>
- <connection from="170590352" to="154844483#0" fromLane="0" toLane="0" via=":1168929385_1_0" dir="s" state="M"/>
- <connection from="170590352" to="154844483#0" fromLane="1" toLane="1" via=":1168929385_2_0" dir="s" state="M"/>
- <connection from="170590354#0" to="23262356#1" fromLane="0" toLane="0" via=":2265767394_6_0" dir="r" state="M"/>
- <connection from="170590354#0" to="170590354#1" fromLane="0" toLane="0" via=":2265767394_7_0" dir="s" state="M"/>
- <connection from="170590354#0" to="170590354#1" fromLane="1" toLane="1" via=":2265767394_8_0" dir="s" state="M"/>
- <connection from="170590354#0" to="-23262356#0" fromLane="1" toLane="0" via=":2265767394_9_0" dir="l" state="M"/>
- <connection from="170590354#1" to="-149422193#0" fromLane="0" toLane="0" via=":2265767389_6_0" dir="r" state="M"/>
- <connection from="170590354#1" to="170590354#2" fromLane="0" toLane="0" via=":2265767389_7_0" dir="s" state="M"/>
- <connection from="170590354#1" to="170590354#2" fromLane="1" toLane="1" via=":2265767389_8_0" dir="s" state="M"/>
- <connection from="170590354#1" to="149422193#1" fromLane="1" toLane="0" via=":2265767389_9_0" dir="l" state="M"/>
- <connection from="170594822#0" to="24573947#1" fromLane="0" toLane="0" via=":2265767392_3_0" dir="r" state="M"/>
- <connection from="170594822#0" to="170594822#1" fromLane="0" toLane="0" via=":2265767392_4_0" dir="s" state="M"/>
- <connection from="170594822#0" to="170594822#1" fromLane="1" toLane="1" via=":2265767392_5_0" dir="s" state="M"/>
- <connection from="170594822#0" to="-24573947#0" fromLane="1" toLane="0" via=":2265767392_6_0" dir="l" state="M"/>
- <connection from="170594822#1" to="37772597#1" fromLane="0" toLane="0" via=":2265767395_3_0" dir="r" state="M"/>
- <connection from="170594822#1" to="170594822#2" fromLane="0" toLane="0" via=":2265767395_4_0" dir="s" state="M"/>
- <connection from="170594822#1" to="170594822#2" fromLane="1" toLane="1" via=":2265767395_5_0" dir="s" state="M"/>
- <connection from="170594822#1" to="-37772597#0" fromLane="1" toLane="0" via=":2265767395_6_0" dir="l" state="M"/>
- <connection from="170594822#2" to="108733424" fromLane="0" toLane="0" via=":1246731470_0_0" dir="s" state="M"/>
- <connection from="170594822#2" to="170594822#3" fromLane="0" toLane="0" via=":1246731470_1_0" dir="s" state="m"/>
- <connection from="170594822#2" to="170594822#3" fromLane="1" toLane="1" via=":1246731470_2_0" dir="s" state="M"/>
- <connection from="170594822#3" to="154844462" fromLane="0" toLane="0" via=":1168929324_0_0" dir="r" state="M"/>
- <connection from="170594822#3" to="103851602#0" fromLane="1" toLane="0" via=":1168929324_1_0" dir="s" state="M"/>
- <connection from="172498367" to="81523343" fromLane="0" toLane="0" via=":428097664_1_0" dir="l" state="m"/>
- <connection from="172498380#0" to="81394162#0" fromLane="0" toLane="0" via=":452446340_0_0" dir="r" state="M"/>
- <connection from="172498380#0" to="81394162#0" fromLane="0" toLane="1" via=":452446340_1_0" dir="r" state="M"/>
- <connection from="172498380#0" to="172498380#1" fromLane="0" toLane="0" via=":452446340_2_0" dir="s" state="M"/>
- <connection from="172498380#1" to="172498380#2" fromLane="0" toLane="0" via=":452446345_1_0" dir="s" state="m"/>
- <connection from="172498380#2" to="81523332#0" fromLane="0" toLane="0" via=":435668516_2_0" dir="r" state="m"/>
- <connection from="172498380#2" to="37449253#5" fromLane="0" toLane="0" via=":435668516_3_0" dir="s" state="m"/>
- <connection from="172498387#0" to="58770725#0" fromLane="0" toLane="0" via=":435668521_0_0" dir="r" state="M"/>
- <connection from="172498387#0" to="172498387#1" fromLane="0" toLane="0" via=":435668521_1_0" dir="s" state="M"/>
- <connection from="172498387#1" to="37771900#1" fromLane="0" toLane="0" via=":443089060_2_0" tl="443089060" linkIndex="2" dir="r" state="o"/>
- <connection from="172498387#1" to="172498387#2" fromLane="0" toLane="0" via=":443089060_3_0" tl="443089060" linkIndex="3" dir="s" state="o"/>
- <connection from="172498387#2" to="-160587537#1" fromLane="0" toLane="0" via=":1726394728_8_0" dir="r" state="m"/>
- <connection from="172498387#2" to="172498387#3" fromLane="0" toLane="0" via=":1726394728_9_0" dir="s" state="m"/>
- <connection from="172498387#2" to="160587537#2" fromLane="0" toLane="1" via=":1726394728_10_0" dir="l" state="m"/>
- <connection from="172498387#3" to="-81096822#0" fromLane="0" toLane="0" via=":1669480292_6_0" dir="r" state="M"/>
- <connection from="172498387#3" to="172498387#4" fromLane="0" toLane="0" via=":1669480292_7_0" dir="s" state="M"/>
- <connection from="172498387#3" to="81096822#1" fromLane="0" toLane="0" via=":1669480292_8_0" dir="l" state="M"/>
- <connection from="172498387#4" to="172498387#5" fromLane="0" toLane="0" via=":441266884_2_0" tl="441266884" linkIndex="2" dir="s" state="o"/>
- <connection from="172498387#4" to="101272435#7" fromLane="0" toLane="0" via=":441266884_3_0" tl="441266884" linkIndex="3" dir="l" state="o"/>
- <connection from="172498388" to="144874010#0" fromLane="0" toLane="0" via=":950094380_2_0" dir="s" state="M"/>
- <connection from="172498388" to="144874010#0" fromLane="1" toLane="1" via=":950094380_3_0" dir="s" state="M"/>
- <connection from="172498388" to="144874012#0" fromLane="1" toLane="0" via=":950094380_4_0" dir="l" state="M"/>
- <connection from="179692877#0" to="179692877#1" fromLane="0" toLane="0" via=":1168929398_2_0" tl="1168929398" linkIndex="2" dir="s" state="o"/>
- <connection from="179692877#0" to="-179692877#0" fromLane="0" toLane="0" via=":1168929398_3_0" tl="1168929398" linkIndex="3" dir="t" state="o"/>
- <connection from="179692877#1" to="37638426#1" fromLane="0" toLane="0" via=":441236049_8_0" dir="r" state="m"/>
- <connection from="179692877#1" to="42976406#4" fromLane="0" toLane="0" via=":441236049_9_0" dir="s" state="m"/>
- <connection from="179692877#1" to="-179692877#1" fromLane="0" toLane="0" via=":441236049_10_0" dir="t" state="m"/>
- <connection from="179917801" to="-106367427#1" fromLane="0" toLane="0" via=":1903640411_0_0" dir="s" state="M"/>
- <connection from="179917803#0" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_6_0" dir="r" state="M"/>
- <connection from="179917803#0" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_7_0" dir="s" state="M"/>
- <connection from="179917803#0" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_8_0" dir="t" state="m"/>
- <connection from="179917803#1" to="37973571#1" fromLane="0" toLane="0" via=":1224074533_0_0" dir="s" state="M"/>
- <connection from="179917803#1" to="-179917803#1" fromLane="0" toLane="0" via=":1224074533_1_0" dir="t" state="m"/>
- <connection from="190048063" to="139118806" fromLane="0" toLane="0" via=":450564004_0_0" dir="l" state="m"/>
- <connection from="190048065" to="129780019#0" fromLane="0" toLane="0" via=":450564005_0_0" dir="s" state="M"/>
- <connection from="190048065" to="-190048065" fromLane="0" toLane="0" via=":450564005_1_0" dir="t" state="m"/>
- <connection from="191056427#0" to="191056427#1" fromLane="0" toLane="0" via=":2016414184_4_0" dir="s" state="="/>
- <connection from="191056427#0" to="-191056427#0" fromLane="0" toLane="0" via=":2016414184_5_0" dir="t" state="="/>
- <connection from="191056427#1" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_3_0" dir="s" state="M"/>
- <connection from="191056427#1" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_4_0" dir="l" state="m"/>
- <connection from="191056427#1" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_5_0" dir="t" state="m"/>
- <connection from="191056428" to="-191056427#0" fromLane="0" toLane="0" via=":2016414184_2_0" dir="s" state="="/>
- <connection from="191056428" to="191056427#1" fromLane="0" toLane="0" via=":2016414184_3_0" dir="r" state="="/>
- <connection from="191176261" to="191176262" fromLane="0" toLane="0" via=":2017759586_0_0" dir="r" state="M"/>
- <connection from="191176261" to="-191176261" fromLane="0" toLane="0" via=":2017759586_1_0" dir="t" state="m"/>
- <connection from="191176262" to="-191176262" fromLane="0" toLane="0" via=":1474873139_0_0" dir="t" state="M"/>
- <connection from="191176263" to="191176267" fromLane="0" toLane="0" via=":2017759596_2_0" dir="s" state="M"/>
- <connection from="191176263" to="-191176263" fromLane="0" toLane="0" via=":2017759596_3_0" dir="t" state="m"/>
- <connection from="191176264" to="191176261" fromLane="0" toLane="0" via=":2017759592_0_0" dir="s" state="M"/>
- <connection from="191176264" to="-191176264" fromLane="0" toLane="0" via=":2017759592_1_0" dir="t" state="m"/>
- <connection from="191176265" to="191176263" fromLane="0" toLane="0" via=":2017759594_4_0" dir="r" state="="/>
- <connection from="191176265" to="191176264" fromLane="0" toLane="0" via=":2017759594_5_0" dir="s" state="="/>
- <connection from="191176265" to="-191176266" fromLane="0" toLane="0" via=":2017759594_6_0" dir="s" state="="/>
- <connection from="191176265" to="-191176265" fromLane="0" toLane="0" via=":2017759594_7_0" dir="t" state="="/>
- <connection from="191176266" to="-191176265" fromLane="0" toLane="0" via=":2017759594_8_0" dir="s" state="="/>
- <connection from="191176266" to="191176263" fromLane="0" toLane="0" via=":2017759594_9_0" dir="s" state="="/>
- <connection from="191176266" to="191176264" fromLane="0" toLane="0" via=":2017759594_10_0" dir="l" state="="/>
- <connection from="191176266" to="-191176266" fromLane="0" toLane="0" via=":2017759594_11_0" dir="t" state="="/>
- <connection from="191176267" to="-191176267" fromLane="0" toLane="0" via=":2017759615_0_0" dir="t" state="M"/>
- <connection from="191176268" to="191176266" fromLane="0" toLane="0" via=":1474873133_2_0" dir="s" state="M"/>
- <connection from="191176268" to="-191176268" fromLane="0" toLane="0" via=":1474873133_3_0" dir="t" state="m"/>
- <connection from="197781817" to="-122394841#3" fromLane="0" toLane="0" via=":2079750190_0_0" dir="r" state="="/>
- <connection from="197781817" to="197794762" fromLane="0" toLane="0" via=":2079750190_1_0" dir="l" state="="/>
- <connection from="197781817" to="-197781817" fromLane="0" toLane="0" via=":2079750190_2_0" dir="t" state="="/>
- <connection from="197794762" to="-197794762" fromLane="0" toLane="0" via=":1431113444_0_0" dir="t" state="M"/>
- <connection from="197955309#0" to="151164683" fromLane="0" toLane="0" via=":1639892546_6_0" dir="r" state="="/>
- <connection from="197955309#0" to="197955309#1" fromLane="0" toLane="0" via=":1639892546_7_0" dir="s" state="="/>
- <connection from="197955309#0" to="-197955309#0" fromLane="0" toLane="0" via=":1639892546_8_0" dir="t" state="="/>
- <connection from="197955309#1" to="166602674#2" fromLane="0" toLane="0" via=":2081499951_7_0" dir="r" state="m"/>
- <connection from="197955309#1" to="197955309#2" fromLane="0" toLane="0" via=":2081499951_8_0" dir="s" state="m"/>
- <connection from="197955309#1" to="-197955309#1" fromLane="0" toLane="0" via=":2081499951_9_0" dir="t" state="m"/>
- <connection from="197955309#2" to="-160587538#0" fromLane="0" toLane="0" via=":2081499950_14_0" dir="r" state="m"/>
- <connection from="197955309#2" to="197955309#3" fromLane="0" toLane="0" via=":2081499950_15_0" dir="s" state="m"/>
- <connection from="197955309#2" to="160587538#1" fromLane="0" toLane="1" via=":2081499950_16_0" dir="l" state="m"/>
- <connection from="197955309#2" to="-197955309#2" fromLane="0" toLane="0" via=":2081499950_17_0" dir="t" state="m"/>
- <connection from="197955309#3" to="197955309#4" fromLane="0" toLane="0" via=":2081499949_7_0" dir="s" state="m"/>
- <connection from="197955309#3" to="81124943#1" fromLane="0" toLane="1" via=":2081499949_8_0" dir="l" state="m"/>
- <connection from="197955309#3" to="-197955309#3" fromLane="0" toLane="0" via=":2081499949_9_0" dir="t" state="m"/>
- <connection from="197955309#4" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_12_0" dir="r" state="M"/>
- <connection from="197955309#4" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_13_0" dir="s" state="M"/>
- <connection from="197955309#4" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_14_0" dir="l" state="m"/>
- <connection from="197955309#4" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_15_0" dir="t" state="m"/>
- <connection from="197955309#5" to="37640550#5" fromLane="0" toLane="0" via=":2081499947_2_0" dir="l" state="m"/>
- <connection from="197955309#5" to="-197955309#5" fromLane="0" toLane="0" via=":2081499947_3_0" dir="t" state="m"/>
- <connection from="23066443#0" to="23066443#1" fromLane="0" toLane="0" via=":443089071_2_0" dir="s" state="m"/>
- <connection from="23066443#0" to="58770723#1" fromLane="0" toLane="0" via=":443089071_3_0" dir="l" state="m"/>
- <connection from="23066443#1" to="151167658#2" fromLane="0" toLane="0" via=":438042376_0_0" dir="r" state="m"/>
- <connection from="23066443#1" to="23066443#2" fromLane="0" toLane="0" via=":438042376_1_0" dir="s" state="m"/>
- <connection from="23066443#2" to="23066443#3" fromLane="0" toLane="0" via=":438042372_2_0" dir="s" state="m"/>
- <connection from="23066443#2" to="44738605#1" fromLane="0" toLane="0" via=":438042372_3_0" dir="l" state="m"/>
- <connection from="23066443#3" to="38319548#1" fromLane="0" toLane="0" via=":452425491_3_0" dir="r" state="M"/>
- <connection from="23066443#3" to="23066443#4" fromLane="0" toLane="0" via=":452425491_4_0" dir="s" state="M"/>
- <connection from="23066443#3" to="-38319548#0" fromLane="0" toLane="0" via=":452425491_5_0" dir="l" state="M"/>
- <connection from="23066443#4" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_3_0" dir="r" state="m"/>
- <connection from="23066443#4" to="23066443#5" fromLane="0" toLane="0" via=":733663121_4_0" dir="s" state="m"/>
- <connection from="23066443#4" to="59159260#2" fromLane="0" toLane="0" via=":733663121_5_0" dir="l" state="m"/>
- <connection from="23066443#5" to="23066446#2" fromLane="0" toLane="0" via=":248913131_3_0" dir="r" state="m"/>
- <connection from="23066443#5" to="23066443#6" fromLane="0" toLane="0" via=":248913131_4_0" dir="s" state="m"/>
- <connection from="23066443#5" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_5_0" dir="l" state="m"/>
- <connection from="23066443#6" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_3_0" dir="r" state="m"/>
- <connection from="23066443#6" to="23066443#7" fromLane="0" toLane="0" via=":248913144_4_0" dir="s" state="m"/>
- <connection from="23066443#6" to="81096844#2" fromLane="0" toLane="0" via=":248913144_5_0" dir="l" state="m"/>
- <connection from="23066443#7" to="172498387#0" fromLane="0" toLane="0" via=":435668513_0_0" dir="r" state="m"/>
- <connection from="23066443#7" to="129780026#0" fromLane="0" toLane="0" via=":435668513_1_0" dir="s" state="m"/>
- <connection from="23066446#0" to="38319546#7" fromLane="0" toLane="0" via=":452425488_12_0" dir="r" state="M"/>
- <connection from="23066446#0" to="23066446#1" fromLane="0" toLane="0" via=":452425488_13_0" dir="s" state="M"/>
- <connection from="23066446#0" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_14_0" dir="l" state="m"/>
- <connection from="23066446#0" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_15_0" dir="t" state="m"/>
- <connection from="23066446#1" to="23066446#2" fromLane="0" toLane="0" via=":248913131_6_0" dir="s" state="M"/>
- <connection from="23066446#1" to="23066443#6" fromLane="0" toLane="0" via=":248913131_7_0" dir="l" state="m"/>
- <connection from="23066446#1" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_8_0" dir="t" state="m"/>
- <connection from="23066446#2" to="58770725#2" fromLane="0" toLane="0" via=":248913133_6_0" dir="r" state="M"/>
- <connection from="23066446#2" to="23066446#3" fromLane="0" toLane="0" via=":248913133_7_0" dir="s" state="M"/>
- <connection from="23066446#2" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_8_0" dir="t" state="m"/>
- <connection from="23066446#3" to="37771900#3" fromLane="0" toLane="0" via=":443089062_2_0" dir="r" state="m"/>
- <connection from="23066446#3" to="-23066446#3" fromLane="0" toLane="0" via=":443089062_3_0" dir="t" state="m"/>
- <connection from="23066462#0" to="-83051421#2" fromLane="0" toLane="0" via=":250689186_6_0" dir="r" state="="/>
- <connection from="23066462#0" to="23066462#1" fromLane="0" toLane="0" via=":250689186_7_0" dir="s" state="="/>
- <connection from="23066462#0" to="-23066462#0" fromLane="0" toLane="0" via=":250689186_8_0" dir="t" state="="/>
- <connection from="23066462#1" to="-83051455" fromLane="0" toLane="0" via=":441266870_6_0" dir="r" state="="/>
- <connection from="23066462#1" to="23066462#2" fromLane="0" toLane="0" via=":441266870_7_0" dir="s" state="="/>
- <connection from="23066462#1" to="-23066462#1" fromLane="0" toLane="0" via=":441266870_8_0" dir="t" state="="/>
- <connection from="23066462#2" to="-83051426" fromLane="0" toLane="0" via=":250689131_6_0" dir="r" state="="/>
- <connection from="23066462#2" to="23066462#3" fromLane="0" toLane="0" via=":250689131_7_0" dir="s" state="="/>
- <connection from="23066462#2" to="-23066462#2" fromLane="0" toLane="0" via=":250689131_8_0" dir="t" state="="/>
- <connection from="23066462#3" to="-83051480#1" fromLane="0" toLane="0" via=":250689201_3_0" dir="r" state="="/>
- <connection from="23066462#3" to="23066462#4" fromLane="0" toLane="0" via=":250689201_4_0" dir="s" state="="/>
- <connection from="23066462#3" to="-23066462#3" fromLane="0" toLane="0" via=":250689201_5_0" dir="t" state="="/>
- <connection from="23066462#4" to="23066462#0" fromLane="0" toLane="0" via=":248913200_0_0" dir="l" state="M"/>
- <connection from="23066462#4" to="-23066462#4" fromLane="0" toLane="0" via=":248913200_1_0" dir="t" state="m"/>
- <connection from="23182340#0" to="23182340#1" fromLane="0" toLane="0" via=":250683362_0_0" dir="s" state="m"/>
- <connection from="23182340#0" to="23182387#3" fromLane="0" toLane="0" via=":250683362_1_0" dir="l" state="m"/>
- <connection from="23182340#1" to="141190466#0" fromLane="0" toLane="0" via=":250685816_0_0" dir="r" state="m"/>
- <connection from="23182340#1" to="-23182484#2" fromLane="0" toLane="0" via=":250685816_1_0" dir="l" state="m"/>
- <connection from="23182358#0" to="23182387#1" fromLane="0" toLane="0" via=":250683336_3_0" dir="r" state="M"/>
- <connection from="23182358#0" to="23182358#1" fromLane="0" toLane="0" via=":250683336_4_0" dir="s" state="M"/>
- <connection from="23182358#0" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_5_0" dir="t" state="m"/>
- <connection from="23182358#1" to="23182358#2" fromLane="0" toLane="0" via=":250684983_2_0" tl="250684983" linkIndex="2" dir="s" state="o"/>
- <connection from="23182358#1" to="-23182358#1" fromLane="0" toLane="0" via=":250684983_3_0" tl="250684983" linkIndex="3" dir="t" state="o"/>
- <connection from="23182358#2" to="-23182358#2" fromLane="0" toLane="0" via=":2004733211_0_0" dir="t" state="M"/>
- <connection from="23182387#0" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_6_0" dir="r" state="m"/>
- <connection from="23182387#0" to="23182387#1" fromLane="0" toLane="0" via=":250683336_7_0" dir="s" state="m"/>
- <connection from="23182387#0" to="23182358#1" fromLane="0" toLane="0" via=":250683336_8_0" dir="l" state="m"/>
- <connection from="23182387#1" to="23182387#2" fromLane="0" toLane="0" via=":250683402_1_0" dir="s" state="m"/>
- <connection from="23182387#2" to="23182340#1" fromLane="0" toLane="0" via=":250683362_2_0" dir="r" state="M"/>
- <connection from="23182387#2" to="23182387#3" fromLane="0" toLane="0" via=":250683362_3_0" dir="s" state="M"/>
- <connection from="23182387#3" to="122394833#1" fromLane="0" toLane="0" via=":1367855932_6_0" dir="r" state="M"/>
- <connection from="23182387#3" to="23182387#4" fromLane="0" toLane="0" via=":1367855932_7_0" dir="s" state="M"/>
- <connection from="23182387#3" to="-122394833#0" fromLane="0" toLane="0" via=":1367855932_8_0" dir="l" state="M"/>
- <connection from="23182387#4" to="130443635#1" fromLane="0" toLane="0" via=":250683337_1_0" dir="r" state="M"/>
- <connection from="23182391" to="23182387#2" fromLane="0" toLane="0" via=":250683402_0_0" dir="r" state="M"/>
- <connection from="23182484#0" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_8_0" dir="r" state="M"/>
- <connection from="23182484#0" to="23182484#1" fromLane="0" toLane="0" via=":250685829_9_0" dir="s" state="M"/>
- <connection from="23182484#0" to="190048063" fromLane="0" toLane="0" via=":250685829_10_0" dir="l" state="m"/>
- <connection from="23182484#0" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_11_0" dir="t" state="m"/>
- <connection from="23182484#1" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_3_0" dir="r" state="M"/>
- <connection from="23182484#1" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_4_0" dir="s" state="M"/>
- <connection from="23182484#1" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_5_0" dir="t" state="m"/>
- <connection from="23182484#2" to="141190466#0" fromLane="0" toLane="0" via=":250685816_2_0" dir="s" state="M"/>
- <connection from="23182484#2" to="-23182484#2" fromLane="0" toLane="0" via=":250685816_3_0" dir="t" state="m"/>
- <connection from="23182517#0" to="23182517#1" fromLane="0" toLane="0" via=":450564003_0_0" tl="450564003" linkIndex="0" dir="s" state="o"/>
- <connection from="23182517#0" to="38230510#2" fromLane="0" toLane="0" via=":450564003_1_0" tl="450564003" linkIndex="1" dir="l" state="o"/>
- <connection from="23182517#0" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_2_0" tl="450564003" linkIndex="2" dir="t" state="o"/>
- <connection from="23182517#1" to="23182517#2" fromLane="0" toLane="0" via=":975934878_0_0" dir="s" state="M"/>
- <connection from="23182517#1" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_1_0" dir="t" state="m"/>
- <connection from="23182517#2" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_0_0" dir="s" state="M"/>
- <connection from="23182517#2" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_1_0" dir="l" state="m"/>
- <connection from="23182517#2" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_2_0" dir="t" state="m"/>
- <connection from="23182517#3" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_0_0" dir="s" state="M"/>
- <connection from="23182517#3" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_1_0" dir="l" state="m"/>
- <connection from="23182517#3" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_2_0" dir="t" state="m"/>
- <connection from="23182517#4" to="139118804#3" fromLane="0" toLane="0" via=":252418937_0_0" tl="252418937" linkIndex="0" dir="r" state="o"/>
- <connection from="23182517#4" to="23315111#0" fromLane="0" toLane="0" via=":252418937_1_0" tl="252418937" linkIndex="1" dir="s" state="o"/>
- <connection from="23182517#4" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_2_0" tl="252418937" linkIndex="2" dir="t" state="o"/>
- <connection from="23182589#0" to="24319558" fromLane="0" toLane="0" via=":250688540_0_0" dir="r" state="M"/>
- <connection from="23182589#0" to="23182589#1" fromLane="0" toLane="0" via=":250688540_1_0" dir="s" state="M"/>
- <connection from="23182589#1" to="24319547" fromLane="0" toLane="0" via=":250688445_0_0" dir="r" state="M"/>
- <connection from="23182640" to="101272435#3" fromLane="0" toLane="0" via=":441266879_0_0" dir="r" state="M"/>
- <connection from="23262356#0" to="23262356#1" fromLane="0" toLane="0" via=":2265767394_0_0" dir="s" state="m"/>
- <connection from="23262356#0" to="170590354#1" fromLane="0" toLane="1" via=":2265767394_1_0" dir="l" state="m"/>
- <connection from="23262356#0" to="-23262356#0" fromLane="0" toLane="0" via=":2265767394_2_0" dir="t" state="m"/>
- <connection from="23262356#1" to="23262356#2" fromLane="0" toLane="0" via=":443101920_0_0" dir="s" state="M"/>
- <connection from="23262356#1" to="101272426#1" fromLane="0" toLane="0" via=":443101920_1_0" dir="l" state="m"/>
- <connection from="23262356#1" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_2_0" dir="t" state="m"/>
- <connection from="23262356#2" to="23262356#3" fromLane="0" toLane="0" via=":255227475_0_0" dir="s" state="M"/>
- <connection from="23262356#2" to="149422199#0" fromLane="0" toLane="0" via=":255227475_1_0" dir="l" state="m"/>
- <connection from="23262356#2" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_2_0" dir="t" state="m"/>
- <connection from="23262356#3" to="23566902" fromLane="0" toLane="0" via=":255227472_0_0" dir="r" state="M"/>
- <connection from="23262356#3" to="-23262356#3" fromLane="0" toLane="0" via=":255227472_1_0" dir="t" state="M"/>
- <connection from="23315111#0" to="144874010#2" fromLane="0" toLane="0" via=":950094412_0_0" dir="r" state="m"/>
- <connection from="23315111#0" to="23315111#1" fromLane="0" toLane="0" via=":950094412_1_0" dir="s" state="m"/>
- <connection from="23315111#0" to="-23315111#0" fromLane="0" toLane="0" via=":950094412_2_0" dir="t" state="m"/>
- <connection from="23315111#1" to="129780022#5" fromLane="0" toLane="0" via=":427996791_0_0" tl="427996791" linkIndex="0" dir="r" state="o"/>
- <connection from="23315111#1" to="23315111#2" fromLane="0" toLane="0" via=":427996791_1_0" tl="427996791" linkIndex="1" dir="s" state="o"/>
- <connection from="23315111#1" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_2_0" tl="427996791" linkIndex="2" dir="l" state="o"/>
- <connection from="23315111#1" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_3_0" tl="427996791" linkIndex="3" dir="t" state="o"/>
- <connection from="23315111#2" to="-81523330#1" fromLane="0" toLane="0" via=":950094425_0_0" dir="r" state="m"/>
- <connection from="23315111#2" to="23315111#3" fromLane="0" toLane="0" via=":950094425_1_0" dir="s" state="m"/>
- <connection from="23315111#2" to="81523330#2" fromLane="0" toLane="1" via=":950094425_2_0" dir="l" state="m"/>
- <connection from="23315111#2" to="-23315111#2" fromLane="0" toLane="0" via=":950094425_3_0" dir="t" state="m"/>
- <connection from="23315111#3" to="108329426#1" fromLane="0" toLane="0" via=":427996792_0_0" tl="427996792" linkIndex="0" dir="s" state="o"/>
- <connection from="23315111#3" to="44641744#1" fromLane="0" toLane="0" via=":427996792_1_0" tl="427996792" linkIndex="1" dir="L" state="o"/>
- <connection from="23315111#3" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_2_0" tl="427996792" linkIndex="2" dir="L" state="o"/>
- <connection from="23315111#3" to="108329427#0" fromLane="0" toLane="0" via=":427996792_3_0" tl="427996792" linkIndex="3" dir="l" state="o"/>
- <connection from="23315111#3" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_4_0" tl="427996792" linkIndex="4" dir="t" state="o"/>
- <connection from="23566901#0" to="166728377#0" fromLane="0" toLane="0" via=":255227480_24_0" dir="r" state="m"/>
- <connection from="23566901#0" to="149422199#1" fromLane="0" toLane="0" via=":255227480_25_0" dir="R" state="m"/>
- <connection from="23566901#0" to="23566901#1" fromLane="0" toLane="0" via=":255227480_26_0" dir="s" state="m"/>
- <connection from="23566901#0" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_27_0" dir="s" state="m"/>
- <connection from="23566901#0" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_28_0" dir="l" state="m"/>
- <connection from="23566901#0" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_29_0" dir="t" state="m"/>
- <connection from="23566901#1" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_20_0" dir="R" state="m"/>
- <connection from="23566901#1" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_21_0" dir="R" state="m"/>
- <connection from="23566901#1" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_22_0" dir="s" state="m"/>
- <connection from="23566901#1" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_23_0" dir="l" state="m"/>
- <connection from="23566901#1" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_24_0" dir="t" state="m"/>
- <connection from="23566902" to="37640550#3" fromLane="0" toLane="0" via=":566579339_0_0" dir="r" state="M"/>
- <connection from="24319547" to="58770836" fromLane="0" toLane="0" via=":443089065_1_0" dir="r" state="M"/>
- <connection from="24319558" to="58770833" fromLane="0" toLane="0" via=":443089066_1_0" dir="r" state="M"/>
- <connection from="24573897#0" to="149419435#3" fromLane="0" toLane="0" via=":1624003168_0_0" dir="r" state="M"/>
- <connection from="24573897#0" to="24573897#1" fromLane="0" toLane="0" via=":1624003168_1_0" dir="s" state="M"/>
- <connection from="24573897#1" to="8272412#3" fromLane="0" toLane="0" via=":538810726_0_0" dir="r" state="M"/>
- <connection from="24573897#1" to="24573897#2" fromLane="0" toLane="0" via=":538810726_1_0" dir="s" state="M"/>
- <connection from="24573897#2" to="24573897#3" fromLane="0" toLane="0" via=":1624020484_0_0" dir="s" state="M"/>
- <connection from="24573897#2" to="149420179" fromLane="0" toLane="0" via=":1624020484_1_0" dir="l" state="M"/>
- <connection from="24573897#3" to="24573897#4" fromLane="0" toLane="0" via=":267169554_2_0" dir="s" state="m"/>
- <connection from="24573897#3" to="24573905#1" fromLane="0" toLane="0" via=":267169554_3_0" dir="l" state="m"/>
- <connection from="24573897#4" to="37772596#3" fromLane="0" toLane="0" via=":443101915_0_0" dir="r" state="M"/>
- <connection from="24573905#0" to="24573897#4" fromLane="0" toLane="0" via=":267169554_0_0" dir="r" state="M"/>
- <connection from="24573905#0" to="24573905#1" fromLane="0" toLane="0" via=":267169554_1_0" dir="s" state="M"/>
- <connection from="24573905#1" to="24573905#2" fromLane="0" toLane="0" via=":267169592_2_0" dir="s" state="m"/>
- <connection from="24573905#1" to="24573930#1" fromLane="0" toLane="0" via=":267169592_3_0" dir="l" state="m"/>
- <connection from="24573905#2" to="-38319550#9" fromLane="0" toLane="0" via=":719463795_3_0" dir="r" state="M"/>
- <connection from="24573905#2" to="24573905#3" fromLane="0" toLane="0" via=":719463795_4_0" dir="s" state="M"/>
- <connection from="24573905#2" to="38319550#10" fromLane="0" toLane="0" via=":719463795_5_0" dir="l" state="M"/>
- <connection from="24573905#3" to="101272424#2" fromLane="0" toLane="0" via=":267169591_0_0" dir="r" state="M"/>
- <connection from="24573930#0" to="24573905#2" fromLane="0" toLane="0" via=":267169592_0_0" dir="r" state="M"/>
- <connection from="24573930#0" to="24573930#1" fromLane="0" toLane="0" via=":267169592_1_0" dir="s" state="M"/>
- <connection from="24573930#1" to="24573930#2" fromLane="0" toLane="0" via=":1624020482_0_0" dir="s" state="M"/>
- <connection from="24573930#2" to="24573930#3" fromLane="0" toLane="0" via=":538810724_0_0" dir="s" state="m"/>
- <connection from="24573930#2" to="8272412#2" fromLane="0" toLane="0" via=":538810724_1_0" dir="l" state="m"/>
- <connection from="24573930#3" to="24573930#4" fromLane="0" toLane="0" via=":1624003193_0_0" dir="s" state="m"/>
- <connection from="24573930#3" to="149419435#2" fromLane="0" toLane="0" via=":1624003193_1_0" dir="l" state="m"/>
- <connection from="24573937" to="83051420" fromLane="0" toLane="0" via=":966193808_12_0" dir="r" state="M"/>
- <connection from="24573937" to="83051436#0" fromLane="0" toLane="0" via=":966193808_13_0" dir="s" state="m"/>
- <connection from="24573937" to="-83051417" fromLane="0" toLane="0" via=":966193808_14_0" dir="l" state="m"/>
- <connection from="24573937" to="-24573937" fromLane="0" toLane="0" via=":966193808_15_0" dir="t" state="m"/>
- <connection from="24573939#0" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_8_0" dir="r" state="="/>
- <connection from="24573939#0" to="24573939#1" fromLane="0" toLane="0" via=":267169686_9_0" dir="s" state="="/>
- <connection from="24573939#0" to="83051421#1" fromLane="0" toLane="0" via=":267169686_10_0" dir="l" state="="/>
- <connection from="24573939#0" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_11_0" dir="t" state="="/>
- <connection from="24573939#1" to="-37640549#1" fromLane="0" toLane="0" via=":267169715_6_0" dir="r" state="M"/>
- <connection from="24573939#1" to="24573939#2" fromLane="0" toLane="0" via=":267169715_7_0" dir="s" state="m"/>
- <connection from="24573939#1" to="-24573939#1" fromLane="0" toLane="0" via=":267169715_8_0" dir="t" state="m"/>
- <connection from="24573939#2" to="83051442#2" fromLane="0" toLane="0" via=":441266874_3_0" dir="r" state="="/>
- <connection from="24573939#2" to="-83051442#1" fromLane="0" toLane="0" via=":441266874_4_0" dir="l" state="="/>
- <connection from="24573939#2" to="-24573939#2" fromLane="0" toLane="0" via=":441266874_5_0" dir="t" state="="/>
- <connection from="24573947#0" to="24573947#1" fromLane="0" toLane="0" via=":2265767392_7_0" dir="s" state="m"/>
- <connection from="24573947#0" to="170594822#1" fromLane="0" toLane="1" via=":2265767392_8_0" dir="l" state="m"/>
- <connection from="24573947#0" to="-24573947#0" fromLane="0" toLane="0" via=":2265767392_9_0" dir="t" state="m"/>
- <connection from="24573947#1" to="24573947#2" fromLane="0" toLane="0" via=":443101905_6_0" dir="s" state="M"/>
- <connection from="24573947#1" to="37772595#1" fromLane="0" toLane="0" via=":443101905_7_0" dir="l" state="m"/>
- <connection from="24573947#1" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_8_0" dir="t" state="m"/>
- <connection from="24573947#2" to="24573947#3" fromLane="0" toLane="0" via=":267169634_4_0" dir="s" state="M"/>
- <connection from="24573947#2" to="83051421#0" fromLane="0" toLane="0" via=":267169634_5_0" dir="L" state="m"/>
- <connection from="24573947#2" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_6_0" dir="l" state="m"/>
- <connection from="24573947#2" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_7_0" dir="t" state="m"/>
- <connection from="24573947#3" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_8_0" dir="r" state="m"/>
- <connection from="24573947#3" to="24573947#4" fromLane="0" toLane="0" via=":267169714_9_0" dir="s" state="m"/>
- <connection from="24573947#3" to="37640549#1" fromLane="0" toLane="0" via=":267169714_10_0" dir="l" state="m"/>
- <connection from="24573947#3" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_11_0" dir="t" state="m"/>
- <connection from="24573947#4" to="-24573947#4" fromLane="0" toLane="0" via=":267169795_0_0" dir="t" state="M"/>
- <connection from="34962531#0" to="34962531#1" fromLane="0" toLane="0" via=":950640371_0_0" dir="s" state="m"/>
- <connection from="34962531#0" to="111549913#1" fromLane="0" toLane="0" via=":950640371_1_0" dir="l" state="m"/>
- <connection from="34962531#0" to="-34962531#0" fromLane="0" toLane="0" via=":950640371_2_0" dir="t" state="m"/>
- <connection from="34962531#1" to="160584984" fromLane="0" toLane="0" via=":446017738_0_0" dir="s" state="M"/>
- <connection from="34962531#1" to="37973568#2" fromLane="0" toLane="0" via=":446017738_1_0" dir="l" state="m"/>
- <connection from="34962531#1" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_2_0" dir="t" state="m"/>
- <connection from="37351086#0" to="37351086#1" fromLane="0" toLane="0" via=":948350693_2_0" dir="s" state="m"/>
- <connection from="37351086#0" to="81394169#3" fromLane="0" toLane="0" via=":948350693_3_0" dir="l" state="m"/>
- <connection from="37351086#1" to="44641744#0" fromLane="0" toLane="0" via=":445506215_7_0" dir="s" state="m"/>
- <connection from="37351086#1" to="134572340#0" fromLane="0" toLane="1" via=":445506215_8_0" dir="L" state="m"/>
- <connection from="37351086#1" to="37973565#5" fromLane="0" toLane="0" via=":445506215_9_0" dir="l" state="m"/>
- <connection from="37351089#0" to="81394169#5" fromLane="0" toLane="0" via=":948350621_0_0" dir="r" state="m"/>
- <connection from="37351089#0" to="37351089#1" fromLane="2" toLane="0" via=":948350621_1_0" dir="s" state="M"/>
- <connection from="37351089#0" to="37351089#1" fromLane="3" toLane="1" via=":948350621_2_0" dir="s" state="M"/>
- <connection from="37351089#1" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_9_0" dir="r" state="M"/>
- <connection from="37351089#1" to="133868191#0" fromLane="0" toLane="0" via=":243489891_10_0" dir="s" state="M"/>
- <connection from="37351089#1" to="133868191#0" fromLane="1" toLane="1" via=":243489891_11_0" dir="s" state="M"/>
- <connection from="37351089#1" to="133868191#0" fromLane="2" toLane="2" via=":243489891_12_0" dir="s" state="M"/>
- <connection from="37351089#1" to="133868191#0" fromLane="3" toLane="3" via=":243489891_13_0" dir="s" state="M"/>
- <connection from="37351089#1" to="130443629#1" fromLane="3" toLane="0" via=":243489891_14_0" dir="l" state="M"/>
- <connection from="37369047#0" to="81394188#2" fromLane="0" toLane="0" via=":724002953_3_0" dir="r" state="m"/>
- <connection from="37369047#0" to="37369047#1" fromLane="2" toLane="0" via=":724002953_4_0" dir="s" state="M"/>
- <connection from="37369047#0" to="37369047#1" fromLane="3" toLane="1" via=":724002953_5_0" dir="s" state="M"/>
- <connection from="37369047#1" to="130443629#3" fromLane="0" toLane="0" via=":435668511_8_0" dir="r" state="M"/>
- <connection from="37369047#1" to="37351086#0" fromLane="1" toLane="0" via=":435668511_9_0" dir="s" state="M"/>
- <connection from="37369047#1" to="37369047#2" fromLane="2" toLane="1" via=":435668511_10_0" dir="s" state="M"/>
- <connection from="37369047#1" to="37369047#2" fromLane="3" toLane="2" via=":435668511_11_0" dir="s" state="M"/>
- <connection from="37369047#1" to="37369047#2" fromLane="3" toLane="3" via=":435668511_12_0" dir="s" state="M"/>
- <connection from="37369047#1" to="-130443629#2" fromLane="3" toLane="0" via=":435668511_13_0" dir="l" state="M"/>
- <connection from="37369047#2" to="133868229#0" fromLane="0" toLane="0" via=":948350707_8_0" dir="s" state="m"/>
- <connection from="37369047#2" to="133868229#0" fromLane="1" toLane="1" via=":948350707_9_0" dir="s" state="m"/>
- <connection from="37369047#2" to="133868186" fromLane="2" toLane="2" via=":948350707_10_0" dir="s" state="M"/>
- <connection from="37369047#2" to="81394169#4" fromLane="2" toLane="0" via=":948350707_11_0" dir="L" state="m"/>
- <connection from="37369047#2" to="-81394200#2" fromLane="3" toLane="0" via=":948350707_12_0" dir="l" state="m"/>
- <connection from="37449245#0" to="109912572#4" fromLane="0" toLane="0" via=":1257054165_0_0" dir="r" state="M"/>
- <connection from="37449245#0" to="37449245#1" fromLane="0" toLane="0" via=":1257054165_1_0" dir="s" state="M"/>
- <connection from="37449245#0" to="-109912572#3" fromLane="0" toLane="0" via=":1257054165_2_0" dir="l" state="M"/>
- <connection from="37449245#1" to="81394162#2" fromLane="0" toLane="0" via=":438042380_0_0" dir="s" state="m"/>
- <connection from="37449249#0" to="37449253#0" fromLane="0" toLane="0" via=":438042374_0_0" dir="s" state="M"/>
- <connection from="37449249#0" to="37449249#1" fromLane="0" toLane="0" via=":438042374_1_0" dir="s" state="M"/>
- <connection from="37449249#1" to="133960538#1" fromLane="0" toLane="0" via=":438042385_0_0" tl="438042385" linkIndex="0" dir="r" state="o"/>
- <connection from="37449249#1" to="37449249#2" fromLane="0" toLane="0" via=":438042385_1_0" tl="438042385" linkIndex="1" dir="s" state="o"/>
- <connection from="37449249#2" to="37449249#3" fromLane="0" toLane="0" via=":438042387_1_0" tl="438042387" linkIndex="1" dir="l" state="o"/>
- <connection from="37449249#3" to="133960539#0" fromLane="0" toLane="0" via=":438042381_0_0" tl="438042381" linkIndex="0" dir="r" state="o"/>
- <connection from="37449249#3" to="133960539#0" fromLane="0" toLane="1" via=":438042381_1_0" tl="438042381" linkIndex="1" dir="r" state="o"/>
- <connection from="37449249#3" to="154500698" fromLane="0" toLane="0" via=":438042381_2_0" tl="438042381" linkIndex="2" dir="s" state="o"/>
- <connection from="37449253#0" to="-59159260#3" fromLane="0" toLane="0" via=":733663089_2_0" dir="r" state="M"/>
- <connection from="37449253#0" to="37449253#1" fromLane="0" toLane="0" via=":733663089_3_0" dir="s" state="M"/>
- <connection from="37449253#1" to="23066446#0" fromLane="0" toLane="0" via=":248913130_2_0" dir="r" state="M"/>
- <connection from="37449253#1" to="37449253#2" fromLane="0" toLane="0" via=":248913130_3_0" dir="s" state="M"/>
- <connection from="37449253#2" to="-81096844#3" fromLane="0" toLane="0" via=":248913145_2_0" dir="r" state="M"/>
- <connection from="37449253#2" to="37449253#3" fromLane="0" toLane="0" via=":248913145_3_0" dir="s" state="M"/>
- <connection from="37449253#3" to="-109912572#0" fromLane="0" toLane="0" via=":1257054155_3_0" dir="r" state="M"/>
- <connection from="37449253#3" to="37449253#4" fromLane="0" toLane="0" via=":1257054155_4_0" dir="s" state="M"/>
- <connection from="37449253#3" to="109912572#1" fromLane="0" toLane="0" via=":1257054155_5_0" dir="l" state="M"/>
- <connection from="37449253#4" to="81523332#0" fromLane="0" toLane="0" via=":435668516_0_0" dir="r" state="M"/>
- <connection from="37449253#4" to="37449253#5" fromLane="0" toLane="0" via=":435668516_1_0" dir="s" state="M"/>
- <connection from="37449253#5" to="139118805#1" fromLane="0" toLane="0" via=":974693391_4_0" dir="r" state="m"/>
- <connection from="37449253#5" to="37449253#6" fromLane="0" toLane="0" via=":974693391_5_0" dir="s" state="m"/>
- <connection from="37449253#5" to="-139118805#0" fromLane="0" toLane="1" via=":974693391_6_0" dir="l" state="m"/>
- <connection from="37449253#6" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_3_0" dir="r" state="m"/>
- <connection from="37449253#6" to="37449253#7" fromLane="0" toLane="0" via=":13929747_4_0" dir="s" state="m"/>
- <connection from="37449253#6" to="129780022#2" fromLane="0" toLane="0" via=":13929747_5_0" dir="l" state="m"/>
- <connection from="37449253#7" to="172498367" fromLane="0" toLane="0" via=":950094314_3_0" dir="s" state="m"/>
- <connection from="37449253#7" to="172498388" fromLane="0" toLane="1" via=":950094314_4_0" dir="l" state="m"/>
- <connection from="37638426#0" to="-179692877#1" fromLane="0" toLane="0" via=":441236049_5_0" dir="r" state="m"/>
- <connection from="37638426#0" to="37638426#1" fromLane="0" toLane="0" via=":441236049_6_0" dir="s" state="m"/>
- <connection from="37638426#0" to="42976406#4" fromLane="0" toLane="2" via=":441236049_7_0" dir="l" state="m"/>
- <connection from="37638426#1" to="37638470#0" fromLane="0" toLane="0" via=":1168929308_3_0" tl="1168929308" linkIndex="3" dir="r" state="o"/>
- <connection from="37638426#1" to="42976408#0" fromLane="0" toLane="0" via=":1168929308_4_0" tl="1168929308" linkIndex="4" dir="R" state="o"/>
- <connection from="37638426#1" to="154500706#0" fromLane="0" toLane="0" via=":1168929308_5_0" tl="1168929308" linkIndex="5" dir="s" state="o"/>
- <connection from="37638470#0" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_3_0" dir="r" state="M"/>
- <connection from="37638470#0" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_4_0" dir="s" state="M"/>
- <connection from="37638470#0" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_5_0" dir="t" state="m"/>
- <connection from="37638470#1" to="-160584984" fromLane="0" toLane="0" via=":1224080669_3_0" dir="r" state="M"/>
- <connection from="37638470#1" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_4_0" dir="s" state="M"/>
- <connection from="37638470#1" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_5_0" dir="t" state="m"/>
- <connection from="37638470#2" to="-37638470#2" fromLane="0" toLane="0" via=":484282961_0_0" dir="t" state="M"/>
- <connection from="37640549#0" to="24573947#4" fromLane="0" toLane="0" via=":267169714_4_0" dir="r" state="M"/>
- <connection from="37640549#0" to="37640549#1" fromLane="0" toLane="0" via=":267169714_5_0" dir="s" state="M"/>
- <connection from="37640549#0" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_6_0" dir="l" state="m"/>
- <connection from="37640549#0" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_7_0" dir="t" state="m"/>
- <connection from="37640549#1" to="24573939#2" fromLane="0" toLane="0" via=":267169715_3_0" dir="r" state="M"/>
- <connection from="37640549#1" to="-24573939#1" fromLane="0" toLane="0" via=":267169715_4_0" dir="l" state="M"/>
- <connection from="37640549#1" to="-37640549#1" fromLane="0" toLane="0" via=":267169715_5_0" dir="t" state="m"/>
- <connection from="37640550#0" to="37640550#1" fromLane="0" toLane="0" via=":566579336_0_0" tl="566579336" linkIndex="0" dir="s" state="o"/>
- <connection from="37640550#1" to="37640550#2" fromLane="0" toLane="0" via=":566579338_0_0" tl="566579338" linkIndex="0" dir="s" state="o"/>
- <connection from="37640550#2" to="37640550#3" fromLane="0" toLane="0" via=":566579339_1_0" dir="s" state="m"/>
- <connection from="37640550#3" to="81124945" fromLane="0" toLane="0" via=":441266876_0_0" dir="r" state="M"/>
- <connection from="37640550#3" to="37640550#4" fromLane="0" toLane="0" via=":441266876_1_0" dir="s" state="M"/>
- <connection from="37640550#4" to="37640550#5" fromLane="0" toLane="0" via=":2081499947_0_0" dir="s" state="M"/>
- <connection from="37640550#4" to="-197955309#5" fromLane="0" toLane="0" via=":2081499947_1_0" dir="l" state="M"/>
- <connection from="37640550#5" to="154844463" fromLane="0" toLane="0" via=":1168929585_0_0" dir="r" state="m"/>
- <connection from="37771900#0" to="37771900#1" fromLane="0" toLane="0" via=":443089060_0_0" tl="443089060" linkIndex="0" dir="s" state="o"/>
- <connection from="37771900#0" to="172498387#2" fromLane="0" toLane="0" via=":443089060_1_0" tl="443089060" linkIndex="1" dir="l" state="o"/>
- <connection from="37771900#1" to="81096844#0" fromLane="0" toLane="0" via=":443089061_0_0" dir="r" state="M"/>
- <connection from="37771900#1" to="37771900#2" fromLane="0" toLane="0" via=":443089061_1_0" dir="s" state="M"/>
- <connection from="37771900#2" to="-23066446#3" fromLane="0" toLane="0" via=":443089062_0_0" dir="r" state="M"/>
- <connection from="37771900#2" to="37771900#3" fromLane="0" toLane="0" via=":443089062_1_0" dir="s" state="M"/>
- <connection from="37771900#3" to="59159260#0" fromLane="0" toLane="0" via=":733663131_0_0" dir="r" state="M"/>
- <connection from="37771900#3" to="37771900#4" fromLane="0" toLane="0" via=":733663131_1_0" dir="s" state="M"/>
- <connection from="37771900#4" to="-38319548#2" fromLane="0" toLane="0" via=":1669480287_0_0" dir="r" state="M"/>
- <connection from="37771900#4" to="37771900#5" fromLane="0" toLane="0" via=":1669480287_1_0" dir="s" state="M"/>
- <connection from="37771900#4" to="38319548#3" fromLane="0" toLane="0" via=":1669480287_2_0" dir="l" state="M"/>
- <connection from="37771900#5" to="-110514869#1" fromLane="0" toLane="0" via=":443089063_0_0" tl="443089063" linkIndex="0" dir="r" state="o"/>
- <connection from="37771900#5" to="37771900#6" fromLane="0" toLane="0" via=":443089063_1_0" tl="443089063" linkIndex="1" dir="s" state="o"/>
- <connection from="37771900#5" to="110514869#2" fromLane="0" toLane="1" via=":443089063_2_0" tl="443089063" linkIndex="2" dir="l" state="o"/>
- <connection from="37771900#6" to="37771903" fromLane="0" toLane="0" via=":443089064_0_0" dir="r" state="M"/>
- <connection from="37771900#6" to="37771900#7" fromLane="0" toLane="0" via=":443089064_1_0" dir="s" state="M"/>
- <connection from="37771900#7" to="58770837#0" fromLane="0" toLane="0" via=":443089070_0_0" dir="s" state="m"/>
- <connection from="37771902#0" to="38319550#2" fromLane="0" toLane="0" via=":452425501_6_0" dir="r" state="M"/>
- <connection from="37771902#0" to="37771902#1" fromLane="0" toLane="0" via=":452425501_7_0" dir="s" state="M"/>
- <connection from="37771902#0" to="-38319550#1" fromLane="0" toLane="0" via=":452425501_8_0" dir="l" state="M"/>
- <connection from="37771902#1" to="37771902#2" fromLane="0" toLane="0" via=":966132112_1_0" dir="s" state="M"/>
- <connection from="37771902#2" to="37771902#3" fromLane="0" toLane="0" via=":252417165_0_0" dir="s" state="M"/>
- <connection from="37771902#2" to="23066443#0" fromLane="0" toLane="0" via=":252417165_1_0" dir="l" state="M"/>
- <connection from="37771902#3" to="58770724" fromLane="0" toLane="0" via=":252417190_1_0" dir="s" state="M"/>
- <connection from="37771903" to="58770723#0" fromLane="0" toLane="0" via=":443089072_2_0" dir="s" state="M"/>
- <connection from="37771903" to="58770725#6" fromLane="0" toLane="0" via=":443089072_3_0" dir="l" state="M"/>
- <connection from="37771904#0" to="83051483" fromLane="0" toLane="0" via=":966193857_2_0" dir="r" state="M"/>
- <connection from="37771904#0" to="37771904#1" fromLane="0" toLane="0" via=":966193857_3_0" dir="s" state="m"/>
- <connection from="37772595#0" to="24573947#2" fromLane="0" toLane="0" via=":443101905_3_0" dir="r" state="m"/>
- <connection from="37772595#0" to="37772595#1" fromLane="0" toLane="0" via=":443101905_4_0" dir="s" state="m"/>
- <connection from="37772595#0" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_5_0" dir="l" state="m"/>
- <connection from="37772595#1" to="37772597#2" fromLane="0" toLane="0" via=":443101906_3_0" dir="r" state="m"/>
- <connection from="37772595#1" to="37772595#2" fromLane="0" toLane="0" via=":443101906_4_0" dir="s" state="m"/>
- <connection from="37772595#1" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_5_0" dir="l" state="m"/>
- <connection from="37772595#2" to="-83051420" fromLane="0" toLane="0" via=":966193796_2_0" dir="r" state="M"/>
- <connection from="37772595#2" to="37772595#3" fromLane="0" toLane="0" via=":966193796_3_0" dir="s" state="m"/>
- <connection from="37772595#3" to="154844477" fromLane="0" toLane="0" via=":1168929549_0_0" tl="1168929549" linkIndex="0" dir="r" state="o"/>
- <connection from="37772596#0" to="38319550#8" fromLane="0" toLane="0" via=":719463587_6_0" tl="719463587" linkIndex="6" dir="r" state="o"/>
- <connection from="37772596#0" to="37772596#1" fromLane="0" toLane="0" via=":719463587_7_0" tl="719463587" linkIndex="7" dir="s" state="o"/>
- <connection from="37772596#0" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_8_0" tl="719463587" linkIndex="8" dir="l" state="o"/>
- <connection from="37772596#1" to="24573930#0" fromLane="0" toLane="0" via=":443101914_0_0" dir="r" state="M"/>
- <connection from="37772596#1" to="37772596#2" fromLane="0" toLane="0" via=":443101914_1_0" dir="s" state="M"/>
- <connection from="37772596#2" to="37772596#3" fromLane="0" toLane="0" via=":443101915_1_0" dir="s" state="m"/>
- <connection from="37772596#3" to="154844465#1" fromLane="0" toLane="0" via=":1168929613_1_0" tl="1168929613" linkIndex="1" dir="r" state="o"/>
- <connection from="37772597#0" to="37772597#1" fromLane="0" toLane="0" via=":2265767395_7_0" dir="s" state="m"/>
- <connection from="37772597#0" to="170594822#2" fromLane="0" toLane="1" via=":2265767395_8_0" dir="l" state="m"/>
- <connection from="37772597#0" to="-37772597#0" fromLane="0" toLane="0" via=":2265767395_9_0" dir="t" state="m"/>
- <connection from="37772597#1" to="37772597#2" fromLane="0" toLane="0" via=":443101906_6_0" dir="s" state="M"/>
- <connection from="37772597#1" to="37772595#2" fromLane="0" toLane="0" via=":443101906_7_0" dir="l" state="m"/>
- <connection from="37772597#1" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_8_0" dir="t" state="m"/>
- <connection from="37772597#2" to="83051436#1" fromLane="0" toLane="0" via=":267169690_8_0" dir="r" state="M"/>
- <connection from="37772597#2" to="24573939#0" fromLane="0" toLane="0" via=":267169690_9_0" dir="s" state="M"/>
- <connection from="37772597#2" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_10_0" dir="l" state="m"/>
- <connection from="37772597#2" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_11_0" dir="t" state="m"/>
- <connection from="37942667#0" to="37942667#1" fromLane="0" toLane="0" via=":1323557956_1_0" dir="s" state="M"/>
- <connection from="37942667#1" to="105251811#1" fromLane="0" toLane="0" via=":1212941056_0_0" dir="r" state="M"/>
- <connection from="37942667#1" to="37942667#2" fromLane="0" toLane="0" via=":1212941056_1_0" dir="s" state="M"/>
- <connection from="37942667#2" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_3_0" dir="r" state="m"/>
- <connection from="37942667#2" to="37942667#3" fromLane="0" toLane="0" via=":1213368991_4_0" dir="s" state="m"/>
- <connection from="37942667#2" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_5_0" dir="l" state="m"/>
- <connection from="37942667#3" to="37942667#4" fromLane="0" toLane="0" via=":1212941077_2_0" dir="s" state="m"/>
- <connection from="37942667#3" to="59159259#1" fromLane="0" toLane="0" via=":1212941077_3_0" dir="l" state="m"/>
- <connection from="37942667#4" to="37942667#5" fromLane="0" toLane="0" via=":733663070_1_0" dir="s" state="m"/>
- <connection from="37942667#5" to="37973565#0" fromLane="0" toLane="0" via=":445506213_0_0" dir="s" state="M"/>
- <connection from="37942668#0" to="37942668#1" fromLane="0" toLane="0" via=":560472378_0_0" dir="s" state="M"/>
- <connection from="37942668#0" to="-44104491#1" fromLane="0" toLane="0" via=":560472378_1_0" dir="l" state="M"/>
- <connection from="37942668#1" to="37973565#3" fromLane="0" toLane="0" via=":445506217_0_0" dir="r" state="M"/>
- <connection from="37942668#1" to="37942668#2" fromLane="0" toLane="0" via=":445506217_1_0" dir="s" state="M"/>
- <connection from="37942668#2" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_2_0" dir="r" state="m"/>
- <connection from="37942668#2" to="130443629#6" fromLane="0" toLane="0" via=":445506221_3_0" dir="l" state="m"/>
- <connection from="37973565#0" to="59159262#2" fromLane="0" toLane="0" via=":733663082_3_0" dir="r" state="m"/>
- <connection from="37973565#0" to="37973565#1" fromLane="0" toLane="0" via=":733663082_4_0" dir="s" state="m"/>
- <connection from="37973565#0" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_5_0" dir="l" state="m"/>
- <connection from="37973565#1" to="44104490" fromLane="0" toLane="0" via=":560472379_0_0" dir="r" state="M"/>
- <connection from="37973565#1" to="37973565#2" fromLane="0" toLane="0" via=":560472379_1_0" dir="s" state="M"/>
- <connection from="37973565#10" to="23182387#0" fromLane="0" toLane="0" via=":503954409_0_0" dir="r" state="M"/>
- <connection from="37973565#10" to="37973565#11" fromLane="0" toLane="0" via=":503954409_1_0" dir="s" state="M"/>
- <connection from="37973565#2" to="37973565#3" fromLane="0" toLane="0" via=":445506217_2_0" dir="s" state="m"/>
- <connection from="37973565#2" to="37942668#2" fromLane="0" toLane="0" via=":445506217_3_0" dir="l" state="m"/>
- <connection from="37973565#3" to="-109912567#1" fromLane="0" toLane="0" via=":1257054132_2_0" dir="r" state="M"/>
- <connection from="37973565#3" to="37973565#4" fromLane="0" toLane="0" via=":1257054132_3_0" dir="s" state="M"/>
- <connection from="37973565#4" to="44641744#0" fromLane="0" toLane="0" via=":445506215_0_0" dir="r" state="m"/>
- <connection from="37973565#4" to="134572340#0" fromLane="0" toLane="0" via=":445506215_1_0" dir="R" state="m"/>
- <connection from="37973565#4" to="37973565#5" fromLane="0" toLane="0" via=":445506215_2_0" dir="s" state="m"/>
- <connection from="37973565#5" to="133868229#1" fromLane="0" toLane="0" via=":948350588_4_0" dir="r" state="m"/>
- <connection from="37973565#5" to="37973565#6" fromLane="0" toLane="0" via=":948350588_5_0" dir="s" state="m"/>
- <connection from="37973565#5" to="-133868229#0" fromLane="0" toLane="1" via=":948350588_6_0" dir="l" state="m"/>
- <connection from="37973565#6" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_3_0" dir="r" state="m"/>
- <connection from="37973565#6" to="37973565#7" fromLane="0" toLane="0" via=":435668539_4_0" dir="s" state="m"/>
- <connection from="37973565#6" to="37351089#0" fromLane="0" toLane="1" via=":435668539_5_0" dir="l" state="M"/>
- <connection from="37973565#6" to="37351089#0" fromLane="0" toLane="2" via=":435668539_6_0" dir="l" state="m"/>
- <connection from="37973565#7" to="37973565#8" fromLane="0" toLane="0" via=":948350607_3_0" dir="s" state="m"/>
- <connection from="37973565#7" to="133868231#0" fromLane="0" toLane="0" via=":948350607_4_0" dir="s" state="m"/>
- <connection from="37973565#7" to="133868188" fromLane="0" toLane="0" via=":948350607_5_0" dir="l" state="m"/>
- <connection from="37973565#8" to="37973565#9" fromLane="0" toLane="0" via=":445823604_2_0" dir="s" state="m"/>
- <connection from="37973565#8" to="44641745#0" fromLane="0" toLane="0" via=":445823604_3_0" dir="l" state="m"/>
- <connection from="37973565#9" to="38230510#1" fromLane="0" toLane="0" via=":450564002_0_0" dir="r" state="M"/>
- <connection from="37973565#9" to="37973565#10" fromLane="0" toLane="0" via=":450564002_1_0" dir="s" state="M"/>
- <connection from="37973566" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_30_0" dir="r" state="m"/>
- <connection from="37973566" to="43684741#0" fromLane="0" toLane="0" via=":552842256_31_0" dir="R" state="m"/>
- <connection from="37973566" to="130443630#0" fromLane="0" toLane="0" via=":552842256_32_0" dir="s" state="m"/>
- <connection from="37973566" to="105251811#0" fromLane="0" toLane="0" via=":552842256_33_0" dir="L" state="m"/>
- <connection from="37973566" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_34_0" dir="l" state="m"/>
- <connection from="37973566" to="-37973566" fromLane="0" toLane="0" via=":552842256_35_0" dir="t" state="m"/>
- <connection from="37973568#0" to="106366774" fromLane="0" toLane="0" via=":1224080660_2_0" dir="r" state="M"/>
- <connection from="37973568#0" to="37973568#1" fromLane="0" toLane="0" via=":1224080660_3_0" dir="s" state="m"/>
- <connection from="37973568#1" to="160584984" fromLane="0" toLane="0" via=":446017738_6_0" dir="r" state="m"/>
- <connection from="37973568#1" to="37973568#2" fromLane="0" toLane="0" via=":446017738_7_0" dir="s" state="m"/>
- <connection from="37973568#1" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_8_0" dir="l" state="m"/>
- <connection from="37973568#2" to="81394192#15" fromLane="0" toLane="0" via=":446017739_0_0" tl="446017739" linkIndex="0" dir="r" state="o"/>
- <connection from="37973568#2" to="37973568#3" fromLane="0" toLane="0" via=":446017739_1_0" tl="446017739" linkIndex="1" dir="s" state="o"/>
- <connection from="37973568#3" to="130443630#9" fromLane="0" toLane="0" via=":446017741_3_0" tl="446017741" linkIndex="3" dir="r" state="o"/>
- <connection from="37973568#3" to="37973568#4" fromLane="0" toLane="0" via=":446017741_4_0" tl="446017741" linkIndex="4" dir="s" state="o"/>
- <connection from="37973568#3" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_5_0" tl="446017741" linkIndex="5" dir="l" state="o"/>
- <connection from="37973568#4" to="166576462#6" fromLane="0" toLane="0" via=":1780219360_6_0" dir="r" state="M"/>
- <connection from="37973568#4" to="37973568#5" fromLane="0" toLane="0" via=":1780219360_7_0" dir="s" state="M"/>
- <connection from="37973568#4" to="-166576462#5" fromLane="0" toLane="0" via=":1780219360_8_0" dir="l" state="M"/>
- <connection from="37973568#5" to="42976406#1" fromLane="0" toLane="0" via=":446017742_4_0" tl="446017742" linkIndex="4" dir="r" state="o"/>
- <connection from="37973568#5" to="37973568#6" fromLane="0" toLane="0" via=":446017742_5_0" tl="446017742" linkIndex="5" dir="s" state="o"/>
- <connection from="37973568#6" to="37973568#7" fromLane="0" toLane="0" via=":446017743_4_0" tl="446017743" linkIndex="4" dir="s" state="o"/>
- <connection from="37973568#6" to="154500693#3" fromLane="0" toLane="1" via=":446017743_5_0" tl="446017743" linkIndex="5" dir="l" state="o"/>
- <connection from="37973568#6" to="154500693#3" fromLane="0" toLane="2" via=":446017743_6_0" tl="446017743" linkIndex="6" dir="l" state="o"/>
- <connection from="37973568#7" to="37772596#0" fromLane="0" toLane="0" via=":443101913_2_0" tl="443101913" linkIndex="2" dir="s" state="o"/>
- <connection from="37973568#7" to="101272424#4" fromLane="0" toLane="0" via=":443101913_3_0" tl="443101913" linkIndex="3" dir="l" state="o"/>
- <connection from="37973569#0" to="42976405#2" fromLane="0" toLane="0" via=":446017747_0_0" tl="446017747" linkIndex="0" dir="r" state="o"/>
- <connection from="37973569#0" to="37973569#1" fromLane="0" toLane="0" via=":446017747_1_0" tl="446017747" linkIndex="1" dir="s" state="o"/>
- <connection from="37973569#1" to="37973569#2" fromLane="0" toLane="0" via=":446017746_3_0" tl="446017746" linkIndex="3" dir="s" state="o"/>
- <connection from="37973569#1" to="133960539#3" fromLane="0" toLane="1" via=":446017746_4_0" tl="446017746" linkIndex="4" dir="l" state="o"/>
- <connection from="37973569#2" to="-166576462#3" fromLane="0" toLane="0" via=":1780219341_3_0" dir="r" state="M"/>
- <connection from="37973569#2" to="37973569#3" fromLane="0" toLane="0" via=":1780219341_4_0" dir="s" state="M"/>
- <connection from="37973569#2" to="166576462#4" fromLane="0" toLane="0" via=":1780219341_5_0" dir="l" state="M"/>
- <connection from="37973569#3" to="37973569#4" fromLane="0" toLane="0" via=":538265870_1_0" dir="s" state="m"/>
- <connection from="37973569#4" to="81672216#0" fromLane="0" toLane="0" via=":951739693_2_0" dir="r" state="M"/>
- <connection from="37973569#4" to="37973569#5" fromLane="0" toLane="0" via=":951739693_3_0" dir="s" state="M"/>
- <connection from="37973569#5" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_0_0" tl="446017744" linkIndex="0" dir="r" state="o"/>
- <connection from="37973569#5" to="37973569#6" fromLane="0" toLane="0" via=":446017744_1_0" tl="446017744" linkIndex="1" dir="s" state="o"/>
- <connection from="37973569#5" to="130443630#5" fromLane="0" toLane="0" via=":446017744_2_0" tl="446017744" linkIndex="2" dir="l" state="o"/>
- <connection from="37973569#6" to="37973569#7" fromLane="0" toLane="0" via=":446017740_0_0" tl="446017740" linkIndex="0" dir="s" state="o"/>
- <connection from="37973569#6" to="81394192#11" fromLane="0" toLane="0" via=":446017740_1_0" tl="446017740" linkIndex="1" dir="l" state="o"/>
- <connection from="37973569#7" to="-160584981" fromLane="0" toLane="0" via=":1726380184_2_0" dir="r" state="M"/>
- <connection from="37973569#7" to="37973569#8" fromLane="0" toLane="0" via=":1726380184_3_0" dir="s" state="m"/>
- <connection from="37973569#8" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_3_0" dir="r" state="m"/>
- <connection from="37973569#8" to="37973569#9" fromLane="0" toLane="0" via=":552842255_4_0" dir="s" state="m"/>
- <connection from="37973569#8" to="43684741#4" fromLane="0" toLane="0" via=":552842255_5_0" dir="l" state="m"/>
- <connection from="37973571#0" to="-179917803#1" fromLane="0" toLane="0" via=":1224074533_2_0" dir="r" state="M"/>
- <connection from="37973571#0" to="37973571#1" fromLane="0" toLane="0" via=":1224074533_3_0" dir="l" state="m"/>
- <connection from="37973571#1" to="179692877#0" fromLane="0" toLane="0" via=":444026889_2_0" dir="r" state="m"/>
- <connection from="37973571#1" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_3_0" dir="l" state="m"/>
- <connection from="37973572#0" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_4_0" dir="r" state="M"/>
- <connection from="37973572#0" to="37973572#1" fromLane="0" toLane="0" via=":1780219353_5_0" dir="s" state="M"/>
- <connection from="37973572#0" to="37973572#1" fromLane="1" toLane="1" via=":1780219353_6_0" dir="s" state="M"/>
- <connection from="37973572#0" to="166576462#5" fromLane="1" toLane="0" via=":1780219353_7_0" dir="l" state="m"/>
- <connection from="37973572#0" to="-37973572#0" fromLane="1" toLane="1" via=":1780219353_8_0" dir="t" state="m"/>
- <connection from="37973572#1" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_0_0" tl="30406599" linkIndex="0" dir="r" state="o"/>
- <connection from="37973572#1" to="37973572#2" fromLane="0" toLane="0" via=":30406599_1_0" tl="30406599" linkIndex="1" dir="s" state="o"/>
- <connection from="37973572#1" to="37973572#2" fromLane="1" toLane="1" via=":30406599_2_0" tl="30406599" linkIndex="2" dir="s" state="o"/>
- <connection from="37973572#1" to="130443630#7" fromLane="1" toLane="0" via=":30406599_3_0" tl="30406599" linkIndex="3" dir="l" state="o"/>
- <connection from="37973572#1" to="-37973572#1" fromLane="1" toLane="1" via=":30406599_4_0" tl="30406599" linkIndex="4" dir="t" state="o"/>
- <connection from="37973572#2" to="37973572#3" fromLane="0" toLane="0" via=":444026884_0_0" tl="444026884" linkIndex="0" dir="s" state="o"/>
- <connection from="37973572#2" to="37973572#3" fromLane="1" toLane="1" via=":444026884_1_0" tl="444026884" linkIndex="1" dir="s" state="o"/>
- <connection from="37973572#2" to="81394192#13" fromLane="1" toLane="0" via=":444026884_2_0" tl="444026884" linkIndex="2" dir="l" state="o"/>
- <connection from="37973572#2" to="-37973572#2" fromLane="1" toLane="1" via=":444026884_3_0" tl="444026884" linkIndex="3" dir="t" state="o"/>
- <connection from="37973572#3" to="37973572#4" fromLane="0" toLane="0" via=":410296508_0_0" dir="s" state="M"/>
- <connection from="37973572#3" to="37973572#4" fromLane="1" toLane="1" via=":410296508_1_0" dir="s" state="M"/>
- <connection from="37973572#3" to="34962531#0" fromLane="1" toLane="0" via=":410296508_2_0" dir="l" state="m"/>
- <connection from="37973572#3" to="-37973572#3" fromLane="1" toLane="1" via=":410296508_3_0" dir="t" state="m"/>
- <connection from="37973572#4" to="-43684741#5" fromLane="0" toLane="0" via=":552842254_3_0" dir="r" state="M"/>
- <connection from="37973572#4" to="37973572#5" fromLane="0" toLane="0" via=":552842254_4_0" dir="s" state="M"/>
- <connection from="37973572#4" to="37973572#5" fromLane="1" toLane="1" via=":552842254_5_0" dir="s" state="M"/>
- <connection from="37973572#4" to="-37973572#4" fromLane="1" toLane="1" via=":552842254_6_0" dir="t" state="m"/>
- <connection from="37973572#5" to="-37973572#5" fromLane="1" toLane="1" via=":356693794_0_0" dir="t" state="M"/>
- <connection from="38027102#0" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_12_0" dir="r" state="m"/>
- <connection from="38027102#0" to="38027102#1" fromLane="0" toLane="0" via=":477486717_13_0" dir="s" state="m"/>
- <connection from="38027102#0" to="107066313#3" fromLane="0" toLane="0" via=":477486717_14_0" dir="l" state="m"/>
- <connection from="38027102#0" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_15_0" dir="t" state="m"/>
- <connection from="38027102#1" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_12_0" dir="r" state="M"/>
- <connection from="38027102#1" to="38027102#2" fromLane="0" toLane="0" via=":728492366_13_0" dir="s" state="M"/>
- <connection from="38027102#1" to="107166846#4" fromLane="0" toLane="0" via=":728492366_14_0" dir="l" state="m"/>
- <connection from="38027102#1" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_15_0" dir="t" state="m"/>
- <connection from="38027102#2" to="81394192#3" fromLane="0" toLane="0" via=":446766149_6_0" dir="r" state="M"/>
- <connection from="38027102#2" to="59159262#0" fromLane="0" toLane="0" via=":446766149_7_0" dir="s" state="M"/>
- <connection from="38027102#2" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_8_0" dir="t" state="m"/>
- <connection from="38027665#0" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_12_0" dir="r" state="m"/>
- <connection from="38027665#0" to="38027665#1" fromLane="0" toLane="0" via=":477486719_13_0" dir="s" state="m"/>
- <connection from="38027665#0" to="107066313#1" fromLane="0" toLane="0" via=":477486719_14_0" dir="l" state="m"/>
- <connection from="38027665#0" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_15_0" dir="t" state="m"/>
- <connection from="38027665#1" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_8_0" dir="r" state="m"/>
- <connection from="38027665#1" to="38027665#2" fromLane="0" toLane="0" via=":728492372_9_0" dir="s" state="m"/>
- <connection from="38027665#1" to="107166846#1" fromLane="0" toLane="0" via=":728492372_10_0" dir="l" state="m"/>
- <connection from="38027665#1" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_11_0" dir="t" state="m"/>
- <connection from="38027665#2" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_6_0" dir="r" state="M"/>
- <connection from="38027665#2" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_7_0" dir="s" state="M"/>
- <connection from="38027665#2" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_8_0" dir="t" state="m"/>
- <connection from="38027665#3" to="81394192#6" fromLane="0" toLane="0" via=":446770959_0_0" dir="r" state="M"/>
- <connection from="38027665#3" to="-38027665#3" fromLane="0" toLane="0" via=":446770959_1_0" dir="t" state="m"/>
- <connection from="38230510#0" to="38230510#1" fromLane="0" toLane="0" via=":450564002_2_0" dir="s" state="m"/>
- <connection from="38230510#0" to="37973565#10" fromLane="0" toLane="0" via=":450564002_3_0" dir="l" state="m"/>
- <connection from="38230510#1" to="23182517#1" fromLane="0" toLane="0" via=":450564003_6_0" tl="450564003" linkIndex="6" dir="r" state="o"/>
- <connection from="38230510#1" to="38230510#2" fromLane="0" toLane="0" via=":450564003_7_0" tl="450564003" linkIndex="7" dir="s" state="o"/>
- <connection from="38230510#1" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_8_0" tl="450564003" linkIndex="8" dir="l" state="o"/>
- <connection from="38230510#2" to="141190464" fromLane="0" toLane="0" via=":1545661417_2_0" dir="s" state="M"/>
- <connection from="38230510#2" to="141190463" fromLane="0" toLane="0" via=":1545661417_3_0" dir="l" state="M"/>
- <connection from="38318373#0" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_0_0" dir="r" state="m"/>
- <connection from="38318373#0" to="38318373#1" fromLane="0" toLane="0" via=":314636763_1_0" dir="s" state="m"/>
- <connection from="38318373#0" to="122394864#2" fromLane="0" toLane="0" via=":314636763_2_0" dir="l" state="m"/>
- <connection from="38318373#0" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_3_0" dir="t" state="m"/>
- <connection from="38318373#1" to="23182484#1" fromLane="0" toLane="0" via=":250685829_4_0" dir="r" state="m"/>
- <connection from="38318373#1" to="190048063" fromLane="0" toLane="0" via=":250685829_5_0" dir="s" state="m"/>
- <connection from="38318373#1" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_6_0" dir="l" state="m"/>
- <connection from="38318373#1" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_7_0" dir="t" state="m"/>
- <connection from="38319546#0" to="154489992#2" fromLane="0" toLane="0" via=":1257054074_0_0" dir="r" state="m"/>
- <connection from="38319546#0" to="38319546#1" fromLane="0" toLane="0" via=":1257054074_1_0" dir="s" state="m"/>
- <connection from="38319546#0" to="-38319546#0" fromLane="0" toLane="0" via=":1257054074_2_0" dir="t" state="m"/>
- <connection from="38319546#1" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_0_0" dir="r" state="m"/>
- <connection from="38319546#1" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_1_0" dir="s" state="m"/>
- <connection from="38319546#1" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_2_0" dir="l" state="m"/>
- <connection from="38319546#1" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_3_0" dir="t" state="m"/>
- <connection from="38319546#2" to="-139118805#1" fromLane="0" toLane="0" via=":1257054172_0_0" dir="r" state="m"/>
- <connection from="38319546#2" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_1_0" dir="s" state="m"/>
- <connection from="38319546#2" to="139118805#2" fromLane="0" toLane="1" via=":1257054172_2_0" dir="l" state="m"/>
- <connection from="38319546#2" to="-38319546#2" fromLane="0" toLane="0" via=":1257054172_3_0" dir="t" state="m"/>
- <connection from="38319546#3" to="38319546#4" fromLane="0" toLane="0" via=":452425486_0_0" dir="s" state="m"/>
- <connection from="38319546#3" to="81523332#1" fromLane="0" toLane="0" via=":452425486_1_0" dir="l" state="m"/>
- <connection from="38319546#3" to="-38319546#3" fromLane="0" toLane="0" via=":452425486_2_0" dir="t" state="m"/>
- <connection from="38319546#4" to="109912572#0" fromLane="0" toLane="0" via=":1257054178_0_0" dir="r" state="="/>
- <connection from="38319546#4" to="38319546#5" fromLane="0" toLane="0" via=":1257054178_1_0" dir="s" state="="/>
- <connection from="38319546#4" to="-38319546#4" fromLane="0" toLane="0" via=":1257054178_2_0" dir="t" state="="/>
- <connection from="38319546#5" to="81096844#3" fromLane="0" toLane="0" via=":452425487_0_0" dir="r" state="m"/>
- <connection from="38319546#5" to="38319546#6" fromLane="0" toLane="0" via=":452425487_1_0" dir="s" state="m"/>
- <connection from="38319546#5" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_2_0" dir="l" state="m"/>
- <connection from="38319546#5" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_3_0" dir="t" state="m"/>
- <connection from="38319546#6" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_0_0" dir="r" state="m"/>
- <connection from="38319546#6" to="38319546#7" fromLane="0" toLane="0" via=":452425488_1_0" dir="s" state="m"/>
- <connection from="38319546#6" to="23066446#1" fromLane="0" toLane="0" via=":452425488_2_0" dir="l" state="m"/>
- <connection from="38319546#6" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_3_0" dir="t" state="m"/>
- <connection from="38319546#7" to="59159260#3" fromLane="0" toLane="0" via=":733663096_0_0" dir="r" state="m"/>
- <connection from="38319546#7" to="38319546#8" fromLane="0" toLane="0" via=":733663096_1_0" dir="s" state="m"/>
- <connection from="38319546#7" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_2_0" dir="l" state="m"/>
- <connection from="38319546#7" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_3_0" dir="t" state="m"/>
- <connection from="38319546#8" to="38319547" fromLane="0" toLane="0" via=":452425489_0_0" dir="s" state="M"/>
- <connection from="38319546#8" to="-38319546#8" fromLane="0" toLane="0" via=":452425489_1_0" dir="t" state="m"/>
- <connection from="38319547" to="38319549#0" fromLane="0" toLane="0" via=":452425490_6_0" dir="r" state="="/>
- <connection from="38319547" to="38319548#0" fromLane="0" toLane="0" via=":452425490_7_0" dir="l" state="="/>
- <connection from="38319547" to="-38319547" fromLane="0" toLane="0" via=":452425490_8_0" dir="t" state="="/>
- <connection from="38319548#0" to="38319548#1" fromLane="0" toLane="0" via=":452425491_6_0" dir="s" state="m"/>
- <connection from="38319548#0" to="23066443#4" fromLane="0" toLane="0" via=":452425491_7_0" dir="l" state="m"/>
- <connection from="38319548#0" to="-38319548#0" fromLane="0" toLane="0" via=":452425491_8_0" dir="t" state="m"/>
- <connection from="38319548#1" to="58770725#4" fromLane="0" toLane="0" via=":452425493_6_0" dir="r" state="m"/>
- <connection from="38319548#1" to="38319548#2" fromLane="0" toLane="0" via=":452425493_7_0" dir="s" state="m"/>
- <connection from="38319548#1" to="-38319548#1" fromLane="0" toLane="0" via=":452425493_8_0" dir="t" state="m"/>
- <connection from="38319548#10" to="101272435#4" fromLane="0" toLane="0" via=":1669480279_0_0" dir="r" state="m"/>
- <connection from="38319548#10" to="38319548#11" fromLane="0" toLane="0" via=":1669480279_1_0" dir="s" state="m"/>
- <connection from="38319548#10" to="-38319548#10" fromLane="0" toLane="0" via=":1669480279_2_0" dir="t" state="m"/>
- <connection from="38319548#11" to="154844489#2" fromLane="0" toLane="0" via=":1168929659_0_0" dir="r" state="m"/>
- <connection from="38319548#11" to="38319548#12" fromLane="0" toLane="0" via=":1168929659_1_0" dir="s" state="m"/>
- <connection from="38319548#11" to="-38319548#11" fromLane="0" toLane="0" via=":1168929659_2_0" dir="t" state="m"/>
- <connection from="38319548#12" to="103851602#1" fromLane="0" toLane="0" via=":951739684_0_0" dir="r" state="m"/>
- <connection from="38319548#12" to="38319548#13" fromLane="0" toLane="0" via=":951739684_1_0" dir="s" state="m"/>
- <connection from="38319548#12" to="-38319548#12" fromLane="0" toLane="0" via=":951739684_2_0" dir="t" state="m"/>
- <connection from="38319548#13" to="38319548#14" fromLane="0" toLane="0" via=":951739649_0_0" dir="s" state="m"/>
- <connection from="38319548#13" to="111863096#4" fromLane="0" toLane="0" via=":951739649_1_0" dir="l" state="m"/>
- <connection from="38319548#13" to="-38319548#13" fromLane="0" toLane="0" via=":951739649_2_0" dir="t" state="m"/>
- <connection from="38319548#14" to="38319548#15" fromLane="0" toLane="0" via=":1168929546_0_0" dir="s" state="m"/>
- <connection from="38319548#14" to="154844484#1" fromLane="0" toLane="0" via=":1168929546_1_0" dir="l" state="m"/>
- <connection from="38319548#14" to="-38319548#14" fromLane="0" toLane="0" via=":1168929546_2_0" dir="t" state="m"/>
- <connection from="38319548#15" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_0_0" dir="r" state="m"/>
- <connection from="38319548#15" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_1_0" dir="s" state="m"/>
- <connection from="38319548#15" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_2_0" dir="l" state="m"/>
- <connection from="38319548#15" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_3_0" dir="t" state="m"/>
- <connection from="38319548#16" to="-38319548#16" fromLane="0" toLane="0" via=":1780381201_0_0" dir="t" state="M"/>
- <connection from="38319548#2" to="37771900#5" fromLane="0" toLane="0" via=":1669480287_6_0" dir="r" state="m"/>
- <connection from="38319548#2" to="38319548#3" fromLane="0" toLane="0" via=":1669480287_7_0" dir="s" state="m"/>
- <connection from="38319548#2" to="-38319548#2" fromLane="0" toLane="0" via=":1669480287_8_0" dir="t" state="m"/>
- <connection from="38319548#3" to="81124939#1" fromLane="0" toLane="0" via=":1669480286_7_0" dir="r" state="m"/>
- <connection from="38319548#3" to="38319548#4" fromLane="0" toLane="0" via=":1669480286_8_0" dir="s" state="m"/>
- <connection from="38319548#3" to="-38319548#3" fromLane="0" toLane="0" via=":1669480286_9_0" dir="t" state="m"/>
- <connection from="38319548#4" to="-160587537#0" fromLane="0" toLane="0" via=":1726394727_14_0" dir="r" state="m"/>
- <connection from="38319548#4" to="38319548#5" fromLane="0" toLane="0" via=":1726394727_15_0" dir="s" state="m"/>
- <connection from="38319548#4" to="160587537#1" fromLane="0" toLane="1" via=":1726394727_16_0" dir="l" state="m"/>
- <connection from="38319548#4" to="-38319548#4" fromLane="0" toLane="0" via=":1726394727_17_0" dir="t" state="m"/>
- <connection from="38319548#5" to="38319548#6" fromLane="0" toLane="0" via=":1669480284_7_0" dir="s" state="m"/>
- <connection from="38319548#5" to="154844474#1" fromLane="0" toLane="1" via=":1669480284_8_0" dir="l" state="m"/>
- <connection from="38319548#5" to="-38319548#5" fromLane="0" toLane="0" via=":1669480284_9_0" dir="t" state="m"/>
- <connection from="38319548#6" to="38319548#7" fromLane="0" toLane="0" via=":452425497_6_0" dir="s" state="="/>
- <connection from="38319548#6" to="81096822#0" fromLane="0" toLane="0" via=":452425497_7_0" dir="l" state="="/>
- <connection from="38319548#6" to="-38319548#6" fromLane="0" toLane="0" via=":452425497_8_0" dir="t" state="="/>
- <connection from="38319548#7" to="38319548#8" fromLane="0" toLane="0" via=":1669480283_6_0" dir="s" state="m"/>
- <connection from="38319548#7" to="101272435#6" fromLane="0" toLane="0" via=":1669480283_7_0" dir="l" state="m"/>
- <connection from="38319548#7" to="-38319548#7" fromLane="0" toLane="0" via=":1669480283_8_0" dir="t" state="m"/>
- <connection from="38319548#8" to="38319548#9" fromLane="0" toLane="0" via=":1168929661_0_0" dir="s" state="="/>
- <connection from="38319548#8" to="101272434" fromLane="0" toLane="0" via=":1168929661_1_0" dir="l" state="="/>
- <connection from="38319548#8" to="-38319548#8" fromLane="0" toLane="0" via=":1168929661_2_0" dir="t" state="="/>
- <connection from="38319548#9" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_0_0" dir="r" state="m"/>
- <connection from="38319548#9" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_1_0" dir="s" state="m"/>
- <connection from="38319548#9" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_2_0" dir="l" state="m"/>
- <connection from="38319548#9" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_3_0" dir="t" state="m"/>
- <connection from="38319549#0" to="44738605#2" fromLane="0" toLane="0" via=":1719213141_0_0" dir="r" state="m"/>
- <connection from="38319549#0" to="38319549#1" fromLane="0" toLane="0" via=":1719213141_1_0" dir="s" state="m"/>
- <connection from="38319549#0" to="-38319549#0" fromLane="0" toLane="0" via=":1719213141_2_0" dir="t" state="m"/>
- <connection from="38319549#1" to="38319549#2" fromLane="0" toLane="0" via=":1719213140_0_0" dir="s" state="m"/>
- <connection from="38319549#1" to="151167658#1" fromLane="0" toLane="0" via=":1719213140_1_0" dir="l" state="m"/>
- <connection from="38319549#1" to="-38319549#1" fromLane="0" toLane="0" via=":1719213140_2_0" dir="t" state="m"/>
- <connection from="38319549#2" to="38319550#0" fromLane="0" toLane="0" via=":452425499_0_0" dir="l" state="M"/>
- <connection from="38319549#2" to="-38319549#2" fromLane="0" toLane="0" via=":452425499_1_0" dir="t" state="m"/>
- <connection from="38319550#0" to="58770723#2" fromLane="0" toLane="0" via=":452425500_0_0" dir="r" state="m"/>
- <connection from="38319550#0" to="38319550#1" fromLane="0" toLane="0" via=":452425500_1_0" dir="s" state="m"/>
- <connection from="38319550#0" to="-38319550#0" fromLane="0" toLane="0" via=":452425500_2_0" dir="t" state="m"/>
- <connection from="38319550#1" to="38319550#2" fromLane="0" toLane="0" via=":452425501_0_0" dir="s" state="m"/>
- <connection from="38319550#1" to="37771902#1" fromLane="0" toLane="0" via=":452425501_1_0" dir="l" state="m"/>
- <connection from="38319550#1" to="-38319550#1" fromLane="0" toLane="0" via=":452425501_2_0" dir="t" state="m"/>
- <connection from="38319550#10" to="-166576464#4" fromLane="0" toLane="0" via=":1780219371_0_0" dir="r" state="M"/>
- <connection from="38319550#10" to="38319550#11" fromLane="0" toLane="0" via=":1780219371_1_0" dir="s" state="m"/>
- <connection from="38319550#10" to="-38319550#10" fromLane="0" toLane="0" via=":1780219371_2_0" dir="t" state="m"/>
- <connection from="38319550#11" to="38319550#12" fromLane="0" toLane="0" via=":1719213509_0_0" dir="s" state="m"/>
- <connection from="38319550#11" to="8272412#1" fromLane="0" toLane="0" via=":1719213509_1_0" dir="l" state="m"/>
- <connection from="38319550#11" to="-38319550#11" fromLane="0" toLane="0" via=":1719213509_2_0" dir="t" state="m"/>
- <connection from="38319550#12" to="38319550#13" fromLane="0" toLane="0" via=":1719213668_0_0" dir="s" state="m"/>
- <connection from="38319550#12" to="149419435#1" fromLane="0" toLane="0" via=":1719213668_1_0" dir="l" state="m"/>
- <connection from="38319550#12" to="-38319550#12" fromLane="0" toLane="0" via=":1719213668_2_0" dir="t" state="m"/>
- <connection from="38319550#13" to="38319550#14" fromLane="0" toLane="0" via=":719464017_2_0" tl="719464017" linkIndex="2" dir="s" state="o"/>
- <connection from="38319550#13" to="-38319550#13" fromLane="0" toLane="0" via=":719464017_3_0" tl="719464017" linkIndex="3" dir="t" state="o"/>
- <connection from="38319550#14" to="-38319550#14" fromLane="0" toLane="0" via=":650318340_0_0" dir="t" state="M"/>
- <connection from="38319550#2" to="166576462#0" fromLane="0" toLane="0" via=":1780219365_0_0" dir="r" state="M"/>
- <connection from="38319550#2" to="38319550#3" fromLane="0" toLane="0" via=":1780219365_1_0" dir="s" state="m"/>
- <connection from="38319550#2" to="-38319550#2" fromLane="0" toLane="0" via=":1780219365_2_0" dir="t" state="m"/>
- <connection from="38319550#3" to="101272429#2" fromLane="0" toLane="0" via=":452425502_0_0" tl="452425502" linkIndex="0" dir="r" state="o"/>
- <connection from="38319550#3" to="38319550#4" fromLane="0" toLane="0" via=":452425502_1_0" tl="452425502" linkIndex="1" dir="s" state="o"/>
- <connection from="38319550#3" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_2_0" tl="452425502" linkIndex="2" dir="t" state="o"/>
- <connection from="38319550#4" to="111863125#2" fromLane="0" toLane="0" via=":950640531_0_0" dir="r" state="m"/>
- <connection from="38319550#4" to="38319550#5" fromLane="0" toLane="0" via=":950640531_1_0" dir="s" state="m"/>
- <connection from="38319550#4" to="-38319550#4" fromLane="0" toLane="0" via=":950640531_2_0" dir="t" state="m"/>
- <connection from="38319550#5" to="149868584#6" fromLane="0" toLane="0" via=":767282288_0_0" tl="767282288" linkIndex="0" dir="r" state="o"/>
- <connection from="38319550#5" to="38319550#6" fromLane="0" toLane="0" via=":767282288_1_0" tl="767282288" linkIndex="1" dir="s" state="o"/>
- <connection from="38319550#5" to="-149868584#5" fromLane="0" toLane="1" via=":767282288_2_0" tl="767282288" linkIndex="2" dir="l" state="o"/>
- <connection from="38319550#5" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_3_0" tl="767282288" linkIndex="3" dir="t" state="o"/>
- <connection from="38319550#6" to="38319550#7" fromLane="0" toLane="0" via=":950640351_0_0" dir="s" state="m"/>
- <connection from="38319550#6" to="111549913#5" fromLane="0" toLane="0" via=":950640351_1_0" dir="l" state="m"/>
- <connection from="38319550#6" to="-38319550#6" fromLane="0" toLane="0" via=":950640351_2_0" dir="t" state="m"/>
- <connection from="38319550#7" to="38319550#8" fromLane="0" toLane="0" via=":719463587_0_0" tl="719463587" linkIndex="0" dir="s" state="o"/>
- <connection from="38319550#7" to="37772596#1" fromLane="0" toLane="0" via=":719463587_1_0" tl="719463587" linkIndex="1" dir="l" state="o"/>
- <connection from="38319550#7" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_2_0" tl="719463587" linkIndex="2" dir="t" state="o"/>
- <connection from="38319550#8" to="-166576468#3" fromLane="0" toLane="0" via=":1780219332_0_0" dir="r" state="M"/>
- <connection from="38319550#8" to="38319550#9" fromLane="0" toLane="0" via=":1780219332_1_0" dir="s" state="m"/>
- <connection from="38319550#8" to="-38319550#8" fromLane="0" toLane="0" via=":1780219332_2_0" dir="t" state="m"/>
- <connection from="38319550#9" to="24573905#3" fromLane="0" toLane="0" via=":719463795_0_0" dir="r" state="m"/>
- <connection from="38319550#9" to="38319550#10" fromLane="0" toLane="0" via=":719463795_1_0" dir="s" state="m"/>
- <connection from="38319550#9" to="-38319550#9" fromLane="0" toLane="0" via=":719463795_2_0" dir="t" state="m"/>
- <connection from="40196943" to="40196944#1" fromLane="0" toLane="0" via=":484282955_2_0" dir="r" state="m"/>
- <connection from="40196943" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_3_0" dir="l" state="m"/>
- <connection from="40196944#0" to="40196944#1" fromLane="0" toLane="0" via=":484282955_4_0" dir="s" state="M"/>
- <connection from="40196944#0" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_5_0" dir="t" state="m"/>
- <connection from="40196944#1" to="42976408#1" fromLane="0" toLane="0" via=":538265864_2_0" dir="r" state="M"/>
- <connection from="40196944#1" to="-40196944#1" fromLane="0" toLane="0" via=":538265864_3_0" dir="t" state="m"/>
- <connection from="42976405#0" to="42976405#1" fromLane="0" toLane="1" via=":950640558_2_0" dir="s" state="M"/>
- <connection from="42976405#0" to="111863125#4" fromLane="1" toLane="0" via=":950640558_3_0" dir="l" state="m"/>
- <connection from="42976405#1" to="42976405#2" fromLane="0" toLane="0" via=":446017747_2_0" tl="446017747" linkIndex="2" dir="s" state="o"/>
- <connection from="42976405#1" to="42976405#2" fromLane="1" toLane="1" via=":446017747_3_0" tl="446017747" linkIndex="3" dir="s" state="o"/>
- <connection from="42976405#1" to="37973569#1" fromLane="1" toLane="0" via=":446017747_4_0" tl="446017747" linkIndex="4" dir="l" state="o"/>
- <connection from="42976405#2" to="-166576462#1" fromLane="0" toLane="0" via=":1780219361_3_0" dir="r" state="M"/>
- <connection from="42976405#2" to="42976405#3" fromLane="0" toLane="0" via=":1780219361_4_0" dir="s" state="M"/>
- <connection from="42976405#2" to="42976405#3" fromLane="1" toLane="1" via=":1780219361_5_0" dir="s" state="M"/>
- <connection from="42976405#2" to="166576462#2" fromLane="1" toLane="0" via=":1780219361_6_0" dir="l" state="M"/>
- <connection from="42976405#3" to="154500699#0" fromLane="0" toLane="0" via=":438042386_0_0" tl="438042386" linkIndex="0" dir="r" state="o"/>
- <connection from="42976405#3" to="133960538#0" fromLane="0" toLane="0" via=":438042386_1_0" tl="438042386" linkIndex="1" dir="s" state="o"/>
- <connection from="42976405#3" to="133960538#0" fromLane="1" toLane="1" via=":438042386_2_0" tl="438042386" linkIndex="2" dir="s" state="o"/>
- <connection from="42976406#0" to="42976406#1" fromLane="0" toLane="0" via=":446017742_0_0" tl="446017742" linkIndex="0" dir="s" state="o"/>
- <connection from="42976406#0" to="42976406#1" fromLane="1" toLane="1" via=":446017742_1_0" tl="446017742" linkIndex="1" dir="s" state="o"/>
- <connection from="42976406#0" to="42976406#1" fromLane="2" toLane="2" via=":446017742_2_0" tl="446017742" linkIndex="2" dir="s" state="o"/>
- <connection from="42976406#0" to="37973568#6" fromLane="2" toLane="0" via=":446017742_3_0" tl="446017742" linkIndex="3" dir="l" state="o"/>
- <connection from="42976406#1" to="-166576468#0" fromLane="0" toLane="0" via=":1780219343_0_0" dir="r" state="M"/>
- <connection from="42976406#1" to="42976406#2" fromLane="0" toLane="0" via=":1780219343_1_0" dir="s" state="M"/>
- <connection from="42976406#1" to="42976406#2" fromLane="1" toLane="1" via=":1780219343_2_0" dir="s" state="M"/>
- <connection from="42976406#1" to="42976406#2" fromLane="2" toLane="2" via=":1780219343_3_0" dir="s" state="M"/>
- <connection from="42976406#1" to="166576468#1" fromLane="2" toLane="0" via=":1780219343_4_0" dir="l" state="M"/>
- <connection from="42976406#2" to="-166576464#1" fromLane="0" toLane="0" via=":1780219331_0_0" dir="r" state="M"/>
- <connection from="42976406#2" to="42976406#3" fromLane="0" toLane="0" via=":1780219331_1_0" dir="s" state="M"/>
- <connection from="42976406#2" to="42976406#3" fromLane="1" toLane="1" via=":1780219331_2_0" dir="s" state="M"/>
- <connection from="42976406#2" to="42976406#3" fromLane="2" toLane="2" via=":1780219331_3_0" dir="s" state="M"/>
- <connection from="42976406#2" to="166576464#2" fromLane="2" toLane="0" via=":1780219331_4_0" dir="l" state="M"/>
- <connection from="42976406#3" to="-179692877#1" fromLane="0" toLane="0" via=":441236049_0_0" dir="r" state="M"/>
- <connection from="42976406#3" to="37638426#1" fromLane="0" toLane="0" via=":441236049_1_0" dir="R" state="M"/>
- <connection from="42976406#3" to="42976406#4" fromLane="0" toLane="0" via=":441236049_2_0" dir="s" state="M"/>
- <connection from="42976406#3" to="42976406#4" fromLane="1" toLane="1" via=":441236049_3_0" dir="s" state="M"/>
- <connection from="42976406#3" to="42976406#4" fromLane="2" toLane="2" via=":441236049_4_0" dir="s" state="M"/>
- <connection from="42976406#4" to="42976406#5" fromLane="0" toLane="0" via=":441236060_0_0" dir="s" state="M"/>
- <connection from="42976406#4" to="42976406#5" fromLane="1" toLane="1" via=":441236060_1_0" dir="s" state="M"/>
- <connection from="42976406#4" to="42976406#5" fromLane="2" toLane="2" via=":441236060_2_0" dir="s" state="M"/>
- <connection from="42976406#4" to="154500706#1" fromLane="2" toLane="0" via=":441236060_3_0" dir="l" state="M"/>
- <connection from="42976407#0" to="42976407#1" fromLane="0" toLane="0" via=":538265860_0_0" tl="538265860" linkIndex="0" dir="s" state="o"/>
- <connection from="42976407#1" to="149419435#0" fromLane="0" toLane="0" via=":1624003172_0_0" dir="r" state="M"/>
- <connection from="42976407#1" to="42976407#2" fromLane="0" toLane="0" via=":1624003172_1_0" dir="s" state="M"/>
- <connection from="42976407#2" to="154500706#3" fromLane="0" toLane="0" via=":1168929298_0_0" tl="1168929298" linkIndex="0" dir="s" state="o"/>
- <connection from="42976408#0" to="-40196944#1" fromLane="0" toLane="0" via=":538265864_0_0" dir="r" state="M"/>
- <connection from="42976408#0" to="42976408#1" fromLane="0" toLane="0" via=":538265864_1_0" dir="s" state="m"/>
- <connection from="42976408#1" to="42976408#2" fromLane="0" toLane="0" via=":538265866_0_0" tl="538265866" linkIndex="0" dir="s" state="o"/>
- <connection from="42976410#0" to="42976410#1" fromLane="0" toLane="0" via=":950640525_2_0" dir="s" state="m"/>
- <connection from="42976410#0" to="111863125#3" fromLane="0" toLane="0" via=":950640525_3_0" dir="l" state="m"/>
- <connection from="42976410#1" to="42976410#2" fromLane="0" toLane="0" via=":443101912_2_0" tl="443101912" linkIndex="2" dir="s" state="o"/>
- <connection from="42976410#1" to="37973569#0" fromLane="0" toLane="0" via=":443101912_3_0" tl="443101912" linkIndex="3" dir="l" state="o"/>
- <connection from="42976410#2" to="-166576462#0" fromLane="0" toLane="0" via=":1780219377_3_0" dir="r" state="M"/>
- <connection from="42976410#2" to="42976410#3" fromLane="0" toLane="0" via=":1780219377_4_0" dir="s" state="M"/>
- <connection from="42976410#2" to="166576462#1" fromLane="0" toLane="0" via=":1780219377_5_0" dir="l" state="M"/>
- <connection from="42976410#3" to="37771902#0" fromLane="0" toLane="0" via=":443089069_0_0" dir="r" state="M"/>
- <connection from="42976410#3" to="42976410#4" fromLane="0" toLane="0" via=":443089069_1_0" dir="s" state="M"/>
- <connection from="42976410#4" to="42976410#5" fromLane="0" toLane="0" via=":250689290_1_0" dir="s" state="m"/>
- <connection from="42976410#5" to="154500699#1" fromLane="0" toLane="0" via=":438042378_0_0" tl="438042378" linkIndex="0" dir="s" state="o"/>
- <connection from="43684741#0" to="43684741#1" fromLane="0" toLane="0" via=":561204538_0_0" dir="s" state="M"/>
- <connection from="43684741#0" to="81394192#8" fromLane="0" toLane="0" via=":561204538_1_0" dir="l" state="m"/>
- <connection from="43684741#0" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_2_0" dir="t" state="m"/>
- <connection from="43684741#1" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_0_0" dir="r" state="M"/>
- <connection from="43684741#1" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_1_0" dir="s" state="M"/>
- <connection from="43684741#1" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_2_0" dir="t" state="m"/>
- <connection from="43684741#2" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_0_0" dir="s" state="M"/>
- <connection from="43684741#2" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_1_0" dir="t" state="m"/>
- <connection from="43684741#3" to="37973569#9" fromLane="0" toLane="0" via=":552842255_0_0" dir="r" state="M"/>
- <connection from="43684741#3" to="43684741#4" fromLane="0" toLane="0" via=":552842255_1_0" dir="s" state="M"/>
- <connection from="43684741#3" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_2_0" dir="t" state="m"/>
- <connection from="43684741#4" to="111863125#8" fromLane="0" toLane="0" via=":950640393_0_0" dir="r" state="m"/>
- <connection from="43684741#4" to="43684741#5" fromLane="0" toLane="0" via=":950640393_1_0" dir="s" state="m"/>
- <connection from="43684741#4" to="-43684741#4" fromLane="0" toLane="0" via=":950640393_2_0" dir="t" state="m"/>
- <connection from="43684741#5" to="37973572#5" fromLane="0" toLane="0" via=":552842254_0_0" dir="r" state="m"/>
- <connection from="43684741#5" to="-37973572#4" fromLane="0" toLane="1" via=":552842254_1_0" dir="l" state="m"/>
- <connection from="43684741#5" to="-43684741#5" fromLane="0" toLane="0" via=":552842254_2_0" dir="t" state="m"/>
- <connection from="44104490" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_4_0" dir="r" state="m"/>
- <connection from="44104490" to="44104491#1" fromLane="0" toLane="0" via=":560472377_5_0" dir="l" state="m"/>
- <connection from="44104491#0" to="44104491#1" fromLane="0" toLane="0" via=":560472377_2_0" dir="s" state="M"/>
- <connection from="44104491#0" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_3_0" dir="t" state="m"/>
- <connection from="44104491#1" to="37942668#1" fromLane="0" toLane="0" via=":560472378_2_0" dir="l" state="m"/>
- <connection from="44104491#1" to="-44104491#1" fromLane="0" toLane="0" via=":560472378_3_0" dir="t" state="m"/>
- <connection from="44641744#0" to="108329426#1" fromLane="0" toLane="0" via=":427996792_20_0" tl="427996792" linkIndex="20" dir="r" state="o"/>
- <connection from="44641744#0" to="44641744#1" fromLane="0" toLane="0" via=":427996792_21_0" tl="427996792" linkIndex="21" dir="s" state="o"/>
- <connection from="44641744#0" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_22_0" tl="427996792" linkIndex="22" dir="L" state="o"/>
- <connection from="44641744#0" to="108329427#0" fromLane="0" toLane="0" via=":427996792_23_0" tl="427996792" linkIndex="23" dir="L" state="o"/>
- <connection from="44641744#0" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_24_0" tl="427996792" linkIndex="24" dir="l" state="o"/>
- <connection from="44641744#1" to="37449245#0" fromLane="0" toLane="0" via=":13929737_2_0" dir="r" state="M"/>
- <connection from="44641744#1" to="172498380#0" fromLane="0" toLane="0" via=":13929737_3_0" dir="R" state="M"/>
- <connection from="44641745#0" to="133868231#1" fromLane="0" toLane="0" via=":948350595_0_0" dir="r" state="m"/>
- <connection from="44641745#0" to="44641745#1" fromLane="0" toLane="0" via=":948350595_1_0" dir="s" state="m"/>
- <connection from="44641745#1" to="81394169#6" fromLane="0" toLane="0" via=":948350715_0_0" dir="r" state="m"/>
- <connection from="44641745#1" to="44641745#2" fromLane="0" toLane="0" via=":948350715_1_0" dir="s" state="m"/>
- <connection from="44641745#2" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_3_0" dir="r" state="m"/>
- <connection from="44641745#2" to="133868191#0" fromLane="0" toLane="1" via=":243489891_4_0" dir="s" state="m"/>
- <connection from="44641745#2" to="130443629#1" fromLane="0" toLane="0" via=":243489891_5_0" dir="l" state="m"/>
- <connection from="44738605#0" to="23066443#3" fromLane="0" toLane="0" via=":438042372_0_0" dir="r" state="M"/>
- <connection from="44738605#0" to="44738605#1" fromLane="0" toLane="0" via=":438042372_1_0" dir="s" state="M"/>
- <connection from="44738605#1" to="-38319549#0" fromLane="0" toLane="0" via=":1719213141_3_0" dir="r" state="M"/>
- <connection from="44738605#1" to="44738605#2" fromLane="0" toLane="0" via=":1719213141_4_0" dir="s" state="M"/>
- <connection from="44738605#1" to="38319549#1" fromLane="0" toLane="0" via=":1719213141_5_0" dir="l" state="M"/>
- <connection from="44738605#2" to="37449249#0" fromLane="0" toLane="0" via=":438042373_0_0" tl="438042373" linkIndex="0" dir="s" state="o"/>
- <connection from="58770723#0" to="23066443#1" fromLane="0" toLane="0" via=":443089071_0_0" dir="r" state="M"/>
- <connection from="58770723#0" to="58770723#1" fromLane="0" toLane="0" via=":443089071_1_0" dir="s" state="M"/>
- <connection from="58770723#1" to="-38319550#0" fromLane="0" toLane="0" via=":452425500_3_0" dir="r" state="M"/>
- <connection from="58770723#1" to="58770723#2" fromLane="0" toLane="0" via=":452425500_4_0" dir="s" state="M"/>
- <connection from="58770723#1" to="38319550#1" fromLane="0" toLane="0" via=":452425500_5_0" dir="l" state="M"/>
- <connection from="58770723#2" to="42976410#5" fromLane="0" toLane="0" via=":250689290_0_0" dir="r" state="M"/>
- <connection from="58770724" to="58770837#0" fromLane="0" toLane="0" via=":443089070_1_0" dir="r" state="M"/>
- <connection from="58770725#0" to="81096844#1" fromLane="0" toLane="0" via=":248913142_0_0" dir="r" state="m"/>
- <connection from="58770725#0" to="58770725#1" fromLane="0" toLane="0" via=":248913142_1_0" dir="s" state="m"/>
- <connection from="58770725#0" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_2_0" dir="l" state="m"/>
- <connection from="58770725#1" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_0_0" dir="r" state="m"/>
- <connection from="58770725#1" to="58770725#2" fromLane="0" toLane="0" via=":248913133_1_0" dir="s" state="m"/>
- <connection from="58770725#1" to="23066446#3" fromLane="0" toLane="0" via=":248913133_2_0" dir="l" state="m"/>
- <connection from="58770725#2" to="59159260#1" fromLane="0" toLane="0" via=":733663093_0_0" dir="r" state="m"/>
- <connection from="58770725#2" to="58770725#3" fromLane="0" toLane="0" via=":733663093_1_0" dir="s" state="m"/>
- <connection from="58770725#2" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_2_0" dir="l" state="m"/>
- <connection from="58770725#3" to="-38319548#1" fromLane="0" toLane="0" via=":452425493_0_0" dir="r" state="M"/>
- <connection from="58770725#3" to="58770725#4" fromLane="0" toLane="0" via=":452425493_1_0" dir="s" state="M"/>
- <connection from="58770725#3" to="38319548#2" fromLane="0" toLane="0" via=":452425493_2_0" dir="l" state="M"/>
- <connection from="58770725#4" to="-110514869#0" fromLane="0" toLane="0" via=":252417189_0_0" dir="r" state="m"/>
- <connection from="58770725#4" to="58770725#5" fromLane="0" toLane="0" via=":252417189_1_0" dir="s" state="m"/>
- <connection from="58770725#4" to="110514869#1" fromLane="0" toLane="1" via=":252417189_2_0" dir="l" state="m"/>
- <connection from="58770725#5" to="58770723#0" fromLane="0" toLane="0" via=":443089072_0_0" dir="r" state="m"/>
- <connection from="58770725#5" to="58770725#6" fromLane="0" toLane="0" via=":443089072_1_0" dir="s" state="m"/>
- <connection from="58770725#6" to="58770724" fromLane="0" toLane="0" via=":252417190_0_0" dir="l" state="m"/>
- <connection from="58770833" to="154844461#2" fromLane="0" toLane="0" via=":1168929295_0_0" tl="1168929295" linkIndex="0" dir="s" state="o"/>
- <connection from="58770836" to="58770833" fromLane="0" toLane="0" via=":443089066_0_0" dir="s" state="m"/>
- <connection from="58770837#0" to="83042949" fromLane="0" toLane="0" via=":966132131_0_0" dir="r" state="M"/>
- <connection from="58770837#0" to="58770837#1" fromLane="0" toLane="0" via=":966132131_1_0" dir="s" state="M"/>
- <connection from="58770837#1" to="58770836" fromLane="0" toLane="0" via=":443089065_0_0" dir="s" state="m"/>
- <connection from="58779718#0" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_8_0" dir="r" state="m"/>
- <connection from="58779718#0" to="58779718#1" fromLane="0" toLane="0" via=":728492360_9_0" dir="s" state="m"/>
- <connection from="58779718#0" to="107166846#2" fromLane="0" toLane="0" via=":728492360_10_0" dir="l" state="m"/>
- <connection from="58779718#0" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_11_0" dir="t" state="m"/>
- <connection from="58779718#1" to="81394192#5" fromLane="0" toLane="0" via=":728492364_0_0" dir="r" state="M"/>
- <connection from="58779718#1" to="-58779718#1" fromLane="0" toLane="0" via=":728492364_1_0" dir="t" state="m"/>
- <connection from="58779719#0" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_8_0" dir="r" state="m"/>
- <connection from="58779719#0" to="58779719#1" fromLane="0" toLane="0" via=":728492361_9_0" dir="s" state="m"/>
- <connection from="58779719#0" to="107166846#3" fromLane="0" toLane="0" via=":728492361_10_0" dir="l" state="m"/>
- <connection from="58779719#0" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_11_0" dir="t" state="m"/>
- <connection from="58779719#1" to="81394192#4" fromLane="0" toLane="0" via=":728492371_2_0" dir="r" state="M"/>
- <connection from="58779719#1" to="-58779719#1" fromLane="0" toLane="0" via=":728492371_3_0" dir="t" state="m"/>
- <connection from="59159259#0" to="37942667#4" fromLane="0" toLane="0" via=":1212941077_0_0" dir="r" state="M"/>
- <connection from="59159259#0" to="59159259#1" fromLane="0" toLane="0" via=":1212941077_1_0" dir="s" state="M"/>
- <connection from="59159259#1" to="-37973566" fromLane="0" toLane="0" via=":552842256_0_0" dir="r" state="m"/>
- <connection from="59159259#1" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_1_0" dir="s" state="m"/>
- <connection from="59159259#1" to="43684741#0" fromLane="0" toLane="0" via=":552842256_2_0" dir="s" state="m"/>
- <connection from="59159259#1" to="130443630#0" fromLane="0" toLane="0" via=":552842256_3_0" dir="L" state="m"/>
- <connection from="59159259#1" to="105251811#0" fromLane="0" toLane="0" via=":552842256_4_0" dir="L" state="m"/>
- <connection from="59159259#1" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_5_0" dir="l" state="m"/>
- <connection from="59159260#0" to="59159260#1" fromLane="0" toLane="0" via=":733663093_3_0" dir="s" state="M"/>
- <connection from="59159260#0" to="58770725#3" fromLane="0" toLane="0" via=":733663093_4_0" dir="l" state="m"/>
- <connection from="59159260#0" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_5_0" dir="t" state="m"/>
- <connection from="59159260#1" to="23066443#5" fromLane="0" toLane="0" via=":733663121_0_0" dir="r" state="M"/>
- <connection from="59159260#1" to="59159260#2" fromLane="0" toLane="0" via=":733663121_1_0" dir="s" state="M"/>
- <connection from="59159260#1" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_2_0" dir="t" state="m"/>
- <connection from="59159260#2" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_4_0" dir="r" state="M"/>
- <connection from="59159260#2" to="59159260#3" fromLane="0" toLane="0" via=":733663096_5_0" dir="s" state="M"/>
- <connection from="59159260#2" to="38319546#8" fromLane="0" toLane="0" via=":733663096_6_0" dir="l" state="m"/>
- <connection from="59159260#2" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_7_0" dir="t" state="m"/>
- <connection from="59159260#3" to="37449253#1" fromLane="0" toLane="0" via=":733663089_0_0" dir="r" state="m"/>
- <connection from="59159260#3" to="-59159260#3" fromLane="0" toLane="0" via=":733663089_1_0" dir="t" state="m"/>
- <connection from="59159262#0" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_12_0" dir="r" state="m"/>
- <connection from="59159262#0" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_13_0" dir="s" state="m"/>
- <connection from="59159262#0" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_14_0" dir="l" state="m"/>
- <connection from="59159262#0" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_15_0" dir="t" state="m"/>
- <connection from="59159262#1" to="59159262#2" fromLane="0" toLane="0" via=":733663082_6_0" dir="s" state="M"/>
- <connection from="59159262#1" to="37973565#1" fromLane="0" toLane="0" via=":733663082_7_0" dir="l" state="m"/>
- <connection from="59159262#1" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_8_0" dir="t" state="m"/>
- <connection from="59159262#2" to="59159262#3" fromLane="0" toLane="0" via=":956116503_6_0" dir="s" state="M"/>
- <connection from="59159262#2" to="44104491#0" fromLane="0" toLane="0" via=":956116503_7_0" dir="l" state="m"/>
- <connection from="59159262#2" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_8_0" dir="t" state="m"/>
- <connection from="59159262#3" to="-134872478" fromLane="0" toLane="0" via=":1482088987_6_0" dir="r" state="M"/>
- <connection from="59159262#3" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_7_0" dir="s" state="M"/>
- <connection from="59159262#3" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_8_0" dir="t" state="m"/>
- <connection from="59159262#4" to="69931595#1" fromLane="0" toLane="0" via=":733663136_6_0" dir="r" state="m"/>
- <connection from="59159262#4" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_7_0" dir="l" state="m"/>
- <connection from="59159262#4" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_8_0" dir="t" state="m"/>
- <connection from="59159266#0" to="134872478" fromLane="0" toLane="0" via=":1482088973_2_0" dir="r" state="M"/>
- <connection from="59159266#0" to="59159266#1" fromLane="0" toLane="0" via=":1482088973_3_0" dir="s" state="M"/>
- <connection from="59159266#1" to="37942667#5" fromLane="0" toLane="0" via=":733663070_0_0" dir="r" state="M"/>
- <connection from="69931595#0" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_0_0" dir="r" state="M"/>
- <connection from="69931595#0" to="69931595#1" fromLane="0" toLane="0" via=":733663136_1_0" dir="s" state="M"/>
- <connection from="69931595#0" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_2_0" dir="t" state="m"/>
- <connection from="69931595#1" to="191176268" fromLane="0" toLane="0" via=":2017759588_0_0" dir="r" state="M"/>
- <connection from="69931595#1" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_1_0" dir="s" state="M"/>
- <connection from="69931595#1" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_2_0" dir="t" state="m"/>
- <connection from="69931595#2" to="59159266#0" fromLane="0" toLane="0" via=":733663116_0_0" dir="r" state="M"/>
- <connection from="69931595#2" to="69931595#3" fromLane="0" toLane="0" via=":733663116_1_0" dir="s" state="M"/>
- <connection from="69931595#2" to="-69931595#2" fromLane="0" toLane="0" via=":733663116_2_0" dir="t" state="m"/>
- <connection from="69931595#3" to="59159259#0" fromLane="0" toLane="0" via=":733663076_0_0" dir="r" state="M"/>
- <connection from="69931595#3" to="105283535#0" fromLane="0" toLane="0" via=":733663076_1_0" dir="R" state="M"/>
- <connection from="69931595#3" to="108329425#0" fromLane="0" toLane="0" via=":733663076_2_0" dir="s" state="m"/>
- <connection from="69931595#3" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_3_0" dir="t" state="m"/>
- <connection from="75656628#0" to="81096822#2" fromLane="0" toLane="0" via=":543360161_3_0" dir="r" state="M"/>
- <connection from="75656628#0" to="75656628#1" fromLane="0" toLane="0" via=":543360161_4_0" dir="s" state="M"/>
- <connection from="75656628#0" to="-81096822#1" fromLane="0" toLane="0" via=":543360161_5_0" dir="l" state="M"/>
- <connection from="81096816#0" to="81096816#1" fromLane="0" toLane="0" via=":2081499952_0_0" dir="s" state="M"/>
- <connection from="81096816#0" to="197955309#0" fromLane="0" toLane="0" via=":2081499952_1_0" dir="l" state="M"/>
- <connection from="81096816#1" to="24573905#0" fromLane="0" toLane="0" via=":443089068_0_0" dir="r" state="M"/>
- <connection from="81096816#1" to="81096816#2" fromLane="0" toLane="0" via=":443089068_1_0" dir="s" state="M"/>
- <connection from="81096816#2" to="81096816#3" fromLane="0" toLane="0" via=":444026917_0_0" tl="444026917" linkIndex="0" dir="s" state="o"/>
- <connection from="81096816#2" to="8272412#4" fromLane="0" toLane="0" via=":444026917_1_0" tl="444026917" linkIndex="1" dir="l" state="o"/>
- <connection from="81096816#3" to="81096816#4" fromLane="0" toLane="0" via=":1624003199_0_0" dir="s" state="m"/>
- <connection from="81096816#4" to="81096816#5" fromLane="0" toLane="0" via=":538810722_0_0" tl="538810722" linkIndex="0" dir="s" state="o"/>
- <connection from="81096816#5" to="81096816#6" fromLane="0" toLane="0" via=":1726380179_0_0" tl="1726380179" linkIndex="0" dir="s" state="o"/>
- <connection from="81096822#0" to="172498387#4" fromLane="0" toLane="0" via=":1669480292_3_0" dir="r" state="m"/>
- <connection from="81096822#0" to="81096822#1" fromLane="0" toLane="0" via=":1669480292_4_0" dir="s" state="m"/>
- <connection from="81096822#0" to="-81096822#0" fromLane="0" toLane="0" via=":1669480292_5_0" dir="t" state="m"/>
- <connection from="81096822#1" to="81096822#2" fromLane="0" toLane="0" via=":543360161_6_0" dir="s" state="m"/>
- <connection from="81096822#1" to="75656628#1" fromLane="0" toLane="0" via=":543360161_7_0" dir="l" state="m"/>
- <connection from="81096822#1" to="-81096822#1" fromLane="0" toLane="0" via=":543360161_8_0" dir="t" state="m"/>
- <connection from="81096822#2" to="-81096822#2" fromLane="0" toLane="0" via=":1268463825_0_0" dir="t" state="M"/>
- <connection from="81096844#0" to="81096844#1" fromLane="0" toLane="0" via=":248913142_3_0" dir="s" state="M"/>
- <connection from="81096844#0" to="58770725#1" fromLane="0" toLane="0" via=":248913142_4_0" dir="l" state="m"/>
- <connection from="81096844#0" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_5_0" dir="t" state="m"/>
- <connection from="81096844#1" to="23066443#7" fromLane="0" toLane="0" via=":248913144_0_0" dir="r" state="M"/>
- <connection from="81096844#1" to="81096844#2" fromLane="0" toLane="0" via=":248913144_1_0" dir="s" state="M"/>
- <connection from="81096844#1" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_2_0" dir="t" state="m"/>
- <connection from="81096844#2" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_4_0" dir="r" state="M"/>
- <connection from="81096844#2" to="81096844#3" fromLane="0" toLane="0" via=":452425487_5_0" dir="s" state="M"/>
- <connection from="81096844#2" to="38319546#6" fromLane="0" toLane="0" via=":452425487_6_0" dir="l" state="m"/>
- <connection from="81096844#2" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_7_0" dir="t" state="m"/>
- <connection from="81096844#3" to="37449253#3" fromLane="0" toLane="0" via=":248913145_0_0" dir="r" state="m"/>
- <connection from="81096844#3" to="-81096844#3" fromLane="0" toLane="0" via=":248913145_1_0" dir="t" state="m"/>
- <connection from="81096855#0" to="81096855#1" fromLane="0" toLane="0" via=":945146437_2_0" dir="s" state="M"/>
- <connection from="81096855#0" to="129780028" fromLane="0" toLane="0" via=":945146437_3_0" dir="l" state="M"/>
- <connection from="81096860" to="81096855#1" fromLane="0" toLane="0" via=":945146437_0_0" dir="r" state="m"/>
- <connection from="81096860" to="129780028" fromLane="0" toLane="0" via=":945146437_1_0" dir="s" state="m"/>
- <connection from="81124939#0" to="-38319548#3" fromLane="0" toLane="0" via=":1669480286_0_0" dir="r" state="M"/>
- <connection from="81124939#0" to="81124939#1" fromLane="0" toLane="0" via=":1669480286_1_0" dir="s" state="M"/>
- <connection from="81124939#0" to="81124939#1" fromLane="1" toLane="1" via=":1669480286_2_0" dir="s" state="M"/>
- <connection from="81124939#0" to="38319548#4" fromLane="1" toLane="0" via=":1669480286_3_0" dir="l" state="M"/>
- <connection from="81124939#1" to="-110514869#2" fromLane="0" toLane="0" via=":1669480282_0_0" dir="r" state="M"/>
- <connection from="81124939#1" to="154844485#0" fromLane="0" toLane="0" via=":1669480282_1_0" dir="s" state="M"/>
- <connection from="81124939#1" to="154844485#0" fromLane="1" toLane="1" via=":1669480282_2_0" dir="s" state="M"/>
- <connection from="81124939#1" to="154844503" fromLane="1" toLane="1" via=":1669480282_3_0" dir="l" state="M"/>
- <connection from="81124943#0" to="197955309#4" fromLane="0" toLane="0" via=":2081499949_3_0" dir="r" state="M"/>
- <connection from="81124943#0" to="81124943#1" fromLane="0" toLane="0" via=":2081499949_4_0" dir="s" state="M"/>
- <connection from="81124943#0" to="81124943#1" fromLane="1" toLane="1" via=":2081499949_5_0" dir="s" state="M"/>
- <connection from="81124943#0" to="-197955309#3" fromLane="1" toLane="0" via=":2081499949_6_0" dir="l" state="M"/>
- <connection from="81124943#1" to="108733422" fromLane="0" toLane="0" via=":1246731620_2_0" dir="s" state="M"/>
- <connection from="81124943#1" to="170590352" fromLane="0" toLane="0" via=":1246731620_3_0" dir="s" state="m"/>
- <connection from="81124943#1" to="170590352" fromLane="1" toLane="1" via=":1246731620_4_0" dir="s" state="M"/>
- <connection from="81124945" to="23262356#3" fromLane="0" toLane="0" via=":255227475_9_0" dir="r" state="m"/>
- <connection from="81124945" to="149422199#0" fromLane="0" toLane="0" via=":255227475_10_0" dir="s" state="m"/>
- <connection from="81124945" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_11_0" dir="l" state="m"/>
- <connection from="81394162#0" to="109912572#3" fromLane="0" toLane="0" via=":1257054092_0_0" dir="r" state="M"/>
- <connection from="81394162#0" to="81394162#1" fromLane="0" toLane="0" via=":1257054092_1_0" dir="s" state="M"/>
- <connection from="81394162#0" to="81394162#1" fromLane="1" toLane="1" via=":1257054092_2_0" dir="s" state="M"/>
- <connection from="81394162#0" to="-109912572#2" fromLane="1" toLane="0" via=":1257054092_3_0" dir="l" state="M"/>
- <connection from="81394162#1" to="81394162#2" fromLane="0" toLane="0" via=":438042380_1_0" dir="s" state="M"/>
- <connection from="81394162#1" to="81394162#2" fromLane="1" toLane="1" via=":438042380_2_0" dir="s" state="M"/>
- <connection from="81394162#2" to="37449249#3" fromLane="0" toLane="0" via=":438042387_0_0" tl="438042387" linkIndex="0" dir="s" state="o"/>
- <connection from="81394169#0" to="109438231#0" fromLane="0" toLane="0" via=":948350676_0_0" dir="s" state="M"/>
- <connection from="81394169#0" to="81394169#1" fromLane="0" toLane="0" via=":948350676_1_0" dir="s" state="M"/>
- <connection from="81394169#1" to="130443629#4" fromLane="0" toLane="0" via=":948350615_6_0" dir="r" state="M"/>
- <connection from="81394169#1" to="81394169#2" fromLane="0" toLane="0" via=":948350615_7_0" dir="s" state="M"/>
- <connection from="81394169#1" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_8_0" dir="s" state="M"/>
- <connection from="81394169#2" to="37351086#1" fromLane="0" toLane="0" via=":948350693_0_0" dir="r" state="M"/>
- <connection from="81394169#2" to="81394169#3" fromLane="0" toLane="0" via=":948350693_1_0" dir="s" state="M"/>
- <connection from="81394169#3" to="133868229#0" fromLane="0" toLane="0" via=":948350707_4_0" dir="r" state="m"/>
- <connection from="81394169#3" to="133868186" fromLane="0" toLane="1" via=":948350707_5_0" dir="R" state="M"/>
- <connection from="81394169#3" to="81394169#4" fromLane="0" toLane="0" via=":948350707_6_0" dir="s" state="m"/>
- <connection from="81394169#3" to="-81394200#2" fromLane="0" toLane="0" via=":948350707_7_0" dir="l" state="m"/>
- <connection from="81394169#4" to="81394169#5" fromLane="0" toLane="0" via=":948350621_3_0" dir="s" state="M"/>
- <connection from="81394169#4" to="37351089#1" fromLane="0" toLane="2" via=":948350621_4_0" dir="l" state="M"/>
- <connection from="81394169#4" to="37351089#1" fromLane="0" toLane="3" via=":948350621_5_0" dir="l" state="M"/>
- <connection from="81394169#5" to="81394169#6" fromLane="0" toLane="0" via=":948350715_2_0" dir="s" state="M"/>
- <connection from="81394169#5" to="44641745#2" fromLane="0" toLane="0" via=":948350715_3_0" dir="l" state="M"/>
- <connection from="81394188#0" to="133868191#2" fromLane="0" toLane="0" via=":948350673_0_0" dir="r" state="M"/>
- <connection from="81394188#0" to="133868191#2" fromLane="0" toLane="1" via=":948350673_1_0" dir="r" state="M"/>
- <connection from="81394188#0" to="81394188#1" fromLane="0" toLane="0" via=":948350673_2_0" dir="s" state="M"/>
- <connection from="81394188#1" to="81394188#2" fromLane="0" toLane="0" via=":724002953_0_0" dir="s" state="M"/>
- <connection from="81394188#1" to="37369047#1" fromLane="0" toLane="2" via=":724002953_1_0" dir="l" state="M"/>
- <connection from="81394188#1" to="37369047#1" fromLane="0" toLane="3" via=":724002953_2_0" dir="l" state="M"/>
- <connection from="81394188#2" to="81394188#3" fromLane="0" toLane="0" via=":1252777712_0_0" dir="s" state="M"/>
- <connection from="81394188#3" to="109438141" fromLane="0" toLane="0" via=":950640428_0_0" dir="s" state="M"/>
- <connection from="81394188#3" to="81394188#4" fromLane="0" toLane="0" via=":950640428_1_0" dir="s" state="M"/>
- <connection from="81394188#4" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_0_0" dir="s" state="M"/>
- <connection from="81394188#4" to="134572336#1" fromLane="0" toLane="1" via=":477486714_1_0" dir="L" state="m"/>
- <connection from="81394188#4" to="81394169#0" fromLane="0" toLane="0" via=":477486714_2_0" dir="l" state="m"/>
- <connection from="81394192#0" to="106836308#0" fromLane="0" toLane="0" via=":1228499918_0_0" dir="r" state="M"/>
- <connection from="81394192#0" to="81394192#1" fromLane="0" toLane="0" via=":1228499918_1_0" dir="s" state="M"/>
- <connection from="81394192#1" to="81394192#2" fromLane="0" toLane="0" via=":1228499945_0_0" dir="s" state="M"/>
- <connection from="81394192#1" to="106836317#3" fromLane="0" toLane="0" via=":1228499945_1_0" dir="l" state="M"/>
- <connection from="81394192#10" to="37973569#7" fromLane="0" toLane="0" via=":446017740_2_0" tl="446017740" linkIndex="2" dir="r" state="o"/>
- <connection from="81394192#10" to="81394192#11" fromLane="0" toLane="0" via=":446017740_3_0" tl="446017740" linkIndex="3" dir="s" state="o"/>
- <connection from="81394192#11" to="111863125#7" fromLane="0" toLane="0" via=":950640474_2_0" dir="r" state="m"/>
- <connection from="81394192#11" to="81394192#12" fromLane="0" toLane="0" via=":950640474_3_0" dir="s" state="m"/>
- <connection from="81394192#12" to="37973572#3" fromLane="0" toLane="0" via=":444026884_8_0" tl="444026884" linkIndex="8" dir="r" state="o"/>
- <connection from="81394192#12" to="81394192#13" fromLane="0" toLane="0" via=":444026884_9_0" tl="444026884" linkIndex="9" dir="s" state="o"/>
- <connection from="81394192#12" to="-37973572#2" fromLane="0" toLane="1" via=":444026884_10_0" tl="444026884" linkIndex="10" dir="l" state="o"/>
- <connection from="81394192#13" to="81394192#14" fromLane="0" toLane="0" via=":950640361_2_0" dir="s" state="m"/>
- <connection from="81394192#13" to="111549913#2" fromLane="0" toLane="0" via=":950640361_3_0" dir="l" state="m"/>
- <connection from="81394192#14" to="81394192#15" fromLane="0" toLane="0" via=":446017739_2_0" tl="446017739" linkIndex="2" dir="s" state="o"/>
- <connection from="81394192#14" to="37973568#3" fromLane="0" toLane="0" via=":446017739_3_0" tl="446017739" linkIndex="3" dir="l" state="o"/>
- <connection from="81394192#15" to="37973571#0" fromLane="0" toLane="0" via=":444026886_0_0" dir="s" state="M"/>
- <connection from="81394192#2" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_0_0" dir="r" state="m"/>
- <connection from="81394192#2" to="81394192#3" fromLane="0" toLane="0" via=":446766149_1_0" dir="s" state="m"/>
- <connection from="81394192#2" to="59159262#0" fromLane="0" toLane="0" via=":446766149_2_0" dir="l" state="m"/>
- <connection from="81394192#3" to="-58779719#1" fromLane="0" toLane="0" via=":728492371_0_0" dir="r" state="M"/>
- <connection from="81394192#3" to="81394192#4" fromLane="0" toLane="0" via=":728492371_1_0" dir="s" state="m"/>
- <connection from="81394192#4" to="-58779718#1" fromLane="0" toLane="0" via=":728492364_2_0" dir="r" state="M"/>
- <connection from="81394192#4" to="81394192#5" fromLane="0" toLane="0" via=":728492364_3_0" dir="s" state="m"/>
- <connection from="81394192#5" to="-38027665#3" fromLane="0" toLane="0" via=":446770959_2_0" dir="r" state="M"/>
- <connection from="81394192#5" to="81394192#6" fromLane="0" toLane="0" via=":446770959_3_0" dir="s" state="m"/>
- <connection from="81394192#6" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_6_0" dir="r" state="m"/>
- <connection from="81394192#6" to="81394192#7" fromLane="0" toLane="0" via=":552842257_7_0" dir="s" state="m"/>
- <connection from="81394192#6" to="107028581#3" fromLane="0" toLane="0" via=":552842257_8_0" dir="l" state="m"/>
- <connection from="81394192#7" to="43684741#1" fromLane="0" toLane="0" via=":561204538_6_0" dir="r" state="m"/>
- <connection from="81394192#7" to="81394192#8" fromLane="0" toLane="0" via=":561204538_7_0" dir="s" state="m"/>
- <connection from="81394192#7" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_8_0" dir="l" state="m"/>
- <connection from="81394192#8" to="160584980" fromLane="0" toLane="0" via=":1726380195_0_0" dir="s" state="M"/>
- <connection from="81394192#8" to="81394192#9" fromLane="0" toLane="0" via=":1726380195_1_0" dir="s" state="M"/>
- <connection from="81394192#9" to="81394192#10" fromLane="0" toLane="0" via=":1726380193_2_0" dir="s" state="m"/>
- <connection from="81394192#9" to="160584982#1" fromLane="0" toLane="0" via=":1726380193_3_0" dir="l" state="m"/>
- <connection from="81394200#0" to="133868191#1" fromLane="0" toLane="0" via=":948350597_7_0" dir="r" state="M"/>
- <connection from="81394200#0" to="81394200#1" fromLane="0" toLane="0" via=":948350597_8_0" dir="s" state="M"/>
- <connection from="81394200#0" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_9_0" dir="t" state="m"/>
- <connection from="81394200#1" to="130443629#2" fromLane="0" toLane="0" via=":948350640_12_0" dir="r" state="M"/>
- <connection from="81394200#1" to="81394200#2" fromLane="0" toLane="0" via=":948350640_13_0" dir="s" state="M"/>
- <connection from="81394200#1" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_14_0" dir="l" state="m"/>
- <connection from="81394200#1" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_15_0" dir="t" state="m"/>
- <connection from="81394200#2" to="133868229#0" fromLane="0" toLane="1" via=":948350707_13_0" dir="s" state="M"/>
- <connection from="81394200#2" to="133868186" fromLane="0" toLane="3" via=":948350707_14_0" dir="s" state="M"/>
- <connection from="81394200#2" to="81394169#4" fromLane="0" toLane="0" via=":948350707_15_0" dir="l" state="m"/>
- <connection from="81394200#2" to="-81394200#2" fromLane="0" toLane="0" via=":948350707_16_0" dir="t" state="m"/>
- <connection from="81523316" to="37973565#8" fromLane="0" toLane="0" via=":948350607_0_0" dir="r" state="M"/>
- <connection from="81523316" to="133868231#0" fromLane="0" toLane="0" via=":948350607_1_0" dir="s" state="M"/>
- <connection from="81523316" to="133868188" fromLane="1" toLane="0" via=":948350607_2_0" dir="s" state="M"/>
- <connection from="81523330#0" to="81523330#1" fromLane="0" toLane="0" via=":1252777720_5_0" dir="s" state="M"/>
- <connection from="81523330#0" to="81523330#1" fromLane="1" toLane="1" via=":1252777720_6_0" dir="s" state="M"/>
- <connection from="81523330#0" to="-81523330#0" fromLane="1" toLane="1" via=":1252777720_7_0" dir="t" state="m"/>
- <connection from="81523330#1" to="23315111#3" fromLane="0" toLane="0" via=":950094425_13_0" dir="r" state="M"/>
- <connection from="81523330#1" to="81523330#2" fromLane="0" toLane="0" via=":950094425_14_0" dir="s" state="M"/>
- <connection from="81523330#1" to="81523330#2" fromLane="1" toLane="1" via=":950094425_15_0" dir="s" state="M"/>
- <connection from="81523330#1" to="-23315111#2" fromLane="1" toLane="0" via=":950094425_16_0" dir="l" state="m"/>
- <connection from="81523330#1" to="-81523330#1" fromLane="1" toLane="1" via=":950094425_17_0" dir="t" state="m"/>
- <connection from="81523330#2" to="-108329427#0" fromLane="0" toLane="0" via=":1263725264_13_0" dir="r" state="M"/>
- <connection from="81523330#2" to="81523330#3" fromLane="0" toLane="0" via=":1263725264_14_0" dir="s" state="M"/>
- <connection from="81523330#2" to="81523330#3" fromLane="1" toLane="1" via=":1263725264_15_0" dir="s" state="M"/>
- <connection from="81523330#2" to="108329427#1" fromLane="1" toLane="0" via=":1263725264_16_0" dir="l" state="m"/>
- <connection from="81523330#2" to="-81523330#2" fromLane="1" toLane="1" via=":1263725264_17_0" dir="t" state="m"/>
- <connection from="81523330#3" to="108329426#0" fromLane="0" toLane="0" via=":1243159116_7_0" dir="r" state="M"/>
- <connection from="81523330#3" to="81523330#4" fromLane="0" toLane="0" via=":1243159116_8_0" dir="s" state="M"/>
- <connection from="81523330#3" to="81523330#4" fromLane="1" toLane="1" via=":1243159116_9_0" dir="s" state="M"/>
- <connection from="81523330#3" to="-81523330#3" fromLane="1" toLane="1" via=":1243159116_10_0" dir="t" state="m"/>
- <connection from="81523330#4" to="139118808" fromLane="0" toLane="0" via=":950094494_7_0" dir="r" state="M"/>
- <connection from="81523330#4" to="139118805#0" fromLane="0" toLane="0" via=":950094494_8_0" dir="s" state="M"/>
- <connection from="81523330#4" to="139118805#0" fromLane="1" toLane="1" via=":950094494_9_0" dir="s" state="M"/>
- <connection from="81523330#4" to="-81523330#4" fromLane="1" toLane="1" via=":950094494_10_0" dir="t" state="m"/>
- <connection from="81523332#0" to="38319546#4" fromLane="0" toLane="0" via=":452425486_6_0" dir="r" state="M"/>
- <connection from="81523332#0" to="81523332#1" fromLane="0" toLane="0" via=":452425486_7_0" dir="s" state="M"/>
- <connection from="81523332#0" to="-38319546#3" fromLane="0" toLane="0" via=":452425486_8_0" dir="l" state="M"/>
- <connection from="81523332#1" to="172498387#0" fromLane="0" toLane="0" via=":435668513_2_0" dir="s" state="M"/>
- <connection from="81523332#1" to="129780026#0" fromLane="0" toLane="0" via=":435668513_3_0" dir="l" state="M"/>
- <connection from="81523343" to="132323955" fromLane="0" toLane="0" via=":320879142_3_0" dir="r" state="M"/>
- <connection from="81523343" to="139118804#0" fromLane="0" toLane="0" via=":320879142_4_0" dir="s" state="m"/>
- <connection from="81523343" to="129780020" fromLane="0" toLane="0" via=":320879142_5_0" dir="s" state="m"/>
- <connection from="81547611" to="-108733421" fromLane="0" toLane="0" via=":1246731541_2_0" dir="r" state="M"/>
- <connection from="81547611" to="170590354#0" fromLane="0" toLane="1" via=":1246731541_3_0" dir="s" state="M"/>
- <connection from="81672207#0" to="166625259" fromLane="0" toLane="0" via=":438042379_0_0" dir="s" state="M"/>
- <connection from="81672207#0" to="81672207#1" fromLane="0" toLane="0" via=":438042379_1_0" dir="s" state="m"/>
- <connection from="81672207#1" to="-105254616#1" fromLane="0" toLane="0" via=":1719223322_0_0" dir="r" state="M"/>
- <connection from="81672207#1" to="81672207#2" fromLane="0" toLane="0" via=":1719223322_1_0" dir="s" state="M"/>
- <connection from="81672207#2" to="37973569#4" fromLane="0" toLane="0" via=":538265870_0_0" dir="r" state="M"/>
- <connection from="81672209" to="81672216#7" fromLane="0" toLane="0" via=":1457699222_6_0" dir="r" state="="/>
- <connection from="81672209" to="-81672216#6" fromLane="0" toLane="0" via=":1457699222_7_0" dir="l" state="="/>
- <connection from="81672209" to="-81672209" fromLane="0" toLane="0" via=":1457699222_8_0" dir="t" state="="/>
- <connection from="81672213" to="81672216#8" fromLane="0" toLane="0" via=":951739568_6_0" dir="r" state="="/>
- <connection from="81672213" to="-81672216#7" fromLane="0" toLane="0" via=":951739568_7_0" dir="l" state="="/>
- <connection from="81672213" to="-81672213" fromLane="0" toLane="0" via=":951739568_8_0" dir="t" state="="/>
- <connection from="81672214" to="81672216#9" fromLane="0" toLane="0" via=":951739549_6_0" dir="r" state="="/>
- <connection from="81672214" to="-81672216#8" fromLane="0" toLane="0" via=":951739549_7_0" dir="l" state="="/>
- <connection from="81672214" to="-81672214" fromLane="0" toLane="0" via=":951739549_8_0" dir="t" state="="/>
- <connection from="81672216#0" to="-81672216#9" fromLane="0" toLane="0" via=":1457699220_6_0" dir="r" state="="/>
- <connection from="81672216#0" to="81672216#1" fromLane="0" toLane="0" via=":1457699220_7_0" dir="s" state="="/>
- <connection from="81672216#0" to="-81672216#0" fromLane="0" toLane="0" via=":1457699220_8_0" dir="t" state="="/>
- <connection from="81672216#1" to="81672214" fromLane="0" toLane="0" via=":951739766_6_0" dir="r" state="="/>
- <connection from="81672216#1" to="81672216#2" fromLane="0" toLane="0" via=":951739766_7_0" dir="s" state="="/>
- <connection from="81672216#1" to="-81672216#1" fromLane="0" toLane="0" via=":951739766_8_0" dir="t" state="="/>
- <connection from="81672216#2" to="81672213" fromLane="0" toLane="0" via=":951739420_6_0" dir="r" state="="/>
- <connection from="81672216#2" to="81672216#3" fromLane="0" toLane="0" via=":951739420_7_0" dir="s" state="="/>
- <connection from="81672216#2" to="-81672216#2" fromLane="0" toLane="0" via=":951739420_8_0" dir="t" state="="/>
- <connection from="81672216#3" to="81672209" fromLane="0" toLane="0" via=":951739458_6_0" dir="r" state="="/>
- <connection from="81672216#3" to="81672216#4" fromLane="0" toLane="0" via=":951739458_7_0" dir="s" state="="/>
- <connection from="81672216#3" to="-81672216#3" fromLane="0" toLane="0" via=":951739458_8_0" dir="t" state="="/>
- <connection from="81672216#4" to="81672218" fromLane="0" toLane="0" via=":951739511_6_0" dir="r" state="="/>
- <connection from="81672216#4" to="81672216#5" fromLane="0" toLane="0" via=":951739511_7_0" dir="s" state="="/>
- <connection from="81672216#4" to="-81672216#4" fromLane="0" toLane="0" via=":951739511_8_0" dir="t" state="="/>
- <connection from="81672216#5" to="81672216#6" fromLane="0" toLane="0" via=":1457699223_0_0" dir="s" state="="/>
- <connection from="81672216#5" to="-81672218" fromLane="0" toLane="0" via=":1457699223_1_0" dir="r" state="="/>
- <connection from="81672216#5" to="-81672216#5" fromLane="0" toLane="0" via=":1457699223_2_0" dir="t" state="="/>
- <connection from="81672216#6" to="-81672209" fromLane="0" toLane="0" via=":1457699222_0_0" dir="r" state="="/>
- <connection from="81672216#6" to="81672216#7" fromLane="0" toLane="0" via=":1457699222_1_0" dir="s" state="="/>
- <connection from="81672216#6" to="-81672216#6" fromLane="0" toLane="0" via=":1457699222_2_0" dir="t" state="="/>
- <connection from="81672216#7" to="-81672213" fromLane="0" toLane="0" via=":951739568_0_0" dir="r" state="="/>
- <connection from="81672216#7" to="81672216#8" fromLane="0" toLane="0" via=":951739568_1_0" dir="s" state="="/>
- <connection from="81672216#7" to="-81672216#7" fromLane="0" toLane="0" via=":951739568_2_0" dir="t" state="="/>
- <connection from="81672216#8" to="-81672214" fromLane="0" toLane="0" via=":951739549_0_0" dir="r" state="="/>
- <connection from="81672216#8" to="81672216#9" fromLane="0" toLane="0" via=":951739549_1_0" dir="s" state="="/>
- <connection from="81672216#8" to="-81672216#8" fromLane="0" toLane="0" via=":951739549_2_0" dir="t" state="="/>
- <connection from="81672216#9" to="81672216#1" fromLane="0" toLane="0" via=":1457699220_3_0" dir="r" state="="/>
- <connection from="81672216#9" to="-81672216#0" fromLane="0" toLane="0" via=":1457699220_4_0" dir="l" state="="/>
- <connection from="81672216#9" to="-81672216#9" fromLane="0" toLane="0" via=":1457699220_5_0" dir="t" state="="/>
- <connection from="81672218" to="81672216#6" fromLane="0" toLane="0" via=":1457699223_6_0" dir="r" state="="/>
- <connection from="81672218" to="-81672216#5" fromLane="0" toLane="0" via=":1457699223_7_0" dir="l" state="="/>
- <connection from="81672218" to="-81672218" fromLane="0" toLane="0" via=":1457699223_8_0" dir="t" state="="/>
- <connection from="8272412#0" to="38319550#12" fromLane="0" toLane="0" via=":1719213509_6_0" dir="r" state="M"/>
- <connection from="8272412#0" to="8272412#1" fromLane="0" toLane="0" via=":1719213509_7_0" dir="s" state="M"/>
- <connection from="8272412#0" to="-38319550#11" fromLane="0" toLane="0" via=":1719213509_8_0" dir="l" state="M"/>
- <connection from="8272412#1" to="24573930#3" fromLane="0" toLane="0" via=":538810724_2_0" dir="r" state="M"/>
- <connection from="8272412#1" to="8272412#2" fromLane="0" toLane="0" via=":538810724_3_0" dir="s" state="M"/>
- <connection from="8272412#2" to="8272412#3" fromLane="0" toLane="0" via=":538810726_2_0" dir="s" state="m"/>
- <connection from="8272412#2" to="24573897#2" fromLane="0" toLane="0" via=":538810726_3_0" dir="l" state="m"/>
- <connection from="8272412#3" to="81096816#3" fromLane="0" toLane="0" via=":444026917_2_0" tl="444026917" linkIndex="2" dir="r" state="o"/>
- <connection from="8272412#3" to="8272412#4" fromLane="0" toLane="0" via=":444026917_3_0" tl="444026917" linkIndex="3" dir="s" state="o"/>
- <connection from="8272412#4" to="160587538#0" fromLane="0" toLane="0" via=":1726394722_1_0" tl="1726394722" linkIndex="1" dir="l" state="o"/>
- <connection from="8272412#4" to="160587538#0" fromLane="0" toLane="1" via=":1726394722_2_0" tl="1726394722" linkIndex="2" dir="l" state="o"/>
- <connection from="83038920" to="-83038923#1" fromLane="0" toLane="0" via=":966097830_0_0" dir="r" state="M"/>
- <connection from="83038920" to="-83038920" fromLane="0" toLane="0" via=":966097830_1_0" dir="t" state="m"/>
- <connection from="83038923#0" to="83038923#1" fromLane="0" toLane="0" via=":966097837_6_0" dir="s" state="="/>
- <connection from="83038923#0" to="83038920" fromLane="0" toLane="0" via=":966097837_7_0" dir="l" state="="/>
- <connection from="83038923#0" to="-83038923#0" fromLane="0" toLane="0" via=":966097837_8_0" dir="t" state="="/>
- <connection from="83038923#1" to="-83038920" fromLane="0" toLane="0" via=":966097830_2_0" dir="l" state="M"/>
- <connection from="83038923#1" to="-83038923#1" fromLane="0" toLane="0" via=":966097830_3_0" dir="t" state="m"/>
- <connection from="83042949" to="37771902#2" fromLane="0" toLane="0" via=":966132112_0_0" dir="r" state="m"/>
- <connection from="83051417" to="-24573937" fromLane="0" toLane="0" via=":966193808_0_0" dir="r" state="m"/>
- <connection from="83051417" to="83051420" fromLane="0" toLane="0" via=":966193808_1_0" dir="s" state="m"/>
- <connection from="83051417" to="83051436#0" fromLane="0" toLane="0" via=":966193808_2_0" dir="l" state="m"/>
- <connection from="83051417" to="-83051417" fromLane="0" toLane="0" via=":966193808_3_0" dir="t" state="m"/>
- <connection from="83051420" to="37772595#3" fromLane="0" toLane="0" via=":966193796_0_0" dir="r" state="M"/>
- <connection from="83051420" to="-83051420" fromLane="0" toLane="0" via=":966193796_1_0" dir="t" state="m"/>
- <connection from="83051421#0" to="24573939#1" fromLane="0" toLane="0" via=":267169686_4_0" dir="r" state="="/>
- <connection from="83051421#0" to="83051421#1" fromLane="0" toLane="0" via=":267169686_5_0" dir="s" state="="/>
- <connection from="83051421#0" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_6_0" dir="l" state="="/>
- <connection from="83051421#0" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_7_0" dir="t" state="="/>
- <connection from="83051421#1" to="83051421#2" fromLane="0" toLane="0" via=":966193812_0_0" dir="s" state="="/>
- <connection from="83051421#1" to="83051417" fromLane="0" toLane="0" via=":966193812_1_0" dir="l" state="="/>
- <connection from="83051421#1" to="-83051421#1" fromLane="0" toLane="0" via=":966193812_2_0" dir="t" state="="/>
- <connection from="83051421#2" to="23066462#1" fromLane="0" toLane="0" via=":250689186_3_0" dir="r" state="="/>
- <connection from="83051421#2" to="-23066462#0" fromLane="0" toLane="0" via=":250689186_4_0" dir="l" state="="/>
- <connection from="83051421#2" to="-83051421#2" fromLane="0" toLane="0" via=":250689186_5_0" dir="t" state="="/>
- <connection from="83051424" to="83051480#1" fromLane="0" toLane="0" via=":966193793_0_0" dir="r" state="="/>
- <connection from="83051424" to="-83051480#0" fromLane="0" toLane="0" via=":966193793_1_0" dir="l" state="="/>
- <connection from="83051424" to="-83051424" fromLane="0" toLane="0" via=":966193793_2_0" dir="t" state="="/>
- <connection from="83051426" to="23066462#3" fromLane="0" toLane="0" via=":250689131_3_0" dir="r" state="="/>
- <connection from="83051426" to="-23066462#2" fromLane="0" toLane="0" via=":250689131_4_0" dir="l" state="="/>
- <connection from="83051426" to="-83051426" fromLane="0" toLane="0" via=":250689131_5_0" dir="t" state="="/>
- <connection from="83051436#0" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_12_0" dir="r" state="m"/>
- <connection from="83051436#0" to="83051436#1" fromLane="0" toLane="0" via=":267169690_13_0" dir="s" state="m"/>
- <connection from="83051436#0" to="24573939#0" fromLane="0" toLane="0" via=":267169690_14_0" dir="l" state="m"/>
- <connection from="83051436#0" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_15_0" dir="t" state="m"/>
- <connection from="83051436#1" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_8_0" dir="r" state="m"/>
- <connection from="83051436#1" to="24573947#3" fromLane="0" toLane="0" via=":267169634_9_0" dir="L" state="m"/>
- <connection from="83051436#1" to="83051421#0" fromLane="0" toLane="0" via=":267169634_10_0" dir="l" state="m"/>
- <connection from="83051436#1" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_11_0" dir="t" state="m"/>
- <connection from="83051442#0" to="83051455" fromLane="0" toLane="0" via=":733663078_0_0" dir="r" state="="/>
- <connection from="83051442#0" to="83051442#1" fromLane="0" toLane="0" via=":733663078_1_0" dir="s" state="="/>
- <connection from="83051442#0" to="-83051442#0" fromLane="0" toLane="0" via=":733663078_2_0" dir="t" state="="/>
- <connection from="83051442#1" to="-24573939#2" fromLane="0" toLane="0" via=":441266874_6_0" dir="r" state="="/>
- <connection from="83051442#1" to="83051442#2" fromLane="0" toLane="0" via=":441266874_7_0" dir="s" state="="/>
- <connection from="83051442#1" to="-83051442#1" fromLane="0" toLane="0" via=":441266874_8_0" dir="t" state="="/>
- <connection from="83051442#2" to="83051426" fromLane="0" toLane="0" via=":733663071_0_0" dir="s" state="="/>
- <connection from="83051442#2" to="83051442#0" fromLane="0" toLane="0" via=":733663071_1_0" dir="s" state="="/>
- <connection from="83051442#2" to="-83051442#2" fromLane="0" toLane="0" via=":733663071_2_0" dir="t" state="="/>
- <connection from="83051455" to="23066462#2" fromLane="0" toLane="0" via=":441266870_3_0" dir="r" state="="/>
- <connection from="83051455" to="-23066462#1" fromLane="0" toLane="0" via=":441266870_4_0" dir="l" state="="/>
- <connection from="83051455" to="-83051455" fromLane="0" toLane="0" via=":441266870_5_0" dir="t" state="="/>
- <connection from="83051480#0" to="-83051424" fromLane="0" toLane="0" via=":966193793_3_0" dir="r" state="="/>
- <connection from="83051480#0" to="83051480#1" fromLane="0" toLane="0" via=":966193793_4_0" dir="s" state="="/>
- <connection from="83051480#0" to="-83051480#0" fromLane="0" toLane="0" via=":966193793_5_0" dir="t" state="="/>
- <connection from="83051480#1" to="23066462#4" fromLane="0" toLane="0" via=":250689201_0_0" dir="r" state="="/>
- <connection from="83051480#1" to="-23066462#3" fromLane="0" toLane="0" via=":250689201_1_0" dir="l" state="="/>
- <connection from="83051480#1" to="-83051480#1" fromLane="0" toLane="0" via=":250689201_2_0" dir="t" state="="/>
- <connection from="83051483" to="83051424" fromLane="0" toLane="0" via=":966193814_0_0" dir="s" state="M"/>
- <connection from="83051483" to="-83051483" fromLane="0" toLane="0" via=":966193814_1_0" dir="t" state="m"/>
- <connection from="83827202" to="23182517#2" fromLane="0" toLane="0" via=":975934878_4_0" dir="r" state="m"/>
- <connection from="83827202" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_5_0" dir="l" state="m"/>
-
- <connection from=":1096401733_0" to="8272412#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1096401733_1" to="160587552#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929269_0" to="154844491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929269_1" to="154844482" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929269_2" to="154844491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929269_3" to="154844491#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929269_4" to="154844482" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929272_0" to="81096816#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929272_1" to="154844465#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929295_0" to="154844461#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929295_1" to="154844461#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929298_0" to="154500706#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929298_1" to="154500706#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929308_0" to="42976408#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929308_1" to="154500706#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929308_2" to="37638470#0" fromLane="0" toLane="0" via=":1168929308_6_0" dir="s" state="M"/>
- <connection from=":1168929308_6" to="37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929308_3" to="37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929308_4" to="42976408#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929308_5" to="154500706#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929310_0" to="154844465#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929310_1" to="111863096#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929310_2" to="154844465#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929310_3" to="111863096#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929324_0" to="154844462" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929324_1" to="103851602#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929324_2" to="154844462" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929324_3" to="103851602#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929349_0" to="154500693#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929349_1" to="37638426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929349_2" to="154500693#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929349_3" to="154500693#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929349_4" to="154500693#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1168929349_5" to="37638426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929367_0" to="101272426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929367_1" to="154844473" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929382_0" to="166602674#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929382_1" to="166602674#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929382_2" to="101272431" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929382_3" to="166602674#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929382_4" to="101272431" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929383_0" to="149868584#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929383_1" to="154844470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929383_2" to="-149868584#4" fromLane="0" toLane="1" via=":1168929383_9_0" dir="s" state="M"/>
- <connection from=":1168929383_9" to="-149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929383_3" to="149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929383_4" to="154844470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929383_5" to="-149868584#4" fromLane="0" toLane="1" via=":1168929383_10_0" dir="s" state="M"/>
- <connection from=":1168929383_10" to="-149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929383_6" to="154844470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929383_7" to="-149868584#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929383_8" to="149868584#5" fromLane="0" toLane="1" via=":1168929383_11_0" dir="s" state="M"/>
- <connection from=":1168929383_11" to="149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929385_0" to="154844484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929385_1" to="154844483#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929385_2" to="154844483#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929385_3" to="154844484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929385_4" to="154844483#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929388_0" to="81547611" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929388_1" to="154844487#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929388_2" to="81547611" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929388_3" to="154844487#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929398_0" to="-179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929398_1" to="179692877#1" fromLane="0" toLane="0" via=":1168929398_4_0" dir="s" state="M"/>
- <connection from=":1168929398_4" to="179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929398_2" to="179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929398_3" to="-179692877#0" fromLane="0" toLane="0" via=":1168929398_5_0" dir="s" state="M"/>
- <connection from=":1168929398_5" to="-179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929459_0" to="101272435#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929459_1" to="154844489#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929523_0" to="111863125#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929523_1" to="154844470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929523_2" to="111863125#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929523_3" to="154844470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929542_0" to="101272424#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929542_1" to="160587552#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_0" to="38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_1" to="154844484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_2" to="-38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_3" to="154844484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_4" to="-38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_5" to="38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_6" to="38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_7" to="154844484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929546_8" to="-38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929549_0" to="154844477" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929549_1" to="154844477" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929558_0" to="154844486" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929558_1" to="-160587538#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929558_2" to="160587538#6" fromLane="0" toLane="1" via=":1168929558_9_0" dir="s" state="M"/>
- <connection from=":1168929558_9" to="160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929558_3" to="160587538#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929558_4" to="154844486" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929558_5" to="-160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929558_6" to="160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929558_7" to="154844486" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929558_8" to="-160587538#5" fromLane="0" toLane="1" via=":1168929558_10_0" dir="s" state="M"/>
- <connection from=":1168929558_10" to="-160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929562_0" to="154844461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929562_1" to="166603397#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929562_2" to="166603397#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929562_3" to="154844461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929562_4" to="166603397#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929585_0" to="154844463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929585_1" to="154844463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929600_0" to="154500706#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929600_1" to="122301994#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929600_2" to="122301994#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929600_3" to="122301994#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1168929600_4" to="154500706#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929600_5" to="122301994#1" fromLane="0" toLane="1" via=":1168929600_7_0" dir="s" state="M"/>
- <connection from=":1168929600_7" to="122301994#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929600_6" to="122301994#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1168929613_0" to="154844465#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929613_1" to="154844465#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929634_0" to="-160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929634_1" to="154844478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929634_2" to="160587538#2" fromLane="0" toLane="1" via=":1168929634_9_0" dir="s" state="M"/>
- <connection from=":1168929634_9" to="160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929634_3" to="154844478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929634_4" to="160587538#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929634_5" to="-160587538#1" fromLane="0" toLane="1" via=":1168929634_10_0" dir="s" state="M"/>
- <connection from=":1168929634_10" to="-160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929634_6" to="-160587538#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929634_7" to="154844478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929634_8" to="160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929652_0" to="37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_1" to="-37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_2" to="-166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_3" to="-166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_4" to="37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_5" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_9_0" dir="s" state="M"/>
- <connection from=":1168929652_9" to="-37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_6" to="-37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_7" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_10_0" dir="s" state="M"/>
- <connection from=":1168929652_10" to="-166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929652_8" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_11_0" dir="s" state="M"/>
- <connection from=":1168929652_11" to="37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929657_0" to="154844487#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929657_1" to="149868584#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929657_2" to="-149868584#2" fromLane="0" toLane="1" via=":1168929657_9_0" dir="s" state="M"/>
- <connection from=":1168929657_9" to="-149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929657_3" to="-149868584#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929657_4" to="154844487#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929657_5" to="149868584#3" fromLane="0" toLane="1" via=":1168929657_10_0" dir="s" state="M"/>
- <connection from=":1168929657_10" to="149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929657_6" to="-149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929657_7" to="154844487#1" fromLane="0" toLane="0" via=":1168929657_11_0" dir="s" state="M"/>
- <connection from=":1168929657_11" to="154844487#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929657_8" to="149868584#3" fromLane="0" toLane="1" via=":1168929657_12_0" dir="s" state="M"/>
- <connection from=":1168929657_12" to="149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1168929659_0" to="154844489#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_1" to="38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_2" to="-38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_3" to="-38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_4" to="154844489#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_5" to="38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_6" to="-38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_7" to="154844489#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929659_8" to="38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_0" to="38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_1" to="101272434" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_2" to="-38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_3" to="-38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_4" to="38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_5" to="101272434" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_6" to="101272434" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_7" to="-38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1168929661_8" to="38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941056_0" to="105251811#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941056_1" to="37942667#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941056_2" to="105251811#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941056_3" to="37942667#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941077_0" to="37942667#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941077_1" to="59159259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941077_2" to="37942667#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212941077_3" to="59159259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_0" to="108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_1" to="105254618" fromLane="0" toLane="0" via=":1212960877_9_0" dir="s" state="M"/>
- <connection from=":1212960877_9" to="105254618" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_2" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_10_0" dir="s" state="M"/>
- <connection from=":1212960877_10" to="-108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_3" to="-108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_4" to="108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_5" to="105254618" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_6" to="-108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_7" to="105254618" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960877_8" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_11_0" dir="s" state="M"/>
- <connection from=":1212960877_11" to="108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_0" to="108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_1" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_9_0" dir="s" state="M"/>
- <connection from=":1212960879_9" to="105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_2" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_10_0" dir="s" state="M"/>
- <connection from=":1212960879_10" to="-108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_3" to="-108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_4" to="108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_5" to="105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_6" to="105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_7" to="-108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1212960879_8" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_11_0" dir="s" state="M"/>
- <connection from=":1212960879_11" to="108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_0" to="37942667#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_1" to="105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_2" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_9_0" dir="s" state="M"/>
- <connection from=":1213368991_9" to="-105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_3" to="-105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_4" to="37942667#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_5" to="105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_6" to="-105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_7" to="37942667#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1213368991_8" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_10_0" dir="s" state="M"/>
- <connection from=":1213368991_10" to="105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074526_0" to="-149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074527_0" to="149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_0" to="-149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_1" to="149819220" fromLane="0" toLane="0" via=":1224074532_9_0" dir="s" state="M"/>
- <connection from=":1224074532_9" to="149819220" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_2" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_10_0" dir="s" state="M"/>
- <connection from=":1224074532_10" to="149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_3" to="149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_4" to="-149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_5" to="149819220" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_6" to="149819220" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_7" to="149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074532_8" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_11_0" dir="s" state="M"/>
- <connection from=":1224074532_11" to="-149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074533_0" to="37973571#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074533_1" to="-179917803#1" fromLane="0" toLane="0" via=":1224074533_4_0" dir="s" state="M"/>
- <connection from=":1224074533_4" to="-179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074533_2" to="-179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074533_3" to="37973571#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_0" to="-179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_1" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_9_0" dir="s" state="M"/>
- <connection from=":1224074534_9" to="166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_2" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_10_0" dir="s" state="M"/>
- <connection from=":1224074534_10" to="179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_3" to="179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_4" to="-179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_5" to="166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_6" to="166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_7" to="179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074534_8" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_11_0" dir="s" state="M"/>
- <connection from=":1224074534_11" to="-179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_0" to="149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_1" to="-149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_2" to="-149819220" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_3" to="-149819220" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_4" to="149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_5" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_9_0" dir="s" state="M"/>
- <connection from=":1224074535_9" to="-149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_6" to="-149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_7" to="-149819220" fromLane="0" toLane="0" via=":1224074535_10_0" dir="s" state="M"/>
- <connection from=":1224074535_10" to="-149819220" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224074535_8" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_11_0" dir="s" state="M"/>
- <connection from=":1224074535_11" to="149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080660_0" to="37973568#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080660_1" to="106366774" fromLane="0" toLane="0" via=":1224080660_4_0" dir="s" state="M"/>
- <connection from=":1224080660_4" to="106366774" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080660_2" to="106366774" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080660_3" to="37973568#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080662_0" to="179917801" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_0" to="37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_1" to="-37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_2" to="-160584984" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_3" to="-160584984" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_4" to="37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_5" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_9_0" dir="s" state="M"/>
- <connection from=":1224080669_9" to="-37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_6" to="-37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_7" to="-160584984" fromLane="0" toLane="0" via=":1224080669_10_0" dir="s" state="M"/>
- <connection from=":1224080669_10" to="-160584984" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080669_8" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_11_0" dir="s" state="M"/>
- <connection from=":1224080669_11" to="37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224080676_0" to="-106366774" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_0" to="149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_1" to="-149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_2" to="106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_3" to="106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_4" to="149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_5" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_9_0" dir="s" state="M"/>
- <connection from=":1224091971_9" to="-149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_6" to="-149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_7" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_10_0" dir="s" state="M"/>
- <connection from=":1224091971_10" to="106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1224091971_8" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_11_0" dir="s" state="M"/>
- <connection from=":1224091971_11" to="149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499918_0" to="106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499918_1" to="81394192#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499918_2" to="81394192#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499918_3" to="106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499925_0" to="-106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499945_0" to="81394192#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499945_1" to="106836317#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499945_2" to="81394192#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499945_3" to="106836317#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_0" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_1" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_2" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_16_0" dir="s" state="M"/>
- <connection from=":1228499957_16" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_3" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_17_0" dir="s" state="M"/>
- <connection from=":1228499957_17" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_4" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_5" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_6" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_7" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_8" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_9" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_10" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_18_0" dir="s" state="M"/>
- <connection from=":1228499957_18" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_11" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_19_0" dir="s" state="M"/>
- <connection from=":1228499957_19" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_12" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_13" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_14" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499957_15" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_0" to="-107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_1" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_9_0" dir="s" state="M"/>
- <connection from=":1228499992_9" to="106836317#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_2" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_10_0" dir="s" state="M"/>
- <connection from=":1228499992_10" to="107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_3" to="106836317#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_4" to="107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_5" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_11_0" dir="s" state="M"/>
- <connection from=":1228499992_11" to="-107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_6" to="-107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_7" to="106836317#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1228499992_8" to="107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1231011197_0" to="130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1231011197_1" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_6_0" dir="s" state="M"/>
- <connection from=":1231011197_6" to="-130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1231011197_2" to="-130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1231011197_3" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_7_0" dir="s" state="M"/>
- <connection from=":1231011197_7" to="130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1231011197_4" to="130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1231011197_5" to="-130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_0" to="106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_1" to="-107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_2" to="-106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_3" to="-106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_4" to="106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_5" to="-107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_6" to="-107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_7" to="-106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232169474_8" to="106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_0" to="-38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_1" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_9_0" dir="s" state="M"/>
- <connection from=":1232172714_9" to="-107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_2" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_10_0" dir="s" state="M"/>
- <connection from=":1232172714_10" to="38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_3" to="38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_4" to="-38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_5" to="-107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_6" to="-107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_7" to="38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172714_8" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_11_0" dir="s" state="M"/>
- <connection from=":1232172714_11" to="-38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_0" to="107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_1" to="43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_2" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_9_0" dir="s" state="M"/>
- <connection from=":1232172723_9" to="-43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_3" to="-43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_4" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_10_0" dir="s" state="M"/>
- <connection from=":1232172723_10" to="107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_5" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_11_0" dir="s" state="M"/>
- <connection from=":1232172723_11" to="43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_6" to="43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_7" to="-43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1232172723_8" to="107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1233612841_0" to="107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_0" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_1" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_2" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_16_0" dir="s" state="M"/>
- <connection from=":1239242543_16" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_3" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_17_0" dir="s" state="M"/>
- <connection from=":1239242543_17" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_4" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_5" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_6" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_7" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_8" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_9" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_10" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_18_0" dir="s" state="M"/>
- <connection from=":1239242543_18" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_11" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_19_0" dir="s" state="M"/>
- <connection from=":1239242543_19" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_12" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_13" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_14" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242543_15" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_0" to="-107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_1" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_9_0" dir="s" state="M"/>
- <connection from=":1239242544_9" to="106836317#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_2" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_10_0" dir="s" state="M"/>
- <connection from=":1239242544_10" to="107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_3" to="106836317#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_4" to="107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_5" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_11_0" dir="s" state="M"/>
- <connection from=":1239242544_11" to="-107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_6" to="-107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_7" to="106836317#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239242544_8" to="107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_0" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_1" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_2" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_3" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_4" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_5" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_6" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_16_0" dir="s" state="M"/>
- <connection from=":1239243628_16" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_7" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_17_0" dir="s" state="M"/>
- <connection from=":1239243628_17" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_8" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_9" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_10" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_11" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_12" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_13" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_14" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_18_0" dir="s" state="M"/>
- <connection from=":1239243628_18" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1239243628_15" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_19_0" dir="s" state="M"/>
- <connection from=":1239243628_19" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159115_0" to="144874010#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159115_1" to="144874010#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1243159115_2" to="-108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159115_3" to="144874010#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1243159115_4" to="-108329427#2" fromLane="0" toLane="0" via=":1243159115_5_0" dir="s" state="M"/>
- <connection from=":1243159115_5" to="-108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_0" to="-81523330#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_1" to="-81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1243159116_2" to="108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_3" to="81523330#4" fromLane="0" toLane="1" via=":1243159116_11_0" dir="s" state="M"/>
- <connection from=":1243159116_11" to="81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1243159116_4" to="81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_5" to="-81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1243159116_6" to="108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_7" to="108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_8" to="81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1243159116_9" to="81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1243159116_10" to="-81523330#3" fromLane="0" toLane="1" via=":1243159116_12_0" dir="s" state="M"/>
- <connection from=":1243159116_12" to="-81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1244292210_0" to="166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292210_1" to="-166625256#0" fromLane="0" toLane="0" via=":1244292210_4_0" dir="s" state="M"/>
- <connection from=":1244292210_4" to="-166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292210_2" to="-166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292210_3" to="166625256#1" fromLane="0" toLane="0" via=":1244292210_5_0" dir="s" state="M"/>
- <connection from=":1244292210_5" to="166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292219_0" to="166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292219_1" to="-166625256#1" fromLane="0" toLane="0" via=":1244292219_4_0" dir="s" state="M"/>
- <connection from=":1244292219_4" to="-166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292219_2" to="-166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1244292219_3" to="166625256#0" fromLane="0" toLane="0" via=":1244292219_5_0" dir="s" state="M"/>
- <connection from=":1244292219_5" to="166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731455_0" to="101272429#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731455_1" to="108733428" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731455_2" to="154844461#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731455_3" to="154844461#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731455_4" to="101272429#0" fromLane="0" toLane="0" via=":1246731455_6_0" dir="s" state="M"/>
- <connection from=":1246731455_6" to="101272429#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731455_5" to="108733428" fromLane="0" toLane="0" via=":1246731455_7_0" dir="s" state="M"/>
- <connection from=":1246731455_7" to="108733428" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731457_0" to="154844491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731457_1" to="-108733430" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731457_2" to="-108733430" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731457_3" to="154844491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731457_4" to="154844491#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1246731460_0" to="154844461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731460_1" to="-108733429" fromLane="0" toLane="0" via=":1246731460_4_0" dir="s" state="M"/>
- <connection from=":1246731460_4" to="-108733429" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731460_2" to="-108733429" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731460_3" to="154844461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731466_0" to="166602674#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731466_1" to="-108733425" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731466_2" to="-108733425" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731466_3" to="166602674#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731466_4" to="166602674#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1246731470_0" to="108733424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731470_1" to="170594822#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731470_2" to="170594822#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1246731470_3" to="170594822#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731470_4" to="108733424" fromLane="0" toLane="0" via=":1246731470_5_0" dir="s" state="M"/>
- <connection from=":1246731470_5" to="108733424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731482_0" to="108733430" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731482_1" to="154844489#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731482_2" to="154844489#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731482_3" to="108733430" fromLane="0" toLane="0" via=":1246731482_4_0" dir="s" state="M"/>
- <connection from=":1246731482_4" to="108733430" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731504_0" to="154844465#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731504_1" to="108733425" fromLane="0" toLane="0" via=":1246731504_4_0" dir="s" state="M"/>
- <connection from=":1246731504_4" to="108733425" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731504_2" to="108733425" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731504_3" to="154844465#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731525_0" to="-108733424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731525_1" to="154844481" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731525_2" to="154844481" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731525_3" to="-108733424" fromLane="0" toLane="0" via=":1246731525_4_0" dir="s" state="M"/>
- <connection from=":1246731525_4" to="-108733424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731541_0" to="170590354#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731541_1" to="-108733421" fromLane="0" toLane="0" via=":1246731541_4_0" dir="s" state="M"/>
- <connection from=":1246731541_4" to="-108733421" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731541_2" to="-108733421" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731541_3" to="170590354#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1246731544_0" to="154844479" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731544_1" to="-108733422" fromLane="0" toLane="0" via=":1246731544_4_0" dir="s" state="M"/>
- <connection from=":1246731544_4" to="-108733422" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731544_2" to="-108733422" fromLane="0" toLane="0" via=":1246731544_5_0" dir="s" state="M"/>
- <connection from=":1246731544_5" to="-108733422" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731544_3" to="154844479" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731574_0" to="154844467" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731574_1" to="108733421" fromLane="0" toLane="0" via=":1246731574_4_0" dir="s" state="M"/>
- <connection from=":1246731574_4" to="108733421" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731574_2" to="108733421" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731574_3" to="154844467" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731576_0" to="111863125#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731576_1" to="-108733428" fromLane="0" toLane="0" via=":1246731576_4_0" dir="s" state="M"/>
- <connection from=":1246731576_4" to="-108733428" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731576_2" to="-108733428" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731576_3" to="111863125#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731601_0" to="111549913#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731601_1" to="108733431" fromLane="0" toLane="0" via=":1246731601_4_0" dir="s" state="M"/>
- <connection from=":1246731601_4" to="108733431" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731601_2" to="108733431" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731601_3" to="111549913#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731620_0" to="170590352" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731620_1" to="108733422" fromLane="0" toLane="0" via=":1246731620_5_0" dir="s" state="M"/>
- <connection from=":1246731620_5" to="108733422" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731620_2" to="108733422" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731620_3" to="170590352" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731620_4" to="170590352" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1246731627_0" to="154844465#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731627_1" to="-108733431" fromLane="0" toLane="0" via=":1246731627_4_0" dir="s" state="M"/>
- <connection from=":1246731627_4" to="-108733431" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731627_2" to="-108733431" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731627_3" to="154844465#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731647_0" to="108733429" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731647_1" to="154844485#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731647_2" to="154844485#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1246731647_3" to="154844485#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1246731647_4" to="108733429" fromLane="0" toLane="0" via=":1246731647_5_0" dir="s" state="M"/>
- <connection from=":1246731647_5" to="108733429" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1252777712_0" to="81394188#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1252777712_1" to="81394188#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1252777720_0" to="-81523330#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1252777720_1" to="-81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1252777720_2" to="81523330#1" fromLane="0" toLane="1" via=":1252777720_8_0" dir="s" state="M"/>
- <connection from=":1252777720_8" to="81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1252777720_3" to="81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1252777720_4" to="-81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1252777720_5" to="81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1252777720_6" to="81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1252777720_7" to="-81523330#0" fromLane="0" toLane="1" via=":1252777720_9_0" dir="s" state="M"/>
- <connection from=":1252777720_9" to="-81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054074_0" to="154489992#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_1" to="38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_2" to="-38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_3" to="-38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_4" to="154489992#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_5" to="154489992#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054074_6" to="38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_7" to="-38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054074_8" to="154489992#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054074_9" to="38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054077_0" to="109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054077_1" to="-109912572#4" fromLane="0" toLane="0" via=":1257054077_4_0" dir="s" state="M"/>
- <connection from=":1257054077_4" to="-109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054077_2" to="-109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054077_3" to="109912567#0" fromLane="0" toLane="0" via=":1257054077_5_0" dir="s" state="M"/>
- <connection from=":1257054077_5" to="109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_0" to="109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_1" to="81394162#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_2" to="81394162#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054092_3" to="-109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_4" to="109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_5" to="81394162#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054092_6" to="-109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_7" to="81394162#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_8" to="-109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054092_9" to="109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_0" to="133960538#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_1" to="109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_2" to="-109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_3" to="-109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_4" to="133960538#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_5" to="133960538#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054108_6" to="109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_7" to="-109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054108_8" to="133960538#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054108_9" to="109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054127_0" to="144874008#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054127_1" to="38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054127_2" to="144874008#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054127_3" to="38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054132_0" to="37973565#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054132_1" to="-109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054132_2" to="-109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054132_3" to="37973565#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_0" to="37449253#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_1" to="109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_2" to="-109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_3" to="-109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_4" to="37449253#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_5" to="109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_6" to="-109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_7" to="37449253#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054155_8" to="109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054162_0" to="-109912568" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_0" to="109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_1" to="37449245#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_2" to="-109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_3" to="109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_4" to="37449245#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_5" to="-109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_6" to="37449245#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_7" to="-109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054165_8" to="109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_0" to="-139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_1" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_2" to="139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054172_3" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_4" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_5" to="-139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_6" to="-139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054172_7" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_18_0" dir="s" state="M"/>
- <connection from=":1257054172_18" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_8" to="139118805#2" fromLane="0" toLane="1" via=":1257054172_19_0" dir="s" state="M"/>
- <connection from=":1257054172_19" to="139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054172_9" to="139118805#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_10" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_11" to="-139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054172_12" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_13" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_14" to="139118805#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_15" to="139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054172_16" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054172_17" to="-139118805#1" fromLane="0" toLane="1" via=":1257054172_20_0" dir="s" state="M"/>
- <connection from=":1257054172_20" to="-139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1257054178_0" to="109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_1" to="38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_2" to="-38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_3" to="-38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_4" to="109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_5" to="38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_6" to="38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_7" to="-38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054178_8" to="109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054196_0" to="109912568" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_0" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_1" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_2" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_3" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_4" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_5" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_6" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_7" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_16_0" dir="s" state="M"/>
- <connection from=":1257054205_16" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_8" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_9" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_10" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_11" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_12" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_13" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_14" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_17_0" dir="s" state="M"/>
- <connection from=":1257054205_17" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054205_15" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_18_0" dir="s" state="M"/>
- <connection from=":1257054205_18" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_0" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_1" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_2" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_16_0" dir="s" state="M"/>
- <connection from=":1257054208_16" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_3" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_17_0" dir="s" state="M"/>
- <connection from=":1257054208_17" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_4" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_5" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_6" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_7" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_8" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_9" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_10" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_18_0" dir="s" state="M"/>
- <connection from=":1257054208_18" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_11" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_19_0" dir="s" state="M"/>
- <connection from=":1257054208_19" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_12" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_13" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_14" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1257054208_15" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1261880295_0" to="44738605#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1261880295_1" to="110514869#0" fromLane="0" toLane="1" via=":1261880295_5_0" dir="s" state="M"/>
- <connection from=":1261880295_5" to="110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1261880295_2" to="110514869#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1261880295_3" to="110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1261880295_4" to="44738605#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_0" to="-81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_1" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_2" to="81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1263725264_3" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_4" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_5" to="-81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_6" to="-81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1263725264_7" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_8" to="81523330#3" fromLane="0" toLane="1" via=":1263725264_18_0" dir="s" state="M"/>
- <connection from=":1263725264_18" to="81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1263725264_9" to="81523330#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_10" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_11" to="-81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1263725264_12" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_13" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_14" to="81523330#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_15" to="81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1263725264_16" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725264_17" to="-81523330#2" fromLane="0" toLane="1" via=":1263725264_19_0" dir="s" state="M"/>
- <connection from=":1263725264_19" to="-81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1263725266_0" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_1" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_2" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_16_0" dir="s" state="M"/>
- <connection from=":1263725266_16" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_3" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_17_0" dir="s" state="M"/>
- <connection from=":1263725266_17" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_4" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_5" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_6" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_7" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_8" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_9" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_10" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_11" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_18_0" dir="s" state="M"/>
- <connection from=":1263725266_18" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_12" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_13" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_14" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1263725266_15" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1268463825_0" to="-81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557956_0" to="37942667#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557956_1" to="37942667#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557968_0" to="117492209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557968_1" to="108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557968_2" to="-108329425#3" fromLane="0" toLane="0" via=":1323557968_6_0" dir="s" state="M"/>
- <connection from=":1323557968_6" to="-108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557968_3" to="-108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557968_4" to="117492209" fromLane="0" toLane="0" via=":1323557968_7_0" dir="s" state="M"/>
- <connection from=":1323557968_7" to="117492209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1323557968_5" to="108329425#4" fromLane="0" toLane="0" via=":1323557968_8_0" dir="s" state="M"/>
- <connection from=":1323557968_8" to="108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1366723470_0" to="123339612" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367073442_0" to="122302035#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855907_0" to="-122394853" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855907_1" to="122394834" fromLane="0" toLane="0" via=":1367855907_4_0" dir="s" state="M"/>
- <connection from=":1367855907_4" to="122394834" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855907_2" to="122394834" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855907_3" to="-122394853" fromLane="0" toLane="0" via=":1367855907_5_0" dir="s" state="M"/>
- <connection from=":1367855907_5" to="-122394853" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_0" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_1" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_2" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_3" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_4" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_5" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_6" to="-122394834" fromLane="0" toLane="0" via=":1367855909_16_0" dir="s" state="M"/>
- <connection from=":1367855909_16" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_7" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_17_0" dir="s" state="M"/>
- <connection from=":1367855909_17" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_8" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_9" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_10" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_11" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_12" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_13" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_14" to="-122394860" fromLane="0" toLane="0" via=":1367855909_18_0" dir="s" state="M"/>
- <connection from=":1367855909_18" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855909_15" to="-122394845" fromLane="0" toLane="0" via=":1367855909_19_0" dir="s" state="M"/>
- <connection from=":1367855909_19" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855910_0" to="-122394859" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855910_1" to="122394860" fromLane="0" toLane="0" via=":1367855910_4_0" dir="s" state="M"/>
- <connection from=":1367855910_4" to="122394860" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855910_2" to="122394860" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855910_3" to="-122394859" fromLane="0" toLane="0" via=":1367855910_5_0" dir="s" state="M"/>
- <connection from=":1367855910_5" to="-122394859" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855923_0" to="129780019#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855923_1" to="-122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855923_2" to="129780019#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855923_3" to="-122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_0" to="23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_1" to="-23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_2" to="-122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_3" to="-122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_4" to="23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_5" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_9_0" dir="s" state="M"/>
- <connection from=":1367855925_9" to="-23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_6" to="-23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_7" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_10_0" dir="s" state="M"/>
- <connection from=":1367855925_10" to="-122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855925_8" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_11_0" dir="s" state="M"/>
- <connection from=":1367855925_11" to="23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_0" to="-122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_1" to="130443635#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_2" to="122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_3" to="-122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_4" to="130443635#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_5" to="122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_6" to="130443635#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_7" to="122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855926_8" to="-122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_0" to="122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_1" to="122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_2" to="-122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_3" to="-122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_4" to="122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_5" to="122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_6" to="122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_7" to="-122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855927_8" to="122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_0" to="122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_1" to="122394853" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_2" to="-122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_3" to="-122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_4" to="122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_5" to="122394853" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_6" to="122394853" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_7" to="-122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855929_8" to="122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_0" to="122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_1" to="122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_2" to="-122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_3" to="-122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_4" to="122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_5" to="122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_6" to="122394845" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_7" to="-122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855930_8" to="122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_0" to="122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_1" to="122394859" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_2" to="-122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_3" to="-122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_4" to="122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_5" to="122394859" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_6" to="122394859" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_7" to="-122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855931_8" to="122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_0" to="122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_1" to="23182387#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_2" to="-122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_3" to="23182387#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_4" to="-122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_5" to="122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_6" to="122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_7" to="23182387#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855932_8" to="-122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1367855969_0" to="122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844756_0" to="122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_0" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_1" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_2" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_3" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_4" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_5" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_6" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_16_0" dir="s" state="M"/>
- <connection from=":1369844757_16" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_7" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_17_0" dir="s" state="M"/>
- <connection from=":1369844757_17" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_8" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_9" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_10" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_11" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_12" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_13" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_14" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_18_0" dir="s" state="M"/>
- <connection from=":1369844757_18" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844757_15" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_19_0" dir="s" state="M"/>
- <connection from=":1369844757_19" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844758_0" to="122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844760_0" to="-122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_0" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_1" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_2" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_3" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_4" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_5" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_6" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_16_0" dir="s" state="M"/>
- <connection from=":1369844762_16" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_7" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_17_0" dir="s" state="M"/>
- <connection from=":1369844762_17" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_8" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_9" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_10" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_11" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_12" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_13" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_14" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_18_0" dir="s" state="M"/>
- <connection from=":1369844762_18" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844762_15" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_19_0" dir="s" state="M"/>
- <connection from=":1369844762_19" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844763_0" to="122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844770_0" to="-122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_0" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_1" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_2" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_3" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_4" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_5" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_6" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_16_0" dir="s" state="M"/>
- <connection from=":1369844772_16" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_7" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_17_0" dir="s" state="M"/>
- <connection from=":1369844772_17" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_8" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_9" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_10" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_11" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_12" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_13" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_14" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_18_0" dir="s" state="M"/>
- <connection from=":1369844772_18" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844772_15" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_19_0" dir="s" state="M"/>
- <connection from=":1369844772_19" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844774_0" to="-122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844780_0" to="122641557" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1369844786_0" to="-122641557" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1373642446_0" to="38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929737_0" to="37449245#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929737_1" to="172498380#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929737_2" to="37449245#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929737_3" to="172498380#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_0" to="37449253#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_1" to="129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_2" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_9_0" dir="s" state="M"/>
- <connection from=":13929747_9" to="-129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_3" to="-129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_4" to="37449253#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_5" to="129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_6" to="-129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_7" to="37449253#7" fromLane="0" toLane="0" via=":13929747_10_0" dir="s" state="M"/>
- <connection from=":13929747_10" to="37449253#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929747_8" to="129780022#2" fromLane="0" toLane="0" via=":13929747_11_0" dir="s" state="M"/>
- <connection from=":13929747_11" to="129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929752_0" to="-160587537#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":13929775_0" to="42976410#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929775_1" to="149868584#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929775_2" to="149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":13929775_3" to="-149868584#6" fromLane="0" toLane="1" via=":13929775_11_0" dir="s" state="M"/>
- <connection from=":13929775_11" to="-149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":13929775_4" to="-149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929775_5" to="42976410#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929775_6" to="149868584#7" fromLane="0" toLane="1" via=":13929775_12_0" dir="s" state="M"/>
- <connection from=":13929775_12" to="149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":13929775_7" to="-149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929775_8" to="-149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":13929775_9" to="42976410#0" fromLane="0" toLane="0" via=":13929775_13_0" dir="s" state="M"/>
- <connection from=":13929775_13" to="42976410#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":13929775_10" to="149868584#7" fromLane="0" toLane="1" via=":13929775_14_0" dir="s" state="M"/>
- <connection from=":13929775_14" to="149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":13990620_0" to="149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1431113444_0" to="-197794762" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_0" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_1" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_2" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_16_0" dir="s" state="M"/>
- <connection from=":1457695393_16" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_3" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_17_0" dir="s" state="M"/>
- <connection from=":1457695393_17" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_4" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_5" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_6" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_7" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_8" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_9" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_10" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_18_0" dir="s" state="M"/>
- <connection from=":1457695393_18" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_11" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_19_0" dir="s" state="M"/>
- <connection from=":1457695393_19" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_12" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_13" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_14" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457695393_15" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_0" to="-81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_1" to="-81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_2" to="81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_3" to="81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_4" to="-81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_5" to="-81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_6" to="-81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_7" to="81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699220_8" to="-81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_0" to="-81672209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_1" to="81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_2" to="-81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_3" to="-81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_4" to="-81672209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_5" to="81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_6" to="81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_7" to="-81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699222_8" to="-81672209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_0" to="81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_1" to="-81672218" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_2" to="-81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_3" to="-81672218" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_4" to="-81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_5" to="81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_6" to="81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_7" to="-81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1457699223_8" to="-81672218" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1474873133_0" to="-191176268" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1474873133_1" to="191176266" fromLane="0" toLane="0" via=":1474873133_4_0" dir="s" state="M"/>
- <connection from=":1474873133_4" to="191176266" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1474873133_2" to="191176266" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1474873133_3" to="-191176268" fromLane="0" toLane="0" via=":1474873133_5_0" dir="s" state="M"/>
- <connection from=":1474873133_5" to="-191176268" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1474873137_0" to="191176265" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1474873139_0" to="-191176262" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1479400627_0" to="109438231#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1479400627_1" to="134572340#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1479400627_2" to="109438231#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1479400627_3" to="134572340#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1482088973_0" to="59159266#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088973_1" to="134872478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088973_2" to="134872478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088973_3" to="59159266#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_0" to="-59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_1" to="-134872478" fromLane="0" toLane="0" via=":1482088987_9_0" dir="s" state="M"/>
- <connection from=":1482088987_9" to="-134872478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_2" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_10_0" dir="s" state="M"/>
- <connection from=":1482088987_10" to="59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_3" to="59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_4" to="-59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_5" to="-134872478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_6" to="-134872478" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_7" to="59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1482088987_8" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_11_0" dir="s" state="M"/>
- <connection from=":1482088987_11" to="-59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545661417_0" to="141190464" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545661417_1" to="141190463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545661417_2" to="141190464" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545661417_3" to="141190463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672785_0" to="-141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672787_0" to="141191260#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672787_1" to="139118804#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672788_0" to="-141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_0" to="-141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_1" to="-141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_2" to="141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_3" to="141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_4" to="-141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_5" to="-141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_6" to="-141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_7" to="141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672797_8" to="-141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_0" to="-141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_1" to="141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_2" to="141191252" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_3" to="141191252" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_4" to="-141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_5" to="141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_6" to="141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_7" to="141191252" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672804_8" to="-141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_0" to="141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_1" to="141191260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_2" to="-141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_3" to="-141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_4" to="141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_5" to="141191260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_6" to="141191260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_7" to="-141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672806_8" to="141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_0" to="141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_1" to="141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_2" to="-141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_3" to="-141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_4" to="141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_5" to="141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_6" to="141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_7" to="-141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672819_8" to="141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_0" to="141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_1" to="-141191252" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_2" to="-141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_3" to="-141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_4" to="141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_5" to="-141191252" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_6" to="-141191252" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_7" to="-141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672824_8" to="141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_0" to="141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_1" to="141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_2" to="-141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_3" to="-141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_4" to="141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_5" to="141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_6" to="141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_7" to="-141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672843_8" to="141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672852_0" to="141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672852_1" to="-141191259#5" fromLane="0" toLane="0" via=":1545672852_4_0" dir="s" state="M"/>
- <connection from=":1545672852_4" to="-141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672852_2" to="-141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672852_3" to="141191259#0" fromLane="0" toLane="0" via=":1545672852_5_0" dir="s" state="M"/>
- <connection from=":1545672852_5" to="141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_0" to="-141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_1" to="141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_2" to="141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_3" to="141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_4" to="-141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_5" to="141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_6" to="141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_7" to="141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672864_8" to="-141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_0" to="-141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_1" to="141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_2" to="141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_3" to="141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_4" to="-141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_5" to="141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_6" to="141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_7" to="141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672874_8" to="-141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_0" to="-141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_1" to="-141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_2" to="141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_3" to="141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_4" to="-141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_5" to="-141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_6" to="-141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_7" to="141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672910_8" to="-141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_0" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_1" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_2" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_3" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_4" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_5" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_6" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_7" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_8" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_9" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_10" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_11" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_12" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_13" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_14" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672919_15" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672923_0" to="141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672923_1" to="-141191255#1" fromLane="0" toLane="0" via=":1545672923_4_0" dir="s" state="M"/>
- <connection from=":1545672923_4" to="-141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672923_2" to="-141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672923_3" to="141191255#0" fromLane="0" toLane="0" via=":1545672923_5_0" dir="s" state="M"/>
- <connection from=":1545672923_5" to="141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_0" to="-141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_1" to="141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_2" to="141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_3" to="141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_4" to="-141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_5" to="141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_6" to="141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_7" to="141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672954_8" to="-141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672971_0" to="-141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_0" to="-141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_1" to="141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_2" to="-141191257" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_3" to="-141191257" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_4" to="-141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_5" to="141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_6" to="-141191257" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_7" to="141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545672999_8" to="-141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_0" to="-141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_1" to="141191257" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_2" to="141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_3" to="141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_4" to="-141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_5" to="141191257" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_6" to="141191257" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_7" to="141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673030_8" to="-141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_0" to="-141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_1" to="-141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_2" to="141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_3" to="141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_4" to="-141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_5" to="-141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_6" to="-141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_7" to="141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673031_8" to="-141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_0" to="-141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_1" to="141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_2" to="141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_3" to="141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_4" to="-141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_5" to="141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_6" to="141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_7" to="141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673065_8" to="-141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_0" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_1" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_2" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_3" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_4" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_5" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_6" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_7" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_8" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_9" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_10" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_11" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_12" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_13" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_14" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673067_15" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_0" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_1" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_2" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_3" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_4" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_5" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_6" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_7" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_8" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_9" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_10" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_11" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_12" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_13" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_14" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673092_15" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_0" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_1" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_2" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_3" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_4" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_5" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_6" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_7" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_8" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_9" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_10" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_11" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_12" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_13" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_14" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673105_15" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_0" to="23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_1" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_9_0" dir="s" state="M"/>
- <connection from=":1545673118_9" to="141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_2" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_10_0" dir="s" state="M"/>
- <connection from=":1545673118_10" to="-23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_3" to="-23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_4" to="23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_5" to="141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_6" to="141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_7" to="-23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673118_8" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_11_0" dir="s" state="M"/>
- <connection from=":1545673118_11" to="23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_0" to="141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_1" to="-141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_2" to="-141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_3" to="-141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_4" to="141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_5" to="-141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_6" to="-141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_7" to="-141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673123_8" to="141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_0" to="-141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_1" to="141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_2" to="141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_3" to="141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_4" to="-141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_5" to="141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_6" to="141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_7" to="141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673135_8" to="-141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_0" to="141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_1" to="-141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_2" to="141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_3" to="141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_4" to="141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_5" to="-141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_6" to="-141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_7" to="141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673150_8" to="141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_0" to="-141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_1" to="141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_2" to="-141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_3" to="-141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_4" to="-141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_5" to="141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_6" to="141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_7" to="-141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673191_8" to="-141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_0" to="141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_1" to="-141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_2" to="-141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_3" to="-141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_4" to="141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_5" to="-141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_6" to="-141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_7" to="-141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673218_8" to="141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_0" to="141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_1" to="141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_2" to="-141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_3" to="-141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_4" to="141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_5" to="141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_6" to="141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_7" to="-141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673223_8" to="141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_0" to="-141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_1" to="141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_2" to="-141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_3" to="-141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_4" to="-141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_5" to="141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_6" to="141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_7" to="-141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673240_8" to="-141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_0" to="-141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_1" to="141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_2" to="141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_3" to="141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_4" to="-141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_5" to="141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_6" to="141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_7" to="141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673280_8" to="-141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_0" to="141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_1" to="-141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_2" to="-141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_3" to="-141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_4" to="141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_5" to="-141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_6" to="-141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_7" to="-141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673304_8" to="141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_0" to="141191261#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_1" to="-141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_2" to="141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_3" to="-141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_4" to="141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_5" to="141191261#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_6" to="141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_7" to="141191261#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673319_8" to="-141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_0" to="-141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_1" to="-141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_2" to="141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_3" to="141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_4" to="-141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_5" to="-141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_6" to="-141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_7" to="141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673333_8" to="-141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_0" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_1" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_2" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_3" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_4" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_5" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_6" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_7" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_8" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_9" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_10" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_11" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_12" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_13" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_14" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673345_15" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_0" to="23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_1" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_9_0" dir="s" state="M"/>
- <connection from=":1545673349_9" to="141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_2" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_10_0" dir="s" state="M"/>
- <connection from=":1545673349_10" to="-23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_3" to="-23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_4" to="23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_5" to="141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_6" to="141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_7" to="-23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1545673349_8" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_11_0" dir="s" state="M"/>
- <connection from=":1545673349_11" to="23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003168_0" to="149419435#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003168_1" to="24573897#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003168_2" to="149419435#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003168_3" to="24573897#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003172_0" to="149419435#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003172_1" to="42976407#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003193_0" to="24573930#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003193_1" to="149419435#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003193_2" to="24573930#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003193_3" to="149419435#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003199_0" to="81096816#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624003199_1" to="81096816#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624020482_0" to="24573930#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624020482_1" to="24573930#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624020484_0" to="24573897#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624020484_1" to="149420179" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_0" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_1" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_2" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_3" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_4" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_25_0" dir="s" state="M"/>
- <connection from=":1624060630_25" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_5" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_6" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_26_0" dir="s" state="M"/>
- <connection from=":1624060630_26" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_7" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_27_0" dir="s" state="M"/>
- <connection from=":1624060630_27" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_8" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_9" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_28_0" dir="s" state="M"/>
- <connection from=":1624060630_28" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_10" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_11" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_12" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_13" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_14" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_15" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_16" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_17" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_18" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_19" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_20" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_21" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_22" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_23" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1624060630_24" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1625774769_0" to="197781817" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_0" to="-149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_1" to="-149819222" fromLane="0" toLane="0" via=":1627657715_9_0" dir="s" state="M"/>
- <connection from=":1627657715_9" to="-149819222" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_2" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_10_0" dir="s" state="M"/>
- <connection from=":1627657715_10" to="179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_3" to="179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_4" to="-149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_5" to="-149819222" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_6" to="-149819222" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_7" to="179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657715_8" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_11_0" dir="s" state="M"/>
- <connection from=":1627657715_11" to="-149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657783_0" to="149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657783_1" to="149819222" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657783_2" to="149819222" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657783_3" to="149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_0" to="149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_1" to="-149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_2" to="149819224" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_3" to="149819224" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_4" to="149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_5" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_9_0" dir="s" state="M"/>
- <connection from=":1627657822_9" to="-149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_6" to="-149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_7" to="149819224" fromLane="0" toLane="0" via=":1627657822_10_0" dir="s" state="M"/>
- <connection from=":1627657822_10" to="149819224" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657822_8" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_11_0" dir="s" state="M"/>
- <connection from=":1627657822_11" to="149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_0" to="-149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_1" to="-149819224" fromLane="0" toLane="0" via=":1627657825_9_0" dir="s" state="M"/>
- <connection from=":1627657825_9" to="-149819224" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_2" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_10_0" dir="s" state="M"/>
- <connection from=":1627657825_10" to="149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_3" to="149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_4" to="-149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_5" to="-149819224" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_6" to="-149819224" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_7" to="149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1627657825_8" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_11_0" dir="s" state="M"/>
- <connection from=":1627657825_11" to="-149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_0" to="-130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_1" to="130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_2" to="-105254618" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_3" to="-105254618" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_4" to="-130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_5" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_9_0" dir="s" state="M"/>
- <connection from=":1634988377_9" to="130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_6" to="130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_7" to="-105254618" fromLane="0" toLane="0" via=":1634988377_10_0" dir="s" state="M"/>
- <connection from=":1634988377_10" to="-105254618" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1634988377_8" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_11_0" dir="s" state="M"/>
- <connection from=":1634988377_11" to="-130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_0" to="-197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_1" to="151164683" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_2" to="197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_3" to="197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_4" to="-197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_5" to="151164683" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_6" to="151164683" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_7" to="197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1639892546_8" to="-197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_0" to="101272435#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_1" to="38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_2" to="-38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_3" to="-38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_4" to="101272435#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_5" to="38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_6" to="-38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_7" to="101272435#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480279_8" to="38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_0" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_1" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_2" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_3" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_4" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_5" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_6" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_16_0" dir="s" state="M"/>
- <connection from=":1669480280_16" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_7" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_17_0" dir="s" state="M"/>
- <connection from=":1669480280_17" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_8" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_9" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_10" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_11" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_12" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_13" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_14" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_18_0" dir="s" state="M"/>
- <connection from=":1669480280_18" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480280_15" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_19_0" dir="s" state="M"/>
- <connection from=":1669480280_19" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_0" to="154844474#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_1" to="-160587542" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_2" to="154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_3" to="154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_4" to="154844474#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_5" to="154844474#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480281_6" to="-160587542" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480281_7" to="154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480281_8" to="154844474#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480281_9" to="-160587542" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_0" to="-110514869#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480282_1" to="154844485#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480282_2" to="154844485#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_3" to="154844503" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_4" to="-110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_5" to="154844485#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_6" to="154844503" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_7" to="154844485#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480282_8" to="154844485#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480282_9" to="154844503" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480282_10" to="-110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480283_0" to="101272435#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_1" to="-38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_2" to="38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_3" to="38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_4" to="101272435#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_5" to="-38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_6" to="38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_7" to="101272435#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480283_8" to="-38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_0" to="154844474#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_1" to="-38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_2" to="38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_3" to="38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_4" to="154844474#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_5" to="154844474#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480284_6" to="-38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_7" to="38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480284_8" to="154844474#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480284_9" to="-38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_0" to="-38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_1" to="81124939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_2" to="81124939#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480286_3" to="38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_4" to="-38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_5" to="81124939#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1669480286_6" to="38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_7" to="81124939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_8" to="38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480286_9" to="-38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_0" to="-38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_1" to="37771900#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_2" to="38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_3" to="-38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_4" to="37771900#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_5" to="38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_6" to="37771900#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_7" to="38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480287_8" to="-38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_0" to="-81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_1" to="172498387#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_2" to="81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_3" to="172498387#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_4" to="81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_5" to="-81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_6" to="-81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_7" to="172498387#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1669480292_8" to="81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1718241040_0" to="-151164683" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_0" to="38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_1" to="151167658#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_2" to="-38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_3" to="151167658#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_4" to="-38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_5" to="38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_6" to="38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_7" to="151167658#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213140_8" to="-38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_0" to="44738605#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_1" to="38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_2" to="-38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_3" to="-38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_4" to="44738605#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_5" to="38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_6" to="-38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_7" to="44738605#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213141_8" to="38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_0" to="38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_1" to="8272412#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_2" to="-38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_3" to="8272412#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_4" to="-38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_5" to="38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_6" to="38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_7" to="8272412#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213509_8" to="-38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_0" to="38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_1" to="149419435#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_2" to="-38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_3" to="149419435#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_4" to="-38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_5" to="38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_6" to="38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_7" to="149419435#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719213668_8" to="-38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223322_0" to="-105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223322_1" to="81672207#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223322_2" to="81672207#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223322_3" to="-105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_0" to="-105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_1" to="-191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_2" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_9_0" dir="s" state="M"/>
- <connection from=":1719223329_9" to="105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_3" to="105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_4" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_10_0" dir="s" state="M"/>
- <connection from=":1719223329_10" to="-105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_5" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_11_0" dir="s" state="M"/>
- <connection from=":1719223329_11" to="-191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_6" to="105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_7" to="-191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1719223329_8" to="-105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380179_0" to="81096816#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380184_0" to="37973569#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380184_1" to="-160584981" fromLane="0" toLane="0" via=":1726380184_4_0" dir="s" state="M"/>
- <connection from=":1726380184_4" to="-160584981" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380184_2" to="-160584981" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380184_3" to="37973569#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380187_0" to="160584981" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380187_1" to="160584982#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380187_2" to="160584982#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380187_3" to="160584981" fromLane="0" toLane="0" via=":1726380187_4_0" dir="s" state="M"/>
- <connection from=":1726380187_4" to="160584981" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380193_0" to="81394192#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380193_1" to="160584982#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380193_2" to="81394192#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380193_3" to="160584982#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380194_0" to="-130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380194_1" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_6_0" dir="s" state="M"/>
- <connection from=":1726380194_6" to="130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380194_2" to="130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380194_3" to="-130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380194_4" to="130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380194_5" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_7_0" dir="s" state="M"/>
- <connection from=":1726380194_7" to="-130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380195_0" to="160584980" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380195_1" to="81394192#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380204_0" to="43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380204_1" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_6_0" dir="s" state="M"/>
- <connection from=":1726380204_6" to="-43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380204_2" to="-43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380204_3" to="43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380204_4" to="-43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726380204_5" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_7_0" dir="s" state="M"/>
- <connection from=":1726380204_7" to="43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394722_0" to="160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394722_1" to="160587538#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394722_2" to="160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394723_0" to="-160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394723_1" to="111863096#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394723_2" to="160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394723_3" to="111863096#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394723_4" to="160587538#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394723_5" to="-160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394723_6" to="-160587538#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394723_7" to="111863096#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394723_8" to="160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_0" to="149868584#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394724_1" to="-160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_2" to="-149868584#3" fromLane="0" toLane="1" via=":1726394724_18_0" dir="s" state="M"/>
- <connection from=":1726394724_18" to="-149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_3" to="160587538#4" fromLane="0" toLane="1" via=":1726394724_19_0" dir="s" state="M"/>
- <connection from=":1726394724_19" to="160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_4" to="160587538#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394724_5" to="149868584#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394724_6" to="149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_7" to="-160587538#3" fromLane="0" toLane="1" via=":1726394724_20_0" dir="s" state="M"/>
- <connection from=":1726394724_20" to="-160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_8" to="-149868584#3" fromLane="0" toLane="1" via=":1726394724_21_0" dir="s" state="M"/>
- <connection from=":1726394724_21" to="-149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_9" to="-149868584#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394724_10" to="160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_11" to="149868584#4" fromLane="0" toLane="1" via=":1726394724_22_0" dir="s" state="M"/>
- <connection from=":1726394724_22" to="149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_12" to="-160587538#3" fromLane="0" toLane="1" via=":1726394724_23_0" dir="s" state="M"/>
- <connection from=":1726394724_23" to="-160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_13" to="-160587538#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394724_14" to="-149868584#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394724_15" to="-149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_16" to="160587538#4" fromLane="0" toLane="1" via=":1726394724_24_0" dir="s" state="M"/>
- <connection from=":1726394724_24" to="160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394724_17" to="149868584#4" fromLane="0" toLane="1" via=":1726394724_25_0" dir="s" state="M"/>
- <connection from=":1726394724_25" to="149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394725_0" to="103851602#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394725_1" to="-160587538#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394725_2" to="160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394725_3" to="160587538#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394725_4" to="103851602#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394725_5" to="-160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394725_6" to="160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394725_7" to="103851602#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394725_8" to="-160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_0" to="-154844503" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394726_1" to="-160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_2" to="160587542" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_3" to="160587537#0" fromLane="0" toLane="1" via=":1726394726_18_0" dir="s" state="M"/>
- <connection from=":1726394726_18" to="160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_4" to="160587537#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394726_5" to="-154844503" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394726_6" to="-154844503" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_7" to="-160587538#7" fromLane="0" toLane="1" via=":1726394726_19_0" dir="s" state="M"/>
- <connection from=":1726394726_19" to="-160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_8" to="160587542" fromLane="0" toLane="1" via=":1726394726_20_0" dir="s" state="M"/>
- <connection from=":1726394726_20" to="160587542" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_9" to="160587542" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394726_10" to="160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_11" to="-154844503" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_12" to="-160587538#7" fromLane="0" toLane="1" via=":1726394726_21_0" dir="s" state="M"/>
- <connection from=":1726394726_21" to="-160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_13" to="-160587538#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394726_14" to="160587542" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394726_15" to="160587542" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_16" to="160587537#0" fromLane="0" toLane="1" via=":1726394726_22_0" dir="s" state="M"/>
- <connection from=":1726394726_22" to="160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394726_17" to="-154844503" fromLane="0" toLane="1" via=":1726394726_23_0" dir="s" state="M"/>
- <connection from=":1726394726_23" to="-154844503" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_0" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_1" to="-160587537#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_2" to="-160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_3" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_4" to="160587537#1" fromLane="0" toLane="1" via=":1726394727_18_0" dir="s" state="M"/>
- <connection from=":1726394727_18" to="160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_5" to="160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_6" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_7" to="-160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_8" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_9" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_10" to="160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_11" to="160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_12" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_13" to="-160587537#0" fromLane="0" toLane="1" via=":1726394727_19_0" dir="s" state="M"/>
- <connection from=":1726394727_19" to="-160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_14" to="-160587537#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_15" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394727_16" to="160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394727_17" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_0" to="-160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_1" to="-160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394728_2" to="172498387#3" fromLane="0" toLane="0" via=":1726394728_11_0" dir="s" state="M"/>
- <connection from=":1726394728_11" to="172498387#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_3" to="160587537#2" fromLane="0" toLane="1" via=":1726394728_12_0" dir="s" state="M"/>
- <connection from=":1726394728_12" to="160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394728_4" to="172498387#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_5" to="160587537#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_6" to="160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394728_7" to="-160587537#1" fromLane="0" toLane="1" via=":1726394728_13_0" dir="s" state="M"/>
- <connection from=":1726394728_13" to="-160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394728_8" to="-160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_9" to="172498387#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394728_10" to="160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_0" to="-160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_1" to="149408824#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_2" to="160587537#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_3" to="149408824#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394729_4" to="149408824#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_5" to="160587537#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394729_6" to="-160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_7" to="-160587537#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394729_8" to="149408824#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1726394729_9" to="149408824#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1726394729_10" to="160587537#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219331_0" to="-166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_1" to="42976406#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_2" to="42976406#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219331_3" to="42976406#3" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219331_4" to="166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_5" to="-166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_6" to="42976406#3" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219331_7" to="166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_8" to="42976406#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_9" to="166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219331_10" to="-166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_0" to="-166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_1" to="38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_2" to="-38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_3" to="-38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_4" to="-166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_5" to="38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_6" to="38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_7" to="-38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219332_8" to="-166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_0" to="166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_1" to="166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_2" to="-166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_3" to="-166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_4" to="166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_5" to="166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_6" to="166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_7" to="-166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219335_8" to="166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_0" to="37973569#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_1" to="166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_2" to="-166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_3" to="-166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_4" to="37973569#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_5" to="166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_6" to="-166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_7" to="37973569#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219341_8" to="166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_0" to="154500693#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_1" to="-166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_2" to="166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_3" to="166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_4" to="154500693#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_5" to="154500693#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219342_6" to="154500693#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219342_7" to="-166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_8" to="166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219342_9" to="154500693#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219342_10" to="-166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_0" to="-166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_1" to="42976406#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_2" to="42976406#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219343_3" to="42976406#2" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219343_4" to="166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_5" to="-166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_6" to="42976406#2" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219343_7" to="166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_8" to="42976406#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_9" to="166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219343_10" to="-166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_0" to="166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_1" to="166576463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_2" to="-166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_3" to="-166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_4" to="166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_5" to="166576463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_6" to="166576463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_7" to="-166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219344_8" to="166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_0" to="-130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_1" to="130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_2" to="-166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_3" to="-166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_4" to="-130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_5" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_9_0" dir="s" state="M"/>
- <connection from=":1780219345_9" to="130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_6" to="130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_7" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_10_0" dir="s" state="M"/>
- <connection from=":1780219345_10" to="-166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219345_8" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_11_0" dir="s" state="M"/>
- <connection from=":1780219345_11" to="-130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_0" to="166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_1" to="-166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_2" to="-166576463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_3" to="-166576463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_4" to="166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_5" to="-166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_6" to="-166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_7" to="-166576463" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219348_8" to="166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_0" to="154500693#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_1" to="-166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_2" to="166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_3" to="166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_4" to="154500693#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_5" to="154500693#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219352_6" to="154500693#2" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219352_7" to="-166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_8" to="166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219352_9" to="154500693#2" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":1780219352_10" to="-166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_0" to="37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_1" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_2" to="-37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219353_3" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_4" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_5" to="37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_6" to="37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219353_7" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_18_0" dir="s" state="M"/>
- <connection from=":1780219353_18" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_8" to="-37973572#0" fromLane="0" toLane="1" via=":1780219353_19_0" dir="s" state="M"/>
- <connection from=":1780219353_19" to="-37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219353_9" to="-37973572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_10" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_11" to="37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219353_12" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_13" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_14" to="-37973572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_15" to="-37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219353_16" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_20_0" dir="s" state="M"/>
- <connection from=":1780219353_20" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219353_17" to="37973572#1" fromLane="0" toLane="1" via=":1780219353_21_0" dir="s" state="M"/>
- <connection from=":1780219353_21" to="37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219355_0" to="-130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_1" to="130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_2" to="166576459" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_3" to="166576459" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_4" to="-130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_5" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_9_0" dir="s" state="M"/>
- <connection from=":1780219355_9" to="130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_6" to="130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_7" to="166576459" fromLane="0" toLane="0" via=":1780219355_10_0" dir="s" state="M"/>
- <connection from=":1780219355_10" to="166576459" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219355_8" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_11_0" dir="s" state="M"/>
- <connection from=":1780219355_11" to="-130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_0" to="166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_1" to="133960539#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_2" to="133960539#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219359_3" to="-166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_4" to="166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_5" to="133960539#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219359_6" to="-166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_7" to="133960539#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_8" to="-166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219359_9" to="166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_0" to="166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_1" to="37973568#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_2" to="-166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_3" to="37973568#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_4" to="-166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_5" to="166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_6" to="166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_7" to="37973568#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219360_8" to="-166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_0" to="42976405#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_1" to="166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_2" to="-166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_3" to="-166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_4" to="42976405#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_5" to="42976405#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219361_6" to="166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_7" to="-166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219361_8" to="42976405#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1780219361_9" to="166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_0" to="101272424#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_1" to="-166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_2" to="166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_3" to="166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_4" to="101272424#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_5" to="-166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_6" to="166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_7" to="101272424#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219362_8" to="-166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_0" to="101272424#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_1" to="-166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_2" to="166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_3" to="166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_4" to="101272424#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_5" to="-166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_6" to="166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_7" to="101272424#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219363_8" to="-166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_0" to="166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_1" to="38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_2" to="-38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_3" to="-38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_4" to="166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_5" to="38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_6" to="38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_7" to="-38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219365_8" to="166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_0" to="-166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_1" to="166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_2" to="166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_3" to="166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_4" to="-166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_5" to="166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_6" to="166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_7" to="166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219366_8" to="-166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_0" to="166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_1" to="166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_2" to="-166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_3" to="-166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_4" to="166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_5" to="166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_6" to="166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_7" to="-166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219369_8" to="166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_0" to="-166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_1" to="38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_2" to="-38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_3" to="-38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_4" to="-166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_5" to="38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_6" to="38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_7" to="-38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219371_8" to="-166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_0" to="-166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_1" to="-166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_2" to="166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_3" to="166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_4" to="-166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_5" to="-166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_6" to="-166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_7" to="166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219373_8" to="-166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_0" to="166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_1" to="-166576459" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_2" to="-166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_3" to="-166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_4" to="166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_5" to="-166576459" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_6" to="-166576459" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_7" to="-166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219374_8" to="166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_0" to="42976410#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_1" to="166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_2" to="-166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_3" to="-166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_4" to="42976410#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_5" to="166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_6" to="-166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_7" to="42976410#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780219377_8" to="166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780381201_0" to="-38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1780623649_0" to="-166625259" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1903640411_0" to="-106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1903640411_1" to="-106367427#1" fromLane="0" toLane="0" via=":1903640411_2_0" dir="s" state="M"/>
- <connection from=":1903640411_2" to="-106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1913728534_0" to="-160587538#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1913728534_1" to="-160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1913728534_2" to="160587538#7" fromLane="0" toLane="1" via=":1913728534_6_0" dir="s" state="M"/>
- <connection from=":1913728534_6" to="160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1913728534_3" to="160587538#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":1913728534_4" to="160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":1913728534_5" to="-160587538#6" fromLane="0" toLane="1" via=":1913728534_7_0" dir="s" state="M"/>
- <connection from=":1913728534_7" to="-160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2004733211_0" to="-23182358#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2006433692_0" to="-132323955" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2006433692_1" to="190048065" fromLane="0" toLane="0" via=":2006433692_4_0" dir="s" state="M"/>
- <connection from=":2006433692_4" to="190048065" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2006433692_2" to="190048065" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2006433692_3" to="-132323955" fromLane="0" toLane="0" via=":2006433692_5_0" dir="s" state="M"/>
- <connection from=":2006433692_5" to="-132323955" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414184_0" to="-191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414184_1" to="191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414184_2" to="-191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414184_3" to="191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414184_4" to="191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414184_5" to="-191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_0" to="108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_1" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_9_0" dir="s" state="M"/>
- <connection from=":2016414185_9" to="191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_2" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_10_0" dir="s" state="M"/>
- <connection from=":2016414185_10" to="-108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_3" to="-108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_4" to="108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_5" to="191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_6" to="191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_7" to="-108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2016414185_8" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_11_0" dir="s" state="M"/>
- <connection from=":2016414185_11" to="108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759586_0" to="191176262" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759586_1" to="-191176261" fromLane="0" toLane="0" via=":2017759586_4_0" dir="s" state="M"/>
- <connection from=":2017759586_4" to="-191176261" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759586_2" to="-191176261" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759586_3" to="191176262" fromLane="0" toLane="0" via=":2017759586_5_0" dir="s" state="M"/>
- <connection from=":2017759586_5" to="191176262" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_0" to="191176268" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_1" to="69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_2" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_9_0" dir="s" state="M"/>
- <connection from=":2017759588_9" to="-69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_3" to="-69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_4" to="191176268" fromLane="0" toLane="0" via=":2017759588_10_0" dir="s" state="M"/>
- <connection from=":2017759588_10" to="191176268" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_5" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_11_0" dir="s" state="M"/>
- <connection from=":2017759588_11" to="69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_6" to="69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_7" to="-69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759588_8" to="191176268" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759592_0" to="191176261" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759592_1" to="-191176264" fromLane="0" toLane="0" via=":2017759592_4_0" dir="s" state="M"/>
- <connection from=":2017759592_4" to="-191176264" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759592_2" to="-191176264" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759592_3" to="191176261" fromLane="0" toLane="0" via=":2017759592_5_0" dir="s" state="M"/>
- <connection from=":2017759592_5" to="191176261" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_0" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_1" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_2" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_3" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_4" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_5" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_6" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_7" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_8" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_9" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_10" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_11" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_12" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_13" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_14" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759594_15" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759596_0" to="-191176263" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759596_1" to="191176267" fromLane="0" toLane="0" via=":2017759596_4_0" dir="s" state="M"/>
- <connection from=":2017759596_4" to="191176267" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759596_2" to="191176267" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759596_3" to="-191176263" fromLane="0" toLane="0" via=":2017759596_5_0" dir="s" state="M"/>
- <connection from=":2017759596_5" to="-191176263" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2017759615_0" to="-191176267" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_0" to="-122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_1" to="197794762" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_2" to="-197781817" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_3" to="-197781817" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_4" to="-122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_5" to="197794762" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_6" to="197794762" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_7" to="-197781817" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2079750190_8" to="-122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499947_0" to="37640550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499947_1" to="-197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499947_2" to="37640550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499947_3" to="-197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_0" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_1" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_2" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_3" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_4" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_5" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_6" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_16_0" dir="s" state="M"/>
- <connection from=":2081499948_16" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_7" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_17_0" dir="s" state="M"/>
- <connection from=":2081499948_17" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_8" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_9" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_10" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_11" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_12" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_13" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_14" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_18_0" dir="s" state="M"/>
- <connection from=":2081499948_18" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499948_15" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_19_0" dir="s" state="M"/>
- <connection from=":2081499948_19" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_0" to="81124943#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_1" to="-197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_2" to="197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_3" to="197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_4" to="81124943#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_5" to="81124943#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499949_6" to="-197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_7" to="197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499949_8" to="81124943#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499949_9" to="-197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_0" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_1" to="-160587538#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_2" to="-160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499950_3" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_4" to="160587538#1" fromLane="0" toLane="1" via=":2081499950_18_0" dir="s" state="M"/>
- <connection from=":2081499950_18" to="160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499950_5" to="160587538#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_6" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_7" to="-160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499950_8" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_9" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_10" to="160587538#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_11" to="160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499950_12" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_13" to="-160587538#0" fromLane="0" toLane="1" via=":2081499950_19_0" dir="s" state="M"/>
- <connection from=":2081499950_19" to="-160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499950_14" to="-160587538#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_15" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499950_16" to="160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499950_17" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_0" to="-197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_1" to="166602674#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_2" to="166602674#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499951_3" to="197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_4" to="-197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_5" to="166602674#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2081499951_6" to="197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_7" to="166602674#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_8" to="197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499951_9" to="-197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499952_0" to="81096816#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499952_1" to="197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499952_2" to="81096816#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2081499952_3" to="197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_0" to="-149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_1" to="170590354#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767389_2" to="149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_3" to="170590354#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_4" to="149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_5" to="-149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_6" to="-149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_7" to="170590354#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767389_8" to="170590354#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767389_9" to="149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_0" to="170594822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_1" to="-24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_2" to="24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_3" to="24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_4" to="170594822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_5" to="170594822#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767392_6" to="-24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_7" to="24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767392_8" to="170594822#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767392_9" to="-24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_0" to="23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_1" to="170590354#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767394_2" to="-23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_3" to="170590354#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_4" to="-23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_5" to="23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_6" to="23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_7" to="170590354#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767394_8" to="170590354#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767394_9" to="-23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_0" to="170594822#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_1" to="-37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_2" to="37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_3" to="37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_4" to="170594822#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_5" to="170594822#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767395_6" to="-37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_7" to="37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":2265767395_8" to="170594822#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":2265767395_9" to="-37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_0" to="133868191#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_1" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_2" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_3" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_4" to="133868191#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":243489891_5" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_6" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_7" to="133868191#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":243489891_8" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_9" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_10" to="133868191#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_11" to="133868191#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":243489891_12" to="133868191#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":243489891_13" to="133868191#0" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":243489891_14" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_15" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":243489891_16" to="133868191#0" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":243489891_17" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_0" to="129780026#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_1" to="129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_2" to="-154409621" fromLane="0" toLane="0" via=":248913124_9_0" dir="s" state="M"/>
- <connection from=":248913124_9" to="-154409621" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_3" to="-154409621" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_4" to="129780026#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_5" to="129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_6" to="-154409621" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_7" to="129780026#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913124_8" to="129780022#0" fromLane="0" toLane="0" via=":248913124_10_0" dir="s" state="M"/>
- <connection from=":248913124_10" to="129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913130_0" to="37449253#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913130_1" to="23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913130_2" to="23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913130_3" to="37449253#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_0" to="23066443#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_1" to="-23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_2" to="23066446#2" fromLane="0" toLane="0" via=":248913131_9_0" dir="s" state="M"/>
- <connection from=":248913131_9" to="23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_3" to="23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_4" to="23066443#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_5" to="-23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_6" to="23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_7" to="23066443#6" fromLane="0" toLane="0" via=":248913131_10_0" dir="s" state="M"/>
- <connection from=":248913131_10" to="23066443#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913131_8" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_11_0" dir="s" state="M"/>
- <connection from=":248913131_11" to="-23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_0" to="-23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_1" to="58770725#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_2" to="23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_3" to="-23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_4" to="58770725#2" fromLane="0" toLane="0" via=":248913133_9_0" dir="s" state="M"/>
- <connection from=":248913133_9" to="58770725#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_5" to="23066446#3" fromLane="0" toLane="0" via=":248913133_10_0" dir="s" state="M"/>
- <connection from=":248913133_10" to="23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_6" to="58770725#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_7" to="23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913133_8" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_11_0" dir="s" state="M"/>
- <connection from=":248913133_11" to="-23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_0" to="81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_1" to="58770725#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_2" to="-81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_3" to="81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_4" to="58770725#1" fromLane="0" toLane="0" via=":248913142_9_0" dir="s" state="M"/>
- <connection from=":248913142_9" to="58770725#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_5" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_10_0" dir="s" state="M"/>
- <connection from=":248913142_10" to="-81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_6" to="58770725#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_7" to="-81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913142_8" to="81096844#1" fromLane="0" toLane="0" via=":248913142_11_0" dir="s" state="M"/>
- <connection from=":248913142_11" to="81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_0" to="23066443#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_1" to="81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_2" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_9_0" dir="s" state="M"/>
- <connection from=":248913144_9" to="-81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_3" to="-81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_4" to="23066443#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_5" to="81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_6" to="-81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_7" to="23066443#7" fromLane="0" toLane="0" via=":248913144_10_0" dir="s" state="M"/>
- <connection from=":248913144_10" to="23066443#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913144_8" to="81096844#2" fromLane="0" toLane="0" via=":248913144_11_0" dir="s" state="M"/>
- <connection from=":248913144_11" to="81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913145_0" to="37449253#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913145_1" to="-81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913145_2" to="-81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913145_3" to="37449253#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913154_0" to="-154844500#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913200_0" to="23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913200_1" to="-23066462#4" fromLane="0" toLane="0" via=":248913200_4_0" dir="s" state="M"/>
- <connection from=":248913200_4" to="-23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913200_2" to="-23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":248913200_3" to="23066462#0" fromLane="0" toLane="0" via=":248913200_5_0" dir="s" state="M"/>
- <connection from=":248913200_5" to="23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":249404225_0" to="122302027#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":249404225_1" to="122302035#1" fromLane="0" toLane="0" via=":249404225_4_0" dir="s" state="M"/>
- <connection from=":249404225_4" to="122302035#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":249404225_2" to="122302035#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":249404225_3" to="122302027#1" fromLane="0" toLane="0" via=":249404225_5_0" dir="s" state="M"/>
- <connection from=":249404225_5" to="122302027#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_0" to="-23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_1" to="23182387#1" fromLane="0" toLane="0" via=":250683336_9_0" dir="s" state="M"/>
- <connection from=":250683336_9" to="23182387#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_2" to="23182358#1" fromLane="0" toLane="0" via=":250683336_10_0" dir="s" state="M"/>
- <connection from=":250683336_10" to="23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_3" to="23182387#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_4" to="23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_5" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_11_0" dir="s" state="M"/>
- <connection from=":250683336_11" to="-23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_6" to="-23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_7" to="23182387#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683336_8" to="23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683337_0" to="130443635#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683337_1" to="130443635#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683362_0" to="23182340#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683362_1" to="23182387#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683362_2" to="23182340#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683362_3" to="23182387#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683402_0" to="23182387#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250683402_1" to="23182387#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250684983_0" to="-23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250684983_1" to="23182358#2" fromLane="0" toLane="0" via=":250684983_4_0" dir="s" state="M"/>
- <connection from=":250684983_4" to="23182358#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250684983_2" to="23182358#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250684983_3" to="-23182358#1" fromLane="0" toLane="0" via=":250684983_5_0" dir="s" state="M"/>
- <connection from=":250684983_5" to="-23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685721_0" to="38230510#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685721_1" to="130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_0" to="141190466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_1" to="23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_2" to="23182358#0" fromLane="0" toLane="0" via=":250685766_9_0" dir="s" state="M"/>
- <connection from=":250685766_9" to="23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_3" to="23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_4" to="141190466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_5" to="23182517#0" fromLane="0" toLane="0" via=":250685766_10_0" dir="s" state="M"/>
- <connection from=":250685766_10" to="23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_6" to="23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_7" to="141190466#2" fromLane="0" toLane="0" via=":250685766_11_0" dir="s" state="M"/>
- <connection from=":250685766_11" to="141190466#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685766_8" to="23182517#0" fromLane="0" toLane="0" via=":250685766_12_0" dir="s" state="M"/>
- <connection from=":250685766_12" to="23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685816_0" to="141190466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685816_1" to="-23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685816_2" to="141190466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685816_3" to="-23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685816_4" to="-23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685816_5" to="141190466#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_0" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_1" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_2" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_3" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_4" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_5" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_6" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_7" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_8" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_9" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_10" to="190048063" fromLane="0" toLane="0" via=":250685829_16_0" dir="s" state="M"/>
- <connection from=":250685829_16" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_11" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_17_0" dir="s" state="M"/>
- <connection from=":250685829_17" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_12" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_13" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_14" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_18_0" dir="s" state="M"/>
- <connection from=":250685829_18" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250685829_15" to="23182484#1" fromLane="0" toLane="0" via=":250685829_19_0" dir="s" state="M"/>
- <connection from=":250685829_19" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250686694_0" to="23182391" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250686694_1" to="141190466#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250688445_0" to="24319547" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250688540_0" to="24319558" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250688540_1" to="23182589#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_0" to="-23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_1" to="-83051426" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_2" to="23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_3" to="23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_4" to="-23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_5" to="-83051426" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_6" to="-83051426" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_7" to="23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689131_8" to="-23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_0" to="-23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_1" to="-83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_2" to="23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_3" to="23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_4" to="-23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_5" to="-83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_6" to="-83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_7" to="23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689186_8" to="-23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_0" to="23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_1" to="-23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_2" to="-83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_3" to="-83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_4" to="23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_5" to="-23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_6" to="-23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_7" to="-83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689201_8" to="23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689290_0" to="42976410#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":250689290_1" to="42976410#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417165_0" to="37771902#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417165_1" to="23066443#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_0" to="-110514869#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_1" to="58770725#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_2" to="110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":252417189_3" to="-110514869#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_4" to="-110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":252417189_5" to="58770725#5" fromLane="0" toLane="0" via=":252417189_11_0" dir="s" state="M"/>
- <connection from=":252417189_11" to="58770725#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_6" to="110514869#1" fromLane="0" toLane="1" via=":252417189_12_0" dir="s" state="M"/>
- <connection from=":252417189_12" to="110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":252417189_7" to="58770725#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_8" to="110514869#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417189_9" to="110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":252417189_10" to="-110514869#0" fromLane="0" toLane="1" via=":252417189_13_0" dir="s" state="M"/>
- <connection from=":252417189_13" to="-110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":252417190_0" to="58770724" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252417190_1" to="58770724" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418151_0" to="154409616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418151_1" to="154409616#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418152_0" to="144874008#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418152_1" to="144874008#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_0" to="139118804#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_1" to="23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_2" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_9_0" dir="s" state="M"/>
- <connection from=":252418937_9" to="-23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_3" to="-23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_4" to="139118804#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_5" to="23315111#0" fromLane="0" toLane="0" via=":252418937_10_0" dir="s" state="M"/>
- <connection from=":252418937_10" to="23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_6" to="-23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_7" to="139118804#3" fromLane="0" toLane="0" via=":252418937_11_0" dir="s" state="M"/>
- <connection from=":252418937_11" to="139118804#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":252418937_8" to="23315111#0" fromLane="0" toLane="0" via=":252418937_12_0" dir="s" state="M"/>
- <connection from=":252418937_12" to="23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_0" to="149868584#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_1" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_2" to="-149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227471_3" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_4" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_5" to="149868584#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_6" to="149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227471_7" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_8" to="-149868584#1" fromLane="0" toLane="1" via=":255227471_18_0" dir="s" state="M"/>
- <connection from=":255227471_18" to="-149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227471_9" to="-149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_10" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_11" to="149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227471_12" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_13" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_14" to="-149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_15" to="-149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227471_16" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227471_17" to="149868584#2" fromLane="0" toLane="1" via=":255227471_19_0" dir="s" state="M"/>
- <connection from=":255227471_19" to="149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227472_0" to="23566902" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227472_1" to="-23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_0" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_1" to="149422199#0" fromLane="0" toLane="0" via=":255227475_12_0" dir="s" state="M"/>
- <connection from=":255227475_12" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_2" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_13_0" dir="s" state="M"/>
- <connection from=":255227475_13" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_3" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_4" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_5" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_6" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_7" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_8" to="23262356#3" fromLane="0" toLane="0" via=":255227475_14_0" dir="s" state="M"/>
- <connection from=":255227475_14" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_9" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_10" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227475_11" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227478_0" to="23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_0" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_1" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_2" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_3" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_4" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_5" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_6" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_7" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_8" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_9" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_10" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_11" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_12" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_13" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_14" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_15" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_16" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_17" to="149422199#1" fromLane="0" toLane="0" via=":255227480_36_0" dir="s" state="M"/>
- <connection from=":255227480_36" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_18" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_19" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_20" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_21" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_22" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_23" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_24" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_25" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_26" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_27" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_28" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_29" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_30" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_31" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_32" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_33" to="23566901#1" fromLane="0" toLane="0" via=":255227480_37_0" dir="s" state="M"/>
- <connection from=":255227480_37" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_34" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_38_0" dir="s" state="M"/>
- <connection from=":255227480_38" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227480_35" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_39_0" dir="s" state="M"/>
- <connection from=":255227480_39" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_0" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_1" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_2" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_3" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_4" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_5" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_6" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_7" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_8" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_9" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_10" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_11" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_12" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_13" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_14" to="149422199#2" fromLane="0" toLane="0" via=":255227482_25_0" dir="s" state="M"/>
- <connection from=":255227482_25" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_15" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_16" to="166728377#1" fromLane="0" toLane="0" via=":255227482_26_0" dir="s" state="M"/>
- <connection from=":255227482_26" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_17" to="149422210#0" fromLane="0" toLane="0" via=":255227482_27_0" dir="s" state="M"/>
- <connection from=":255227482_27" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_18" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_19" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_28_0" dir="s" state="M"/>
- <connection from=":255227482_28" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_20" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_21" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_22" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_23" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227482_24" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_0" to="149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_1" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_2" to="-149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227483_3" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_4" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_5" to="149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_6" to="149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227483_7" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_8" to="-149868584#0" fromLane="0" toLane="1" via=":255227483_18_0" dir="s" state="M"/>
- <connection from=":255227483_18" to="-149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227483_9" to="-149868584#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_10" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_11" to="149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227483_12" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_13" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_14" to="-149868584#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_15" to="-149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":255227483_16" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":255227483_17" to="149868584#1" fromLane="0" toLane="1" via=":255227483_19_0" dir="s" state="M"/>
- <connection from=":255227483_19" to="149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":256633248_0" to="160587557" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":257907508_0" to="83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169554_0" to="24573897#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169554_1" to="24573905#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169554_2" to="24573897#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169554_3" to="24573905#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169591_0" to="101272424#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169591_1" to="101272424#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169592_0" to="24573905#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169592_1" to="24573930#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169592_2" to="24573905#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169592_3" to="24573930#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_0" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_1" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_2" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_3" to="24573947#3" fromLane="0" toLane="0" via=":267169634_16_0" dir="s" state="M"/>
- <connection from=":267169634_16" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_4" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_5" to="83051421#0" fromLane="0" toLane="0" via=":267169634_17_0" dir="s" state="M"/>
- <connection from=":267169634_17" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_6" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_18_0" dir="s" state="M"/>
- <connection from=":267169634_18" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_7" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_19_0" dir="s" state="M"/>
- <connection from=":267169634_19" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_8" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_9" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_10" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_11" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_12" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_13" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_14" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169634_15" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_0" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_1" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_2" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_3" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_4" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_5" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_6" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_7" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_8" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_9" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_10" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_11" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_12" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_13" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_14" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169686_15" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_0" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_1" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_2" to="83051436#1" fromLane="0" toLane="0" via=":267169690_16_0" dir="s" state="M"/>
- <connection from=":267169690_16" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_3" to="24573939#0" fromLane="0" toLane="0" via=":267169690_17_0" dir="s" state="M"/>
- <connection from=":267169690_17" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_4" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_5" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_6" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_7" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_8" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_9" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_10" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_18_0" dir="s" state="M"/>
- <connection from=":267169690_18" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_11" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_19_0" dir="s" state="M"/>
- <connection from=":267169690_19" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_12" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_13" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_14" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169690_15" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_0" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_1" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_2" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_3" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_4" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_5" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_6" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_16_0" dir="s" state="M"/>
- <connection from=":267169714_16" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_7" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_17_0" dir="s" state="M"/>
- <connection from=":267169714_17" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_8" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_9" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_10" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_11" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_12" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_13" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_14" to="24573947#4" fromLane="0" toLane="0" via=":267169714_18_0" dir="s" state="M"/>
- <connection from=":267169714_18" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169714_15" to="37640549#1" fromLane="0" toLane="0" via=":267169714_19_0" dir="s" state="M"/>
- <connection from=":267169714_19" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_0" to="-24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_1" to="-37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_2" to="24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_3" to="24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_4" to="-24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_5" to="-37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_6" to="-37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_7" to="24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169715_8" to="-24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169795_0" to="-24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169964_0" to="101272435#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169964_1" to="24573937" fromLane="0" toLane="0" via=":267169964_4_0" dir="s" state="M"/>
- <connection from=":267169964_4" to="24573937" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169964_2" to="24573937" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":267169964_3" to="101272435#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406565_0" to="37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406565_1" to="-130443629#8" fromLane="0" toLane="0" via=":30406565_4_0" dir="s" state="M"/>
- <connection from=":30406565_4" to="-130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406565_2" to="-130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406565_3" to="37973566" fromLane="0" toLane="0" via=":30406565_5_0" dir="s" state="M"/>
- <connection from=":30406565_5" to="37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_0" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_1" to="37973572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_2" to="37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":30406599_3" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_4" to="-37973572#1" fromLane="0" toLane="1" via=":30406599_18_0" dir="s" state="M"/>
- <connection from=":30406599_18" to="-37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":30406599_5" to="-37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_6" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_7" to="37973572#2" fromLane="0" toLane="1" via=":30406599_19_0" dir="s" state="M"/>
- <connection from=":30406599_19" to="37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":30406599_8" to="130443630#7" fromLane="0" toLane="0" via=":30406599_20_0" dir="s" state="M"/>
- <connection from=":30406599_20" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_9" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_10" to="-37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_11" to="-37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":30406599_12" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_13" to="37973572#2" fromLane="0" toLane="1" via=":30406599_21_0" dir="s" state="M"/>
- <connection from=":30406599_21" to="37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":30406599_14" to="37973572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_15" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":30406599_16" to="-37973572#1" fromLane="0" toLane="1" via=":30406599_22_0" dir="s" state="M"/>
- <connection from=":30406599_22" to="-37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":30406599_17" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_23_0" dir="s" state="M"/>
- <connection from=":30406599_23" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_0" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_1" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_2" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_3" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_4" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_5" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_6" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_7" to="122394864#2" fromLane="0" toLane="0" via=":314636763_16_0" dir="s" state="M"/>
- <connection from=":314636763_16" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_8" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_9" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_10" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_11" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_12" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_13" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_14" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_17_0" dir="s" state="M"/>
- <connection from=":314636763_17" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":314636763_15" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_18_0" dir="s" state="M"/>
- <connection from=":314636763_18" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":320879142_0" to="139118804#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":320879142_1" to="129780020" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":320879142_2" to="132323955" fromLane="0" toLane="0" via=":320879142_6_0" dir="s" state="M"/>
- <connection from=":320879142_6" to="132323955" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":320879142_3" to="132323955" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":320879142_4" to="139118804#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":320879142_5" to="129780020" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":356693794_0" to="-37973572#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":410296508_0" to="37973572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":410296508_1" to="37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":410296508_2" to="34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":410296508_3" to="-37973572#3" fromLane="0" toLane="1" via=":410296508_11_0" dir="s" state="M"/>
- <connection from=":410296508_11" to="-37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":410296508_4" to="-37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":410296508_5" to="37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":410296508_6" to="34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":410296508_7" to="34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":410296508_8" to="-37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":410296508_9" to="-37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":410296508_10" to="37973572#4" fromLane="0" toLane="1" via=":410296508_12_0" dir="s" state="M"/>
- <connection from=":410296508_12" to="37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":427996791_0" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_1" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_2" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_3" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_16_0" dir="s" state="M"/>
- <connection from=":427996791_16" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_4" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_5" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_6" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_7" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_17_0" dir="s" state="M"/>
- <connection from=":427996791_17" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_8" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_9" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_10" to="129780022#5" fromLane="0" toLane="0" via=":427996791_18_0" dir="s" state="M"/>
- <connection from=":427996791_18" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_11" to="23315111#2" fromLane="0" toLane="0" via=":427996791_19_0" dir="s" state="M"/>
- <connection from=":427996791_19" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_12" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_13" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_14" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996791_15" to="129780022#5" fromLane="0" toLane="0" via=":427996791_20_0" dir="s" state="M"/>
- <connection from=":427996791_20" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_0" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_1" to="44641744#1" fromLane="0" toLane="0" via=":427996792_25_0" dir="s" state="M"/>
- <connection from=":427996792_25" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_2" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_26_0" dir="s" state="M"/>
- <connection from=":427996792_26" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_3" to="108329427#0" fromLane="0" toLane="0" via=":427996792_27_0" dir="s" state="M"/>
- <connection from=":427996792_27" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_4" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_28_0" dir="s" state="M"/>
- <connection from=":427996792_28" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_5" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_6" to="44641744#1" fromLane="0" toLane="0" via=":427996792_29_0" dir="s" state="M"/>
- <connection from=":427996792_29" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_7" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_30_0" dir="s" state="M"/>
- <connection from=":427996792_30" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_8" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_9" to="108329427#0" fromLane="0" toLane="0" via=":427996792_31_0" dir="s" state="M"/>
- <connection from=":427996792_31" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_10" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_11" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_12" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_13" to="44641744#1" fromLane="0" toLane="0" via=":427996792_32_0" dir="s" state="M"/>
- <connection from=":427996792_32" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_14" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_33_0" dir="s" state="M"/>
- <connection from=":427996792_33" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_15" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_16" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_17" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_18" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_19" to="108329426#1" fromLane="0" toLane="0" via=":427996792_34_0" dir="s" state="M"/>
- <connection from=":427996792_34" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_20" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_21" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_22" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_35_0" dir="s" state="M"/>
- <connection from=":427996792_35" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_23" to="108329427#0" fromLane="0" toLane="0" via=":427996792_36_0" dir="s" state="M"/>
- <connection from=":427996792_36" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":427996792_24" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_37_0" dir="s" state="M"/>
- <connection from=":427996792_37" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428097664_0" to="81523343" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428097664_1" to="81523343" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_0" to="130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_1" to="134572336#3" fromLane="0" toLane="1" via=":428303370_9_0" dir="s" state="M"/>
- <connection from=":428303370_9" to="134572336#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":428303370_2" to="-130443629#4" fromLane="0" toLane="0" via=":428303370_10_0" dir="s" state="M"/>
- <connection from=":428303370_10" to="-130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_3" to="134572336#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_4" to="-130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_5" to="130443629#5" fromLane="0" toLane="0" via=":428303370_11_0" dir="s" state="M"/>
- <connection from=":428303370_11" to="130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_6" to="130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":428303370_7" to="134572336#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":428303370_8" to="-130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":429179805_0" to="37942667#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":429179805_1" to="108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":429179805_2" to="-108329425#4" fromLane="0" toLane="0" via=":429179805_6_0" dir="s" state="M"/>
- <connection from=":429179805_6" to="-108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":429179805_3" to="-108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":429179805_4" to="37942667#0" fromLane="0" toLane="0" via=":429179805_7_0" dir="s" state="M"/>
- <connection from=":429179805_7" to="37942667#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":429179805_5" to="108329425#5" fromLane="0" toLane="0" via=":429179805_8_0" dir="s" state="M"/>
- <connection from=":429179805_8" to="108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":432548414_0" to="-149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_0" to="130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_1" to="37351086#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_2" to="37369047#2" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":435668511_3" to="-130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_4" to="37351086#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_5" to="37369047#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_6" to="-130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_7" to="130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_8" to="130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_9" to="37351086#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668511_10" to="37369047#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":435668511_11" to="37369047#2" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":435668511_12" to="37369047#2" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":435668511_13" to="-130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668513_0" to="172498387#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668513_1" to="129780026#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668513_2" to="172498387#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668513_3" to="129780026#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668516_0" to="81523332#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668516_1" to="37449253#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668516_2" to="81523332#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668516_3" to="37449253#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668521_0" to="58770725#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668521_1" to="172498387#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_0" to="129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_1" to="144874012#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_2" to="-129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_3" to="129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_4" to="144874012#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_5" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_9_0" dir="s" state="M"/>
- <connection from=":435668534_9" to="-129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_6" to="144874012#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_7" to="-129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668534_8" to="129780022#3" fromLane="0" toLane="0" via=":435668534_10_0" dir="s" state="M"/>
- <connection from=":435668534_10" to="129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_0" to="37973565#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_1" to="37351089#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_2" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_11_0" dir="s" state="M"/>
- <connection from=":435668539_11" to="-129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_3" to="-129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_4" to="37973565#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_5" to="37351089#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":435668539_6" to="37351089#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":435668539_7" to="-129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_8" to="37973565#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":435668539_9" to="37351089#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":435668539_10" to="37351089#0" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":438042367_0" to="37973572#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042367_1" to="42976406#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042367_2" to="42976406#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":438042367_3" to="-149868584#8" fromLane="0" toLane="1" via=":438042367_11_0" dir="s" state="M"/>
- <connection from=":438042367_11" to="-149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042367_4" to="37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042367_5" to="42976406#0" fromLane="0" toLane="2" via=":438042367_12_0" dir="s" state="M"/>
- <connection from=":438042367_12" to="42976406#0" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":438042367_6" to="-149868584#8" fromLane="0" toLane="1" via=":438042367_13_0" dir="s" state="M"/>
- <connection from=":438042367_13" to="-149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042367_7" to="42976406#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042367_8" to="42976406#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042367_9" to="-149868584#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042367_10" to="37973572#0" fromLane="0" toLane="1" via=":438042367_14_0" dir="s" state="M"/>
- <connection from=":438042367_14" to="37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_0" to="42976405#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042369_1" to="42976405#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_2" to="149868584#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042369_3" to="-149868584#7" fromLane="0" toLane="1" via=":438042369_11_0" dir="s" state="M"/>
- <connection from=":438042369_11" to="-149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_4" to="-149868584#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042369_5" to="42976405#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042369_6" to="42976405#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_7" to="149868584#8" fromLane="0" toLane="1" via=":438042369_12_0" dir="s" state="M"/>
- <connection from=":438042369_12" to="149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_8" to="-149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_9" to="42976405#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042369_10" to="149868584#8" fromLane="0" toLane="1" via=":438042369_13_0" dir="s" state="M"/>
- <connection from=":438042369_13" to="149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042372_0" to="23066443#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042372_1" to="44738605#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042372_2" to="23066443#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042372_3" to="44738605#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042373_0" to="37449249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042373_1" to="37449249#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042374_0" to="37449253#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042374_1" to="37449249#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042376_0" to="151167658#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042376_1" to="23066443#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042376_2" to="151167658#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042376_3" to="23066443#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042377_0" to="151167658#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042377_1" to="154500695" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042378_0" to="154500699#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042378_1" to="154500699#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042379_0" to="166625259" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042379_1" to="81672207#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042379_2" to="81672207#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042379_3" to="166625259" fromLane="0" toLane="0" via=":438042379_4_0" dir="s" state="M"/>
- <connection from=":438042379_4" to="166625259" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042380_0" to="81394162#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042380_1" to="81394162#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042380_2" to="81394162#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042381_0" to="133960539#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042381_1" to="133960539#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042381_2" to="154500698" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042385_0" to="133960538#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042385_1" to="37449249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042385_2" to="133960538#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042385_3" to="133960538#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042385_4" to="37449249#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042386_0" to="154500699#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042386_1" to="133960538#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042386_2" to="133960538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042386_3" to="154500699#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042386_4" to="133960538#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":438042387_0" to="37449249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":438042387_1" to="37449249#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_0" to="-179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_1" to="37638426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_2" to="42976406#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_3" to="42976406#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":441236049_4" to="42976406#4" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":441236049_5" to="-179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_6" to="37638426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_7" to="42976406#4" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":441236049_8" to="37638426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_9" to="42976406#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236049_10" to="-179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236060_0" to="42976406#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236060_1" to="42976406#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":441236060_2" to="42976406#5" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":441236060_3" to="154500706#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236060_4" to="42976406#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441236060_5" to="154500706#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266854_0" to="-154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266854_1" to="154844500#3" fromLane="0" toLane="0" via=":441266854_4_0" dir="s" state="M"/>
- <connection from=":441266854_4" to="154844500#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266854_2" to="154844500#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266854_3" to="-154844500#2" fromLane="0" toLane="0" via=":441266854_5_0" dir="s" state="M"/>
- <connection from=":441266854_5" to="-154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266865_0" to="37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_0" to="-23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_1" to="-83051455" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_2" to="23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_3" to="23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_4" to="-23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_5" to="-83051455" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_6" to="-83051455" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_7" to="23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266870_8" to="-23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_0" to="-83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_1" to="-24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_2" to="83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_3" to="83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_4" to="-83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_5" to="-24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_6" to="-24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_7" to="83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266874_8" to="-83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266876_0" to="81124945" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266876_1" to="37640550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266879_0" to="101272435#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266879_1" to="101272435#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_0" to="101272435#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_1" to="-154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_2" to="154844500#1" fromLane="0" toLane="0" via=":441266880_9_0" dir="s" state="M"/>
- <connection from=":441266880_9" to="154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_3" to="154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_4" to="101272435#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_5" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_10_0" dir="s" state="M"/>
- <connection from=":441266880_10" to="-154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_6" to="154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_7" to="101272435#5" fromLane="0" toLane="0" via=":441266880_11_0" dir="s" state="M"/>
- <connection from=":441266880_11" to="101272435#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266880_8" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_12_0" dir="s" state="M"/>
- <connection from=":441266880_12" to="-154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266884_0" to="172498387#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266884_1" to="101272435#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266884_2" to="172498387#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":441266884_3" to="101272435#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089060_0" to="37771900#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089060_1" to="172498387#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089060_2" to="37771900#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089060_3" to="172498387#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089061_0" to="81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089061_1" to="37771900#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089061_2" to="37771900#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089061_3" to="81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089062_0" to="-23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089062_1" to="37771900#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089062_2" to="37771900#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089062_3" to="-23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_0" to="-110514869#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_1" to="37771900#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_2" to="110514869#2" fromLane="0" toLane="1" via=":443089063_11_0" dir="s" state="M"/>
- <connection from=":443089063_11" to="110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":443089063_3" to="-110514869#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_4" to="-110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":443089063_5" to="37771900#6" fromLane="0" toLane="0" via=":443089063_12_0" dir="s" state="M"/>
- <connection from=":443089063_12" to="37771900#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_6" to="110514869#2" fromLane="0" toLane="1" via=":443089063_13_0" dir="s" state="M"/>
- <connection from=":443089063_13" to="110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":443089063_7" to="37771900#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_8" to="110514869#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089063_9" to="110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":443089063_10" to="-110514869#1" fromLane="0" toLane="1" via=":443089063_14_0" dir="s" state="M"/>
- <connection from=":443089063_14" to="-110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":443089064_0" to="37771903" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089064_1" to="37771900#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089065_0" to="58770836" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089065_1" to="58770836" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089066_0" to="58770833" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089066_1" to="58770833" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089068_0" to="24573905#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089068_1" to="81096816#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089069_0" to="37771902#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089069_1" to="42976410#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089070_0" to="58770837#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089070_1" to="58770837#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089071_0" to="23066443#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089071_1" to="58770723#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089071_2" to="23066443#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089071_3" to="58770723#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089072_0" to="58770723#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089072_1" to="58770725#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089072_2" to="58770723#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089072_3" to="58770725#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089074_0" to="37771904#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443089074_1" to="101272435#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_0" to="37772595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_1" to="-24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_2" to="24573947#2" fromLane="0" toLane="0" via=":443101905_9_0" dir="s" state="M"/>
- <connection from=":443101905_9" to="24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_3" to="24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_4" to="37772595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_5" to="-24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_6" to="24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_7" to="37772595#1" fromLane="0" toLane="0" via=":443101905_10_0" dir="s" state="M"/>
- <connection from=":443101905_10" to="37772595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101905_8" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_11_0" dir="s" state="M"/>
- <connection from=":443101905_11" to="-24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_0" to="37772595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_1" to="-37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_2" to="37772597#2" fromLane="0" toLane="0" via=":443101906_9_0" dir="s" state="M"/>
- <connection from=":443101906_9" to="37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_3" to="37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_4" to="37772595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_5" to="-37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_6" to="37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_7" to="37772595#2" fromLane="0" toLane="0" via=":443101906_10_0" dir="s" state="M"/>
- <connection from=":443101906_10" to="37772595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101906_8" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_11_0" dir="s" state="M"/>
- <connection from=":443101906_11" to="-37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101911_0" to="23182589#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101911_1" to="101272429#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101912_0" to="42976410#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101912_1" to="37973569#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101912_2" to="42976410#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101912_3" to="37973569#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101913_0" to="37772596#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101913_1" to="101272424#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101913_2" to="37772596#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101913_3" to="101272424#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101914_0" to="24573930#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101914_1" to="37772596#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101915_0" to="37772596#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101915_1" to="37772596#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_0" to="23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_1" to="101272426#1" fromLane="0" toLane="0" via=":443101920_9_0" dir="s" state="M"/>
- <connection from=":443101920_9" to="101272426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_2" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_10_0" dir="s" state="M"/>
- <connection from=":443101920_10" to="-23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_3" to="101272426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_4" to="-23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_5" to="23262356#2" fromLane="0" toLane="0" via=":443101920_11_0" dir="s" state="M"/>
- <connection from=":443101920_11" to="23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_6" to="23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_7" to="101272426#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101920_8" to="-23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_0" to="-149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_1" to="101272426#2" fromLane="0" toLane="0" via=":443101921_9_0" dir="s" state="M"/>
- <connection from=":443101921_9" to="101272426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_2" to="149422193#0" fromLane="0" toLane="0" via=":443101921_10_0" dir="s" state="M"/>
- <connection from=":443101921_10" to="149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_3" to="101272426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_4" to="149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_5" to="-149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_6" to="-149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_7" to="101272426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101921_8" to="149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":443101938_0" to="139118802#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_0" to="37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_1" to="37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":444026884_2" to="81394192#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_3" to="-37973572#2" fromLane="0" toLane="1" via=":444026884_11_0" dir="s" state="M"/>
- <connection from=":444026884_11" to="-37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":444026884_4" to="81394192#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_5" to="-37973572#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_6" to="-37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":444026884_7" to="37973572#3" fromLane="0" toLane="1" via=":444026884_12_0" dir="s" state="M"/>
- <connection from=":444026884_12" to="37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":444026884_8" to="37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_9" to="81394192#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026884_10" to="-37973572#2" fromLane="0" toLane="1" via=":444026884_13_0" dir="s" state="M"/>
- <connection from=":444026884_13" to="-37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":444026886_0" to="37973571#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026889_0" to="-130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026889_1" to="179692877#0" fromLane="0" toLane="0" via=":444026889_6_0" dir="s" state="M"/>
- <connection from=":444026889_6" to="179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026889_2" to="179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026889_3" to="-130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026889_4" to="179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026889_5" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_7_0" dir="s" state="M"/>
- <connection from=":444026889_7" to="-130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026917_0" to="81096816#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026917_1" to="8272412#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026917_2" to="81096816#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":444026917_3" to="8272412#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506213_0" to="37973565#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_0" to="44641744#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_1" to="134572340#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_2" to="37973565#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_3" to="44641744#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_4" to="134572340#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_5" to="134572340#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":445506215_6" to="37973565#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_7" to="44641744#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506215_8" to="134572340#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":445506215_9" to="37973565#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506216_0" to="37942668#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506216_1" to="69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506216_2" to="-108329426#2" fromLane="0" toLane="0" via=":445506216_6_0" dir="s" state="M"/>
- <connection from=":445506216_6" to="-108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506216_3" to="-108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506216_4" to="37942668#0" fromLane="0" toLane="0" via=":445506216_7_0" dir="s" state="M"/>
- <connection from=":445506216_7" to="37942668#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506216_5" to="69931595#0" fromLane="0" toLane="0" via=":445506216_8_0" dir="s" state="M"/>
- <connection from=":445506216_8" to="69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506217_0" to="37973565#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506217_1" to="37942668#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506217_2" to="37973565#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506217_3" to="37942668#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_0" to="-130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_1" to="130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_2" to="-108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_3" to="-108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_4" to="-130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_5" to="130443630#1" fromLane="0" toLane="0" via=":445506220_9_0" dir="s" state="M"/>
- <connection from=":445506220_9" to="130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_6" to="130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_7" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_10_0" dir="s" state="M"/>
- <connection from=":445506220_10" to="-108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506220_8" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_11_0" dir="s" state="M"/>
- <connection from=":445506220_11" to="-130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506221_0" to="130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506221_1" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_6_0" dir="s" state="M"/>
- <connection from=":445506221_6" to="-130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506221_2" to="-130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506221_3" to="130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506221_4" to="-130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445506221_5" to="130443629#6" fromLane="0" toLane="0" via=":445506221_7_0" dir="s" state="M"/>
- <connection from=":445506221_7" to="130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445823604_0" to="37973565#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445823604_1" to="44641745#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445823604_2" to="37973565#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":445823604_3" to="44641745#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017735_0" to="81394192#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017735_1" to="134572336#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017735_2" to="134572336#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017738_0" to="160584984" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_1" to="37973568#2" fromLane="0" toLane="0" via=":446017738_9_0" dir="s" state="M"/>
- <connection from=":446017738_9" to="37973568#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_2" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_10_0" dir="s" state="M"/>
- <connection from=":446017738_10" to="-34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_3" to="37973568#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_4" to="-34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_5" to="160584984" fromLane="0" toLane="0" via=":446017738_11_0" dir="s" state="M"/>
- <connection from=":446017738_11" to="160584984" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_6" to="160584984" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_7" to="37973568#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017738_8" to="-34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017739_0" to="81394192#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017739_1" to="37973568#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017739_2" to="81394192#15" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017739_3" to="37973568#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017740_0" to="37973569#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017740_1" to="81394192#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017740_2" to="37973569#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017740_3" to="81394192#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_0" to="37973568#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_1" to="-130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_2" to="130443630#9" fromLane="0" toLane="0" via=":446017741_9_0" dir="s" state="M"/>
- <connection from=":446017741_9" to="130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_3" to="130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_4" to="37973568#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_5" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_10_0" dir="s" state="M"/>
- <connection from=":446017741_10" to="-130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_6" to="130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_7" to="37973568#4" fromLane="0" toLane="0" via=":446017741_11_0" dir="s" state="M"/>
- <connection from=":446017741_11" to="37973568#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017741_8" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_12_0" dir="s" state="M"/>
- <connection from=":446017741_12" to="-130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017742_0" to="42976406#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017742_1" to="42976406#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017742_2" to="42976406#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":446017742_3" to="37973568#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017742_4" to="42976406#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017742_5" to="37973568#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017743_0" to="37973568#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017743_1" to="154500693#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017743_2" to="154500693#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017743_3" to="154500693#3" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":446017743_4" to="37973568#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017743_5" to="154500693#3" fromLane="0" toLane="1" via=":446017743_7_0" dir="s" state="M"/>
- <connection from=":446017743_7" to="154500693#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017743_6" to="154500693#3" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":446017744_0" to="-130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_1" to="37973569#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_2" to="130443630#5" fromLane="0" toLane="0" via=":446017744_9_0" dir="s" state="M"/>
- <connection from=":446017744_9" to="130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_3" to="-130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_4" to="37973569#6" fromLane="0" toLane="0" via=":446017744_10_0" dir="s" state="M"/>
- <connection from=":446017744_10" to="37973569#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_5" to="130443630#5" fromLane="0" toLane="0" via=":446017744_11_0" dir="s" state="M"/>
- <connection from=":446017744_11" to="130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_6" to="37973569#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_7" to="130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017744_8" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_12_0" dir="s" state="M"/>
- <connection from=":446017744_12" to="-130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017746_0" to="37973569#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017746_1" to="133960539#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017746_2" to="133960539#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017746_3" to="37973569#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017746_4" to="133960539#3" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017747_0" to="42976405#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017747_1" to="37973569#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017747_2" to="42976405#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446017747_3" to="42976405#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":446017747_4" to="37973569#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766148_0" to="38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_0" to="-38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_1" to="81394192#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_2" to="59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_3" to="-38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_4" to="81394192#3" fromLane="0" toLane="0" via=":446766149_9_0" dir="s" state="M"/>
- <connection from=":446766149_9" to="81394192#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_5" to="59159262#0" fromLane="0" toLane="0" via=":446766149_10_0" dir="s" state="M"/>
- <connection from=":446766149_10" to="59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_6" to="81394192#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_7" to="59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446766149_8" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_11_0" dir="s" state="M"/>
- <connection from=":446766149_11" to="-38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446770956_0" to="38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446770959_0" to="81394192#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446770959_1" to="-38027665#3" fromLane="0" toLane="0" via=":446770959_4_0" dir="s" state="M"/>
- <connection from=":446770959_4" to="-38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446770959_2" to="-38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":446770959_3" to="81394192#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564002_0" to="38230510#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564002_1" to="37973565#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564002_2" to="38230510#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564002_3" to="37973565#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_0" to="23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_1" to="38230510#2" fromLane="0" toLane="0" via=":450564003_9_0" dir="s" state="M"/>
- <connection from=":450564003_9" to="38230510#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_2" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_10_0" dir="s" state="M"/>
- <connection from=":450564003_10" to="-23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_3" to="38230510#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_4" to="-23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_5" to="23182517#1" fromLane="0" toLane="0" via=":450564003_11_0" dir="s" state="M"/>
- <connection from=":450564003_11" to="23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_6" to="23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_7" to="38230510#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564003_8" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_12_0" dir="s" state="M"/>
- <connection from=":450564003_12" to="-23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564004_0" to="139118806" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564004_1" to="139118806" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564005_0" to="129780019#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564005_1" to="-190048065" fromLane="0" toLane="0" via=":450564005_4_0" dir="s" state="M"/>
- <connection from=":450564005_4" to="-190048065" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564005_2" to="-190048065" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564005_3" to="129780019#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564006_0" to="129780019#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564006_1" to="23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564006_2" to="129780019#1" fromLane="0" toLane="0" via=":450564006_4_0" dir="s" state="M"/>
- <connection from=":450564006_4" to="129780019#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":450564006_3" to="23182484#0" fromLane="0" toLane="0" via=":450564006_5_0" dir="s" state="M"/>
- <connection from=":450564006_5" to="23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_0" to="38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_1" to="81523332#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_2" to="-38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_3" to="81523332#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_4" to="-38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_5" to="38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_6" to="38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_7" to="81523332#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425486_8" to="-38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_0" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_1" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_2" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_3" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_4" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_5" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_6" to="38319546#6" fromLane="0" toLane="0" via=":452425487_16_0" dir="s" state="M"/>
- <connection from=":452425487_16" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_7" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_17_0" dir="s" state="M"/>
- <connection from=":452425487_17" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_8" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_9" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_10" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_11" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_12" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_13" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_14" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_18_0" dir="s" state="M"/>
- <connection from=":452425487_18" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425487_15" to="81096844#3" fromLane="0" toLane="0" via=":452425487_19_0" dir="s" state="M"/>
- <connection from=":452425487_19" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_0" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_1" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_2" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_3" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_4" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_5" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_6" to="38319546#7" fromLane="0" toLane="0" via=":452425488_16_0" dir="s" state="M"/>
- <connection from=":452425488_16" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_7" to="23066446#1" fromLane="0" toLane="0" via=":452425488_17_0" dir="s" state="M"/>
- <connection from=":452425488_17" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_8" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_9" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_10" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_11" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_12" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_13" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_14" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_18_0" dir="s" state="M"/>
- <connection from=":452425488_18" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425488_15" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_19_0" dir="s" state="M"/>
- <connection from=":452425488_19" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425489_0" to="38319547" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425489_1" to="-38319546#8" fromLane="0" toLane="0" via=":452425489_4_0" dir="s" state="M"/>
- <connection from=":452425489_4" to="-38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425489_2" to="-38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425489_3" to="38319547" fromLane="0" toLane="0" via=":452425489_5_0" dir="s" state="M"/>
- <connection from=":452425489_5" to="38319547" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_0" to="-38319547" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_1" to="38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_2" to="38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_3" to="38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_4" to="-38319547" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_5" to="38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_6" to="38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_7" to="38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425490_8" to="-38319547" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_0" to="23066443#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_1" to="-38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_2" to="38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_3" to="38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_4" to="23066443#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_5" to="-38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_6" to="38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_7" to="23066443#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425491_8" to="-38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_0" to="-38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_1" to="58770725#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_2" to="38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_3" to="-38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_4" to="58770725#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_5" to="38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_6" to="58770725#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_7" to="38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425493_8" to="-38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_0" to="-38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_1" to="38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_2" to="81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_3" to="81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_4" to="-38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_5" to="38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_6" to="38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_7" to="81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425497_8" to="-38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425499_0" to="38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425499_1" to="-38319549#2" fromLane="0" toLane="0" via=":452425499_4_0" dir="s" state="M"/>
- <connection from=":452425499_4" to="-38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425499_2" to="-38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425499_3" to="38319550#0" fromLane="0" toLane="0" via=":452425499_5_0" dir="s" state="M"/>
- <connection from=":452425499_5" to="38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_0" to="58770723#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_1" to="38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_2" to="-38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_3" to="-38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_4" to="58770723#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_5" to="38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_6" to="-38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_7" to="58770723#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425500_8" to="38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_0" to="38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_1" to="37771902#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_2" to="-38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_3" to="37771902#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_4" to="-38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_5" to="38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_6" to="38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_7" to="37771902#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425501_8" to="-38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_0" to="101272429#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_1" to="38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_2" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_9_0" dir="s" state="M"/>
- <connection from=":452425502_9" to="-38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_3" to="-38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_4" to="101272429#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_5" to="38319550#4" fromLane="0" toLane="0" via=":452425502_10_0" dir="s" state="M"/>
- <connection from=":452425502_10" to="38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_6" to="-38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_7" to="101272429#2" fromLane="0" toLane="0" via=":452425502_11_0" dir="s" state="M"/>
- <connection from=":452425502_11" to="101272429#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452425502_8" to="38319550#4" fromLane="0" toLane="0" via=":452425502_12_0" dir="s" state="M"/>
- <connection from=":452425502_12" to="38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452446339_0" to="139118804#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452446340_0" to="81394162#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452446340_1" to="81394162#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":452446340_2" to="172498380#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452446345_0" to="172498380#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":452446345_1" to="172498380#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_0" to="-107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_1" to="134572336#1" fromLane="0" toLane="1" via=":477486714_9_0" dir="s" state="M"/>
- <connection from=":477486714_9" to="134572336#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":477486714_2" to="81394169#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_3" to="134572336#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_4" to="81394169#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_5" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_10_0" dir="s" state="M"/>
- <connection from=":477486714_10" to="-107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_6" to="-107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486714_7" to="134572336#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":477486714_8" to="81394169#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_0" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_1" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_2" to="38027102#1" fromLane="0" toLane="0" via=":477486717_16_0" dir="s" state="M"/>
- <connection from=":477486717_16" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_3" to="107066313#3" fromLane="0" toLane="0" via=":477486717_17_0" dir="s" state="M"/>
- <connection from=":477486717_17" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_4" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_5" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_6" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_7" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_8" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_9" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_10" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_18_0" dir="s" state="M"/>
- <connection from=":477486717_18" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_11" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_19_0" dir="s" state="M"/>
- <connection from=":477486717_19" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_12" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_13" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_14" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486717_15" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_0" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_1" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_2" to="38027665#1" fromLane="0" toLane="0" via=":477486719_16_0" dir="s" state="M"/>
- <connection from=":477486719_16" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_3" to="107066313#1" fromLane="0" toLane="0" via=":477486719_17_0" dir="s" state="M"/>
- <connection from=":477486719_17" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_4" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_5" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_6" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_7" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_8" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_9" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_10" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_18_0" dir="s" state="M"/>
- <connection from=":477486719_18" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_11" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_19_0" dir="s" state="M"/>
- <connection from=":477486719_19" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_12" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_13" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_14" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":477486719_15" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282948_0" to="40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282955_0" to="-40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282955_1" to="40196944#1" fromLane="0" toLane="0" via=":484282955_6_0" dir="s" state="M"/>
- <connection from=":484282955_6" to="40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282955_2" to="40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282955_3" to="-40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282955_4" to="40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282955_5" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_7_0" dir="s" state="M"/>
- <connection from=":484282955_7" to="-40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":484282961_0" to="-37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":503954409_0" to="23182387#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":503954409_1" to="37973565#11" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265860_0" to="42976407#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265864_0" to="-40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265864_1" to="42976408#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265864_2" to="42976408#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265864_3" to="-40196944#1" fromLane="0" toLane="0" via=":538265864_4_0" dir="s" state="M"/>
- <connection from=":538265864_4" to="-40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265866_0" to="42976408#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265870_0" to="37973569#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538265870_1" to="37973569#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810722_0" to="81096816#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810724_0" to="24573930#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810724_1" to="8272412#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810724_2" to="24573930#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810724_3" to="8272412#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810726_0" to="8272412#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810726_1" to="24573897#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810726_2" to="8272412#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":538810726_3" to="24573897#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_0" to="75656628#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_1" to="-81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_2" to="81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_3" to="81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_4" to="75656628#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_5" to="-81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_6" to="81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_7" to="75656628#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":543360161_8" to="-81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_0" to="37973572#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_1" to="-37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":552842254_2" to="-43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_3" to="-43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_4" to="37973572#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_5" to="37973572#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":552842254_6" to="-37973572#4" fromLane="0" toLane="1" via=":552842254_11_0" dir="s" state="M"/>
- <connection from=":552842254_11" to="-37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":552842254_7" to="-37973572#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_8" to="-37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":552842254_9" to="-43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842254_10" to="37973572#5" fromLane="0" toLane="1" via=":552842254_12_0" dir="s" state="M"/>
- <connection from=":552842254_12" to="37973572#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":552842255_0" to="37973569#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_1" to="43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_2" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_9_0" dir="s" state="M"/>
- <connection from=":552842255_9" to="-43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_3" to="-43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_4" to="37973569#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_5" to="43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_6" to="-43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_7" to="37973569#9" fromLane="0" toLane="0" via=":552842255_10_0" dir="s" state="M"/>
- <connection from=":552842255_10" to="37973569#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842255_8" to="43684741#4" fromLane="0" toLane="0" via=":552842255_11_0" dir="s" state="M"/>
- <connection from=":552842255_11" to="43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_0" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_1" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_2" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_3" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_4" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_5" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_6" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_7" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_8" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_9" to="130443630#0" fromLane="0" toLane="0" via=":552842256_36_0" dir="s" state="M"/>
- <connection from=":552842256_36" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_10" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_11" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_37_0" dir="s" state="M"/>
- <connection from=":552842256_37" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_12" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_13" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_14" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_15" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_16" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_17" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_18" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_19" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_20" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_21" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_22" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_23" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_24" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_25" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_26" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_27" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_28" to="-37973566" fromLane="0" toLane="0" via=":552842256_38_0" dir="s" state="M"/>
- <connection from=":552842256_38" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_29" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_39_0" dir="s" state="M"/>
- <connection from=":552842256_39" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_30" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_31" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_32" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_33" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_34" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842256_35" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_0" to="-107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_1" to="81394192#7" fromLane="0" toLane="0" via=":552842257_9_0" dir="s" state="M"/>
- <connection from=":552842257_9" to="81394192#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_2" to="107028581#3" fromLane="0" toLane="0" via=":552842257_10_0" dir="s" state="M"/>
- <connection from=":552842257_10" to="107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_3" to="81394192#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_4" to="107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_5" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_11_0" dir="s" state="M"/>
- <connection from=":552842257_11" to="-107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_6" to="-107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_7" to="81394192#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":552842257_8" to="107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472377_0" to="-44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472377_1" to="44104491#1" fromLane="0" toLane="0" via=":560472377_6_0" dir="s" state="M"/>
- <connection from=":560472377_6" to="44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472377_2" to="44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472377_3" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_7_0" dir="s" state="M"/>
- <connection from=":560472377_7" to="-44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472377_4" to="-44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472377_5" to="44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472378_0" to="37942668#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472378_1" to="-44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472378_2" to="37942668#1" fromLane="0" toLane="0" via=":560472378_4_0" dir="s" state="M"/>
- <connection from=":560472378_4" to="37942668#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472378_3" to="-44104491#1" fromLane="0" toLane="0" via=":560472378_5_0" dir="s" state="M"/>
- <connection from=":560472378_5" to="-44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472379_0" to="44104490" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":560472379_1" to="37973565#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_0" to="43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_1" to="81394192#8" fromLane="0" toLane="0" via=":561204538_9_0" dir="s" state="M"/>
- <connection from=":561204538_9" to="81394192#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_2" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_10_0" dir="s" state="M"/>
- <connection from=":561204538_10" to="-43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_3" to="81394192#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_4" to="-43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_5" to="43684741#1" fromLane="0" toLane="0" via=":561204538_11_0" dir="s" state="M"/>
- <connection from=":561204538_11" to="43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_6" to="43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_7" to="81394192#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":561204538_8" to="-43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566579336_0" to="37640550#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566579338_0" to="37640550#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566579339_0" to="37640550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566579339_1" to="37640550#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566579340_0" to="37771900#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566579340_1" to="154409621" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":566670951_0" to="-101272434" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":650318340_0" to="-38319550#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_0" to="38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_1" to="37772596#1" fromLane="0" toLane="0" via=":719463587_9_0" dir="s" state="M"/>
- <connection from=":719463587_9" to="37772596#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_2" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_10_0" dir="s" state="M"/>
- <connection from=":719463587_10" to="-38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_3" to="37772596#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_4" to="-38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_5" to="38319550#8" fromLane="0" toLane="0" via=":719463587_11_0" dir="s" state="M"/>
- <connection from=":719463587_11" to="38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_6" to="38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_7" to="37772596#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463587_8" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_12_0" dir="s" state="M"/>
- <connection from=":719463587_12" to="-38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_0" to="24573905#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_1" to="38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_2" to="-38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_3" to="-38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_4" to="24573905#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_5" to="38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_6" to="-38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_7" to="24573905#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719463795_8" to="38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719464017_0" to="-38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719464017_1" to="38319550#14" fromLane="0" toLane="0" via=":719464017_4_0" dir="s" state="M"/>
- <connection from=":719464017_4" to="38319550#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719464017_2" to="38319550#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":719464017_3" to="-38319550#13" fromLane="0" toLane="0" via=":719464017_5_0" dir="s" state="M"/>
- <connection from=":719464017_5" to="-38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":724002953_0" to="81394188#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":724002953_1" to="37369047#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":724002953_2" to="37369047#1" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":724002953_3" to="81394188#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":724002953_4" to="37369047#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":724002953_5" to="37369047#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":728492341_0" to="-107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_1" to="58779718#0" fromLane="0" toLane="0" via=":728492341_9_0" dir="s" state="M"/>
- <connection from=":728492341_9" to="58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_2" to="107066313#2" fromLane="0" toLane="0" via=":728492341_10_0" dir="s" state="M"/>
- <connection from=":728492341_10" to="107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_3" to="107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_4" to="-107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_5" to="58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_6" to="58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_7" to="107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492341_8" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_11_0" dir="s" state="M"/>
- <connection from=":728492341_11" to="-107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492348_0" to="58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_0" to="107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_1" to="-107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_2" to="107028581#1" fromLane="0" toLane="0" via=":728492353_9_0" dir="s" state="M"/>
- <connection from=":728492353_9" to="107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_3" to="107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_4" to="107166846#0" fromLane="0" toLane="0" via=":728492353_10_0" dir="s" state="M"/>
- <connection from=":728492353_10" to="107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_5" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_11_0" dir="s" state="M"/>
- <connection from=":728492353_11" to="-107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_6" to="-107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_7" to="107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492353_8" to="107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_0" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_1" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_2" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_3" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_4" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_5" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_6" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_16_0" dir="s" state="M"/>
- <connection from=":728492360_16" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_7" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_17_0" dir="s" state="M"/>
- <connection from=":728492360_17" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_8" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_9" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_10" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_11" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_12" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_13" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_14" to="58779718#1" fromLane="0" toLane="0" via=":728492360_18_0" dir="s" state="M"/>
- <connection from=":728492360_18" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492360_15" to="107166846#2" fromLane="0" toLane="0" via=":728492360_19_0" dir="s" state="M"/>
- <connection from=":728492360_19" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_0" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_1" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_2" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_3" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_4" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_5" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_6" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_16_0" dir="s" state="M"/>
- <connection from=":728492361_16" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_7" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_17_0" dir="s" state="M"/>
- <connection from=":728492361_17" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_8" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_9" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_10" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_11" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_12" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_13" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_14" to="58779719#1" fromLane="0" toLane="0" via=":728492361_18_0" dir="s" state="M"/>
- <connection from=":728492361_18" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492361_15" to="107166846#3" fromLane="0" toLane="0" via=":728492361_19_0" dir="s" state="M"/>
- <connection from=":728492361_19" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492364_0" to="81394192#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492364_1" to="-58779718#1" fromLane="0" toLane="0" via=":728492364_4_0" dir="s" state="M"/>
- <connection from=":728492364_4" to="-58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492364_2" to="-58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492364_3" to="81394192#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_0" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_1" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_2" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_3" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_4" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_5" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_6" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_16_0" dir="s" state="M"/>
- <connection from=":728492366_16" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_7" to="38027102#2" fromLane="0" toLane="0" via=":728492366_17_0" dir="s" state="M"/>
- <connection from=":728492366_17" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_8" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_9" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_10" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_11" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_12" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_13" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_14" to="107166846#4" fromLane="0" toLane="0" via=":728492366_18_0" dir="s" state="M"/>
- <connection from=":728492366_18" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492366_15" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_19_0" dir="s" state="M"/>
- <connection from=":728492366_19" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492371_0" to="-58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492371_1" to="81394192#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492371_2" to="81394192#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492371_3" to="-58779719#1" fromLane="0" toLane="0" via=":728492371_4_0" dir="s" state="M"/>
- <connection from=":728492371_4" to="-58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_0" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_1" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_2" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_3" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_4" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_5" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_6" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_16_0" dir="s" state="M"/>
- <connection from=":728492372_16" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_7" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_17_0" dir="s" state="M"/>
- <connection from=":728492372_17" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_8" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_9" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_10" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_11" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_12" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_13" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_14" to="38027665#2" fromLane="0" toLane="0" via=":728492372_18_0" dir="s" state="M"/>
- <connection from=":728492372_18" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":728492372_15" to="107166846#1" fromLane="0" toLane="0" via=":728492372_19_0" dir="s" state="M"/>
- <connection from=":728492372_19" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663070_0" to="37942667#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663070_1" to="37942667#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_0" to="83051426" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_1" to="83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_2" to="-83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_3" to="-83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_4" to="83051426" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_5" to="83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_6" to="83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_7" to="-83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663071_8" to="83051426" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_0" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_1" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_2" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_3" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_16_0" dir="s" state="M"/>
- <connection from=":733663076_16" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_4" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_5" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_6" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_7" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_8" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_9" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_10" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_11" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_12" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_13" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_14" to="59159259#0" fromLane="0" toLane="0" via=":733663076_17_0" dir="s" state="M"/>
- <connection from=":733663076_17" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663076_15" to="105283535#0" fromLane="0" toLane="0" via=":733663076_18_0" dir="s" state="M"/>
- <connection from=":733663076_18" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_0" to="83051455" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_1" to="83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_2" to="-83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_3" to="-83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_4" to="83051455" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_5" to="83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_6" to="83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_7" to="-83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663078_8" to="83051455" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_0" to="37973565#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_1" to="-59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_2" to="59159262#2" fromLane="0" toLane="0" via=":733663082_9_0" dir="s" state="M"/>
- <connection from=":733663082_9" to="59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_3" to="59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_4" to="37973565#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_5" to="-59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_6" to="59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_7" to="37973565#1" fromLane="0" toLane="0" via=":733663082_10_0" dir="s" state="M"/>
- <connection from=":733663082_10" to="37973565#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663082_8" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_11_0" dir="s" state="M"/>
- <connection from=":733663082_11" to="-59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663089_0" to="37449253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663089_1" to="-59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663089_2" to="-59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663089_3" to="37449253#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_0" to="59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_1" to="58770725#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_2" to="-59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_3" to="59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_4" to="58770725#3" fromLane="0" toLane="0" via=":733663093_9_0" dir="s" state="M"/>
- <connection from=":733663093_9" to="58770725#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_5" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_10_0" dir="s" state="M"/>
- <connection from=":733663093_10" to="-59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_6" to="58770725#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_7" to="-59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663093_8" to="59159260#1" fromLane="0" toLane="0" via=":733663093_11_0" dir="s" state="M"/>
- <connection from=":733663093_11" to="59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_0" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_1" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_2" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_3" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_4" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_5" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_6" to="38319546#8" fromLane="0" toLane="0" via=":733663096_16_0" dir="s" state="M"/>
- <connection from=":733663096_16" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_7" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_17_0" dir="s" state="M"/>
- <connection from=":733663096_17" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_8" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_9" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_10" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_11" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_12" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_13" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_14" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_18_0" dir="s" state="M"/>
- <connection from=":733663096_18" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663096_15" to="59159260#3" fromLane="0" toLane="0" via=":733663096_19_0" dir="s" state="M"/>
- <connection from=":733663096_19" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663116_0" to="59159266#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663116_1" to="69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663116_2" to="-69931595#2" fromLane="0" toLane="0" via=":733663116_6_0" dir="s" state="M"/>
- <connection from=":733663116_6" to="-69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663116_3" to="-69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663116_4" to="59159266#0" fromLane="0" toLane="0" via=":733663116_7_0" dir="s" state="M"/>
- <connection from=":733663116_7" to="59159266#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663116_5" to="69931595#3" fromLane="0" toLane="0" via=":733663116_8_0" dir="s" state="M"/>
- <connection from=":733663116_8" to="69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_0" to="23066443#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_1" to="59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_2" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_9_0" dir="s" state="M"/>
- <connection from=":733663121_9" to="-59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_3" to="-59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_4" to="23066443#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_5" to="59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_6" to="-59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_7" to="23066443#5" fromLane="0" toLane="0" via=":733663121_10_0" dir="s" state="M"/>
- <connection from=":733663121_10" to="23066443#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663121_8" to="59159260#2" fromLane="0" toLane="0" via=":733663121_11_0" dir="s" state="M"/>
- <connection from=":733663121_11" to="59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663131_0" to="59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663131_1" to="37771900#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663131_2" to="37771900#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663131_3" to="59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_0" to="-59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_1" to="69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_2" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_9_0" dir="s" state="M"/>
- <connection from=":733663136_9" to="-69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_3" to="-69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_4" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_10_0" dir="s" state="M"/>
- <connection from=":733663136_10" to="-59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_5" to="69931595#1" fromLane="0" toLane="0" via=":733663136_11_0" dir="s" state="M"/>
- <connection from=":733663136_11" to="69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_6" to="69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_7" to="-69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":733663136_8" to="-59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_0" to="149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_1" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_2" to="-149868584#5" fromLane="0" toLane="1" via=":767282288_18_0" dir="s" state="M"/>
- <connection from=":767282288_18" to="-149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":767282288_3" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_19_0" dir="s" state="M"/>
- <connection from=":767282288_19" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_4" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_5" to="149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_6" to="149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":767282288_7" to="38319550#6" fromLane="0" toLane="0" via=":767282288_20_0" dir="s" state="M"/>
- <connection from=":767282288_20" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_8" to="-149868584#5" fromLane="0" toLane="1" via=":767282288_21_0" dir="s" state="M"/>
- <connection from=":767282288_21" to="-149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":767282288_9" to="-149868584#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_10" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_11" to="149868584#6" fromLane="0" toLane="1" via=":767282288_22_0" dir="s" state="M"/>
- <connection from=":767282288_22" to="149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":767282288_12" to="38319550#6" fromLane="0" toLane="0" via=":767282288_23_0" dir="s" state="M"/>
- <connection from=":767282288_23" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_13" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_14" to="-149868584#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_15" to="-149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":767282288_16" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_24_0" dir="s" state="M"/>
- <connection from=":767282288_24" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":767282288_17" to="149868584#6" fromLane="0" toLane="1" via=":767282288_25_0" dir="s" state="M"/>
- <connection from=":767282288_25" to="149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":945146413_0" to="81096855#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146413_1" to="139118802#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146413_2" to="81096855#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146413_3" to="139118802#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146437_0" to="81096855#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146437_1" to="129780028" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146437_2" to="81096855#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":945146437_3" to="129780028" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350565_0" to="81394188#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350565_1" to="81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_0" to="37973565#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_1" to="-133868229#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_2" to="-133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350588_3" to="133868229#1" fromLane="0" toLane="1" via=":948350588_11_0" dir="s" state="M"/>
- <connection from=":948350588_11" to="133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350588_4" to="133868229#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_5" to="37973565#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_6" to="-133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350588_7" to="133868229#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_8" to="133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350588_9" to="37973565#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350588_10" to="-133868229#0" fromLane="0" toLane="1" via=":948350588_12_0" dir="s" state="M"/>
- <connection from=":948350588_12" to="-133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350595_0" to="133868231#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350595_1" to="44641745#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350595_2" to="133868231#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350595_3" to="44641745#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_0" to="-81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_1" to="133868191#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350597_2" to="133868191#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":948350597_3" to="81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_4" to="-81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_5" to="133868191#1" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":948350597_6" to="81394200#1" fromLane="0" toLane="0" via=":948350597_10_0" dir="s" state="M"/>
- <connection from=":948350597_10" to="81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_7" to="133868191#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_8" to="81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350597_9" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_11_0" dir="s" state="M"/>
- <connection from=":948350597_11" to="-81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350607_0" to="37973565#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350607_1" to="133868231#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350607_2" to="133868188" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350607_3" to="37973565#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350607_4" to="133868231#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350607_5" to="133868188" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_0" to="130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_1" to="81394169#2" fromLane="0" toLane="0" via=":948350615_9_0" dir="s" state="M"/>
- <connection from=":948350615_9" to="81394169#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_2" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_10_0" dir="s" state="M"/>
- <connection from=":948350615_10" to="-130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_3" to="81394169#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_4" to="-130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_5" to="130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_6" to="130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_7" to="81394169#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350615_8" to="-130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350621_0" to="81394169#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350621_1" to="37351089#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350621_2" to="37351089#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350621_3" to="81394169#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350621_4" to="37351089#1" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":948350621_5" to="37351089#1" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":948350630_0" to="-133868229#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350630_1" to="-133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350630_2" to="81523330#0" fromLane="0" toLane="1" via=":948350630_8_0" dir="s" state="M"/>
- <connection from=":948350630_8" to="81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350630_3" to="81523330#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350630_4" to="-133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350630_5" to="81523330#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350630_6" to="81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350630_7" to="-133868229#1" fromLane="0" toLane="1" via=":948350630_9_0" dir="s" state="M"/>
- <connection from=":948350630_9" to="-133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350640_0" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_1" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_2" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_3" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_4" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_5" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_6" to="130443629#2" fromLane="0" toLane="0" via=":948350640_16_0" dir="s" state="M"/>
- <connection from=":948350640_16" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_7" to="81394200#2" fromLane="0" toLane="0" via=":948350640_17_0" dir="s" state="M"/>
- <connection from=":948350640_17" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_8" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_9" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_10" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_11" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_12" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_13" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_14" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350640_15" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_18_0" dir="s" state="M"/>
- <connection from=":948350640_18" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350673_0" to="133868191#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350673_1" to="133868191#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350673_2" to="81394188#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350673_3" to="133868191#2" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":948350673_4" to="133868191#2" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":948350673_5" to="81394188#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350676_0" to="109438231#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350676_1" to="81394169#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350693_0" to="37351086#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350693_1" to="81394169#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350693_2" to="37351086#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350693_3" to="81394169#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350705_0" to="81523316" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350705_1" to="81523316" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350705_2" to="109438232" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_0" to="133868186" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_1" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_2" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_3" to="133868229#0" fromLane="0" toLane="1" via=":948350707_17_0" dir="s" state="M"/>
- <connection from=":948350707_17" to="133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350707_4" to="133868229#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_5" to="133868186" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350707_6" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_7" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_8" to="133868229#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_9" to="133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350707_10" to="133868186" fromLane="0" toLane="2" dir="s" state="M"/>
- <connection from=":948350707_11" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_12" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_13" to="133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":948350707_14" to="133868186" fromLane="0" toLane="3" dir="s" state="M"/>
- <connection from=":948350707_15" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350707_16" to="-81394200#2" fromLane="0" toLane="0" via=":948350707_18_0" dir="s" state="M"/>
- <connection from=":948350707_18" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350715_0" to="81394169#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350715_1" to="44641745#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350715_2" to="81394169#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":948350715_3" to="44641745#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094314_0" to="172498367" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094314_1" to="172498388" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094314_2" to="172498388" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094314_3" to="172498367" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094314_4" to="172498388" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094380_0" to="144874010#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094380_1" to="144874012#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094380_2" to="144874010#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094380_3" to="144874010#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094380_4" to="144874012#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_0" to="144874010#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_1" to="23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_2" to="-23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_3" to="-23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_4" to="144874010#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_5" to="144874010#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094412_6" to="23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_7" to="-23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094412_8" to="144874010#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094412_9" to="23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_0" to="-81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_1" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_2" to="81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094425_3" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_4" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_5" to="-81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_6" to="-81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094425_7" to="23315111#3" fromLane="0" toLane="0" via=":950094425_18_0" dir="s" state="M"/>
- <connection from=":950094425_18" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_8" to="81523330#2" fromLane="0" toLane="1" via=":950094425_19_0" dir="s" state="M"/>
- <connection from=":950094425_19" to="81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094425_9" to="81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_10" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_11" to="-81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094425_12" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_13" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_14" to="81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_15" to="81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094425_16" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094425_17" to="-81523330#1" fromLane="0" toLane="1" via=":950094425_20_0" dir="s" state="M"/>
- <connection from=":950094425_20" to="-81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094434_0" to="129780026#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094434_1" to="154489992#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094434_2" to="154489992#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094434_3" to="129780026#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094434_4" to="154489992#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094458_0" to="149408824#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094458_1" to="129780026#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094458_2" to="-139118805#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094458_3" to="-139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094458_4" to="149408824#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094458_5" to="149408824#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094458_6" to="129780026#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094458_7" to="-139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094494_0" to="-81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094494_1" to="139118808" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094494_2" to="139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094494_3" to="-81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094494_4" to="-81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094494_5" to="139118808" fromLane="0" toLane="0" via=":950094494_11_0" dir="s" state="M"/>
- <connection from=":950094494_11" to="139118808" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094494_6" to="139118805#0" fromLane="0" toLane="1" via=":950094494_12_0" dir="s" state="M"/>
- <connection from=":950094494_12" to="139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094494_7" to="139118808" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094494_8" to="139118805#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950094494_9" to="139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950094494_10" to="-81523330#4" fromLane="0" toLane="1" via=":950094494_13_0" dir="s" state="M"/>
- <connection from=":950094494_13" to="-81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950640351_0" to="38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_1" to="111549913#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_2" to="-38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_3" to="111549913#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_4" to="-38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_5" to="38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_6" to="38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_7" to="111549913#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640351_8" to="-38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640361_0" to="81394192#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640361_1" to="111549913#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640361_2" to="81394192#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640361_3" to="111549913#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_0" to="34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_1" to="111549913#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_2" to="-34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_3" to="111549913#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_4" to="-34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_5" to="34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_6" to="34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_7" to="111549913#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640371_8" to="-34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_0" to="111863125#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_1" to="43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_2" to="-43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_3" to="-43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_4" to="111863125#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_5" to="43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_6" to="-43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_7" to="111863125#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640393_8" to="43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640399_0" to="111549913#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640399_1" to="101272424#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640399_2" to="111549913#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640399_3" to="101272424#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_0" to="111549913#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_1" to="-130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_2" to="130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_3" to="130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_4" to="111549913#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_5" to="-130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_6" to="130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_7" to="111549913#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640411_8" to="-130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_0" to="-130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_1" to="111863125#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_2" to="130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_3" to="-130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_4" to="111863125#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_5" to="130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_6" to="111863125#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_7" to="130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640413_8" to="-130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640428_0" to="109438141" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640428_1" to="81394188#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640474_0" to="111863125#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640474_1" to="81394192#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640474_2" to="111863125#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640474_3" to="81394192#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640525_0" to="42976410#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640525_1" to="111863125#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640525_2" to="42976410#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640525_3" to="111863125#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_0" to="111863125#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_1" to="38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_2" to="-38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_3" to="-38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_4" to="111863125#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_5" to="38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_6" to="-38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_7" to="111863125#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640531_8" to="38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640550_0" to="111863125#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640550_1" to="133960539#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640550_2" to="111863125#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640550_3" to="133960539#4" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950640558_0" to="42976405#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640558_1" to="111863125#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640558_2" to="42976405#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":950640558_3" to="111863125#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":950640617_0" to="107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_0" to="-81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_1" to="81672213" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_2" to="81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_3" to="81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_4" to="-81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_5" to="81672213" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_6" to="81672213" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_7" to="81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739420_8" to="-81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739443_0" to="166603397#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739443_1" to="166603397#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":951739443_2" to="111863096#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739443_3" to="166603397#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739443_4" to="111863096#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_0" to="-81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_1" to="81672209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_2" to="81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_3" to="81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_4" to="-81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_5" to="81672209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_6" to="81672209" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_7" to="81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739458_8" to="-81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_0" to="-81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_1" to="81672218" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_2" to="81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_3" to="-81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_4" to="81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_5" to="81672218" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_6" to="81672218" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_7" to="81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739511_8" to="-81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_0" to="-81672214" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_1" to="81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_2" to="-81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_3" to="-81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_4" to="-81672214" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_5" to="81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_6" to="81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_7" to="-81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739549_8" to="-81672214" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739557_0" to="111863096#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739557_1" to="154844483#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739557_2" to="154844483#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":951739557_3" to="111863096#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739557_4" to="154844483#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":951739568_0" to="-81672213" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_1" to="81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_2" to="-81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_3" to="-81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_4" to="-81672213" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_5" to="81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_6" to="81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_7" to="-81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739568_8" to="-81672213" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_0" to="38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_1" to="111863096#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_2" to="-38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_3" to="111863096#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_4" to="-38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_5" to="38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_6" to="38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_7" to="111863096#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739649_8" to="-38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_0" to="103851602#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_1" to="38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_2" to="-38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_3" to="-38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_4" to="103851602#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_5" to="38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_6" to="-38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_7" to="103851602#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739684_8" to="38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739693_0" to="37973569#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739693_1" to="81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739693_2" to="81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739693_3" to="37973569#5" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739718_0" to="154844483#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739718_1" to="103851602#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739718_2" to="154844483#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739718_3" to="154844483#2" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":951739718_4" to="103851602#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_0" to="-81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_1" to="81672214" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_2" to="81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_3" to="81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_4" to="-81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_5" to="81672214" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_6" to="81672214" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_7" to="81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739766_8" to="-81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739771_0" to="81672207#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739771_1" to="133960539#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739771_2" to="133960539#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":951739776_0" to="103851602#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739776_1" to="166603397#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739776_2" to="166603397#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":951739776_3" to="103851602#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":951739776_4" to="166603397#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":956116503_0" to="-59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_1" to="59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_2" to="44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_3" to="44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_4" to="-59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_5" to="59159262#3" fromLane="0" toLane="0" via=":956116503_9_0" dir="s" state="M"/>
- <connection from=":956116503_9" to="59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_6" to="59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_7" to="44104491#0" fromLane="0" toLane="0" via=":956116503_10_0" dir="s" state="M"/>
- <connection from=":956116503_10" to="44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":956116503_8" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_11_0" dir="s" state="M"/>
- <connection from=":956116503_11" to="-59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097830_0" to="-83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097830_1" to="-83038920" fromLane="0" toLane="0" via=":966097830_4_0" dir="s" state="M"/>
- <connection from=":966097830_4" to="-83038920" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097830_2" to="-83038920" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097830_3" to="-83038923#1" fromLane="0" toLane="0" via=":966097830_5_0" dir="s" state="M"/>
- <connection from=":966097830_5" to="-83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_0" to="-83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_1" to="83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_2" to="83038920" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_3" to="-83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_4" to="83038920" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_5" to="83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_6" to="83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_7" to="83038920" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097837_8" to="-83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_0" to="-130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_1" to="130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_2" to="83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_3" to="83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_4" to="-130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_5" to="130443630#2" fromLane="0" toLane="0" via=":966097869_9_0" dir="s" state="M"/>
- <connection from=":966097869_9" to="130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_6" to="130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_7" to="83038923#0" fromLane="0" toLane="0" via=":966097869_10_0" dir="s" state="M"/>
- <connection from=":966097869_10" to="83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966097869_8" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_11_0" dir="s" state="M"/>
- <connection from=":966097869_11" to="-130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966132112_0" to="37771902#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966132112_1" to="37771902#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966132131_0" to="83042949" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966132131_1" to="58770837#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_0" to="83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_1" to="-83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_2" to="-83051424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_3" to="-83051424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_4" to="83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_5" to="-83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_6" to="-83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_7" to="-83051424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193793_8" to="83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193796_0" to="37772595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193796_1" to="-83051420" fromLane="0" toLane="0" via=":966193796_4_0" dir="s" state="M"/>
- <connection from=":966193796_4" to="-83051420" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193796_2" to="-83051420" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193796_3" to="37772595#3" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_0" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_1" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_2" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_3" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_4" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_5" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_6" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_7" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_8" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_9" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_10" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_11" to="83051420" fromLane="0" toLane="0" via=":966193808_16_0" dir="s" state="M"/>
- <connection from=":966193808_16" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_12" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_13" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_14" to="-83051417" fromLane="0" toLane="0" via=":966193808_17_0" dir="s" state="M"/>
- <connection from=":966193808_17" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193808_15" to="-24573937" fromLane="0" toLane="0" via=":966193808_18_0" dir="s" state="M"/>
- <connection from=":966193808_18" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_0" to="83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_1" to="83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_2" to="-83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_3" to="-83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_4" to="83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_5" to="83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_6" to="83051417" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_7" to="-83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193812_8" to="83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193814_0" to="83051424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193814_1" to="-83051483" fromLane="0" toLane="0" via=":966193814_4_0" dir="s" state="M"/>
- <connection from=":966193814_4" to="-83051483" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193814_2" to="-83051483" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193814_3" to="83051424" fromLane="0" toLane="0" via=":966193814_5_0" dir="s" state="M"/>
- <connection from=":966193814_5" to="83051424" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193857_0" to="37771904#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193857_1" to="83051483" fromLane="0" toLane="0" via=":966193857_4_0" dir="s" state="M"/>
- <connection from=":966193857_4" to="83051483" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193857_2" to="83051483" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":966193857_3" to="37771904#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_0" to="37449253#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_1" to="-139118805#0" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_2" to="-139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":974693391_3" to="139118805#1" fromLane="0" toLane="1" via=":974693391_11_0" dir="s" state="M"/>
- <connection from=":974693391_11" to="139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":974693391_4" to="139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_5" to="37449253#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_6" to="-139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":974693391_7" to="139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_8" to="139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":974693391_9" to="37449253#6" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":974693391_10" to="-139118805#0" fromLane="0" toLane="1" via=":974693391_12_0" dir="s" state="M"/>
- <connection from=":974693391_12" to="-139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
- <connection from=":975934874_0" to="83827202" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934874_1" to="139118804#4" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934878_0" to="23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934878_1" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_6_0" dir="s" state="M"/>
- <connection from=":975934878_6" to="-23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934878_2" to="-23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934878_3" to="23182517#2" fromLane="0" toLane="0" via=":975934878_7_0" dir="s" state="M"/>
- <connection from=":975934878_7" to="23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934878_4" to="23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
- <connection from=":975934878_5" to="-23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
-
-</net>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- generated on 04/18/13 16:11:29 by SUMO netconvert Version 0.16.0
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/netconvertConfiguration.xsd">
+
+ <input>
+ <osm-files value="polito.osm"/>
+ </input>
+
+ <output>
+ <output-file value="polito.net.xml"/>
+ </output>
+
+ <projection>
+ <proj.utm value="true"/>
+ </projection>
+
+</configuration>
+-->
+
+<net version="0.13" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/net_file.xsd">
+
+ <location netOffset="-393419.93,-4989448.35" convBoundary="0.00,0.00,2575.84,2867.89" origBoundary="7.646102,45.050621,7.678963,45.076501" projParameter="+proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs"/>
+
+ <edge id=":1096401733_0" function="internal">
+ <lane id=":1096401733_0_0" index="0" speed="22.22" length="5.05" shape="830.23,973.05 831.19,973.81 832.29,974.18 833.52,974.17 834.90,973.76"/>
+ </edge>
+ <edge id=":1096401733_1" function="internal">
+ <lane id=":1096401733_1_0" index="0" speed="22.22" length="5.65" shape="830.23,973.05 833.25,977.83"/>
+ </edge>
+ <edge id=":1168929269_0" function="internal">
+ <lane id=":1168929269_0_0" index="0" speed="27.78" length="3.71" shape="1188.47,1081.06 1188.62,1081.22 1188.98,1081.81 1189.54,1082.83 1190.30,1084.27"/>
+ </edge>
+ <edge id=":1168929269_1" function="internal">
+ <lane id=":1168929269_1_0" index="0" speed="27.78" length="5.86" shape="1188.47,1081.06 1183.60,1084.33"/>
+ </edge>
+ <edge id=":1168929269_2" function="internal">
+ <lane id=":1168929269_2_0" index="0" speed="27.78" length="7.29" shape="1186.90,1077.82 1190.30,1084.27"/>
+ </edge>
+ <edge id=":1168929269_3" function="internal">
+ <lane id=":1168929269_3_0" index="0" speed="27.78" length="7.28" shape="1183.98,1079.36 1187.38,1085.80"/>
+ </edge>
+ <edge id=":1168929269_4" function="internal">
+ <lane id=":1168929269_4_0" index="0" speed="27.78" length="5.57" shape="1183.98,1079.36 1184.68,1081.03 1184.85,1082.42 1184.49,1083.52 1183.60,1084.33"/>
+ </edge>
+ <edge id=":1168929272_0" function="internal">
+ <lane id=":1168929272_0_0" index="0" speed="25.00" length="4.96" shape="1139.65,1049.41 1137.36,1045.01"/>
+ </edge>
+ <edge id=":1168929272_1" function="internal">
+ <lane id=":1168929272_1_0" index="0" speed="27.78" length="5.00" shape="1139.65,1049.41 1141.54,1044.78"/>
+ </edge>
+ <edge id=":1168929295_0" function="internal">
+ <lane id=":1168929295_0_0" index="0" speed="25.00" length="5.06" shape="1160.41,1090.51 1158.14,1085.99"/>
+ </edge>
+ <edge id=":1168929295_1" function="internal">
+ <lane id=":1168929295_1_0" index="0" speed="27.78" length="5.13" shape="1163.12,1087.21 1158.14,1085.99"/>
+ </edge>
+ <edge id=":1168929298_0" function="internal">
+ <lane id=":1168929298_0_0" index="0" speed="22.22" length="6.97" shape="820.24,960.93 823.89,966.87"/>
+ </edge>
+ <edge id=":1168929298_1" function="internal">
+ <lane id=":1168929298_1_0" index="0" speed="22.22" length="7.30" shape="817.29,963.74 823.89,966.87"/>
+ </edge>
+ <edge id=":1168929308_0" function="internal">
+ <lane id=":1168929308_0_0" index="0" speed="22.22" length="6.45" shape="774.37,984.96 776.33,984.42 777.17,983.57 776.88,982.42 775.46,980.96"/>
+ </edge>
+ <edge id=":1168929308_1" function="internal">
+ <lane id=":1168929308_1_0" index="0" speed="22.22" length="8.73" shape="774.37,984.96 777.61,984.35 780.01,983.63 781.57,982.82 782.29,981.90"/>
+ </edge>
+ <edge id=":1168929308_2" function="internal">
+ <lane id=":1168929308_2_0" index="0" speed="22.22" length="2.41" shape="774.37,984.96 775.72,985.58 776.25,986.34"/>
+ </edge>
+ <edge id=":1168929308_6" function="internal">
+ <lane id=":1168929308_6_0" index="0" speed="22.22" length="2.41" shape="776.25,986.34 775.97,987.22 774.87,988.22"/>
+ </edge>
+ <edge id=":1168929308_3" function="internal">
+ <lane id=":1168929308_3_0" index="0" speed="22.22" length="7.71" shape="781.10,990.85 780.65,989.35 779.46,988.41 777.53,988.04 774.87,988.22"/>
+ </edge>
+ <edge id=":1168929308_4" function="internal">
+ <lane id=":1168929308_4_0" index="0" speed="22.22" length="11.72" shape="781.10,990.85 780.65,988.17 779.57,985.63 777.84,983.23 775.46,980.96"/>
+ </edge>
+ <edge id=":1168929308_5" function="internal">
+ <lane id=":1168929308_5_0" index="0" speed="22.22" length="9.03" shape="781.10,990.85 782.29,981.90"/>
+ </edge>
+ <edge id=":1168929310_0" function="internal">
+ <lane id=":1168929310_0_0" index="0" speed="27.78" length="1.95" shape="1139.29,1064.21 1139.04,1062.27"/>
+ </edge>
+ <edge id=":1168929310_1" function="internal">
+ <lane id=":1168929310_1_0" index="0" speed="27.78" length="3.94" shape="1139.29,1064.21 1139.50,1064.08 1140.13,1063.70 1141.19,1063.07 1142.67,1062.18"/>
+ </edge>
+ <edge id=":1168929310_2" function="internal">
+ <lane id=":1168929310_2_0" index="0" speed="27.78" length="2.07" shape="1139.08,1064.31 1139.16,1064.14 1139.17,1063.75 1139.14,1063.12 1139.04,1062.27"/>
+ </edge>
+ <edge id=":1168929310_3" function="internal">
+ <lane id=":1168929310_3_0" index="0" speed="27.78" length="4.18" shape="1139.08,1064.31 1142.67,1062.18"/>
+ </edge>
+ <edge id=":1168929324_0" function="internal">
+ <lane id=":1168929324_0_0" index="0" speed="27.78" length="4.59" shape="1203.15,1049.52 1201.42,1050.56 1200.16,1051.19 1199.38,1051.41 1199.09,1051.22"/>
+ </edge>
+ <edge id=":1168929324_1" function="internal">
+ <lane id=":1168929324_1_0" index="0" speed="27.78" length="7.85" shape="1201.39,1046.73 1195.60,1052.03"/>
+ </edge>
+ <edge id=":1168929324_2" function="internal">
+ <lane id=":1168929324_2_0" index="0" speed="27.78" length="1.96" shape="1198.68,1049.30 1199.09,1051.22"/>
+ </edge>
+ <edge id=":1168929324_3" function="internal">
+ <lane id=":1168929324_3_0" index="0" speed="27.78" length="4.27" shape="1198.68,1049.30 1198.59,1049.81 1198.04,1050.44 1197.05,1051.18 1195.60,1052.03"/>
+ </edge>
+ <edge id=":1168929349_0" function="internal">
+ <lane id=":1168929349_0_0" index="0" speed="25.00" length="7.92" shape="831.77,1004.67 830.98,1006.28 830.74,1008.07 831.06,1010.04 831.94,1012.19"/>
+ </edge>
+ <edge id=":1168929349_1" function="internal">
+ <lane id=":1168929349_1_0" index="0" speed="22.22" length="13.80" shape="831.77,1004.67 829.59,1007.48 827.29,1009.90 824.74,1012.06 821.83,1014.12"/>
+ </edge>
+ <edge id=":1168929349_2" function="internal">
+ <lane id=":1168929349_2_0" index="0" speed="27.78" length="9.10" shape="827.65,1004.17 831.94,1012.19"/>
+ </edge>
+ <edge id=":1168929349_3" function="internal">
+ <lane id=":1168929349_3_0" index="0" speed="27.78" length="9.02" shape="824.76,1005.76 829.01,1013.71"/>
+ </edge>
+ <edge id=":1168929349_4" function="internal">
+ <lane id=":1168929349_4_0" index="0" speed="27.78" length="8.95" shape="821.86,1007.34 826.08,1015.23"/>
+ </edge>
+ <edge id=":1168929349_5" function="internal">
+ <lane id=":1168929349_5_0" index="0" speed="25.00" length="7.48" shape="821.86,1007.34 822.88,1009.63 823.21,1011.52 822.86,1013.02 821.83,1014.12"/>
+ </edge>
+ <edge id=":1168929367_0" function="internal">
+ <lane id=":1168929367_0_0" index="0" speed="25.00" length="4.31" shape="1182.95,1030.19 1186.71,1028.10"/>
+ </edge>
+ <edge id=":1168929367_1" function="internal">
+ <lane id=":1168929367_1_0" index="0" speed="27.78" length="3.91" shape="1182.95,1030.19 1186.33,1032.16"/>
+ </edge>
+ <edge id=":1168929382_0" function="internal">
+ <lane id=":1168929382_0_0" index="0" speed="27.78" length="8.16" shape="1149.52,1039.34 1145.73,1032.11"/>
+ </edge>
+ <edge id=":1168929382_1" function="internal">
+ <lane id=":1168929382_1_0" index="0" speed="27.78" length="8.18" shape="1152.45,1037.81 1148.64,1030.57"/>
+ </edge>
+ <edge id=":1168929382_2" function="internal">
+ <lane id=":1168929382_2_0" index="0" speed="27.78" length="6.17" shape="1152.45,1037.81 1151.58,1035.82 1151.24,1034.22 1151.43,1032.99 1152.15,1032.14"/>
+ </edge>
+ <edge id=":1168929382_3" function="internal">
+ <lane id=":1168929382_3_0" index="0" speed="27.78" length="4.64" shape="1148.91,1034.59 1148.28,1034.93 1147.53,1034.64 1146.69,1033.70 1145.73,1032.11"/>
+ </edge>
+ <edge id=":1168929382_4" function="internal">
+ <lane id=":1168929382_4_0" index="0" speed="27.78" length="4.07" shape="1148.91,1034.59 1152.15,1032.14"/>
+ </edge>
+ <edge id=":1168929383_0" function="internal">
+ <lane id=":1168929383_0_0" index="0" speed="27.78" length="3.03" shape="1145.22,1076.44 1144.92,1076.36 1144.36,1076.50 1143.53,1076.86 1142.44,1077.45"/>
+ </edge>
+ <edge id=":1168929383_1" function="internal">
+ <lane id=":1168929383_1_0" index="0" speed="27.78" length="5.47" shape="1145.22,1076.44 1142.17,1071.90"/>
+ </edge>
+ <edge id=":1168929383_2" function="internal">
+ <lane id=":1168929383_2_0" index="0" speed="27.78" length="2.08" shape="1145.22,1076.44 1145.13,1074.37"/>
+ </edge>
+ <edge id=":1168929383_9" function="internal">
+ <lane id=":1168929383_9_0" index="0" speed="27.78" length="5.90" shape="1145.13,1074.37 1144.88,1068.47"/>
+ </edge>
+ <edge id=":1168929383_3" function="internal">
+ <lane id=":1168929383_3_0" index="0" speed="27.78" length="7.33" shape="1148.13,1074.22 1140.81,1074.58"/>
+ </edge>
+ <edge id=":1168929383_4" function="internal">
+ <lane id=":1168929383_4_0" index="0" speed="27.78" length="4.81" shape="1146.51,1071.35 1144.86,1072.16 1143.59,1072.52 1142.69,1072.44 1142.17,1071.90"/>
+ </edge>
+ <edge id=":1168929383_5" function="internal">
+ <lane id=":1168929383_5_0" index="0" speed="27.78" length="2.41" shape="1146.51,1071.35 1145.02,1071.24 1144.26,1070.72"/>
+ </edge>
+ <edge id=":1168929383_10" function="internal">
+ <lane id=":1168929383_10_0" index="0" speed="27.78" length="2.41" shape="1144.26,1070.72 1144.21,1069.80 1144.88,1068.47"/>
+ </edge>
+ <edge id=":1168929383_6" function="internal">
+ <lane id=":1168929383_6_0" index="0" speed="27.78" length="5.55" shape="1137.55,1068.84 1142.17,1071.90"/>
+ </edge>
+ <edge id=":1168929383_7" function="internal">
+ <lane id=":1168929383_7_0" index="0" speed="27.78" length="7.34" shape="1139.18,1071.71 1143.26,1065.60"/>
+ </edge>
+ <edge id=":1168929383_8" function="internal">
+ <lane id=":1168929383_8_0" index="0" speed="27.78" length="2.41" shape="1139.18,1071.71 1140.66,1071.81 1141.43,1072.33"/>
+ </edge>
+ <edge id=":1168929383_11" function="internal">
+ <lane id=":1168929383_11_0" index="0" speed="27.78" length="2.41" shape="1141.43,1072.33 1141.48,1073.25 1140.81,1074.58"/>
+ </edge>
+ <edge id=":1168929385_0" function="internal">
+ <lane id=":1168929385_0_0" index="0" speed="27.78" length="1.73" shape="1160.50,1027.89 1160.47,1028.06 1160.22,1028.24 1159.74,1028.44 1159.04,1028.67"/>
+ </edge>
+ <edge id=":1168929385_1" function="internal">
+ <lane id=":1168929385_1_0" index="0" speed="27.78" length="2.90" shape="1160.50,1027.89 1161.85,1030.46"/>
+ </edge>
+ <edge id=":1168929385_2" function="internal">
+ <lane id=":1168929385_2_0" index="0" speed="27.78" length="6.21" shape="1156.03,1026.52 1158.94,1032.00"/>
+ </edge>
+ <edge id=":1168929385_3" function="internal">
+ <lane id=":1168929385_3_0" index="0" speed="27.78" length="4.97" shape="1154.36,1030.34 1159.04,1028.67"/>
+ </edge>
+ <edge id=":1168929385_4" function="internal">
+ <lane id=":1168929385_4_0" index="0" speed="27.78" length="5.39" shape="1154.36,1030.34 1155.82,1030.03 1157.06,1030.20 1158.10,1030.86 1158.94,1032.00"/>
+ </edge>
+ <edge id=":1168929388_0" function="internal">
+ <lane id=":1168929388_0_0" index="0" speed="27.78" length="6.34" shape="1186.64,1032.40 1188.04,1033.22 1189.50,1033.57 1191.02,1033.45 1192.60,1032.86"/>
+ </edge>
+ <edge id=":1168929388_1" function="internal">
+ <lane id=":1168929388_1_0" index="0" speed="27.78" length="4.91" shape="1186.64,1032.40 1190.83,1034.95"/>
+ </edge>
+ <edge id=":1168929388_2" function="internal">
+ <lane id=":1168929388_2_0" index="0" speed="27.78" length="7.47" shape="1186.08,1036.49 1192.60,1032.86"/>
+ </edge>
+ <edge id=":1168929388_3" function="internal">
+ <lane id=":1168929388_3_0" index="0" speed="27.78" length="5.22" shape="1186.08,1036.49 1187.92,1035.47 1189.32,1034.87 1190.30,1034.70 1190.83,1034.95"/>
+ </edge>
+ <edge id=":1168929398_0" function="internal">
+ <lane id=":1168929398_0_0" index="0" speed="22.22" length="0.18" shape="808.15,1035.82 808.12,1035.99"/>
+ </edge>
+ <edge id=":1168929398_1" function="internal">
+ <lane id=":1168929398_1_0" index="0" speed="22.22" length="2.41" shape="808.15,1035.82 807.07,1036.85 806.18,1037.07"/>
+ </edge>
+ <edge id=":1168929398_4" function="internal">
+ <lane id=":1168929398_4_0" index="0" speed="22.22" length="2.41" shape="806.18,1037.07 805.46,1036.48 804.93,1035.09"/>
+ </edge>
+ <edge id=":1168929398_2" function="internal">
+ <lane id=":1168929398_2_0" index="0" speed="22.22" length="0.54" shape="804.84,1035.62 804.93,1035.09"/>
+ </edge>
+ <edge id=":1168929398_3" function="internal">
+ <lane id=":1168929398_3_0" index="0" speed="22.22" length="2.41" shape="804.84,1035.62 805.80,1034.49 806.67,1034.17"/>
+ </edge>
+ <edge id=":1168929398_5" function="internal">
+ <lane id=":1168929398_5_0" index="0" speed="22.22" length="2.41" shape="806.67,1034.17 807.44,1034.67 808.12,1035.99"/>
+ </edge>
+ <edge id=":1168929459_0" function="internal">
+ <lane id=":1168929459_0_0" index="0" speed="25.00" length="6.28" shape="1198.42,1066.20 1199.90,1072.31"/>
+ </edge>
+ <edge id=":1168929459_1" function="internal">
+ <lane id=":1168929459_1_0" index="0" speed="27.78" length="6.65" shape="1198.42,1066.20 1195.66,1072.25"/>
+ </edge>
+ <edge id=":1168929523_0" function="internal">
+ <lane id=":1168929523_0_0" index="0" speed="27.78" length="4.11" shape="1148.48,1079.88 1147.88,1079.62 1147.04,1079.67 1145.96,1080.02 1144.64,1080.68"/>
+ </edge>
+ <edge id=":1168929523_1" function="internal">
+ <lane id=":1168929523_1_0" index="0" speed="27.78" length="2.23" shape="1148.48,1079.88 1146.54,1078.78"/>
+ </edge>
+ <edge id=":1168929523_2" function="internal">
+ <lane id=":1168929523_2_0" index="0" speed="27.78" length="7.02" shape="1150.64,1077.04 1144.64,1080.68"/>
+ </edge>
+ <edge id=":1168929523_3" function="internal">
+ <lane id=":1168929523_3_0" index="0" speed="27.78" length="4.51" shape="1150.64,1077.04 1148.94,1077.96 1147.70,1078.55 1146.89,1078.83 1146.54,1078.78"/>
+ </edge>
+ <edge id=":1168929542_0" function="internal">
+ <lane id=":1168929542_0_0" index="0" speed="22.22" length="9.09" shape="836.13,986.53 839.71,994.88"/>
+ </edge>
+ <edge id=":1168929542_1" function="internal">
+ <lane id=":1168929542_1_0" index="0" speed="22.22" length="9.13" shape="836.13,986.53 835.54,995.65"/>
+ </edge>
+ <edge id=":1168929546_0" function="internal">
+ <lane id=":1168929546_0_0" index="0" speed="5.56" length="6.46" shape="1162.97,1032.37 1159.95,1026.66"/>
+ </edge>
+ <edge id=":1168929546_1" function="internal">
+ <lane id=":1168929546_1_0" index="0" speed="16.67" length="10.02" shape="1162.97,1032.37 1162.09,1029.80 1162.61,1028.05 1164.53,1027.11 1167.86,1026.99"/>
+ </edge>
+ <edge id=":1168929546_2" function="internal">
+ <lane id=":1168929546_2_0" index="0" speed="5.56" length="4.82" shape="1162.97,1032.37 1163.12,1030.89 1163.65,1030.14 1164.57,1030.12 1165.88,1030.82"/>
+ </edge>
+ <edge id=":1168929546_3" function="internal">
+ <lane id=":1168929546_3_0" index="0" speed="16.67" length="5.49" shape="1162.88,1025.14 1163.49,1025.84 1164.53,1026.38 1165.98,1026.76 1167.86,1026.99"/>
+ </edge>
+ <edge id=":1168929546_4" function="internal">
+ <lane id=":1168929546_4_0" index="0" speed="5.56" length="6.42" shape="1162.88,1025.14 1165.88,1030.82"/>
+ </edge>
+ <edge id=":1168929546_5" function="internal">
+ <lane id=":1168929546_5_0" index="0" speed="5.56" length="4.82" shape="1162.88,1025.14 1162.72,1026.62 1162.18,1027.37 1161.26,1027.38 1159.95,1026.66"/>
+ </edge>
+ <edge id=":1168929546_6" function="internal">
+ <lane id=":1168929546_6_0" index="0" speed="16.67" length="2.88" shape="1162.36,1027.71 1161.60,1027.82 1160.95,1027.68 1160.40,1027.30 1159.95,1026.66"/>
+ </edge>
+ <edge id=":1168929546_7" function="internal">
+ <lane id=":1168929546_7_0" index="0" speed="27.78" length="5.55" shape="1162.36,1027.71 1167.86,1026.99"/>
+ </edge>
+ <edge id=":1168929546_8" function="internal">
+ <lane id=":1168929546_8_0" index="0" speed="16.67" length="5.00" shape="1162.36,1027.71 1163.19,1027.73 1164.05,1028.26 1164.95,1029.29 1165.88,1030.82"/>
+ </edge>
+ <edge id=":1168929549_0" function="internal">
+ <lane id=":1168929549_0_0" index="0" speed="25.00" length="4.21" shape="1201.76,1057.55 1200.88,1058.18 1200.19,1058.94 1199.70,1059.83 1199.40,1060.87"/>
+ </edge>
+ <edge id=":1168929549_1" function="internal">
+ <lane id=":1168929549_1_0" index="0" speed="27.78" length="3.86" shape="1199.82,1057.03 1199.40,1060.87"/>
+ </edge>
+ <edge id=":1168929558_0" function="internal">
+ <lane id=":1168929558_0_0" index="0" speed="27.78" length="3.99" shape="1178.62,1088.72 1181.38,1085.83"/>
+ </edge>
+ <edge id=":1168929558_1" function="internal">
+ <lane id=":1168929558_1_0" index="0" speed="27.78" length="4.51" shape="1181.54,1087.18 1177.19,1085.99"/>
+ </edge>
+ <edge id=":1168929558_2" function="internal">
+ <lane id=":1168929558_2_0" index="0" speed="27.78" length="2.41" shape="1181.54,1087.18 1181.71,1085.70 1182.26,1084.96"/>
+ </edge>
+ <edge id=":1168929558_9" function="internal">
+ <lane id=":1168929558_9_0" index="0" speed="27.78" length="2.41" shape="1182.26,1084.96 1183.18,1084.95 1184.48,1085.68"/>
+ </edge>
+ <edge id=":1168929558_3" function="internal">
+ <lane id=":1168929558_3_0" index="0" speed="27.78" length="4.37" shape="1183.05,1084.65 1187.39,1084.12"/>
+ </edge>
+ <edge id=":1168929558_4" function="internal">
+ <lane id=":1168929558_4_0" index="0" speed="27.78" length="2.04" shape="1183.05,1084.65 1181.38,1085.83"/>
+ </edge>
+ <edge id=":1168929558_5" function="internal">
+ <lane id=":1168929558_5_0" index="0" speed="27.78" length="3.43" shape="1183.05,1084.65 1182.04,1085.11 1181.21,1085.21 1180.55,1084.96 1180.06,1084.35"/>
+ </edge>
+ <edge id=":1168929558_6" function="internal">
+ <lane id=":1168929558_6_0" index="0" speed="27.78" length="4.51" shape="1185.98,1081.42 1184.48,1085.68"/>
+ </edge>
+ <edge id=":1168929558_7" function="internal">
+ <lane id=":1168929558_7_0" index="0" speed="27.78" length="4.09" shape="1183.00,1082.85 1183.33,1083.87 1183.17,1084.71 1182.52,1085.36 1181.38,1085.83"/>
+ </edge>
+ <edge id=":1168929558_8" function="internal">
+ <lane id=":1168929558_8_0" index="0" speed="27.78" length="2.41" shape="1183.00,1082.85 1182.83,1084.33 1182.28,1085.07"/>
+ </edge>
+ <edge id=":1168929558_10" function="internal">
+ <lane id=":1168929558_10_0" index="0" speed="27.78" length="2.41" shape="1182.28,1085.07 1181.36,1085.08 1180.06,1084.35"/>
+ </edge>
+ <edge id=":1168929562_0" function="internal">
+ <lane id=":1168929562_0_0" index="0" speed="27.78" length="3.36" shape="1176.66,1091.21 1176.09,1089.96 1175.87,1089.07 1176.01,1088.55 1176.50,1088.39"/>
+ </edge>
+ <edge id=":1168929562_1" function="internal">
+ <lane id=":1168929562_1_0" index="0" speed="27.78" length="8.19" shape="1176.66,1091.21 1172.87,1083.96"/>
+ </edge>
+ <edge id=":1168929562_2" function="internal">
+ <lane id=":1168929562_2_0" index="0" speed="27.78" length="8.19" shape="1179.59,1089.69 1175.79,1082.43"/>
+ </edge>
+ <edge id=":1168929562_3" function="internal">
+ <lane id=":1168929562_3_0" index="0" speed="27.78" length="5.19" shape="1180.93,1085.69 1176.50,1088.39"/>
+ </edge>
+ <edge id=":1168929562_4" function="internal">
+ <lane id=":1168929562_4_0" index="0" speed="27.78" length="6.09" shape="1180.93,1085.69 1175.79,1082.43"/>
+ </edge>
+ <edge id=":1168929585_0" function="internal">
+ <lane id=":1168929585_0_0" index="0" speed="25.00" length="4.35" shape="1173.02,1023.64 1173.90,1025.33 1174.52,1026.54 1174.89,1027.26 1175.02,1027.50"/>
+ </edge>
+ <edge id=":1168929585_1" function="internal">
+ <lane id=":1168929585_1_0" index="0" speed="27.78" length="4.35" shape="1170.68,1027.19 1175.02,1027.50"/>
+ </edge>
+ <edge id=":1168929600_0" function="internal">
+ <lane id=":1168929600_0_0" index="0" speed="25.00" length="7.53" shape="802.83,958.49 803.99,960.32 805.36,961.59 806.93,962.28 808.70,962.41"/>
+ </edge>
+ <edge id=":1168929600_1" function="internal">
+ <lane id=":1168929600_1_0" index="0" speed="27.78" length="8.71" shape="802.83,958.49 806.90,966.19"/>
+ </edge>
+ <edge id=":1168929600_2" function="internal">
+ <lane id=":1168929600_2_0" index="0" speed="27.78" length="8.82" shape="799.88,959.98 804.00,967.77"/>
+ </edge>
+ <edge id=":1168929600_3" function="internal">
+ <lane id=":1168929600_3_0" index="0" speed="27.78" length="8.93" shape="796.93,961.47 801.11,969.36"/>
+ </edge>
+ <edge id=":1168929600_4" function="internal">
+ <lane id=":1168929600_4_0" index="0" speed="22.22" length="13.90" shape="795.39,965.61 798.46,963.90 801.68,963.04 805.09,962.66 808.70,962.41"/>
+ </edge>
+ <edge id=":1168929600_5" function="internal">
+ <lane id=":1168929600_5_0" index="0" speed="25.00" length="3.35" shape="795.39,965.61 797.91,964.27 798.41,964.25"/>
+ </edge>
+ <edge id=":1168929600_7" function="internal">
+ <lane id=":1168929600_7_0" index="0" speed="25.00" length="7.14" shape="798.41,964.25 800.18,964.18 802.21,965.35 804.00,967.77"/>
+ </edge>
+ <edge id=":1168929600_6" function="internal">
+ <lane id=":1168929600_6_0" index="0" speed="25.00" length="7.74" shape="795.39,965.61 796.73,965.11 798.12,965.57 799.58,966.99 801.11,969.36"/>
+ </edge>
+ <edge id=":1168929613_0" function="internal">
+ <lane id=":1168929613_0_0" index="0" speed="27.78" length="3.40" shape="1138.79,1060.29 1138.59,1056.89"/>
+ </edge>
+ <edge id=":1168929613_1" function="internal">
+ <lane id=":1168929613_1_0" index="0" speed="25.00" length="4.98" shape="1135.18,1060.30 1136.66,1059.39 1137.72,1058.52 1138.36,1057.69 1138.59,1056.89"/>
+ </edge>
+ <edge id=":1168929634_0" function="internal">
+ <lane id=":1168929634_0_0" index="0" speed="27.78" length="4.55" shape="1149.84,1035.06 1151.24,1030.73"/>
+ </edge>
+ <edge id=":1168929634_1" function="internal">
+ <lane id=":1168929634_1_0" index="0" speed="27.78" length="3.86" shape="1152.71,1033.42 1152.54,1032.73 1152.82,1032.03 1153.56,1031.34 1154.75,1030.65"/>
+ </edge>
+ <edge id=":1168929634_2" function="internal">
+ <lane id=":1168929634_2_0" index="0" speed="27.78" length="2.41" shape="1152.71,1033.42 1152.90,1031.95 1153.45,1031.21"/>
+ </edge>
+ <edge id=":1168929634_9" function="internal">
+ <lane id=":1168929634_9_0" index="0" speed="27.78" length="2.41" shape="1153.45,1031.21 1154.37,1031.21 1155.67,1031.95"/>
+ </edge>
+ <edge id=":1168929634_3" function="internal">
+ <lane id=":1168929634_3_0" index="0" speed="27.78" length="4.19" shape="1157.09,1027.67 1157.23,1028.41 1156.89,1029.15 1156.06,1029.90 1154.75,1030.65"/>
+ </edge>
+ <edge id=":1168929634_4" function="internal">
+ <lane id=":1168929634_4_0" index="0" speed="27.78" length="4.45" shape="1154.15,1029.16 1158.47,1030.21"/>
+ </edge>
+ <edge id=":1168929634_5" function="internal">
+ <lane id=":1168929634_5_0" index="0" speed="27.78" length="2.41" shape="1154.15,1029.16 1154.01,1030.64 1153.48,1031.40"/>
+ </edge>
+ <edge id=":1168929634_10" function="internal">
+ <lane id=":1168929634_10_0" index="0" speed="27.78" length="2.41" shape="1153.48,1031.40 1152.56,1031.43 1151.24,1030.73"/>
+ </edge>
+ <edge id=":1168929634_6" function="internal">
+ <lane id=":1168929634_6_0" index="0" speed="27.78" length="4.79" shape="1153.05,1031.54 1148.31,1032.25"/>
+ </edge>
+ <edge id=":1168929634_7" function="internal">
+ <lane id=":1168929634_7_0" index="0" speed="27.78" length="1.92" shape="1153.05,1031.54 1154.75,1030.65"/>
+ </edge>
+ <edge id=":1168929634_8" function="internal">
+ <lane id=":1168929634_8_0" index="0" speed="27.78" length="3.07" shape="1153.05,1031.54 1153.86,1031.13 1154.57,1031.06 1155.17,1031.34 1155.67,1031.95"/>
+ </edge>
+ <edge id=":1168929652_0" function="internal">
+ <lane id=":1168929652_0_0" index="0" speed="15.28" length="7.91" shape="768.35,994.62 766.52,992.55 764.86,991.13 763.38,990.36 762.09,990.25"/>
+ </edge>
+ <edge id=":1168929652_1" function="internal">
+ <lane id=":1168929652_1_0" index="0" speed="15.28" length="13.64" shape="768.35,994.62 766.23,991.12 766.13,988.40 768.05,986.47 771.98,985.32"/>
+ </edge>
+ <edge id=":1168929652_2" function="internal">
+ <lane id=":1168929652_2_0" index="0" speed="8.33" length="4.82" shape="768.35,994.62 768.22,993.14 768.61,992.30 769.51,992.11 770.92,992.56"/>
+ </edge>
+ <edge id=":1168929652_3" function="internal">
+ <lane id=":1168929652_3_0" index="0" speed="15.28" length="5.83" shape="772.48,988.58 770.80,989.07 769.98,989.90 770.02,991.06 770.92,992.56"/>
+ </edge>
+ <edge id=":1168929652_4" function="internal">
+ <lane id=":1168929652_4_0" index="0" speed="22.22" length="10.52" shape="772.48,988.58 769.46,989.04 767.28,989.37 765.09,989.73 762.09,990.25"/>
+ </edge>
+ <edge id=":1168929652_5" function="internal">
+ <lane id=":1168929652_5_0" index="0" speed="22.22" length="2.41" shape="772.48,988.58 771.13,987.95 770.60,987.20"/>
+ </edge>
+ <edge id=":1168929652_9" function="internal">
+ <lane id=":1168929652_9_0" index="0" speed="22.22" length="2.41" shape="770.60,987.20 770.88,986.32 771.98,985.32"/>
+ </edge>
+ <edge id=":1168929652_6" function="internal">
+ <lane id=":1168929652_6_0" index="0" speed="22.22" length="10.61" shape="761.51,987.00 764.53,986.48 766.74,986.11 768.95,985.78 771.98,985.32"/>
+ </edge>
+ <edge id=":1168929652_7" function="internal">
+ <lane id=":1168929652_7_0" index="0" speed="15.28" length="6.85" shape="761.51,987.00 763.72,987.06 766.03,988.01 767.73,989.30"/>
+ </edge>
+ <edge id=":1168929652_10" function="internal">
+ <lane id=":1168929652_10_0" index="0" speed="15.28" length="4.58" shape="767.73,989.30 768.43,989.84 770.92,992.56"/>
+ </edge>
+ <edge id=":1168929652_8" function="internal">
+ <lane id=":1168929652_8_0" index="0" speed="22.22" length="2.41" shape="761.51,987.00 762.87,987.60 763.42,988.34"/>
+ </edge>
+ <edge id=":1168929652_11" function="internal">
+ <lane id=":1168929652_11_0" index="0" speed="22.22" length="2.41" shape="763.42,988.34 763.16,989.22 762.09,990.25"/>
+ </edge>
+ <edge id=":1168929657_0" function="internal">
+ <lane id=":1168929657_0_0" index="0" speed="27.78" length="3.01" shape="1200.15,1044.81 1199.09,1045.33 1198.29,1045.56 1197.75,1045.50 1197.48,1045.15"/>
+ </edge>
+ <edge id=":1168929657_1" function="internal">
+ <lane id=":1168929657_1_0" index="0" speed="27.78" length="7.55" shape="1198.54,1041.93 1194.24,1048.14"/>
+ </edge>
+ <edge id=":1168929657_2" function="internal">
+ <lane id=":1168929657_2_0" index="0" speed="27.78" length="2.41" shape="1198.54,1041.93 1197.06,1041.82 1196.30,1041.30"/>
+ </edge>
+ <edge id=":1168929657_9" function="internal">
+ <lane id=":1168929657_9_0" index="0" speed="27.78" length="2.41" shape="1196.30,1041.30 1196.26,1040.38 1196.93,1039.05"/>
+ </edge>
+ <edge id=":1168929657_3" function="internal">
+ <lane id=":1168929657_3_0" index="0" speed="27.78" length="3.74" shape="1191.86,1037.15 1192.29,1037.33 1193.02,1037.22 1194.03,1036.84 1195.32,1036.17"/>
+ </edge>
+ <edge id=":1168929657_4" function="internal">
+ <lane id=":1168929657_4_0" index="0" speed="27.78" length="9.78" shape="1191.86,1037.15 1197.48,1045.15"/>
+ </edge>
+ <edge id=":1168929657_5" function="internal">
+ <lane id=":1168929657_5_0" index="0" speed="27.78" length="2.21" shape="1191.86,1037.15 1192.06,1039.36"/>
+ </edge>
+ <edge id=":1168929657_10" function="internal">
+ <lane id=":1168929657_10_0" index="0" speed="27.78" length="5.94" shape="1192.06,1039.36 1192.62,1045.27"/>
+ </edge>
+ <edge id=":1168929657_6" function="internal">
+ <lane id=":1168929657_6_0" index="0" speed="27.78" length="7.58" shape="1189.37,1039.52 1196.93,1039.05"/>
+ </edge>
+ <edge id=":1168929657_7" function="internal">
+ <lane id=":1168929657_7_0" index="0" speed="27.78" length="4.23" shape="1190.99,1042.40 1193.23,1041.53 1195.05,1041.71"/>
+ </edge>
+ <edge id=":1168929657_11" function="internal">
+ <lane id=":1168929657_11_0" index="0" speed="27.78" length="4.32" shape="1195.05,1041.71 1196.47,1042.91 1197.48,1045.15"/>
+ </edge>
+ <edge id=":1168929657_8" function="internal">
+ <lane id=":1168929657_8_0" index="0" speed="27.78" length="2.41" shape="1190.99,1042.40 1192.48,1042.51 1193.24,1043.02"/>
+ </edge>
+ <edge id=":1168929657_12" function="internal">
+ <lane id=":1168929657_12_0" index="0" speed="27.78" length="2.41" shape="1193.24,1043.02 1193.29,1043.94 1192.62,1045.27"/>
+ </edge>
+ <edge id=":1168929659_0" function="internal">
+ <lane id=":1168929659_0_0" index="0" speed="16.67" length="3.45" shape="1192.82,1081.57 1192.01,1080.35 1191.47,1079.44 1191.20,1078.85 1191.20,1078.57"/>
+ </edge>
+ <edge id=":1168929659_1" function="internal">
+ <lane id=":1168929659_1_0" index="0" speed="5.56" length="6.26" shape="1192.82,1081.57 1189.25,1076.43"/>
+ </edge>
+ <edge id=":1168929659_2" function="internal">
+ <lane id=":1168929659_2_0" index="0" speed="5.56" length="4.81" shape="1192.82,1081.57 1192.80,1080.08 1193.25,1079.28 1194.17,1079.15 1195.54,1079.71"/>
+ </edge>
+ <edge id=":1168929659_3" function="internal">
+ <lane id=":1168929659_3_0" index="0" speed="16.67" length="3.94" shape="1192.17,1077.69 1195.54,1079.71"/>
+ </edge>
+ <edge id=":1168929659_4" function="internal">
+ <lane id=":1168929659_4_0" index="0" speed="27.78" length="1.30" shape="1192.17,1077.69 1191.20,1078.57"/>
+ </edge>
+ <edge id=":1168929659_5" function="internal">
+ <lane id=":1168929659_5_0" index="0" speed="16.67" length="3.72" shape="1192.17,1077.69 1191.57,1078.10 1190.89,1078.03 1190.11,1077.47 1189.25,1076.43"/>
+ </edge>
+ <edge id=":1168929659_6" function="internal">
+ <lane id=":1168929659_6_0" index="0" speed="5.56" length="6.32" shape="1191.94,1074.52 1195.54,1079.71"/>
+ </edge>
+ <edge id=":1168929659_7" function="internal">
+ <lane id=":1168929659_7_0" index="0" speed="16.67" length="4.57" shape="1191.94,1074.52 1192.44,1075.54 1192.48,1076.56 1192.07,1077.56 1191.20,1078.57"/>
+ </edge>
+ <edge id=":1168929659_8" function="internal">
+ <lane id=":1168929659_8_0" index="0" speed="5.56" length="4.82" shape="1191.94,1074.52 1191.98,1076.00 1191.55,1076.82 1190.64,1076.96 1189.25,1076.43"/>
+ </edge>
+ <edge id=":1168929661_0" function="internal">
+ <lane id=":1168929661_0_0" index="0" speed="5.56" length="7.95" shape="1473.81,1587.87 1470.11,1580.83"/>
+ </edge>
+ <edge id=":1168929661_1" function="internal">
+ <lane id=":1168929661_1_0" index="0" speed="5.56" length="9.18" shape="1473.81,1587.87 1473.17,1585.78 1473.53,1583.87 1474.91,1582.14 1477.29,1580.59"/>
+ </edge>
+ <edge id=":1168929661_2" function="internal">
+ <lane id=":1168929661_2_0" index="0" speed="5.56" length="5.05" shape="1473.81,1587.87 1474.43,1586.44 1475.21,1585.86 1476.13,1586.13 1477.21,1587.26"/>
+ </edge>
+ <edge id=":1168929661_3" function="internal">
+ <lane id=":1168929661_3_0" index="0" speed="5.56" length="4.62" shape="1478.78,1583.53 1477.64,1584.29 1477.00,1585.17 1476.86,1586.16 1477.21,1587.26"/>
+ </edge>
+ <edge id=":1168929661_4" function="internal">
+ <lane id=":1168929661_4_0" index="0" speed="5.56" length="10.32" shape="1478.78,1583.53 1476.09,1584.45 1473.75,1584.31 1471.76,1583.10 1470.11,1580.83"/>
+ </edge>
+ <edge id=":1168929661_5" function="internal">
+ <lane id=":1168929661_5_0" index="0" speed="5.56" length="4.82" shape="1478.78,1583.53 1477.30,1583.35 1476.56,1582.80 1476.56,1581.88 1477.29,1580.59"/>
+ </edge>
+ <edge id=":1168929661_6" function="internal">
+ <lane id=":1168929661_6_0" index="0" speed="5.56" length="5.06" shape="1473.03,1579.29 1473.83,1580.40 1474.81,1580.98 1475.96,1581.04 1477.29,1580.59"/>
+ </edge>
+ <edge id=":1168929661_7" function="internal">
+ <lane id=":1168929661_7_0" index="0" speed="5.56" length="8.99" shape="1473.03,1579.29 1477.21,1587.26"/>
+ </edge>
+ <edge id=":1168929661_8" function="internal">
+ <lane id=":1168929661_8_0" index="0" speed="5.56" length="4.82" shape="1473.03,1579.29 1472.88,1580.77 1472.34,1581.52 1471.42,1581.54 1470.11,1580.83"/>
+ </edge>
+ <edge id=":1212941056_0" function="internal">
+ <lane id=":1212941056_0_0" index="0" speed="22.22" length="5.35" shape="733.62,1653.37 733.60,1654.89 734.09,1655.93 735.10,1656.47 736.63,1656.53"/>
+ </edge>
+ <edge id=":1212941056_1" function="internal">
+ <lane id=":1212941056_1_0" index="0" speed="22.22" length="3.59" shape="733.62,1653.37 733.06,1656.91"/>
+ </edge>
+ <edge id=":1212941056_2" function="internal">
+ <lane id=":1212941056_2_0" index="0" speed="22.22" length="7.14" shape="729.53,1657.28 736.63,1656.53"/>
+ </edge>
+ <edge id=":1212941056_3" function="internal">
+ <lane id=":1212941056_3_0" index="0" speed="22.22" length="3.55" shape="729.53,1657.28 731.07,1657.12 732.18,1657.00 732.84,1656.93 733.06,1656.91"/>
+ </edge>
+ <edge id=":1212941077_0" function="internal">
+ <lane id=":1212941077_0_0" index="0" speed="22.22" length="5.39" shape="735.15,1667.10 733.66,1666.65 732.53,1666.86 731.75,1667.70 731.32,1669.18"/>
+ </edge>
+ <edge id=":1212941077_1" function="internal">
+ <lane id=":1212941077_1_0" index="0" speed="22.22" length="7.30" shape="735.15,1667.10 728.52,1664.05"/>
+ </edge>
+ <edge id=":1212941077_2" function="internal">
+ <lane id=":1212941077_2_0" index="0" speed="22.22" length="3.96" shape="731.88,1665.26 731.32,1669.18"/>
+ </edge>
+ <edge id=":1212941077_3" function="internal">
+ <lane id=":1212941077_3_0" index="0" speed="22.22" length="3.61" shape="731.88,1665.26 731.65,1665.30 731.02,1665.11 729.97,1664.69 728.52,1664.05"/>
+ </edge>
+ <edge id=":1212960877_0" function="internal">
+ <lane id=":1212960877_0_0" index="0" speed="22.22" length="7.40" shape="823.67,1633.55 820.30,1626.97"/>
+ </edge>
+ <edge id=":1212960877_1" function="internal">
+ <lane id=":1212960877_1_0" index="0" speed="13.89" length="5.56" shape="823.67,1633.55 823.17,1631.70 823.62,1629.95 824.82,1628.57"/>
+ </edge>
+ <edge id=":1212960877_9" function="internal">
+ <lane id=":1212960877_9_0" index="0" speed="13.89" length="3.14" shape="824.82,1628.57 825.04,1628.32 827.41,1626.81"/>
+ </edge>
+ <edge id=":1212960877_2" function="internal">
+ <lane id=":1212960877_2_0" index="0" speed="22.22" length="2.41" shape="823.67,1633.55 823.84,1632.08 824.38,1631.33"/>
+ </edge>
+ <edge id=":1212960877_10" function="internal">
+ <lane id=":1212960877_10_0" index="0" speed="22.22" length="2.41" shape="824.38,1631.33 825.31,1631.32 826.61,1632.05"/>
+ </edge>
+ <edge id=":1212960877_3" function="internal">
+ <lane id=":1212960877_3_0" index="0" speed="13.89" length="3.48" shape="828.91,1629.75 827.73,1630.42 826.95,1631.03 826.58,1631.57 826.61,1632.05"/>
+ </edge>
+ <edge id=":1212960877_4" function="internal">
+ <lane id=":1212960877_4_0" index="0" speed="13.89" length="10.32" shape="828.91,1629.75 826.23,1630.67 823.91,1630.51 821.93,1629.28 820.30,1626.97"/>
+ </edge>
+ <edge id=":1212960877_5" function="internal">
+ <lane id=":1212960877_5_0" index="0" speed="5.56" length="4.82" shape="828.91,1629.75 827.43,1629.58 826.69,1629.03 826.68,1628.11 827.41,1626.81"/>
+ </edge>
+ <edge id=":1212960877_6" function="internal">
+ <lane id=":1212960877_6_0" index="0" speed="22.22" length="7.40" shape="823.23,1625.46 826.61,1632.05"/>
+ </edge>
+ <edge id=":1212960877_7" function="internal">
+ <lane id=":1212960877_7_0" index="0" speed="13.89" length="5.00" shape="823.23,1625.46 824.02,1626.58 824.98,1627.18 826.11,1627.25 827.41,1626.81"/>
+ </edge>
+ <edge id=":1212960877_8" function="internal">
+ <lane id=":1212960877_8_0" index="0" speed="22.22" length="2.41" shape="823.23,1625.46 823.06,1626.94 822.52,1627.68"/>
+ </edge>
+ <edge id=":1212960877_11" function="internal">
+ <lane id=":1212960877_11_0" index="0" speed="22.22" length="2.41" shape="822.52,1627.68 821.59,1627.69 820.30,1626.97"/>
+ </edge>
+ <edge id=":1212960879_0" function="internal">
+ <lane id=":1212960879_0_0" index="0" speed="22.22" length="5.29" shape="829.47,1644.88 827.06,1640.17"/>
+ </edge>
+ <edge id=":1212960879_1" function="internal">
+ <lane id=":1212960879_1_0" index="0" speed="15.28" length="7.23" shape="829.47,1644.88 828.46,1641.93 828.72,1639.50 829.75,1638.20"/>
+ </edge>
+ <edge id=":1212960879_9" function="internal">
+ <lane id=":1212960879_9_0" index="0" speed="15.28" length="3.91" shape="829.75,1638.20 830.24,1637.59 833.04,1636.19"/>
+ </edge>
+ <edge id=":1212960879_2" function="internal">
+ <lane id=":1212960879_2_0" index="0" speed="22.22" length="2.41" shape="829.47,1644.88 829.64,1643.41 830.19,1642.66"/>
+ </edge>
+ <edge id=":1212960879_10" function="internal">
+ <lane id=":1212960879_10_0" index="0" speed="22.22" length="2.41" shape="830.19,1642.66 831.11,1642.66 832.41,1643.38"/>
+ </edge>
+ <edge id=":1212960879_3" function="internal">
+ <lane id=":1212960879_3_0" index="0" speed="15.28" length="5.19" shape="834.07,1639.33 832.77,1639.98 832.06,1640.87 831.94,1642.00 832.41,1643.38"/>
+ </edge>
+ <edge id=":1212960879_4" function="internal">
+ <lane id=":1212960879_4_0" index="0" speed="15.28" length="7.30" shape="834.07,1639.33 831.24,1640.17 829.13,1640.59 827.74,1640.59 827.06,1640.17"/>
+ </edge>
+ <edge id=":1212960879_5" function="internal">
+ <lane id=":1212960879_5_0" index="0" speed="8.33" length="4.82" shape="834.07,1639.33 832.64,1638.93 831.99,1638.28 832.12,1637.36 833.04,1636.19"/>
+ </edge>
+ <edge id=":1212960879_6" function="internal">
+ <lane id=":1212960879_6_0" index="0" speed="15.28" length="3.95" shape="829.24,1637.19 829.52,1637.21 830.24,1637.05 831.42,1636.71 833.04,1636.19"/>
+ </edge>
+ <edge id=":1212960879_7" function="internal">
+ <lane id=":1212960879_7_0" index="0" speed="22.22" length="6.95" shape="829.24,1637.19 832.41,1643.38"/>
+ </edge>
+ <edge id=":1212960879_8" function="internal">
+ <lane id=":1212960879_8_0" index="0" speed="22.22" length="2.70" shape="829.24,1637.19 829.81,1638.75 829.64,1639.77"/>
+ </edge>
+ <edge id=":1212960879_11" function="internal">
+ <lane id=":1212960879_11_0" index="0" speed="22.22" length="2.70" shape="829.64,1639.77 828.72,1640.24 827.06,1640.17"/>
+ </edge>
+ <edge id=":1213368991_0" function="internal">
+ <lane id=":1213368991_0_0" index="0" speed="25.00" length="3.24" shape="735.52,1662.53 734.12,1662.36 733.12,1662.20 732.53,1662.07 732.34,1661.96"/>
+ </edge>
+ <edge id=":1213368991_1" function="internal">
+ <lane id=":1213368991_1_0" index="0" speed="27.78" length="6.36" shape="735.52,1662.53 729.20,1661.79"/>
+ </edge>
+ <edge id=":1213368991_2" function="internal">
+ <lane id=":1213368991_2_0" index="0" speed="27.78" length="2.41" shape="735.52,1662.53 734.38,1661.57 734.07,1660.70"/>
+ </edge>
+ <edge id=":1213368991_9" function="internal">
+ <lane id=":1213368991_9_0" index="0" speed="27.78" length="2.41" shape="734.07,1660.70 734.57,1659.93 735.90,1659.25"/>
+ </edge>
+ <edge id=":1213368991_3" function="internal">
+ <lane id=":1213368991_3_0" index="0" speed="25.00" length="3.89" shape="732.56,1660.42 732.85,1659.78 733.50,1659.37 734.52,1659.19 735.90,1659.25"/>
+ </edge>
+ <edge id=":1213368991_4" function="internal">
+ <lane id=":1213368991_4_0" index="0" speed="22.22" length="1.55" shape="732.56,1660.42 732.34,1661.96"/>
+ </edge>
+ <edge id=":1213368991_5" function="internal">
+ <lane id=":1213368991_5_0" index="0" speed="25.00" length="4.02" shape="732.56,1660.42 732.26,1661.16 731.60,1661.63 730.58,1661.84 729.20,1661.79"/>
+ </edge>
+ <edge id=":1213368991_6" function="internal">
+ <lane id=":1213368991_6_0" index="0" speed="27.78" length="6.35" shape="729.60,1658.51 735.90,1659.25"/>
+ </edge>
+ <edge id=":1213368991_7" function="internal">
+ <lane id=":1213368991_7_0" index="0" speed="25.00" length="5.05" shape="729.60,1658.51 730.96,1658.87 731.87,1659.56 732.33,1660.59 732.34,1661.96"/>
+ </edge>
+ <edge id=":1213368991_8" function="internal">
+ <lane id=":1213368991_8_0" index="0" speed="27.78" length="2.41" shape="729.60,1658.51 730.73,1659.48 731.04,1660.35"/>
+ </edge>
+ <edge id=":1213368991_10" function="internal">
+ <lane id=":1213368991_10_0" index="0" speed="27.78" length="2.41" shape="731.04,1660.35 730.53,1661.12 729.20,1661.79"/>
+ </edge>
+ <edge id=":1224074526_0" function="internal">
+ <lane id=":1224074526_0_0" index="0" speed="22.22" length="4.82" shape="562.99,1066.69 561.64,1066.07 561.11,1065.32 561.39,1064.44 562.49,1063.43"/>
+ </edge>
+ <edge id=":1224074527_0" function="internal">
+ <lane id=":1224074527_0_0" index="0" speed="22.22" length="4.82" shape="607.29,1152.11 605.81,1151.94 605.07,1151.39 605.06,1150.46 605.79,1149.17"/>
+ </edge>
+ <edge id=":1224074532_0" function="internal">
+ <lane id=":1224074532_0_0" index="0" speed="22.22" length="8.98" shape="691.87,1109.37 683.69,1113.08"/>
+ </edge>
+ <edge id=":1224074532_1" function="internal">
+ <lane id=":1224074532_1_0" index="0" speed="13.89" length="6.67" shape="691.87,1109.37 689.30,1109.95 687.04,1109.58 685.61,1108.59"/>
+ </edge>
+ <edge id=":1224074532_9" function="internal">
+ <lane id=":1224074532_9_0" index="0" speed="13.89" length="3.41" shape="685.61,1108.59 685.11,1108.25 683.49,1105.96"/>
+ </edge>
+ <edge id=":1224074532_2" function="internal">
+ <lane id=":1224074532_2_0" index="0" speed="22.22" length="2.41" shape="691.87,1109.37 690.42,1109.05 689.74,1108.43"/>
+ </edge>
+ <edge id=":1224074532_10" function="internal">
+ <lane id=":1224074532_10_0" index="0" speed="22.22" length="2.41" shape="689.74,1108.43 689.82,1107.51 690.68,1106.29"/>
+ </edge>
+ <edge id=":1224074532_3" function="internal">
+ <lane id=":1224074532_3_0" index="0" speed="13.89" length="5.19" shape="686.41,1104.42 687.25,1105.64 688.25,1106.35 689.39,1106.57 690.68,1106.29"/>
+ </edge>
+ <edge id=":1224074532_4" function="internal">
+ <lane id=":1224074532_4_0" index="0" speed="13.89" length="10.37" shape="686.41,1104.42 687.36,1107.10 687.23,1109.43 686.00,1111.43 683.69,1113.08"/>
+ </edge>
+ <edge id=":1224074532_5" function="internal">
+ <lane id=":1224074532_5_0" index="0" speed="5.56" length="4.82" shape="686.41,1104.42 686.25,1105.90 685.72,1106.65 684.80,1106.67 683.49,1105.96"/>
+ </edge>
+ <edge id=":1224074532_6" function="internal">
+ <lane id=":1224074532_6_0" index="0" speed="13.89" length="5.01" shape="682.17,1110.14 683.29,1109.35 683.89,1108.38 683.95,1107.25 683.49,1105.96"/>
+ </edge>
+ <edge id=":1224074532_7" function="internal">
+ <lane id=":1224074532_7_0" index="0" speed="22.22" length="9.34" shape="682.17,1110.14 690.68,1106.29"/>
+ </edge>
+ <edge id=":1224074532_8" function="internal">
+ <lane id=":1224074532_8_0" index="0" speed="22.22" length="2.41" shape="682.17,1110.14 683.65,1110.31 684.40,1110.85"/>
+ </edge>
+ <edge id=":1224074532_11" function="internal">
+ <lane id=":1224074532_11_0" index="0" speed="22.22" length="2.41" shape="684.40,1110.85 684.41,1111.77 683.69,1113.08"/>
+ </edge>
+ <edge id=":1224074533_0" function="internal">
+ <lane id=":1224074533_0_0" index="0" speed="22.22" length="8.72" shape="785.28,1085.55 793.88,1084.14"/>
+ </edge>
+ <edge id=":1224074533_1" function="internal">
+ <lane id=":1224074533_1_0" index="0" speed="22.22" length="2.41" shape="785.28,1085.55 786.60,1086.23 787.10,1087.01"/>
+ </edge>
+ <edge id=":1224074533_4" function="internal">
+ <lane id=":1224074533_4_0" index="0" speed="22.22" length="2.41" shape="787.10,1087.01 786.78,1087.87 785.64,1088.83"/>
+ </edge>
+ <edge id=":1224074533_2" function="internal">
+ <lane id=":1224074533_2_0" index="0" speed="22.22" length="3.96" shape="784.50,1092.62 785.05,1090.95 785.42,1089.77 785.62,1089.06 785.64,1088.83"/>
+ </edge>
+ <edge id=":1224074533_3" function="internal">
+ <lane id=":1224074533_3_0" index="0" speed="22.22" length="13.04" shape="784.50,1092.62 785.78,1090.01 787.77,1087.73 790.47,1085.78 793.88,1084.14"/>
+ </edge>
+ <edge id=":1224074534_0" function="internal">
+ <lane id=":1224074534_0_0" index="0" speed="22.22" length="5.56" shape="781.79,1089.26 776.31,1090.16"/>
+ </edge>
+ <edge id=":1224074534_1" function="internal">
+ <lane id=":1224074534_1_0" index="0" speed="15.28" length="4.66" shape="781.79,1089.26 780.10,1088.97 779.07,1087.64 778.88,1086.40"/>
+ </edge>
+ <edge id=":1224074534_9" function="internal">
+ <lane id=":1224074534_9_0" index="0" speed="15.28" length="4.56" shape="778.88,1086.40 778.71,1085.27 779.01,1081.87"/>
+ </edge>
+ <edge id=":1224074534_2" function="internal">
+ <lane id=":1224074534_2_0" index="0" speed="22.22" length="2.41" shape="781.79,1089.26 780.47,1088.58 779.97,1087.81"/>
+ </edge>
+ <edge id=":1224074534_10" function="internal">
+ <lane id=":1224074534_10_0" index="0" speed="22.22" length="2.41" shape="779.97,1087.81 780.29,1086.94 781.43,1085.98"/>
+ </edge>
+ <edge id=":1224074534_3" function="internal">
+ <lane id=":1224074534_3_0" index="0" speed="15.28" length="3.71" shape="782.27,1082.39 782.00,1083.95 781.77,1085.07 781.58,1085.75 781.43,1085.98"/>
+ </edge>
+ <edge id=":1224074534_4" function="internal">
+ <lane id=":1224074534_4_0" index="0" speed="15.28" length="10.46" shape="782.27,1082.39 781.48,1085.45 780.22,1087.76 778.50,1089.33 776.31,1090.16"/>
+ </edge>
+ <edge id=":1224074534_5" function="internal">
+ <lane id=":1224074534_5_0" index="0" speed="8.33" length="4.82" shape="782.27,1082.39 781.26,1083.48 780.38,1083.76 779.63,1083.22 779.01,1081.87"/>
+ </edge>
+ <edge id=":1224074534_6" function="internal">
+ <lane id=":1224074534_6_0" index="0" speed="15.28" length="6.42" shape="775.70,1086.91 776.87,1086.42 777.81,1085.41 778.53,1083.89 779.01,1081.87"/>
+ </edge>
+ <edge id=":1224074534_7" function="internal">
+ <lane id=":1224074534_7_0" index="0" speed="22.22" length="5.81" shape="775.70,1086.91 781.43,1085.98"/>
+ </edge>
+ <edge id=":1224074534_8" function="internal">
+ <lane id=":1224074534_8_0" index="0" speed="22.22" length="2.41" shape="775.70,1086.91 777.06,1087.50 777.62,1088.23"/>
+ </edge>
+ <edge id=":1224074534_11" function="internal">
+ <lane id=":1224074534_11_0" index="0" speed="22.22" length="2.41" shape="777.62,1088.23 777.37,1089.12 776.31,1090.16"/>
+ </edge>
+ <edge id=":1224074535_0" function="internal">
+ <lane id=":1224074535_0_0" index="0" speed="13.89" length="6.64" shape="657.47,1056.62 656.31,1054.76 655.11,1053.49 653.87,1052.81 652.59,1052.71"/>
+ </edge>
+ <edge id=":1224074535_1" function="internal">
+ <lane id=":1224074535_1_0" index="0" speed="13.89" length="12.19" shape="657.47,1056.62 656.28,1053.30 656.61,1050.75 658.46,1048.96 661.83,1047.93"/>
+ </edge>
+ <edge id=":1224074535_2" function="internal">
+ <lane id=":1224074535_2_0" index="0" speed="5.56" length="4.82" shape="657.47,1056.62 657.62,1055.14 658.16,1054.39 659.08,1054.37 660.39,1055.08"/>
+ </edge>
+ <edge id=":1224074535_3" function="internal">
+ <lane id=":1224074535_3_0" index="0" speed="13.89" length="5.46" shape="662.34,1051.19 660.83,1051.65 660.00,1052.45 659.86,1053.60 660.39,1055.08"/>
+ </edge>
+ <edge id=":1224074535_4" function="internal">
+ <lane id=":1224074535_4_0" index="0" speed="22.22" length="9.87" shape="662.34,1051.19 652.59,1052.71"/>
+ </edge>
+ <edge id=":1224074535_5" function="internal">
+ <lane id=":1224074535_5_0" index="0" speed="22.22" length="2.41" shape="662.34,1051.19 660.99,1050.57 660.45,1049.82"/>
+ </edge>
+ <edge id=":1224074535_9" function="internal">
+ <lane id=":1224074535_9_0" index="0" speed="22.22" length="2.41" shape="660.45,1049.82 660.73,1048.94 661.83,1047.93"/>
+ </edge>
+ <edge id=":1224074535_6" function="internal">
+ <lane id=":1224074535_6_0" index="0" speed="22.22" length="9.87" shape="652.08,1049.45 661.83,1047.93"/>
+ </edge>
+ <edge id=":1224074535_7" function="internal">
+ <lane id=":1224074535_7_0" index="0" speed="13.89" length="6.77" shape="652.08,1049.45 654.45,1049.52 656.62,1050.48 658.10,1051.86"/>
+ </edge>
+ <edge id=":1224074535_10" function="internal">
+ <lane id=":1224074535_10_0" index="0" speed="13.89" length="3.97" shape="658.10,1051.86 658.60,1052.33 660.39,1055.08"/>
+ </edge>
+ <edge id=":1224074535_8" function="internal">
+ <lane id=":1224074535_8_0" index="0" speed="22.22" length="2.41" shape="652.08,1049.45 653.43,1050.08 653.96,1050.83"/>
+ </edge>
+ <edge id=":1224074535_11" function="internal">
+ <lane id=":1224074535_11_0" index="0" speed="22.22" length="2.41" shape="653.96,1050.83 653.68,1051.71 652.59,1052.71"/>
+ </edge>
+ <edge id=":1224080660_0" function="internal">
+ <lane id=":1224080660_0_0" index="0" speed="22.22" length="3.26" shape="662.02,1326.06 662.64,1327.29 663.02,1328.21 663.18,1328.80 663.11,1329.06"/>
+ </edge>
+ <edge id=":1224080660_1" function="internal">
+ <lane id=":1224080660_1_0" index="0" speed="22.22" length="2.41" shape="662.02,1326.06 661.86,1327.54 661.32,1328.28"/>
+ </edge>
+ <edge id=":1224080660_4" function="internal">
+ <lane id=":1224080660_4_0" index="0" speed="22.22" length="2.41" shape="661.32,1328.28 660.40,1328.30 659.10,1327.59"/>
+ </edge>
+ <edge id=":1224080660_2" function="internal">
+ <lane id=":1224080660_2_0" index="0" speed="22.22" length="5.13" shape="657.95,1331.97 659.02,1331.14 659.57,1330.13 659.59,1328.94 659.10,1327.59"/>
+ </edge>
+ <edge id=":1224080660_3" function="internal">
+ <lane id=":1224080660_3_0" index="0" speed="22.22" length="5.92" shape="657.95,1331.97 663.11,1329.06"/>
+ </edge>
+ <edge id=":1224080662_0" function="internal">
+ <lane id=":1224080662_0_0" index="0" speed="22.22" length="0.10" shape="630.37,1226.05 630.36,1226.06"/>
+ </edge>
+ <edge id=":1224080669_0" function="internal">
+ <lane id=":1224080669_0_0" index="0" speed="22.22" length="6.43" shape="522.85,1037.62 521.76,1035.83 520.60,1034.63 519.38,1034.00 518.09,1033.95"/>
+ </edge>
+ <edge id=":1224080669_1" function="internal">
+ <lane id=":1224080669_1_0" index="0" speed="22.22" length="11.96" shape="522.85,1037.62 521.73,1034.37 522.07,1031.85 523.87,1030.04 527.13,1028.96"/>
+ </edge>
+ <edge id=":1224080669_2" function="internal">
+ <lane id=":1224080669_2_0" index="0" speed="22.22" length="4.82" shape="522.85,1037.62 523.02,1036.14 523.57,1035.40 524.49,1035.39 525.79,1036.11"/>
+ </edge>
+ <edge id=":1224080669_3" function="internal">
+ <lane id=":1224080669_3_0" index="0" speed="22.22" length="5.40" shape="527.72,1032.20 526.25,1032.69 525.44,1033.51 525.28,1034.65 525.79,1036.11"/>
+ </edge>
+ <edge id=":1224080669_4" function="internal">
+ <lane id=":1224080669_4_0" index="0" speed="22.22" length="9.79" shape="527.72,1032.20 518.09,1033.95"/>
+ </edge>
+ <edge id=":1224080669_5" function="internal">
+ <lane id=":1224080669_5_0" index="0" speed="22.22" length="2.41" shape="527.72,1032.20 526.35,1031.61 525.80,1030.88"/>
+ </edge>
+ <edge id=":1224080669_9" function="internal">
+ <lane id=":1224080669_9_0" index="0" speed="22.22" length="2.41" shape="525.80,1030.88 526.06,1029.99 527.13,1028.96"/>
+ </edge>
+ <edge id=":1224080669_6" function="internal">
+ <lane id=":1224080669_6_0" index="0" speed="22.22" length="9.79" shape="517.50,1030.71 527.13,1028.96"/>
+ </edge>
+ <edge id=":1224080669_7" function="internal">
+ <lane id=":1224080669_7_0" index="0" speed="22.22" length="6.78" shape="517.50,1030.71 519.91,1030.70 522.10,1031.60 523.57,1032.96"/>
+ </edge>
+ <edge id=":1224080669_10" function="internal">
+ <lane id=":1224080669_10_0" index="0" speed="22.22" length="3.87" shape="523.57,1032.96 524.06,1033.40 525.79,1036.11"/>
+ </edge>
+ <edge id=":1224080669_8" function="internal">
+ <lane id=":1224080669_8_0" index="0" speed="22.22" length="2.41" shape="517.50,1030.71 518.86,1031.30 519.42,1032.03"/>
+ </edge>
+ <edge id=":1224080669_11" function="internal">
+ <lane id=":1224080669_11_0" index="0" speed="22.22" length="2.41" shape="519.42,1032.03 519.16,1032.92 518.09,1033.95"/>
+ </edge>
+ <edge id=":1224080676_0" function="internal">
+ <lane id=":1224080676_0_0" index="0" speed="22.22" length="4.82" shape="506.66,1034.66 506.86,1033.19 507.42,1032.45 508.34,1032.46 509.62,1033.21"/>
+ </edge>
+ <edge id=":1224091971_0" function="internal">
+ <lane id=":1224091971_0_0" index="0" speed="22.22" length="6.56" shape="620.86,1062.27 619.74,1060.43 618.57,1059.18 617.34,1058.50 616.05,1058.42"/>
+ </edge>
+ <edge id=":1224091971_1" function="internal">
+ <lane id=":1224091971_1_0" index="0" speed="22.22" length="12.11" shape="620.86,1062.27 619.72,1058.98 620.08,1056.44 621.93,1054.66 625.26,1053.64"/>
+ </edge>
+ <edge id=":1224091971_2" function="internal">
+ <lane id=":1224091971_2_0" index="0" speed="22.22" length="4.82" shape="620.86,1062.27 621.03,1060.80 621.58,1060.05 622.50,1060.05 623.80,1060.77"/>
+ </edge>
+ <edge id=":1224091971_3" function="internal">
+ <lane id=":1224091971_3_0" index="0" speed="22.22" length="5.43" shape="625.77,1056.90 624.28,1057.35 623.45,1058.15 623.29,1059.29 623.80,1060.77"/>
+ </edge>
+ <edge id=":1224091971_4" function="internal">
+ <lane id=":1224091971_4_0" index="0" speed="22.22" length="9.84" shape="625.77,1056.90 616.05,1058.42"/>
+ </edge>
+ <edge id=":1224091971_5" function="internal">
+ <lane id=":1224091971_5_0" index="0" speed="22.22" length="2.41" shape="625.77,1056.90 624.42,1056.27 623.89,1055.52"/>
+ </edge>
+ <edge id=":1224091971_9" function="internal">
+ <lane id=":1224091971_9_0" index="0" speed="22.22" length="2.41" shape="623.89,1055.52 624.17,1054.64 625.26,1053.64"/>
+ </edge>
+ <edge id=":1224091971_6" function="internal">
+ <lane id=":1224091971_6_0" index="0" speed="22.22" length="9.84" shape="615.54,1055.16 625.26,1053.64"/>
+ </edge>
+ <edge id=":1224091971_7" function="internal">
+ <lane id=":1224091971_7_0" index="0" speed="22.22" length="6.77" shape="615.54,1055.16 617.93,1055.22 620.10,1056.17 621.56,1057.56"/>
+ </edge>
+ <edge id=":1224091971_10" function="internal">
+ <lane id=":1224091971_10_0" index="0" speed="22.22" length="3.94" shape="621.56,1057.56 622.06,1058.02 623.80,1060.77"/>
+ </edge>
+ <edge id=":1224091971_8" function="internal">
+ <lane id=":1224091971_8_0" index="0" speed="22.22" length="2.41" shape="615.54,1055.16 616.89,1055.78 617.43,1056.53"/>
+ </edge>
+ <edge id=":1224091971_11" function="internal">
+ <lane id=":1224091971_11_0" index="0" speed="22.22" length="2.41" shape="617.43,1056.53 617.15,1057.41 616.05,1058.42"/>
+ </edge>
+ <edge id=":1228499918_0" function="internal">
+ <lane id=":1228499918_0_0" index="0" speed="18.06" length="5.01" shape="717.09,2155.57 716.71,2154.26 715.99,2153.38 714.95,2152.95 713.57,2152.96"/>
+ </edge>
+ <edge id=":1228499918_1" function="internal">
+ <lane id=":1228499918_1_0" index="0" speed="22.22" length="9.50" shape="717.09,2155.57 715.72,2146.17"/>
+ </edge>
+ <edge id=":1228499918_2" function="internal">
+ <lane id=":1228499918_2_0" index="0" speed="18.06" length="5.02" shape="713.08,2149.70 714.40,2149.30 715.29,2148.58 715.73,2147.54 715.72,2146.17"/>
+ </edge>
+ <edge id=":1228499918_3" function="internal">
+ <lane id=":1228499918_3_0" index="0" speed="13.89" length="4.82" shape="713.08,2149.70 714.42,2150.33 714.96,2151.08 714.67,2151.96 713.57,2152.96"/>
+ </edge>
+ <edge id=":1228499925_0" function="internal">
+ <lane id=":1228499925_0_0" index="0" speed="13.89" length="4.82" shape="369.05,2202.90 367.71,2202.26 367.19,2201.50 367.48,2200.62 368.59,2199.63"/>
+ </edge>
+ <edge id=":1228499945_0" function="internal">
+ <lane id=":1228499945_0_0" index="0" speed="22.22" length="6.36" shape="701.43,2048.16 700.52,2041.86"/>
+ </edge>
+ <edge id=":1228499945_1" function="internal">
+ <lane id=":1228499945_1_0" index="0" speed="18.06" length="5.19" shape="701.43,2048.16 701.43,2046.73 701.86,2045.64 702.75,2044.86 704.08,2044.41"/>
+ </edge>
+ <edge id=":1228499945_2" function="internal">
+ <lane id=":1228499945_2_0" index="0" speed="18.06" length="5.21" shape="697.84,2045.64 699.18,2045.16 700.07,2044.37 700.52,2043.27 700.52,2041.86"/>
+ </edge>
+ <edge id=":1228499945_3" function="internal">
+ <lane id=":1228499945_3_0" index="0" speed="13.89" length="6.36" shape="697.84,2045.64 704.08,2044.41"/>
+ </edge>
+ <edge id=":1228499957_0" function="internal">
+ <lane id=":1228499957_0_0" index="0" speed="20.83" length="9.90" shape="628.91,2171.03 627.25,2169.06 625.27,2167.76 622.99,2167.12 620.41,2167.15"/>
+ </edge>
+ <edge id=":1228499957_1" function="internal">
+ <lane id=":1228499957_1_0" index="0" speed="27.78" length="13.14" shape="628.91,2171.03 627.02,2168.14 625.33,2165.53 623.66,2162.90 621.82,2159.97"/>
+ </edge>
+ <edge id=":1228499957_2" function="internal">
+ <lane id=":1228499957_2_0" index="0" speed="20.83" length="7.71" shape="628.91,2171.03 627.28,2167.62 627.41,2164.97 628.32,2164.07"/>
+ </edge>
+ <edge id=":1228499957_16" function="internal">
+ <lane id=":1228499957_16_0" index="0" speed="20.83" length="5.15" shape="628.32,2164.07 629.28,2163.11 632.91,2162.01"/>
+ </edge>
+ <edge id=":1228499957_3" function="internal">
+ <lane id=":1228499957_3_0" index="0" speed="27.78" length="2.41" shape="628.91,2171.03 628.92,2169.55 629.39,2168.75"/>
+ </edge>
+ <edge id=":1228499957_17" function="internal">
+ <lane id=":1228499957_17_0" index="0" speed="27.78" length="2.41" shape="629.39,2168.75 630.30,2168.64 631.67,2169.22"/>
+ </edge>
+ <edge id=":1228499957_4" function="internal">
+ <lane id=":1228499957_4_0" index="0" speed="20.83" length="5.63" shape="633.42,2165.27 631.83,2165.75 631.01,2166.57 630.96,2167.72 631.67,2169.22"/>
+ </edge>
+ <edge id=":1228499957_5" function="internal">
+ <lane id=":1228499957_5_0" index="0" speed="13.89" length="13.14" shape="633.42,2165.27 630.00,2165.80 626.92,2166.26 623.84,2166.69 620.41,2167.15"/>
+ </edge>
+ <edge id=":1228499957_6" function="internal">
+ <lane id=":1228499957_6_0" index="0" speed="20.83" length="13.58" shape="633.42,2165.27 629.86,2165.39 626.74,2164.54 624.06,2162.73 621.82,2159.97"/>
+ </edge>
+ <edge id=":1228499957_7" function="internal">
+ <lane id=":1228499957_7_0" index="0" speed="13.89" length="4.82" shape="633.42,2165.27 632.07,2164.65 631.53,2163.90 631.81,2163.02 632.91,2162.01"/>
+ </edge>
+ <edge id=":1228499957_8" function="internal">
+ <lane id=":1228499957_8_0" index="0" speed="20.83" length="9.70" shape="624.62,2158.22 626.22,2160.20 628.14,2161.49 630.37,2162.09 632.91,2162.01"/>
+ </edge>
+ <edge id=":1228499957_9" function="internal">
+ <lane id=":1228499957_9_0" index="0" speed="27.78" length="13.06" shape="624.62,2158.22 626.45,2161.14 628.11,2163.75 629.78,2166.34 631.67,2169.22"/>
+ </edge>
+ <edge id=":1228499957_10" function="internal">
+ <lane id=":1228499957_10_0" index="0" speed="20.83" length="7.66" shape="624.62,2158.22 626.17,2161.68 625.98,2164.32 625.10,2165.16"/>
+ </edge>
+ <edge id=":1228499957_18" function="internal">
+ <lane id=":1228499957_18_0" index="0" speed="20.83" length="5.22" shape="625.10,2165.16 624.06,2166.14 620.41,2167.15"/>
+ </edge>
+ <edge id=":1228499957_11" function="internal">
+ <lane id=":1228499957_11_0" index="0" speed="27.78" length="2.41" shape="624.62,2158.22 624.57,2159.71 624.09,2160.50"/>
+ </edge>
+ <edge id=":1228499957_19" function="internal">
+ <lane id=":1228499957_19_0" index="0" speed="27.78" length="2.41" shape="624.09,2160.50 623.17,2160.58 621.82,2159.97"/>
+ </edge>
+ <edge id=":1228499957_12" function="internal">
+ <lane id=":1228499957_12_0" index="0" speed="20.83" length="5.63" shape="619.98,2163.87 621.58,2163.43 622.42,2162.64 622.50,2161.48 621.82,2159.97"/>
+ </edge>
+ <edge id=":1228499957_13" function="internal">
+ <lane id=":1228499957_13_0" index="0" speed="13.89" length="13.06" shape="619.98,2163.87 623.39,2163.42 626.45,2162.99 629.50,2162.54 632.91,2162.01"/>
+ </edge>
+ <edge id=":1228499957_14" function="internal">
+ <lane id=":1228499957_14_0" index="0" speed="20.83" length="13.61" shape="619.98,2163.87 623.53,2163.84 626.66,2164.72 629.38,2166.51 631.67,2169.22"/>
+ </edge>
+ <edge id=":1228499957_15" function="internal">
+ <lane id=":1228499957_15_0" index="0" speed="13.89" length="4.82" shape="619.98,2163.87 621.31,2164.53 621.83,2165.29 621.53,2166.17 620.41,2167.15"/>
+ </edge>
+ <edge id=":1228499992_0" function="internal">
+ <lane id=":1228499992_0_0" index="0" speed="27.78" length="8.85" shape="569.80,2076.76 565.08,2069.27"/>
+ </edge>
+ <edge id=":1228499992_1" function="internal">
+ <lane id=":1228499992_1_0" index="0" speed="20.83" length="5.35" shape="569.80,2076.76 569.09,2074.80 569.60,2073.19 570.87,2072.27"/>
+ </edge>
+ <edge id=":1228499992_9" function="internal">
+ <lane id=":1228499992_9_0" index="0" speed="20.83" length="3.69" shape="570.87,2072.27 571.34,2071.93 574.31,2071.02"/>
+ </edge>
+ <edge id=":1228499992_2" function="internal">
+ <lane id=":1228499992_2_0" index="0" speed="27.78" length="2.41" shape="569.80,2076.76 569.85,2075.27 570.33,2074.48"/>
+ </edge>
+ <edge id=":1228499992_10" function="internal">
+ <lane id=":1228499992_10_0" index="0" speed="27.78" length="2.41" shape="570.33,2074.48 571.25,2074.40 572.60,2075.01"/>
+ </edge>
+ <edge id=":1228499992_3" function="internal">
+ <lane id=":1228499992_3_0" index="0" speed="20.83" length="7.85" shape="567.86,2067.50 569.29,2069.32 570.84,2070.52 572.52,2071.09 574.31,2071.02"/>
+ </edge>
+ <edge id=":1228499992_4" function="internal">
+ <lane id=":1228499992_4_0" index="0" speed="27.78" length="8.88" shape="567.86,2067.50 572.60,2075.01"/>
+ </edge>
+ <edge id=":1228499992_5" function="internal">
+ <lane id=":1228499992_5_0" index="0" speed="27.78" length="2.41" shape="567.86,2067.50 567.83,2068.98 567.35,2069.78"/>
+ </edge>
+ <edge id=":1228499992_11" function="internal">
+ <lane id=":1228499992_11_0" index="0" speed="27.78" length="2.41" shape="567.35,2069.78 566.44,2069.87 565.08,2069.27"/>
+ </edge>
+ <edge id=":1228499992_6" function="internal">
+ <lane id=":1228499992_6_0" index="0" speed="20.83" length="5.51" shape="563.39,2073.27 564.90,2072.73 565.68,2071.88 565.74,2070.73 565.08,2069.27"/>
+ </edge>
+ <edge id=":1228499992_7" function="internal">
+ <lane id=":1228499992_7_0" index="0" speed="13.89" length="11.15" shape="563.39,2073.27 566.47,2072.63 568.85,2072.14 571.23,2071.65 574.31,2071.02"/>
+ </edge>
+ <edge id=":1228499992_8" function="internal">
+ <lane id=":1228499992_8_0" index="0" speed="20.83" length="9.92" shape="563.39,2073.27 566.66,2072.82 569.29,2072.96 571.27,2073.69 572.60,2075.01"/>
+ </edge>
+ <edge id=":1231011197_0" function="internal">
+ <lane id=":1231011197_0_0" index="0" speed="22.22" length="6.20" shape="712.25,2046.12 711.42,2039.98"/>
+ </edge>
+ <edge id=":1231011197_1" function="internal">
+ <lane id=":1231011197_1_0" index="0" speed="22.22" length="2.41" shape="712.25,2046.12 712.90,2044.79 713.66,2044.27"/>
+ </edge>
+ <edge id=":1231011197_6" function="internal">
+ <lane id=":1231011197_6_0" index="0" speed="22.22" length="2.41" shape="713.66,2044.27 714.54,2044.56 715.52,2045.68"/>
+ </edge>
+ <edge id=":1231011197_2" function="internal">
+ <lane id=":1231011197_2_0" index="0" speed="22.22" length="6.20" shape="714.69,2039.54 715.52,2045.68"/>
+ </edge>
+ <edge id=":1231011197_3" function="internal">
+ <lane id=":1231011197_3_0" index="0" speed="22.22" length="2.41" shape="714.69,2039.54 714.03,2040.87 713.27,2041.39"/>
+ </edge>
+ <edge id=":1231011197_7" function="internal">
+ <lane id=":1231011197_7_0" index="0" speed="22.22" length="2.41" shape="713.27,2041.39 712.40,2041.09 711.42,2039.98"/>
+ </edge>
+ <edge id=":1231011197_4" function="internal">
+ <lane id=":1231011197_4_0" index="0" speed="18.06" length="5.07" shape="708.70,2043.55 710.04,2043.11 710.94,2042.37 711.40,2041.33 711.42,2039.98"/>
+ </edge>
+ <edge id=":1231011197_5" function="internal">
+ <lane id=":1231011197_5_0" index="0" speed="18.06" length="7.99" shape="708.70,2043.55 711.51,2043.24 713.59,2043.49 714.92,2044.30 715.52,2045.68"/>
+ </edge>
+ <edge id=":1232169474_0" function="internal">
+ <lane id=":1232169474_0_0" index="0" speed="13.89" length="9.50" shape="669.32,2159.67 659.94,2161.12"/>
+ </edge>
+ <edge id=":1232169474_1" function="internal">
+ <lane id=":1232169474_1_0" index="0" speed="18.06" length="10.35" shape="669.32,2159.67 666.63,2159.67 664.49,2158.76 662.90,2156.94 661.87,2154.22"/>
+ </edge>
+ <edge id=":1232169474_2" function="internal">
+ <lane id=":1232169474_2_0" index="0" speed="13.89" length="4.82" shape="669.32,2159.67 667.98,2159.04 667.45,2158.29 667.73,2157.41 668.83,2156.41"/>
+ </edge>
+ <edge id=":1232169474_3" function="internal">
+ <lane id=":1232169474_3_0" index="0" speed="18.06" length="5.34" shape="665.08,2153.45 665.62,2154.91 666.42,2155.89 667.49,2156.39 668.83,2156.41"/>
+ </edge>
+ <edge id=":1232169474_4" function="internal">
+ <lane id=":1232169474_4_0" index="0" speed="18.06" length="10.73" shape="665.08,2153.45 665.35,2156.41 664.58,2158.68 662.78,2160.25 659.94,2161.12"/>
+ </edge>
+ <edge id=":1232169474_5" function="internal">
+ <lane id=":1232169474_5_0" index="0" speed="22.22" length="4.82" shape="665.08,2153.45 664.56,2154.84 663.86,2155.44 662.96,2155.23 661.87,2154.22"/>
+ </edge>
+ <edge id=":1232169474_6" function="internal">
+ <lane id=":1232169474_6_0" index="0" speed="18.06" length="5.10" shape="659.43,2157.86 660.78,2157.45 661.63,2156.70 662.00,2155.62 661.87,2154.22"/>
+ </edge>
+ <edge id=":1232169474_7" function="internal">
+ <lane id=":1232169474_7_0" index="0" speed="13.89" length="9.51" shape="659.43,2157.86 668.83,2156.41"/>
+ </edge>
+ <edge id=":1232169474_8" function="internal">
+ <lane id=":1232169474_8_0" index="0" speed="13.89" length="4.82" shape="659.43,2157.86 660.78,2158.48 661.31,2159.24 661.03,2160.11 659.94,2161.12"/>
+ </edge>
+ <edge id=":1232172714_0" function="internal">
+ <lane id=":1232172714_0_0" index="0" speed="22.22" length="9.35" shape="665.83,1682.00 656.55,1680.89"/>
+ </edge>
+ <edge id=":1232172714_1" function="internal">
+ <lane id=":1232172714_1_0" index="0" speed="18.06" length="7.12" shape="665.83,1682.00 663.14,1681.20 661.34,1679.72 660.57,1677.90"/>
+ </edge>
+ <edge id=":1232172714_9" function="internal">
+ <lane id=":1232172714_9_0" index="0" speed="18.06" length="3.21" shape="660.57,1677.90 660.43,1677.56 660.40,1674.72"/>
+ </edge>
+ <edge id=":1232172714_2" function="internal">
+ <lane id=":1232172714_2_0" index="0" speed="22.22" length="2.41" shape="665.83,1682.00 664.72,1681.01 664.43,1680.13"/>
+ </edge>
+ <edge id=":1232172714_10" function="internal">
+ <lane id=":1232172714_10_0" index="0" speed="22.22" length="2.41" shape="664.43,1680.13 664.96,1679.37 666.31,1678.74"/>
+ </edge>
+ <edge id=":1232172714_3" function="internal">
+ <lane id=":1232172714_3_0" index="0" speed="18.06" length="5.05" shape="663.67,1675.15 663.68,1676.55 664.12,1677.62 665.00,1678.34 666.31,1678.74"/>
+ </edge>
+ <edge id=":1232172714_4" function="internal">
+ <lane id=":1232172714_4_0" index="0" speed="18.06" length="9.29" shape="663.67,1675.15 663.14,1676.19 661.77,1677.49 659.57,1679.06 656.55,1680.89"/>
+ </edge>
+ <edge id=":1232172714_5" function="internal">
+ <lane id=":1232172714_5_0" index="0" speed="13.89" length="4.82" shape="663.67,1675.15 662.69,1676.27 661.82,1676.57 661.06,1676.05 660.40,1674.72"/>
+ </edge>
+ <edge id=":1232172714_6" function="internal">
+ <lane id=":1232172714_6_0" index="0" speed="18.06" length="4.98" shape="656.95,1677.37 658.31,1677.37 659.33,1676.93 660.03,1676.05 660.40,1674.72"/>
+ </edge>
+ <edge id=":1232172714_7" function="internal">
+ <lane id=":1232172714_7_0" index="0" speed="22.22" length="9.45" shape="656.95,1677.37 666.31,1678.74"/>
+ </edge>
+ <edge id=":1232172714_8" function="internal">
+ <lane id=":1232172714_8_0" index="0" speed="22.22" length="2.59" shape="656.95,1677.37 658.17,1678.40 658.51,1679.33"/>
+ </edge>
+ <edge id=":1232172714_11" function="internal">
+ <lane id=":1232172714_11_0" index="0" speed="22.22" length="2.59" shape="658.51,1679.33 657.97,1680.16 656.55,1680.89"/>
+ </edge>
+ <edge id=":1232172723_0" function="internal">
+ <lane id=":1232172723_0_0" index="0" speed="18.06" length="5.76" shape="673.48,1629.25 671.97,1628.44 670.81,1628.45 670.00,1629.29 669.55,1630.95"/>
+ </edge>
+ <edge id=":1232172723_1" function="internal">
+ <lane id=":1232172723_1_0" index="0" speed="22.22" length="10.38" shape="673.48,1629.25 671.03,1627.48 669.28,1626.21 667.53,1624.94 665.07,1623.17"/>
+ </edge>
+ <edge id=":1232172723_2" function="internal">
+ <lane id=":1232172723_2_0" index="0" speed="22.22" length="2.41" shape="673.48,1629.25 672.96,1627.86 673.11,1626.95"/>
+ </edge>
+ <edge id=":1232172723_9" function="internal">
+ <lane id=":1232172723_9_0" index="0" speed="22.22" length="2.41" shape="673.11,1626.95 673.93,1626.52 675.42,1626.58"/>
+ </edge>
+ <edge id=":1232172723_3" function="internal">
+ <lane id=":1232172723_3_0" index="0" speed="22.22" length="10.38" shape="667.00,1620.50 669.46,1622.27 671.21,1623.54 672.96,1624.80 675.42,1626.58"/>
+ </edge>
+ <edge id=":1232172723_4" function="internal">
+ <lane id=":1232172723_4_0" index="0" speed="18.06" length="6.79" shape="667.00,1620.50 668.51,1622.12 669.43,1624.41 669.68,1626.50"/>
+ </edge>
+ <edge id=":1232172723_10" function="internal">
+ <lane id=":1232172723_10_0" index="0" speed="18.06" length="4.46" shape="669.68,1626.50 669.78,1627.35 669.55,1630.95"/>
+ </edge>
+ <edge id=":1232172723_5" function="internal">
+ <lane id=":1232172723_5_0" index="0" speed="22.22" length="2.41" shape="667.00,1620.50 667.52,1621.89 667.37,1622.80"/>
+ </edge>
+ <edge id=":1232172723_11" function="internal">
+ <lane id=":1232172723_11_0" index="0" speed="22.22" length="2.41" shape="667.37,1622.80 666.56,1623.23 665.07,1623.17"/>
+ </edge>
+ <edge id=":1232172723_6" function="internal">
+ <lane id=":1232172723_6_0" index="0" speed="18.06" length="7.72" shape="666.28,1630.51 666.50,1627.84 666.37,1625.72 665.89,1624.17 665.07,1623.17"/>
+ </edge>
+ <edge id=":1232172723_7" function="internal">
+ <lane id=":1232172723_7_0" index="0" speed="18.06" length="13.38" shape="666.28,1630.51 667.33,1626.66 669.20,1624.72 671.90,1624.69 675.42,1626.58"/>
+ </edge>
+ <edge id=":1232172723_8" function="internal">
+ <lane id=":1232172723_8_0" index="0" speed="13.89" length="4.82" shape="666.28,1630.51 667.26,1629.39 668.13,1629.09 668.89,1629.61 669.55,1630.95"/>
+ </edge>
+ <edge id=":1233612841_0" function="internal">
+ <lane id=":1233612841_0_0" index="0" speed="27.78" length="4.82" shape="266.95,1606.31 265.82,1605.35 265.50,1604.49 266.00,1603.71 267.32,1603.03"/>
+ </edge>
+ <edge id=":1239242543_0" function="internal">
+ <lane id=":1239242543_0_0" index="0" speed="20.83" length="5.14" shape="669.60,1654.68 668.19,1654.71 667.13,1655.19 666.40,1656.10 666.02,1657.46"/>
+ </edge>
+ <edge id=":1239242543_1" function="internal">
+ <lane id=":1239242543_1_0" index="0" speed="27.78" length="9.60" shape="669.60,1654.68 660.06,1653.56"/>
+ </edge>
+ <edge id=":1239242543_2" function="internal">
+ <lane id=":1239242543_2_0" index="0" speed="20.83" length="7.15" shape="669.60,1654.68 666.83,1653.95 664.98,1652.51 664.20,1650.72"/>
+ </edge>
+ <edge id=":1239242543_16" function="internal">
+ <lane id=":1239242543_16_0" index="0" speed="20.83" length="3.25" shape="664.20,1650.72 664.04,1650.36 664.02,1647.50"/>
+ </edge>
+ <edge id=":1239242543_3" function="internal">
+ <lane id=":1239242543_3_0" index="0" speed="27.78" length="2.41" shape="669.60,1654.68 668.46,1653.72 668.15,1652.85"/>
+ </edge>
+ <edge id=":1239242543_17" function="internal">
+ <lane id=":1239242543_17_0" index="0" speed="27.78" length="2.41" shape="668.15,1652.85 668.65,1652.08 669.98,1651.40"/>
+ </edge>
+ <edge id=":1239242543_4" function="internal">
+ <lane id=":1239242543_4_0" index="0" speed="20.83" length="5.02" shape="667.29,1647.94 667.30,1649.32 667.75,1650.35 668.65,1651.05 669.98,1651.40"/>
+ </edge>
+ <edge id=":1239242543_5" function="internal">
+ <lane id=":1239242543_5_0" index="0" speed="13.89" length="9.60" shape="667.29,1647.94 666.02,1657.46"/>
+ </edge>
+ <edge id=":1239242543_6" function="internal">
+ <lane id=":1239242543_6_0" index="0" speed="20.83" length="10.41" shape="667.29,1647.94 666.52,1650.68 665.06,1652.53 662.90,1653.49 660.06,1653.56"/>
+ </edge>
+ <edge id=":1239242543_7" function="internal">
+ <lane id=":1239242543_7_0" index="0" speed="13.89" length="4.82" shape="667.29,1647.94 666.31,1649.06 665.43,1649.36 664.67,1648.84 664.02,1647.50"/>
+ </edge>
+ <edge id=":1239242543_8" function="internal">
+ <lane id=":1239242543_8_0" index="0" speed="20.83" length="5.14" shape="660.44,1650.28 661.85,1650.25 662.91,1649.77 663.64,1648.86 664.02,1647.50"/>
+ </edge>
+ <edge id=":1239242543_9" function="internal">
+ <lane id=":1239242543_9_0" index="0" speed="27.78" length="9.60" shape="660.44,1650.28 669.98,1651.40"/>
+ </edge>
+ <edge id=":1239242543_10" function="internal">
+ <lane id=":1239242543_10_0" index="0" speed="20.83" length="7.15" shape="660.44,1650.28 663.20,1651.01 665.05,1652.45 665.84,1654.24"/>
+ </edge>
+ <edge id=":1239242543_18" function="internal">
+ <lane id=":1239242543_18_0" index="0" speed="20.83" length="3.25" shape="665.84,1654.24 665.99,1654.60 666.02,1657.46"/>
+ </edge>
+ <edge id=":1239242543_11" function="internal">
+ <lane id=":1239242543_11_0" index="0" speed="27.78" length="2.41" shape="660.44,1650.28 661.58,1651.25 661.89,1652.11"/>
+ </edge>
+ <edge id=":1239242543_19" function="internal">
+ <lane id=":1239242543_19_0" index="0" speed="27.78" length="2.41" shape="661.89,1652.11 661.38,1652.89 660.06,1653.56"/>
+ </edge>
+ <edge id=":1239242543_12" function="internal">
+ <lane id=":1239242543_12_0" index="0" speed="20.83" length="5.02" shape="662.75,1657.02 662.74,1655.64 662.28,1654.61 661.39,1653.91 660.06,1653.56"/>
+ </edge>
+ <edge id=":1239242543_13" function="internal">
+ <lane id=":1239242543_13_0" index="0" speed="13.89" length="9.60" shape="662.75,1657.02 664.02,1647.50"/>
+ </edge>
+ <edge id=":1239242543_14" function="internal">
+ <lane id=":1239242543_14_0" index="0" speed="20.83" length="10.41" shape="662.75,1657.02 663.52,1654.28 664.98,1652.43 667.13,1651.47 669.98,1651.40"/>
+ </edge>
+ <edge id=":1239242543_15" function="internal">
+ <lane id=":1239242543_15_0" index="0" speed="13.89" length="4.82" shape="662.75,1657.02 663.73,1655.90 664.60,1655.60 665.37,1656.12 666.02,1657.46"/>
+ </edge>
+ <edge id=":1239242544_0" function="internal">
+ <lane id=":1239242544_0_0" index="0" speed="22.22" length="6.40" shape="639.59,2061.03 638.12,2054.80"/>
+ </edge>
+ <edge id=":1239242544_1" function="internal">
+ <lane id=":1239242544_1_0" index="0" speed="18.06" length="4.78" shape="639.59,2061.03 639.66,2059.56 640.61,2058.33 642.15,2057.49"/>
+ </edge>
+ <edge id=":1239242544_9" function="internal">
+ <lane id=":1239242544_9_0" index="0" speed="18.06" length="3.15" shape="642.15,2057.49 642.44,2057.33 645.15,2056.56"/>
+ </edge>
+ <edge id=":1239242544_2" function="internal">
+ <lane id=":1239242544_2_0" index="0" speed="22.22" length="2.41" shape="639.59,2061.03 640.11,2059.63 640.81,2059.04"/>
+ </edge>
+ <edge id=":1239242544_10" function="internal">
+ <lane id=":1239242544_10_0" index="0" speed="22.22" length="2.41" shape="640.81,2059.04 641.71,2059.25 642.80,2060.26"/>
+ </edge>
+ <edge id=":1239242544_3" function="internal">
+ <lane id=":1239242544_3_0" index="0" speed="18.06" length="5.18" shape="641.34,2054.05 641.85,2055.39 642.66,2056.25 643.76,2056.64 645.15,2056.56"/>
+ </edge>
+ <edge id=":1239242544_4" function="internal">
+ <lane id=":1239242544_4_0" index="0" speed="22.22" length="6.38" shape="641.34,2054.05 642.80,2060.26"/>
+ </edge>
+ <edge id=":1239242544_5" function="internal">
+ <lane id=":1239242544_5_0" index="0" speed="22.22" length="2.41" shape="641.34,2054.05 640.81,2055.44 640.10,2056.03"/>
+ </edge>
+ <edge id=":1239242544_11" function="internal">
+ <lane id=":1239242544_11_0" index="0" speed="22.22" length="2.41" shape="640.10,2056.03 639.21,2055.82 638.12,2054.80"/>
+ </edge>
+ <edge id=":1239242544_6" function="internal">
+ <lane id=":1239242544_6_0" index="0" speed="18.06" length="5.03" shape="635.75,2058.49 637.06,2058.02 637.89,2057.25 638.24,2056.18 638.12,2054.80"/>
+ </edge>
+ <edge id=":1239242544_7" function="internal">
+ <lane id=":1239242544_7_0" index="0" speed="13.89" length="9.60" shape="635.75,2058.49 645.15,2056.56"/>
+ </edge>
+ <edge id=":1239242544_8" function="internal">
+ <lane id=":1239242544_8_0" index="0" speed="18.06" length="7.98" shape="635.75,2058.49 638.56,2058.12 640.67,2058.29 642.09,2059.00 642.80,2060.26"/>
+ </edge>
+ <edge id=":1239243628_0" function="internal">
+ <lane id=":1239243628_0_0" index="0" speed="22.22" length="5.24" shape="656.13,1130.94 655.26,1129.78 654.24,1129.16 653.06,1129.07 651.72,1129.52"/>
+ </edge>
+ <edge id=":1239243628_1" function="internal">
+ <lane id=":1239243628_1_0" index="0" speed="22.22" length="9.67" shape="656.13,1130.94 651.58,1122.41"/>
+ </edge>
+ <edge id=":1239243628_2" function="internal">
+ <lane id=":1239243628_2_0" index="0" speed="22.22" length="10.48" shape="656.13,1130.94 655.10,1128.24 655.20,1125.89 656.42,1123.88 658.78,1122.20"/>
+ </edge>
+ <edge id=":1239243628_3" function="internal">
+ <lane id=":1239243628_3_0" index="0" speed="22.22" length="4.82" shape="656.13,1130.94 656.25,1129.46 656.77,1128.69 657.70,1128.65 659.02,1129.34"/>
+ </edge>
+ <edge id=":1239243628_4" function="internal">
+ <lane id=":1239243628_4_0" index="0" speed="22.22" length="5.04" shape="660.29,1125.14 659.16,1125.94 658.57,1126.91 658.52,1128.04 659.02,1129.34"/>
+ </edge>
+ <edge id=":1239243628_5" function="internal">
+ <lane id=":1239243628_5_0" index="0" speed="22.22" length="9.62" shape="660.29,1125.14 651.72,1129.52"/>
+ </edge>
+ <edge id=":1239243628_6" function="internal">
+ <lane id=":1239243628_6_0" index="0" speed="22.22" length="7.24" shape="660.29,1125.14 657.57,1126.09 655.22,1125.95 653.51,1124.90"/>
+ </edge>
+ <edge id=":1239243628_16" function="internal">
+ <lane id=":1239243628_16_0" index="0" speed="22.22" length="3.18" shape="653.51,1124.90 653.22,1124.72 651.58,1122.41"/>
+ </edge>
+ <edge id=":1239243628_7" function="internal">
+ <lane id=":1239243628_7_0" index="0" speed="22.22" length="2.41" shape="660.29,1125.14 658.81,1124.97 658.06,1124.43"/>
+ </edge>
+ <edge id=":1239243628_17" function="internal">
+ <lane id=":1239243628_17_0" index="0" speed="22.22" length="2.41" shape="658.06,1124.43 658.05,1123.50 658.78,1122.20"/>
+ </edge>
+ <edge id=":1239243628_8" function="internal">
+ <lane id=":1239243628_8_0" index="0" speed="22.22" length="5.08" shape="654.52,1120.90 655.32,1122.02 656.29,1122.61 657.44,1122.67 658.78,1122.20"/>
+ </edge>
+ <edge id=":1239243628_9" function="internal">
+ <lane id=":1239243628_9_0" index="0" speed="22.22" length="9.56" shape="654.52,1120.90 659.02,1129.34"/>
+ </edge>
+ <edge id=":1239243628_10" function="internal">
+ <lane id=":1239243628_10_0" index="0" speed="22.22" length="10.34" shape="654.52,1120.90 655.44,1123.58 655.28,1125.91 654.04,1127.89 651.72,1129.52"/>
+ </edge>
+ <edge id=":1239243628_11" function="internal">
+ <lane id=":1239243628_11_0" index="0" speed="22.22" length="4.82" shape="654.52,1120.90 654.35,1122.38 653.80,1123.12 652.88,1123.13 651.58,1122.41"/>
+ </edge>
+ <edge id=":1239243628_12" function="internal">
+ <lane id=":1239243628_12_0" index="0" speed="22.22" length="5.01" shape="650.23,1126.58 651.35,1125.79 651.95,1124.83 652.03,1123.70 651.58,1122.41"/>
+ </edge>
+ <edge id=":1239243628_13" function="internal">
+ <lane id=":1239243628_13_0" index="0" speed="22.22" length="9.60" shape="650.23,1126.58 658.78,1122.20"/>
+ </edge>
+ <edge id=":1239243628_14" function="internal">
+ <lane id=":1239243628_14_0" index="0" speed="22.22" length="7.16" shape="650.23,1126.58 652.90,1125.67 655.26,1125.83 656.95,1126.85"/>
+ </edge>
+ <edge id=":1239243628_18" function="internal">
+ <lane id=":1239243628_18_0" index="0" speed="22.22" length="3.26" shape="656.95,1126.85 657.29,1127.05 659.02,1129.34"/>
+ </edge>
+ <edge id=":1239243628_15" function="internal">
+ <lane id=":1239243628_15_0" index="0" speed="22.22" length="2.41" shape="650.23,1126.58 651.71,1126.75 652.45,1127.30"/>
+ </edge>
+ <edge id=":1239243628_19" function="internal">
+ <lane id=":1239243628_19_0" index="0" speed="22.22" length="2.41" shape="652.45,1127.30 652.45,1128.22 651.72,1129.52"/>
+ </edge>
+ <edge id=":1243159115_0" function="internal">
+ <lane id=":1243159115_0_0" index="0" speed="27.78" length="10.50" shape="1093.41,2109.25 1090.65,2110.70 1088.76,2111.69 1086.87,2112.67 1084.10,2114.11"/>
+ </edge>
+ <edge id=":1243159115_1" function="internal">
+ <lane id=":1243159115_1_0" index="0" speed="27.78" length="10.49" shape="1091.87,2106.33 1089.12,2107.78 1087.23,2108.77 1085.34,2109.75 1082.57,2111.19"/>
+ </edge>
+ <edge id=":1243159115_2" function="internal">
+ <lane id=":1243159115_2_0" index="0" speed="27.78" length="4.27" shape="1091.87,2106.33 1090.79,2110.47"/>
+ </edge>
+ <edge id=":1243159115_3" function="internal">
+ <lane id=":1243159115_3_0" index="0" speed="27.78" length="4.92" shape="1084.70,2106.75 1082.57,2111.19"/>
+ </edge>
+ <edge id=":1243159115_4" function="internal">
+ <lane id=":1243159115_4_0" index="0" speed="27.78" length="5.21" shape="1084.70,2106.75 1087.62,2105.40 1089.60,2105.57"/>
+ </edge>
+ <edge id=":1243159115_5" function="internal">
+ <lane id=":1243159115_5_0" index="0" speed="27.78" length="5.21" shape="1089.60,2105.57 1090.66,2107.25 1090.79,2110.47"/>
+ </edge>
+ <edge id=":1243159116_0" function="internal">
+ <lane id=":1243159116_0_0" index="0" speed="27.78" length="0.31" shape="1083.76,2102.41 1083.48,2102.56"/>
+ </edge>
+ <edge id=":1243159116_1" function="internal">
+ <lane id=":1243159116_1_0" index="0" speed="27.78" length="0.31" shape="1082.21,2099.50 1081.94,2099.64"/>
+ </edge>
+ <edge id=":1243159116_2" function="internal">
+ <lane id=":1243159116_2_0" index="0" speed="27.78" length="7.85" shape="1082.21,2099.50 1074.61,2097.54"/>
+ </edge>
+ <edge id=":1243159116_3" function="internal">
+ <lane id=":1243159116_3_0" index="0" speed="27.78" length="2.41" shape="1082.21,2099.50 1080.73,2099.35 1079.98,2098.81"/>
+ </edge>
+ <edge id=":1243159116_11" function="internal">
+ <lane id=":1243159116_11_0" index="0" speed="27.78" length="2.41" shape="1079.98,2098.81 1079.96,2097.89 1080.67,2096.58"/>
+ </edge>
+ <edge id=":1243159116_4" function="internal">
+ <lane id=":1243159116_4_0" index="0" speed="27.78" length="4.06" shape="1075.11,2094.25 1079.13,2093.67"/>
+ </edge>
+ <edge id=":1243159116_5" function="internal">
+ <lane id=":1243159116_5_0" index="0" speed="27.78" length="10.75" shape="1075.11,2094.25 1079.57,2095.83 1082.20,2097.25 1082.99,2098.53 1081.94,2099.64"/>
+ </edge>
+ <edge id=":1243159116_6" function="internal">
+ <lane id=":1243159116_6_0" index="0" speed="27.78" length="4.86" shape="1075.11,2094.25 1076.21,2095.26 1076.50,2096.15 1075.97,2096.91 1074.61,2097.54"/>
+ </edge>
+ <edge id=":1243159116_7" function="internal">
+ <lane id=":1243159116_7_0" index="0" speed="27.78" length="3.49" shape="1076.85,2094.87 1074.61,2097.54"/>
+ </edge>
+ <edge id=":1243159116_8" function="internal">
+ <lane id=":1243159116_8_0" index="0" speed="27.78" length="2.57" shape="1076.85,2094.87 1079.13,2093.67"/>
+ </edge>
+ <edge id=":1243159116_9" function="internal">
+ <lane id=":1243159116_9_0" index="0" speed="27.78" length="0.31" shape="1080.40,2096.73 1080.67,2096.58"/>
+ </edge>
+ <edge id=":1243159116_10" function="internal">
+ <lane id=":1243159116_10_0" index="0" speed="27.78" length="2.41" shape="1080.40,2096.73 1081.88,2096.88 1082.63,2097.41"/>
+ </edge>
+ <edge id=":1243159116_12" function="internal">
+ <lane id=":1243159116_12_0" index="0" speed="27.78" length="2.41" shape="1082.63,2097.41 1082.65,2098.34 1081.94,2099.64"/>
+ </edge>
+ <edge id=":1244292210_0" function="internal">
+ <lane id=":1244292210_0_0" index="0" speed="8.33" length="7.92" shape="1166.66,1739.79 1167.37,1741.84 1167.26,1743.63 1166.31,1745.15 1164.54,1746.40"/>
+ </edge>
+ <edge id=":1244292210_1" function="internal">
+ <lane id=":1244292210_1_0" index="0" speed="8.33" length="2.41" shape="1166.66,1739.79 1166.50,1741.27 1165.95,1742.02"/>
+ </edge>
+ <edge id=":1244292210_4" function="internal">
+ <lane id=":1244292210_4_0" index="0" speed="8.33" length="2.41" shape="1165.95,1742.02 1165.03,1742.03 1163.73,1741.30"/>
+ </edge>
+ <edge id=":1244292210_2" function="internal">
+ <lane id=":1244292210_2_0" index="0" speed="8.33" length="2.59" shape="1163.03,1743.46 1163.61,1743.05 1163.92,1742.55 1163.96,1741.97 1163.73,1741.30"/>
+ </edge>
+ <edge id=":1244292210_3" function="internal">
+ <lane id=":1244292210_3_0" index="0" speed="8.33" length="2.41" shape="1163.03,1743.46 1164.51,1743.63 1165.25,1744.18"/>
+ </edge>
+ <edge id=":1244292210_5" function="internal">
+ <lane id=":1244292210_5_0" index="0" speed="8.33" length="2.41" shape="1165.25,1744.18 1165.26,1745.10 1164.54,1746.40"/>
+ </edge>
+ <edge id=":1244292219_0" function="internal">
+ <lane id=":1244292219_0_0" index="0" speed="8.33" length="7.89" shape="1085.36,1786.85 1083.32,1787.55 1081.54,1787.43 1080.02,1786.49 1078.77,1784.73"/>
+ </edge>
+ <edge id=":1244292219_1" function="internal">
+ <lane id=":1244292219_1_0" index="0" speed="8.33" length="2.41" shape="1085.36,1786.85 1083.88,1786.68 1083.14,1786.13"/>
+ </edge>
+ <edge id=":1244292219_4" function="internal">
+ <lane id=":1244292219_4_0" index="0" speed="8.33" length="2.41" shape="1083.14,1786.13 1083.13,1785.21 1083.86,1783.91"/>
+ </edge>
+ <edge id=":1244292219_2" function="internal">
+ <lane id=":1244292219_2_0" index="0" speed="8.33" length="2.58" shape="1081.71,1783.22 1082.12,1783.79 1082.61,1784.10 1083.19,1784.14 1083.86,1783.91"/>
+ </edge>
+ <edge id=":1244292219_3" function="internal">
+ <lane id=":1244292219_3_0" index="0" speed="8.33" length="2.41" shape="1081.71,1783.22 1081.54,1784.70 1080.99,1785.44"/>
+ </edge>
+ <edge id=":1244292219_5" function="internal">
+ <lane id=":1244292219_5_0" index="0" speed="8.33" length="2.41" shape="1080.99,1785.44 1080.07,1785.45 1078.77,1784.73"/>
+ </edge>
+ <edge id=":1246731455_0" function="internal">
+ <lane id=":1246731455_0_0" index="0" speed="25.00" length="6.05" shape="1156.37,1085.17 1155.18,1084.85 1153.83,1084.92 1152.31,1085.37 1150.62,1086.20"/>
+ </edge>
+ <edge id=":1246731455_1" function="internal">
+ <lane id=":1246731455_1_0" index="0" speed="27.78" length="6.73" shape="1156.37,1085.17 1149.66,1084.60"/>
+ </edge>
+ <edge id=":1246731455_2" function="internal">
+ <lane id=":1246731455_2_0" index="0" speed="27.78" length="7.25" shape="1156.37,1085.17 1150.20,1081.37"/>
+ </edge>
+ <edge id=":1246731455_3" function="internal">
+ <lane id=":1246731455_3_0" index="0" speed="27.78" length="3.09" shape="1147.13,1081.12 1148.42,1081.18 1149.36,1081.24 1149.96,1081.30 1150.20,1081.37"/>
+ </edge>
+ <edge id=":1246731455_4" function="internal">
+ <lane id=":1246731455_4_0" index="0" speed="25.00" length="9.57" shape="1147.13,1081.12 1151.64,1081.61 1153.72,1082.63 1153.39,1084.16 1152.46,1084.84"/>
+ </edge>
+ <edge id=":1246731455_6" function="internal">
+ <lane id=":1246731455_6_0" index="0" speed="25.00" length="2.29" shape="1152.46,1084.84 1150.62,1086.20"/>
+ </edge>
+ <edge id=":1246731455_5" function="internal">
+ <lane id=":1246731455_5_0" index="0" speed="27.78" length="3.15" shape="1147.13,1081.12 1149.07,1081.04 1150.14,1081.59"/>
+ </edge>
+ <edge id=":1246731455_7" function="internal">
+ <lane id=":1246731455_7_0" index="0" speed="27.78" length="3.15" shape="1150.14,1081.59 1150.33,1082.78 1149.66,1084.60"/>
+ </edge>
+ <edge id=":1246731457_0" function="internal">
+ <lane id=":1246731457_0_0" index="0" speed="27.78" length="4.17" shape="1193.02,1087.00 1193.88,1091.08"/>
+ </edge>
+ <edge id=":1246731457_1" function="internal">
+ <lane id=":1246731457_1_0" index="0" speed="27.78" length="4.84" shape="1193.02,1087.00 1192.30,1088.31 1191.51,1088.79 1190.65,1088.45 1189.72,1087.28"/>
+ </edge>
+ <edge id=":1246731457_2" function="internal">
+ <lane id=":1246731457_2_0" index="0" speed="27.78" length="2.08" shape="1191.79,1087.10 1189.72,1087.28"/>
+ </edge>
+ <edge id=":1246731457_3" function="internal">
+ <lane id=":1246731457_3_0" index="0" speed="27.78" length="4.49" shape="1191.79,1087.10 1193.88,1091.08"/>
+ </edge>
+ <edge id=":1246731457_4" function="internal">
+ <lane id=":1246731457_4_0" index="0" speed="27.78" length="5.89" shape="1188.22,1087.41 1190.96,1092.62"/>
+ </edge>
+ <edge id=":1246731460_0" function="internal">
+ <lane id=":1246731460_0_0" index="0" speed="27.78" length="6.17" shape="1174.07,1094.22 1171.03,1088.85"/>
+ </edge>
+ <edge id=":1246731460_1" function="internal">
+ <lane id=":1246731460_1_0" index="0" speed="27.78" length="2.43" shape="1174.07,1094.22 1173.32,1092.92 1173.32,1091.99"/>
+ </edge>
+ <edge id=":1246731460_4" function="internal">
+ <lane id=":1246731460_4_0" index="0" speed="27.78" length="2.43" shape="1173.32,1091.99 1174.06,1091.43 1175.55,1091.24"/>
+ </edge>
+ <edge id=":1246731460_2" function="internal">
+ <lane id=":1246731460_2_0" index="0" speed="27.78" length="5.85" shape="1170.83,1087.79 1175.55,1091.24"/>
+ </edge>
+ <edge id=":1246731460_3" function="internal">
+ <lane id=":1246731460_3_0" index="0" speed="27.78" length="1.09" shape="1170.83,1087.79 1171.03,1088.85"/>
+ </edge>
+ <edge id=":1246731466_0" function="internal">
+ <lane id=":1246731466_0_0" index="0" speed="27.78" length="1.92" shape="1142.53,1027.68 1142.36,1025.77"/>
+ </edge>
+ <edge id=":1246731466_1" function="internal">
+ <lane id=":1246731466_1_0" index="0" speed="27.78" length="4.82" shape="1142.53,1027.68 1143.07,1026.29 1143.79,1025.72 1144.69,1025.95 1145.75,1026.98"/>
+ </edge>
+ <edge id=":1246731466_2" function="internal">
+ <lane id=":1246731466_2_0" index="0" speed="27.78" length="2.52" shape="1143.29,1027.51 1145.75,1026.98"/>
+ </edge>
+ <edge id=":1246731466_3" function="internal">
+ <lane id=":1246731466_3_0" index="0" speed="27.78" length="1.98" shape="1143.29,1027.51 1142.36,1025.77"/>
+ </edge>
+ <edge id=":1246731466_4" function="internal">
+ <lane id=":1246731466_4_0" index="0" speed="27.78" length="2.88" shape="1146.64,1026.79 1145.29,1024.25"/>
+ </edge>
+ <edge id=":1246731470_0" function="internal">
+ <lane id=":1246731470_0_0" index="0" speed="27.78" length="1.40" shape="1205.09,1048.28 1204.37,1049.48"/>
+ </edge>
+ <edge id=":1246731470_1" function="internal">
+ <lane id=":1246731470_1_0" index="0" speed="27.78" length="1.24" shape="1205.09,1048.28 1204.05,1048.95"/>
+ </edge>
+ <edge id=":1246731470_2" function="internal">
+ <lane id=":1246731470_2_0" index="0" speed="27.78" length="1.35" shape="1203.46,1045.41 1202.32,1046.14"/>
+ </edge>
+ <edge id=":1246731470_3" function="internal">
+ <lane id=":1246731470_3_0" index="0" speed="27.78" length="2.88" shape="1202.54,1046.50 1204.05,1048.95"/>
+ </edge>
+ <edge id=":1246731470_4" function="internal">
+ <lane id=":1246731470_4_0" index="0" speed="27.78" length="2.55" shape="1202.54,1046.50 1204.11,1046.56 1204.94,1047.07"/>
+ </edge>
+ <edge id=":1246731470_5" function="internal">
+ <lane id=":1246731470_5_0" index="0" speed="27.78" length="2.55" shape="1204.94,1047.07 1205.03,1048.05 1204.37,1049.48"/>
+ </edge>
+ <edge id=":1246731482_0" function="internal">
+ <lane id=":1246731482_0_0" index="0" speed="27.78" length="6.60" shape="1193.07,1076.60 1196.65,1071.06"/>
+ </edge>
+ <edge id=":1246731482_1" function="internal">
+ <lane id=":1246731482_1_0" index="0" speed="27.78" length="0.12" shape="1193.07,1076.60 1193.00,1076.70"/>
+ </edge>
+ <edge id=":1246731482_2" function="internal">
+ <lane id=":1246731482_2_0" index="0" speed="27.78" length="1.81" shape="1191.20,1076.87 1193.00,1076.70"/>
+ </edge>
+ <edge id=":1246731482_3" function="internal">
+ <lane id=":1246731482_3_0" index="0" speed="27.78" length="5.82" shape="1191.20,1076.87 1190.38,1073.37 1191.02,1071.24"/>
+ </edge>
+ <edge id=":1246731482_4" function="internal">
+ <lane id=":1246731482_4_0" index="0" speed="27.78" length="5.82" shape="1191.02,1071.24 1193.11,1070.47 1196.65,1071.06"/>
+ </edge>
+ <edge id=":1246731504_0" function="internal">
+ <lane id=":1246731504_0_0" index="0" speed="27.78" length="10.59" shape="1145.90,1032.38 1142.53,1042.42"/>
+ </edge>
+ <edge id=":1246731504_1" function="internal">
+ <lane id=":1246731504_1_0" index="0" speed="27.78" length="2.43" shape="1145.90,1032.38 1144.90,1033.50 1144.02,1033.80"/>
+ </edge>
+ <edge id=":1246731504_4" function="internal">
+ <lane id=":1246731504_4_0" index="0" speed="27.78" length="2.43" shape="1144.02,1033.80 1143.25,1033.27 1142.60,1031.91"/>
+ </edge>
+ <edge id=":1246731504_2" function="internal">
+ <lane id=":1246731504_2_0" index="0" speed="27.78" length="5.86" shape="1144.61,1037.41 1142.60,1031.91"/>
+ </edge>
+ <edge id=":1246731504_3" function="internal">
+ <lane id=":1246731504_3_0" index="0" speed="27.78" length="5.42" shape="1144.61,1037.41 1142.53,1042.42"/>
+ </edge>
+ <edge id=":1246731525_0" function="internal">
+ <lane id=":1246731525_0_0" index="0" speed="27.78" length="4.94" shape="1199.55,1054.52 1200.12,1049.62"/>
+ </edge>
+ <edge id=":1246731525_1" function="internal">
+ <lane id=":1246731525_1_0" index="0" speed="27.78" length="3.32" shape="1199.55,1054.52 1199.68,1051.20"/>
+ </edge>
+ <edge id=":1246731525_2" function="internal">
+ <lane id=":1246731525_2_0" index="0" speed="27.78" length="0.10" shape="1199.69,1051.20 1199.68,1051.20"/>
+ </edge>
+ <edge id=":1246731525_3" function="internal">
+ <lane id=":1246731525_3_0" index="0" speed="27.78" length="1.20" shape="1199.69,1051.20 1199.20,1050.65 1199.11,1050.20"/>
+ </edge>
+ <edge id=":1246731525_4" function="internal">
+ <lane id=":1246731525_4_0" index="0" speed="27.78" length="1.20" shape="1199.11,1050.20 1199.42,1049.85 1200.12,1049.62"/>
+ </edge>
+ <edge id=":1246731541_0" function="internal">
+ <lane id=":1246731541_0_0" index="0" speed="27.78" length="3.55" shape="1196.04,1028.55 1199.41,1027.42"/>
+ </edge>
+ <edge id=":1246731541_1" function="internal">
+ <lane id=":1246731541_1_0" index="0" speed="27.78" length="2.41" shape="1196.04,1028.55 1197.38,1029.21 1197.89,1029.97"/>
+ </edge>
+ <edge id=":1246731541_4" function="internal">
+ <lane id=":1246731541_4_0" index="0" speed="27.78" length="2.41" shape="1197.89,1029.97 1197.59,1030.84 1196.47,1031.82"/>
+ </edge>
+ <edge id=":1246731541_2" function="internal">
+ <lane id=":1246731541_2_0" index="0" speed="27.78" length="0.89" shape="1196.36,1030.93 1196.47,1031.82"/>
+ </edge>
+ <edge id=":1246731541_3" function="internal">
+ <lane id=":1246731541_3_0" index="0" speed="27.78" length="4.72" shape="1196.36,1030.93 1201.03,1030.30"/>
+ </edge>
+ <edge id=":1246731544_0" function="internal">
+ <lane id=":1246731544_0_0" index="0" speed="27.78" length="1.65" shape="1176.35,1026.09 1175.93,1027.69"/>
+ </edge>
+ <edge id=":1246731544_1" function="internal">
+ <lane id=":1246731544_1_0" index="0" speed="27.78" length="2.41" shape="1176.35,1026.09 1177.33,1027.21 1177.52,1028.11"/>
+ </edge>
+ <edge id=":1246731544_4" function="internal">
+ <lane id=":1246731544_4_0" index="0" speed="27.78" length="2.41" shape="1177.52,1028.11 1176.91,1028.80 1175.50,1029.28"/>
+ </edge>
+ <edge id=":1246731544_2" function="internal">
+ <lane id=":1246731544_2_0" index="0" speed="27.78" length="0.83" shape="1175.93,1027.69 1175.72,1028.48"/>
+ </edge>
+ <edge id=":1246731544_5" function="internal">
+ <lane id=":1246731544_5_0" index="0" speed="27.78" length="0.82" shape="1175.72,1028.48 1175.50,1029.28"/>
+ </edge>
+ <edge id=":1246731544_3" function="internal">
+ <lane id=":1246731544_3_0" index="0" speed="27.78" length="0.10" shape="1175.93,1027.69 1175.93,1027.69"/>
+ </edge>
+ <edge id=":1246731574_0" function="internal">
+ <lane id=":1246731574_0_0" index="0" speed="27.78" length="5.10" shape="1178.01,1031.33 1182.97,1030.16"/>
+ </edge>
+ <edge id=":1246731574_1" function="internal">
+ <lane id=":1246731574_1_0" index="0" speed="27.78" length="2.41" shape="1178.01,1031.33 1176.86,1030.39 1176.53,1029.53"/>
+ </edge>
+ <edge id=":1246731574_4" function="internal">
+ <lane id=":1246731574_4_0" index="0" speed="27.78" length="2.41" shape="1176.53,1029.53 1177.02,1028.74 1178.33,1028.04"/>
+ </edge>
+ <edge id=":1246731574_2" function="internal">
+ <lane id=":1246731574_2_0" index="0" speed="27.78" length="5.10" shape="1182.97,1030.16 1178.33,1028.04"/>
+ </edge>
+ <edge id=":1246731574_3" function="internal">
+ <lane id=":1246731574_3_0" index="0" speed="27.78" length="0.10" shape="1182.97,1030.16 1182.97,1030.16"/>
+ </edge>
+ <edge id=":1246731576_0" function="internal">
+ <lane id=":1246731576_0_0" index="0" speed="27.78" length="3.39" shape="1134.75,1086.77 1131.61,1088.05"/>
+ </edge>
+ <edge id=":1246731576_1" function="internal">
+ <lane id=":1246731576_1_0" index="0" speed="27.78" length="2.43" shape="1134.75,1086.77 1133.33,1086.28 1132.72,1085.58"/>
+ </edge>
+ <edge id=":1246731576_4" function="internal">
+ <lane id=":1246731576_4_0" index="0" speed="27.78" length="2.43" shape="1132.72,1085.58 1132.91,1084.67 1133.91,1083.55"/>
+ </edge>
+ <edge id=":1246731576_2" function="internal">
+ <lane id=":1246731576_2_0" index="0" speed="27.78" length="2.89" shape="1134.64,1086.34 1133.91,1083.55"/>
+ </edge>
+ <edge id=":1246731576_3" function="internal">
+ <lane id=":1246731576_3_0" index="0" speed="27.78" length="3.48" shape="1134.64,1086.34 1131.61,1088.05"/>
+ </edge>
+ <edge id=":1246731601_0" function="internal">
+ <lane id=":1246731601_0_0" index="0" speed="27.78" length="6.32" shape="1136.32,1061.41 1135.12,1063.92 1134.71,1065.49 1135.07,1066.11 1136.22,1065.79"/>
+ </edge>
+ <edge id=":1246731601_1" function="internal">
+ <lane id=":1246731601_1_0" index="0" speed="27.78" length="3.09" shape="1136.32,1061.41 1134.97,1062.04 1134.05,1061.97 1133.69,1061.40"/>
+ </edge>
+ <edge id=":1246731601_4" function="internal">
+ <lane id=":1246731601_4_0" index="0" speed="27.78" length="1.74" shape="1133.69,1061.40 1133.56,1061.19 1133.49,1059.70"/>
+ </edge>
+ <edge id=":1246731601_2" function="internal">
+ <lane id=":1246731601_2_0" index="0" speed="27.78" length="6.97" shape="1134.30,1066.62 1133.49,1059.70"/>
+ </edge>
+ <edge id=":1246731601_3" function="internal">
+ <lane id=":1246731601_3_0" index="0" speed="27.78" length="2.10" shape="1134.30,1066.62 1136.22,1065.79"/>
+ </edge>
+ <edge id=":1246731620_0" function="internal">
+ <lane id=":1246731620_0_0" index="0" speed="27.78" length="12.61" shape="1164.10,1025.60 1161.34,1024.37 1158.89,1022.59 1156.75,1020.27 1154.92,1017.39"/>
+ </edge>
+ <edge id=":1246731620_1" function="internal">
+ <lane id=":1246731620_1_0" index="0" speed="27.78" length="2.40" shape="1164.10,1025.60 1163.66,1024.05 1163.86,1023.28"/>
+ </edge>
+ <edge id=":1246731620_5" function="internal">
+ <lane id=":1246731620_5_0" index="0" speed="27.78" length="2.82" shape="1163.86,1023.28 1163.91,1023.08 1164.83,1022.69 1166.43,1022.89"/>
+ </edge>
+ <edge id=":1246731620_2" function="internal">
+ <lane id=":1246731620_2_0" index="0" speed="27.78" length="8.05" shape="1158.47,1024.11 1166.43,1022.89"/>
+ </edge>
+ <edge id=":1246731620_3" function="internal">
+ <lane id=":1246731620_3_0" index="0" speed="27.78" length="7.60" shape="1158.47,1024.11 1154.92,1017.39"/>
+ </edge>
+ <edge id=":1246731620_4" function="internal">
+ <lane id=":1246731620_4_0" index="0" speed="27.78" length="0.10" shape="1155.56,1025.66 1155.57,1025.65"/>
+ </edge>
+ <edge id=":1246731627_0" function="internal">
+ <lane id=":1246731627_0_0" index="0" speed="27.78" length="3.75" shape="1137.90,1053.64 1139.51,1050.26"/>
+ </edge>
+ <edge id=":1246731627_1" function="internal">
+ <lane id=":1246731627_1_0" index="0" speed="27.78" length="2.66" shape="1137.90,1053.64 1139.51,1053.92 1140.30,1054.56"/>
+ </edge>
+ <edge id=":1246731627_4" function="internal">
+ <lane id=":1246731627_4_0" index="0" speed="27.78" length="2.66" shape="1140.30,1054.56 1140.26,1055.58 1139.38,1056.97"/>
+ </edge>
+ <edge id=":1246731627_2" function="internal">
+ <lane id=":1246731627_2_0" index="0" speed="27.78" length="1.22" shape="1138.61,1056.03 1139.38,1056.97"/>
+ </edge>
+ <edge id=":1246731627_3" function="internal">
+ <lane id=":1246731627_3_0" index="0" speed="27.78" length="5.84" shape="1138.61,1056.03 1139.51,1050.26"/>
+ </edge>
+ <edge id=":1246731647_0" function="internal">
+ <lane id=":1246731647_0_0" index="0" speed="27.78" length="4.04" shape="1181.81,1101.03 1179.15,1097.99"/>
+ </edge>
+ <edge id=":1246731647_1" function="internal">
+ <lane id=":1246731647_1_0" index="0" speed="27.78" length="4.24" shape="1181.81,1101.03 1179.83,1097.28"/>
+ </edge>
+ <edge id=":1246731647_2" function="internal">
+ <lane id=":1246731647_2_0" index="0" speed="27.78" length="5.35" shape="1184.72,1099.49 1182.24,1094.75"/>
+ </edge>
+ <edge id=":1246731647_3" function="internal">
+ <lane id=":1246731647_3_0" index="0" speed="27.78" length="2.33" shape="1181.44,1095.59 1179.83,1097.28"/>
+ </edge>
+ <edge id=":1246731647_4" function="internal">
+ <lane id=":1246731647_4_0" index="0" speed="27.78" length="2.42" shape="1181.44,1095.59 1181.77,1097.05 1181.50,1097.94"/>
+ </edge>
+ <edge id=":1246731647_5" function="internal">
+ <lane id=":1246731647_5_0" index="0" speed="27.78" length="2.42" shape="1181.50,1097.94 1180.62,1098.25 1179.15,1097.99"/>
+ </edge>
+ <edge id=":1252777712_0" function="internal">
+ <lane id=":1252777712_0_0" index="0" speed="27.78" length="2.55" shape="727.32,2275.78 727.57,2278.32"/>
+ </edge>
+ <edge id=":1252777712_1" function="internal">
+ <lane id=":1252777712_1_0" index="0" speed="27.78" length="5.57" shape="731.86,2281.87 727.57,2278.32"/>
+ </edge>
+ <edge id=":1252777720_0" function="internal">
+ <lane id=":1252777720_0_0" index="0" speed="27.78" length="3.00" shape="780.48,2262.85 777.83,2264.26"/>
+ </edge>
+ <edge id=":1252777720_1" function="internal">
+ <lane id=":1252777720_1_0" index="0" speed="27.78" length="3.00" shape="778.94,2259.94 776.28,2261.34"/>
+ </edge>
+ <edge id=":1252777720_2" function="internal">
+ <lane id=":1252777720_2_0" index="0" speed="27.78" length="2.41" shape="778.94,2259.94 777.46,2259.79 776.71,2259.25"/>
+ </edge>
+ <edge id=":1252777720_8" function="internal">
+ <lane id=":1252777720_8_0" index="0" speed="27.78" length="2.41" shape="776.71,2259.25 776.69,2258.33 777.39,2257.02"/>
+ </edge>
+ <edge id=":1252777720_3" function="internal">
+ <lane id=":1252777720_3_0" index="0" speed="27.78" length="5.41" shape="774.85,2259.41 775.85,2254.10"/>
+ </edge>
+ <edge id=":1252777720_4" function="internal">
+ <lane id=":1252777720_4_0" index="0" speed="27.78" length="6.59" shape="774.85,2259.41 777.38,2259.25 778.47,2259.51 778.10,2260.21 776.28,2261.34"/>
+ </edge>
+ <edge id=":1252777720_5" function="internal">
+ <lane id=":1252777720_5_0" index="0" speed="27.78" length="3.11" shape="773.11,2255.55 775.85,2254.10"/>
+ </edge>
+ <edge id=":1252777720_6" function="internal">
+ <lane id=":1252777720_6_0" index="0" speed="27.78" length="3.31" shape="774.47,2258.57 777.39,2257.02"/>
+ </edge>
+ <edge id=":1252777720_7" function="internal">
+ <lane id=":1252777720_7_0" index="0" speed="27.78" length="2.42" shape="774.47,2258.57 775.96,2258.58 776.76,2259.05"/>
+ </edge>
+ <edge id=":1252777720_9" function="internal">
+ <lane id=":1252777720_9_0" index="0" speed="27.78" length="2.42" shape="776.76,2259.05 776.87,2259.97 776.28,2261.34"/>
+ </edge>
+ <edge id=":1257054074_0" function="internal">
+ <lane id=":1257054074_0_0" index="0" speed="16.67" length="5.06" shape="1360.40,1971.55 1359.61,1970.40 1358.65,1969.80 1357.51,1969.75 1356.21,1970.26"/>
+ </edge>
+ <edge id=":1257054074_1" function="internal">
+ <lane id=":1257054074_1_0" index="0" speed="5.56" length="7.42" shape="1360.40,1971.55 1357.04,1964.93"/>
+ </edge>
+ <edge id=":1257054074_2" function="internal">
+ <lane id=":1257054074_2_0" index="0" speed="5.56" length="4.82" shape="1360.40,1971.55 1360.59,1970.07 1361.14,1969.34 1362.07,1969.34 1363.36,1970.08"/>
+ </edge>
+ <edge id=":1257054074_3" function="internal">
+ <lane id=":1257054074_3_0" index="0" speed="16.67" length="5.39" shape="1364.72,1965.50 1363.56,1966.38 1362.95,1967.44 1362.88,1968.67 1363.36,1970.08"/>
+ </edge>
+ <edge id=":1257054074_4" function="internal">
+ <lane id=":1257054074_4_0" index="0" speed="27.78" length="9.75" shape="1364.72,1965.50 1356.21,1970.26"/>
+ </edge>
+ <edge id=":1257054074_5" function="internal">
+ <lane id=":1257054074_5_0" index="0" speed="27.78" length="9.75" shape="1363.11,1962.62 1354.60,1967.38"/>
+ </edge>
+ <edge id=":1257054074_6" function="internal">
+ <lane id=":1257054074_6_0" index="0" speed="16.67" length="6.64" shape="1363.11,1962.62 1360.62,1963.94 1358.78,1964.77 1357.59,1965.09 1357.04,1964.93"/>
+ </edge>
+ <edge id=":1257054074_7" function="internal">
+ <lane id=":1257054074_7_0" index="0" speed="5.56" length="7.50" shape="1359.97,1963.39 1363.36,1970.08"/>
+ </edge>
+ <edge id=":1257054074_8" function="internal">
+ <lane id=":1257054074_8_0" index="0" speed="16.67" length="6.81" shape="1359.97,1963.39 1359.78,1963.92 1358.82,1964.77 1357.09,1965.92 1354.60,1967.38"/>
+ </edge>
+ <edge id=":1257054074_9" function="internal">
+ <lane id=":1257054074_9_0" index="0" speed="5.56" length="4.82" shape="1359.97,1963.39 1359.81,1964.87 1359.27,1965.62 1358.35,1965.64 1357.04,1964.93"/>
+ </edge>
+ <edge id=":1257054077_0" function="internal">
+ <lane id=":1257054077_0_0" index="0" speed="5.56" length="0.10" shape="1081.39,2083.20 1081.39,2083.20"/>
+ </edge>
+ <edge id=":1257054077_1" function="internal">
+ <lane id=":1257054077_1_0" index="0" speed="5.56" length="2.41" shape="1081.39,2083.20 1079.91,2083.05 1079.16,2082.51"/>
+ </edge>
+ <edge id=":1257054077_4" function="internal">
+ <lane id=":1257054077_4_0" index="0" speed="5.56" length="2.41" shape="1079.16,2082.51 1079.14,2081.59 1079.85,2080.28"/>
+ </edge>
+ <edge id=":1257054077_2" function="internal">
+ <lane id=":1257054077_2_0" index="0" speed="5.56" length="0.10" shape="1079.89,2080.26 1079.85,2080.28"/>
+ </edge>
+ <edge id=":1257054077_3" function="internal">
+ <lane id=":1257054077_3_0" index="0" speed="5.56" length="2.41" shape="1079.89,2080.26 1081.37,2080.44 1082.11,2080.99"/>
+ </edge>
+ <edge id=":1257054077_5" function="internal">
+ <lane id=":1257054077_5_0" index="0" speed="5.56" length="2.41" shape="1082.11,2080.99 1082.12,2081.91 1081.39,2083.20"/>
+ </edge>
+ <edge id=":1257054092_0" function="internal">
+ <lane id=":1257054092_0_0" index="0" speed="16.67" length="5.03" shape="1296.54,1949.17 1295.74,1948.04 1294.78,1947.45 1293.65,1947.39 1292.35,1947.87"/>
+ </edge>
+ <edge id=":1257054092_1" function="internal">
+ <lane id=":1257054092_1_0" index="0" speed="27.78" length="9.52" shape="1296.54,1949.17 1292.16,1940.72"/>
+ </edge>
+ <edge id=":1257054092_2" function="internal">
+ <lane id=":1257054092_2_0" index="0" speed="27.78" length="9.56" shape="1299.48,1947.67 1295.08,1939.18"/>
+ </edge>
+ <edge id=":1257054092_3" function="internal">
+ <lane id=":1257054092_3_0" index="0" speed="16.67" length="7.91" shape="1299.48,1947.67 1298.38,1945.07 1298.00,1943.02 1298.35,1941.50 1299.42,1940.53"/>
+ </edge>
+ <edge id=":1257054092_4" function="internal">
+ <lane id=":1257054092_4_0" index="0" speed="5.56" length="9.57" shape="1300.86,1943.50 1292.35,1947.87"/>
+ </edge>
+ <edge id=":1257054092_5" function="internal">
+ <lane id=":1257054092_5_0" index="0" speed="16.67" length="7.92" shape="1300.86,1943.50 1299.45,1943.74 1298.02,1943.10 1296.56,1941.58 1295.08,1939.18"/>
+ </edge>
+ <edge id=":1257054092_6" function="internal">
+ <lane id=":1257054092_6_0" index="0" speed="5.56" length="4.82" shape="1300.86,1943.50 1299.39,1943.30 1298.66,1942.74 1298.67,1941.82 1299.42,1940.53"/>
+ </edge>
+ <edge id=":1257054092_7" function="internal">
+ <lane id=":1257054092_7_0" index="0" speed="16.67" length="5.08" shape="1290.79,1944.97 1291.93,1944.13 1292.53,1943.15 1292.61,1942.01 1292.16,1940.72"/>
+ </edge>
+ <edge id=":1257054092_8" function="internal">
+ <lane id=":1257054092_8_0" index="0" speed="5.56" length="9.70" shape="1290.79,1944.97 1299.42,1940.53"/>
+ </edge>
+ <edge id=":1257054092_9" function="internal">
+ <lane id=":1257054092_9_0" index="0" speed="5.56" length="4.82" shape="1290.79,1944.97 1292.27,1945.10 1293.02,1945.63 1293.05,1946.56 1292.35,1947.87"/>
+ </edge>
+ <edge id=":1257054108_0" function="internal">
+ <lane id=":1257054108_0_0" index="0" speed="16.67" length="5.08" shape="1312.22,1937.62 1311.10,1938.48 1310.52,1939.48 1310.49,1940.62 1311.00,1941.90"/>
+ </edge>
+ <edge id=":1257054108_1" function="internal">
+ <lane id=":1257054108_1_0" index="0" speed="5.56" length="9.80" shape="1312.22,1937.62 1303.55,1942.19"/>
+ </edge>
+ <edge id=":1257054108_2" function="internal">
+ <lane id=":1257054108_2_0" index="0" speed="5.56" length="4.82" shape="1312.22,1937.62 1310.74,1937.51 1309.97,1937.00 1309.92,1936.08 1310.59,1934.75"/>
+ </edge>
+ <edge id=":1257054108_3" function="internal">
+ <lane id=":1257054108_3_0" index="0" speed="16.67" length="5.05" shape="1306.39,1933.51 1307.19,1934.64 1308.16,1935.22 1309.30,1935.26 1310.59,1934.75"/>
+ </edge>
+ <edge id=":1257054108_4" function="internal">
+ <lane id=":1257054108_4_0" index="0" speed="27.78" length="9.58" shape="1306.39,1933.51 1311.00,1941.90"/>
+ </edge>
+ <edge id=":1257054108_5" function="internal">
+ <lane id=":1257054108_5_0" index="0" speed="27.78" length="9.74" shape="1303.46,1935.02 1308.15,1943.56"/>
+ </edge>
+ <edge id=":1257054108_6" function="internal">
+ <lane id=":1257054108_6_0" index="0" speed="16.67" length="7.96" shape="1303.46,1935.02 1304.58,1937.63 1304.97,1939.69 1304.63,1941.21 1303.55,1942.19"/>
+ </edge>
+ <edge id=":1257054108_7" function="internal">
+ <lane id=":1257054108_7_0" index="0" speed="5.56" length="9.60" shape="1302.10,1939.23 1310.59,1934.75"/>
+ </edge>
+ <edge id=":1257054108_8" function="internal">
+ <lane id=":1257054108_8_0" index="0" speed="16.67" length="8.10" shape="1302.10,1939.23 1303.51,1938.99 1304.99,1939.64 1306.53,1941.16 1308.15,1943.56"/>
+ </edge>
+ <edge id=":1257054108_9" function="internal">
+ <lane id=":1257054108_9_0" index="0" speed="5.56" length="4.82" shape="1302.10,1939.23 1303.57,1939.43 1304.31,1939.99 1304.30,1940.91 1303.55,1942.19"/>
+ </edge>
+ <edge id=":1257054127_0" function="internal">
+ <lane id=":1257054127_0_0" index="0" speed="22.22" length="9.51" shape="1367.64,1971.67 1359.17,1976.01"/>
+ </edge>
+ <edge id=":1257054127_1" function="internal">
+ <lane id=":1257054127_1_0" index="0" speed="13.89" length="7.89" shape="1367.64,1971.67 1365.05,1972.78 1363.00,1973.17 1361.49,1972.84 1360.51,1971.78"/>
+ </edge>
+ <edge id=":1257054127_2" function="internal">
+ <lane id=":1257054127_2_0" index="0" speed="13.89" length="7.88" shape="1363.47,1970.31 1363.72,1971.72 1363.09,1973.14 1361.58,1974.57 1359.17,1976.01"/>
+ </edge>
+ <edge id=":1257054127_3" function="internal">
+ <lane id=":1257054127_3_0" index="0" speed="5.56" length="4.82" shape="1363.47,1970.31 1363.28,1971.78 1362.73,1972.52 1361.80,1972.52 1360.51,1971.78"/>
+ </edge>
+ <edge id=":1257054132_0" function="internal">
+ <lane id=":1257054132_0_0" index="0" speed="13.89" length="6.45" shape="764.23,2244.05 762.12,2245.70 760.62,2246.96 759.74,2247.84 759.47,2248.35"/>
+ </edge>
+ <edge id=":1257054132_1" function="internal">
+ <lane id=":1257054132_1_0" index="0" speed="5.56" length="4.82" shape="764.23,2244.05 762.74,2244.15 761.91,2243.74 761.74,2242.83 762.23,2241.43"/>
+ </edge>
+ <edge id=":1257054132_2" function="internal">
+ <lane id=":1257054132_2_0" index="0" speed="13.89" length="5.78" shape="758.27,2239.81 758.75,2241.47 759.57,2242.29 760.73,2242.28 762.23,2241.43"/>
+ </edge>
+ <edge id=":1257054132_3" function="internal">
+ <lane id=":1257054132_3_0" index="0" speed="22.22" length="8.62" shape="758.27,2239.81 759.47,2248.35"/>
+ </edge>
+ <edge id=":1257054155_0" function="internal">
+ <lane id=":1257054155_0_0" index="0" speed="13.89" length="5.01" shape="1331.08,1933.39 1329.96,1934.19 1329.37,1935.16 1329.30,1936.29 1329.75,1937.58"/>
+ </edge>
+ <edge id=":1257054155_1" function="internal">
+ <lane id=":1257054155_1_0" index="0" speed="5.56" length="8.66" shape="1331.08,1933.39 1322.57,1934.99"/>
+ </edge>
+ <edge id=":1257054155_2" function="internal">
+ <lane id=":1257054155_2_0" index="0" speed="5.56" length="4.82" shape="1331.08,1933.39 1329.61,1933.23 1328.86,1932.69 1328.85,1931.77 1329.57,1930.46"/>
+ </edge>
+ <edge id=":1257054155_3" function="internal">
+ <lane id=":1257054155_3_0" index="0" speed="13.89" length="6.02" shape="1324.84,1928.04 1325.87,1929.64 1327.00,1930.57 1328.24,1930.85 1329.57,1930.46"/>
+ </edge>
+ <edge id=":1257054155_4" function="internal">
+ <lane id=":1257054155_4_0" index="0" speed="22.22" length="10.73" shape="1324.84,1928.04 1326.24,1930.79 1327.28,1932.82 1328.33,1934.85 1329.75,1937.58"/>
+ </edge>
+ <edge id=":1257054155_5" function="internal">
+ <lane id=":1257054155_5_0" index="0" speed="13.89" length="9.56" shape="1324.84,1928.04 1326.03,1931.09 1326.05,1933.27 1324.90,1934.57 1322.57,1934.99"/>
+ </edge>
+ <edge id=":1257054155_6" function="internal">
+ <lane id=":1257054155_6_0" index="0" speed="5.56" length="7.09" shape="1322.59,1931.69 1329.57,1930.46"/>
+ </edge>
+ <edge id=":1257054155_7" function="internal">
+ <lane id=":1257054155_7_0" index="0" speed="13.89" length="9.73" shape="1322.59,1931.69 1324.57,1932.07 1326.43,1933.17 1328.16,1935.01 1329.75,1937.58"/>
+ </edge>
+ <edge id=":1257054155_8" function="internal">
+ <lane id=":1257054155_8_0" index="0" speed="5.56" length="4.82" shape="1322.59,1931.69 1323.82,1932.52 1324.23,1933.35 1323.81,1934.17 1322.57,1934.99"/>
+ </edge>
+ <edge id=":1257054162_0" function="internal">
+ <lane id=":1257054162_0_0" index="0" speed="5.56" length="4.82" shape="715.71,2256.40 717.19,2256.51 717.96,2257.03 718.00,2257.95 717.32,2259.28"/>
+ </edge>
+ <edge id=":1257054165_0" function="internal">
+ <lane id=":1257054165_0_0" index="0" speed="13.89" length="4.60" shape="1282.43,1956.76 1281.65,1955.64 1280.76,1955.01 1279.78,1954.88 1278.69,1955.24"/>
+ </edge>
+ <edge id=":1257054165_1" function="internal">
+ <lane id=":1257054165_1_0" index="0" speed="22.22" length="9.51" shape="1282.43,1956.76 1277.94,1948.38"/>
+ </edge>
+ <edge id=":1257054165_2" function="internal">
+ <lane id=":1257054165_2_0" index="0" speed="13.89" length="7.86" shape="1282.43,1956.76 1281.28,1954.19 1280.86,1952.15 1281.14,1950.63 1282.14,1949.63"/>
+ </edge>
+ <edge id=":1257054165_3" function="internal">
+ <lane id=":1257054165_3_0" index="0" speed="5.56" length="5.71" shape="1283.71,1952.54 1278.69,1955.24"/>
+ </edge>
+ <edge id=":1257054165_4" function="internal">
+ <lane id=":1257054165_4_0" index="0" speed="13.89" length="7.85" shape="1283.71,1952.54 1282.33,1952.83 1280.90,1952.24 1279.44,1950.75 1277.94,1948.38"/>
+ </edge>
+ <edge id=":1257054165_5" function="internal">
+ <lane id=":1257054165_5_0" index="0" speed="5.56" length="4.82" shape="1283.71,1952.54 1282.23,1952.40 1281.48,1951.87 1281.45,1950.95 1282.14,1949.63"/>
+ </edge>
+ <edge id=":1257054165_6" function="internal">
+ <lane id=":1257054165_6_0" index="0" speed="13.89" length="4.87" shape="1276.82,1952.50 1277.87,1951.72 1278.40,1950.77 1278.43,1949.66 1277.94,1948.38"/>
+ </edge>
+ <edge id=":1257054165_7" function="internal">
+ <lane id=":1257054165_7_0" index="0" speed="5.56" length="6.04" shape="1276.82,1952.50 1282.14,1949.63"/>
+ </edge>
+ <edge id=":1257054165_8" function="internal">
+ <lane id=":1257054165_8_0" index="0" speed="5.56" length="4.85" shape="1276.82,1952.50 1278.32,1952.49 1279.13,1952.94 1279.25,1953.86 1278.69,1955.24"/>
+ </edge>
+ <edge id=":1257054172_0" function="internal">
+ <lane id=":1257054172_0_0" index="0" speed="16.67" length="6.51" shape="1352.02,1954.99 1352.82,1957.04 1353.03,1958.70 1352.65,1959.96 1351.67,1960.84"/>
+ </edge>
+ <edge id=":1257054172_1" function="internal">
+ <lane id=":1257054172_1_0" index="0" speed="5.56" length="6.24" shape="1352.02,1954.99 1349.13,1949.45"/>
+ </edge>
+ <edge id=":1257054172_2" function="internal">
+ <lane id=":1257054172_2_0" index="0" speed="16.67" length="6.96" shape="1352.02,1954.99 1352.06,1954.17 1352.90,1953.16 1354.53,1951.96 1356.96,1950.56"/>
+ </edge>
+ <edge id=":1257054172_3" function="internal">
+ <lane id=":1257054172_3_0" index="0" speed="5.56" length="4.82" shape="1352.02,1954.99 1352.21,1953.51 1352.77,1952.78 1353.69,1952.79 1354.98,1953.53"/>
+ </edge>
+ <edge id=":1257054172_4" function="internal">
+ <lane id=":1257054172_4_0" index="0" speed="16.67" length="6.60" shape="1360.04,1956.40 1358.64,1956.80 1357.33,1956.45 1356.11,1955.36 1354.98,1953.53"/>
+ </edge>
+ <edge id=":1257054172_5" function="internal">
+ <lane id=":1257054172_5_0" index="0" speed="27.78" length="9.48" shape="1360.04,1956.40 1351.67,1960.84"/>
+ </edge>
+ <edge id=":1257054172_6" function="internal">
+ <lane id=":1257054172_6_0" index="0" speed="27.78" length="9.49" shape="1358.50,1953.48 1350.12,1957.92"/>
+ </edge>
+ <edge id=":1257054172_7" function="internal">
+ <lane id=":1257054172_7_0" index="0" speed="16.67" length="10.26" shape="1358.50,1953.48 1355.78,1954.36 1353.31,1953.98 1351.09,1952.35 1349.89,1950.57"/>
+ </edge>
+ <edge id=":1257054172_18" function="internal">
+ <lane id=":1257054172_18_0" index="0" speed="16.67" length="1.35" shape="1349.89,1950.57 1349.13,1949.45"/>
+ </edge>
+ <edge id=":1257054172_8" function="internal">
+ <lane id=":1257054172_8_0" index="0" speed="27.78" length="2.41" shape="1358.50,1953.48 1357.02,1953.33 1356.27,1952.79"/>
+ </edge>
+ <edge id=":1257054172_19" function="internal">
+ <lane id=":1257054172_19_0" index="0" speed="27.78" length="2.41" shape="1356.27,1952.79 1356.25,1951.87 1356.96,1950.56"/>
+ </edge>
+ <edge id=":1257054172_9" function="internal">
+ <lane id=":1257054172_9_0" index="0" speed="16.67" length="3.68" shape="1352.06,1947.93 1352.50,1948.35 1353.20,1948.44 1354.18,1948.21 1355.42,1947.65"/>
+ </edge>
+ <edge id=":1257054172_10" function="internal">
+ <lane id=":1257054172_10_0" index="0" speed="5.56" length="6.32" shape="1352.06,1947.93 1354.98,1953.53"/>
+ </edge>
+ <edge id=":1257054172_11" function="internal">
+ <lane id=":1257054172_11_0" index="0" speed="16.67" length="11.55" shape="1352.06,1947.93 1353.31,1951.19 1353.40,1953.94 1352.34,1956.18 1350.12,1957.92"/>
+ </edge>
+ <edge id=":1257054172_12" function="internal">
+ <lane id=":1257054172_12_0" index="0" speed="5.56" length="4.82" shape="1352.06,1947.93 1351.90,1949.41 1351.36,1950.15 1350.44,1950.17 1349.13,1949.45"/>
+ </edge>
+ <edge id=":1257054172_13" function="internal">
+ <lane id=":1257054172_13_0" index="0" speed="16.67" length="3.69" shape="1347.03,1952.09 1348.18,1951.38 1348.92,1950.71 1349.23,1950.06 1349.13,1949.45"/>
+ </edge>
+ <edge id=":1257054172_14" function="internal">
+ <lane id=":1257054172_14_0" index="0" speed="27.78" length="9.50" shape="1347.03,1952.09 1355.42,1947.65"/>
+ </edge>
+ <edge id=":1257054172_15" function="internal">
+ <lane id=":1257054172_15_0" index="0" speed="27.78" length="9.49" shape="1348.57,1955.01 1356.96,1950.56"/>
+ </edge>
+ <edge id=":1257054172_16" function="internal">
+ <lane id=":1257054172_16_0" index="0" speed="16.67" length="6.95" shape="1348.57,1955.01 1351.09,1953.79 1353.00,1953.14 1354.30,1953.05 1354.98,1953.53"/>
+ </edge>
+ <edge id=":1257054172_17" function="internal">
+ <lane id=":1257054172_17_0" index="0" speed="27.78" length="2.41" shape="1348.57,1955.01 1350.05,1955.15 1350.80,1955.69"/>
+ </edge>
+ <edge id=":1257054172_20" function="internal">
+ <lane id=":1257054172_20_0" index="0" speed="27.78" length="2.41" shape="1350.80,1955.69 1350.83,1956.61 1350.12,1957.92"/>
+ </edge>
+ <edge id=":1257054178_0" function="internal">
+ <lane id=":1257054178_0_0" index="0" speed="5.56" length="5.04" shape="1343.64,1930.45 1342.87,1929.29 1341.92,1928.67 1340.79,1928.59 1339.48,1929.05"/>
+ </edge>
+ <edge id=":1257054178_1" function="internal">
+ <lane id=":1257054178_1_0" index="0" speed="5.56" length="9.55" shape="1343.64,1930.45 1339.42,1921.88"/>
+ </edge>
+ <edge id=":1257054178_2" function="internal">
+ <lane id=":1257054178_2_0" index="0" speed="5.56" length="4.82" shape="1343.64,1930.45 1343.85,1928.97 1344.42,1928.25 1345.34,1928.27 1346.62,1929.03"/>
+ </edge>
+ <edge id=":1257054178_3" function="internal">
+ <lane id=":1257054178_3_0" index="0" speed="5.56" length="9.65" shape="1342.36,1920.38 1346.62,1929.03"/>
+ </edge>
+ <edge id=":1257054178_4" function="internal">
+ <lane id=":1257054178_4_0" index="0" speed="5.56" length="10.40" shape="1342.36,1920.38 1343.27,1923.05 1343.09,1925.38 1341.83,1927.38 1339.48,1929.05"/>
+ </edge>
+ <edge id=":1257054178_5" function="internal">
+ <lane id=":1257054178_5_0" index="0" speed="5.56" length="4.82" shape="1342.36,1920.38 1342.19,1921.86 1341.64,1922.60 1340.72,1922.61 1339.42,1921.88"/>
+ </edge>
+ <edge id=":1257054178_6" function="internal">
+ <lane id=":1257054178_6_0" index="0" speed="5.56" length="5.10" shape="1337.96,1926.12 1339.13,1925.29 1339.76,1924.31 1339.86,1923.18 1339.42,1921.88"/>
+ </edge>
+ <edge id=":1257054178_7" function="internal">
+ <lane id=":1257054178_7_0" index="0" speed="5.56" length="10.50" shape="1337.96,1926.12 1340.69,1925.16 1343.05,1925.33 1345.02,1926.62 1346.62,1929.03"/>
+ </edge>
+ <edge id=":1257054178_8" function="internal">
+ <lane id=":1257054178_8_0" index="0" speed="5.56" length="4.82" shape="1337.96,1926.12 1339.44,1926.28 1340.19,1926.82 1340.20,1927.74 1339.48,1929.05"/>
+ </edge>
+ <edge id=":1257054196_0" function="internal">
+ <lane id=":1257054196_0_0" index="0" speed="5.56" length="4.82" shape="602.25,2350.26 601.92,2351.71 601.30,2352.39 600.38,2352.30 599.17,2351.43"/>
+ </edge>
+ <edge id=":1257054205_0" function="internal">
+ <lane id=":1257054205_0_0" index="0" speed="16.67" length="3.38" shape="1355.98,1962.90 1355.64,1962.68 1355.01,1962.72 1354.08,1963.04 1352.86,1963.63"/>
+ </edge>
+ <edge id=":1257054205_1" function="internal">
+ <lane id=":1257054205_1_0" index="0" speed="5.56" length="2.52" shape="1355.98,1962.90 1354.81,1960.68"/>
+ </edge>
+ <edge id=":1257054205_2" function="internal">
+ <lane id=":1257054205_2_0" index="0" speed="16.67" length="8.64" shape="1355.98,1962.90 1355.50,1961.12 1355.98,1959.41 1357.41,1957.78 1359.81,1956.23"/>
+ </edge>
+ <edge id=":1257054205_3" function="internal">
+ <lane id=":1257054205_3_0" index="0" speed="5.56" length="4.82" shape="1355.98,1962.90 1356.14,1961.42 1356.67,1960.68 1357.60,1960.66 1358.90,1961.37"/>
+ </edge>
+ <edge id=":1257054205_4" function="internal">
+ <lane id=":1257054205_4_0" index="0" speed="16.67" length="3.47" shape="1361.35,1959.15 1360.13,1959.85 1359.32,1960.45 1358.91,1960.96 1358.90,1961.37"/>
+ </edge>
+ <edge id=":1257054205_5" function="internal">
+ <lane id=":1257054205_5_0" index="0" speed="27.78" length="9.60" shape="1361.35,1959.15 1352.86,1963.63"/>
+ </edge>
+ <edge id=":1257054205_6" function="internal">
+ <lane id=":1257054205_6_0" index="0" speed="16.67" length="7.08" shape="1361.35,1959.15 1358.77,1960.39 1356.82,1961.06 1355.50,1961.15 1354.81,1960.68"/>
+ </edge>
+ <edge id=":1257054205_7" function="internal">
+ <lane id=":1257054205_7_0" index="0" speed="27.78" length="2.41" shape="1361.35,1959.15 1359.87,1959.00 1359.12,1958.46"/>
+ </edge>
+ <edge id=":1257054205_16" function="internal">
+ <lane id=":1257054205_16_0" index="0" speed="27.78" length="2.41" shape="1359.12,1958.46 1359.10,1957.54 1359.81,1956.23"/>
+ </edge>
+ <edge id=":1257054205_8" function="internal">
+ <lane id=":1257054205_8_0" index="0" speed="16.67" length="4.00" shape="1357.77,1959.22 1357.62,1958.46 1357.91,1957.71 1358.64,1956.97 1359.81,1956.23"/>
+ </edge>
+ <edge id=":1257054205_9" function="internal">
+ <lane id=":1257054205_9_0" index="0" speed="5.56" length="2.43" shape="1357.77,1959.22 1358.90,1961.37"/>
+ </edge>
+ <edge id=":1257054205_10" function="internal">
+ <lane id=":1257054205_10_0" index="0" speed="16.67" length="6.93" shape="1357.77,1959.22 1357.73,1960.04 1356.90,1961.04 1355.27,1962.24 1352.86,1963.63"/>
+ </edge>
+ <edge id=":1257054205_11" function="internal">
+ <lane id=":1257054205_11_0" index="0" speed="5.56" length="4.82" shape="1357.77,1959.22 1357.58,1960.70 1357.02,1961.43 1356.10,1961.42 1354.81,1960.68"/>
+ </edge>
+ <edge id=":1257054205_12" function="internal">
+ <lane id=":1257054205_12_0" index="0" speed="16.67" length="3.89" shape="1351.32,1960.71 1352.58,1960.16 1353.58,1959.97 1354.33,1960.14 1354.81,1960.68"/>
+ </edge>
+ <edge id=":1257054205_13" function="internal">
+ <lane id=":1257054205_13_0" index="0" speed="27.78" length="9.60" shape="1351.32,1960.71 1359.81,1956.23"/>
+ </edge>
+ <edge id=":1257054205_14" function="internal">
+ <lane id=":1257054205_14_0" index="0" speed="16.67" length="7.73" shape="1351.32,1960.71 1353.91,1959.63 1356.05,1959.38 1357.71,1959.96 1358.36,1960.73"/>
+ </edge>
+ <edge id=":1257054205_17" function="internal">
+ <lane id=":1257054205_17_0" index="0" speed="16.67" length="0.84" shape="1358.36,1960.73 1358.90,1961.37"/>
+ </edge>
+ <edge id=":1257054205_15" function="internal">
+ <lane id=":1257054205_15_0" index="0" speed="27.78" length="2.41" shape="1351.32,1960.71 1352.79,1960.86 1353.54,1961.40"/>
+ </edge>
+ <edge id=":1257054205_18" function="internal">
+ <lane id=":1257054205_18_0" index="0" speed="27.78" length="2.41" shape="1353.54,1961.40 1353.57,1962.32 1352.86,1963.63"/>
+ </edge>
+ <edge id=":1257054208_0" function="internal">
+ <lane id=":1257054208_0_0" index="0" speed="16.67" length="3.23" shape="1065.87,2090.66 1065.75,2090.86 1065.25,2091.22 1064.40,2091.72 1063.17,2092.38"/>
+ </edge>
+ <edge id=":1257054208_1" function="internal">
+ <lane id=":1257054208_1_0" index="0" speed="27.78" length="6.14" shape="1065.87,2090.66 1063.03,2085.21"/>
+ </edge>
+ <edge id=":1257054208_2" function="internal">
+ <lane id=":1257054208_2_0" index="0" speed="16.67" length="4.67" shape="1065.87,2090.66 1065.66,2089.27 1066.30,2087.88 1067.58,2086.71"/>
+ </edge>
+ <edge id=":1257054208_16" function="internal">
+ <lane id=":1257054208_16_0" index="0" speed="16.67" length="3.08" shape="1067.58,2086.71 1067.82,2086.49 1070.20,2085.09"/>
+ </edge>
+ <edge id=":1257054208_3" function="internal">
+ <lane id=":1257054208_3_0" index="0" speed="27.78" length="2.63" shape="1065.87,2090.66 1065.45,2089.09 1065.70,2088.12"/>
+ </edge>
+ <edge id=":1257054208_17" function="internal">
+ <lane id=":1257054208_17_0" index="0" speed="27.78" length="2.63" shape="1065.70,2088.12 1066.64,2087.74 1068.25,2087.95"/>
+ </edge>
+ <edge id=":1257054208_4" function="internal">
+ <lane id=":1257054208_4_0" index="0" speed="16.67" length="3.81" shape="1071.67,2088.04 1070.42,2088.55 1069.44,2088.70 1068.72,2088.50 1068.25,2087.95"/>
+ </edge>
+ <edge id=":1257054208_5" function="internal">
+ <lane id=":1257054208_5_0" index="0" speed="5.56" length="9.54" shape="1071.67,2088.04 1063.17,2092.38"/>
+ </edge>
+ <edge id=":1257054208_6" function="internal">
+ <lane id=":1257054208_6_0" index="0" speed="16.67" length="10.29" shape="1071.67,2088.04 1069.02,2088.91 1066.70,2088.73 1064.71,2087.50 1063.03,2085.21"/>
+ </edge>
+ <edge id=":1257054208_7" function="internal">
+ <lane id=":1257054208_7_0" index="0" speed="5.56" length="4.82" shape="1071.67,2088.04 1070.19,2087.86 1069.45,2087.30 1069.45,2086.38 1070.20,2085.09"/>
+ </edge>
+ <edge id=":1257054208_8" function="internal">
+ <lane id=":1257054208_8_0" index="0" speed="16.67" length="5.09" shape="1065.94,2083.65 1066.77,2084.79 1067.76,2085.41 1068.90,2085.51 1070.20,2085.09"/>
+ </edge>
+ <edge id=":1257054208_9" function="internal">
+ <lane id=":1257054208_9_0" index="0" speed="27.78" length="4.88" shape="1065.94,2083.65 1068.25,2087.95"/>
+ </edge>
+ <edge id=":1257054208_10" function="internal">
+ <lane id=":1257054208_10_0" index="0" speed="16.67" length="7.20" shape="1065.94,2083.65 1066.91,2086.33 1066.78,2088.68 1065.72,2090.38"/>
+ </edge>
+ <edge id=":1257054208_18" function="internal">
+ <lane id=":1257054208_18_0" index="0" speed="16.67" length="3.27" shape="1065.72,2090.38 1065.53,2090.69 1063.17,2092.38"/>
+ </edge>
+ <edge id=":1257054208_11" function="internal">
+ <lane id=":1257054208_11_0" index="0" speed="27.78" length="2.41" shape="1065.94,2083.65 1065.80,2085.13 1065.27,2085.89"/>
+ </edge>
+ <edge id=":1257054208_19" function="internal">
+ <lane id=":1257054208_19_0" index="0" speed="27.78" length="2.41" shape="1065.27,2085.89 1064.35,2085.91 1063.03,2085.21"/>
+ </edge>
+ <edge id=":1257054208_12" function="internal">
+ <lane id=":1257054208_12_0" index="0" speed="16.67" length="5.11" shape="1061.64,2089.46 1062.80,2088.63 1063.42,2087.65 1063.50,2086.51 1063.03,2085.21"/>
+ </edge>
+ <edge id=":1257054208_13" function="internal">
+ <lane id=":1257054208_13_0" index="0" speed="5.56" length="9.60" shape="1061.64,2089.46 1070.20,2085.09"/>
+ </edge>
+ <edge id=":1257054208_14" function="internal">
+ <lane id=":1257054208_14_0" index="0" speed="16.67" length="7.16" shape="1061.64,2089.46 1064.26,2088.21 1066.23,2087.54 1067.56,2087.46 1068.25,2087.95"/>
+ </edge>
+ <edge id=":1257054208_15" function="internal">
+ <lane id=":1257054208_15_0" index="0" speed="5.56" length="4.82" shape="1061.64,2089.46 1063.12,2089.62 1063.87,2090.16 1063.89,2091.08 1063.17,2092.38"/>
+ </edge>
+ <edge id=":1261880295_0" function="internal">
+ <lane id=":1261880295_0_0" index="0" speed="25.00" length="1.68" shape="1295.39,1671.80 1294.61,1670.31"/>
+ </edge>
+ <edge id=":1261880295_1" function="internal">
+ <lane id=":1261880295_1_0" index="0" speed="27.78" length="3.68" shape="1297.44,1667.00 1295.77,1668.55 1294.40,1668.88"/>
+ </edge>
+ <edge id=":1261880295_5" function="internal">
+ <lane id=":1261880295_5_0" index="0" speed="27.78" length="3.68" shape="1294.40,1668.88 1293.32,1667.97 1292.53,1665.84"/>
+ </edge>
+ <edge id=":1261880295_2" function="internal">
+ <lane id=":1261880295_2_0" index="0" speed="25.00" length="3.60" shape="1287.34,1663.99 1290.80,1663.02"/>
+ </edge>
+ <edge id=":1261880295_3" function="internal">
+ <lane id=":1261880295_3_0" index="0" speed="25.00" length="5.51" shape="1287.34,1663.99 1292.53,1665.84"/>
+ </edge>
+ <edge id=":1261880295_4" function="internal">
+ <lane id=":1261880295_4_0" index="0" speed="22.22" length="14.89" shape="1287.34,1663.99 1293.05,1664.05 1296.17,1665.12 1296.69,1667.21 1294.61,1670.31"/>
+ </edge>
+ <edge id=":1263725264_0" function="internal">
+ <lane id=":1263725264_0_0" index="0" speed="27.78" length="0.94" shape="1076.86,2106.76 1076.65,2106.56 1076.58,2106.38 1076.66,2106.21 1076.88,2106.05"/>
+ </edge>
+ <edge id=":1263725264_1" function="internal">
+ <lane id=":1263725264_1_0" index="0" speed="27.78" length="12.83" shape="1076.86,2106.76 1069.16,2096.49"/>
+ </edge>
+ <edge id=":1263725264_2" function="internal">
+ <lane id=":1263725264_2_0" index="0" speed="27.78" length="8.50" shape="1076.86,2106.76 1077.45,2098.29"/>
+ </edge>
+ <edge id=":1263725264_3" function="internal">
+ <lane id=":1263725264_3_0" index="0" speed="27.78" length="3.88" shape="1076.86,2106.76 1076.63,2105.59 1076.88,2104.88 1077.58,2104.66 1078.75,2104.90"/>
+ </edge>
+ <edge id=":1263725264_4" function="internal">
+ <lane id=":1263725264_4_0" index="0" speed="27.78" length="1.96" shape="1080.54,2104.12 1079.83,2104.48 1079.30,2104.74 1078.94,2104.88 1078.75,2104.90"/>
+ </edge>
+ <edge id=":1263725264_5" function="internal">
+ <lane id=":1263725264_5_0" index="0" speed="27.78" length="4.14" shape="1080.54,2104.12 1076.88,2106.05"/>
+ </edge>
+ <edge id=":1263725264_6" function="internal">
+ <lane id=":1263725264_6_0" index="0" speed="27.78" length="4.06" shape="1079.00,2101.20 1075.41,2103.10"/>
+ </edge>
+ <edge id=":1263725264_7" function="internal">
+ <lane id=":1263725264_7_0" index="0" speed="27.78" length="12.02" shape="1079.00,2101.20 1076.54,2101.88 1074.09,2101.32 1071.63,2099.53 1069.16,2096.49"/>
+ </edge>
+ <edge id=":1263725264_8" function="internal">
+ <lane id=":1263725264_8_0" index="0" speed="27.78" length="2.41" shape="1079.00,2101.20 1077.52,2101.05 1076.77,2100.52"/>
+ </edge>
+ <edge id=":1263725264_18" function="internal">
+ <lane id=":1263725264_18_0" index="0" speed="27.78" length="2.41" shape="1076.77,2100.52 1076.75,2099.59 1077.45,2098.29"/>
+ </edge>
+ <edge id=":1263725264_9" function="internal">
+ <lane id=":1263725264_9_0" index="0" speed="27.78" length="3.41" shape="1072.75,2095.91 1073.16,2096.19 1073.82,2096.19 1074.74,2095.92 1075.91,2095.37"/>
+ </edge>
+ <edge id=":1263725264_10" function="internal">
+ <lane id=":1263725264_10_0" index="0" speed="27.78" length="10.81" shape="1072.75,2095.91 1078.75,2104.90"/>
+ </edge>
+ <edge id=":1263725264_11" function="internal">
+ <lane id=":1263725264_11_0" index="0" speed="27.78" length="7.67" shape="1072.75,2095.91 1075.41,2103.10"/>
+ </edge>
+ <edge id=":1263725264_12" function="internal">
+ <lane id=":1263725264_12_0" index="0" speed="27.78" length="5.31" shape="1072.75,2095.91 1072.07,2097.40 1071.25,2097.99 1070.28,2097.69 1069.16,2096.49"/>
+ </edge>
+ <edge id=":1263725264_13" function="internal">
+ <lane id=":1263725264_13_0" index="0" speed="27.78" length="3.21" shape="1072.28,2097.29 1069.16,2096.49"/>
+ </edge>
+ <edge id=":1263725264_14" function="internal">
+ <lane id=":1263725264_14_0" index="0" speed="27.78" length="4.11" shape="1072.28,2097.29 1075.91,2095.37"/>
+ </edge>
+ <edge id=":1263725264_15" function="internal">
+ <lane id=":1263725264_15_0" index="0" speed="27.78" length="4.18" shape="1073.75,2100.24 1077.45,2098.29"/>
+ </edge>
+ <edge id=":1263725264_16" function="internal">
+ <lane id=":1263725264_16_0" index="0" speed="27.78" length="6.84" shape="1073.75,2100.24 1078.75,2104.90"/>
+ </edge>
+ <edge id=":1263725264_17" function="internal">
+ <lane id=":1263725264_17_0" index="0" speed="27.78" length="2.41" shape="1073.75,2100.24 1075.24,2100.34 1076.01,2100.85"/>
+ </edge>
+ <edge id=":1263725264_19" function="internal">
+ <lane id=":1263725264_19_0" index="0" speed="27.78" length="2.41" shape="1076.01,2100.85 1076.07,2101.77 1075.41,2103.10"/>
+ </edge>
+ <edge id=":1263725266_0" function="internal">
+ <lane id=":1263725266_0_0" index="0" speed="27.78" length="1.26" shape="1080.14,2108.80 1081.39,2108.69"/>
+ </edge>
+ <edge id=":1263725266_1" function="internal">
+ <lane id=":1263725266_1_0" index="0" speed="27.78" length="2.50" shape="1080.14,2108.80 1077.64,2108.76"/>
+ </edge>
+ <edge id=":1263725266_2" function="internal">
+ <lane id=":1263725266_2_0" index="0" speed="27.78" length="4.65" shape="1080.14,2108.80 1078.90,2108.07 1078.92,2107.07 1080.22,2105.78 1080.54,2105.59"/>
+ </edge>
+ <edge id=":1263725266_16" function="internal">
+ <lane id=":1263725266_16_0" index="0" speed="27.78" length="2.63" shape="1080.54,2105.59 1082.78,2104.22"/>
+ </edge>
+ <edge id=":1263725266_3" function="internal">
+ <lane id=":1263725266_3_0" index="0" speed="27.78" length="0.79" shape="1080.14,2108.80 1079.83,2108.42 1079.79,2108.13"/>
+ </edge>
+ <edge id=":1263725266_17" function="internal">
+ <lane id=":1263725266_17_0" index="0" speed="27.78" length="0.79" shape="1079.79,2108.13 1080.00,2107.91 1080.46,2107.77"/>
+ </edge>
+ <edge id=":1263725266_4" function="internal">
+ <lane id=":1263725266_4_0" index="0" speed="27.78" length="4.38" shape="1084.74,2106.91 1083.99,2107.22 1083.03,2107.47 1081.85,2107.65 1080.46,2107.77"/>
+ </edge>
+ <edge id=":1263725266_5" function="internal">
+ <lane id=":1263725266_5_0" index="0" speed="27.78" length="3.79" shape="1084.74,2106.91 1081.39,2108.69"/>
+ </edge>
+ <edge id=":1263725266_6" function="internal">
+ <lane id=":1263725266_6_0" index="0" speed="27.78" length="7.64" shape="1084.74,2106.91 1082.00,2108.25 1079.91,2109.00 1078.46,2109.17 1077.64,2108.76"/>
+ </edge>
+ <edge id=":1263725266_7" function="internal">
+ <lane id=":1263725266_7_0" index="0" speed="27.78" length="4.87" shape="1084.74,2106.91 1083.24,2106.97 1082.41,2106.54 1082.26,2105.62 1082.78,2104.22"/>
+ </edge>
+ <edge id=":1263725266_8" function="internal">
+ <lane id=":1263725266_8_0" index="0" speed="27.78" length="2.52" shape="1080.54,2105.38 1080.69,2105.31 1081.11,2105.10 1081.81,2104.73 1082.78,2104.22"/>
+ </edge>
+ <edge id=":1263725266_9" function="internal">
+ <lane id=":1263725266_9_0" index="0" speed="27.78" length="2.39" shape="1080.54,2105.38 1080.46,2107.77"/>
+ </edge>
+ <edge id=":1263725266_10" function="internal">
+ <lane id=":1263725266_10_0" index="0" speed="27.78" length="3.42" shape="1080.54,2105.38 1081.39,2108.69"/>
+ </edge>
+ <edge id=":1263725266_11" function="internal">
+ <lane id=":1263725266_11_0" index="0" speed="27.78" length="3.98" shape="1080.54,2105.38 1081.09,2107.31 1080.78,2108.52 1080.11,2108.80"/>
+ </edge>
+ <edge id=":1263725266_18" function="internal">
+ <lane id=":1263725266_18_0" index="0" speed="27.78" length="2.52" shape="1080.11,2108.80 1079.64,2109.00 1077.64,2108.76"/>
+ </edge>
+ <edge id=":1263725266_12" function="internal">
+ <lane id=":1263725266_12_0" index="0" speed="27.78" length="4.19" shape="1079.88,2105.76 1078.54,2106.57 1077.73,2107.34 1077.43,2108.07 1077.64,2108.76"/>
+ </edge>
+ <edge id=":1263725266_13" function="internal">
+ <lane id=":1263725266_13_0" index="0" speed="27.78" length="3.29" shape="1079.88,2105.76 1082.78,2104.22"/>
+ </edge>
+ <edge id=":1263725266_14" function="internal">
+ <lane id=":1263725266_14_0" index="0" speed="27.78" length="2.09" shape="1079.88,2105.76 1080.46,2107.77"/>
+ </edge>
+ <edge id=":1263725266_15" function="internal">
+ <lane id=":1263725266_15_0" index="0" speed="27.78" length="4.82" shape="1079.88,2105.76 1081.35,2105.93 1082.10,2106.47 1082.11,2107.39 1081.39,2108.69"/>
+ </edge>
+ <edge id=":1268463825_0" function="internal">
+ <lane id=":1268463825_0_0" index="0" speed="5.56" length="4.82" shape="1677.50,1992.05 1677.32,1993.53 1676.77,1994.27 1675.85,1994.28 1674.55,1993.55"/>
+ </edge>
+ <edge id=":1323557956_0" function="internal">
+ <lane id=":1323557956_0_0" index="0" speed="18.06" length="5.19" shape="744.24,1610.01 740.01,1613.03"/>
+ </edge>
+ <edge id=":1323557956_1" function="internal">
+ <lane id=":1323557956_1_0" index="0" speed="22.22" length="5.00" shape="740.67,1608.07 740.01,1613.03"/>
+ </edge>
+ <edge id=":1323557968_0" function="internal">
+ <lane id=":1323557968_0_0" index="0" speed="18.06" length="5.05" shape="796.46,1580.44 795.66,1579.30 794.69,1578.71 793.56,1578.67 792.26,1579.17"/>
+ </edge>
+ <edge id=":1323557968_1" function="internal">
+ <lane id=":1323557968_1_0" index="0" speed="22.22" length="6.20" shape="796.46,1580.44 793.63,1574.92"/>
+ </edge>
+ <edge id=":1323557968_2" function="internal">
+ <lane id=":1323557968_2_0" index="0" speed="22.22" length="2.41" shape="796.46,1580.44 796.63,1578.96 797.18,1578.22"/>
+ </edge>
+ <edge id=":1323557968_6" function="internal">
+ <lane id=":1323557968_6_0" index="0" speed="22.22" length="2.41" shape="797.18,1578.22 798.10,1578.21 799.40,1578.93"/>
+ </edge>
+ <edge id=":1323557968_3" function="internal">
+ <lane id=":1323557968_3_0" index="0" speed="22.22" length="6.20" shape="796.57,1573.41 799.40,1578.93"/>
+ </edge>
+ <edge id=":1323557968_4" function="internal">
+ <lane id=":1323557968_4_0" index="0" speed="18.06" length="4.66" shape="796.57,1573.41 796.80,1574.74 796.16,1576.15 794.90,1577.38"/>
+ </edge>
+ <edge id=":1323557968_7" function="internal">
+ <lane id=":1323557968_7_0" index="0" speed="18.06" length="3.19" shape="794.90,1577.38 794.65,1577.62 792.26,1579.17"/>
+ </edge>
+ <edge id=":1323557968_5" function="internal">
+ <lane id=":1323557968_5_0" index="0" speed="22.22" length="2.41" shape="796.57,1573.41 796.40,1574.89 795.85,1575.63"/>
+ </edge>
+ <edge id=":1323557968_8" function="internal">
+ <lane id=":1323557968_8_0" index="0" speed="22.22" length="2.41" shape="795.85,1575.63 794.93,1575.64 793.63,1574.92"/>
+ </edge>
+ <edge id=":1366723470_0" function="internal">
+ <lane id=":1366723470_0_0" index="0" speed="83.33" length="0.10" shape="766.44,922.98 766.44,922.99"/>
+ </edge>
+ <edge id=":1367073442_0" function="internal">
+ <lane id=":1367073442_0_0" index="0" speed="83.33" length="0.10" shape="778.01,918.11 778.01,918.11"/>
+ </edge>
+ <edge id=":1367855907_0" function="internal">
+ <lane id=":1367855907_0_0" index="0" speed="4.86" length="0.96" shape="1399.64,2206.61 1398.97,2205.93"/>
+ </edge>
+ <edge id=":1367855907_1" function="internal">
+ <lane id=":1367855907_1_0" index="0" speed="1.39" length="2.41" shape="1399.64,2206.61 1399.80,2205.13 1400.35,2204.38"/>
+ </edge>
+ <edge id=":1367855907_4" function="internal">
+ <lane id=":1367855907_4_0" index="0" speed="1.39" length="2.41" shape="1400.35,2204.38 1401.27,2204.37 1402.57,2205.09"/>
+ </edge>
+ <edge id=":1367855907_2" function="internal">
+ <lane id=":1367855907_2_0" index="0" speed="4.86" length="2.93" shape="1400.51,2203.01 1402.57,2205.09"/>
+ </edge>
+ <edge id=":1367855907_3" function="internal">
+ <lane id=":1367855907_3_0" index="0" speed="8.33" length="2.41" shape="1400.51,2203.01 1401.22,2204.32 1401.20,2205.24"/>
+ </edge>
+ <edge id=":1367855907_5" function="internal">
+ <lane id=":1367855907_5_0" index="0" speed="8.33" length="2.41" shape="1401.20,2205.24 1400.45,2205.78 1398.97,2205.93"/>
+ </edge>
+ <edge id=":1367855909_0" function="internal">
+ <lane id=":1367855909_0_0" index="0" speed="4.86" length="3.26" shape="1409.18,2224.98 1408.77,2221.75"/>
+ </edge>
+ <edge id=":1367855909_1" function="internal">
+ <lane id=":1367855909_1_0" index="0" speed="1.39" length="9.50" shape="1409.18,2224.98 1404.80,2216.54"/>
+ </edge>
+ <edge id=":1367855909_2" function="internal">
+ <lane id=":1367855909_2_0" index="0" speed="4.86" length="10.32" shape="1409.18,2224.98 1408.24,2222.31 1408.39,2219.98 1409.61,2217.99 1411.91,2216.34"/>
+ </edge>
+ <edge id=":1367855909_3" function="internal">
+ <lane id=":1367855909_3_0" index="0" speed="1.39" length="4.82" shape="1409.18,2224.98 1409.34,2223.50 1409.88,2222.75 1410.80,2222.74 1412.10,2223.46"/>
+ </edge>
+ <edge id=":1367855909_4" function="internal">
+ <lane id=":1367855909_4_0" index="0" speed="4.86" length="5.01" shape="1413.43,2219.27 1412.32,2220.07 1411.72,2221.04 1411.65,2222.16 1412.10,2223.46"/>
+ </edge>
+ <edge id=":1367855909_5" function="internal">
+ <lane id=":1367855909_5_0" index="0" speed="8.33" length="5.28" shape="1413.43,2219.27 1408.77,2221.75"/>
+ </edge>
+ <edge id=":1367855909_6" function="internal">
+ <lane id=":1367855909_6_0" index="0" speed="4.86" length="7.05" shape="1413.43,2219.27 1410.76,2220.21 1408.43,2220.07 1406.83,2219.08"/>
+ </edge>
+ <edge id=":1367855909_16" function="internal">
+ <lane id=":1367855909_16_0" index="0" speed="4.86" length="3.28" shape="1406.83,2219.08 1406.45,2218.85 1404.80,2216.54"/>
+ </edge>
+ <edge id=":1367855909_7" function="internal">
+ <lane id=":1367855909_7_0" index="0" speed="8.33" length="2.41" shape="1413.43,2219.27 1411.95,2219.11 1411.21,2218.57"/>
+ </edge>
+ <edge id=":1367855909_17" function="internal">
+ <lane id=":1367855909_17_0" index="0" speed="8.33" length="2.41" shape="1411.21,2218.57 1411.19,2217.65 1411.91,2216.34"/>
+ </edge>
+ <edge id=":1367855909_8" function="internal">
+ <lane id=":1367855909_8_0" index="0" speed="4.86" length="5.00" shape="1407.73,2215.02 1408.53,2216.14 1409.49,2216.73 1410.62,2216.80 1411.91,2216.34"/>
+ </edge>
+ <edge id=":1367855909_9" function="internal">
+ <lane id=":1367855909_9_0" index="0" speed="1.39" length="9.50" shape="1407.73,2215.02 1412.10,2223.46"/>
+ </edge>
+ <edge id=":1367855909_10" function="internal">
+ <lane id=":1367855909_10_0" index="0" speed="4.86" length="7.26" shape="1407.73,2215.02 1408.88,2217.54 1409.44,2219.50 1409.40,2220.90 1408.77,2221.75"/>
+ </edge>
+ <edge id=":1367855909_11" function="internal">
+ <lane id=":1367855909_11_0" index="0" speed="1.39" length="4.82" shape="1407.73,2215.02 1407.57,2216.50 1407.02,2217.25 1406.10,2217.26 1404.80,2216.54"/>
+ </edge>
+ <edge id=":1367855909_12" function="internal">
+ <lane id=":1367855909_12_0" index="0" speed="4.86" length="3.22" shape="1406.60,2219.21 1404.80,2216.54"/>
+ </edge>
+ <edge id=":1367855909_13" function="internal">
+ <lane id=":1367855909_13_0" index="0" speed="8.33" length="6.03" shape="1406.60,2219.21 1411.91,2216.34"/>
+ </edge>
+ <edge id=":1367855909_14" function="internal">
+ <lane id=":1367855909_14_0" index="0" speed="4.86" length="4.62" shape="1406.60,2219.21 1407.88,2218.90 1409.23,2219.50 1410.47,2220.84"/>
+ </edge>
+ <edge id=":1367855909_18" function="internal">
+ <lane id=":1367855909_18_0" index="0" speed="4.86" length="3.09" shape="1410.47,2220.84 1410.63,2221.02 1412.10,2223.46"/>
+ </edge>
+ <edge id=":1367855909_15" function="internal">
+ <lane id=":1367855909_15_0" index="0" speed="8.33" length="2.44" shape="1406.60,2219.21 1408.10,2219.03 1408.96,2219.39"/>
+ </edge>
+ <edge id=":1367855909_19" function="internal">
+ <lane id=":1367855909_19_0" index="0" speed="8.33" length="2.44" shape="1408.96,2219.39 1409.18,2220.30 1408.77,2221.75"/>
+ </edge>
+ <edge id=":1367855910_0" function="internal">
+ <lane id=":1367855910_0_0" index="0" speed="4.86" length="3.03" shape="1417.47,2233.80 1417.97,2236.79"/>
+ </edge>
+ <edge id=":1367855910_1" function="internal">
+ <lane id=":1367855910_1_0" index="0" speed="1.39" length="2.41" shape="1417.47,2233.80 1417.31,2235.28 1416.77,2236.02"/>
+ </edge>
+ <edge id=":1367855910_4" function="internal">
+ <lane id=":1367855910_4_0" index="0" speed="1.39" length="2.41" shape="1416.77,2236.02 1415.85,2236.04 1414.55,2235.32"/>
+ </edge>
+ <edge id=":1367855910_2" function="internal">
+ <lane id=":1367855910_2_0" index="0" speed="4.86" length="0.99" shape="1414.71,2236.29 1414.55,2235.32"/>
+ </edge>
+ <edge id=":1367855910_3" function="internal">
+ <lane id=":1367855910_3_0" index="0" speed="8.33" length="2.41" shape="1414.71,2236.29 1415.71,2235.19 1416.59,2234.91"/>
+ </edge>
+ <edge id=":1367855910_5" function="internal">
+ <lane id=":1367855910_5_0" index="0" speed="8.33" length="2.41" shape="1416.59,2234.91 1417.34,2235.44 1417.97,2236.79"/>
+ </edge>
+ <edge id=":1367855923_0" function="internal">
+ <lane id=":1367855923_0_0" index="0" speed="22.22" length="8.72" shape="1405.86,2163.02 1410.03,2170.68"/>
+ </edge>
+ <edge id=":1367855923_1" function="internal">
+ <lane id=":1367855923_1_0" index="0" speed="15.28" length="7.22" shape="1405.86,2163.02 1406.91,2165.24 1407.24,2167.04 1406.85,2168.43 1405.73,2169.41"/>
+ </edge>
+ <edge id=":1367855923_2" function="internal">
+ <lane id=":1367855923_2_0" index="0" speed="15.28" length="7.95" shape="1404.21,2166.48 1405.66,2166.18 1407.11,2166.78 1408.57,2168.28 1410.03,2170.68"/>
+ </edge>
+ <edge id=":1367855923_3" function="internal">
+ <lane id=":1367855923_3_0" index="0" speed="8.33" length="4.82" shape="1404.21,2166.48 1405.69,2166.64 1406.43,2167.18 1406.45,2168.11 1405.73,2169.41"/>
+ </edge>
+ <edge id=":1367855925_0" function="internal">
+ <lane id=":1367855925_0_0" index="0" speed="15.28" length="4.42" shape="1380.49,2175.53 1379.85,2174.71 1378.99,2174.33 1377.93,2174.39 1376.66,2174.90"/>
+ </edge>
+ <edge id=":1367855925_1" function="internal">
+ <lane id=":1367855925_1_0" index="0" speed="15.28" length="9.50" shape="1380.49,2175.53 1379.69,2173.16 1379.88,2171.05 1381.08,2169.22 1383.27,2167.66"/>
+ </edge>
+ <edge id=":1367855925_2" function="internal">
+ <lane id=":1367855925_2_0" index="0" speed="8.33" length="4.82" shape="1380.49,2175.53 1380.65,2174.05 1381.20,2173.31 1382.12,2173.29 1383.42,2174.01"/>
+ </edge>
+ <edge id=":1367855925_3" function="internal">
+ <lane id=":1367855925_3_0" index="0" speed="15.28" length="4.21" shape="1384.82,2170.57 1383.79,2171.28 1383.22,2172.09 1383.10,2173.00 1383.42,2174.01"/>
+ </edge>
+ <edge id=":1367855925_4" function="internal">
+ <lane id=":1367855925_4_0" index="0" speed="22.22" length="9.24" shape="1384.82,2170.57 1376.66,2174.90"/>
+ </edge>
+ <edge id=":1367855925_5" function="internal">
+ <lane id=":1367855925_5_0" index="0" speed="22.22" length="2.41" shape="1384.82,2170.57 1383.34,2170.42 1382.59,2169.89"/>
+ </edge>
+ <edge id=":1367855925_9" function="internal">
+ <lane id=":1367855925_9_0" index="0" speed="22.22" length="2.41" shape="1382.59,2169.89 1382.56,2168.97 1383.27,2167.66"/>
+ </edge>
+ <edge id=":1367855925_6" function="internal">
+ <lane id=":1367855925_6_0" index="0" speed="22.22" length="9.24" shape="1375.11,2171.99 1383.27,2167.66"/>
+ </edge>
+ <edge id=":1367855925_7" function="internal">
+ <lane id=":1367855925_7_0" index="0" speed="15.28" length="7.35" shape="1375.11,2171.99 1377.76,2170.98 1380.03,2170.98 1381.92,2171.99 1381.98,2172.08"/>
+ </edge>
+ <edge id=":1367855925_10" function="internal">
+ <lane id=":1367855925_10_0" index="0" speed="15.28" length="2.41" shape="1381.98,2172.08 1383.42,2174.01"/>
+ </edge>
+ <edge id=":1367855925_8" function="internal">
+ <lane id=":1367855925_8_0" index="0" speed="22.22" length="2.41" shape="1375.11,2171.99 1376.59,2172.13 1377.34,2172.67"/>
+ </edge>
+ <edge id=":1367855925_11" function="internal">
+ <lane id=":1367855925_11_0" index="0" speed="22.22" length="2.41" shape="1377.34,2172.67 1377.36,2173.59 1376.66,2174.90"/>
+ </edge>
+ <edge id=":1367855926_0" function="internal">
+ <lane id=":1367855926_0_0" index="0" speed="15.28" length="4.61" shape="1393.05,2179.53 1392.26,2178.38 1391.38,2177.75 1390.40,2177.64 1389.33,2178.05"/>
+ </edge>
+ <edge id=":1367855926_1" function="internal">
+ <lane id=":1367855926_1_0" index="0" speed="22.22" length="4.84" shape="1393.05,2179.53 1390.80,2175.25"/>
+ </edge>
+ <edge id=":1367855926_2" function="internal">
+ <lane id=":1367855926_2_0" index="0" speed="15.28" length="6.79" shape="1393.05,2179.53 1391.80,2176.99 1391.05,2175.09 1390.81,2173.85 1391.07,2173.26"/>
+ </edge>
+ <edge id=":1367855926_3" function="internal">
+ <lane id=":1367855926_3_0" index="0" speed="8.33" length="3.72" shape="1392.56,2176.21 1389.33,2178.05"/>
+ </edge>
+ <edge id=":1367855926_4" function="internal">
+ <lane id=":1367855926_4_0" index="0" speed="15.28" length="2.25" shape="1392.56,2176.21 1392.08,2176.34 1391.62,2176.22 1391.20,2175.86 1390.80,2175.25"/>
+ </edge>
+ <edge id=":1367855926_5" function="internal">
+ <lane id=":1367855926_5_0" index="0" speed="8.33" length="4.82" shape="1392.56,2176.21 1391.08,2176.03 1390.34,2175.48 1390.34,2174.56 1391.07,2173.26"/>
+ </edge>
+ <edge id=":1367855926_6" function="internal">
+ <lane id=":1367855926_6_0" index="0" speed="15.28" length="3.57" shape="1387.64,2175.21 1388.74,2174.68 1389.63,2174.51 1390.32,2174.70 1390.80,2175.25"/>
+ </edge>
+ <edge id=":1367855926_7" function="internal">
+ <lane id=":1367855926_7_0" index="0" speed="8.33" length="3.95" shape="1387.64,2175.21 1391.07,2173.26"/>
+ </edge>
+ <edge id=":1367855926_8" function="internal">
+ <lane id=":1367855926_8_0" index="0" speed="8.33" length="4.82" shape="1387.64,2175.21 1389.13,2175.29 1389.90,2175.78 1389.97,2176.70 1389.33,2178.05"/>
+ </edge>
+ <edge id=":1367855927_0" function="internal">
+ <lane id=":1367855927_0_0" index="0" speed="8.33" length="8.75" shape="1384.88,2183.97 1380.84,2176.20"/>
+ </edge>
+ <edge id=":1367855927_1" function="internal">
+ <lane id=":1367855927_1_0" index="0" speed="8.33" length="9.87" shape="1384.88,2183.97 1383.96,2181.40 1384.03,2179.14 1385.09,2177.17 1387.14,2175.51"/>
+ </edge>
+ <edge id=":1367855927_2" function="internal">
+ <lane id=":1367855927_2_0" index="0" speed="8.33" length="4.82" shape="1384.88,2183.97 1385.04,2182.49 1385.58,2181.75 1386.50,2181.73 1387.81,2182.45"/>
+ </edge>
+ <edge id=":1367855927_3" function="internal">
+ <lane id=":1367855927_3_0" index="0" speed="8.33" length="4.77" shape="1388.83,2178.34 1387.86,2179.14 1387.37,2180.09 1387.35,2181.19 1387.81,2182.45"/>
+ </edge>
+ <edge id=":1367855927_4" function="internal">
+ <lane id=":1367855927_4_0" index="0" speed="8.33" length="9.56" shape="1388.83,2178.34 1386.36,2179.38 1384.21,2179.37 1382.37,2178.31 1380.84,2176.20"/>
+ </edge>
+ <edge id=":1367855927_5" function="internal">
+ <lane id=":1367855927_5_0" index="0" speed="8.33" length="4.82" shape="1388.83,2178.34 1387.35,2178.27 1386.57,2177.77 1386.50,2176.85 1387.14,2175.51"/>
+ </edge>
+ <edge id=":1367855927_6" function="internal">
+ <lane id=":1367855927_6_0" index="0" speed="8.33" length="4.01" shape="1383.77,2174.68 1384.40,2175.55 1385.18,2175.97 1386.09,2175.96 1387.14,2175.51"/>
+ </edge>
+ <edge id=":1367855927_7" function="internal">
+ <lane id=":1367855927_7_0" index="0" speed="8.33" length="8.75" shape="1383.77,2174.68 1387.81,2182.45"/>
+ </edge>
+ <edge id=":1367855927_8" function="internal">
+ <lane id=":1367855927_8_0" index="0" speed="8.33" length="4.82" shape="1383.77,2174.68 1383.61,2176.16 1383.07,2176.91 1382.15,2176.92 1380.84,2176.20"/>
+ </edge>
+ <edge id=":1367855929_0" function="internal">
+ <lane id=":1367855929_0_0" index="0" speed="8.33" length="5.00" shape="1395.72,2204.85 1393.41,2200.41"/>
+ </edge>
+ <edge id=":1367855929_1" function="internal">
+ <lane id=":1367855929_1_0" index="0" speed="8.33" length="8.81" shape="1395.72,2204.85 1394.81,2202.46 1395.22,2201.31 1396.94,2201.40 1399.97,2202.73"/>
+ </edge>
+ <edge id=":1367855929_2" function="internal">
+ <lane id=":1367855929_2_0" index="0" speed="8.33" length="4.98" shape="1395.72,2204.85 1396.27,2203.41 1397.00,2202.81 1397.93,2203.03 1399.05,2204.09"/>
+ </edge>
+ <edge id=":1367855929_3" function="internal">
+ <lane id=":1367855929_3_0" index="0" speed="8.33" length="1.67" shape="1398.11,2205.47 1399.05,2204.09"/>
+ </edge>
+ <edge id=":1367855929_4" function="internal">
+ <lane id=":1367855929_4_0" index="0" speed="8.33" length="6.90" shape="1398.11,2205.47 1393.41,2200.41"/>
+ </edge>
+ <edge id=":1367855929_5" function="internal">
+ <lane id=":1367855929_5_0" index="0" speed="8.33" length="4.85" shape="1398.11,2205.47 1397.54,2204.09 1397.67,2203.17 1398.48,2202.71 1399.97,2202.73"/>
+ </edge>
+ <edge id=":1367855929_6" function="internal">
+ <lane id=":1367855929_6_0" index="0" speed="8.33" length="5.28" shape="1396.34,2198.89 1399.97,2202.73"/>
+ </edge>
+ <edge id=":1367855929_7" function="internal">
+ <lane id=":1367855929_7_0" index="0" speed="8.33" length="5.86" shape="1396.34,2198.89 1399.05,2204.09"/>
+ </edge>
+ <edge id=":1367855929_8" function="internal">
+ <lane id=":1367855929_8_0" index="0" speed="8.33" length="4.82" shape="1396.34,2198.89 1396.18,2200.37 1395.64,2201.11 1394.72,2201.13 1393.41,2200.41"/>
+ </edge>
+ <edge id=":1367855930_0" function="internal">
+ <lane id=":1367855930_0_0" index="0" speed="8.33" length="3.00" shape="1405.41,2223.49 1404.03,2220.83"/>
+ </edge>
+ <edge id=":1367855930_1" function="internal">
+ <lane id=":1367855930_1_0" index="0" speed="8.33" length="4.72" shape="1405.41,2223.49 1404.94,2222.22 1404.94,2221.12 1405.39,2220.17 1406.31,2219.38"/>
+ </edge>
+ <edge id=":1367855930_2" function="internal">
+ <lane id=":1367855930_2_0" index="0" speed="8.33" length="4.88" shape="1405.41,2223.49 1405.81,2222.04 1406.48,2221.38 1407.40,2221.51 1408.59,2222.44"/>
+ </edge>
+ <edge id=":1367855930_3" function="internal">
+ <lane id=":1367855930_3_0" index="0" speed="8.33" length="0.69" shape="1408.04,2222.20 1408.19,2222.14 1408.34,2222.16 1408.47,2222.26 1408.59,2222.44"/>
+ </edge>
+ <edge id=":1367855930_4" function="internal">
+ <lane id=":1367855930_4_0" index="0" speed="8.33" length="4.91" shape="1408.04,2222.20 1406.85,2222.69 1405.79,2222.62 1404.85,2222.00 1404.03,2220.83"/>
+ </edge>
+ <edge id=":1367855930_5" function="internal">
+ <lane id=":1367855930_5_0" index="0" speed="8.33" length="4.82" shape="1408.04,2222.20 1406.55,2222.14 1405.77,2221.65 1405.69,2220.74 1406.31,2219.38"/>
+ </edge>
+ <edge id=":1367855930_6" function="internal">
+ <lane id=":1367855930_6_0" index="0" speed="8.33" length="1.40" shape="1406.27,2217.98 1406.31,2219.38"/>
+ </edge>
+ <edge id=":1367855930_7" function="internal">
+ <lane id=":1367855930_7_0" index="0" speed="8.33" length="5.03" shape="1406.27,2217.98 1408.59,2222.44"/>
+ </edge>
+ <edge id=":1367855930_8" function="internal">
+ <lane id=":1367855930_8_0" index="0" speed="8.33" length="5.29" shape="1406.27,2217.98 1406.78,2219.54 1406.57,2220.53 1405.66,2220.96 1404.03,2220.83"/>
+ </edge>
+ <edge id=":1367855931_0" function="internal">
+ <lane id=":1367855931_0_0" index="0" speed="8.33" length="4.06" shape="1415.54,2242.98 1413.67,2239.38"/>
+ </edge>
+ <edge id=":1367855931_1" function="internal">
+ <lane id=":1367855931_1_0" index="0" speed="8.33" length="6.06" shape="1415.54,2242.98 1414.60,2237.00"/>
+ </edge>
+ <edge id=":1367855931_2" function="internal">
+ <lane id=":1367855931_2_0" index="0" speed="8.33" length="4.82" shape="1415.54,2242.98 1415.70,2241.50 1416.24,2240.76 1417.16,2240.74 1418.47,2241.46"/>
+ </edge>
+ <edge id=":1367855931_3" function="internal">
+ <lane id=":1367855931_3_0" index="0" speed="8.33" length="4.38" shape="1417.92,2237.12 1418.47,2241.46"/>
+ </edge>
+ <edge id=":1367855931_4" function="internal">
+ <lane id=":1367855931_4_0" index="0" speed="8.33" length="8.67" shape="1417.92,2237.12 1417.19,2240.30 1416.24,2241.73 1415.07,2241.43 1413.67,2239.38"/>
+ </edge>
+ <edge id=":1367855931_5" function="internal">
+ <lane id=":1367855931_5_0" index="0" speed="8.33" length="4.85" shape="1417.92,2237.12 1417.04,2238.33 1416.20,2238.72 1415.38,2238.27 1414.60,2237.00"/>
+ </edge>
+ <edge id=":1367855931_6" function="internal">
+ <lane id=":1367855931_6_0" index="0" speed="8.33" length="1.58" shape="1416.18,2237.05 1414.60,2237.00"/>
+ </edge>
+ <edge id=":1367855931_7" function="internal">
+ <lane id=":1367855931_7_0" index="0" speed="8.33" length="4.97" shape="1416.18,2237.05 1418.47,2241.46"/>
+ </edge>
+ <edge id=":1367855931_8" function="internal">
+ <lane id=":1367855931_8_0" index="0" speed="8.33" length="5.00" shape="1416.18,2237.05 1416.42,2238.58 1416.09,2239.47 1415.17,2239.74 1413.67,2239.38"/>
+ </edge>
+ <edge id=":1367855932_0" function="internal">
+ <lane id=":1367855932_0_0" index="0" speed="8.33" length="6.21" shape="1427.21,2265.45 1424.35,2259.94"/>
+ </edge>
+ <edge id=":1367855932_1" function="internal">
+ <lane id=":1367855932_1_0" index="0" speed="15.28" length="7.85" shape="1427.21,2265.45 1426.94,2264.07 1427.56,2262.65 1429.07,2261.21 1431.46,2259.74"/>
+ </edge>
+ <edge id=":1367855932_2" function="internal">
+ <lane id=":1367855932_2_0" index="0" speed="8.33" length="4.82" shape="1427.21,2265.45 1427.37,2263.97 1427.92,2263.23 1428.84,2263.21 1430.14,2263.93"/>
+ </edge>
+ <edge id=":1367855932_3" function="internal">
+ <lane id=":1367855932_3_0" index="0" speed="15.28" length="5.00" shape="1427.28,2258.42 1428.08,2259.54 1429.04,2260.13 1430.17,2260.20 1431.46,2259.74"/>
+ </edge>
+ <edge id=":1367855932_4" function="internal">
+ <lane id=":1367855932_4_0" index="0" speed="8.33" length="6.21" shape="1427.28,2258.42 1430.14,2263.93"/>
+ </edge>
+ <edge id=":1367855932_5" function="internal">
+ <lane id=":1367855932_5_0" index="0" speed="8.33" length="4.82" shape="1427.28,2258.42 1427.12,2259.90 1426.58,2260.65 1425.65,2260.66 1424.35,2259.94"/>
+ </edge>
+ <edge id=":1367855932_6" function="internal">
+ <lane id=":1367855932_6_0" index="0" speed="15.28" length="5.01" shape="1423.03,2264.13 1424.14,2263.33 1424.74,2262.37 1424.81,2261.24 1424.35,2259.94"/>
+ </edge>
+ <edge id=":1367855932_7" function="internal">
+ <lane id=":1367855932_7_0" index="0" speed="22.22" length="9.51" shape="1423.03,2264.13 1431.46,2259.74"/>
+ </edge>
+ <edge id=":1367855932_8" function="internal">
+ <lane id=":1367855932_8_0" index="0" speed="15.28" length="7.85" shape="1423.03,2264.13 1425.61,2263.01 1427.65,2262.61 1429.16,2262.91 1430.14,2263.93"/>
+ </edge>
+ <edge id=":1367855969_0" function="internal">
+ <lane id=":1367855969_0_0" index="0" speed="8.33" length="4.82" shape="1613.54,2616.98 1613.38,2618.46 1612.84,2619.21 1611.92,2619.22 1610.61,2618.50"/>
+ </edge>
+ <edge id=":1369844756_0" function="internal">
+ <lane id=":1369844756_0_0" index="0" speed="1.39" length="4.82" shape="1456.12,2205.66 1455.94,2207.14 1455.38,2207.87 1454.46,2207.87 1453.17,2207.13"/>
+ </edge>
+ <edge id=":1369844757_0" function="internal">
+ <lane id=":1369844757_0_0" index="0" speed="4.86" length="5.01" shape="1451.23,2203.24 1450.45,2202.11 1449.49,2201.51 1448.36,2201.42 1447.06,2201.86"/>
+ </edge>
+ <edge id=":1369844757_1" function="internal">
+ <lane id=":1369844757_1_0" index="0" speed="1.39" length="9.52" shape="1451.23,2203.24 1446.93,2194.75"/>
+ </edge>
+ <edge id=":1369844757_2" function="internal">
+ <lane id=":1369844757_2_0" index="0" speed="4.86" length="10.33" shape="1451.23,2203.24 1450.33,2200.56 1450.50,2198.22 1451.74,2196.24 1454.04,2194.60"/>
+ </edge>
+ <edge id=":1369844757_3" function="internal">
+ <lane id=":1369844757_3_0" index="0" speed="1.39" length="4.82" shape="1451.23,2203.24 1451.41,2201.77 1451.97,2201.03 1452.89,2201.03 1454.18,2201.77"/>
+ </edge>
+ <edge id=":1369844757_4" function="internal">
+ <lane id=":1369844757_4_0" index="0" speed="4.86" length="5.05" shape="1455.53,2197.54 1454.42,2198.34 1453.82,2199.31 1453.74,2200.45 1454.18,2201.77"/>
+ </edge>
+ <edge id=":1369844757_5" function="internal">
+ <lane id=":1369844757_5_0" index="0" speed="8.33" length="9.51" shape="1455.53,2197.54 1447.06,2201.86"/>
+ </edge>
+ <edge id=":1369844757_6" function="internal">
+ <lane id=":1369844757_6_0" index="0" speed="4.86" length="7.15" shape="1455.53,2197.54 1452.87,2198.47 1450.55,2198.31 1448.85,2197.25"/>
+ </edge>
+ <edge id=":1369844757_16" function="internal">
+ <lane id=":1369844757_16_0" index="0" speed="4.86" length="3.17" shape="1448.85,2197.25 1448.57,2197.07 1446.93,2194.75"/>
+ </edge>
+ <edge id=":1369844757_7" function="internal">
+ <lane id=":1369844757_7_0" index="0" speed="8.33" length="2.41" shape="1455.53,2197.54 1454.06,2197.36 1453.32,2196.82"/>
+ </edge>
+ <edge id=":1369844757_17" function="internal">
+ <lane id=":1369844757_17_0" index="0" speed="8.33" length="2.41" shape="1453.32,2196.82 1453.31,2195.89 1454.04,2194.60"/>
+ </edge>
+ <edge id=":1369844757_8" function="internal">
+ <lane id=":1369844757_8_0" index="0" speed="4.86" length="5.00" shape="1449.87,2193.25 1450.66,2194.37 1451.62,2194.97 1452.75,2195.05 1454.04,2194.60"/>
+ </edge>
+ <edge id=":1369844757_9" function="internal">
+ <lane id=":1369844757_9_0" index="0" speed="1.39" length="9.55" shape="1449.87,2193.25 1454.18,2201.77"/>
+ </edge>
+ <edge id=":1369844757_10" function="internal">
+ <lane id=":1369844757_10_0" index="0" speed="4.86" length="10.35" shape="1449.87,2193.25 1450.79,2195.93 1450.63,2198.26 1449.39,2200.24 1447.06,2201.86"/>
+ </edge>
+ <edge id=":1369844757_11" function="internal">
+ <lane id=":1369844757_11_0" index="0" speed="1.39" length="4.82" shape="1449.87,2193.25 1449.70,2194.72 1449.15,2195.47 1448.23,2195.48 1446.93,2194.75"/>
+ </edge>
+ <edge id=":1369844757_12" function="internal">
+ <lane id=":1369844757_12_0" index="0" speed="4.86" length="5.01" shape="1445.57,2198.92 1446.70,2198.13 1447.30,2197.18 1447.38,2196.05 1446.93,2194.75"/>
+ </edge>
+ <edge id=":1369844757_13" function="internal">
+ <lane id=":1369844757_13_0" index="0" speed="8.33" length="9.50" shape="1445.57,2198.92 1454.04,2194.60"/>
+ </edge>
+ <edge id=":1369844757_14" function="internal">
+ <lane id=":1369844757_14_0" index="0" speed="4.86" length="7.12" shape="1445.57,2198.92 1448.26,2198.01 1450.59,2198.18 1452.23,2199.22"/>
+ </edge>
+ <edge id=":1369844757_18" function="internal">
+ <lane id=":1369844757_18_0" index="0" speed="4.86" length="3.23" shape="1452.23,2199.22 1452.57,2199.44 1454.18,2201.77"/>
+ </edge>
+ <edge id=":1369844757_15" function="internal">
+ <lane id=":1369844757_15_0" index="0" speed="8.33" length="2.41" shape="1445.57,2198.92 1447.05,2199.10 1447.79,2199.65"/>
+ </edge>
+ <edge id=":1369844757_19" function="internal">
+ <lane id=":1369844757_19_0" index="0" speed="8.33" length="2.41" shape="1447.79,2199.65 1447.80,2200.57 1447.06,2201.86"/>
+ </edge>
+ <edge id=":1369844758_0" function="internal">
+ <lane id=":1369844758_0_0" index="0" speed="1.39" length="4.82" shape="1443.45,2211.82 1443.28,2213.30 1442.74,2214.04 1441.82,2214.05 1440.52,2213.33"/>
+ </edge>
+ <edge id=":1369844760_0" function="internal">
+ <lane id=":1369844760_0_0" index="0" speed="1.39" length="4.82" shape="1444.62,2190.23 1444.79,2188.76 1445.34,2188.01 1446.26,2188.00 1447.56,2188.73"/>
+ </edge>
+ <edge id=":1369844762_0" function="internal">
+ <lane id=":1369844762_0_0" index="0" speed="4.86" length="5.01" shape="1438.62,2209.64 1437.82,2208.52 1436.86,2207.92 1435.73,2207.86 1434.44,2208.31"/>
+ </edge>
+ <edge id=":1369844762_1" function="internal">
+ <lane id=":1369844762_1_0" index="0" speed="1.39" length="9.51" shape="1438.62,2209.64 1434.26,2201.19"/>
+ </edge>
+ <edge id=":1369844762_2" function="internal">
+ <lane id=":1369844762_2_0" index="0" speed="4.86" length="10.36" shape="1438.62,2209.64 1437.69,2206.96 1437.85,2204.62 1439.09,2202.64 1441.42,2201.02"/>
+ </edge>
+ <edge id=":1369844762_3" function="internal">
+ <lane id=":1369844762_3_0" index="0" speed="1.39" length="4.82" shape="1438.62,2209.64 1438.79,2208.16 1439.33,2207.42 1440.25,2207.41 1441.55,2208.13"/>
+ </edge>
+ <edge id=":1369844762_4" function="internal">
+ <lane id=":1369844762_4_0" index="0" speed="4.86" length="5.01" shape="1442.91,2203.96 1441.78,2204.75 1441.18,2205.71 1441.10,2206.83 1441.55,2208.13"/>
+ </edge>
+ <edge id=":1369844762_5" function="internal">
+ <lane id=":1369844762_5_0" index="0" speed="8.33" length="9.52" shape="1442.91,2203.96 1434.44,2208.31"/>
+ </edge>
+ <edge id=":1369844762_6" function="internal">
+ <lane id=":1369844762_6_0" index="0" speed="4.86" length="7.13" shape="1442.91,2203.96 1440.22,2204.87 1437.88,2204.71 1436.22,2203.69"/>
+ </edge>
+ <edge id=":1369844762_16" function="internal">
+ <lane id=":1369844762_16_0" index="0" speed="4.86" length="3.20" shape="1436.22,2203.69 1435.90,2203.49 1434.26,2201.19"/>
+ </edge>
+ <edge id=":1369844762_7" function="internal">
+ <lane id=":1369844762_7_0" index="0" speed="8.33" length="2.41" shape="1442.91,2203.96 1441.43,2203.78 1440.69,2203.23"/>
+ </edge>
+ <edge id=":1369844762_17" function="internal">
+ <lane id=":1369844762_17_0" index="0" speed="8.33" length="2.41" shape="1440.69,2203.23 1440.69,2202.31 1441.42,2201.02"/>
+ </edge>
+ <edge id=":1369844762_8" function="internal">
+ <lane id=":1369844762_8_0" index="0" speed="4.86" length="5.05" shape="1437.19,2199.67 1437.99,2200.79 1438.96,2201.39 1440.10,2201.46 1441.42,2201.02"/>
+ </edge>
+ <edge id=":1369844762_9" function="internal">
+ <lane id=":1369844762_9_0" index="0" speed="1.39" length="9.52" shape="1437.19,2199.67 1441.55,2208.13"/>
+ </edge>
+ <edge id=":1369844762_10" function="internal">
+ <lane id=":1369844762_10_0" index="0" speed="4.86" length="10.33" shape="1437.19,2199.67 1438.12,2202.34 1437.97,2204.67 1436.74,2206.66 1434.44,2208.31"/>
+ </edge>
+ <edge id=":1369844762_11" function="internal">
+ <lane id=":1369844762_11_0" index="0" speed="1.39" length="4.82" shape="1437.19,2199.67 1437.02,2201.15 1436.48,2201.90 1435.56,2201.91 1434.26,2201.19"/>
+ </edge>
+ <edge id=":1369844762_12" function="internal">
+ <lane id=":1369844762_12_0" index="0" speed="4.86" length="5.02" shape="1432.91,2205.39 1434.03,2204.58 1434.63,2203.61 1434.71,2202.48 1434.26,2201.19"/>
+ </edge>
+ <edge id=":1369844762_13" function="internal">
+ <lane id=":1369844762_13_0" index="0" speed="8.33" length="9.57" shape="1432.91,2205.39 1441.42,2201.02"/>
+ </edge>
+ <edge id=":1369844762_14" function="internal">
+ <lane id=":1369844762_14_0" index="0" speed="4.86" length="7.19" shape="1432.91,2205.39 1435.59,2204.44 1437.92,2204.58 1439.63,2205.64"/>
+ </edge>
+ <edge id=":1369844762_18" function="internal">
+ <lane id=":1369844762_18_0" index="0" speed="4.86" length="3.17" shape="1439.63,2205.64 1439.91,2205.81 1441.55,2208.13"/>
+ </edge>
+ <edge id=":1369844762_15" function="internal">
+ <lane id=":1369844762_15_0" index="0" speed="8.33" length="2.41" shape="1432.91,2205.39 1434.39,2205.55 1435.14,2206.09"/>
+ </edge>
+ <edge id=":1369844762_19" function="internal">
+ <lane id=":1369844762_19_0" index="0" speed="8.33" length="2.41" shape="1435.14,2206.09 1435.15,2207.01 1434.44,2208.31"/>
+ </edge>
+ <edge id=":1369844763_0" function="internal">
+ <lane id=":1369844763_0_0" index="0" speed="1.39" length="4.82" shape="1429.46,2218.83 1429.28,2220.31 1428.73,2221.05 1427.80,2221.05 1426.51,2220.31"/>
+ </edge>
+ <edge id=":1369844770_0" function="internal">
+ <lane id=":1369844770_0_0" index="0" speed="1.39" length="4.82" shape="1432.04,2196.92 1432.21,2195.44 1432.75,2194.69 1433.67,2194.68 1434.97,2195.40"/>
+ </edge>
+ <edge id=":1369844772_0" function="internal">
+ <lane id=":1369844772_0_0" index="0" speed="4.86" length="5.02" shape="1424.78,2216.88 1423.99,2215.75 1423.03,2215.15 1421.90,2215.08 1420.60,2215.54"/>
+ </edge>
+ <edge id=":1369844772_1" function="internal">
+ <lane id=":1369844772_1_0" index="0" speed="1.39" length="9.72" shape="1424.78,2216.88 1420.51,2208.15"/>
+ </edge>
+ <edge id=":1369844772_2" function="internal">
+ <lane id=":1369844772_2_0" index="0" speed="4.86" length="10.47" shape="1424.78,2216.88 1423.87,2214.18 1424.05,2211.83 1425.31,2209.81 1427.65,2208.13"/>
+ </edge>
+ <edge id=":1369844772_3" function="internal">
+ <lane id=":1369844772_3_0" index="0" speed="1.39" length="4.82" shape="1424.78,2216.88 1424.96,2215.40 1425.51,2214.66 1426.43,2214.66 1427.72,2215.39"/>
+ </edge>
+ <edge id=":1369844772_4" function="internal">
+ <lane id=":1369844772_4_0" index="0" speed="4.86" length="5.20" shape="1429.18,2211.06 1428.01,2211.90 1427.37,2212.90 1427.28,2214.06 1427.72,2215.39"/>
+ </edge>
+ <edge id=":1369844772_5" function="internal">
+ <lane id=":1369844772_5_0" index="0" speed="8.33" length="9.68" shape="1429.18,2211.06 1420.60,2215.54"/>
+ </edge>
+ <edge id=":1369844772_6" function="internal">
+ <lane id=":1369844772_6_0" index="0" speed="4.86" length="7.16" shape="1429.18,2211.06 1426.45,2212.02 1424.09,2211.86 1422.50,2210.82"/>
+ </edge>
+ <edge id=":1369844772_16" function="internal">
+ <lane id=":1369844772_16_0" index="0" speed="4.86" length="3.36" shape="1422.50,2210.82 1422.11,2210.57 1420.51,2208.15"/>
+ </edge>
+ <edge id=":1369844772_7" function="internal">
+ <lane id=":1369844772_7_0" index="0" speed="8.33" length="2.41" shape="1429.18,2211.06 1427.70,2210.90 1426.96,2210.36"/>
+ </edge>
+ <edge id=":1369844772_17" function="internal">
+ <lane id=":1369844772_17_0" index="0" speed="8.33" length="2.41" shape="1426.96,2210.36 1426.94,2209.44 1427.65,2208.13"/>
+ </edge>
+ <edge id=":1369844772_8" function="internal">
+ <lane id=":1369844772_8_0" index="0" speed="4.86" length="5.05" shape="1423.50,2206.74 1424.26,2207.90 1425.21,2208.52 1426.34,2208.60 1427.65,2208.13"/>
+ </edge>
+ <edge id=":1369844772_9" function="internal">
+ <lane id=":1369844772_9_0" index="0" speed="1.39" length="9.63" shape="1423.50,2206.74 1427.72,2215.39"/>
+ </edge>
+ <edge id=":1369844772_10" function="internal">
+ <lane id=":1369844772_10_0" index="0" speed="4.86" length="10.47" shape="1423.50,2206.74 1424.35,2209.48 1424.16,2211.86 1422.91,2213.88 1420.60,2215.54"/>
+ </edge>
+ <edge id=":1369844772_11" function="internal">
+ <lane id=":1369844772_11_0" index="0" speed="1.39" length="4.82" shape="1423.50,2206.74 1423.28,2208.21 1422.71,2208.94 1421.79,2208.92 1420.51,2208.15"/>
+ </edge>
+ <edge id=":1369844772_12" function="internal">
+ <lane id=":1369844772_12_0" index="0" speed="4.86" length="5.30" shape="1419.08,2212.61 1420.23,2211.78 1420.86,2210.75 1420.95,2209.55 1420.51,2208.15"/>
+ </edge>
+ <edge id=":1369844772_13" function="internal">
+ <lane id=":1369844772_13_0" index="0" speed="8.33" length="9.67" shape="1419.08,2212.61 1427.65,2208.13"/>
+ </edge>
+ <edge id=":1369844772_14" function="internal">
+ <lane id=":1369844772_14_0" index="0" speed="4.86" length="7.14" shape="1419.08,2212.61 1421.77,2211.66 1424.11,2211.81 1425.76,2212.85"/>
+ </edge>
+ <edge id=":1369844772_18" function="internal">
+ <lane id=":1369844772_18_0" index="0" speed="4.86" length="3.25" shape="1425.76,2212.85 1426.09,2213.06 1427.72,2215.39"/>
+ </edge>
+ <edge id=":1369844772_15" function="internal">
+ <lane id=":1369844772_15_0" index="0" speed="8.33" length="2.41" shape="1419.08,2212.61 1420.56,2212.77 1421.30,2213.31"/>
+ </edge>
+ <edge id=":1369844772_19" function="internal">
+ <lane id=":1369844772_19_0" index="0" speed="8.33" length="2.41" shape="1421.30,2213.31 1421.32,2214.23 1420.60,2215.54"/>
+ </edge>
+ <edge id=":1369844774_0" function="internal">
+ <lane id=":1369844774_0_0" index="0" speed="1.39" length="4.82" shape="1418.68,2204.28 1418.90,2202.81 1419.47,2202.09 1420.39,2202.11 1421.67,2202.87"/>
+ </edge>
+ <edge id=":1369844780_0" function="internal">
+ <lane id=":1369844780_0_0" index="0" speed="1.39" length="4.82" shape="1475.14,2281.40 1475.32,2279.93 1475.87,2279.19 1476.79,2279.19 1478.09,2279.92"/>
+ </edge>
+ <edge id=":1369844786_0" function="internal">
+ <lane id=":1369844786_0_0" index="0" speed="1.39" length="4.82" shape="1482.68,2289.08 1482.50,2290.56 1481.94,2291.30 1481.02,2291.30 1479.73,2290.56"/>
+ </edge>
+ <edge id=":1373642446_0" function="internal">
+ <lane id=":1373642446_0_0" index="0" speed="5.56" length="4.82" shape="1633.39,2613.97 1633.61,2615.44 1633.28,2616.31 1632.39,2616.56 1630.95,2616.20"/>
+ </edge>
+ <edge id=":13929737_0" function="internal">
+ <lane id=":13929737_0_0" index="0" speed="22.22" length="8.99" shape="1292.16,1977.56 1289.00,1969.14"/>
+ </edge>
+ <edge id=":13929737_1" function="internal">
+ <lane id=":13929737_1_0" index="0" speed="22.22" length="8.84" shape="1292.16,1977.56 1293.16,1968.78"/>
+ </edge>
+ <edge id=":13929737_2" function="internal">
+ <lane id=":13929737_2_0" index="0" speed="22.22" length="7.39" shape="1288.25,1975.65 1289.53,1974.58 1290.08,1973.15 1289.90,1971.33 1289.00,1969.14"/>
+ </edge>
+ <edge id=":13929737_3" function="internal">
+ <lane id=":13929737_3_0" index="0" speed="22.22" length="8.44" shape="1288.25,1975.65 1293.16,1968.78"/>
+ </edge>
+ <edge id=":13929747_0" function="internal">
+ <lane id=":13929747_0_0" index="0" speed="25.00" length="3.61" shape="1348.72,1965.81 1347.55,1966.52 1346.80,1967.17 1346.46,1967.77 1346.53,1968.32"/>
+ </edge>
+ <edge id=":13929747_1" function="internal">
+ <lane id=":13929747_1_0" index="0" speed="27.78" length="6.21" shape="1348.72,1965.81 1343.24,1968.74"/>
+ </edge>
+ <edge id=":13929747_2" function="internal">
+ <lane id=":13929747_2_0" index="0" speed="27.78" length="2.41" shape="1348.72,1965.81 1347.24,1965.66 1346.49,1965.13"/>
+ </edge>
+ <edge id=":13929747_9" function="internal">
+ <lane id=":13929747_9_0" index="0" speed="27.78" length="2.41" shape="1346.49,1965.13 1346.47,1964.20 1347.18,1962.90"/>
+ </edge>
+ <edge id=":13929747_3" function="internal">
+ <lane id=":13929747_3_0" index="0" speed="25.00" length="3.94" shape="1345.18,1965.82 1345.01,1965.09 1345.29,1964.36 1346.02,1963.63 1347.18,1962.90"/>
+ </edge>
+ <edge id=":13929747_4" function="internal">
+ <lane id=":13929747_4_0" index="0" speed="22.22" length="2.84" shape="1345.18,1965.82 1346.53,1968.32"/>
+ </edge>
+ <edge id=":13929747_5" function="internal">
+ <lane id=":13929747_5_0" index="0" speed="25.00" length="3.89" shape="1345.18,1965.82 1345.34,1966.55 1345.08,1967.28 1344.38,1968.01 1343.24,1968.74"/>
+ </edge>
+ <edge id=":13929747_6" function="internal">
+ <lane id=":13929747_6_0" index="0" speed="27.78" length="6.24" shape="1341.67,1965.84 1347.18,1962.90"/>
+ </edge>
+ <edge id=":13929747_7" function="internal">
+ <lane id=":13929747_7_0" index="0" speed="25.00" length="4.97" shape="1341.67,1965.84 1343.00,1965.44 1344.25,1965.72 1345.43,1966.68 1345.87,1967.34"/>
+ </edge>
+ <edge id=":13929747_10" function="internal">
+ <lane id=":13929747_10_0" index="0" speed="25.00" length="1.18" shape="1345.87,1967.34 1346.53,1968.32"/>
+ </edge>
+ <edge id=":13929747_8" function="internal">
+ <lane id=":13929747_8_0" index="0" speed="27.78" length="2.41" shape="1341.67,1965.84 1343.15,1965.98 1343.91,1966.51"/>
+ </edge>
+ <edge id=":13929747_11" function="internal">
+ <lane id=":13929747_11_0" index="0" speed="27.78" length="2.41" shape="1343.91,1966.51 1343.94,1967.43 1343.24,1968.74"/>
+ </edge>
+ <edge id=":13929752_0" function="internal">
+ <lane id=":13929752_0_0" index="0" speed="27.78" length="4.82" shape="1582.18,1841.29 1582.14,1842.77 1581.66,1843.56 1580.74,1843.65 1579.38,1843.03"/>
+ </edge>
+ <edge id=":13929775_0" function="internal">
+ <lane id=":13929775_0_0" index="0" speed="25.00" length="3.74" shape="943.51,1190.51 942.11,1191.33 941.13,1191.95 940.57,1192.36 940.42,1192.58"/>
+ </edge>
+ <edge id=":13929775_1" function="internal">
+ <lane id=":13929775_1_0" index="0" speed="27.78" length="6.88" shape="943.51,1190.51 937.53,1193.92"/>
+ </edge>
+ <edge id=":13929775_2" function="internal">
+ <lane id=":13929775_2_0" index="0" speed="27.78" length="6.88" shape="941.88,1187.65 935.90,1191.06"/>
+ </edge>
+ <edge id=":13929775_3" function="internal">
+ <lane id=":13929775_3_0" index="0" speed="27.78" length="2.41" shape="941.88,1187.65 940.39,1187.54 939.62,1187.03"/>
+ </edge>
+ <edge id=":13929775_11" function="internal">
+ <lane id=":13929775_11_0" index="0" speed="27.78" length="2.41" shape="939.62,1187.03 939.57,1186.11 940.24,1184.78"/>
+ </edge>
+ <edge id=":13929775_4" function="internal">
+ <lane id=":13929775_4_0" index="0" speed="25.00" length="3.18" shape="935.80,1183.39 935.99,1183.34 936.52,1183.07 937.40,1182.60 938.61,1181.91"/>
+ </edge>
+ <edge id=":13929775_5" function="internal">
+ <lane id=":13929775_5_0" index="0" speed="22.22" length="10.29" shape="935.80,1183.39 937.16,1186.08 938.13,1187.98 939.08,1189.88 940.42,1192.58"/>
+ </edge>
+ <edge id=":13929775_6" function="internal">
+ <lane id=":13929775_6_0" index="0" speed="25.00" length="0.11" shape="935.80,1183.39 935.84,1183.49"/>
+ </edge>
+ <edge id=":13929775_12" function="internal">
+ <lane id=":13929775_12_0" index="0" speed="25.00" length="8.32" shape="935.84,1183.49 936.95,1186.11 937.35,1188.30 937.00,1189.95 935.90,1191.06"/>
+ </edge>
+ <edge id=":13929775_7" function="internal">
+ <lane id=":13929775_7_0" index="0" speed="27.78" length="6.88" shape="932.63,1185.32 938.61,1181.91"/>
+ </edge>
+ <edge id=":13929775_8" function="internal">
+ <lane id=":13929775_8_0" index="0" speed="27.78" length="6.88" shape="934.26,1188.19 940.24,1184.78"/>
+ </edge>
+ <edge id=":13929775_9" function="internal">
+ <lane id=":13929775_9_0" index="0" speed="25.00" length="4.88" shape="934.26,1188.19 935.81,1187.80 937.35,1188.40 938.49,1189.58"/>
+ </edge>
+ <edge id=":13929775_13" function="internal">
+ <lane id=":13929775_13_0" index="0" speed="25.00" length="3.58" shape="938.49,1189.58 938.89,1190.00 940.42,1192.58"/>
+ </edge>
+ <edge id=":13929775_10" function="internal">
+ <lane id=":13929775_10_0" index="0" speed="27.78" length="2.41" shape="934.26,1188.19 935.75,1188.29 936.51,1188.81"/>
+ </edge>
+ <edge id=":13929775_14" function="internal">
+ <lane id=":13929775_14_0" index="0" speed="27.78" length="2.41" shape="936.51,1188.81 936.56,1189.73 935.90,1191.06"/>
+ </edge>
+ <edge id=":13990620_0" function="internal">
+ <lane id=":13990620_0_0" index="0" speed="27.78" length="4.82" shape="1764.19,717.95 1765.67,717.78 1766.52,718.15 1766.74,719.04 1766.33,720.47"/>
+ </edge>
+ <edge id=":1431113444_0" function="internal">
+ <lane id=":1431113444_0_0" index="0" speed="8.33" length="4.82" shape="1500.24,2170.70 1501.72,2170.86 1502.47,2171.41 1502.48,2172.33 1501.76,2173.63"/>
+ </edge>
+ <edge id=":1457695393_0" function="internal">
+ <lane id=":1457695393_0_0" index="0" speed="22.22" length="6.27" shape="689.48,1877.84 689.03,1876.17 688.18,1874.98 686.93,1874.28 685.29,1874.06"/>
+ </edge>
+ <edge id=":1457695393_1" function="internal">
+ <lane id=":1457695393_1_0" index="0" speed="22.22" length="10.46" shape="689.48,1877.84 689.08,1874.82 688.79,1872.65 688.52,1870.48 688.15,1867.46"/>
+ </edge>
+ <edge id=":1457695393_2" function="internal">
+ <lane id=":1457695393_2_0" index="0" speed="22.22" length="7.25" shape="689.48,1877.84 689.51,1874.71 690.57,1872.50 691.99,1871.61"/>
+ </edge>
+ <edge id=":1457695393_16" function="internal">
+ <lane id=":1457695393_16_0" index="0" speed="22.22" length="3.91" shape="691.99,1871.61 692.65,1871.20 695.76,1870.83"/>
+ </edge>
+ <edge id=":1457695393_3" function="internal">
+ <lane id=":1457695393_3_0" index="0" speed="22.22" length="2.41" shape="689.48,1877.84 690.14,1876.50 690.90,1875.98"/>
+ </edge>
+ <edge id=":1457695393_17" function="internal">
+ <lane id=":1457695393_17_0" index="0" speed="22.22" length="2.41" shape="690.90,1875.98 691.77,1876.28 692.76,1877.39"/>
+ </edge>
+ <edge id=":1457695393_4" function="internal">
+ <lane id=":1457695393_4_0" index="0" speed="22.22" length="5.20" shape="695.68,1874.13 694.23,1874.30 693.26,1874.91 692.77,1875.94 692.76,1877.39"/>
+ </edge>
+ <edge id=":1457695393_5" function="internal">
+ <lane id=":1457695393_5_0" index="0" speed="22.22" length="10.39" shape="695.68,1874.13 692.65,1874.06 690.49,1874.03 688.32,1874.03 685.29,1874.06"/>
+ </edge>
+ <edge id=":1457695393_6" function="internal">
+ <lane id=":1457695393_6_0" index="0" speed="22.22" length="11.14" shape="695.68,1874.13 692.68,1873.65 690.43,1872.38 688.92,1870.32 688.15,1867.46"/>
+ </edge>
+ <edge id=":1457695393_7" function="internal">
+ <lane id=":1457695393_7_0" index="0" speed="22.22" length="4.82" shape="695.68,1874.13 694.46,1873.28 694.07,1872.44 694.50,1871.63 695.76,1870.83"/>
+ </edge>
+ <edge id=":1457695393_8" function="internal">
+ <lane id=":1457695393_8_0" index="0" speed="22.22" length="6.36" shape="691.42,1867.06 691.86,1868.67 692.73,1869.84 694.03,1870.56 695.76,1870.83"/>
+ </edge>
+ <edge id=":1457695393_9" function="internal">
+ <lane id=":1457695393_9_0" index="0" speed="22.22" length="10.42" shape="691.42,1867.06 691.79,1870.07 692.07,1872.23 692.35,1874.39 692.76,1877.39"/>
+ </edge>
+ <edge id=":1457695393_10" function="internal">
+ <lane id=":1457695393_10_0" index="0" speed="22.22" length="7.18" shape="691.42,1867.06 691.36,1870.09 690.31,1872.27 688.87,1873.22"/>
+ </edge>
+ <edge id=":1457695393_18" function="internal">
+ <lane id=":1457695393_18_0" index="0" speed="22.22" length="3.72" shape="688.87,1873.22 688.29,1873.59 685.29,1874.06"/>
+ </edge>
+ <edge id=":1457695393_11" function="internal">
+ <lane id=":1457695393_11_0" index="0" speed="22.22" length="2.41" shape="691.42,1867.06 690.75,1868.39 689.99,1868.90"/>
+ </edge>
+ <edge id=":1457695393_19" function="internal">
+ <lane id=":1457695393_19_0" index="0" speed="22.22" length="2.41" shape="689.99,1868.90 689.12,1868.59 688.15,1867.46"/>
+ </edge>
+ <edge id=":1457695393_12" function="internal">
+ <lane id=":1457695393_12_0" index="0" speed="22.22" length="5.14" shape="685.26,1870.76 686.67,1870.54 687.62,1869.92 688.12,1868.89 688.15,1867.46"/>
+ </edge>
+ <edge id=":1457695393_13" function="internal">
+ <lane id=":1457695393_13_0" index="0" speed="22.22" length="10.50" shape="685.26,1870.76 688.30,1870.73 690.51,1870.73 692.71,1870.76 695.76,1870.83"/>
+ </edge>
+ <edge id=":1457695393_14" function="internal">
+ <lane id=":1457695393_14_0" index="0" speed="22.22" length="11.13" shape="685.26,1870.76 688.20,1871.15 690.43,1872.38 691.95,1874.46 692.76,1877.39"/>
+ </edge>
+ <edge id=":1457695393_15" function="internal">
+ <lane id=":1457695393_15_0" index="0" speed="22.22" length="4.82" shape="685.26,1870.76 686.50,1871.57 686.93,1872.39 686.52,1873.22 685.29,1874.06"/>
+ </edge>
+ <edge id=":1457699220_0" function="internal">
+ <lane id=":1457699220_0_0" index="0" speed="5.56" length="9.50" shape="823.96,1289.81 819.48,1281.43"/>
+ </edge>
+ <edge id=":1457699220_1" function="internal">
+ <lane id=":1457699220_1_0" index="0" speed="5.56" length="10.33" shape="823.96,1289.81 823.01,1287.17 823.13,1284.84 824.33,1282.82 826.60,1281.11"/>
+ </edge>
+ <edge id=":1457699220_2" function="internal">
+ <lane id=":1457699220_2_0" index="0" speed="5.56" length="4.82" shape="823.96,1289.81 824.11,1288.33 824.64,1287.57 825.56,1287.55 826.87,1288.25"/>
+ </edge>
+ <edge id=":1457699220_3" function="internal">
+ <lane id=":1457699220_3_0" index="0" speed="5.56" length="5.06" shape="828.20,1284.00 827.07,1284.84 826.48,1285.83 826.41,1286.97 826.87,1288.25"/>
+ </edge>
+ <edge id=":1457699220_4" function="internal">
+ <lane id=":1457699220_4_0" index="0" speed="5.56" length="10.40" shape="828.20,1284.00 825.53,1285.02 823.19,1284.93 821.17,1283.73 819.48,1281.43"/>
+ </edge>
+ <edge id=":1457699220_5" function="internal">
+ <lane id=":1457699220_5_0" index="0" speed="5.56" length="4.82" shape="828.20,1284.00 826.72,1283.88 825.95,1283.36 825.92,1282.43 826.60,1281.11"/>
+ </edge>
+ <edge id=":1457699220_6" function="internal">
+ <lane id=":1457699220_6_0" index="0" speed="5.56" length="5.02" shape="822.39,1279.87 823.21,1280.98 824.18,1281.56 825.31,1281.60 826.60,1281.11"/>
+ </edge>
+ <edge id=":1457699220_7" function="internal">
+ <lane id=":1457699220_7_0" index="0" speed="5.56" length="9.50" shape="822.39,1279.87 826.87,1288.25"/>
+ </edge>
+ <edge id=":1457699220_8" function="internal">
+ <lane id=":1457699220_8_0" index="0" speed="5.56" length="4.82" shape="822.39,1279.87 822.25,1281.35 821.72,1282.10 820.79,1282.13 819.48,1281.43"/>
+ </edge>
+ <edge id=":1457699222_0" function="internal">
+ <lane id=":1457699222_0_0" index="0" speed="5.56" length="5.08" shape="900.73,1304.28 899.93,1303.17 898.95,1302.58 897.79,1302.53 896.46,1303.00"/>
+ </edge>
+ <edge id=":1457699222_1" function="internal">
+ <lane id=":1457699222_1_0" index="0" speed="5.56" length="9.55" shape="900.73,1304.28 896.20,1295.87"/>
+ </edge>
+ <edge id=":1457699222_2" function="internal">
+ <lane id=":1457699222_2_0" index="0" speed="5.56" length="4.82" shape="900.73,1304.28 900.89,1302.80 901.44,1302.06 902.36,1302.05 903.66,1302.77"/>
+ </edge>
+ <edge id=":1457699222_3" function="internal">
+ <lane id=":1457699222_3_0" index="0" speed="5.56" length="9.66" shape="899.08,1294.26 903.66,1302.77"/>
+ </edge>
+ <edge id=":1457699222_4" function="internal">
+ <lane id=":1457699222_4_0" index="0" speed="5.56" length="10.48" shape="899.08,1294.26 900.11,1296.95 900.03,1299.30 898.81,1301.32 896.46,1303.00"/>
+ </edge>
+ <edge id=":1457699222_5" function="internal">
+ <lane id=":1457699222_5_0" index="0" speed="5.56" length="4.82" shape="899.08,1294.26 898.96,1295.74 898.44,1296.50 897.52,1296.55 896.20,1295.87"/>
+ </edge>
+ <edge id=":1457699222_6" function="internal">
+ <lane id=":1457699222_6_0" index="0" speed="5.56" length="5.04" shape="894.94,1300.07 896.07,1299.26 896.65,1298.30 896.70,1297.16 896.20,1295.87"/>
+ </edge>
+ <edge id=":1457699222_7" function="internal">
+ <lane id=":1457699222_7_0" index="0" speed="5.56" length="10.41" shape="894.94,1300.07 897.65,1299.12 900.01,1299.25 902.01,1300.46 903.66,1302.77"/>
+ </edge>
+ <edge id=":1457699222_8" function="internal">
+ <lane id=":1457699222_8_0" index="0" speed="5.56" length="4.82" shape="894.94,1300.07 896.42,1300.23 897.17,1300.78 897.18,1301.70 896.46,1303.00"/>
+ </edge>
+ <edge id=":1457699223_0" function="internal">
+ <lane id=":1457699223_0_0" index="0" speed="5.56" length="9.49" shape="908.45,1319.13 904.06,1310.72"/>
+ </edge>
+ <edge id=":1457699223_1" function="internal">
+ <lane id=":1457699223_1_0" index="0" speed="5.56" length="5.00" shape="908.45,1319.13 907.65,1318.02 906.68,1317.44 905.55,1317.37 904.26,1317.83"/>
+ </edge>
+ <edge id=":1457699223_2" function="internal">
+ <lane id=":1457699223_2_0" index="0" speed="5.56" length="4.82" shape="908.45,1319.13 908.60,1317.65 909.14,1316.90 910.06,1316.88 911.37,1317.58"/>
+ </edge>
+ <edge id=":1457699223_3" function="internal">
+ <lane id=":1457699223_3_0" index="0" speed="5.56" length="10.30" shape="906.99,1309.21 907.92,1311.87 907.77,1314.20 906.55,1316.18 904.26,1317.83"/>
+ </edge>
+ <edge id=":1457699223_4" function="internal">
+ <lane id=":1457699223_4_0" index="0" speed="5.56" length="9.45" shape="906.99,1309.21 911.37,1317.58"/>
+ </edge>
+ <edge id=":1457699223_5" function="internal">
+ <lane id=":1457699223_5_0" index="0" speed="5.56" length="4.82" shape="906.99,1309.21 906.82,1310.68 906.28,1311.43 905.36,1311.44 904.06,1310.72"/>
+ </edge>
+ <edge id=":1457699223_6" function="internal">
+ <lane id=":1457699223_6_0" index="0" speed="5.56" length="4.99" shape="902.73,1314.90 903.85,1314.10 904.44,1313.14 904.51,1312.01 904.06,1310.72"/>
+ </edge>
+ <edge id=":1457699223_7" function="internal">
+ <lane id=":1457699223_7_0" index="0" speed="5.56" length="10.30" shape="902.73,1314.90 905.39,1313.96 907.72,1314.10 909.71,1315.30 911.37,1317.58"/>
+ </edge>
+ <edge id=":1457699223_8" function="internal">
+ <lane id=":1457699223_8_0" index="0" speed="5.56" length="4.82" shape="902.73,1314.90 904.21,1315.06 904.96,1315.60 904.98,1316.52 904.26,1317.83"/>
+ </edge>
+ <edge id=":1474873133_0" function="internal">
+ <lane id=":1474873133_0_0" index="0" speed="8.33" length="0.25" shape="864.19,1731.47 864.09,1731.23"/>
+ </edge>
+ <edge id=":1474873133_1" function="internal">
+ <lane id=":1474873133_1_0" index="0" speed="8.33" length="2.41" shape="864.19,1731.47 864.58,1730.03 865.23,1729.38"/>
+ </edge>
+ <edge id=":1474873133_4" function="internal">
+ <lane id=":1474873133_4_0" index="0" speed="8.33" length="2.41" shape="865.23,1729.38 866.15,1729.51 867.32,1730.42"/>
+ </edge>
+ <edge id=":1474873133_2" function="internal">
+ <lane id=":1474873133_2_0" index="0" speed="8.33" length="0.56" shape="867.12,1729.90 867.14,1729.93 867.18,1730.03 867.24,1730.19 867.32,1730.42"/>
+ </edge>
+ <edge id=":1474873133_3" function="internal">
+ <lane id=":1474873133_3_0" index="0" speed="8.33" length="2.42" shape="867.12,1729.90 866.86,1731.37 866.27,1732.08"/>
+ </edge>
+ <edge id=":1474873133_5" function="internal">
+ <lane id=":1474873133_5_0" index="0" speed="8.33" length="2.42" shape="866.27,1732.08 865.35,1732.04 864.09,1731.23"/>
+ </edge>
+ <edge id=":1474873137_0" function="internal">
+ <lane id=":1474873137_0_0" index="0" speed="8.33" length="4.82" shape="873.73,1742.60 873.88,1744.08 873.51,1744.92 872.61,1745.13 871.19,1744.71"/>
+ </edge>
+ <edge id=":1474873139_0" function="internal">
+ <lane id=":1474873139_0_0" index="0" speed="8.33" length="4.82" shape="799.16,1755.48 797.68,1755.30 796.94,1754.75 796.93,1753.83 797.66,1752.53"/>
+ </edge>
+ <edge id=":1479400627_0" function="internal">
+ <lane id=":1479400627_0_0" index="0" speed="25.00" length="1.98" shape="768.73,2258.42 769.93,2259.99"/>
+ </edge>
+ <edge id=":1479400627_1" function="internal">
+ <lane id=":1479400627_1_0" index="0" speed="22.22" length="3.67" shape="767.76,2261.58 770.27,2258.90"/>
+ </edge>
+ <edge id=":1479400627_2" function="internal">
+ <lane id=":1479400627_2_0" index="0" speed="27.78" length="3.16" shape="766.77,2260.07 769.93,2259.99"/>
+ </edge>
+ <edge id=":1479400627_3" function="internal">
+ <lane id=":1479400627_3_0" index="0" speed="25.00" length="3.21" shape="766.77,2260.07 769.30,2262.05"/>
+ </edge>
+ <edge id=":1482088973_0" function="internal">
+ <lane id=":1482088973_0_0" index="0" speed="15.28" length="3.12" shape="722.71,1769.24 722.09,1768.03 721.64,1767.16 721.37,1766.65 721.27,1766.48"/>
+ </edge>
+ <edge id=":1482088973_1" function="internal">
+ <lane id=":1482088973_1_0" index="0" speed="8.33" length="4.82" shape="722.71,1769.24 722.88,1767.77 723.43,1767.02 724.35,1767.01 725.65,1767.74"/>
+ </edge>
+ <edge id=":1482088973_2" function="internal">
+ <lane id=":1482088973_2_0" index="0" speed="15.28" length="5.05" shape="726.93,1763.49 725.83,1764.29 725.25,1765.27 725.19,1766.42 725.65,1767.74"/>
+ </edge>
+ <edge id=":1482088973_3" function="internal">
+ <lane id=":1482088973_3_0" index="0" speed="22.22" length="6.41" shape="726.93,1763.49 721.27,1766.48"/>
+ </edge>
+ <edge id=":1482088987_0" function="internal">
+ <lane id=":1482088987_0_0" index="0" speed="22.22" length="4.75" shape="767.93,1843.36 763.70,1845.53"/>
+ </edge>
+ <edge id=":1482088987_1" function="internal">
+ <lane id=":1482088987_1_0" index="0" speed="15.28" length="8.43" shape="767.93,1843.36 765.26,1844.28 762.93,1844.12 760.95,1842.89 760.40,1842.13"/>
+ </edge>
+ <edge id=":1482088987_9" function="internal">
+ <lane id=":1482088987_9_0" index="0" speed="15.28" length="1.89" shape="760.40,1842.13 759.31,1840.58"/>
+ </edge>
+ <edge id=":1482088987_2" function="internal">
+ <lane id=":1482088987_2_0" index="0" speed="22.22" length="2.41" shape="767.93,1843.36 766.45,1843.19 765.71,1842.64"/>
+ </edge>
+ <edge id=":1482088987_10" function="internal">
+ <lane id=":1482088987_10_0" index="0" speed="22.22" length="2.41" shape="765.71,1842.64 765.70,1841.72 766.42,1840.42"/>
+ </edge>
+ <edge id=":1482088987_3" function="internal">
+ <lane id=":1482088987_3_0" index="0" speed="15.28" length="5.00" shape="762.25,1839.08 763.04,1840.20 764.00,1840.79 765.13,1840.87 766.42,1840.42"/>
+ </edge>
+ <edge id=":1482088987_4" function="internal">
+ <lane id=":1482088987_4_0" index="0" speed="15.28" length="6.96" shape="762.25,1839.08 763.44,1841.62 764.07,1843.54 764.16,1844.84 763.70,1845.53"/>
+ </edge>
+ <edge id=":1482088987_5" function="internal">
+ <lane id=":1482088987_5_0" index="0" speed="8.33" length="4.82" shape="762.25,1839.08 762.08,1840.56 761.54,1841.30 760.61,1841.31 759.31,1840.58"/>
+ </edge>
+ <edge id=":1482088987_6" function="internal">
+ <lane id=":1482088987_6_0" index="0" speed="15.28" length="3.90" shape="762.20,1842.59 761.47,1842.75 760.74,1842.46 760.02,1841.74 759.31,1840.58"/>
+ </edge>
+ <edge id=":1482088987_7" function="internal">
+ <lane id=":1482088987_7_0" index="0" speed="22.22" length="4.75" shape="762.20,1842.59 766.42,1840.42"/>
+ </edge>
+ <edge id=":1482088987_8" function="internal">
+ <lane id=":1482088987_8_0" index="0" speed="22.22" length="2.41" shape="762.20,1842.59 763.67,1842.76 764.42,1843.30"/>
+ </edge>
+ <edge id=":1482088987_11" function="internal">
+ <lane id=":1482088987_11_0" index="0" speed="22.22" length="2.41" shape="764.42,1843.30 764.43,1844.23 763.70,1845.53"/>
+ </edge>
+ <edge id=":1545661417_0" function="internal">
+ <lane id=":1545661417_0_0" index="0" speed="13.89" length="7.28" shape="1269.80,2214.56 1271.84,2215.34 1273.69,2215.68 1275.35,2215.60 1276.81,2215.08"/>
+ </edge>
+ <edge id=":1545661417_1" function="internal">
+ <lane id=":1545661417_1_0" index="0" speed="9.72" length="7.43" shape="1269.80,2214.56 1275.54,2219.28"/>
+ </edge>
+ <edge id=":1545661417_2" function="internal">
+ <lane id=":1545661417_2_0" index="0" speed="22.22" length="7.82" shape="1269.91,2218.76 1276.81,2215.08"/>
+ </edge>
+ <edge id=":1545661417_3" function="internal">
+ <lane id=":1545661417_3_0" index="0" speed="18.06" length="6.36" shape="1269.91,2218.76 1271.83,2217.96 1273.40,2217.78 1274.64,2218.22 1275.54,2219.28"/>
+ </edge>
+ <edge id=":1545672785_0" function="internal">
+ <lane id=":1545672785_0_0" index="0" speed="8.33" length="4.82" shape="1246.62,2044.69 1248.10,2044.85 1248.84,2045.39 1248.86,2046.31 1248.15,2047.62"/>
+ </edge>
+ <edge id=":1545672787_0" function="internal">
+ <lane id=":1545672787_0_0" index="0" speed="13.89" length="11.22" shape="1194.46,2063.51 1191.86,2065.23 1190.22,2067.01 1188.82,2069.08 1186.94,2071.66"/>
+ </edge>
+ <edge id=":1545672787_1" function="internal">
+ <lane id=":1545672787_1_0" index="0" speed="22.22" length="11.21" shape="1194.46,2063.51 1191.67,2065.00 1189.51,2066.14 1187.35,2067.29 1184.57,2068.78"/>
+ </edge>
+ <edge id=":1545672788_0" function="internal">
+ <lane id=":1545672788_0_0" index="0" speed="8.33" length="4.82" shape="1266.91,2070.30 1268.39,2070.44 1269.15,2070.98 1269.17,2071.90 1268.46,2073.21"/>
+ </edge>
+ <edge id=":1545672797_0" function="internal">
+ <lane id=":1545672797_0_0" index="0" speed="8.33" length="13.71" shape="1191.08,2079.41 1189.74,2081.99 1189.09,2085.06 1189.12,2088.61 1189.83,2092.66"/>
+ </edge>
+ <edge id=":1545672797_1" function="internal">
+ <lane id=":1545672797_1_0" index="0" speed="8.33" length="14.04" shape="1191.08,2079.41 1188.89,2082.26 1186.66,2084.85 1184.36,2087.38 1181.94,2090.05"/>
+ </edge>
+ <edge id=":1545672797_2" function="internal">
+ <lane id=":1545672797_2_0" index="0" speed="8.33" length="4.82" shape="1191.08,2079.41 1189.69,2079.93 1188.78,2079.78 1188.35,2078.97 1188.40,2077.48"/>
+ </edge>
+ <edge id=":1545672797_3" function="internal">
+ <lane id=":1545672797_3_0" index="0" speed="8.33" length="13.70" shape="1179.47,2087.86 1181.85,2085.23 1184.08,2082.79 1186.24,2080.29 1188.40,2077.48"/>
+ </edge>
+ <edge id=":1545672797_4" function="internal">
+ <lane id=":1545672797_4_0" index="0" speed="8.33" length="16.05" shape="1179.47,2087.86 1182.81,2085.12 1185.65,2085.01 1187.99,2087.52 1189.83,2092.66"/>
+ </edge>
+ <edge id=":1545672797_5" function="internal">
+ <lane id=":1545672797_5_0" index="0" speed="8.33" length="4.82" shape="1179.47,2087.86 1180.91,2087.48 1181.80,2087.72 1182.14,2088.58 1181.94,2090.05"/>
+ </edge>
+ <edge id=":1545672797_6" function="internal">
+ <lane id=":1545672797_6_0" index="0" speed="8.33" length="6.57" shape="1186.24,2091.84 1185.49,2089.79 1184.52,2088.80 1183.34,2088.89 1181.94,2090.05"/>
+ </edge>
+ <edge id=":1545672797_7" function="internal">
+ <lane id=":1545672797_7_0" index="0" speed="8.33" length="14.99" shape="1186.24,2091.84 1185.59,2087.78 1185.73,2084.04 1186.67,2080.60 1188.40,2077.48"/>
+ </edge>
+ <edge id=":1545672797_8" function="internal">
+ <lane id=":1545672797_8_0" index="0" speed="8.33" length="5.38" shape="1186.24,2091.84 1187.45,2090.70 1188.45,2090.45 1189.24,2091.11 1189.83,2092.66"/>
+ </edge>
+ <edge id=":1545672804_0" function="internal">
+ <lane id=":1545672804_0_0" index="0" speed="8.33" length="5.06" shape="1245.63,2088.95 1244.86,2087.78 1243.91,2087.17 1242.78,2087.09 1241.47,2087.57"/>
+ </edge>
+ <edge id=":1545672804_1" function="internal">
+ <lane id=":1545672804_1_0" index="0" speed="8.33" length="10.34" shape="1245.63,2088.95 1244.76,2086.20 1244.91,2083.83 1246.10,2081.82 1248.31,2080.19"/>
+ </edge>
+ <edge id=":1545672804_2" function="internal">
+ <lane id=":1545672804_2_0" index="0" speed="8.33" length="4.82" shape="1245.63,2088.95 1245.85,2087.47 1246.41,2086.75 1247.34,2086.77 1248.61,2087.53"/>
+ </edge>
+ <edge id=":1545672804_3" function="internal">
+ <lane id=":1545672804_3_0" index="0" speed="8.33" length="5.19" shape="1249.86,2083.10 1248.78,2083.91 1248.21,2084.92 1248.16,2086.13 1248.61,2087.53"/>
+ </edge>
+ <edge id=":1545672804_4" function="internal">
+ <lane id=":1545672804_4_0" index="0" speed="8.33" length="9.51" shape="1249.86,2083.10 1241.47,2087.57"/>
+ </edge>
+ <edge id=":1545672804_5" function="internal">
+ <lane id=":1545672804_5_0" index="0" speed="8.33" length="4.82" shape="1249.86,2083.10 1248.38,2082.96 1247.63,2082.42 1247.61,2081.50 1248.31,2080.19"/>
+ </edge>
+ <edge id=":1545672804_6" function="internal">
+ <lane id=":1545672804_6_0" index="0" speed="8.33" length="9.51" shape="1239.92,2084.65 1248.31,2080.19"/>
+ </edge>
+ <edge id=":1545672804_7" function="internal">
+ <lane id=":1545672804_7_0" index="0" speed="8.33" length="10.56" shape="1239.92,2084.65 1242.66,2083.67 1245.02,2083.82 1247.00,2085.11 1248.61,2087.53"/>
+ </edge>
+ <edge id=":1545672804_8" function="internal">
+ <lane id=":1545672804_8_0" index="0" speed="8.33" length="4.82" shape="1239.92,2084.65 1241.40,2084.80 1242.15,2085.34 1242.17,2086.26 1241.47,2087.57"/>
+ </edge>
+ <edge id=":1545672806_0" function="internal">
+ <lane id=":1545672806_0_0" index="0" speed="8.33" length="4.11" shape="1172.49,2090.85 1169.36,2088.20"/>
+ </edge>
+ <edge id=":1545672806_1" function="internal">
+ <lane id=":1545672806_1_0" index="0" speed="6.94" length="3.49" shape="1172.49,2090.85 1172.06,2090.72 1171.45,2090.96 1170.66,2091.58 1169.69,2092.57"/>
+ </edge>
+ <edge id=":1545672806_2" function="internal">
+ <lane id=":1545672806_2_0" index="0" speed="8.33" length="4.82" shape="1172.49,2090.85 1172.15,2089.41 1172.41,2088.52 1173.28,2088.20 1174.75,2088.45"/>
+ </edge>
+ <edge id=":1545672806_3" function="internal">
+ <lane id=":1545672806_3_0" index="0" speed="6.94" length="3.60" shape="1175.90,2085.28 1175.09,2086.38 1174.63,2087.28 1174.52,2087.97 1174.75,2088.45"/>
+ </edge>
+ <edge id=":1545672806_4" function="internal">
+ <lane id=":1545672806_4_0" index="0" speed="6.94" length="7.94" shape="1175.90,2085.28 1173.98,2087.33 1172.24,2088.50 1170.70,2088.79 1169.36,2088.20"/>
+ </edge>
+ <edge id=":1545672806_5" function="internal">
+ <lane id=":1545672806_5_0" index="0" speed="5.56" length="9.58" shape="1175.90,2085.28 1169.69,2092.57"/>
+ </edge>
+ <edge id=":1545672806_6" function="internal">
+ <lane id=":1545672806_6_0" index="0" speed="6.94" length="7.96" shape="1171.45,2085.65 1172.30,2086.87 1172.29,2088.43 1171.42,2090.33 1169.69,2092.57"/>
+ </edge>
+ <edge id=":1545672806_7" function="internal">
+ <lane id=":1545672806_7_0" index="0" speed="8.33" length="4.32" shape="1171.45,2085.65 1174.75,2088.45"/>
+ </edge>
+ <edge id=":1545672806_8" function="internal">
+ <lane id=":1545672806_8_0" index="0" speed="8.33" length="4.82" shape="1171.45,2085.65 1171.88,2087.07 1171.68,2087.97 1170.84,2088.35 1169.36,2088.20"/>
+ </edge>
+ <edge id=":1545672819_0" function="internal">
+ <lane id=":1545672819_0_0" index="0" speed="8.33" length="6.01" shape="1177.74,2097.14 1174.09,2092.36"/>
+ </edge>
+ <edge id=":1545672819_1" function="internal">
+ <lane id=":1545672819_1_0" index="0" speed="8.33" length="9.70" shape="1177.74,2097.14 1176.84,2094.95 1176.77,2092.73 1177.53,2090.50 1179.13,2088.25"/>
+ </edge>
+ <edge id=":1545672819_2" function="internal">
+ <lane id=":1545672819_2_0" index="0" speed="8.33" length="4.88" shape="1177.74,2097.14 1177.79,2095.63 1178.29,2094.83 1179.22,2094.75 1180.59,2095.38"/>
+ </edge>
+ <edge id=":1545672819_3" function="internal">
+ <lane id=":1545672819_3_0" index="0" speed="8.33" length="5.81" shape="1181.60,2090.44 1180.32,2092.12 1179.72,2093.50 1179.81,2094.59 1180.59,2095.38"/>
+ </edge>
+ <edge id=":1545672819_4" function="internal">
+ <lane id=":1545672819_4_0" index="0" speed="8.33" length="8.78" shape="1181.60,2090.44 1179.50,2092.39 1177.55,2093.36 1175.75,2093.35 1174.09,2092.36"/>
+ </edge>
+ <edge id=":1545672819_5" function="internal">
+ <lane id=":1545672819_5_0" index="0" speed="8.33" length="4.82" shape="1181.60,2090.44 1180.16,2090.81 1179.27,2090.58 1178.92,2089.72 1179.13,2088.25"/>
+ </edge>
+ <edge id=":1545672819_6" function="internal">
+ <lane id=":1545672819_6_0" index="0" speed="8.33" length="3.48" shape="1176.35,2089.95 1176.78,2090.09 1177.39,2089.85 1178.17,2089.24 1179.13,2088.25"/>
+ </edge>
+ <edge id=":1545672819_7" function="internal">
+ <lane id=":1545672819_7_0" index="0" speed="8.33" length="6.88" shape="1176.35,2089.95 1180.59,2095.38"/>
+ </edge>
+ <edge id=":1545672819_8" function="internal">
+ <lane id=":1545672819_8_0" index="0" speed="8.33" length="4.82" shape="1176.35,2089.95 1176.69,2091.40 1176.42,2092.28 1175.56,2092.60 1174.09,2092.36"/>
+ </edge>
+ <edge id=":1545672824_0" function="internal">
+ <lane id=":1545672824_0_0" index="0" speed="8.33" length="8.35" shape="1254.61,2096.85 1246.53,2098.97"/>
+ </edge>
+ <edge id=":1545672824_1" function="internal">
+ <lane id=":1545672824_1_0" index="0" speed="8.33" length="9.81" shape="1254.61,2096.85 1252.27,2096.74 1250.22,2095.87 1248.46,2094.23 1246.99,2091.81"/>
+ </edge>
+ <edge id=":1545672824_2" function="internal">
+ <lane id=":1545672824_2_0" index="0" speed="8.33" length="4.82" shape="1254.61,2096.85 1253.29,2096.17 1252.79,2095.39 1253.10,2094.53 1254.24,2093.57"/>
+ </edge>
+ <edge id=":1545672824_3" function="internal">
+ <lane id=":1545672824_3_0" index="0" speed="8.33" length="5.69" shape="1249.97,2090.40 1250.85,2091.90 1251.86,2092.92 1252.99,2093.48 1254.24,2093.57"/>
+ </edge>
+ <edge id=":1545672824_4" function="internal">
+ <lane id=":1545672824_4_0" index="0" speed="8.33" length="10.72" shape="1249.97,2090.40 1250.85,2093.24 1250.57,2095.61 1249.13,2097.52 1246.53,2098.97"/>
+ </edge>
+ <edge id=":1545672824_5" function="internal">
+ <lane id=":1545672824_5_0" index="0" speed="8.33" length="4.82" shape="1249.97,2090.40 1249.75,2091.87 1249.19,2092.60 1248.26,2092.58 1246.99,2091.81"/>
+ </edge>
+ <edge id=":1545672824_6" function="internal">
+ <lane id=":1545672824_6_0" index="0" speed="8.33" length="5.10" shape="1245.35,2095.88 1246.59,2095.20 1247.27,2094.29 1247.40,2093.16 1246.99,2091.81"/>
+ </edge>
+ <edge id=":1545672824_7" function="internal">
+ <lane id=":1545672824_7_0" index="0" speed="8.33" length="9.18" shape="1245.35,2095.88 1254.24,2093.57"/>
+ </edge>
+ <edge id=":1545672824_8" function="internal">
+ <lane id=":1545672824_8_0" index="0" speed="8.33" length="4.82" shape="1245.35,2095.88 1246.80,2096.21 1247.48,2096.84 1247.39,2097.75 1246.53,2098.97"/>
+ </edge>
+ <edge id=":1545672843_0" function="internal">
+ <lane id=":1545672843_0_0" index="0" speed="8.33" length="7.96" shape="1191.22,2102.41 1183.58,2100.17"/>
+ </edge>
+ <edge id=":1545672843_1" function="internal">
+ <lane id=":1545672843_1_0" index="0" speed="8.33" length="10.49" shape="1191.22,2102.41 1189.59,2099.82 1188.39,2097.95 1187.44,2095.99 1186.56,2093.09"/>
+ </edge>
+ <edge id=":1545672843_2" function="internal">
+ <lane id=":1545672843_2_0" index="0" speed="8.33" length="4.83" shape="1191.22,2102.41 1191.16,2100.92 1191.59,2100.10 1192.51,2099.95 1193.90,2100.47"/>
+ </edge>
+ <edge id=":1545672843_3" function="internal">
+ <lane id=":1545672843_3_0" index="0" speed="8.33" length="10.25" shape="1188.09,2092.03 1193.90,2100.47"/>
+ </edge>
+ <edge id=":1545672843_4" function="internal">
+ <lane id=":1545672843_4_0" index="0" speed="8.33" length="9.30" shape="1188.09,2092.03 1183.58,2100.17"/>
+ </edge>
+ <edge id=":1545672843_5" function="internal">
+ <lane id=":1545672843_5_0" index="0" speed="8.33" length="2.72" shape="1188.09,2092.03 1188.10,2092.87 1187.85,2093.33 1187.34,2093.40 1186.56,2093.09"/>
+ </edge>
+ <edge id=":1545672843_6" function="internal">
+ <lane id=":1545672843_6_0" index="0" speed="8.33" length="6.10" shape="1183.94,2096.85 1185.53,2096.99 1186.49,2096.40 1186.84,2095.10 1186.56,2093.09"/>
+ </edge>
+ <edge id=":1545672843_7" function="internal">
+ <lane id=":1545672843_7_0" index="0" speed="8.33" length="11.12" shape="1183.94,2096.85 1187.18,2097.34 1189.78,2097.52 1191.95,2098.26 1193.90,2100.47"/>
+ </edge>
+ <edge id=":1545672843_8" function="internal">
+ <lane id=":1545672843_8_0" index="0" speed="8.33" length="4.87" shape="1183.94,2096.85 1185.09,2097.82 1185.42,2098.69 1184.91,2099.47 1183.58,2100.17"/>
+ </edge>
+ <edge id=":1545672852_0" function="internal">
+ <lane id=":1545672852_0_0" index="0" speed="8.33" length="0.30" shape="1276.56,2104.55 1276.34,2104.34"/>
+ </edge>
+ <edge id=":1545672852_1" function="internal">
+ <lane id=":1545672852_1_0" index="0" speed="8.33" length="2.41" shape="1276.56,2104.55 1276.37,2103.07 1276.72,2102.22"/>
+ </edge>
+ <edge id=":1545672852_4" function="internal">
+ <lane id=":1545672852_4_0" index="0" speed="8.33" length="2.41" shape="1276.72,2102.22 1277.62,2101.99 1279.05,2102.39"/>
+ </edge>
+ <edge id=":1545672852_2" function="internal">
+ <lane id=":1545672852_2_0" index="0" speed="8.33" length="0.92" shape="1278.39,2101.75 1279.05,2102.39"/>
+ </edge>
+ <edge id=":1545672852_3" function="internal">
+ <lane id=":1545672852_3_0" index="0" speed="8.33" length="2.41" shape="1278.39,2101.75 1278.84,2103.17 1278.66,2104.07"/>
+ </edge>
+ <edge id=":1545672852_5" function="internal">
+ <lane id=":1545672852_5_0" index="0" speed="8.33" length="2.41" shape="1278.66,2104.07 1277.82,2104.46 1276.34,2104.34"/>
+ </edge>
+ <edge id=":1545672864_0" function="internal">
+ <lane id=":1545672864_0_0" index="0" speed="8.33" length="9.50" shape="1202.03,2108.55 1193.64,2113.01"/>
+ </edge>
+ <edge id=":1545672864_1" function="internal">
+ <lane id=":1545672864_1_0" index="0" speed="8.33" length="10.33" shape="1202.03,2108.55 1199.44,2109.47 1197.11,2109.33 1195.06,2108.14 1193.28,2105.88"/>
+ </edge>
+ <edge id=":1545672864_2" function="internal">
+ <lane id=":1545672864_2_0" index="0" speed="8.33" length="4.82" shape="1202.03,2108.55 1200.55,2108.40 1199.80,2107.87 1199.77,2106.95 1200.48,2105.64"/>
+ </edge>
+ <edge id=":1545672864_3" function="internal">
+ <lane id=":1545672864_3_0" index="0" speed="8.33" length="5.19" shape="1196.11,2104.20 1197.02,2105.36 1198.05,2105.99 1199.20,2106.08 1200.48,2105.64"/>
+ </edge>
+ <edge id=":1545672864_4" function="internal">
+ <lane id=":1545672864_4_0" index="0" speed="8.33" length="10.55" shape="1196.11,2104.20 1197.22,2106.89 1197.18,2109.25 1195.99,2111.30 1193.64,2113.01"/>
+ </edge>
+ <edge id=":1545672864_5" function="internal">
+ <lane id=":1545672864_5_0" index="0" speed="8.33" length="4.81" shape="1196.11,2104.20 1196.03,2105.68 1195.53,2106.46 1194.61,2106.52 1193.28,2105.88"/>
+ </edge>
+ <edge id=":1545672864_6" function="internal">
+ <lane id=":1545672864_6_0" index="0" speed="8.33" length="5.05" shape="1192.09,2110.10 1193.21,2109.28 1193.79,2108.30 1193.81,2107.17 1193.28,2105.88"/>
+ </edge>
+ <edge id=":1545672864_7" function="internal">
+ <lane id=":1545672864_7_0" index="0" speed="8.33" length="9.50" shape="1192.09,2110.10 1200.48,2105.64"/>
+ </edge>
+ <edge id=":1545672864_8" function="internal">
+ <lane id=":1545672864_8_0" index="0" speed="8.33" length="4.82" shape="1192.09,2110.10 1193.57,2110.25 1194.32,2110.78 1194.35,2111.71 1193.64,2113.01"/>
+ </edge>
+ <edge id=":1545672874_0" function="internal">
+ <lane id=":1545672874_0_0" index="0" speed="8.33" length="5.12" shape="1186.72,2120.38 1186.04,2119.13 1185.14,2118.46 1184.01,2118.37 1182.65,2118.87"/>
+ </edge>
+ <edge id=":1545672874_1" function="internal">
+ <lane id=":1545672874_1_0" index="0" speed="8.33" length="10.35" shape="1186.72,2120.38 1186.04,2117.49 1186.29,2115.04 1187.45,2113.04 1189.53,2111.46"/>
+ </edge>
+ <edge id=":1545672874_2" function="internal">
+ <lane id=":1545672874_2_0" index="0" speed="8.33" length="4.82" shape="1186.72,2120.38 1187.01,2118.92 1187.61,2118.22 1188.53,2118.29 1189.77,2119.12"/>
+ </edge>
+ <edge id=":1545672874_3" function="internal">
+ <lane id=":1545672874_3_0" index="0" speed="8.33" length="5.44" shape="1191.09,2114.38 1190.05,2115.18 1189.48,2116.24 1189.39,2117.55 1189.77,2119.12"/>
+ </edge>
+ <edge id=":1545672874_4" function="internal">
+ <lane id=":1545672874_4_0" index="0" speed="8.33" length="9.56" shape="1191.09,2114.38 1182.65,2118.87"/>
+ </edge>
+ <edge id=":1545672874_5" function="internal">
+ <lane id=":1545672874_5_0" index="0" speed="8.33" length="4.82" shape="1191.09,2114.38 1189.61,2114.23 1188.85,2113.70 1188.83,2112.77 1189.53,2111.46"/>
+ </edge>
+ <edge id=":1545672874_6" function="internal">
+ <lane id=":1545672874_6_0" index="0" speed="8.33" length="9.56" shape="1181.10,2115.96 1189.53,2111.46"/>
+ </edge>
+ <edge id=":1545672874_7" function="internal">
+ <lane id=":1545672874_7_0" index="0" speed="8.33" length="10.90" shape="1181.10,2115.96 1184.00,2114.90 1186.41,2115.07 1188.34,2116.48 1189.77,2119.12"/>
+ </edge>
+ <edge id=":1545672874_8" function="internal">
+ <lane id=":1545672874_8_0" index="0" speed="8.33" length="4.82" shape="1181.10,2115.96 1182.58,2116.10 1183.33,2116.64 1183.35,2117.56 1182.65,2118.87"/>
+ </edge>
+ <edge id=":1545672910_0" function="internal">
+ <lane id=":1545672910_0_0" index="0" speed="8.33" length="5.06" shape="1226.04,2129.36 1225.67,2128.01 1224.97,2127.13 1223.91,2126.70 1222.52,2126.74"/>
+ </edge>
+ <edge id=":1545672910_1" function="internal">
+ <lane id=":1545672910_1_0" index="0" speed="8.33" length="9.17" shape="1226.04,2129.36 1225.91,2120.19"/>
+ </edge>
+ <edge id=":1545672910_2" function="internal">
+ <lane id=":1545672910_2_0" index="0" speed="8.33" length="4.82" shape="1226.04,2129.36 1226.71,2128.03 1227.48,2127.52 1228.34,2127.83 1229.31,2128.96"/>
+ </edge>
+ <edge id=":1545672910_3" function="internal">
+ <lane id=":1545672910_3_0" index="0" speed="8.33" length="8.39" shape="1229.19,2120.58 1229.31,2128.96"/>
+ </edge>
+ <edge id=":1545672910_4" function="internal">
+ <lane id=":1545672910_4_0" index="0" speed="8.33" length="9.82" shape="1229.19,2120.58 1228.54,2122.89 1227.21,2124.69 1225.20,2125.97 1222.52,2126.74"/>
+ </edge>
+ <edge id=":1545672910_5" function="internal">
+ <lane id=":1545672910_5_0" index="0" speed="8.33" length="4.82" shape="1229.19,2120.58 1228.22,2121.71 1227.35,2122.02 1226.58,2121.51 1225.91,2120.19"/>
+ </edge>
+ <edge id=":1545672910_6" function="internal">
+ <lane id=":1545672910_6_0" index="0" speed="8.33" length="5.56" shape="1221.95,2123.49 1223.56,2123.05 1224.76,2122.36 1225.54,2121.40 1225.91,2120.19"/>
+ </edge>
+ <edge id=":1545672910_7" function="internal">
+ <lane id=":1545672910_7_0" index="0" speed="8.33" length="10.57" shape="1221.95,2123.49 1224.87,2123.42 1227.07,2124.31 1228.55,2126.16 1229.31,2128.96"/>
+ </edge>
+ <edge id=":1545672910_8" function="internal">
+ <lane id=":1545672910_8_0" index="0" speed="8.33" length="4.82" shape="1221.95,2123.49 1223.31,2124.09 1223.86,2124.83 1223.59,2125.71 1222.52,2126.74"/>
+ </edge>
+ <edge id=":1545672919_0" function="internal">
+ <lane id=":1545672919_0_0" index="0" speed="8.33" length="5.30" shape="1188.79,2131.66 1188.43,2130.17 1187.72,2129.19 1186.67,2128.72 1185.27,2128.78"/>
+ </edge>
+ <edge id=":1545672919_1" function="internal">
+ <lane id=":1545672919_1_0" index="0" speed="8.33" length="9.93" shape="1188.79,2131.66 1187.16,2121.87"/>
+ </edge>
+ <edge id=":1545672919_2" function="internal">
+ <lane id=":1545672919_2_0" index="0" speed="8.33" length="11.16" shape="1188.79,2131.66 1188.91,2128.54 1190.03,2126.37 1192.15,2125.14 1195.28,2124.87"/>
+ </edge>
+ <edge id=":1545672919_3" function="internal">
+ <lane id=":1545672919_3_0" index="0" speed="8.33" length="4.82" shape="1188.79,2131.66 1189.49,2130.35 1190.27,2129.85 1191.13,2130.18 1192.07,2131.33"/>
+ </edge>
+ <edge id=":1545672919_4" function="internal">
+ <lane id=":1545672919_4_0" index="0" speed="8.33" length="5.20" shape="1195.09,2128.17 1193.64,2128.30 1192.65,2128.86 1192.13,2129.88 1192.07,2131.33"/>
+ </edge>
+ <edge id=":1545672919_5" function="internal">
+ <lane id=":1545672919_5_0" index="0" speed="8.33" length="9.84" shape="1195.09,2128.17 1185.27,2128.78"/>
+ </edge>
+ <edge id=":1545672919_6" function="internal">
+ <lane id=":1545672919_6_0" index="0" speed="8.33" length="10.89" shape="1195.09,2128.17 1192.26,2127.64 1189.99,2126.42 1188.29,2124.49 1187.16,2121.87"/>
+ </edge>
+ <edge id=":1545672919_7" function="internal">
+ <lane id=":1545672919_7_0" index="0" speed="8.33" length="4.82" shape="1195.09,2128.17 1193.90,2127.28 1193.54,2126.43 1194.00,2125.63 1195.28,2124.87"/>
+ </edge>
+ <edge id=":1545672919_8" function="internal">
+ <lane id=":1545672919_8_0" index="0" speed="8.33" length="6.57" shape="1190.39,2121.20 1191.07,2122.72 1192.11,2123.84 1193.51,2124.56 1195.28,2124.87"/>
+ </edge>
+ <edge id=":1545672919_9" function="internal">
+ <lane id=":1545672919_9_0" index="0" speed="8.33" length="10.30" shape="1190.39,2121.20 1191.16,2124.11 1191.55,2126.20 1191.78,2128.33 1192.07,2131.33"/>
+ </edge>
+ <edge id=":1545672919_10" function="internal">
+ <lane id=":1545672919_10_0" index="0" speed="8.33" length="10.63" shape="1190.39,2121.20 1190.74,2124.00 1190.00,2126.20 1188.18,2127.79 1185.27,2128.78"/>
+ </edge>
+ <edge id=":1545672919_11" function="internal">
+ <lane id=":1545672919_11_0" index="0" speed="8.33" length="4.83" shape="1190.39,2121.20 1189.84,2122.58 1189.11,2123.15 1188.22,2122.91 1187.16,2121.87"/>
+ </edge>
+ <edge id=":1545672919_12" function="internal">
+ <lane id=":1545672919_12_0" index="0" speed="8.33" length="5.11" shape="1184.72,2125.52 1186.11,2125.05 1186.98,2124.28 1187.33,2123.22 1187.16,2121.87"/>
+ </edge>
+ <edge id=":1545672919_13" function="internal">
+ <lane id=":1545672919_13_0" index="0" speed="8.33" length="10.63" shape="1184.72,2125.52 1187.74,2124.97 1189.97,2124.73 1192.21,2124.72 1195.28,2124.87"/>
+ </edge>
+ <edge id=":1545672919_14" function="internal">
+ <lane id=":1545672919_14_0" index="0" speed="8.33" length="10.91" shape="1184.72,2125.52 1187.65,2125.40 1189.85,2126.32 1191.33,2128.30 1192.07,2131.33"/>
+ </edge>
+ <edge id=":1545672919_15" function="internal">
+ <lane id=":1545672919_15_0" index="0" speed="8.33" length="4.82" shape="1184.72,2125.52 1186.08,2126.13 1186.62,2126.87 1186.35,2127.76 1185.27,2128.78"/>
+ </edge>
+ <edge id=":1545672923_0" function="internal">
+ <lane id=":1545672923_0_0" index="0" speed="8.33" length="5.32" shape="1274.95,2127.80 1274.48,2126.96 1274.20,2125.82 1274.12,2124.38 1274.25,2122.65"/>
+ </edge>
+ <edge id=":1545672923_1" function="internal">
+ <lane id=":1545672923_1_0" index="0" speed="8.33" length="2.41" shape="1274.95,2127.80 1274.80,2126.32 1275.17,2125.48"/>
+ </edge>
+ <edge id=":1545672923_4" function="internal">
+ <lane id=":1545672923_4_0" index="0" speed="8.33" length="2.41" shape="1275.17,2125.48 1276.07,2125.27 1277.50,2125.70"/>
+ </edge>
+ <edge id=":1545672923_2" function="internal">
+ <lane id=":1545672923_2_0" index="0" speed="8.33" length="1.80" shape="1277.27,2124.02 1277.13,2124.46 1277.12,2124.89 1277.24,2125.30 1277.50,2125.70"/>
+ </edge>
+ <edge id=":1545672923_3" function="internal">
+ <lane id=":1545672923_3_0" index="0" speed="8.33" length="2.43" shape="1277.27,2124.02 1276.00,2124.81 1275.07,2124.84"/>
+ </edge>
+ <edge id=":1545672923_5" function="internal">
+ <lane id=":1545672923_5_0" index="0" speed="8.33" length="2.43" shape="1275.07,2124.84 1274.49,2124.12 1274.25,2122.65"/>
+ </edge>
+ <edge id=":1545672954_0" function="internal">
+ <lane id=":1545672954_0_0" index="0" speed="8.33" length="5.14" shape="1290.24,2134.10 1288.90,2133.63 1287.80,2133.76 1286.95,2134.50 1286.33,2135.85"/>
+ </edge>
+ <edge id=":1545672954_1" function="internal">
+ <lane id=":1545672954_1_0" index="0" speed="8.33" length="9.99" shape="1290.24,2134.10 1287.76,2132.47 1286.06,2130.63 1285.12,2128.58 1284.95,2126.32"/>
+ </edge>
+ <edge id=":1545672954_2" function="internal">
+ <lane id=":1545672954_2_0" index="0" speed="8.33" length="5.10" shape="1290.24,2134.10 1289.07,2133.04 1288.77,2132.11 1289.34,2131.31 1290.76,2130.65"/>
+ </edge>
+ <edge id=":1545672954_3" function="internal">
+ <lane id=":1545672954_3_0" index="0" speed="8.33" length="5.05" shape="1288.24,2126.62 1288.31,2127.83 1288.76,2128.90 1289.57,2129.84 1290.76,2130.65"/>
+ </edge>
+ <edge id=":1545672954_4" function="internal">
+ <lane id=":1545672954_4_0" index="0" speed="8.33" length="9.42" shape="1288.24,2126.62 1286.33,2135.85"/>
+ </edge>
+ <edge id=":1545672954_5" function="internal">
+ <lane id=":1545672954_5_0" index="0" speed="8.33" length="4.82" shape="1288.24,2126.62 1287.31,2127.78 1286.45,2128.12 1285.66,2127.63 1284.95,2126.32"/>
+ </edge>
+ <edge id=":1545672954_6" function="internal">
+ <lane id=":1545672954_6_0" index="0" speed="8.33" length="8.76" shape="1283.18,2134.90 1284.95,2126.32"/>
+ </edge>
+ <edge id=":1545672954_7" function="internal">
+ <lane id=":1545672954_7_0" index="0" speed="8.33" length="10.40" shape="1283.18,2134.90 1284.46,2131.95 1286.15,2130.26 1288.25,2129.82 1290.76,2130.65"/>
+ </edge>
+ <edge id=":1545672954_8" function="internal">
+ <lane id=":1545672954_8_0" index="0" speed="8.33" length="4.80" shape="1283.18,2134.90 1284.32,2133.96 1285.23,2133.80 1285.90,2134.43 1286.33,2135.85"/>
+ </edge>
+ <edge id=":1545672971_0" function="internal">
+ <lane id=":1545672971_0_0" index="0" speed="8.33" length="4.82" shape="1192.35,2133.94 1191.66,2135.26 1190.89,2135.76 1190.02,2135.44 1189.07,2134.30"/>
+ </edge>
+ <edge id=":1545672999_0" function="internal">
+ <lane id=":1545672999_0_0" index="0" speed="8.33" length="3.24" shape="1275.90,2140.66 1276.01,2140.98 1275.73,2141.48 1275.05,2142.15 1273.97,2142.99"/>
+ </edge>
+ <edge id=":1545672999_1" function="internal">
+ <lane id=":1545672999_1_0" index="0" speed="8.33" length="7.18" shape="1275.90,2140.66 1275.58,2139.94 1275.57,2138.53 1275.90,2136.43 1276.56,2133.65"/>
+ </edge>
+ <edge id=":1545672999_2" function="internal">
+ <lane id=":1545672999_2_0" index="0" speed="8.33" length="4.95" shape="1275.90,2140.66 1275.47,2139.19 1275.68,2138.27 1276.55,2137.89 1278.07,2138.05"/>
+ </edge>
+ <edge id=":1545672999_3" function="internal">
+ <lane id=":1545672999_3_0" index="0" speed="8.33" length="3.06" shape="1279.46,2135.60 1279.08,2136.86 1278.72,2137.69 1278.39,2138.09 1278.07,2138.05"/>
+ </edge>
+ <edge id=":1545672999_4" function="internal">
+ <lane id=":1545672999_4_0" index="0" speed="8.33" length="9.21" shape="1279.46,2135.60 1273.97,2142.99"/>
+ </edge>
+ <edge id=":1545672999_5" function="internal">
+ <lane id=":1545672999_5_0" index="0" speed="8.33" length="5.10" shape="1279.46,2135.60 1278.00,2136.20 1277.03,2136.08 1276.55,2135.23 1276.56,2133.65"/>
+ </edge>
+ <edge id=":1545672999_6" function="internal">
+ <lane id=":1545672999_6_0" index="0" speed="8.33" length="7.58" shape="1270.98,2140.67 1274.18,2139.61 1276.44,2138.82 1277.73,2138.30 1278.07,2138.05"/>
+ </edge>
+ <edge id=":1545672999_7" function="internal">
+ <lane id=":1545672999_7_0" index="0" speed="8.33" length="9.35" shape="1270.98,2140.67 1272.86,2139.73 1274.42,2138.25 1275.65,2136.23 1276.56,2133.65"/>
+ </edge>
+ <edge id=":1545672999_8" function="internal">
+ <lane id=":1545672999_8_0" index="0" speed="8.33" length="5.53" shape="1270.98,2140.67 1272.60,2140.13 1273.63,2140.33 1274.09,2141.29 1273.97,2142.99"/>
+ </edge>
+ <edge id=":1545673030_0" function="internal">
+ <lane id=":1545673030_0_0" index="0" speed="8.33" length="10.52" shape="1285.01,2139.09 1283.72,2141.85 1282.54,2143.71 1281.02,2145.32 1278.71,2147.32"/>
+ </edge>
+ <edge id=":1545673030_1" function="internal">
+ <lane id=":1545673030_1_0" index="0" speed="8.33" length="8.72" shape="1285.01,2139.09 1283.57,2141.72 1282.03,2143.21 1280.39,2143.56 1278.66,2142.77"/>
+ </edge>
+ <edge id=":1545673030_2" function="internal">
+ <lane id=":1545673030_2_0" index="0" speed="8.33" length="4.85" shape="1285.01,2139.09 1283.64,2139.69 1282.71,2139.59 1282.23,2138.80 1282.20,2137.30"/>
+ </edge>
+ <edge id=":1545673030_3" function="internal">
+ <lane id=":1545673030_3_0" index="0" speed="8.33" length="3.32" shape="1280.64,2140.18 1280.83,2140.08 1281.15,2139.56 1281.61,2138.63 1282.20,2137.30"/>
+ </edge>
+ <edge id=":1545673030_4" function="internal">
+ <lane id=":1545673030_4_0" index="0" speed="8.33" length="8.62" shape="1280.64,2140.18 1281.75,2141.65 1281.80,2143.33 1280.78,2145.22 1278.71,2147.32"/>
+ </edge>
+ <edge id=":1545673030_5" function="internal">
+ <lane id=":1545673030_5_0" index="0" speed="8.33" length="4.76" shape="1280.64,2140.18 1281.12,2141.57 1280.94,2142.47 1280.12,2142.86 1278.66,2142.77"/>
+ </edge>
+ <edge id=":1545673030_6" function="internal">
+ <lane id=":1545673030_6_0" index="0" speed="8.33" length="3.30" shape="1276.31,2145.05 1277.40,2144.10 1278.16,2143.40 1278.58,2142.96 1278.66,2142.77"/>
+ </edge>
+ <edge id=":1545673030_7" function="internal">
+ <lane id=":1545673030_7_0" index="0" speed="8.33" length="9.74" shape="1276.31,2145.05 1282.20,2137.30"/>
+ </edge>
+ <edge id=":1545673030_8" function="internal">
+ <lane id=":1545673030_8_0" index="0" speed="8.33" length="4.83" shape="1276.31,2145.05 1277.76,2144.72 1278.65,2144.98 1278.96,2145.85 1278.71,2147.32"/>
+ </edge>
+ <edge id=":1545673031_0" function="internal">
+ <lane id=":1545673031_0_0" index="0" speed="8.33" length="5.02" shape="1301.65,2147.56 1300.86,2146.44 1299.90,2145.84 1298.77,2145.77 1297.47,2146.24"/>
+ </edge>
+ <edge id=":1545673031_1" function="internal">
+ <lane id=":1545673031_1_0" index="0" speed="8.33" length="9.44" shape="1301.65,2147.56 1297.22,2139.22"/>
+ </edge>
+ <edge id=":1545673031_2" function="internal">
+ <lane id=":1545673031_2_0" index="0" speed="8.33" length="4.82" shape="1301.65,2147.56 1301.83,2146.08 1302.37,2145.34 1303.30,2145.34 1304.59,2146.06"/>
+ </edge>
+ <edge id=":1545673031_3" function="internal">
+ <lane id=":1545673031_3_0" index="0" speed="8.33" length="9.42" shape="1300.33,2137.66 1304.59,2146.06"/>
+ </edge>
+ <edge id=":1545673031_4" function="internal">
+ <lane id=":1545673031_4_0" index="0" speed="8.33" length="11.13" shape="1300.33,2137.66 1301.90,2139.93 1301.95,2142.11 1300.47,2144.21 1297.47,2146.24"/>
+ </edge>
+ <edge id=":1545673031_5" function="internal">
+ <lane id=":1545673031_5_0" index="0" speed="8.33" length="5.09" shape="1300.33,2137.66 1300.14,2139.22 1299.56,2140.00 1298.58,2140.00 1297.22,2139.22"/>
+ </edge>
+ <edge id=":1545673031_6" function="internal">
+ <lane id=":1545673031_6_0" index="0" speed="8.33" length="5.29" shape="1295.94,2143.32 1297.34,2142.36 1298.02,2141.36 1297.98,2140.32 1297.22,2139.22"/>
+ </edge>
+ <edge id=":1545673031_7" function="internal">
+ <lane id=":1545673031_7_0" index="0" speed="8.33" length="10.39" shape="1295.94,2143.32 1298.62,2142.36 1300.96,2142.50 1302.95,2143.73 1304.59,2146.06"/>
+ </edge>
+ <edge id=":1545673031_8" function="internal">
+ <lane id=":1545673031_8_0" index="0" speed="8.33" length="4.82" shape="1295.94,2143.32 1297.42,2143.47 1298.16,2144.01 1298.18,2144.93 1297.47,2146.24"/>
+ </edge>
+ <edge id=":1545673065_0" function="internal">
+ <lane id=":1545673065_0_0" index="0" speed="8.33" length="4.63" shape="1124.39,2157.83 1123.25,2157.20 1122.14,2156.92 1121.07,2156.98 1120.03,2157.38"/>
+ </edge>
+ <edge id=":1545673065_1" function="internal">
+ <lane id=":1545673065_1_0" index="0" speed="8.33" length="8.61" shape="1124.39,2157.83 1122.67,2156.29 1121.67,2154.53 1121.42,2152.54 1121.90,2150.32"/>
+ </edge>
+ <edge id=":1545673065_2" function="internal">
+ <lane id=":1545673065_2_0" index="0" speed="8.33" length="4.84" shape="1124.39,2157.83 1124.04,2156.38 1124.29,2155.49 1125.15,2155.15 1126.63,2155.38"/>
+ </edge>
+ <edge id=":1545673065_3" function="internal">
+ <lane id=":1545673065_3_0" index="0" speed="8.33" length="4.98" shape="1125.13,2151.07 1124.86,2152.34 1125.02,2153.48 1125.61,2154.49 1126.63,2155.38"/>
+ </edge>
+ <edge id=":1545673065_4" function="internal">
+ <lane id=":1545673065_4_0" index="0" speed="8.33" length="8.11" shape="1125.13,2151.07 1120.03,2157.38"/>
+ </edge>
+ <edge id=":1545673065_5" function="internal">
+ <lane id=":1545673065_5_0" index="0" speed="8.33" length="4.85" shape="1125.13,2151.07 1124.04,2152.09 1123.14,2152.31 1122.42,2151.72 1121.90,2150.32"/>
+ </edge>
+ <edge id=":1545673065_6" function="internal">
+ <lane id=":1545673065_6_0" index="0" speed="8.33" length="5.61" shape="1118.26,2154.59 1121.90,2150.32"/>
+ </edge>
+ <edge id=":1545673065_7" function="internal">
+ <lane id=":1545673065_7_0" index="0" speed="8.33" length="8.87" shape="1118.26,2154.59 1120.25,2153.82 1122.31,2153.70 1124.43,2154.22 1126.63,2155.38"/>
+ </edge>
+ <edge id=":1545673065_8" function="internal">
+ <lane id=":1545673065_8_0" index="0" speed="8.33" length="4.82" shape="1118.26,2154.59 1119.74,2154.62 1120.54,2155.10 1120.63,2156.01 1120.03,2157.38"/>
+ </edge>
+ <edge id=":1545673067_0" function="internal">
+ <lane id=":1545673067_0_0" index="0" speed="8.33" length="1.89" shape="1246.10,2154.46 1244.39,2153.67"/>
+ </edge>
+ <edge id=":1545673067_1" function="internal">
+ <lane id=":1545673067_1_0" index="0" speed="8.33" length="1.93" shape="1246.10,2154.46 1244.42,2153.50"/>
+ </edge>
+ <edge id=":1545673067_2" function="internal">
+ <lane id=":1545673067_2_0" index="0" speed="8.33" length="16.31" shape="1246.10,2154.46 1240.94,2151.23 1239.40,2149.57 1241.48,2149.49 1247.17,2150.98"/>
+ </edge>
+ <edge id=":1545673067_3" function="internal">
+ <lane id=":1545673067_3_0" index="0" speed="8.33" length="4.93" shape="1246.10,2154.46 1245.14,2153.28 1244.98,2152.35 1245.64,2151.67 1247.09,2151.24"/>
+ </edge>
+ <edge id=":1545673067_4" function="internal">
+ <lane id=":1545673067_4_0" index="0" speed="8.33" length="3.03" shape="1246.20,2154.13 1247.09,2151.24"/>
+ </edge>
+ <edge id=":1545673067_5" function="internal">
+ <lane id=":1545673067_5_0" index="0" speed="8.33" length="1.87" shape="1246.20,2154.13 1244.39,2153.67"/>
+ </edge>
+ <edge id=":1545673067_6" function="internal">
+ <lane id=":1545673067_6_0" index="0" speed="8.33" length="1.89" shape="1246.20,2154.13 1244.42,2153.50"/>
+ </edge>
+ <edge id=":1545673067_7" function="internal">
+ <lane id=":1545673067_7_0" index="0" speed="8.33" length="4.82" shape="1246.20,2154.13 1245.26,2152.98 1245.11,2152.07 1245.75,2151.40 1247.17,2150.98"/>
+ </edge>
+ <edge id=":1545673067_8" function="internal">
+ <lane id=":1545673067_8_0" index="0" speed="8.33" length="2.29" shape="1245.06,2150.11 1247.17,2150.98"/>
+ </edge>
+ <edge id=":1545673067_9" function="internal">
+ <lane id=":1545673067_9_0" index="0" speed="8.33" length="2.33" shape="1245.06,2150.11 1247.09,2151.24"/>
+ </edge>
+ <edge id=":1545673067_10" function="internal">
+ <lane id=":1545673067_10_0" index="0" speed="8.33" length="12.32" shape="1245.06,2150.11 1249.01,2152.44 1250.21,2153.81 1248.67,2154.22 1244.39,2153.67"/>
+ </edge>
+ <edge id=":1545673067_11" function="internal">
+ <lane id=":1545673067_11_0" index="0" speed="8.33" length="5.04" shape="1245.06,2150.11 1246.17,2151.20 1246.44,2152.13 1245.85,2152.89 1244.42,2153.50"/>
+ </edge>
+ <edge id=":1545673067_12" function="internal">
+ <lane id=":1545673067_12_0" index="0" speed="8.33" length="3.13" shape="1245.00,2150.43 1244.42,2153.50"/>
+ </edge>
+ <edge id=":1545673067_13" function="internal">
+ <lane id=":1545673067_13_0" index="0" speed="8.33" length="2.24" shape="1245.00,2150.43 1247.17,2150.98"/>
+ </edge>
+ <edge id=":1545673067_14" function="internal">
+ <lane id=":1545673067_14_0" index="0" speed="8.33" length="2.25" shape="1245.00,2150.43 1247.09,2151.24"/>
+ </edge>
+ <edge id=":1545673067_15" function="internal">
+ <lane id=":1545673067_15_0" index="0" speed="8.33" length="4.81" shape="1245.00,2150.43 1246.06,2151.47 1246.31,2152.35 1245.76,2153.08 1244.39,2153.67"/>
+ </edge>
+ <edge id=":1545673092_0" function="internal">
+ <lane id=":1545673092_0_0" index="0" speed="8.33" length="5.16" shape="1157.55,2160.41 1156.12,2160.37 1155.08,2160.83 1154.43,2161.77 1154.17,2163.20"/>
+ </edge>
+ <edge id=":1545673092_1" function="internal">
+ <lane id=":1545673092_1_0" index="0" speed="8.33" length="9.85" shape="1157.55,2160.41 1147.70,2160.05"/>
+ </edge>
+ <edge id=":1545673092_2" function="internal">
+ <lane id=":1545673092_2_0" index="0" speed="8.33" length="11.11" shape="1157.55,2160.41 1154.07,2159.42 1151.95,2157.90 1151.17,2155.83 1151.74,2153.21"/>
+ </edge>
+ <edge id=":1545673092_3" function="internal">
+ <lane id=":1545673092_3_0" index="0" speed="8.33" length="4.82" shape="1157.55,2160.41 1156.45,2159.40 1156.17,2158.53 1156.70,2157.77 1158.05,2157.14"/>
+ </edge>
+ <edge id=":1545673092_4" function="internal">
+ <lane id=":1545673092_4_0" index="0" speed="8.33" length="5.47" shape="1155.16,2153.62 1154.89,2154.90 1155.27,2155.91 1156.33,2156.66 1158.05,2157.14"/>
+ </edge>
+ <edge id=":1545673092_5" function="internal">
+ <lane id=":1545673092_5_0" index="0" speed="8.33" length="9.62" shape="1155.16,2153.62 1154.17,2163.20"/>
+ </edge>
+ <edge id=":1545673092_6" function="internal">
+ <lane id=":1545673092_6_0" index="0" speed="8.33" length="10.35" shape="1155.16,2153.62 1153.73,2156.27 1152.00,2158.23 1149.99,2159.49 1147.70,2160.05"/>
+ </edge>
+ <edge id=":1545673092_7" function="internal">
+ <lane id=":1545673092_7_0" index="0" speed="8.33" length="5.03" shape="1155.16,2153.62 1154.15,2154.80 1153.25,2155.13 1152.44,2154.60 1151.74,2153.21"/>
+ </edge>
+ <edge id=":1545673092_8" function="internal">
+ <lane id=":1545673092_8_0" index="0" speed="8.33" length="5.90" shape="1147.41,2156.76 1148.77,2156.45 1149.95,2155.75 1150.94,2154.67 1151.74,2153.21"/>
+ </edge>
+ <edge id=":1545673092_9" function="internal">
+ <lane id=":1545673092_9_0" index="0" speed="8.33" length="10.69" shape="1147.41,2156.76 1150.48,2156.52 1152.75,2156.47 1155.01,2156.67 1158.05,2157.14"/>
+ </edge>
+ <edge id=":1545673092_10" function="internal">
+ <lane id=":1545673092_10_0" index="0" speed="8.33" length="10.98" shape="1147.41,2156.76 1150.47,2156.93 1152.61,2158.06 1153.85,2160.15 1154.17,2163.20"/>
+ </edge>
+ <edge id=":1545673092_11" function="internal">
+ <lane id=":1545673092_11_0" index="0" speed="8.33" length="4.82" shape="1147.41,2156.76 1148.71,2157.48 1149.20,2158.26 1148.86,2159.12 1147.70,2160.05"/>
+ </edge>
+ <edge id=":1545673092_12" function="internal">
+ <lane id=":1545673092_12_0" index="0" speed="8.33" length="5.25" shape="1150.88,2163.07 1150.81,2161.63 1150.25,2160.65 1149.22,2160.12 1147.70,2160.05"/>
+ </edge>
+ <edge id=":1545673092_13" function="internal">
+ <lane id=":1545673092_13_0" index="0" speed="8.33" length="9.90" shape="1150.88,2163.07 1151.74,2153.21"/>
+ </edge>
+ <edge id=":1545673092_14" function="internal">
+ <lane id=":1545673092_14_0" index="0" speed="8.33" length="10.78" shape="1150.88,2163.07 1151.59,2160.06 1153.02,2158.07 1155.18,2157.10 1158.05,2157.14"/>
+ </edge>
+ <edge id=":1545673092_15" function="internal">
+ <lane id=":1545673092_15_0" index="0" speed="8.33" length="4.81" shape="1150.88,2163.07 1151.75,2161.87 1152.59,2161.49 1153.40,2161.93 1154.17,2163.20"/>
+ </edge>
+ <edge id=":1545673105_0" function="internal">
+ <lane id=":1545673105_0_0" index="0" speed="8.33" length="3.87" shape="1111.56,2165.71 1110.84,2164.53 1110.13,2163.79 1109.43,2163.51 1108.74,2163.67"/>
+ </edge>
+ <edge id=":1545673105_1" function="internal">
+ <lane id=":1545673105_1_0" index="0" speed="8.33" length="9.74" shape="1111.56,2165.71 1107.13,2157.04"/>
+ </edge>
+ <edge id=":1545673105_2" function="internal">
+ <lane id=":1545673105_2_0" index="0" speed="8.33" length="10.52" shape="1111.56,2165.71 1110.62,2163.00 1110.76,2160.61 1111.98,2158.55 1114.26,2156.81"/>
+ </edge>
+ <edge id=":1545673105_3" function="internal">
+ <lane id=":1545673105_3_0" index="0" speed="8.33" length="4.82" shape="1111.56,2165.71 1111.73,2164.23 1112.27,2163.49 1113.20,2163.48 1114.49,2164.21"/>
+ </edge>
+ <edge id=":1545673105_4" function="internal">
+ <lane id=":1545673105_4_0" index="0" speed="8.33" length="5.34" shape="1115.87,2159.70 1114.71,2160.58 1114.09,2161.62 1114.02,2162.83 1114.49,2164.21"/>
+ </edge>
+ <edge id=":1545673105_5" function="internal">
+ <lane id=":1545673105_5_0" index="0" speed="8.33" length="8.16" shape="1115.87,2159.70 1108.74,2163.67"/>
+ </edge>
+ <edge id=":1545673105_6" function="internal">
+ <lane id=":1545673105_6_0" index="0" speed="8.33" length="10.50" shape="1115.87,2159.70 1113.16,2160.73 1110.81,2160.63 1108.80,2159.40 1107.13,2157.04"/>
+ </edge>
+ <edge id=":1545673105_7" function="internal">
+ <lane id=":1545673105_7_0" index="0" speed="8.33" length="4.82" shape="1115.87,2159.70 1114.38,2159.58 1113.62,2159.06 1113.58,2158.14 1114.26,2156.81"/>
+ </edge>
+ <edge id=":1545673105_8" function="internal">
+ <lane id=":1545673105_8_0" index="0" speed="8.33" length="5.04" shape="1110.07,2155.54 1110.87,2156.67 1111.83,2157.26 1112.97,2157.31 1114.26,2156.81"/>
+ </edge>
+ <edge id=":1545673105_9" function="internal">
+ <lane id=":1545673105_9_0" index="0" speed="8.33" length="9.74" shape="1110.07,2155.54 1114.49,2164.21"/>
+ </edge>
+ <edge id=":1545673105_10" function="internal">
+ <lane id=":1545673105_10_0" index="0" speed="8.33" length="9.27" shape="1110.07,2155.54 1111.08,2158.20 1111.20,2160.44 1110.42,2162.27 1108.74,2163.67"/>
+ </edge>
+ <edge id=":1545673105_11" function="internal">
+ <lane id=":1545673105_11_0" index="0" speed="8.33" length="4.82" shape="1110.07,2155.54 1109.89,2157.01 1109.35,2157.75 1108.42,2157.76 1107.13,2157.04"/>
+ </edge>
+ <edge id=":1545673105_12" function="internal">
+ <lane id=":1545673105_12_0" index="0" speed="8.33" length="4.13" shape="1107.13,2160.78 1107.69,2160.24 1107.87,2159.43 1107.69,2158.36 1107.13,2157.04"/>
+ </edge>
+ <edge id=":1545673105_13" function="internal">
+ <lane id=":1545673105_13_0" index="0" speed="8.33" length="8.16" shape="1107.13,2160.78 1114.26,2156.81"/>
+ </edge>
+ <edge id=":1545673105_14" function="internal">
+ <lane id=":1545673105_14_0" index="0" speed="8.33" length="9.28" shape="1107.13,2160.78 1109.23,2160.08 1111.16,2160.42 1112.91,2161.80 1114.49,2164.21"/>
+ </edge>
+ <edge id=":1545673105_15" function="internal">
+ <lane id=":1545673105_15_0" index="0" speed="8.33" length="4.82" shape="1107.13,2160.78 1108.62,2160.90 1109.38,2161.42 1109.42,2162.34 1108.74,2163.67"/>
+ </edge>
+ <edge id=":1545673118_0" function="internal">
+ <lane id=":1545673118_0_0" index="0" speed="22.22" length="9.51" shape="1104.26,2169.47 1099.99,2160.98"/>
+ </edge>
+ <edge id=":1545673118_1" function="internal">
+ <lane id=":1545673118_1_0" index="0" speed="15.28" length="7.44" shape="1104.26,2169.47 1103.31,2166.90 1103.24,2164.72 1104.06,2162.94 1104.49,2162.58"/>
+ </edge>
+ <edge id=":1545673118_9" function="internal">
+ <lane id=":1545673118_9_0" index="0" speed="15.28" length="1.63" shape="1104.49,2162.58 1105.75,2161.55"/>
+ </edge>
+ <edge id=":1545673118_2" function="internal">
+ <lane id=":1545673118_2_0" index="0" speed="22.22" length="2.41" shape="1104.26,2169.47 1104.44,2167.99 1104.99,2167.25"/>
+ </edge>
+ <edge id=":1545673118_10" function="internal">
+ <lane id=":1545673118_10_0" index="0" speed="22.22" length="2.41" shape="1104.99,2167.25 1105.91,2167.25 1107.21,2167.99"/>
+ </edge>
+ <edge id=":1545673118_3" function="internal">
+ <lane id=":1545673118_3_0" index="0" speed="15.28" length="3.94" shape="1107.36,2164.44 1106.78,2164.97 1106.57,2165.75 1106.71,2166.75 1107.21,2167.99"/>
+ </edge>
+ <edge id=":1545673118_4" function="internal">
+ <lane id=":1545673118_4_0" index="0" speed="15.28" length="9.32" shape="1107.36,2164.44 1105.25,2165.14 1103.32,2164.80 1101.57,2163.41 1099.99,2160.98"/>
+ </edge>
+ <edge id=":1545673118_5" function="internal">
+ <lane id=":1545673118_5_0" index="0" speed="8.33" length="4.82" shape="1107.36,2164.44 1105.88,2164.32 1105.11,2163.80 1105.07,2162.88 1105.75,2161.55"/>
+ </edge>
+ <edge id=":1545673118_6" function="internal">
+ <lane id=":1545673118_6_0" index="0" speed="15.28" length="3.88" shape="1102.94,2159.49 1103.65,2160.69 1104.36,2161.43 1105.06,2161.72 1105.75,2161.55"/>
+ </edge>
+ <edge id=":1545673118_7" function="internal">
+ <lane id=":1545673118_7_0" index="0" speed="22.22" length="9.51" shape="1102.94,2159.49 1107.21,2167.99"/>
+ </edge>
+ <edge id=":1545673118_8" function="internal">
+ <lane id=":1545673118_8_0" index="0" speed="22.22" length="2.41" shape="1102.94,2159.49 1102.76,2160.97 1102.21,2161.71"/>
+ </edge>
+ <edge id=":1545673118_11" function="internal">
+ <lane id=":1545673118_11_0" index="0" speed="22.22" length="2.41" shape="1102.21,2161.71 1101.29,2161.71 1099.99,2160.98"/>
+ </edge>
+ <edge id=":1545673123_0" function="internal">
+ <lane id=":1545673123_0_0" index="0" speed="8.33" length="10.77" shape="1185.37,2163.61 1183.14,2164.92 1181.32,2166.72 1179.92,2169.01 1178.92,2171.78"/>
+ </edge>
+ <edge id=":1545673123_1" function="internal">
+ <lane id=":1545673123_1_0" index="0" speed="8.33" length="10.91" shape="1185.37,2163.61 1182.47,2164.60 1180.18,2164.75 1177.82,2164.34 1174.73,2163.66"/>
+ </edge>
+ <edge id=":1545673123_2" function="internal">
+ <lane id=":1545673123_2_0" index="0" speed="8.33" length="4.84" shape="1185.37,2163.61 1183.88,2163.53 1183.10,2163.03 1183.03,2162.11 1183.67,2160.76"/>
+ </edge>
+ <edge id=":1545673123_3" function="internal">
+ <lane id=":1545673123_3_0" index="0" speed="8.33" length="8.32" shape="1175.36,2160.42 1183.67,2160.76"/>
+ </edge>
+ <edge id=":1545673123_4" function="internal">
+ <lane id=":1545673123_4_0" index="0" speed="8.33" length="13.50" shape="1175.36,2160.42 1177.92,2161.59 1179.36,2163.87 1179.70,2167.26 1178.92,2171.78"/>
+ </edge>
+ <edge id=":1545673123_5" function="internal">
+ <lane id=":1545673123_5_0" index="0" speed="8.33" length="4.82" shape="1175.36,2160.42 1176.42,2161.47 1176.67,2162.36 1176.11,2163.09 1174.73,2163.66"/>
+ </edge>
+ <edge id=":1545673123_6" function="internal">
+ <lane id=":1545673123_6_0" index="0" speed="8.33" length="6.04" shape="1176.48,2168.45 1176.97,2166.60 1176.85,2165.19 1176.10,2164.21 1174.73,2163.66"/>
+ </edge>
+ <edge id=":1545673123_7" function="internal">
+ <lane id=":1545673123_7_0" index="0" speed="8.33" length="10.97" shape="1176.48,2168.45 1177.72,2165.57 1179.04,2163.61 1180.88,2162.16 1183.67,2160.76"/>
+ </edge>
+ <edge id=":1545673123_8" function="internal">
+ <lane id=":1545673123_8_0" index="0" speed="8.33" length="6.02" shape="1176.48,2168.45 1178.34,2168.37 1179.36,2168.89 1179.56,2170.03 1178.92,2171.78"/>
+ </edge>
+ <edge id=":1545673135_0" function="internal">
+ <lane id=":1545673135_0_0" index="0" speed="8.33" length="9.49" shape="1261.04,2165.42 1252.64,2169.85"/>
+ </edge>
+ <edge id=":1545673135_1" function="internal">
+ <lane id=":1545673135_1_0" index="0" speed="8.33" length="10.48" shape="1261.04,2165.42 1258.24,2166.45 1255.87,2166.33 1253.94,2165.08 1252.44,2162.68"/>
+ </edge>
+ <edge id=":1545673135_2" function="internal">
+ <lane id=":1545673135_2_0" index="0" speed="8.33" length="4.82" shape="1261.04,2165.42 1259.56,2165.27 1258.81,2164.73 1258.80,2163.81 1259.51,2162.50"/>
+ </edge>
+ <edge id=":1545673135_3" function="internal">
+ <lane id=":1545673135_3_0" index="0" speed="8.33" length="5.12" shape="1255.34,2161.08 1256.07,2162.28 1257.01,2162.91 1258.16,2162.99 1259.51,2162.50"/>
+ </edge>
+ <edge id=":1545673135_4" function="internal">
+ <lane id=":1545673135_4_0" index="0" speed="8.33" length="10.28" shape="1255.34,2161.08 1256.13,2163.88 1255.95,2166.27 1254.79,2168.26 1252.64,2169.85"/>
+ </edge>
+ <edge id=":1545673135_5" function="internal">
+ <lane id=":1545673135_5_0" index="0" speed="8.33" length="4.83" shape="1255.34,2161.08 1255.21,2162.57 1254.69,2163.33 1253.77,2163.37 1252.44,2162.68"/>
+ </edge>
+ <edge id=":1545673135_6" function="internal">
+ <lane id=":1545673135_6_0" index="0" speed="8.33" length="4.99" shape="1251.11,2166.93 1252.16,2166.15 1252.73,2165.19 1252.82,2164.03 1252.44,2162.68"/>
+ </edge>
+ <edge id=":1545673135_7" function="internal">
+ <lane id=":1545673135_7_0" index="0" speed="8.33" length="9.49" shape="1251.11,2166.93 1259.51,2162.50"/>
+ </edge>
+ <edge id=":1545673135_8" function="internal">
+ <lane id=":1545673135_8_0" index="0" speed="8.33" length="4.82" shape="1251.11,2166.93 1252.59,2167.08 1253.33,2167.62 1253.35,2168.54 1252.64,2169.85"/>
+ </edge>
+ <edge id=":1545673150_0" function="internal">
+ <lane id=":1545673150_0_0" index="0" speed="8.33" length="5.12" shape="1308.41,2173.92 1308.32,2172.57 1307.76,2171.61 1306.74,2171.04 1305.27,2170.87"/>
+ </edge>
+ <edge id=":1545673150_1" function="internal">
+ <lane id=":1545673150_1_0" index="0" speed="8.33" length="9.38" shape="1308.41,2173.92 1308.65,2164.54"/>
+ </edge>
+ <edge id=":1545673150_2" function="internal">
+ <lane id=":1545673150_2_0" index="0" speed="8.33" length="4.81" shape="1308.41,2173.92 1309.22,2172.67 1310.03,2172.25 1310.86,2172.65 1311.70,2173.87"/>
+ </edge>
+ <edge id=":1545673150_3" function="internal">
+ <lane id=":1545673150_3_0" index="0" speed="8.33" length="9.14" shape="1311.95,2164.73 1311.70,2173.87"/>
+ </edge>
+ <edge id=":1545673150_4" function="internal">
+ <lane id=":1545673150_4_0" index="0" speed="8.33" length="10.10" shape="1311.95,2164.73 1311.29,2167.39 1309.96,2169.30 1307.95,2170.46 1305.27,2170.87"/>
+ </edge>
+ <edge id=":1545673150_5" function="internal">
+ <lane id=":1545673150_5_0" index="0" speed="8.33" length="4.82" shape="1311.95,2164.73 1311.06,2165.92 1310.21,2166.29 1309.41,2165.83 1308.65,2164.54"/>
+ </edge>
+ <edge id=":1545673150_6" function="internal">
+ <lane id=":1545673150_6_0" index="0" speed="8.33" length="5.08" shape="1305.23,2167.57 1306.61,2167.36 1307.64,2166.79 1308.32,2165.85 1308.65,2164.54"/>
+ </edge>
+ <edge id=":1545673150_7" function="internal">
+ <lane id=":1545673150_7_0" index="0" speed="8.33" length="10.29" shape="1305.23,2167.57 1308.02,2167.93 1310.03,2169.10 1311.26,2171.08 1311.70,2173.87"/>
+ </edge>
+ <edge id=":1545673150_8" function="internal">
+ <lane id=":1545673150_8_0" index="0" speed="8.33" length="4.82" shape="1305.23,2167.57 1306.48,2168.38 1306.90,2169.20 1306.50,2170.03 1305.27,2170.87"/>
+ </edge>
+ <edge id=":1545673191_0" function="internal">
+ <lane id=":1545673191_0_0" index="0" speed="8.33" length="5.06" shape="1221.58,2189.80 1220.81,2188.63 1219.87,2188.01 1218.74,2187.93 1217.42,2188.39"/>
+ </edge>
+ <edge id=":1545673191_1" function="internal">
+ <lane id=":1545673191_1_0" index="0" speed="8.33" length="10.33" shape="1221.58,2189.80 1220.72,2187.05 1220.89,2184.68 1222.08,2182.68 1224.29,2181.05"/>
+ </edge>
+ <edge id=":1545673191_2" function="internal">
+ <lane id=":1545673191_2_0" index="0" speed="8.33" length="4.81" shape="1221.58,2189.80 1221.80,2188.33 1222.37,2187.60 1223.30,2187.63 1224.56,2188.40"/>
+ </edge>
+ <edge id=":1545673191_3" function="internal">
+ <lane id=":1545673191_3_0" index="0" speed="8.33" length="5.19" shape="1225.83,2183.97 1224.75,2184.78 1224.18,2185.79 1224.12,2186.99 1224.56,2188.40"/>
+ </edge>
+ <edge id=":1545673191_4" function="internal">
+ <lane id=":1545673191_4_0" index="0" speed="8.33" length="9.50" shape="1225.83,2183.97 1217.42,2188.39"/>
+ </edge>
+ <edge id=":1545673191_5" function="internal">
+ <lane id=":1545673191_5_0" index="0" speed="8.33" length="4.82" shape="1225.83,2183.97 1224.35,2183.82 1223.60,2183.28 1223.58,2182.36 1224.29,2181.05"/>
+ </edge>
+ <edge id=":1545673191_6" function="internal">
+ <lane id=":1545673191_6_0" index="0" speed="8.33" length="9.49" shape="1215.89,2185.47 1224.29,2181.05"/>
+ </edge>
+ <edge id=":1545673191_7" function="internal">
+ <lane id=":1545673191_7_0" index="0" speed="8.33" length="10.55" shape="1215.89,2185.47 1218.63,2184.50 1220.99,2184.66 1222.97,2185.96 1224.56,2188.40"/>
+ </edge>
+ <edge id=":1545673191_8" function="internal">
+ <lane id=":1545673191_8_0" index="0" speed="8.33" length="4.82" shape="1215.89,2185.47 1217.37,2185.63 1218.12,2186.17 1218.13,2187.09 1217.42,2188.39"/>
+ </edge>
+ <edge id=":1545673218_0" function="internal">
+ <lane id=":1545673218_0_0" index="0" speed="8.33" length="9.19" shape="1179.41,2193.22 1170.32,2191.85"/>
+ </edge>
+ <edge id=":1545673218_1" function="internal">
+ <lane id=":1545673218_1_0" index="0" speed="8.33" length="10.30" shape="1179.41,2193.22 1177.16,2191.64 1175.53,2189.73 1174.50,2187.50 1174.09,2184.95"/>
+ </edge>
+ <edge id=":1545673218_2" function="internal">
+ <lane id=":1545673218_2_0" index="0" speed="8.33" length="4.93" shape="1179.41,2193.22 1178.42,2192.07 1178.24,2191.14 1178.87,2190.44 1180.32,2189.97"/>
+ </edge>
+ <edge id=":1545673218_3" function="internal">
+ <lane id=":1545673218_3_0" index="0" speed="8.33" length="6.75" shape="1177.37,2184.25 1177.58,2186.16 1178.15,2187.75 1179.06,2189.02 1180.32,2189.97"/>
+ </edge>
+ <edge id=":1545673218_4" function="internal">
+ <lane id=":1545673218_4_0" index="0" speed="8.33" length="11.71" shape="1177.37,2184.25 1176.98,2187.40 1175.68,2189.72 1173.46,2191.20 1170.32,2191.85"/>
+ </edge>
+ <edge id=":1545673218_5" function="internal">
+ <lane id=":1545673218_5_0" index="0" speed="8.33" length="4.89" shape="1177.37,2184.25 1176.81,2185.65 1176.08,2186.24 1175.17,2186.01 1174.09,2184.95"/>
+ </edge>
+ <edge id=":1545673218_6" function="internal">
+ <lane id=":1545673218_6_0" index="0" speed="8.33" length="5.48" shape="1170.82,2188.52 1172.30,2188.21 1173.34,2187.51 1173.93,2186.43 1174.09,2184.95"/>
+ </edge>
+ <edge id=":1545673218_7" function="internal">
+ <lane id=":1545673218_7_0" index="0" speed="8.33" length="9.61" shape="1170.82,2188.52 1180.32,2189.97"/>
+ </edge>
+ <edge id=":1545673218_8" function="internal">
+ <lane id=":1545673218_8_0" index="0" speed="8.33" length="4.93" shape="1170.82,2188.52 1171.95,2189.54 1172.24,2190.43 1171.70,2191.21 1170.32,2191.85"/>
+ </edge>
+ <edge id=":1545673223_0" function="internal">
+ <lane id=":1545673223_0_0" index="0" speed="8.33" length="8.63" shape="1168.81,2192.04 1166.98,2192.56 1165.24,2193.56 1163.58,2195.03 1162.01,2196.97"/>
+ </edge>
+ <edge id=":1545673223_1" function="internal">
+ <lane id=":1545673223_1_0" index="0" speed="8.33" length="9.92" shape="1168.81,2192.04 1166.04,2192.21 1163.59,2191.83 1161.45,2190.91 1159.63,2189.44"/>
+ </edge>
+ <edge id=":1545673223_2" function="internal">
+ <lane id=":1545673223_2_0" index="0" speed="8.33" length="5.03" shape="1168.81,2192.04 1167.28,2191.81 1166.52,2191.22 1166.54,2190.26 1167.33,2188.92"/>
+ </edge>
+ <edge id=":1545673223_3" function="internal">
+ <lane id=":1545673223_3_0" index="0" speed="8.33" length="6.22" shape="1161.72,2186.86 1162.97,2187.94 1164.33,2188.65 1165.78,2188.97 1167.33,2188.92"/>
+ </edge>
+ <edge id=":1545673223_4" function="internal">
+ <lane id=":1545673223_4_0" index="0" speed="8.33" length="11.09" shape="1161.72,2186.86 1163.33,2189.17 1163.91,2191.62 1163.47,2194.22 1162.01,2196.97"/>
+ </edge>
+ <edge id=":1545673223_5" function="internal">
+ <lane id=":1545673223_5_0" index="0" speed="8.33" length="4.85" shape="1161.72,2186.86 1162.16,2188.29 1161.96,2189.20 1161.12,2189.58 1159.63,2189.44"/>
+ </edge>
+ <edge id=":1545673223_6" function="internal">
+ <lane id=":1545673223_6_0" index="0" speed="8.33" length="5.32" shape="1159.86,2194.29 1160.54,2192.99 1160.73,2191.75 1160.43,2190.56 1159.63,2189.44"/>
+ </edge>
+ <edge id=":1545673223_7" function="internal">
+ <lane id=":1545673223_7_0" index="0" speed="8.33" length="9.45" shape="1159.86,2194.29 1161.57,2192.17 1163.38,2190.58 1165.31,2189.49 1167.33,2188.92"/>
+ </edge>
+ <edge id=":1545673223_8" function="internal">
+ <lane id=":1545673223_8_0" index="0" speed="8.33" length="5.02" shape="1159.86,2194.29 1161.40,2194.15 1162.28,2194.56 1162.48,2195.50 1162.01,2196.97"/>
+ </edge>
+ <edge id=":1545673240_0" function="internal">
+ <lane id=":1545673240_0_0" index="0" speed="8.33" length="10.35" shape="1259.69,2192.60 1258.01,2194.37 1256.91,2196.52 1256.39,2199.05 1256.45,2201.95"/>
+ </edge>
+ <edge id=":1545673240_1" function="internal">
+ <lane id=":1545673240_1_0" index="0" speed="8.33" length="11.79" shape="1259.69,2192.60 1257.15,2194.67 1254.99,2196.25 1252.64,2197.40 1249.51,2198.17"/>
+ </edge>
+ <edge id=":1545673240_2" function="internal">
+ <lane id=":1545673240_2_0" index="0" speed="8.33" length="4.82" shape="1259.69,2192.60 1258.21,2192.73 1257.37,2192.34 1257.18,2191.44 1257.62,2190.02"/>
+ </edge>
+ <edge id=":1545673240_3" function="internal">
+ <lane id=":1545673240_3_0" index="0" speed="8.33" length="11.21" shape="1247.85,2195.10 1250.91,2194.41 1253.12,2193.43 1255.15,2192.02 1257.62,2190.02"/>
+ </edge>
+ <edge id=":1545673240_4" function="internal">
+ <lane id=":1545673240_4_0" index="0" speed="8.33" length="12.69" shape="1247.85,2195.10 1251.27,2195.06 1253.84,2196.18 1255.57,2198.48 1256.45,2201.95"/>
+ </edge>
+ <edge id=":1545673240_5" function="internal">
+ <lane id=":1545673240_5_0" index="0" speed="8.33" length="5.10" shape="1247.85,2195.10 1249.41,2195.25 1250.21,2195.80 1250.25,2196.78 1249.51,2198.17"/>
+ </edge>
+ <edge id=":1545673240_6" function="internal">
+ <lane id=":1545673240_6_0" index="0" speed="8.33" length="5.21" shape="1253.03,2201.01 1252.66,2199.57 1251.96,2198.62 1250.91,2198.16 1249.51,2198.17"/>
+ </edge>
+ <edge id=":1545673240_7" function="internal">
+ <lane id=":1545673240_7_0" index="0" speed="8.33" length="12.45" shape="1253.03,2201.01 1253.03,2197.81 1253.80,2194.92 1255.33,2192.32 1257.62,2190.02"/>
+ </edge>
+ <edge id=":1545673240_8" function="internal">
+ <lane id=":1545673240_8_0" index="0" speed="8.33" length="5.19" shape="1253.03,2201.01 1254.24,2199.96 1255.21,2199.77 1255.95,2200.43 1256.45,2201.95"/>
+ </edge>
+ <edge id=":1545673280_0" function="internal">
+ <lane id=":1545673280_0_0" index="0" speed="8.33" length="9.72" shape="1194.65,2200.32 1186.04,2204.84"/>
+ </edge>
+ <edge id=":1545673280_1" function="internal">
+ <lane id=":1545673280_1_0" index="0" speed="8.33" length="10.49" shape="1194.65,2200.32 1192.41,2201.03 1190.10,2200.82 1187.71,2199.71 1185.24,2197.70"/>
+ </edge>
+ <edge id=":1545673280_2" function="internal">
+ <lane id=":1545673280_2_0" index="0" speed="8.33" length="4.82" shape="1194.65,2200.32 1193.17,2200.17 1192.42,2199.63 1192.41,2198.71 1193.12,2197.40"/>
+ </edge>
+ <edge id=":1545673280_3" function="internal">
+ <lane id=":1545673280_3_0" index="0" speed="8.33" length="6.08" shape="1187.75,2195.54 1189.24,2196.80 1190.64,2197.53 1191.93,2197.73 1193.12,2197.40"/>
+ </edge>
+ <edge id=":1545673280_4" function="internal">
+ <lane id=":1545673280_4_0" index="0" speed="8.33" length="11.76" shape="1187.75,2195.54 1189.72,2198.18 1190.10,2200.61 1188.87,2202.83 1186.04,2204.84"/>
+ </edge>
+ <edge id=":1545673280_5" function="internal">
+ <lane id=":1545673280_5_0" index="0" speed="8.33" length="4.83" shape="1187.75,2195.54 1187.93,2197.02 1187.58,2197.87 1186.68,2198.10 1185.24,2197.70"/>
+ </edge>
+ <edge id=":1545673280_6" function="internal">
+ <lane id=":1545673280_6_0" index="0" speed="8.33" length="5.33" shape="1184.51,2201.92 1185.78,2201.01 1186.33,2200.00 1186.15,2198.90 1185.24,2197.70"/>
+ </edge>
+ <edge id=":1545673280_7" function="internal">
+ <lane id=":1545673280_7_0" index="0" speed="8.33" length="9.72" shape="1184.51,2201.92 1193.12,2197.40"/>
+ </edge>
+ <edge id=":1545673280_8" function="internal">
+ <lane id=":1545673280_8_0" index="0" speed="8.33" length="4.82" shape="1184.51,2201.92 1185.99,2202.07 1186.74,2202.61 1186.76,2203.53 1186.04,2204.84"/>
+ </edge>
+ <edge id=":1545673304_0" function="internal">
+ <lane id=":1545673304_0_0" index="0" speed="8.33" length="3.43" shape="1257.80,2211.12 1257.67,2210.71 1257.27,2210.13 1256.62,2209.37 1255.71,2208.45"/>
+ </edge>
+ <edge id=":1545673304_1" function="internal">
+ <lane id=":1545673304_1_0" index="0" speed="8.33" length="8.81" shape="1257.80,2211.12 1258.19,2209.22 1259.40,2207.88 1261.44,2207.10 1264.30,2206.88"/>
+ </edge>
+ <edge id=":1545673304_2" function="internal">
+ <lane id=":1545673304_2_0" index="0" speed="8.33" length="4.82" shape="1257.80,2211.12 1258.61,2209.88 1259.43,2209.46 1260.26,2209.86 1261.10,2211.09"/>
+ </edge>
+ <edge id=":1545673304_3" function="internal">
+ <lane id=":1545673304_3_0" index="0" speed="8.33" length="3.49" shape="1264.24,2210.18 1262.86,2210.21 1261.88,2210.37 1261.29,2210.67 1261.10,2211.09"/>
+ </edge>
+ <edge id=":1545673304_4" function="internal">
+ <lane id=":1545673304_4_0" index="0" speed="8.33" length="8.71" shape="1264.24,2210.18 1255.71,2208.45"/>
+ </edge>
+ <edge id=":1545673304_5" function="internal">
+ <lane id=":1545673304_5_0" index="0" speed="8.33" length="4.82" shape="1264.24,2210.18 1263.02,2209.33 1262.62,2208.50 1263.05,2207.68 1264.30,2206.88"/>
+ </edge>
+ <edge id=":1545673304_6" function="internal">
+ <lane id=":1545673304_6_0" index="0" speed="8.33" length="7.78" shape="1257.12,2204.72 1257.89,2205.62 1259.35,2206.28 1261.48,2206.70 1264.30,2206.88"/>
+ </edge>
+ <edge id=":1545673304_7" function="internal">
+ <lane id=":1545673304_7_0" index="0" speed="8.33" length="7.51" shape="1257.12,2204.72 1261.10,2211.09"/>
+ </edge>
+ <edge id=":1545673304_8" function="internal">
+ <lane id=":1545673304_8_0" index="0" speed="8.33" length="5.83" shape="1257.12,2204.72 1258.17,2206.18 1258.28,2207.29 1257.46,2208.05 1255.71,2208.45"/>
+ </edge>
+ <edge id=":1545673319_0" function="internal">
+ <lane id=":1545673319_0_0" index="0" speed="6.94" length="3.45" shape="1261.12,2213.27 1261.32,2213.68 1261.91,2213.97 1262.87,2214.14 1264.23,2214.19"/>
+ </edge>
+ <edge id=":1545673319_1" function="internal">
+ <lane id=":1545673319_1_0" index="0" speed="8.33" length="4.09" shape="1261.12,2213.27 1261.13,2217.35"/>
+ </edge>
+ <edge id=":1545673319_2" function="internal">
+ <lane id=":1545673319_2_0" index="0" speed="8.33" length="4.82" shape="1261.12,2213.27 1260.31,2214.51 1259.49,2214.93 1258.66,2214.53 1257.82,2213.30"/>
+ </edge>
+ <edge id=":1545673319_3" function="internal">
+ <lane id=":1545673319_3_0" index="0" speed="6.94" length="7.87" shape="1254.72,2214.25 1257.53,2214.43 1259.53,2215.01 1260.73,2215.98 1261.13,2217.35"/>
+ </edge>
+ <edge id=":1545673319_4" function="internal">
+ <lane id=":1545673319_4_0" index="0" speed="6.94" length="3.45" shape="1254.72,2214.25 1256.08,2214.18 1257.05,2214.00 1257.63,2213.71 1257.82,2213.30"/>
+ </edge>
+ <edge id=":1545673319_5" function="internal">
+ <lane id=":1545673319_5_0" index="0" speed="5.56" length="9.50" shape="1254.72,2214.25 1264.23,2214.19"/>
+ </edge>
+ <edge id=":1545673319_6" function="internal">
+ <lane id=":1545673319_6_0" index="0" speed="8.33" length="4.04" shape="1257.83,2217.34 1257.82,2213.30"/>
+ </edge>
+ <edge id=":1545673319_7" function="internal">
+ <lane id=":1545673319_7_0" index="0" speed="6.94" length="7.86" shape="1257.83,2217.34 1258.23,2215.98 1259.43,2215.00 1261.43,2214.40 1264.23,2214.19"/>
+ </edge>
+ <edge id=":1545673319_8" function="internal">
+ <lane id=":1545673319_8_0" index="0" speed="8.33" length="4.82" shape="1257.83,2217.34 1258.66,2216.11 1259.48,2215.70 1260.31,2216.11 1261.13,2217.35"/>
+ </edge>
+ <edge id=":1545673333_0" function="internal">
+ <lane id=":1545673333_0_0" index="0" speed="8.33" length="6.37" shape="1155.72,2218.67 1149.39,2219.37"/>
+ </edge>
+ <edge id=":1545673333_1" function="internal">
+ <lane id=":1545673333_1_0" index="0" speed="8.33" length="9.90" shape="1155.72,2218.67 1152.87,2217.90 1151.03,2216.53 1150.23,2214.58 1150.44,2212.04"/>
+ </edge>
+ <edge id=":1545673333_2" function="internal">
+ <lane id=":1545673333_2_0" index="0" speed="8.33" length="4.82" shape="1155.72,2218.67 1154.65,2217.65 1154.38,2216.76 1154.93,2216.02 1156.30,2215.42"/>
+ </edge>
+ <edge id=":1545673333_3" function="internal">
+ <lane id=":1545673333_3_0" index="0" speed="8.33" length="4.81" shape="1153.82,2212.13 1153.70,2213.40 1154.08,2214.37 1154.94,2215.05 1156.30,2215.42"/>
+ </edge>
+ <edge id=":1545673333_4" function="internal">
+ <lane id=":1545673333_4_0" index="0" speed="8.33" length="8.71" shape="1153.82,2212.13 1153.00,2214.72 1151.99,2216.79 1150.79,2218.34 1149.39,2219.37"/>
+ </edge>
+ <edge id=":1545673333_5" function="internal">
+ <lane id=":1545673333_5_0" index="0" speed="8.33" length="4.94" shape="1153.82,2212.13 1152.94,2213.38 1152.08,2213.78 1151.25,2213.33 1150.44,2212.04"/>
+ </edge>
+ <edge id=":1545673333_6" function="internal">
+ <lane id=":1545673333_6_0" index="0" speed="8.33" length="5.21" shape="1147.88,2216.43 1148.66,2215.84 1149.35,2214.91 1149.94,2213.64 1150.44,2212.04"/>
+ </edge>
+ <edge id=":1545673333_7" function="internal">
+ <lane id=":1545673333_7_0" index="0" speed="8.33" length="8.48" shape="1147.88,2216.43 1156.30,2215.42"/>
+ </edge>
+ <edge id=":1545673333_8" function="internal">
+ <lane id=":1545673333_8_0" index="0" speed="8.33" length="4.82" shape="1147.88,2216.43 1149.35,2216.60 1150.10,2217.14 1150.11,2218.07 1149.39,2219.37"/>
+ </edge>
+ <edge id=":1545673345_0" function="internal">
+ <lane id=":1545673345_0_0" index="0" speed="8.33" length="4.28" shape="1142.53,2226.41 1141.79,2225.26 1140.99,2224.58 1140.12,2224.38 1139.19,2224.64"/>
+ </edge>
+ <edge id=":1545673345_1" function="internal">
+ <lane id=":1545673345_1_0" index="0" speed="8.33" length="9.53" shape="1142.53,2226.41 1138.20,2217.92"/>
+ </edge>
+ <edge id=":1545673345_2" function="internal">
+ <lane id=":1545673345_2_0" index="0" speed="8.33" length="10.35" shape="1142.53,2226.41 1141.61,2223.73 1141.77,2221.39 1143.00,2219.40 1145.31,2217.76"/>
+ </edge>
+ <edge id=":1545673345_3" function="internal">
+ <lane id=":1545673345_3_0" index="0" speed="8.33" length="4.82" shape="1142.53,2226.41 1142.70,2224.93 1143.25,2224.19 1144.17,2224.18 1145.47,2224.91"/>
+ </edge>
+ <edge id=":1545673345_4" function="internal">
+ <lane id=":1545673345_4_0" index="0" speed="8.33" length="5.05" shape="1146.82,2220.69 1145.70,2221.49 1145.10,2222.46 1145.02,2223.60 1145.47,2224.91"/>
+ </edge>
+ <edge id=":1545673345_5" function="internal">
+ <lane id=":1545673345_5_0" index="0" speed="8.33" length="8.60" shape="1146.82,2220.69 1139.19,2224.64"/>
+ </edge>
+ <edge id=":1545673345_6" function="internal">
+ <lane id=":1545673345_6_0" index="0" speed="8.33" length="10.35" shape="1146.82,2220.69 1144.14,2221.62 1141.81,2221.47 1139.83,2220.24 1138.20,2217.92"/>
+ </edge>
+ <edge id=":1545673345_7" function="internal">
+ <lane id=":1545673345_7_0" index="0" speed="8.33" length="4.82" shape="1146.82,2220.69 1145.35,2220.53 1144.60,2219.98 1144.59,2219.06 1145.31,2217.76"/>
+ </edge>
+ <edge id=":1545673345_8" function="internal">
+ <lane id=":1545673345_8_0" index="0" speed="8.33" length="5.01" shape="1141.14,2216.42 1141.93,2217.54 1142.89,2218.14 1144.01,2218.21 1145.31,2217.76"/>
+ </edge>
+ <edge id=":1545673345_9" function="internal">
+ <lane id=":1545673345_9_0" index="0" speed="8.33" length="9.53" shape="1141.14,2216.42 1145.47,2224.91"/>
+ </edge>
+ <edge id=":1545673345_10" function="internal">
+ <lane id=":1545673345_10_0" index="0" speed="8.33" length="9.61" shape="1141.14,2216.42 1142.11,2219.07 1142.10,2221.33 1141.13,2223.18 1139.19,2224.64"/>
+ </edge>
+ <edge id=":1545673345_11" function="internal">
+ <lane id=":1545673345_11_0" index="0" speed="8.33" length="4.82" shape="1141.14,2216.42 1140.96,2217.90 1140.42,2218.64 1139.49,2218.65 1138.20,2217.92"/>
+ </edge>
+ <edge id=":1545673345_12" function="internal">
+ <lane id=":1545673345_12_0" index="0" speed="8.33" length="4.32" shape="1137.67,2221.71 1138.43,2221.09 1138.77,2220.26 1138.70,2219.20 1138.20,2217.92"/>
+ </edge>
+ <edge id=":1545673345_13" function="internal">
+ <lane id=":1545673345_13_0" index="0" speed="8.33" length="8.60" shape="1137.67,2221.71 1145.31,2217.76"/>
+ </edge>
+ <edge id=":1545673345_14" function="internal">
+ <lane id=":1545673345_14_0" index="0" speed="8.33" length="9.61" shape="1137.67,2221.71 1139.99,2220.96 1142.06,2221.25 1143.89,2222.56 1145.47,2224.91"/>
+ </edge>
+ <edge id=":1545673345_15" function="internal">
+ <lane id=":1545673345_15_0" index="0" speed="8.33" length="4.82" shape="1137.67,2221.71 1139.15,2221.87 1139.89,2222.42 1139.91,2223.34 1139.19,2224.64"/>
+ </edge>
+ <edge id=":1545673349_0" function="internal">
+ <lane id=":1545673349_0_0" index="0" speed="22.22" length="9.50" shape="1134.81,2230.32 1130.55,2221.83"/>
+ </edge>
+ <edge id=":1545673349_1" function="internal">
+ <lane id=":1545673349_1_0" index="0" speed="15.28" length="7.36" shape="1134.81,2230.32 1133.87,2227.69 1133.90,2225.44 1134.89,2223.59 1135.06,2223.46"/>
+ </edge>
+ <edge id=":1545673349_9" function="internal">
+ <lane id=":1545673349_9_0" index="0" speed="15.28" length="2.22" shape="1135.06,2223.46 1136.84,2222.14"/>
+ </edge>
+ <edge id=":1545673349_2" function="internal">
+ <lane id=":1545673349_2_0" index="0" speed="22.22" length="2.41" shape="1134.81,2230.32 1135.00,2228.85 1135.55,2228.11"/>
+ </edge>
+ <edge id=":1545673349_10" function="internal">
+ <lane id=":1545673349_10_0" index="0" speed="22.22" length="2.41" shape="1135.55,2228.11 1136.47,2228.11 1137.76,2228.84"/>
+ </edge>
+ <edge id=":1545673349_3" function="internal">
+ <lane id=":1545673349_3_0" index="0" speed="15.28" length="4.31" shape="1138.36,2225.07 1137.58,2225.69 1137.22,2226.52 1137.28,2227.58 1137.76,2228.84"/>
+ </edge>
+ <edge id=":1545673349_4" function="internal">
+ <lane id=":1545673349_4_0" index="0" speed="15.28" length="9.64" shape="1138.36,2225.07 1136.03,2225.82 1133.95,2225.53 1132.12,2224.20 1130.55,2221.83"/>
+ </edge>
+ <edge id=":1545673349_5" function="internal">
+ <lane id=":1545673349_5_0" index="0" speed="8.33" length="4.82" shape="1138.36,2225.07 1136.88,2224.90 1136.13,2224.36 1136.12,2223.44 1136.84,2222.14"/>
+ </edge>
+ <edge id=":1545673349_6" function="internal">
+ <lane id=":1545673349_6_0" index="0" speed="15.28" length="4.29" shape="1133.50,2220.35 1134.23,2221.51 1135.03,2222.19 1135.90,2222.40 1136.84,2222.14"/>
+ </edge>
+ <edge id=":1545673349_7" function="internal">
+ <lane id=":1545673349_7_0" index="0" speed="22.22" length="9.50" shape="1133.50,2220.35 1137.76,2228.84"/>
+ </edge>
+ <edge id=":1545673349_8" function="internal">
+ <lane id=":1545673349_8_0" index="0" speed="22.22" length="2.41" shape="1133.50,2220.35 1133.32,2221.83 1132.77,2222.57"/>
+ </edge>
+ <edge id=":1545673349_11" function="internal">
+ <lane id=":1545673349_11_0" index="0" speed="22.22" length="2.41" shape="1132.77,2222.57 1131.84,2222.57 1130.55,2221.83"/>
+ </edge>
+ <edge id=":1624003168_0" function="internal">
+ <lane id=":1624003168_0_0" index="0" speed="22.22" length="5.04" shape="921.60,803.44 922.41,804.57 923.38,805.15 924.51,805.20 925.81,804.70"/>
+ </edge>
+ <edge id=":1624003168_1" function="internal">
+ <lane id=":1624003168_1_0" index="0" speed="22.22" length="6.30" shape="921.60,803.44 924.52,809.03"/>
+ </edge>
+ <edge id=":1624003168_2" function="internal">
+ <lane id=":1624003168_2_0" index="0" speed="22.22" length="6.30" shape="920.31,807.78 925.81,804.70"/>
+ </edge>
+ <edge id=":1624003168_3" function="internal">
+ <lane id=":1624003168_3_0" index="0" speed="22.22" length="5.04" shape="920.31,807.78 921.60,807.28 922.74,807.32 923.71,807.90 924.52,809.03"/>
+ </edge>
+ <edge id=":1624003172_0" function="internal">
+ <lane id=":1624003172_0_0" index="0" speed="22.22" length="5.03" shape="779.46,883.10 780.27,884.23 781.24,884.81 782.38,884.85 783.67,884.35"/>
+ </edge>
+ <edge id=":1624003172_1" function="internal">
+ <lane id=":1624003172_1_0" index="0" speed="22.22" length="6.20" shape="779.46,883.10 782.34,888.60"/>
+ </edge>
+ <edge id=":1624003193_0" function="internal">
+ <lane id=":1624003193_0_0" index="0" speed="22.22" length="6.30" shape="857.15,846.78 854.24,841.19"/>
+ </edge>
+ <edge id=":1624003193_1" function="internal">
+ <lane id=":1624003193_1_0" index="0" speed="22.22" length="5.12" shape="857.15,846.78 856.68,845.47 856.74,844.30 857.33,843.30 858.44,842.45"/>
+ </edge>
+ <edge id=":1624003193_2" function="internal">
+ <lane id=":1624003193_2_0" index="0" speed="22.22" length="5.12" shape="852.94,845.53 854.06,844.68 854.64,843.68 854.70,842.51 854.24,841.19"/>
+ </edge>
+ <edge id=":1624003193_3" function="internal">
+ <lane id=":1624003193_3_0" index="0" speed="22.22" length="6.30" shape="852.94,845.53 858.44,842.45"/>
+ </edge>
+ <edge id=":1624003199_0" function="internal">
+ <lane id=":1624003199_0_0" index="0" speed="22.22" length="6.20" shape="993.28,770.48 990.41,764.99"/>
+ </edge>
+ <edge id=":1624003199_1" function="internal">
+ <lane id=":1624003199_1_0" index="0" speed="22.22" length="5.04" shape="989.08,769.23 990.19,768.39 990.78,767.40 990.86,766.27 990.41,764.99"/>
+ </edge>
+ <edge id=":1624020482_0" function="internal">
+ <lane id=":1624020482_0_0" index="0" speed="22.22" length="6.20" shape="939.55,1005.21 936.69,999.71"/>
+ </edge>
+ <edge id=":1624020482_1" function="internal">
+ <lane id=":1624020482_1_0" index="0" speed="22.22" length="5.06" shape="940.90,1000.92 939.61,1001.45 938.48,1001.42 937.50,1000.84 936.69,999.71"/>
+ </edge>
+ <edge id=":1624020484_0" function="internal">
+ <lane id=":1624020484_0_0" index="0" speed="22.22" length="6.17" shape="1003.63,960.58 1006.54,966.01"/>
+ </edge>
+ <edge id=":1624020484_1" function="internal">
+ <lane id=":1624020484_1_0" index="0" speed="22.22" length="5.04" shape="1003.63,960.58 1004.07,961.85 1004.00,962.98 1003.41,963.98 1002.31,964.85"/>
+ </edge>
+ <edge id=":1624060630_0" function="internal">
+ <lane id=":1624060630_0_0" index="0" speed="13.89" length="11.60" shape="1420.99,878.17 1419.14,875.72 1416.96,874.52 1414.33,873.82 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_1" function="internal">
+ <lane id=":1624060630_1_0" index="0" speed="11.11" length="11.60" shape="1420.99,878.17 1419.14,875.72 1416.96,874.52 1414.33,873.82 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_2" function="internal">
+ <lane id=":1624060630_2_0" index="0" speed="11.11" length="12.86" shape="1420.99,878.17 1419.42,875.14 1418.03,872.46 1416.64,869.79 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_3" function="internal">
+ <lane id=":1624060630_3_0" index="0" speed="13.89" length="12.86" shape="1420.99,878.17 1419.42,875.14 1418.03,872.46 1416.64,869.79 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_4" function="internal">
+ <lane id=":1624060630_4_0" index="0" speed="13.89" length="2.41" shape="1420.99,878.17 1421.15,876.69 1421.69,875.94"/>
+ </edge>
+ <edge id=":1624060630_25" function="internal">
+ <lane id=":1624060630_25_0" index="0" speed="13.89" length="2.41" shape="1421.69,875.94 1422.62,875.93 1423.92,876.65"/>
+ </edge>
+ <edge id=":1624060630_5" function="internal">
+ <lane id=":1624060630_5_0" index="0" speed="13.89" length="12.86" shape="1417.99,865.24 1419.56,868.27 1420.95,870.94 1422.34,873.62 1423.92,876.65"/>
+ </edge>
+ <edge id=":1624060630_6" function="internal">
+ <lane id=":1624060630_6_0" index="0" speed="13.89" length="9.70" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1418.73,873.81"/>
+ </edge>
+ <edge id=":1624060630_26" function="internal">
+ <lane id=":1624060630_26_0" index="0" speed="13.89" length="7.84" shape="1418.73,873.81 1416.66,874.35 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_7" function="internal">
+ <lane id=":1624060630_7_0" index="0" speed="11.11" length="9.70" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1418.73,873.81"/>
+ </edge>
+ <edge id=":1624060630_27" function="internal">
+ <lane id=":1624060630_27_0" index="0" speed="11.11" length="7.84" shape="1418.73,873.81 1416.66,874.35 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_8" function="internal">
+ <lane id=":1624060630_8_0" index="0" speed="11.11" length="3.30" shape="1417.99,865.24 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_9" function="internal">
+ <lane id=":1624060630_9_0" index="0" speed="13.89" length="2.41" shape="1417.99,865.24 1417.83,866.71 1417.29,867.46"/>
+ </edge>
+ <edge id=":1624060630_28" function="internal">
+ <lane id=":1624060630_28_0" index="0" speed="13.89" length="2.41" shape="1417.29,867.46 1416.36,867.47 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_10" function="internal">
+ <lane id=":1624060630_10_0" index="0" speed="11.11" length="12.86" shape="1417.99,865.24 1419.56,868.27 1420.95,870.94 1422.34,873.62 1423.92,876.65"/>
+ </edge>
+ <edge id=":1624060630_11" function="internal">
+ <lane id=":1624060630_11_0" index="0" speed="11.11" length="17.54" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1416.66,874.35 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_12" function="internal">
+ <lane id=":1624060630_12_0" index="0" speed="8.33" length="17.54" shape="1417.99,865.24 1420.07,870.54 1419.63,873.58 1416.66,874.35 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_13" function="internal">
+ <lane id=":1624060630_13_0" index="0" speed="11.11" length="3.30" shape="1417.99,865.24 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_14" function="internal">
+ <lane id=":1624060630_14_0" index="0" speed="8.33" length="4.82" shape="1417.99,865.24 1417.83,866.71 1417.29,867.46 1416.36,867.47 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_15" function="internal">
+ <lane id=":1624060630_15_0" index="0" speed="8.33" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_16" function="internal">
+ <lane id=":1624060630_16_0" index="0" speed="11.11" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_17" function="internal">
+ <lane id=":1624060630_17_0" index="0" speed="11.11" length="13.80" shape="1412.35,869.77 1415.80,870.99 1419.02,872.23 1421.79,873.96 1423.92,876.65"/>
+ </edge>
+ <edge id=":1624060630_18" function="internal">
+ <lane id=":1624060630_18_0" index="0" speed="8.33" length="3.30" shape="1412.35,869.77 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_19" function="internal">
+ <lane id=":1624060630_19_0" index="0" speed="11.11" length="4.82" shape="1412.35,869.77 1413.21,870.99 1413.29,871.91 1412.61,872.53 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_20" function="internal">
+ <lane id=":1624060630_20_0" index="0" speed="11.11" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_21" function="internal">
+ <lane id=":1624060630_21_0" index="0" speed="13.89" length="6.95" shape="1412.35,869.77 1414.53,870.37 1415.71,870.06 1415.89,868.86 1415.06,866.76"/>
+ </edge>
+ <edge id=":1624060630_22" function="internal">
+ <lane id=":1624060630_22_0" index="0" speed="13.89" length="13.80" shape="1412.35,869.77 1415.80,870.99 1419.02,872.23 1421.79,873.96 1423.92,876.65"/>
+ </edge>
+ <edge id=":1624060630_23" function="internal">
+ <lane id=":1624060630_23_0" index="0" speed="13.89" length="3.30" shape="1412.35,869.77 1411.16,872.85"/>
+ </edge>
+ <edge id=":1624060630_24" function="internal">
+ <lane id=":1624060630_24_0" index="0" speed="11.11" length="4.82" shape="1412.35,869.77 1413.21,870.99 1413.29,871.91 1412.61,872.53 1411.16,872.85"/>
+ </edge>
+ <edge id=":1625774769_0" function="internal">
+ <lane id=":1625774769_0_0" index="0" speed="8.33" length="4.82" shape="1640.25,2491.48 1640.09,2492.95 1639.55,2493.70 1638.63,2493.72 1637.32,2493.00"/>
+ </edge>
+ <edge id=":1627657715_0" function="internal">
+ <lane id=":1627657715_0_0" index="0" speed="22.22" length="9.54" shape="707.58,1103.29 698.69,1106.73"/>
+ </edge>
+ <edge id=":1627657715_1" function="internal">
+ <lane id=":1627657715_1_0" index="0" speed="13.89" length="6.98" shape="707.58,1103.29 704.97,1103.86 702.68,1103.43 701.08,1102.27"/>
+ </edge>
+ <edge id=":1627657715_9" function="internal">
+ <lane id=":1627657715_9_0" index="0" speed="13.89" length="3.40" shape="701.08,1102.27 700.71,1102.00 699.06,1099.56"/>
+ </edge>
+ <edge id=":1627657715_2" function="internal">
+ <lane id=":1627657715_2_0" index="0" speed="22.22" length="2.41" shape="707.58,1103.29 706.13,1102.97 705.44,1102.35"/>
+ </edge>
+ <edge id=":1627657715_10" function="internal">
+ <lane id=":1627657715_10_0" index="0" speed="22.22" length="2.41" shape="705.44,1102.35 705.53,1101.43 706.39,1100.21"/>
+ </edge>
+ <edge id=":1627657715_3" function="internal">
+ <lane id=":1627657715_3_0" index="0" speed="13.89" length="5.44" shape="702.00,1098.07 702.89,1099.41 703.92,1100.21 705.08,1100.48 706.39,1100.21"/>
+ </edge>
+ <edge id=":1627657715_4" function="internal">
+ <lane id=":1627657715_4_0" index="0" speed="13.89" length="10.85" shape="702.00,1098.07 702.97,1100.92 702.74,1103.32 701.31,1105.26 698.69,1106.73"/>
+ </edge>
+ <edge id=":1627657715_5" function="internal">
+ <lane id=":1627657715_5_0" index="0" speed="5.56" length="4.82" shape="702.00,1098.07 701.83,1099.54 701.28,1100.28 700.36,1100.29 699.06,1099.56"/>
+ </edge>
+ <edge id=":1627657715_6" function="internal">
+ <lane id=":1627657715_6_0" index="0" speed="13.89" length="5.12" shape="697.49,1103.66 698.74,1102.96 699.41,1102.04 699.52,1100.91 699.06,1099.56"/>
+ </edge>
+ <edge id=":1627657715_7" function="internal">
+ <lane id=":1627657715_7_0" index="0" speed="22.22" length="9.53" shape="697.49,1103.66 706.39,1100.21"/>
+ </edge>
+ <edge id=":1627657715_8" function="internal">
+ <lane id=":1627657715_8_0" index="0" speed="22.22" length="2.41" shape="697.49,1103.66 698.95,1103.98 699.63,1104.60"/>
+ </edge>
+ <edge id=":1627657715_11" function="internal">
+ <lane id=":1627657715_11_0" index="0" speed="22.22" length="2.41" shape="699.63,1104.60 699.54,1105.52 698.69,1106.73"/>
+ </edge>
+ <edge id=":1627657783_0" function="internal">
+ <lane id=":1627657783_0_0" index="0" speed="13.89" length="2.02" shape="674.11,1050.47 673.81,1050.03 673.43,1049.74 672.97,1049.60 672.44,1049.62"/>
+ </edge>
+ <edge id=":1627657783_1" function="internal">
+ <lane id=":1627657783_1_0" index="0" speed="5.56" length="4.82" shape="674.11,1050.47 674.28,1049.00 674.83,1048.26 675.75,1048.25 677.05,1048.98"/>
+ </edge>
+ <edge id=":1627657783_2" function="internal">
+ <lane id=":1627657783_2_0" index="0" speed="13.89" length="6.20" shape="671.93,1046.36 673.56,1046.32 674.96,1046.74 676.13,1047.63 677.05,1048.98"/>
+ </edge>
+ <edge id=":1627657783_3" function="internal">
+ <lane id=":1627657783_3_0" index="0" speed="22.22" length="4.82" shape="671.93,1046.36 673.28,1046.98 673.81,1047.73 673.53,1048.61 672.44,1049.62"/>
+ </edge>
+ <edge id=":1627657822_0" function="internal">
+ <lane id=":1627657822_0_0" index="0" speed="13.89" length="6.59" shape="639.07,1059.44 637.94,1057.59 636.76,1056.33 635.53,1055.66 634.24,1055.57"/>
+ </edge>
+ <edge id=":1627657822_1" function="internal">
+ <lane id=":1627657822_1_0" index="0" speed="13.89" length="12.14" shape="639.07,1059.44 637.92,1056.14 638.27,1053.59 640.12,1051.81 643.47,1050.79"/>
+ </edge>
+ <edge id=":1627657822_2" function="internal">
+ <lane id=":1627657822_2_0" index="0" speed="5.56" length="4.82" shape="639.07,1059.44 639.24,1057.96 639.78,1057.22 640.70,1057.21 642.00,1057.93"/>
+ </edge>
+ <edge id=":1627657822_3" function="internal">
+ <lane id=":1627657822_3_0" index="0" speed="13.89" length="5.44" shape="643.98,1054.05 642.48,1054.51 641.65,1055.31 641.49,1056.45 642.00,1057.93"/>
+ </edge>
+ <edge id=":1627657822_4" function="internal">
+ <lane id=":1627657822_4_0" index="0" speed="22.22" length="9.85" shape="643.98,1054.05 634.24,1055.57"/>
+ </edge>
+ <edge id=":1627657822_5" function="internal">
+ <lane id=":1627657822_5_0" index="0" speed="22.22" length="2.41" shape="643.98,1054.05 642.63,1053.43 642.09,1052.68"/>
+ </edge>
+ <edge id=":1627657822_9" function="internal">
+ <lane id=":1627657822_9_0" index="0" speed="22.22" length="2.41" shape="642.09,1052.68 642.37,1051.80 643.47,1050.79"/>
+ </edge>
+ <edge id=":1627657822_6" function="internal">
+ <lane id=":1627657822_6_0" index="0" speed="22.22" length="9.85" shape="633.73,1052.31 643.47,1050.79"/>
+ </edge>
+ <edge id=":1627657822_7" function="internal">
+ <lane id=":1627657822_7_0" index="0" speed="13.89" length="6.78" shape="633.73,1052.31 636.12,1052.37 638.29,1053.33 639.76,1054.71"/>
+ </edge>
+ <edge id=":1627657822_10" function="internal">
+ <lane id=":1627657822_10_0" index="0" speed="13.89" length="3.94" shape="639.76,1054.71 640.25,1055.18 642.00,1057.93"/>
+ </edge>
+ <edge id=":1627657822_8" function="internal">
+ <lane id=":1627657822_8_0" index="0" speed="22.22" length="2.41" shape="633.73,1052.31 635.08,1052.93 635.62,1053.69"/>
+ </edge>
+ <edge id=":1627657822_11" function="internal">
+ <lane id=":1627657822_11_0" index="0" speed="22.22" length="2.41" shape="635.62,1053.69 635.34,1054.56 634.24,1055.57"/>
+ </edge>
+ <edge id=":1627657825_0" function="internal">
+ <lane id=":1627657825_0_0" index="0" speed="22.22" length="9.50" shape="675.95,1117.07 667.50,1121.42"/>
+ </edge>
+ <edge id=":1627657825_1" function="internal">
+ <lane id=":1627657825_1_0" index="0" speed="13.89" length="7.14" shape="675.95,1117.07 673.27,1117.99 670.95,1117.84 669.26,1116.80"/>
+ </edge>
+ <edge id=":1627657825_9" function="internal">
+ <lane id=":1627657825_9_0" index="0" speed="13.89" length="3.18" shape="669.26,1116.80 668.96,1116.61 667.32,1114.31"/>
+ </edge>
+ <edge id=":1627657825_2" function="internal">
+ <lane id=":1627657825_2_0" index="0" speed="22.22" length="2.41" shape="675.95,1117.07 674.47,1116.90 673.72,1116.36"/>
+ </edge>
+ <edge id=":1627657825_10" function="internal">
+ <lane id=":1627657825_10_0" index="0" speed="22.22" length="2.41" shape="673.72,1116.36 673.71,1115.43 674.43,1114.13"/>
+ </edge>
+ <edge id=":1627657825_3" function="internal">
+ <lane id=":1627657825_3_0" index="0" speed="13.89" length="5.00" shape="670.26,1112.80 671.05,1113.91 672.01,1114.51 673.14,1114.58 674.43,1114.13"/>
+ </edge>
+ <edge id=":1627657825_4" function="internal">
+ <lane id=":1627657825_4_0" index="0" speed="13.89" length="10.32" shape="670.26,1112.80 671.19,1115.47 671.03,1117.80 669.81,1119.78 667.50,1121.42"/>
+ </edge>
+ <edge id=":1627657825_5" function="internal">
+ <lane id=":1627657825_5_0" index="0" speed="5.56" length="4.82" shape="670.26,1112.80 670.09,1114.27 669.55,1115.02 668.62,1115.03 667.32,1114.31"/>
+ </edge>
+ <edge id=":1627657825_6" function="internal">
+ <lane id=":1627657825_6_0" index="0" speed="13.89" length="5.00" shape="665.99,1118.49 667.11,1117.69 667.70,1116.73 667.77,1115.60 667.32,1114.31"/>
+ </edge>
+ <edge id=":1627657825_7" function="internal">
+ <lane id=":1627657825_7_0" index="0" speed="22.22" length="9.50" shape="665.99,1118.49 674.43,1114.13"/>
+ </edge>
+ <edge id=":1627657825_8" function="internal">
+ <lane id=":1627657825_8_0" index="0" speed="22.22" length="2.41" shape="665.99,1118.49 667.47,1118.65 668.21,1119.20"/>
+ </edge>
+ <edge id=":1627657825_11" function="internal">
+ <lane id=":1627657825_11_0" index="0" speed="22.22" length="2.41" shape="668.21,1119.20 668.22,1120.12 667.50,1121.42"/>
+ </edge>
+ <edge id=":1634988377_0" function="internal">
+ <lane id=":1634988377_0_0" index="0" speed="13.89" length="5.13" shape="752.73,1448.80 751.31,1448.64 750.23,1449.00 749.48,1449.86 749.08,1451.23"/>
+ </edge>
+ <edge id=":1634988377_1" function="internal">
+ <lane id=":1634988377_1_0" index="0" speed="13.89" length="10.38" shape="752.73,1448.80 749.99,1447.72 748.15,1446.11 747.22,1443.97 747.20,1441.31"/>
+ </edge>
+ <edge id=":1634988377_2" function="internal">
+ <lane id=":1634988377_2_0" index="0" speed="5.56" length="4.82" shape="752.73,1448.80 751.74,1447.69 751.54,1446.79 752.15,1446.09 753.55,1445.60"/>
+ </edge>
+ <edge id=":1634988377_3" function="internal">
+ <lane id=":1634988377_3_0" index="0" speed="13.89" length="5.46" shape="750.46,1441.79 750.50,1443.12 751.02,1444.20 752.04,1445.03 753.55,1445.60"/>
+ </edge>
+ <edge id=":1634988377_4" function="internal">
+ <lane id=":1634988377_4_0" index="0" speed="22.22" length="9.54" shape="750.46,1441.79 749.08,1451.23"/>
+ </edge>
+ <edge id=":1634988377_5" function="internal">
+ <lane id=":1634988377_5_0" index="0" speed="22.22" length="2.41" shape="750.46,1441.79 749.47,1442.90 748.59,1443.18"/>
+ </edge>
+ <edge id=":1634988377_9" function="internal">
+ <lane id=":1634988377_9_0" index="0" speed="22.22" length="2.41" shape="748.59,1443.18 747.84,1442.65 747.20,1441.31"/>
+ </edge>
+ <edge id=":1634988377_6" function="internal">
+ <lane id=":1634988377_6_0" index="0" speed="22.22" length="9.54" shape="745.81,1450.75 747.20,1441.31"/>
+ </edge>
+ <edge id=":1634988377_7" function="internal">
+ <lane id=":1634988377_7_0" index="0" speed="13.89" length="7.20" shape="745.81,1450.75 746.67,1447.85 748.25,1446.02 749.92,1445.48"/>
+ </edge>
+ <edge id=":1634988377_10" function="internal">
+ <lane id=":1634988377_10_0" index="0" speed="13.89" length="3.68" shape="749.92,1445.48 750.54,1445.28 753.55,1445.60"/>
+ </edge>
+ <edge id=":1634988377_8" function="internal">
+ <lane id=":1634988377_8_0" index="0" speed="22.22" length="2.41" shape="745.81,1450.75 746.81,1449.64 747.68,1449.36"/>
+ </edge>
+ <edge id=":1634988377_11" function="internal">
+ <lane id=":1634988377_11_0" index="0" speed="22.22" length="2.41" shape="747.68,1449.36 748.44,1449.88 749.08,1451.23"/>
+ </edge>
+ <edge id=":1639892546_0" function="internal">
+ <lane id=":1639892546_0_0" index="0" speed="8.33" length="5.83" shape="1138.70,1025.47 1133.58,1028.26"/>
+ </edge>
+ <edge id=":1639892546_1" function="internal">
+ <lane id=":1639892546_1_0" index="0" speed="8.33" length="7.84" shape="1138.70,1025.47 1137.38,1025.71 1136.02,1025.04 1134.63,1023.45 1133.20,1020.96"/>
+ </edge>
+ <edge id=":1639892546_2" function="internal">
+ <lane id=":1639892546_2_0" index="0" speed="8.33" length="4.82" shape="1138.70,1025.47 1137.22,1025.32 1136.47,1024.79 1136.44,1023.87 1137.15,1022.56"/>
+ </edge>
+ <edge id=":1639892546_3" function="internal">
+ <lane id=":1639892546_3_0" index="0" speed="8.33" length="3.27" shape="1136.16,1019.51 1136.75,1020.76 1137.10,1021.69 1137.24,1022.29 1137.15,1022.56"/>
+ </edge>
+ <edge id=":1639892546_4" function="internal">
+ <lane id=":1639892546_4_0" index="0" speed="8.33" length="10.30" shape="1136.16,1019.51 1137.06,1022.22 1136.93,1024.59 1135.77,1026.60 1133.58,1028.26"/>
+ </edge>
+ <edge id=":1639892546_5" function="internal">
+ <lane id=":1639892546_5_0" index="0" speed="8.33" length="4.82" shape="1136.16,1019.51 1135.97,1020.98 1135.41,1021.72 1134.49,1021.71 1133.20,1020.96"/>
+ </edge>
+ <edge id=":1639892546_6" function="internal">
+ <lane id=":1639892546_6_0" index="0" speed="8.33" length="5.16" shape="1131.99,1025.37 1133.06,1024.55 1133.62,1023.54 1133.67,1022.34 1133.20,1020.96"/>
+ </edge>
+ <edge id=":1639892546_7" function="internal">
+ <lane id=":1639892546_7_0" index="0" speed="8.33" length="5.87" shape="1131.99,1025.37 1137.15,1022.56"/>
+ </edge>
+ <edge id=":1639892546_8" function="internal">
+ <lane id=":1639892546_8_0" index="0" speed="8.33" length="4.82" shape="1131.99,1025.37 1133.48,1025.50 1134.24,1026.02 1134.27,1026.94 1133.58,1028.26"/>
+ </edge>
+ <edge id=":1669480279_0" function="internal">
+ <lane id=":1669480279_0_0" index="0" speed="13.89" length="3.28" shape="1458.55,1560.80 1457.96,1561.11 1457.72,1561.67 1457.83,1562.50 1458.30,1563.57"/>
+ </edge>
+ <edge id=":1669480279_1" function="internal">
+ <lane id=":1669480279_1_0" index="0" speed="5.56" length="4.17" shape="1458.55,1560.80 1454.48,1561.74"/>
+ </edge>
+ <edge id=":1669480279_2" function="internal">
+ <lane id=":1669480279_2_0" index="0" speed="5.56" length="4.83" shape="1458.55,1560.80 1457.19,1560.19 1456.64,1559.45 1456.91,1558.56 1458.00,1557.54"/>
+ </edge>
+ <edge id=":1669480279_3" function="internal">
+ <lane id=":1669480279_3_0" index="0" speed="13.89" length="4.62" shape="1454.16,1555.72 1454.87,1556.74 1455.75,1557.39 1456.80,1557.65 1458.00,1557.54"/>
+ </edge>
+ <edge id=":1669480279_4" function="internal">
+ <lane id=":1669480279_4_0" index="0" speed="22.22" length="8.88" shape="1454.16,1555.72 1458.30,1563.57"/>
+ </edge>
+ <edge id=":1669480279_5" function="internal">
+ <lane id=":1669480279_5_0" index="0" speed="13.89" length="6.84" shape="1454.16,1555.72 1455.25,1558.14 1455.67,1559.95 1455.41,1561.15 1454.48,1561.74"/>
+ </edge>
+ <edge id=":1669480279_6" function="internal">
+ <lane id=":1669480279_6_0" index="0" speed="5.56" length="4.11" shape="1454.00,1558.47 1458.00,1557.54"/>
+ </edge>
+ <edge id=":1669480279_7" function="internal">
+ <lane id=":1669480279_7_0" index="0" speed="13.89" length="6.90" shape="1454.00,1558.47 1454.80,1558.66 1455.79,1559.58 1456.95,1561.22 1458.30,1563.57"/>
+ </edge>
+ <edge id=":1669480279_8" function="internal">
+ <lane id=":1669480279_8_0" index="0" speed="5.56" length="4.83" shape="1454.00,1558.47 1455.35,1559.10 1455.88,1559.86 1455.59,1560.74 1454.48,1561.74"/>
+ </edge>
+ <edge id=":1669480280_0" function="internal">
+ <lane id=":1669480280_0_0" index="0" speed="16.67" length="3.91" shape="1469.91,1580.45 1469.37,1579.20 1469.19,1578.19 1469.37,1577.44 1469.92,1576.93"/>
+ </edge>
+ <edge id=":1669480280_1" function="internal">
+ <lane id=":1669480280_1_0" index="0" speed="5.56" length="9.51" shape="1469.91,1580.45 1465.49,1572.03"/>
+ </edge>
+ <edge id=":1669480280_2" function="internal">
+ <lane id=":1669480280_2_0" index="0" speed="16.67" length="10.33" shape="1469.91,1580.45 1468.96,1577.78 1469.09,1575.45 1470.31,1573.46 1472.61,1571.80"/>
+ </edge>
+ <edge id=":1669480280_3" function="internal">
+ <lane id=":1669480280_3_0" index="0" speed="5.56" length="4.82" shape="1469.91,1580.45 1470.06,1578.97 1470.60,1578.22 1471.53,1578.20 1472.83,1578.91"/>
+ </edge>
+ <edge id=":1669480280_4" function="internal">
+ <lane id=":1669480280_4_0" index="0" speed="16.67" length="5.00" shape="1474.14,1574.73 1473.03,1575.53 1472.44,1576.49 1472.37,1577.62 1472.83,1578.91"/>
+ </edge>
+ <edge id=":1669480280_5" function="internal">
+ <lane id=":1669480280_5_0" index="0" speed="27.78" length="4.76" shape="1474.14,1574.73 1469.92,1576.93"/>
+ </edge>
+ <edge id=":1669480280_6" function="internal">
+ <lane id=":1669480280_6_0" index="0" speed="16.67" length="7.29" shape="1474.14,1574.73 1471.47,1575.67 1469.14,1575.54 1467.32,1574.43"/>
+ </edge>
+ <edge id=":1669480280_16" function="internal">
+ <lane id=":1669480280_16_0" index="0" speed="16.67" length="3.04" shape="1467.32,1574.43 1467.14,1574.32 1465.49,1572.03"/>
+ </edge>
+ <edge id=":1669480280_7" function="internal">
+ <lane id=":1669480280_7_0" index="0" speed="27.78" length="2.41" shape="1474.14,1574.73 1472.66,1574.57 1471.91,1574.03"/>
+ </edge>
+ <edge id=":1669480280_17" function="internal">
+ <lane id=":1669480280_17_0" index="0" speed="27.78" length="2.41" shape="1471.91,1574.03 1471.90,1573.11 1472.61,1571.80"/>
+ </edge>
+ <edge id=":1669480280_8" function="internal">
+ <lane id=":1669480280_8_0" index="0" speed="16.67" length="5.02" shape="1468.41,1570.49 1469.21,1571.61 1470.18,1572.20 1471.31,1572.26 1472.61,1571.80"/>
+ </edge>
+ <edge id=":1669480280_9" function="internal">
+ <lane id=":1669480280_9_0" index="0" speed="5.56" length="9.51" shape="1468.41,1570.49 1472.83,1578.91"/>
+ </edge>
+ <edge id=":1669480280_10" function="internal">
+ <lane id=":1669480280_10_0" index="0" speed="16.67" length="6.96" shape="1468.41,1570.49 1469.62,1573.02 1470.28,1574.94 1470.38,1576.24 1469.92,1576.93"/>
+ </edge>
+ <edge id=":1669480280_11" function="internal">
+ <lane id=":1669480280_11_0" index="0" speed="5.56" length="4.82" shape="1468.41,1570.49 1468.25,1571.97 1467.71,1572.72 1466.79,1572.74 1465.49,1572.03"/>
+ </edge>
+ <edge id=":1669480280_12" function="internal">
+ <lane id=":1669480280_12_0" index="0" speed="16.67" length="3.32" shape="1467.55,1574.45 1467.19,1574.42 1466.72,1574.00 1466.16,1573.21 1465.49,1572.03"/>
+ </edge>
+ <edge id=":1669480280_13" function="internal">
+ <lane id=":1669480280_13_0" index="0" speed="27.78" length="5.71" shape="1467.55,1574.45 1472.61,1571.80"/>
+ </edge>
+ <edge id=":1669480280_14" function="internal">
+ <lane id=":1669480280_14_0" index="0" speed="16.67" length="4.41" shape="1467.55,1574.45 1468.74,1574.28 1470.02,1574.96 1471.18,1576.28"/>
+ </edge>
+ <edge id=":1669480280_18" function="internal">
+ <lane id=":1669480280_18_0" index="0" speed="16.67" length="3.12" shape="1471.18,1576.28 1471.38,1576.51 1472.83,1578.91"/>
+ </edge>
+ <edge id=":1669480280_15" function="internal">
+ <lane id=":1669480280_15_0" index="0" speed="27.78" length="2.51" shape="1467.55,1574.45 1469.07,1574.18 1469.98,1574.50"/>
+ </edge>
+ <edge id=":1669480280_19" function="internal">
+ <lane id=":1669480280_19_0" index="0" speed="27.78" length="2.51" shape="1469.98,1574.50 1470.26,1575.42 1469.92,1576.93"/>
+ </edge>
+ <edge id=":1669480281_0" function="internal">
+ <lane id=":1669480281_0_0" index="0" speed="27.78" length="7.81" shape="1457.12,1583.62 1456.10,1584.61 1455.80,1586.11 1456.21,1588.14 1457.35,1590.68"/>
+ </edge>
+ <edge id=":1669480281_1" function="internal">
+ <lane id=":1669480281_1_0" index="0" speed="27.78" length="8.32" shape="1457.12,1583.62 1451.87,1590.09"/>
+ </edge>
+ <edge id=":1669480281_2" function="internal">
+ <lane id=":1669480281_2_0" index="0" speed="27.78" length="4.82" shape="1457.12,1583.62 1455.64,1583.47 1454.89,1582.93 1454.87,1582.00 1455.59,1580.70"/>
+ </edge>
+ <edge id=":1669480281_3" function="internal">
+ <lane id=":1669480281_3_0" index="0" speed="27.78" length="7.92" shape="1449.78,1576.47 1451.28,1578.86 1452.75,1580.37 1454.18,1580.98 1455.59,1580.70"/>
+ </edge>
+ <edge id=":1669480281_4" function="internal">
+ <lane id=":1669480281_4_0" index="0" speed="27.78" length="16.10" shape="1449.78,1576.47 1452.03,1580.69 1453.56,1583.57 1455.10,1586.46 1457.35,1590.68"/>
+ </edge>
+ <edge id=":1669480281_5" function="internal">
+ <lane id=":1669480281_5_0" index="0" speed="27.78" length="16.10" shape="1446.87,1578.02 1449.11,1582.24 1450.65,1585.13 1452.19,1588.01 1454.43,1592.23"/>
+ </edge>
+ <edge id=":1669480281_6" function="internal">
+ <lane id=":1669480281_6_0" index="0" speed="27.78" length="10.37" shape="1446.87,1578.02 1448.98,1581.71 1450.76,1584.21 1452.20,1585.51 1453.31,1585.62"/>
+ </edge>
+ <edge id=":1669480281_7" function="internal">
+ <lane id=":1669480281_7_0" index="0" speed="27.78" length="8.33" shape="1447.29,1581.31 1455.59,1580.70"/>
+ </edge>
+ <edge id=":1669480281_8" function="internal">
+ <lane id=":1669480281_8_0" index="0" speed="27.78" length="10.72" shape="1447.39,1584.98 1448.76,1584.95 1450.40,1586.14 1452.29,1588.57 1454.43,1592.23"/>
+ </edge>
+ <edge id=":1669480281_9" function="internal">
+ <lane id=":1669480281_9_0" index="0" speed="27.78" length="8.69" shape="1447.39,1584.98 1449.10,1582.92 1450.66,1582.34 1452.06,1583.24 1453.31,1585.62"/>
+ </edge>
+ <edge id=":1669480282_0" function="internal">
+ <lane id=":1669480282_0_0" index="0" speed="27.78" length="5.07" shape="1443.81,1597.82 1443.00,1596.70 1442.02,1596.11 1440.87,1596.05 1439.55,1596.52"/>
+ </edge>
+ <edge id=":1669480282_1" function="internal">
+ <lane id=":1669480282_1_0" index="0" speed="27.78" length="16.13" shape="1443.81,1597.82 1441.57,1593.58 1440.04,1590.69 1438.51,1587.79 1436.28,1583.55"/>
+ </edge>
+ <edge id=":1669480282_2" function="internal">
+ <lane id=":1669480282_2_0" index="0" speed="27.78" length="16.13" shape="1446.73,1596.28 1444.49,1592.04 1442.96,1589.14 1441.43,1586.25 1439.20,1582.01"/>
+ </edge>
+ <edge id=":1669480282_3" function="internal">
+ <lane id=":1669480282_3_0" index="0" speed="27.78" length="10.31" shape="1446.73,1596.28 1444.63,1592.58 1442.88,1590.07 1441.47,1588.76 1440.40,1588.63"/>
+ </edge>
+ <edge id=":1669480282_4" function="internal">
+ <lane id=":1669480282_4_0" index="0" speed="27.78" length="9.85" shape="1447.78,1592.22 1438.03,1593.59"/>
+ </edge>
+ <edge id=":1669480282_5" function="internal">
+ <lane id=":1669480282_5_0" index="0" speed="27.78" length="10.76" shape="1446.25,1589.30 1444.87,1589.33 1443.23,1588.13 1441.34,1585.69 1439.20,1582.01"/>
+ </edge>
+ <edge id=":1669480282_6" function="internal">
+ <lane id=":1669480282_6_0" index="0" speed="27.78" length="8.61" shape="1446.25,1589.30 1444.54,1591.33 1442.99,1591.89 1441.61,1590.99 1440.40,1588.63"/>
+ </edge>
+ <edge id=":1669480282_7" function="internal">
+ <lane id=":1669480282_7_0" index="0" speed="27.78" length="5.01" shape="1434.97,1587.74 1436.09,1586.94 1436.68,1585.97 1436.74,1584.85 1436.28,1583.55"/>
+ </edge>
+ <edge id=":1669480282_8" function="internal">
+ <lane id=":1669480282_8_0" index="0" speed="27.78" length="10.35" shape="1436.50,1590.66 1438.80,1589.01 1440.02,1587.02 1440.15,1584.68 1439.20,1582.01"/>
+ </edge>
+ <edge id=":1669480282_9" function="internal">
+ <lane id=":1669480282_9_0" index="0" speed="27.78" length="8.36" shape="1436.50,1590.66 1441.79,1584.18"/>
+ </edge>
+ <edge id=":1669480282_10" function="internal">
+ <lane id=":1669480282_10_0" index="0" speed="27.78" length="4.82" shape="1436.50,1590.66 1437.98,1590.82 1438.73,1591.36 1438.74,1592.29 1438.03,1593.59"/>
+ </edge>
+ <edge id=":1669480283_0" function="internal">
+ <lane id=":1669480283_0_0" index="0" speed="13.89" length="4.67" shape="1475.99,1591.40 1475.04,1592.12 1474.57,1593.02 1474.58,1594.11 1475.06,1595.39"/>
+ </edge>
+ <edge id=":1669480283_1" function="internal">
+ <lane id=":1669480283_1_0" index="0" speed="5.56" length="2.68" shape="1475.99,1591.40 1473.62,1592.65"/>
+ </edge>
+ <edge id=":1669480283_2" function="internal">
+ <lane id=":1669480283_2_0" index="0" speed="5.56" length="4.98" shape="1475.99,1591.40 1474.47,1591.63 1473.58,1591.29 1473.32,1590.37 1473.69,1588.88"/>
+ </edge>
+ <edge id=":1669480283_3" function="internal">
+ <lane id=":1669480283_3_0" index="0" speed="13.89" length="4.02" shape="1470.63,1586.98 1471.37,1588.13 1472.12,1588.83 1472.90,1589.08 1473.69,1588.88"/>
+ </edge>
+ <edge id=":1669480283_4" function="internal">
+ <lane id=":1669480283_4_0" index="0" speed="22.22" length="9.50" shape="1470.63,1586.98 1475.06,1595.39"/>
+ </edge>
+ <edge id=":1669480283_5" function="internal">
+ <lane id=":1669480283_5_0" index="0" speed="13.89" length="6.40" shape="1470.63,1586.98 1471.94,1589.46 1472.87,1591.23 1473.43,1592.29 1473.62,1592.65"/>
+ </edge>
+ <edge id=":1669480283_6" function="internal">
+ <lane id=":1669480283_6_0" index="0" speed="5.56" length="1.82" shape="1472.08,1589.73 1473.69,1588.88"/>
+ </edge>
+ <edge id=":1669480283_7" function="internal">
+ <lane id=":1669480283_7_0" index="0" speed="13.89" length="6.40" shape="1472.08,1589.73 1472.27,1590.08 1472.83,1591.14 1473.76,1592.91 1475.06,1595.39"/>
+ </edge>
+ <edge id=":1669480283_8" function="internal">
+ <lane id=":1669480283_8_0" index="0" speed="5.56" length="4.82" shape="1472.08,1589.73 1473.56,1589.88 1474.31,1590.42 1474.33,1591.34 1473.62,1592.65"/>
+ </edge>
+ <edge id=":1669480284_0" function="internal">
+ <lane id=":1669480284_0_0" index="0" speed="16.67" length="5.01" shape="1464.46,1597.42 1463.34,1598.22 1462.75,1599.18 1462.69,1600.31 1463.16,1601.60"/>
+ </edge>
+ <edge id=":1669480284_1" function="internal">
+ <lane id=":1669480284_1_0" index="0" speed="5.56" length="5.05" shape="1464.46,1597.42 1459.98,1599.74"/>
+ </edge>
+ <edge id=":1669480284_2" function="internal">
+ <lane id=":1669480284_2_0" index="0" speed="5.56" length="4.82" shape="1464.46,1597.42 1462.98,1597.25 1462.24,1596.71 1462.22,1595.79 1462.94,1594.49"/>
+ </edge>
+ <edge id=":1669480284_3" function="internal">
+ <lane id=":1669480284_3_0" index="0" speed="16.67" length="5.10" shape="1458.66,1593.15 1459.48,1594.28 1460.47,1594.88 1461.63,1594.95 1462.94,1594.49"/>
+ </edge>
+ <edge id=":1669480284_4" function="internal">
+ <lane id=":1669480284_4_0" index="0" speed="27.78" length="9.58" shape="1458.66,1593.15 1463.16,1601.60"/>
+ </edge>
+ <edge id=":1669480284_5" function="internal">
+ <lane id=":1669480284_5_0" index="0" speed="27.78" length="9.58" shape="1455.75,1594.70 1460.25,1603.15"/>
+ </edge>
+ <edge id=":1669480284_6" function="internal">
+ <lane id=":1669480284_6_0" index="0" speed="16.67" length="6.84" shape="1455.75,1594.70 1457.14,1597.14 1458.31,1598.79 1459.26,1599.66 1459.98,1599.74"/>
+ </edge>
+ <edge id=":1669480284_7" function="internal">
+ <lane id=":1669480284_7_0" index="0" speed="5.56" length="5.05" shape="1458.46,1596.81 1462.94,1594.49"/>
+ </edge>
+ <edge id=":1669480284_8" function="internal">
+ <lane id=":1669480284_8_0" index="0" speed="16.67" length="6.87" shape="1458.46,1596.81 1458.10,1597.45 1458.28,1598.72 1459.00,1600.62 1460.25,1603.15"/>
+ </edge>
+ <edge id=":1669480284_9" function="internal">
+ <lane id=":1669480284_9_0" index="0" speed="5.56" length="4.82" shape="1458.46,1596.81 1459.93,1596.97 1460.68,1597.52 1460.69,1598.44 1459.98,1599.74"/>
+ </edge>
+ <edge id=":1669480286_0" function="internal">
+ <lane id=":1669480286_0_0" index="0" speed="16.67" length="5.08" shape="1449.54,1608.67 1448.73,1607.54 1447.74,1606.95 1446.60,1606.88 1445.29,1607.34"/>
+ </edge>
+ <edge id=":1669480286_1" function="internal">
+ <lane id=":1669480286_1_0" index="0" speed="27.78" length="9.55" shape="1449.54,1608.67 1445.08,1600.22"/>
+ </edge>
+ <edge id=":1669480286_2" function="internal">
+ <lane id=":1669480286_2_0" index="0" speed="27.78" length="9.56" shape="1452.46,1607.13 1448.00,1598.68"/>
+ </edge>
+ <edge id=":1669480286_3" function="internal">
+ <lane id=":1669480286_3_0" index="0" speed="16.67" length="7.25" shape="1452.46,1607.13 1451.03,1604.71 1449.74,1603.12 1448.59,1602.36 1447.58,1602.43"/>
+ </edge>
+ <edge id=":1669480286_4" function="internal">
+ <lane id=":1669480286_4_0" index="0" speed="5.56" length="9.03" shape="1453.30,1603.19 1445.29,1607.34"/>
+ </edge>
+ <edge id=":1669480286_5" function="internal">
+ <lane id=":1669480286_5_0" index="0" speed="16.67" length="7.56" shape="1453.30,1603.19 1452.11,1603.35 1450.83,1602.66 1449.46,1601.10 1448.00,1598.68"/>
+ </edge>
+ <edge id=":1669480286_6" function="internal">
+ <lane id=":1669480286_6_0" index="0" speed="5.56" length="8.43" shape="1453.30,1603.19 1451.59,1605.15 1450.06,1605.67 1448.73,1604.77 1447.58,1602.43"/>
+ </edge>
+ <edge id=":1669480286_7" function="internal">
+ <lane id=":1669480286_7_0" index="0" speed="16.67" length="5.01" shape="1443.77,1604.40 1444.89,1603.61 1445.48,1602.64 1445.54,1601.51 1445.08,1600.22"/>
+ </edge>
+ <edge id=":1669480286_8" function="internal">
+ <lane id=":1669480286_8_0" index="0" speed="5.56" length="4.29" shape="1443.77,1604.40 1447.58,1602.43"/>
+ </edge>
+ <edge id=":1669480286_9" function="internal">
+ <lane id=":1669480286_9_0" index="0" speed="5.56" length="4.82" shape="1443.77,1604.40 1445.25,1604.57 1445.99,1605.11 1446.01,1606.03 1445.29,1607.34"/>
+ </edge>
+ <edge id=":1669480287_0" function="internal">
+ <lane id=":1669480287_0_0" index="0" speed="13.89" length="5.39" shape="1437.73,1614.83 1436.83,1613.73 1435.76,1613.16 1434.52,1613.13 1433.10,1613.64"/>
+ </edge>
+ <edge id=":1669480287_1" function="internal">
+ <lane id=":1669480287_1_0" index="0" speed="22.22" length="9.69" shape="1437.73,1614.83 1432.79,1606.50"/>
+ </edge>
+ <edge id=":1669480287_2" function="internal">
+ <lane id=":1669480287_2_0" index="0" speed="13.89" length="8.01" shape="1437.73,1614.83 1436.47,1612.29 1436.00,1610.25 1436.32,1608.72 1437.43,1607.69"/>
+ </edge>
+ <edge id=":1669480287_3" function="internal">
+ <lane id=":1669480287_3_0" index="0" speed="5.56" length="6.58" shape="1438.94,1610.62 1433.10,1613.64"/>
+ </edge>
+ <edge id=":1669480287_4" function="internal">
+ <lane id=":1669480287_4_0" index="0" speed="13.89" length="8.11" shape="1438.94,1610.62 1437.49,1610.91 1435.99,1610.32 1434.42,1608.85 1432.79,1606.50"/>
+ </edge>
+ <edge id=":1669480287_5" function="internal">
+ <lane id=":1669480287_5_0" index="0" speed="5.56" length="4.82" shape="1438.94,1610.62 1437.46,1610.45 1436.72,1609.91 1436.71,1608.99 1437.43,1607.69"/>
+ </edge>
+ <edge id=":1669480287_6" function="internal">
+ <lane id=":1669480287_6_0" index="0" speed="13.89" length="5.07" shape="1431.58,1610.71 1432.72,1609.90 1433.30,1608.92 1433.33,1607.79 1432.79,1606.50"/>
+ </edge>
+ <edge id=":1669480287_7" function="internal">
+ <lane id=":1669480287_7_0" index="0" speed="5.56" length="6.58" shape="1431.58,1610.71 1437.43,1607.69"/>
+ </edge>
+ <edge id=":1669480287_8" function="internal">
+ <lane id=":1669480287_8_0" index="0" speed="5.56" length="4.82" shape="1431.58,1610.71 1433.06,1610.88 1433.81,1611.42 1433.82,1612.34 1433.10,1613.64"/>
+ </edge>
+ <edge id=":1669480292_0" function="internal">
+ <lane id=":1669480292_0_0" index="0" speed="5.56" length="6.23" shape="1587.29,1822.66 1584.40,1817.14"/>
+ </edge>
+ <edge id=":1669480292_1" function="internal">
+ <lane id=":1669480292_1_0" index="0" speed="13.89" length="5.38" shape="1587.29,1822.66 1586.86,1821.35 1587.00,1820.18 1587.71,1819.15 1588.99,1818.25"/>
+ </edge>
+ <edge id=":1669480292_2" function="internal">
+ <lane id=":1669480292_2_0" index="0" speed="5.56" length="4.82" shape="1587.29,1822.66 1587.45,1821.18 1587.99,1820.44 1588.91,1820.42 1590.22,1821.13"/>
+ </edge>
+ <edge id=":1669480292_3" function="internal">
+ <lane id=":1669480292_3_0" index="0" speed="13.89" length="3.14" shape="1587.33,1815.61 1587.97,1816.81 1588.46,1817.65 1588.80,1818.13 1588.99,1818.25"/>
+ </edge>
+ <edge id=":1669480292_4" function="internal">
+ <lane id=":1669480292_4_0" index="0" speed="5.56" length="6.23" shape="1587.33,1815.61 1590.22,1821.13"/>
+ </edge>
+ <edge id=":1669480292_5" function="internal">
+ <lane id=":1669480292_5_0" index="0" speed="5.56" length="4.82" shape="1587.33,1815.61 1587.17,1817.09 1586.63,1817.84 1585.71,1817.86 1584.40,1817.14"/>
+ </edge>
+ <edge id=":1669480292_6" function="internal">
+ <lane id=":1669480292_6_0" index="0" speed="13.89" length="5.03" shape="1583.10,1821.36 1584.22,1820.55 1584.80,1819.58 1584.87,1818.44 1584.40,1817.14"/>
+ </edge>
+ <edge id=":1669480292_7" function="internal">
+ <lane id=":1669480292_7_0" index="0" speed="22.22" length="6.65" shape="1583.10,1821.36 1588.99,1818.25"/>
+ </edge>
+ <edge id=":1669480292_8" function="internal">
+ <lane id=":1669480292_8_0" index="0" speed="13.89" length="7.86" shape="1583.10,1821.36 1585.67,1820.22 1587.71,1819.81 1589.23,1820.11 1590.22,1821.13"/>
+ </edge>
+ <edge id=":1718241040_0" function="internal">
+ <lane id=":1718241040_0_0" index="0" speed="8.33" length="4.82" shape="754.04,306.75 753.61,305.33 753.81,304.43 754.65,304.05 756.13,304.20"/>
+ </edge>
+ <edge id=":1719213140_0" function="internal">
+ <lane id=":1719213140_0_0" index="0" speed="5.56" length="6.23" shape="1244.78,1686.54 1241.84,1681.05"/>
+ </edge>
+ <edge id=":1719213140_1" function="internal">
+ <lane id=":1719213140_1_0" index="0" speed="13.89" length="7.85" shape="1244.78,1686.54 1244.50,1685.15 1245.11,1683.74 1246.62,1682.29 1249.01,1680.82"/>
+ </edge>
+ <edge id=":1719213140_2" function="internal">
+ <lane id=":1719213140_2_0" index="0" speed="5.56" length="4.82" shape="1244.78,1686.54 1244.93,1685.07 1245.47,1684.32 1246.40,1684.30 1247.70,1685.01"/>
+ </edge>
+ <edge id=":1719213140_3" function="internal">
+ <lane id=":1719213140_3_0" index="0" speed="13.89" length="5.08" shape="1244.74,1679.47 1245.58,1680.60 1246.57,1681.21 1247.71,1681.28 1249.01,1680.82"/>
+ </edge>
+ <edge id=":1719213140_4" function="internal">
+ <lane id=":1719213140_4_0" index="0" speed="5.56" length="6.28" shape="1244.74,1679.47 1247.70,1685.01"/>
+ </edge>
+ <edge id=":1719213140_5" function="internal">
+ <lane id=":1719213140_5_0" index="0" speed="5.56" length="4.82" shape="1244.74,1679.47 1244.61,1680.95 1244.08,1681.71 1243.16,1681.74 1241.84,1681.05"/>
+ </edge>
+ <edge id=":1719213140_6" function="internal">
+ <lane id=":1719213140_6_0" index="0" speed="13.89" length="5.02" shape="1240.57,1685.24 1241.68,1684.43 1242.27,1683.47 1242.32,1682.34 1241.84,1681.05"/>
+ </edge>
+ <edge id=":1719213140_7" function="internal">
+ <lane id=":1719213140_7_0" index="0" speed="22.22" length="9.53" shape="1240.57,1685.24 1249.01,1680.82"/>
+ </edge>
+ <edge id=":1719213140_8" function="internal">
+ <lane id=":1719213140_8_0" index="0" speed="13.89" length="7.87" shape="1240.57,1685.24 1243.15,1684.11 1245.20,1683.69 1246.71,1683.99 1247.70,1685.01"/>
+ </edge>
+ <edge id=":1719213141_0" function="internal">
+ <lane id=":1719213141_0_0" index="0" speed="13.89" length="5.01" shape="1252.02,1700.32 1251.22,1699.21 1250.25,1698.62 1249.12,1698.56 1247.83,1699.03"/>
+ </edge>
+ <edge id=":1719213141_1" function="internal">
+ <lane id=":1719213141_1_0" index="0" speed="5.56" length="6.23" shape="1252.02,1700.32 1249.12,1694.81"/>
+ </edge>
+ <edge id=":1719213141_2" function="internal">
+ <lane id=":1719213141_2_0" index="0" speed="5.56" length="4.82" shape="1252.02,1700.32 1252.17,1698.85 1252.71,1698.10 1253.64,1698.08 1254.94,1698.79"/>
+ </edge>
+ <edge id=":1719213141_3" function="internal">
+ <lane id=":1719213141_3_0" index="0" speed="13.89" length="5.03" shape="1256.23,1694.57 1255.12,1695.38 1254.54,1696.35 1254.48,1697.49 1254.94,1698.79"/>
+ </edge>
+ <edge id=":1719213141_4" function="internal">
+ <lane id=":1719213141_4_0" index="0" speed="22.22" length="9.52" shape="1256.23,1694.57 1247.83,1699.03"/>
+ </edge>
+ <edge id=":1719213141_5" function="internal">
+ <lane id=":1719213141_5_0" index="0" speed="13.89" length="7.86" shape="1256.23,1694.57 1253.67,1695.71 1251.63,1696.13 1250.11,1695.83 1249.12,1694.81"/>
+ </edge>
+ <edge id=":1719213141_6" function="internal">
+ <lane id=":1719213141_6_0" index="0" speed="5.56" length="6.23" shape="1252.04,1693.27 1254.94,1698.79"/>
+ </edge>
+ <edge id=":1719213141_7" function="internal">
+ <lane id=":1719213141_7_0" index="0" speed="13.89" length="7.87" shape="1252.04,1693.27 1252.32,1694.66 1251.71,1696.09 1250.22,1697.54 1247.83,1699.03"/>
+ </edge>
+ <edge id=":1719213141_8" function="internal">
+ <lane id=":1719213141_8_0" index="0" speed="5.56" length="4.82" shape="1252.04,1693.27 1251.89,1694.75 1251.35,1695.50 1250.43,1695.52 1249.12,1694.81"/>
+ </edge>
+ <edge id=":1719213509_0" function="internal">
+ <lane id=":1719213509_0_0" index="0" speed="5.56" length="6.74" shape="840.62,975.12 837.29,969.26"/>
+ </edge>
+ <edge id=":1719213509_1" function="internal">
+ <lane id=":1719213509_1_0" index="0" speed="13.89" length="7.96" shape="840.62,975.12 840.22,973.70 840.75,972.23 842.19,970.72 844.56,969.17"/>
+ </edge>
+ <edge id=":1719213509_2" function="internal">
+ <lane id=":1719213509_2_0" index="0" speed="5.56" length="4.82" shape="840.62,975.12 840.68,973.64 841.17,972.86 842.09,972.78 843.44,973.41"/>
+ </edge>
+ <edge id=":1719213509_3" function="internal">
+ <lane id=":1719213509_3_0" index="0" speed="13.89" length="5.26" shape="840.20,967.71 841.07,968.93 842.09,969.57 843.25,969.65 844.56,969.17"/>
+ </edge>
+ <edge id=":1719213509_4" function="internal">
+ <lane id=":1719213509_4_0" index="0" speed="5.56" length="6.55" shape="840.20,967.71 843.44,973.41"/>
+ </edge>
+ <edge id=":1719213509_5" function="internal">
+ <lane id=":1719213509_5_0" index="0" speed="5.56" length="4.82" shape="840.20,967.71 840.05,969.19 839.52,969.95 838.60,969.97 837.29,969.26"/>
+ </edge>
+ <edge id=":1719213509_6" function="internal">
+ <lane id=":1719213509_6_0" index="0" speed="13.89" length="5.12" shape="835.80,973.39 837.03,972.66 837.68,971.73 837.77,970.60 837.29,969.26"/>
+ </edge>
+ <edge id=":1719213509_7" function="internal">
+ <lane id=":1719213509_7_0" index="0" speed="22.22" length="9.72" shape="835.80,973.39 844.56,969.17"/>
+ </edge>
+ <edge id=":1719213509_8" function="internal">
+ <lane id=":1719213509_8_0" index="0" speed="13.89" length="8.21" shape="835.80,973.39 838.56,972.45 840.76,972.13 842.38,972.46 843.44,973.41"/>
+ </edge>
+ <edge id=":1719213668_0" function="internal">
+ <lane id=":1719213668_0_0" index="0" speed="5.56" length="6.41" shape="789.29,884.81 786.33,879.12"/>
+ </edge>
+ <edge id=":1719213668_1" function="internal">
+ <lane id=":1719213668_1_0" index="0" speed="13.89" length="7.99" shape="789.29,884.81 789.00,883.39 789.60,881.92 791.09,880.41 793.46,878.86"/>
+ </edge>
+ <edge id=":1719213668_2" function="internal">
+ <lane id=":1719213668_2_0" index="0" speed="5.56" length="4.82" shape="789.29,884.81 789.45,883.33 789.99,882.59 790.91,882.57 792.21,883.29"/>
+ </edge>
+ <edge id=":1719213668_3" function="internal">
+ <lane id=":1719213668_3_0" index="0" speed="13.89" length="5.04" shape="789.26,877.60 790.07,878.73 791.04,879.31 792.17,879.36 793.46,878.86"/>
+ </edge>
+ <edge id=":1719213668_4" function="internal">
+ <lane id=":1719213668_4_0" index="0" speed="5.56" length="6.41" shape="789.26,877.60 792.21,883.29"/>
+ </edge>
+ <edge id=":1719213668_5" function="internal">
+ <lane id=":1719213668_5_0" index="0" speed="5.56" length="4.82" shape="789.26,877.60 789.10,879.08 788.56,879.83 787.63,879.84 786.33,879.12"/>
+ </edge>
+ <edge id=":1719213668_6" function="internal">
+ <lane id=":1719213668_6_0" index="0" speed="13.89" length="5.22" shape="785.08,883.56 786.19,882.70 786.77,881.68 786.82,880.48 786.33,879.12"/>
+ </edge>
+ <edge id=":1719213668_7" function="internal">
+ <lane id=":1719213668_7_0" index="0" speed="22.22" length="9.61" shape="785.08,883.56 793.46,878.86"/>
+ </edge>
+ <edge id=":1719213668_8" function="internal">
+ <lane id=":1719213668_8_0" index="0" speed="13.89" length="7.94" shape="785.08,883.56 787.64,882.36 789.68,881.91 791.21,882.22 792.21,883.29"/>
+ </edge>
+ <edge id=":1719223322_0" function="internal">
+ <lane id=":1719223322_0_0" index="0" speed="15.28" length="5.03" shape="1075.84,1562.70 1075.04,1561.60 1074.06,1561.01 1072.92,1560.95 1071.60,1561.40"/>
+ </edge>
+ <edge id=":1719223322_1" function="internal">
+ <lane id=":1719223322_1_0" index="0" speed="22.22" length="9.49" shape="1075.84,1562.70 1071.45,1554.29"/>
+ </edge>
+ <edge id=":1719223322_2" function="internal">
+ <lane id=":1719223322_2_0" index="0" speed="15.28" length="5.01" shape="1070.11,1558.46 1071.23,1557.67 1071.83,1556.71 1071.90,1555.59 1071.45,1554.29"/>
+ </edge>
+ <edge id=":1719223322_3" function="internal">
+ <lane id=":1719223322_3_0" index="0" speed="8.33" length="4.82" shape="1070.11,1558.46 1071.58,1558.64 1072.33,1559.18 1072.33,1560.11 1071.60,1561.40"/>
+ </edge>
+ <edge id=":1719223329_0" function="internal">
+ <lane id=":1719223329_0_0" index="0" speed="8.33" length="5.65" shape="924.68,1598.78 919.48,1600.99"/>
+ </edge>
+ <edge id=":1719223329_1" function="internal">
+ <lane id=":1719223329_1_0" index="0" speed="6.94" length="5.32" shape="924.68,1598.78 919.49,1599.97"/>
+ </edge>
+ <edge id=":1719223329_2" function="internal">
+ <lane id=":1719223329_2_0" index="0" speed="8.33" length="2.41" shape="924.68,1598.78 923.21,1598.61 922.47,1598.06"/>
+ </edge>
+ <edge id=":1719223329_9" function="internal">
+ <lane id=":1719223329_9_0" index="0" speed="8.33" length="2.41" shape="922.47,1598.06 922.46,1597.14 923.19,1595.84"/>
+ </edge>
+ <edge id=":1719223329_3" function="internal">
+ <lane id=":1719223329_3_0" index="0" speed="6.94" length="3.75" shape="919.53,1596.67 923.19,1595.84"/>
+ </edge>
+ <edge id=":1719223329_4" function="internal">
+ <lane id=":1719223329_4_0" index="0" speed="6.94" length="7.40" shape="919.53,1596.67 923.71,1597.03 925.10,1597.87 923.94,1598.95"/>
+ </edge>
+ <edge id=":1719223329_10" function="internal">
+ <lane id=":1719223329_10_0" index="0" speed="6.94" length="4.92" shape="923.94,1598.95 923.69,1599.19 919.48,1600.99"/>
+ </edge>
+ <edge id=":1719223329_5" function="internal">
+ <lane id=":1719223329_5_0" index="0" speed="5.56" length="2.41" shape="919.53,1596.67 920.76,1597.50 921.16,1598.33"/>
+ </edge>
+ <edge id=":1719223329_11" function="internal">
+ <lane id=":1719223329_11_0" index="0" speed="5.56" length="2.41" shape="921.16,1598.33 920.74,1599.15 919.49,1599.97"/>
+ </edge>
+ <edge id=":1719223329_6" function="internal">
+ <lane id=":1719223329_6_0" index="0" speed="8.33" length="4.01" shape="919.52,1597.47 923.19,1595.84"/>
+ </edge>
+ <edge id=":1719223329_7" function="internal">
+ <lane id=":1719223329_7_0" index="0" speed="6.94" length="7.12" shape="919.52,1597.47 917.09,1598.51 916.28,1599.27 917.08,1599.75 919.49,1599.97"/>
+ </edge>
+ <edge id=":1719223329_8" function="internal">
+ <lane id=":1719223329_8_0" index="0" speed="8.33" length="5.15" shape="919.52,1597.47 920.83,1598.36 921.26,1599.25 920.81,1600.12 919.48,1600.99"/>
+ </edge>
+ <edge id=":1726380179_0" function="internal">
+ <lane id=":1726380179_0_0" index="0" speed="22.22" length="0.10" shape="820.60,440.63 820.60,440.63"/>
+ </edge>
+ <edge id=":1726380184_0" function="internal">
+ <lane id=":1726380184_0_0" index="0" speed="22.22" length="5.03" shape="681.23,1356.86 680.41,1355.74 679.43,1355.17 678.30,1355.13 677.01,1355.64"/>
+ </edge>
+ <edge id=":1726380184_1" function="internal">
+ <lane id=":1726380184_1_0" index="0" speed="22.22" length="2.41" shape="681.23,1356.86 681.37,1355.38 681.91,1354.63"/>
+ </edge>
+ <edge id=":1726380184_4" function="internal">
+ <lane id=":1726380184_4_0" index="0" speed="22.22" length="2.41" shape="681.91,1354.63 682.83,1354.60 684.14,1355.30"/>
+ </edge>
+ <edge id=":1726380184_2" function="internal">
+ <lane id=":1726380184_2_0" index="0" speed="22.22" length="5.11" shape="685.27,1350.94 684.21,1351.78 683.66,1352.79 683.64,1353.96 684.14,1355.30"/>
+ </edge>
+ <edge id=":1726380184_3" function="internal">
+ <lane id=":1726380184_3_0" index="0" speed="22.22" length="9.50" shape="685.27,1350.94 677.01,1355.64"/>
+ </edge>
+ <edge id=":1726380187_0" function="internal">
+ <lane id=":1726380187_0_0" index="0" speed="22.22" length="6.41" shape="715.88,1418.30 711.52,1413.60"/>
+ </edge>
+ <edge id=":1726380187_1" function="internal">
+ <lane id=":1726380187_1_0" index="0" speed="22.22" length="7.59" shape="715.88,1418.30 714.91,1415.96 715.04,1414.71 716.29,1414.55 718.65,1415.47"/>
+ </edge>
+ <edge id=":1726380187_2" function="internal">
+ <lane id=":1726380187_2_0" index="0" speed="22.22" length="5.43" shape="714.43,1412.05 718.65,1415.47"/>
+ </edge>
+ <edge id=":1726380187_3" function="internal">
+ <lane id=":1726380187_3_0" index="0" speed="22.22" length="2.41" shape="714.43,1412.05 714.28,1413.53 713.75,1414.28"/>
+ </edge>
+ <edge id=":1726380187_4" function="internal">
+ <lane id=":1726380187_4_0" index="0" speed="22.22" length="2.41" shape="713.75,1414.28 712.83,1414.31 711.52,1413.60"/>
+ </edge>
+ <edge id=":1726380193_0" function="internal">
+ <lane id=":1726380193_0_0" index="0" speed="22.22" length="5.45" shape="731.95,1422.15 733.44,1422.65 734.58,1422.48 735.37,1421.64 735.80,1420.13"/>
+ </edge>
+ <edge id=":1726380193_1" function="internal">
+ <lane id=":1726380193_1_0" index="0" speed="22.22" length="7.09" shape="731.95,1422.15 738.53,1424.78"/>
+ </edge>
+ <edge id=":1726380193_2" function="internal">
+ <lane id=":1726380193_2_0" index="0" speed="22.22" length="7.12" shape="734.87,1427.18 735.80,1420.13"/>
+ </edge>
+ <edge id=":1726380193_3" function="internal">
+ <lane id=":1726380193_3_0" index="0" speed="22.22" length="5.20" shape="734.87,1427.18 735.26,1425.78 736.00,1424.91 737.09,1424.57 738.53,1424.78"/>
+ </edge>
+ <edge id=":1726380194_0" function="internal">
+ <lane id=":1726380194_0_0" index="0" speed="22.22" length="6.23" shape="752.93,1425.07 752.02,1431.24"/>
+ </edge>
+ <edge id=":1726380194_1" function="internal">
+ <lane id=":1726380194_1_0" index="0" speed="22.22" length="2.41" shape="752.93,1425.07 751.93,1426.17 751.06,1426.46"/>
+ </edge>
+ <edge id=":1726380194_6" function="internal">
+ <lane id=":1726380194_6_0" index="0" speed="22.22" length="2.41" shape="751.06,1426.46 750.30,1425.93 749.66,1424.59"/>
+ </edge>
+ <edge id=":1726380194_2" function="internal">
+ <lane id=":1726380194_2_0" index="0" speed="22.22" length="5.17" shape="745.97,1426.96 747.41,1427.16 748.50,1426.83 749.25,1425.98 749.66,1424.59"/>
+ </edge>
+ <edge id=":1726380194_3" function="internal">
+ <lane id=":1726380194_3_0" index="0" speed="22.22" length="7.88" shape="745.97,1426.96 748.75,1427.93 750.69,1428.96 751.78,1430.07 752.02,1431.24"/>
+ </edge>
+ <edge id=":1726380194_4" function="internal">
+ <lane id=":1726380194_4_0" index="0" speed="22.22" length="6.23" shape="748.76,1430.76 749.66,1424.59"/>
+ </edge>
+ <edge id=":1726380194_5" function="internal">
+ <lane id=":1726380194_5_0" index="0" speed="22.22" length="2.41" shape="748.76,1430.76 749.75,1429.65 750.63,1429.36"/>
+ </edge>
+ <edge id=":1726380194_7" function="internal">
+ <lane id=":1726380194_7_0" index="0" speed="22.22" length="2.41" shape="750.63,1429.36 751.38,1429.89 752.02,1431.24"/>
+ </edge>
+ <edge id=":1726380195_0" function="internal">
+ <lane id=":1726380195_0_0" index="0" speed="22.22" length="5.37" shape="732.35,1447.32 729.07,1443.07"/>
+ </edge>
+ <edge id=":1726380195_1" function="internal">
+ <lane id=":1726380195_1_0" index="0" speed="22.22" length="5.00" shape="732.35,1447.32 732.96,1442.36"/>
+ </edge>
+ <edge id=":1726380204_0" function="internal">
+ <lane id=":1726380204_0_0" index="0" speed="22.22" length="8.15" shape="647.79,1610.68 641.18,1605.90"/>
+ </edge>
+ <edge id=":1726380204_1" function="internal">
+ <lane id=":1726380204_1_0" index="0" speed="22.22" length="2.41" shape="647.79,1610.68 647.27,1609.29 647.41,1608.38"/>
+ </edge>
+ <edge id=":1726380204_6" function="internal">
+ <lane id=":1726380204_6_0" index="0" speed="22.22" length="2.41" shape="647.41,1608.38 648.23,1607.95 649.72,1608.01"/>
+ </edge>
+ <edge id=":1726380204_2" function="internal">
+ <lane id=":1726380204_2_0" index="0" speed="22.22" length="7.82" shape="646.39,1600.93 649.72,1608.01"/>
+ </edge>
+ <edge id=":1726380204_3" function="internal">
+ <lane id=":1726380204_3_0" index="0" speed="22.22" length="12.87" shape="646.39,1600.93 647.23,1605.36 646.64,1607.67 644.62,1607.85 641.18,1605.90"/>
+ </edge>
+ <edge id=":1726380204_4" function="internal">
+ <lane id=":1726380204_4_0" index="0" speed="22.22" length="8.15" shape="643.11,1603.23 649.72,1608.01"/>
+ </edge>
+ <edge id=":1726380204_5" function="internal">
+ <lane id=":1726380204_5_0" index="0" speed="22.22" length="2.41" shape="643.11,1603.23 643.63,1604.62 643.48,1605.53"/>
+ </edge>
+ <edge id=":1726380204_7" function="internal">
+ <lane id=":1726380204_7_0" index="0" speed="22.22" length="2.41" shape="643.48,1605.53 642.66,1605.96 641.18,1605.90"/>
+ </edge>
+ <edge id=":1726394722_0" function="internal">
+ <lane id=":1726394722_0_0" index="0" speed="27.78" length="4.82" shape="1058.47,852.01 1058.63,850.53 1059.17,849.78 1060.09,849.77 1061.39,850.48"/>
+ </edge>
+ <edge id=":1726394722_1" function="internal">
+ <lane id=":1726394722_1_0" index="0" speed="25.00" length="14.21" shape="1051.33,852.28 1056.40,849.65 1060.26,848.22 1062.90,847.99 1064.32,848.96"/>
+ </edge>
+ <edge id=":1726394722_2" function="internal">
+ <lane id=":1726394722_2_0" index="0" speed="25.00" length="11.05" shape="1051.33,852.28 1055.14,850.36 1058.09,849.42 1060.17,849.46 1061.39,850.48"/>
+ </edge>
+ <edge id=":1726394723_0" function="internal">
+ <lane id=":1726394723_0_0" index="0" speed="27.78" length="3.92" shape="1159.78,1052.53 1161.61,1049.06"/>
+ </edge>
+ <edge id=":1726394723_1" function="internal">
+ <lane id=":1726394723_1_0" index="0" speed="27.78" length="2.57" shape="1162.67,1050.94 1162.68,1050.65 1162.99,1050.28 1163.58,1049.81 1164.46,1049.25"/>
+ </edge>
+ <edge id=":1726394723_2" function="internal">
+ <lane id=":1726394723_2_0" index="0" speed="27.78" length="4.82" shape="1162.67,1050.94 1162.80,1049.46 1163.33,1048.70 1164.25,1048.67 1165.57,1049.35"/>
+ </edge>
+ <edge id=":1726394723_3" function="internal">
+ <lane id=":1726394723_3_0" index="0" speed="27.78" length="4.49" shape="1167.37,1045.84 1164.46,1049.25"/>
+ </edge>
+ <edge id=":1726394723_4" function="internal">
+ <lane id=":1726394723_4_0" index="0" speed="27.78" length="4.01" shape="1164.47,1047.41 1168.46,1047.77"/>
+ </edge>
+ <edge id=":1726394723_5" function="internal">
+ <lane id=":1726394723_5_0" index="0" speed="27.78" length="4.82" shape="1164.47,1047.41 1164.38,1048.89 1163.87,1049.66 1162.95,1049.72 1161.61,1049.06"/>
+ </edge>
+ <edge id=":1726394723_6" function="internal">
+ <lane id=":1726394723_6_0" index="0" speed="27.78" length="5.54" shape="1163.83,1049.62 1161.91,1050.63 1160.43,1051.15 1159.38,1051.19 1158.77,1050.74"/>
+ </edge>
+ <edge id=":1726394723_7" function="internal">
+ <lane id=":1726394723_7_0" index="0" speed="27.78" length="0.73" shape="1163.83,1049.62 1164.46,1049.25"/>
+ </edge>
+ <edge id=":1726394723_8" function="internal">
+ <lane id=":1726394723_8_0" index="0" speed="27.78" length="1.91" shape="1163.83,1049.62 1164.47,1049.29 1164.98,1049.14 1165.34,1049.16 1165.57,1049.35"/>
+ </edge>
+ <edge id=":1726394724_0" function="internal">
+ <lane id=":1726394724_0_0" index="0" speed="27.78" length="4.14" shape="1166.78,1065.92 1166.23,1065.25 1165.43,1064.99 1164.40,1065.16 1163.13,1065.73"/>
+ </edge>
+ <edge id=":1726394724_1" function="internal">
+ <lane id=":1726394724_1_0" index="0" speed="27.78" length="14.35" shape="1169.74,1064.46 1167.85,1060.64 1166.53,1058.04 1165.15,1055.47 1163.11,1051.73"/>
+ </edge>
+ <edge id=":1726394724_2" function="internal">
+ <lane id=":1726394724_2_0" index="0" speed="27.78" length="2.19" shape="1169.74,1064.46 1169.08,1062.37"/>
+ </edge>
+ <edge id=":1726394724_18" function="internal">
+ <lane id=":1726394724_18_0" index="0" speed="27.78" length="12.92" shape="1169.08,1062.37 1168.57,1060.72 1168.94,1057.38 1170.85,1054.41 1174.30,1051.84"/>
+ </edge>
+ <edge id=":1726394724_3" function="internal">
+ <lane id=":1726394724_3_0" index="0" speed="27.78" length="2.41" shape="1169.74,1064.46 1169.85,1062.97 1170.37,1062.21"/>
+ </edge>
+ <edge id=":1726394724_19" function="internal">
+ <lane id=":1726394724_19_0" index="0" speed="27.78" length="2.41" shape="1170.37,1062.21 1171.30,1062.17 1172.62,1062.85"/>
+ </edge>
+ <edge id=":1726394724_4" function="internal">
+ <lane id=":1726394724_4_0" index="0" speed="27.78" length="4.87" shape="1177.55,1057.58 1176.30,1058.46 1175.57,1059.41 1175.34,1060.42 1175.63,1061.49"/>
+ </edge>
+ <edge id=":1726394724_5" function="internal">
+ <lane id=":1726394724_5_0" index="0" speed="27.78" length="16.56" shape="1177.55,1057.58 1173.27,1060.00 1170.34,1061.66 1167.41,1063.31 1163.13,1065.73"/>
+ </edge>
+ <edge id=":1726394724_6" function="internal">
+ <lane id=":1726394724_6_0" index="0" speed="27.78" length="16.56" shape="1175.93,1054.71 1171.64,1057.13 1168.72,1058.79 1165.79,1060.44 1161.51,1062.86"/>
+ </edge>
+ <edge id=":1726394724_7" function="internal">
+ <lane id=":1726394724_7_0" index="0" speed="27.78" length="6.87" shape="1175.93,1054.71 1171.92,1056.33 1169.38,1056.36"/>
+ </edge>
+ <edge id=":1726394724_20" function="internal">
+ <lane id=":1726394724_20_0" index="0" speed="27.78" length="8.17" shape="1169.38,1056.36 1168.46,1056.38 1165.52,1054.84 1163.11,1051.73"/>
+ </edge>
+ <edge id=":1726394724_8" function="internal">
+ <lane id=":1726394724_8_0" index="0" speed="27.78" length="2.41" shape="1175.93,1054.71 1174.44,1054.60 1173.68,1054.08"/>
+ </edge>
+ <edge id=":1726394724_21" function="internal">
+ <lane id=":1726394724_21_0" index="0" speed="27.78" length="2.41" shape="1173.68,1054.08 1173.63,1053.16 1174.30,1051.84"/>
+ </edge>
+ <edge id=":1726394724_9" function="internal">
+ <lane id=":1726394724_9_0" index="0" speed="27.78" length="4.30" shape="1168.90,1048.57 1169.53,1049.32 1170.37,1049.63 1171.42,1049.52 1172.68,1048.96"/>
+ </edge>
+ <edge id=":1726394724_10" function="internal">
+ <lane id=":1726394724_10_0" index="0" speed="27.78" length="14.27" shape="1166.03,1050.20 1168.06,1053.91 1169.43,1056.47 1170.74,1059.05 1172.62,1062.85"/>
+ </edge>
+ <edge id=":1726394724_11" function="internal">
+ <lane id=":1726394724_11_0" index="0" speed="27.78" length="2.23" shape="1166.03,1050.20 1166.78,1052.30"/>
+ </edge>
+ <edge id=":1726394724_22" function="internal">
+ <lane id=":1726394724_22_0" index="0" speed="27.78" length="13.04" shape="1166.78,1052.30 1167.34,1053.88 1167.02,1057.22 1165.08,1060.21 1161.51,1062.86"/>
+ </edge>
+ <edge id=":1726394724_12" function="internal">
+ <lane id=":1726394724_12_0" index="0" speed="27.78" length="2.41" shape="1166.03,1050.20 1165.87,1051.67 1165.33,1052.42"/>
+ </edge>
+ <edge id=":1726394724_23" function="internal">
+ <lane id=":1726394724_23_0" index="0" speed="27.78" length="2.41" shape="1165.33,1052.42 1164.41,1052.44 1163.11,1051.73"/>
+ </edge>
+ <edge id=":1726394724_13" function="internal">
+ <lane id=":1726394724_13_0" index="0" speed="27.78" length="4.80" shape="1158.26,1057.12 1159.54,1056.23 1160.29,1055.30 1160.52,1054.33 1160.21,1053.32"/>
+ </edge>
+ <edge id=":1726394724_14" function="internal">
+ <lane id=":1726394724_14_0" index="0" speed="27.78" length="16.56" shape="1158.26,1057.12 1162.54,1054.70 1165.47,1053.04 1168.40,1051.38 1172.68,1048.96"/>
+ </edge>
+ <edge id=":1726394724_15" function="internal">
+ <lane id=":1726394724_15_0" index="0" speed="27.78" length="16.56" shape="1159.88,1059.99 1164.16,1057.57 1167.09,1055.91 1170.02,1054.26 1174.30,1051.84"/>
+ </edge>
+ <edge id=":1726394724_16" function="internal">
+ <lane id=":1726394724_16_0" index="0" speed="27.78" length="7.08" shape="1159.88,1059.99 1164.00,1058.29 1166.62,1058.22"/>
+ </edge>
+ <edge id=":1726394724_24" function="internal">
+ <lane id=":1726394724_24_0" index="0" speed="27.78" length="7.98" shape="1166.62,1058.22 1167.50,1058.20 1170.37,1059.72 1172.62,1062.85"/>
+ </edge>
+ <edge id=":1726394724_17" function="internal">
+ <lane id=":1726394724_17_0" index="0" speed="27.78" length="2.41" shape="1159.88,1059.99 1161.37,1060.10 1162.13,1060.61"/>
+ </edge>
+ <edge id=":1726394724_25" function="internal">
+ <lane id=":1726394724_25_0" index="0" speed="27.78" length="2.41" shape="1162.13,1060.61 1162.18,1061.54 1161.51,1062.86"/>
+ </edge>
+ <edge id=":1726394725_0" function="internal">
+ <lane id=":1726394725_0_0" index="0" speed="27.78" length="5.44" shape="1168.18,1068.70 1168.19,1068.03 1168.81,1067.21 1170.04,1066.22 1171.88,1065.08"/>
+ </edge>
+ <edge id=":1726394725_1" function="internal">
+ <lane id=":1726394725_1_0" index="0" speed="27.78" length="3.79" shape="1171.11,1067.17 1167.32,1067.03"/>
+ </edge>
+ <edge id=":1726394725_2" function="internal">
+ <lane id=":1726394725_2_0" index="0" speed="27.78" length="4.82" shape="1171.11,1067.17 1171.29,1065.69 1171.84,1064.95 1172.77,1064.95 1174.06,1065.69"/>
+ </edge>
+ <edge id=":1726394725_3" function="internal">
+ <lane id=":1726394725_3_0" index="0" speed="27.78" length="4.37" shape="1172.63,1064.65 1176.97,1064.14"/>
+ </edge>
+ <edge id=":1726394725_4" function="internal">
+ <lane id=":1726394725_4_0" index="0" speed="27.78" length="0.86" shape="1172.63,1064.65 1171.88,1065.08"/>
+ </edge>
+ <edge id=":1726394725_5" function="internal">
+ <lane id=":1726394725_5_0" index="0" speed="27.78" length="2.58" shape="1172.63,1064.65 1171.67,1065.18 1170.95,1065.50 1170.49,1065.63 1170.28,1065.57"/>
+ </edge>
+ <edge id=":1726394725_6" function="internal">
+ <lane id=":1726394725_6_0" index="0" speed="27.78" length="3.72" shape="1176.20,1062.65 1174.06,1065.69"/>
+ </edge>
+ <edge id=":1726394725_7" function="internal">
+ <lane id=":1726394725_7_0" index="0" speed="27.78" length="1.69" shape="1173.24,1064.11 1173.19,1064.23 1172.94,1064.43 1172.51,1064.71 1171.88,1065.08"/>
+ </edge>
+ <edge id=":1726394725_8" function="internal">
+ <lane id=":1726394725_8_0" index="0" speed="27.78" length="4.82" shape="1173.24,1064.11 1173.05,1065.58 1172.49,1066.32 1171.57,1066.31 1170.28,1065.57"/>
+ </edge>
+ <edge id=":1726394726_0" function="internal">
+ <lane id=":1726394726_0_0" index="0" speed="27.78" length="5.13" shape="1443.09,1590.72 1448.03,1592.09"/>
+ </edge>
+ <edge id=":1726394726_1" function="internal">
+ <lane id=":1726394726_1_0" index="0" speed="27.78" length="7.86" shape="1446.03,1589.22 1442.39,1582.26"/>
+ </edge>
+ <edge id=":1726394726_2" function="internal">
+ <lane id=":1726394726_2_0" index="0" speed="27.78" length="4.80" shape="1446.03,1589.22 1445.56,1587.92 1445.59,1586.80 1446.10,1585.88 1447.10,1585.13"/>
+ </edge>
+ <edge id=":1726394726_3" function="internal">
+ <lane id=":1726394726_3_0" index="0" speed="27.78" length="3.39" shape="1446.03,1589.22 1448.42,1588.01 1449.13,1588.04"/>
+ </edge>
+ <edge id=":1726394726_18" function="internal">
+ <lane id=":1726394726_18_0" index="0" speed="27.78" length="5.30" shape="1449.13,1588.04 1450.08,1588.09 1451.01,1589.47 1451.21,1592.15"/>
+ </edge>
+ <edge id=":1726394726_4" function="internal">
+ <lane id=":1726394726_4_0" index="0" speed="27.78" length="4.14" shape="1450.15,1590.99 1452.65,1587.68"/>
+ </edge>
+ <edge id=":1726394726_5" function="internal">
+ <lane id=":1726394726_5_0" index="0" speed="27.78" length="2.39" shape="1450.15,1590.99 1448.03,1592.09"/>
+ </edge>
+ <edge id=":1726394726_6" function="internal">
+ <lane id=":1726394726_6_0" index="0" speed="27.78" length="2.39" shape="1448.62,1588.06 1446.50,1589.17"/>
+ </edge>
+ <edge id=":1726394726_7" function="internal">
+ <lane id=":1726394726_7_0" index="0" speed="27.78" length="7.55" shape="1448.62,1588.06 1447.30,1588.19 1445.82,1587.26 1444.18,1585.29 1443.21,1583.65"/>
+ </edge>
+ <edge id=":1726394726_19" function="internal">
+ <lane id=":1726394726_19_0" index="0" speed="27.78" length="1.61" shape="1443.21,1583.65 1442.39,1582.26"/>
+ </edge>
+ <edge id=":1726394726_8" function="internal">
+ <lane id=":1726394726_8_0" index="0" speed="27.78" length="2.41" shape="1448.62,1588.06 1447.14,1587.90 1446.40,1587.36"/>
+ </edge>
+ <edge id=":1726394726_20" function="internal">
+ <lane id=":1726394726_20_0" index="0" speed="27.78" length="2.41" shape="1446.40,1587.36 1446.38,1586.44 1447.10,1585.13"/>
+ </edge>
+ <edge id=":1726394726_9" function="internal">
+ <lane id=":1726394726_9_0" index="0" speed="27.78" length="4.18" shape="1449.75,1582.08 1445.57,1582.21"/>
+ </edge>
+ <edge id=":1726394726_10" function="internal">
+ <lane id=":1726394726_10_0" index="0" speed="27.78" length="12.90" shape="1445.29,1580.69 1447.07,1584.08 1448.28,1586.40 1449.48,1588.73 1451.21,1592.15"/>
+ </edge>
+ <edge id=":1726394726_11" function="internal">
+ <lane id=":1726394726_11_0" index="0" speed="27.78" length="9.23" shape="1445.29,1580.69 1446.77,1583.90 1447.47,1586.38 1447.38,1588.14 1446.50,1589.17"/>
+ </edge>
+ <edge id=":1726394726_12" function="internal">
+ <lane id=":1726394726_12_0" index="0" speed="27.78" length="2.41" shape="1445.29,1580.69 1445.15,1582.17 1444.62,1582.93"/>
+ </edge>
+ <edge id=":1726394726_21" function="internal">
+ <lane id=":1726394726_21_0" index="0" speed="27.78" length="2.41" shape="1444.62,1582.93 1443.70,1582.96 1442.39,1582.26"/>
+ </edge>
+ <edge id=":1726394726_13" function="internal">
+ <lane id=":1726394726_13_0" index="0" speed="27.78" length="4.19" shape="1443.45,1583.32 1441.00,1586.71"/>
+ </edge>
+ <edge id=":1726394726_14" function="internal">
+ <lane id=":1726394726_14_0" index="0" speed="27.78" length="2.39" shape="1443.45,1583.32 1445.57,1582.21"/>
+ </edge>
+ <edge id=":1726394726_15" function="internal">
+ <lane id=":1726394726_15_0" index="0" speed="27.78" length="2.39" shape="1444.98,1586.24 1447.10,1585.13"/>
+ </edge>
+ <edge id=":1726394726_16" function="internal">
+ <lane id=":1726394726_16_0" index="0" speed="27.78" length="7.58" shape="1444.98,1586.24 1446.33,1586.11 1447.82,1587.05 1449.44,1589.06 1450.38,1590.69"/>
+ </edge>
+ <edge id=":1726394726_22" function="internal">
+ <lane id=":1726394726_22_0" index="0" speed="27.78" length="1.68" shape="1450.38,1590.69 1451.21,1592.15"/>
+ </edge>
+ <edge id=":1726394726_17" function="internal">
+ <lane id=":1726394726_17_0" index="0" speed="27.78" length="2.41" shape="1444.98,1586.24 1446.46,1586.40 1447.20,1586.94"/>
+ </edge>
+ <edge id=":1726394726_23" function="internal">
+ <lane id=":1726394726_23_0" index="0" speed="27.78" length="2.41" shape="1447.20,1586.94 1447.22,1587.86 1446.50,1589.17"/>
+ </edge>
+ <edge id=":1726394727_0" function="internal">
+ <lane id=":1726394727_0_0" index="0" speed="16.67" length="3.97" shape="1450.19,1604.66 1453.77,1602.95"/>
+ </edge>
+ <edge id=":1726394727_1" function="internal">
+ <lane id=":1726394727_1_0" index="0" speed="27.78" length="3.62" shape="1450.19,1604.66 1448.53,1601.44"/>
+ </edge>
+ <edge id=":1726394727_2" function="internal">
+ <lane id=":1726394727_2_0" index="0" speed="27.78" length="4.72" shape="1453.11,1603.13 1450.96,1598.93"/>
+ </edge>
+ <edge id=":1726394727_3" function="internal">
+ <lane id=":1726394727_3_0" index="0" speed="16.67" length="5.08" shape="1453.11,1603.13 1452.65,1601.82 1452.71,1600.67 1453.31,1599.69 1454.44,1598.89"/>
+ </edge>
+ <edge id=":1726394727_4" function="internal">
+ <lane id=":1726394727_4_0" index="0" speed="27.78" length="2.71" shape="1453.11,1603.13 1454.03,1601.73 1454.96,1601.26"/>
+ </edge>
+ <edge id=":1726394727_18" function="internal">
+ <lane id=":1726394727_18_0" index="0" speed="27.78" length="2.71" shape="1454.96,1601.26 1455.89,1601.72 1456.83,1603.10"/>
+ </edge>
+ <edge id=":1726394727_5" function="internal">
+ <lane id=":1726394727_5_0" index="0" speed="16.67" length="3.54" shape="1455.96,1601.82 1457.32,1601.14 1458.31,1600.70 1458.95,1600.51 1459.21,1600.55"/>
+ </edge>
+ <edge id=":1726394727_6" function="internal">
+ <lane id=":1726394727_6_0" index="0" speed="5.56" length="2.46" shape="1455.96,1601.82 1453.77,1602.95"/>
+ </edge>
+ <edge id=":1726394727_7" function="internal">
+ <lane id=":1726394727_7_0" index="0" speed="16.67" length="6.50" shape="1455.96,1601.82 1454.59,1602.18 1453.31,1601.82 1452.10,1600.74 1450.96,1598.93"/>
+ </edge>
+ <edge id=":1726394727_8" function="internal">
+ <lane id=":1726394727_8_0" index="0" speed="5.56" length="4.82" shape="1455.96,1601.82 1454.48,1601.65 1453.73,1601.11 1453.72,1600.19 1454.44,1598.89"/>
+ </edge>
+ <edge id=":1726394727_9" function="internal">
+ <lane id=":1726394727_9_0" index="0" speed="16.67" length="3.54" shape="1457.36,1596.96 1457.24,1597.20 1456.71,1597.61 1455.78,1598.17 1454.44,1598.89"/>
+ </edge>
+ <edge id=":1726394727_10" function="internal">
+ <lane id=":1726394727_10_0" index="0" speed="27.78" length="4.04" shape="1457.36,1596.96 1459.21,1600.55"/>
+ </edge>
+ <edge id=":1726394727_11" function="internal">
+ <lane id=":1726394727_11_0" index="0" speed="27.78" length="6.38" shape="1453.90,1597.43 1456.83,1603.10"/>
+ </edge>
+ <edge id=":1726394727_12" function="internal">
+ <lane id=":1726394727_12_0" index="0" speed="16.67" length="6.12" shape="1453.90,1597.43 1454.71,1599.40 1454.96,1600.97 1454.65,1602.15 1453.77,1602.95"/>
+ </edge>
+ <edge id=":1726394727_13" function="internal">
+ <lane id=":1726394727_13_0" index="0" speed="27.78" length="2.41" shape="1453.90,1597.43 1453.73,1598.91 1453.18,1599.65"/>
+ </edge>
+ <edge id=":1726394727_19" function="internal">
+ <lane id=":1726394727_19_0" index="0" speed="27.78" length="2.41" shape="1453.18,1599.65 1452.26,1599.66 1450.96,1598.93"/>
+ </edge>
+ <edge id=":1726394727_14" function="internal">
+ <lane id=":1726394727_14_0" index="0" speed="16.67" length="4.05" shape="1452.26,1600.01 1450.70,1600.79 1449.56,1601.28 1448.84,1601.50 1448.53,1601.44"/>
+ </edge>
+ <edge id=":1726394727_15" function="internal">
+ <lane id=":1726394727_15_0" index="0" speed="5.56" length="2.46" shape="1452.26,1600.01 1454.44,1598.89"/>
+ </edge>
+ <edge id=":1726394727_16" function="internal">
+ <lane id=":1726394727_16_0" index="0" speed="16.67" length="6.12" shape="1452.26,1600.01 1453.41,1599.76 1454.56,1600.19 1455.70,1601.30 1456.83,1603.10"/>
+ </edge>
+ <edge id=":1726394727_17" function="internal">
+ <lane id=":1726394727_17_0" index="0" speed="5.56" length="4.82" shape="1452.26,1600.01 1453.73,1600.18 1454.48,1600.72 1454.49,1601.65 1453.77,1602.95"/>
+ </edge>
+ <edge id=":1726394728_0" function="internal">
+ <lane id=":1726394728_0_0" index="0" speed="27.78" length="6.32" shape="1569.58,1832.09 1566.72,1826.46"/>
+ </edge>
+ <edge id=":1726394728_1" function="internal">
+ <lane id=":1726394728_1_0" index="0" speed="27.78" length="6.41" shape="1572.54,1830.64 1569.64,1824.92"/>
+ </edge>
+ <edge id=":1726394728_2" function="internal">
+ <lane id=":1726394728_2_0" index="0" speed="25.00" length="7.90" shape="1572.54,1830.64 1572.44,1829.07 1573.60,1827.30 1576.00,1825.34 1576.96,1824.77"/>
+ </edge>
+ <edge id=":1726394728_11" function="internal">
+ <lane id=":1726394728_11_0" index="0" speed="25.00" length="3.13" shape="1576.96,1824.77 1579.66,1823.18"/>
+ </edge>
+ <edge id=":1726394728_3" function="internal">
+ <lane id=":1726394728_3_0" index="0" speed="27.78" length="2.41" shape="1572.54,1830.64 1572.73,1829.16 1573.29,1828.43"/>
+ </edge>
+ <edge id=":1726394728_12" function="internal">
+ <lane id=":1726394728_12_0" index="0" speed="27.78" length="2.41" shape="1573.29,1828.43 1574.21,1828.43 1575.50,1829.18"/>
+ </edge>
+ <edge id=":1726394728_4" function="internal">
+ <lane id=":1726394728_4_0" index="0" speed="25.00" length="5.00" shape="1575.48,1821.85 1576.29,1822.97 1577.25,1823.57 1578.38,1823.64 1579.66,1823.18"/>
+ </edge>
+ <edge id=":1726394728_5" function="internal">
+ <lane id=":1726394728_5_0" index="0" speed="27.78" length="6.59" shape="1575.48,1821.85 1578.46,1827.73"/>
+ </edge>
+ <edge id=":1726394728_6" function="internal">
+ <lane id=":1726394728_6_0" index="0" speed="27.78" length="6.50" shape="1572.56,1823.39 1575.50,1829.18"/>
+ </edge>
+ <edge id=":1726394728_7" function="internal">
+ <lane id=":1726394728_7_0" index="0" speed="27.78" length="2.41" shape="1572.56,1823.39 1572.41,1824.87 1571.87,1825.62"/>
+ </edge>
+ <edge id=":1726394728_13" function="internal">
+ <lane id=":1726394728_13_0" index="0" speed="27.78" length="2.41" shape="1571.87,1825.62 1570.95,1825.63 1569.64,1824.92"/>
+ </edge>
+ <edge id=":1726394728_8" function="internal">
+ <lane id=":1726394728_8_0" index="0" speed="25.00" length="5.14" shape="1565.37,1830.76 1566.51,1829.93 1567.12,1828.93 1567.19,1827.78 1566.72,1826.46"/>
+ </edge>
+ <edge id=":1726394728_9" function="internal">
+ <lane id=":1726394728_9_0" index="0" speed="22.22" length="16.18" shape="1565.37,1830.76 1568.84,1828.91 1572.51,1826.96 1576.18,1825.02 1579.66,1823.18"/>
+ </edge>
+ <edge id=":1726394728_10" function="internal">
+ <lane id=":1726394728_10_0" index="0" speed="25.00" length="11.05" shape="1565.37,1830.76 1569.24,1828.93 1572.22,1828.06 1574.31,1828.14 1575.50,1829.18"/>
+ </edge>
+ <edge id=":1726394729_0" function="internal">
+ <lane id=":1726394729_0_0" index="0" speed="27.78" length="11.16" shape="1575.84,1843.59 1574.61,1840.63 1574.54,1838.30 1574.57,1835.93 1573.61,1832.82"/>
+ </edge>
+ <edge id=":1726394729_1" function="internal">
+ <lane id=":1726394729_1_0" index="0" speed="27.78" length="11.28" shape="1578.64,1841.84 1578.29,1840.11 1579.29,1838.25 1581.66,1836.25 1585.39,1834.12"/>
+ </edge>
+ <edge id=":1726394729_2" function="internal">
+ <lane id=":1726394729_2_0" index="0" speed="27.78" length="4.82" shape="1578.64,1841.84 1578.69,1840.35 1579.17,1839.57 1580.09,1839.48 1581.44,1840.09"/>
+ </edge>
+ <edge id=":1726394729_3" function="internal">
+ <lane id=":1726394729_3_0" index="0" speed="27.78" length="5.15" shape="1579.54,1829.91 1580.32,1831.03 1581.30,1831.62 1582.48,1831.67 1583.86,1831.20"/>
+ </edge>
+ <edge id=":1726394729_4" function="internal">
+ <lane id=":1726394729_4_0" index="0" speed="27.78" length="10.55" shape="1576.57,1831.37 1578.18,1833.69 1580.19,1834.93 1582.59,1835.07 1585.39,1834.12"/>
+ </edge>
+ <edge id=":1726394729_5" function="internal">
+ <lane id=":1726394729_5_0" index="0" speed="27.78" length="10.55" shape="1576.57,1831.37 1578.35,1833.80 1580.24,1834.95 1582.21,1836.06 1584.24,1838.35"/>
+ </edge>
+ <edge id=":1726394729_6" function="internal">
+ <lane id=":1726394729_6_0" index="0" speed="27.78" length="4.82" shape="1576.57,1831.37 1576.38,1832.84 1575.82,1833.58 1574.90,1833.57 1573.61,1832.82"/>
+ </edge>
+ <edge id=":1726394729_7" function="internal">
+ <lane id=":1726394729_7_0" index="0" speed="27.78" length="5.25" shape="1569.44,1838.75 1570.53,1837.94 1571.10,1836.92 1571.14,1835.70 1570.65,1834.28"/>
+ </edge>
+ <edge id=":1726394729_8" function="internal">
+ <lane id=":1726394729_8_0" index="0" speed="27.78" length="16.28" shape="1569.44,1838.75 1573.71,1836.49 1576.62,1834.92 1579.55,1833.38 1583.86,1831.20"/>
+ </edge>
+ <edge id=":1726394729_9" function="internal">
+ <lane id=":1726394729_9_0" index="0" speed="27.78" length="16.28" shape="1570.97,1841.67 1575.24,1839.41 1578.15,1837.84 1581.08,1836.30 1585.39,1834.12"/>
+ </edge>
+ <edge id=":1726394729_10" function="internal">
+ <lane id=":1726394729_10_0" index="0" speed="27.78" length="11.32" shape="1570.97,1841.67 1574.86,1839.88 1577.90,1839.02 1580.10,1839.09 1581.44,1840.09"/>
+ </edge>
+ <edge id=":1780219331_0" function="internal">
+ <lane id=":1780219331_0_0" index="0" speed="18.06" length="5.22" shape="819.49,1040.71 819.03,1039.40 819.12,1038.24 819.75,1037.22 820.93,1036.35"/>
+ </edge>
+ <edge id=":1780219331_1" function="internal">
+ <lane id=":1780219331_1_0" index="0" speed="27.78" length="11.03" shape="819.49,1040.71 817.95,1037.82 816.89,1035.84 815.84,1033.87 814.29,1030.98"/>
+ </edge>
+ <edge id=":1780219331_2" function="internal">
+ <lane id=":1780219331_2_0" index="0" speed="27.78" length="11.03" shape="822.40,1039.15 820.86,1036.26 819.81,1034.29 818.75,1032.31 817.20,1029.42"/>
+ </edge>
+ <edge id=":1780219331_3" function="internal">
+ <lane id=":1780219331_3_0" index="0" speed="27.78" length="11.04" shape="825.31,1037.60 823.77,1034.71 822.72,1032.73 821.66,1030.75 820.11,1027.86"/>
+ </edge>
+ <edge id=":1780219331_4" function="internal">
+ <lane id=":1780219331_4_0" index="0" speed="18.06" length="9.68" shape="825.31,1037.60 823.95,1034.57 823.34,1032.06 823.50,1030.05 824.42,1028.56"/>
+ </edge>
+ <edge id=":1780219331_5" function="internal">
+ <lane id=":1780219331_5_0" index="0" speed="8.33" length="7.90" shape="826.69,1030.95 820.93,1036.35"/>
+ </edge>
+ <edge id=":1780219331_6" function="internal">
+ <lane id=":1780219331_6_0" index="0" speed="18.06" length="8.70" shape="826.69,1030.95 825.06,1031.92 823.41,1031.73 821.76,1030.38 820.11,1027.86"/>
+ </edge>
+ <edge id=":1780219331_7" function="internal">
+ <lane id=":1780219331_7_0" index="0" speed="8.33" length="4.82" shape="826.69,1030.95 825.23,1031.20 824.36,1030.89 824.09,1030.01 824.42,1028.56"/>
+ </edge>
+ <edge id=":1780219331_8" function="internal">
+ <lane id=":1780219331_8_0" index="0" speed="18.06" length="4.70" shape="816.93,1034.78 816.59,1034.64 816.04,1033.96 815.27,1032.74 814.29,1030.98"/>
+ </edge>
+ <edge id=":1780219331_9" function="internal">
+ <lane id=":1780219331_9_0" index="0" speed="8.33" length="9.74" shape="816.93,1034.78 824.42,1028.56"/>
+ </edge>
+ <edge id=":1780219331_10" function="internal">
+ <lane id=":1780219331_10_0" index="0" speed="8.33" length="6.27" shape="816.93,1034.78 818.52,1033.68 819.72,1033.57 820.52,1034.46 820.93,1036.35"/>
+ </edge>
+ <edge id=":1780219332_0" function="internal">
+ <lane id=":1780219332_0_0" index="0" speed="6.94" length="5.00" shape="935.23,1166.25 934.43,1165.13 933.47,1164.54 932.34,1164.47 931.05,1164.93"/>
+ </edge>
+ <edge id=":1780219332_1" function="internal">
+ <lane id=":1780219332_1_0" index="0" speed="5.56" length="9.50" shape="935.23,1166.25 930.86,1157.81"/>
+ </edge>
+ <edge id=":1780219332_2" function="internal">
+ <lane id=":1780219332_2_0" index="0" speed="5.56" length="4.82" shape="935.23,1166.25 935.39,1164.77 935.94,1164.02 936.86,1164.01 938.16,1164.73"/>
+ </edge>
+ <edge id=":1780219332_3" function="internal">
+ <lane id=":1780219332_3_0" index="0" speed="5.56" length="9.50" shape="933.79,1156.29 938.16,1164.73"/>
+ </edge>
+ <edge id=":1780219332_4" function="internal">
+ <lane id=":1780219332_4_0" index="0" speed="6.94" length="10.32" shape="933.79,1156.29 934.72,1158.96 934.57,1161.29 933.35,1163.27 931.05,1164.93"/>
+ </edge>
+ <edge id=":1780219332_5" function="internal">
+ <lane id=":1780219332_5_0" index="0" speed="5.56" length="4.82" shape="933.79,1156.29 933.63,1157.77 933.08,1158.52 932.16,1158.53 930.86,1157.81"/>
+ </edge>
+ <edge id=":1780219332_6" function="internal">
+ <lane id=":1780219332_6_0" index="0" speed="6.94" length="5.01" shape="929.52,1162.00 930.64,1161.20 931.24,1160.23 931.31,1159.10 930.86,1157.81"/>
+ </edge>
+ <edge id=":1780219332_7" function="internal">
+ <lane id=":1780219332_7_0" index="0" speed="6.94" length="10.34" shape="929.52,1162.00 932.19,1161.06 934.52,1161.20 936.51,1162.42 938.16,1164.73"/>
+ </edge>
+ <edge id=":1780219332_8" function="internal">
+ <lane id=":1780219332_8_0" index="0" speed="8.33" length="4.82" shape="929.52,1162.00 931.00,1162.16 931.75,1162.70 931.76,1163.62 931.05,1164.93"/>
+ </edge>
+ <edge id=":1780219335_0" function="internal">
+ <lane id=":1780219335_0_0" index="0" speed="8.33" length="5.04" shape="861.64,1145.84 860.83,1144.74 859.85,1144.17 858.71,1144.11 857.39,1144.57"/>
+ </edge>
+ <edge id=":1780219335_1" function="internal">
+ <lane id=":1780219335_1_0" index="0" speed="8.33" length="9.49" shape="861.64,1145.84 857.20,1137.45"/>
+ </edge>
+ <edge id=":1780219335_2" function="internal">
+ <lane id=":1780219335_2_0" index="0" speed="8.33" length="4.82" shape="861.64,1145.84 861.78,1144.36 862.32,1143.61 863.24,1143.59 864.55,1144.29"/>
+ </edge>
+ <edge id=":1780219335_3" function="internal">
+ <lane id=":1780219335_3_0" index="0" speed="8.33" length="9.47" shape="860.12,1135.92 864.55,1144.29"/>
+ </edge>
+ <edge id=":1780219335_4" function="internal">
+ <lane id=":1780219335_4_0" index="0" speed="8.33" length="10.36" shape="860.12,1135.92 861.07,1138.60 860.94,1140.93 859.71,1142.92 857.39,1144.57"/>
+ </edge>
+ <edge id=":1780219335_5" function="internal">
+ <lane id=":1780219335_5_0" index="0" speed="8.33" length="4.82" shape="860.12,1135.92 859.97,1137.40 859.43,1138.15 858.51,1138.17 857.20,1137.45"/>
+ </edge>
+ <edge id=":1780219335_6" function="internal">
+ <lane id=":1780219335_6_0" index="0" speed="8.33" length="5.01" shape="855.88,1141.64 857.00,1140.84 857.59,1139.88 857.66,1138.75 857.20,1137.45"/>
+ </edge>
+ <edge id=":1780219335_7" function="internal">
+ <lane id=":1780219335_7_0" index="0" speed="8.33" length="10.31" shape="855.88,1141.64 858.56,1140.70 860.89,1140.83 862.89,1142.03 864.55,1144.29"/>
+ </edge>
+ <edge id=":1780219335_8" function="internal">
+ <lane id=":1780219335_8_0" index="0" speed="8.33" length="4.82" shape="855.88,1141.64 857.36,1141.80 858.10,1142.35 858.12,1143.27 857.39,1144.57"/>
+ </edge>
+ <edge id=":1780219341_0" function="internal">
+ <lane id=":1780219341_0_0" index="0" speed="15.28" length="3.86" shape="908.85,1227.82 908.25,1226.49 907.64,1225.64 907.02,1225.28 906.39,1225.39"/>
+ </edge>
+ <edge id=":1780219341_1" function="internal">
+ <lane id=":1780219341_1_0" index="0" speed="8.33" length="6.61" shape="908.85,1227.82 906.17,1221.77"/>
+ </edge>
+ <edge id=":1780219341_2" function="internal">
+ <lane id=":1780219341_2_0" index="0" speed="8.33" length="4.82" shape="908.85,1227.82 909.18,1226.37 909.81,1225.69 910.72,1225.79 911.94,1226.65"/>
+ </edge>
+ <edge id=":1780219341_3" function="internal">
+ <lane id=":1780219341_3_0" index="0" speed="15.28" length="5.87" shape="913.30,1221.51 912.19,1222.41 911.59,1223.56 911.51,1224.98 911.94,1226.65"/>
+ </edge>
+ <edge id=":1780219341_4" function="internal">
+ <lane id=":1780219341_4_0" index="0" speed="22.22" length="7.93" shape="913.30,1221.51 906.39,1225.39"/>
+ </edge>
+ <edge id=":1780219341_5" function="internal">
+ <lane id=":1780219341_5_0" index="0" speed="15.28" length="7.94" shape="913.30,1221.51 910.75,1222.71 908.71,1223.16 907.18,1222.84 906.17,1221.77"/>
+ </edge>
+ <edge id=":1780219341_6" function="internal">
+ <lane id=":1780219341_6_0" index="0" speed="8.33" length="7.00" shape="909.10,1220.25 911.94,1226.65"/>
+ </edge>
+ <edge id=":1780219341_7" function="internal">
+ <lane id=":1780219341_7_0" index="0" speed="15.28" length="6.50" shape="909.10,1220.25 909.48,1221.63 909.15,1222.94 908.12,1224.20 906.39,1225.39"/>
+ </edge>
+ <edge id=":1780219341_8" function="internal">
+ <lane id=":1780219341_8_0" index="0" speed="8.33" length="4.82" shape="909.10,1220.25 908.94,1221.73 908.40,1222.48 907.47,1222.49 906.17,1221.77"/>
+ </edge>
+ <edge id=":1780219342_0" function="internal">
+ <lane id=":1780219342_0_0" index="0" speed="18.06" length="9.85" shape="839.95,1017.14 838.64,1019.21 838.09,1021.44 838.29,1023.82 839.26,1026.35"/>
+ </edge>
+ <edge id=":1780219342_1" function="internal">
+ <lane id=":1780219342_1_0" index="0" speed="8.33" length="15.83" shape="839.95,1017.14 837.40,1020.06 834.67,1023.03 831.87,1025.94 829.10,1028.66"/>
+ </edge>
+ <edge id=":1780219342_2" function="internal">
+ <lane id=":1780219342_2_0" index="0" speed="8.33" length="4.82" shape="839.95,1017.14 838.52,1017.55 837.63,1017.33 837.27,1016.48 837.44,1015.00"/>
+ </edge>
+ <edge id=":1780219342_3" function="internal">
+ <lane id=":1780219342_3_0" index="0" speed="18.06" length="5.56" shape="833.14,1014.51 834.08,1015.84 835.11,1016.36 836.23,1016.08 837.44,1015.00"/>
+ </edge>
+ <edge id=":1780219342_4" function="internal">
+ <lane id=":1780219342_4_0" index="0" speed="27.78" length="13.33" shape="833.14,1014.51 834.96,1018.03 836.20,1020.43 837.45,1022.84 839.26,1026.35"/>
+ </edge>
+ <edge id=":1780219342_5" function="internal">
+ <lane id=":1780219342_5_0" index="0" speed="27.78" length="13.33" shape="830.21,1016.03 832.03,1019.54 833.27,1021.95 834.51,1024.35 836.33,1027.87"/>
+ </edge>
+ <edge id=":1780219342_6" function="internal">
+ <lane id=":1780219342_6_0" index="0" speed="27.78" length="13.33" shape="827.28,1017.54 829.10,1021.06 830.34,1023.46 831.58,1025.87 833.40,1029.38"/>
+ </edge>
+ <edge id=":1780219342_7" function="internal">
+ <lane id=":1780219342_7_0" index="0" speed="18.06" length="11.84" shape="827.28,1017.54 829.06,1021.47 829.96,1024.63 829.97,1027.02 829.10,1028.66"/>
+ </edge>
+ <edge id=":1780219342_8" function="internal">
+ <lane id=":1780219342_8_0" index="0" speed="8.33" length="15.48" shape="826.83,1026.27 829.56,1023.59 832.28,1020.77 834.93,1017.88 837.44,1015.00"/>
+ </edge>
+ <edge id=":1780219342_9" function="internal">
+ <lane id=":1780219342_9_0" index="0" speed="18.06" length="8.75" shape="826.83,1026.27 828.49,1025.27 830.13,1025.46 831.77,1026.83 833.40,1029.38"/>
+ </edge>
+ <edge id=":1780219342_10" function="internal">
+ <lane id=":1780219342_10_0" index="0" speed="8.33" length="4.82" shape="826.83,1026.27 828.29,1026.01 829.16,1026.33 829.43,1027.21 829.10,1028.66"/>
+ </edge>
+ <edge id=":1780219343_0" function="internal">
+ <lane id=":1780219343_0_0" index="0" speed="18.06" length="5.10" shape="897.01,1186.26 896.18,1185.12 895.19,1184.52 894.04,1184.45 892.73,1184.91"/>
+ </edge>
+ <edge id=":1780219343_1" function="internal">
+ <lane id=":1780219343_1_0" index="0" speed="27.78" length="9.59" shape="897.01,1186.26 892.50,1177.79"/>
+ </edge>
+ <edge id=":1780219343_2" function="internal">
+ <lane id=":1780219343_2_0" index="0" speed="27.78" length="9.59" shape="899.92,1184.70 895.42,1176.24"/>
+ </edge>
+ <edge id=":1780219343_3" function="internal">
+ <lane id=":1780219343_3_0" index="0" speed="27.78" length="9.59" shape="902.83,1183.15 898.33,1174.69"/>
+ </edge>
+ <edge id=":1780219343_4" function="internal">
+ <lane id=":1780219343_4_0" index="0" speed="18.06" length="7.87" shape="902.83,1183.15 901.69,1180.59 901.27,1178.54 901.58,1177.03 902.61,1176.04"/>
+ </edge>
+ <edge id=":1780219343_5" function="internal">
+ <lane id=":1780219343_5_0" index="0" speed="8.33" length="12.86" shape="904.13,1178.97 901.10,1180.54 898.43,1181.94 895.76,1183.33 892.73,1184.91"/>
+ </edge>
+ <edge id=":1780219343_6" function="internal">
+ <lane id=":1780219343_6_0" index="0" speed="18.06" length="7.94" shape="904.13,1178.97 902.73,1179.24 901.30,1178.62 899.83,1177.10 898.33,1174.69"/>
+ </edge>
+ <edge id=":1780219343_7" function="internal">
+ <lane id=":1780219343_7_0" index="0" speed="8.33" length="4.82" shape="904.13,1178.97 902.65,1178.81 901.91,1178.26 901.89,1177.34 902.61,1176.04"/>
+ </edge>
+ <edge id=":1780219343_8" function="internal">
+ <lane id=":1780219343_8_0" index="0" speed="18.06" length="5.01" shape="891.21,1181.98 892.32,1181.18 892.91,1180.22 892.97,1179.09 892.50,1177.79"/>
+ </edge>
+ <edge id=":1780219343_9" function="internal">
+ <lane id=":1780219343_9_0" index="0" speed="8.33" length="12.86" shape="891.21,1181.98 894.23,1180.40 896.91,1179.01 899.58,1177.62 902.61,1176.04"/>
+ </edge>
+ <edge id=":1780219343_10" function="internal">
+ <lane id=":1780219343_10_0" index="0" speed="8.33" length="4.82" shape="891.21,1181.98 892.68,1182.14 893.43,1182.68 893.45,1183.60 892.73,1184.91"/>
+ </edge>
+ <edge id=":1780219344_0" function="internal">
+ <lane id=":1780219344_0_0" index="0" speed="8.33" length="10.03" shape="852.81,1146.93 850.17,1148.29 848.36,1149.23 846.54,1150.17 843.91,1151.55"/>
+ </edge>
+ <edge id=":1780219344_1" function="internal">
+ <lane id=":1780219344_1_0" index="0" speed="8.33" length="12.68" shape="852.81,1146.93 849.31,1148.16 846.72,1147.77 845.02,1145.76 844.24,1142.13"/>
+ </edge>
+ <edge id=":1780219344_2" function="internal">
+ <lane id=":1780219344_2_0" index="0" speed="8.33" length="4.82" shape="852.81,1146.93 851.34,1146.76 850.59,1146.22 850.58,1145.30 851.30,1144.00"/>
+ </edge>
+ <edge id=":1780219344_3" function="internal">
+ <lane id=":1780219344_3_0" index="0" speed="8.33" length="5.58" shape="847.53,1141.89 847.87,1143.48 848.62,1144.37 849.76,1144.54 851.30,1144.00"/>
+ </edge>
+ <edge id=":1780219344_4" function="internal">
+ <lane id=":1780219344_4_0" index="0" speed="8.33" length="10.92" shape="847.53,1141.89 847.51,1145.29 846.90,1148.04 845.70,1150.12 843.91,1151.55"/>
+ </edge>
+ <edge id=":1780219344_5" function="internal">
+ <lane id=":1780219344_5_0" index="0" speed="8.33" length="4.82" shape="847.53,1141.89 846.80,1143.18 846.01,1143.66 845.15,1143.31 844.24,1142.13"/>
+ </edge>
+ <edge id=":1780219344_6" function="internal">
+ <lane id=":1780219344_6_0" index="0" speed="8.33" length="7.09" shape="842.38,1148.63 843.34,1147.78 843.97,1146.41 844.27,1144.53 844.24,1142.13"/>
+ </edge>
+ <edge id=":1780219344_7" function="internal">
+ <lane id=":1780219344_7_0" index="0" speed="8.33" length="10.06" shape="842.38,1148.63 845.01,1147.25 846.83,1146.30 848.66,1145.36 851.30,1144.00"/>
+ </edge>
+ <edge id=":1780219344_8" function="internal">
+ <lane id=":1780219344_8_0" index="0" speed="8.33" length="4.82" shape="842.38,1148.63 843.86,1148.78 844.60,1149.32 844.62,1150.24 843.91,1151.55"/>
+ </edge>
+ <edge id=":1780219345_0" function="internal">
+ <lane id=":1780219345_0_0" index="0" speed="15.28" length="8.80" shape="794.26,1177.57 791.51,1179.13 789.49,1180.57 788.21,1181.89 787.67,1183.10"/>
+ </edge>
+ <edge id=":1780219345_1" function="internal">
+ <lane id=":1780219345_1_0" index="0" speed="15.28" length="14.60" shape="794.26,1177.57 790.05,1179.12 787.28,1178.66 785.94,1176.18 786.05,1171.70"/>
+ </edge>
+ <edge id=":1780219345_2" function="internal">
+ <lane id=":1780219345_2_0" index="0" speed="8.33" length="4.82" shape="794.26,1177.57 792.78,1177.40 792.04,1176.86 792.02,1175.94 792.74,1174.64"/>
+ </edge>
+ <edge id=":1780219345_3" function="internal">
+ <lane id=":1780219345_3_0" index="0" speed="15.28" length="6.09" shape="789.32,1172.19 789.27,1174.06 789.83,1175.09 790.98,1175.28 792.74,1174.64"/>
+ </edge>
+ <edge id=":1780219345_4" function="internal">
+ <lane id=":1780219345_4_0" index="0" speed="22.22" length="11.03" shape="789.32,1172.19 788.85,1175.28 788.49,1177.64 788.14,1180.00 787.67,1183.10"/>
+ </edge>
+ <edge id=":1780219345_5" function="internal">
+ <lane id=":1780219345_5_0" index="0" speed="22.22" length="2.41" shape="789.32,1172.19 788.32,1173.29 787.44,1173.57"/>
+ </edge>
+ <edge id=":1780219345_9" function="internal">
+ <lane id=":1780219345_9_0" index="0" speed="22.22" length="2.41" shape="787.44,1173.57 786.68,1173.04 786.05,1171.70"/>
+ </edge>
+ <edge id=":1780219345_6" function="internal">
+ <lane id=":1780219345_6_0" index="0" speed="22.22" length="11.03" shape="784.41,1182.60 784.88,1179.51 785.23,1177.15 785.59,1174.79 786.05,1171.70"/>
+ </edge>
+ <edge id=":1780219345_7" function="internal">
+ <lane id=":1780219345_7_0" index="0" speed="15.28" length="6.94" shape="784.41,1182.60 785.15,1180.62 786.79,1178.64 788.55,1177.24"/>
+ </edge>
+ <edge id=":1780219345_10" function="internal">
+ <lane id=":1780219345_10_0" index="0" speed="15.28" length="4.94" shape="788.55,1177.24 789.32,1176.64 792.74,1174.64"/>
+ </edge>
+ <edge id=":1780219345_8" function="internal">
+ <lane id=":1780219345_8_0" index="0" speed="22.22" length="2.41" shape="784.41,1182.60 785.41,1181.50 786.29,1181.22"/>
+ </edge>
+ <edge id=":1780219345_11" function="internal">
+ <lane id=":1780219345_11_0" index="0" speed="22.22" length="2.41" shape="786.29,1181.22 787.04,1181.75 787.67,1183.10"/>
+ </edge>
+ <edge id=":1780219348_0" function="internal">
+ <lane id=":1780219348_0_0" index="0" speed="8.33" length="7.20" shape="842.92,1124.65 847.37,1118.98"/>
+ </edge>
+ <edge id=":1780219348_1" function="internal">
+ <lane id=":1780219348_1_0" index="0" speed="8.33" length="27.18" shape="842.92,1124.65 842.82,1115.06 844.43,1111.39 847.73,1113.65 852.73,1121.84"/>
+ </edge>
+ <edge id=":1780219348_2" function="internal">
+ <lane id=":1780219348_2_0" index="0" speed="8.33" length="4.82" shape="842.92,1124.65 843.65,1123.35 844.44,1122.88 845.29,1123.23 846.21,1124.40"/>
+ </edge>
+ <edge id=":1780219348_3" function="internal">
+ <lane id=":1780219348_3_0" index="0" speed="8.33" length="9.97" shape="849.81,1123.37 847.97,1120.37 846.76,1119.54 846.18,1120.88 846.21,1124.40"/>
+ </edge>
+ <edge id=":1780219348_4" function="internal">
+ <lane id=":1780219348_4_0" index="0" speed="8.33" length="5.02" shape="849.81,1123.37 847.37,1118.98"/>
+ </edge>
+ <edge id=":1780219348_5" function="internal">
+ <lane id=":1780219348_5_0" index="0" speed="8.33" length="4.82" shape="849.81,1123.37 849.96,1121.89 850.50,1121.14 851.42,1121.12 852.73,1121.84"/>
+ </edge>
+ <edge id=":1780219348_6" function="internal">
+ <lane id=":1780219348_6_0" index="0" speed="8.33" length="4.99" shape="850.30,1117.48 852.73,1121.84"/>
+ </edge>
+ <edge id=":1780219348_7" function="internal">
+ <lane id=":1780219348_7_0" index="0" speed="8.33" length="8.04" shape="850.30,1117.48 846.21,1124.40"/>
+ </edge>
+ <edge id=":1780219348_8" function="internal">
+ <lane id=":1780219348_8_0" index="0" speed="8.33" length="4.82" shape="850.30,1117.48 850.13,1118.96 849.59,1119.70 848.66,1119.71 847.37,1118.98"/>
+ </edge>
+ <edge id=":1780219352_0" function="internal">
+ <lane id=":1780219352_0_0" index="0" speed="18.06" length="5.04" shape="917.95,1171.76 916.83,1172.57 916.24,1173.54 916.17,1174.67 916.62,1175.98"/>
+ </edge>
+ <edge id=":1780219352_1" function="internal">
+ <lane id=":1780219352_1_0" index="0" speed="8.33" length="12.82" shape="917.95,1171.76 914.93,1173.34 912.27,1174.73 909.61,1176.11 906.58,1177.69"/>
+ </edge>
+ <edge id=":1780219352_2" function="internal">
+ <lane id=":1780219352_2_0" index="0" speed="8.33" length="4.82" shape="917.95,1171.76 916.47,1171.60 915.73,1171.06 915.71,1170.14 916.43,1168.84"/>
+ </edge>
+ <edge id=":1780219352_3" function="internal">
+ <lane id=":1780219352_3_0" index="0" speed="18.06" length="5.00" shape="912.24,1167.51 913.04,1168.63 914.00,1169.22 915.13,1169.29 916.43,1168.84"/>
+ </edge>
+ <edge id=":1780219352_4" function="internal">
+ <lane id=":1780219352_4_0" index="0" speed="27.78" length="9.53" shape="912.24,1167.51 916.62,1175.98"/>
+ </edge>
+ <edge id=":1780219352_5" function="internal">
+ <lane id=":1780219352_5_0" index="0" speed="27.78" length="9.53" shape="909.31,1169.03 913.69,1177.50"/>
+ </edge>
+ <edge id=":1780219352_6" function="internal">
+ <lane id=":1780219352_6_0" index="0" speed="27.78" length="9.53" shape="906.38,1170.54 910.76,1179.01"/>
+ </edge>
+ <edge id=":1780219352_7" function="internal">
+ <lane id=":1780219352_7_0" index="0" speed="18.06" length="7.88" shape="906.38,1170.54 907.50,1173.13 907.91,1175.19 907.60,1176.71 906.58,1177.69"/>
+ </edge>
+ <edge id=":1780219352_8" function="internal">
+ <lane id=":1780219352_8_0" index="0" speed="8.33" length="12.82" shape="905.06,1174.76 908.08,1173.19 910.74,1171.80 913.40,1170.41 916.43,1168.84"/>
+ </edge>
+ <edge id=":1780219352_9" function="internal">
+ <lane id=":1780219352_9_0" index="0" speed="18.06" length="7.85" shape="905.06,1174.76 906.45,1174.49 907.86,1175.11 909.30,1176.61 910.76,1179.01"/>
+ </edge>
+ <edge id=":1780219352_10" function="internal">
+ <lane id=":1780219352_10_0" index="0" speed="8.33" length="4.82" shape="905.06,1174.76 906.54,1174.92 907.28,1175.46 907.30,1176.39 906.58,1177.69"/>
+ </edge>
+ <edge id=":1780219353_0" function="internal">
+ <lane id=":1780219353_0_0" index="0" speed="18.06" length="5.05" shape="903.64,1216.89 902.83,1215.75 901.86,1215.17 900.73,1215.13 899.43,1215.65"/>
+ </edge>
+ <edge id=":1780219353_1" function="internal">
+ <lane id=":1780219353_1_0" index="0" speed="8.33" length="16.34" shape="903.64,1216.89 901.81,1213.37 899.87,1209.64 897.91,1205.91 896.07,1202.40"/>
+ </edge>
+ <edge id=":1780219353_2" function="internal">
+ <lane id=":1780219353_2_0" index="0" speed="18.06" length="13.02" shape="903.64,1216.89 902.00,1212.90 901.58,1209.63 902.37,1207.07 904.39,1205.22"/>
+ </edge>
+ <edge id=":1780219353_3" function="internal">
+ <lane id=":1780219353_3_0" index="0" speed="8.33" length="4.82" shape="903.64,1216.89 903.80,1215.41 904.34,1214.66 905.27,1214.65 906.57,1215.37"/>
+ </edge>
+ <edge id=":1780219353_4" function="internal">
+ <lane id=":1780219353_4_0" index="0" speed="18.06" length="5.14" shape="907.66,1210.95 906.61,1211.78 906.08,1212.80 906.07,1213.99 906.57,1215.37"/>
+ </edge>
+ <edge id=":1780219353_5" function="internal">
+ <lane id=":1780219353_5_0" index="0" speed="27.78" length="9.47" shape="907.66,1210.95 899.43,1215.65"/>
+ </edge>
+ <edge id=":1780219353_6" function="internal">
+ <lane id=":1780219353_6_0" index="0" speed="27.78" length="9.47" shape="906.02,1208.08 897.80,1212.78"/>
+ </edge>
+ <edge id=":1780219353_7" function="internal">
+ <lane id=":1780219353_7_0" index="0" speed="18.06" length="9.68" shape="906.02,1208.08 903.39,1208.87 900.86,1208.19 898.42,1206.03 897.85,1205.15"/>
+ </edge>
+ <edge id=":1780219353_18" function="internal">
+ <lane id=":1780219353_18_0" index="0" speed="18.06" length="3.27" shape="897.85,1205.15 896.07,1202.40"/>
+ </edge>
+ <edge id=":1780219353_8" function="internal">
+ <lane id=":1780219353_8_0" index="0" speed="27.78" length="2.41" shape="906.02,1208.08 904.54,1207.98 903.77,1207.47"/>
+ </edge>
+ <edge id=":1780219353_19" function="internal">
+ <lane id=":1780219353_19_0" index="0" speed="27.78" length="2.41" shape="903.77,1207.47 903.72,1206.55 904.39,1205.22"/>
+ </edge>
+ <edge id=":1780219353_9" function="internal">
+ <lane id=":1780219353_9_0" index="0" speed="18.06" length="4.63" shape="898.99,1200.87 899.78,1202.01 900.67,1202.63 901.66,1202.75 902.75,1202.35"/>
+ </edge>
+ <edge id=":1780219353_10" function="internal">
+ <lane id=":1780219353_10_0" index="0" speed="8.33" length="16.36" shape="898.99,1200.87 900.84,1204.37 902.79,1208.11 904.74,1211.85 906.57,1215.37"/>
+ </edge>
+ <edge id=":1780219353_11" function="internal">
+ <lane id=":1780219353_11_0" index="0" speed="18.06" length="13.42" shape="898.99,1200.87 900.62,1204.85 900.97,1208.16 900.02,1210.81 897.80,1212.78"/>
+ </edge>
+ <edge id=":1780219353_12" function="internal">
+ <lane id=":1780219353_12_0" index="0" speed="8.33" length="4.82" shape="898.99,1200.87 898.84,1202.35 898.30,1203.09 897.38,1203.11 896.07,1202.40"/>
+ </edge>
+ <edge id=":1780219353_13" function="internal">
+ <lane id=":1780219353_13_0" index="0" speed="18.06" length="5.54" shape="894.52,1207.05 895.77,1206.10 896.45,1205.01 896.55,1203.78 896.07,1202.40"/>
+ </edge>
+ <edge id=":1780219353_14" function="internal">
+ <lane id=":1780219353_14_0" index="0" speed="27.78" length="9.47" shape="894.52,1207.05 902.75,1202.35"/>
+ </edge>
+ <edge id=":1780219353_15" function="internal">
+ <lane id=":1780219353_15_0" index="0" speed="27.78" length="9.47" shape="896.16,1209.91 904.39,1205.22"/>
+ </edge>
+ <edge id=":1780219353_16" function="internal">
+ <lane id=":1780219353_16_0" index="0" speed="18.06" length="10.07" shape="896.16,1209.91 899.00,1209.00 901.69,1209.61 904.21,1211.73 904.77,1212.60"/>
+ </edge>
+ <edge id=":1780219353_20" function="internal">
+ <lane id=":1780219353_20_0" index="0" speed="18.06" length="3.30" shape="904.77,1212.60 906.57,1215.37"/>
+ </edge>
+ <edge id=":1780219353_17" function="internal">
+ <lane id=":1780219353_17_0" index="0" speed="27.78" length="2.41" shape="896.16,1209.91 897.64,1210.02 898.41,1210.53"/>
+ </edge>
+ <edge id=":1780219353_21" function="internal">
+ <lane id=":1780219353_21_0" index="0" speed="27.78" length="2.41" shape="898.41,1210.53 898.46,1211.45 897.80,1212.78"/>
+ </edge>
+ <edge id=":1780219355_0" function="internal">
+ <lane id=":1780219355_0_0" index="0" speed="15.28" length="5.65" shape="795.96,1152.51 794.46,1151.77 793.30,1151.82 792.49,1152.64 792.02,1154.25"/>
+ </edge>
+ <edge id=":1780219355_1" function="internal">
+ <lane id=":1780219355_1_0" index="0" speed="15.28" length="11.06" shape="795.96,1152.51 793.21,1150.35 791.35,1148.16 790.37,1145.94 790.27,1143.68"/>
+ </edge>
+ <edge id=":1780219355_2" function="internal">
+ <lane id=":1780219355_2_0" index="0" speed="8.33" length="4.82" shape="795.96,1152.51 795.39,1151.13 795.51,1150.22 796.31,1149.76 797.79,1149.76"/>
+ </edge>
+ <edge id=":1780219355_3" function="internal">
+ <lane id=":1780219355_3_0" index="0" speed="15.28" length="7.35" shape="793.53,1144.17 793.66,1145.45 794.41,1146.81 795.79,1148.25 797.79,1149.76"/>
+ </edge>
+ <edge id=":1780219355_4" function="internal">
+ <lane id=":1780219355_4_0" index="0" speed="22.22" length="10.19" shape="793.53,1144.17 793.09,1147.14 792.77,1149.21 792.46,1151.28 792.02,1154.25"/>
+ </edge>
+ <edge id=":1780219355_5" function="internal">
+ <lane id=":1780219355_5_0" index="0" speed="22.22" length="2.41" shape="793.53,1144.17 792.53,1145.27 791.65,1145.56"/>
+ </edge>
+ <edge id=":1780219355_9" function="internal">
+ <lane id=":1780219355_9_0" index="0" speed="22.22" length="2.41" shape="791.65,1145.56 790.90,1145.03 790.27,1143.68"/>
+ </edge>
+ <edge id=":1780219355_6" function="internal">
+ <lane id=":1780219355_6_0" index="0" speed="22.22" length="10.19" shape="788.75,1153.75 789.20,1150.79 789.51,1148.72 789.82,1146.64 790.27,1143.68"/>
+ </edge>
+ <edge id=":1780219355_7" function="internal">
+ <lane id=":1780219355_7_0" index="0" speed="15.28" length="7.72" shape="788.75,1153.75 789.83,1150.08 791.70,1148.19 792.93,1148.14"/>
+ </edge>
+ <edge id=":1780219355_10" function="internal">
+ <lane id=":1780219355_10_0" index="0" speed="15.28" length="5.25" shape="792.93,1148.14 794.35,1148.09 797.79,1149.76"/>
+ </edge>
+ <edge id=":1780219355_8" function="internal">
+ <lane id=":1780219355_8_0" index="0" speed="22.22" length="2.41" shape="788.75,1153.75 789.75,1152.65 790.63,1152.37"/>
+ </edge>
+ <edge id=":1780219355_11" function="internal">
+ <lane id=":1780219355_11_0" index="0" speed="22.22" length="2.41" shape="790.63,1152.37 791.38,1152.90 792.02,1154.25"/>
+ </edge>
+ <edge id=":1780219359_0" function="internal">
+ <lane id=":1780219359_0_0" index="0" speed="18.06" length="5.05" shape="925.06,1232.66 924.27,1231.51 923.31,1230.91 922.18,1230.86 920.88,1231.35"/>
+ </edge>
+ <edge id=":1780219359_1" function="internal">
+ <lane id=":1780219359_1_0" index="0" speed="27.78" length="9.73" shape="925.06,1232.66 920.72,1223.95"/>
+ </edge>
+ <edge id=":1780219359_2" function="internal">
+ <lane id=":1780219359_2_0" index="0" speed="27.78" length="9.73" shape="928.02,1231.19 923.68,1222.47"/>
+ </edge>
+ <edge id=":1780219359_3" function="internal">
+ <lane id=":1780219359_3_0" index="0" speed="18.06" length="8.11" shape="928.02,1231.19 926.91,1228.52 926.51,1226.39 926.83,1224.82 927.86,1223.80"/>
+ </edge>
+ <edge id=":1780219359_4" function="internal">
+ <lane id=":1780219359_4_0" index="0" speed="8.33" length="9.72" shape="929.42,1226.70 920.88,1231.35"/>
+ </edge>
+ <edge id=":1780219359_5" function="internal">
+ <lane id=":1780219359_5_0" index="0" speed="18.06" length="7.94" shape="929.42,1226.70 927.99,1227.02 926.55,1226.42 925.12,1224.90 923.68,1222.47"/>
+ </edge>
+ <edge id=":1780219359_6" function="internal">
+ <lane id=":1780219359_6_0" index="0" speed="8.33" length="4.82" shape="929.42,1226.70 927.94,1226.56 927.19,1226.03 927.16,1225.11 927.86,1223.80"/>
+ </edge>
+ <edge id=":1780219359_7" function="internal">
+ <lane id=":1780219359_7_0" index="0" speed="18.06" length="5.34" shape="919.30,1228.45 920.47,1227.58 921.10,1226.53 921.18,1225.32 920.72,1223.95"/>
+ </edge>
+ <edge id=":1780219359_8" function="internal">
+ <lane id=":1780219359_8_0" index="0" speed="8.33" length="9.74" shape="919.30,1228.45 927.86,1223.80"/>
+ </edge>
+ <edge id=":1780219359_9" function="internal">
+ <lane id=":1780219359_9_0" index="0" speed="8.33" length="4.82" shape="919.30,1228.45 920.78,1228.58 921.53,1229.11 921.57,1230.03 920.88,1231.35"/>
+ </edge>
+ <edge id=":1780219360_0" function="internal">
+ <lane id=":1780219360_0_0" index="0" speed="8.33" length="6.50" shape="894.19,1198.84 890.60,1193.42"/>
+ </edge>
+ <edge id=":1780219360_1" function="internal">
+ <lane id=":1780219360_1_0" index="0" speed="15.28" length="6.95" shape="894.19,1198.84 893.84,1197.46 894.26,1196.11 895.43,1194.77 897.37,1193.47"/>
+ </edge>
+ <edge id=":1780219360_2" function="internal">
+ <lane id=":1780219360_2_0" index="0" speed="8.33" length="4.82" shape="894.19,1198.84 894.35,1197.36 894.88,1196.61 895.81,1196.59 897.11,1197.30"/>
+ </edge>
+ <edge id=":1780219360_3" function="internal">
+ <lane id=":1780219360_3_0" index="0" speed="15.28" length="5.07" shape="893.19,1191.37 894.37,1192.65 895.46,1193.43 896.46,1193.70 897.37,1193.47"/>
+ </edge>
+ <edge id=":1780219360_4" function="internal">
+ <lane id=":1780219360_4_0" index="0" speed="8.33" length="7.11" shape="893.19,1191.37 897.11,1197.30"/>
+ </edge>
+ <edge id=":1780219360_5" function="internal">
+ <lane id=":1780219360_5_0" index="0" speed="8.33" length="4.82" shape="893.19,1191.37 893.31,1192.85 892.92,1193.68 892.02,1193.87 890.60,1193.42"/>
+ </edge>
+ <edge id=":1780219360_6" function="internal">
+ <lane id=":1780219360_6_0" index="0" speed="15.28" length="5.21" shape="889.76,1197.72 890.92,1196.83 891.45,1195.82 891.34,1194.68 890.60,1193.42"/>
+ </edge>
+ <edge id=":1780219360_7" function="internal">
+ <lane id=":1780219360_7_0" index="0" speed="22.22" length="8.72" shape="889.76,1197.72 897.37,1193.47"/>
+ </edge>
+ <edge id=":1780219360_8" function="internal">
+ <lane id=":1780219360_8_0" index="0" speed="15.28" length="8.16" shape="889.76,1197.72 892.41,1196.47 894.52,1195.98 896.09,1196.26 897.11,1197.30"/>
+ </edge>
+ <edge id=":1780219361_0" function="internal">
+ <lane id=":1780219361_0_0" index="0" speed="18.06" length="5.08" shape="940.01,1221.06 938.89,1221.87 938.30,1222.85 938.23,1224.00 938.70,1225.32"/>
+ </edge>
+ <edge id=":1780219361_1" function="internal">
+ <lane id=":1780219361_1_0" index="0" speed="8.33" length="9.56" shape="940.01,1221.06 931.57,1225.54"/>
+ </edge>
+ <edge id=":1780219361_2" function="internal">
+ <lane id=":1780219361_2_0" index="0" speed="8.33" length="4.82" shape="940.01,1221.06 938.53,1220.90 937.78,1220.36 937.76,1219.44 938.47,1218.13"/>
+ </edge>
+ <edge id=":1780219361_3" function="internal">
+ <lane id=":1780219361_3_0" index="0" speed="18.06" length="5.01" shape="934.29,1216.82 935.09,1217.94 936.05,1218.53 937.18,1218.59 938.47,1218.13"/>
+ </edge>
+ <edge id=":1780219361_4" function="internal">
+ <lane id=":1780219361_4_0" index="0" speed="27.78" length="9.57" shape="934.29,1216.82 938.70,1225.32"/>
+ </edge>
+ <edge id=":1780219361_5" function="internal">
+ <lane id=":1780219361_5_0" index="0" speed="27.78" length="9.57" shape="931.36,1218.34 935.76,1226.84"/>
+ </edge>
+ <edge id=":1780219361_6" function="internal">
+ <lane id=":1780219361_6_0" index="0" speed="18.06" length="7.94" shape="931.36,1218.34 932.49,1220.93 932.90,1223.00 932.59,1224.54 931.57,1225.54"/>
+ </edge>
+ <edge id=":1780219361_7" function="internal">
+ <lane id=":1780219361_7_0" index="0" speed="8.33" length="9.59" shape="930.01,1222.64 938.47,1218.13"/>
+ </edge>
+ <edge id=":1780219361_8" function="internal">
+ <lane id=":1780219361_8_0" index="0" speed="18.06" length="7.89" shape="930.01,1222.64 931.42,1222.34 932.85,1222.93 934.30,1224.43 935.76,1226.84"/>
+ </edge>
+ <edge id=":1780219361_9" function="internal">
+ <lane id=":1780219361_9_0" index="0" speed="8.33" length="4.82" shape="930.01,1222.64 931.49,1222.78 932.24,1223.31 932.27,1224.23 931.57,1225.54"/>
+ </edge>
+ <edge id=":1780219362_0" function="internal">
+ <lane id=":1780219362_0_0" index="0" speed="15.28" length="5.00" shape="930.02,1165.46 928.91,1166.26 928.32,1167.23 928.25,1168.36 928.71,1169.65"/>
+ </edge>
+ <edge id=":1780219362_1" function="internal">
+ <lane id=":1780219362_1_0" index="0" speed="8.33" length="6.22" shape="930.02,1165.46 924.51,1168.34"/>
+ </edge>
+ <edge id=":1780219362_2" function="internal">
+ <lane id=":1780219362_2_0" index="0" speed="8.33" length="4.82" shape="930.02,1165.46 928.54,1165.30 927.79,1164.76 927.78,1163.84 928.49,1162.54"/>
+ </edge>
+ <edge id=":1780219362_3" function="internal">
+ <lane id=":1780219362_3_0" index="0" speed="15.28" length="5.01" shape="924.29,1161.23 925.10,1162.34 926.06,1162.93 927.20,1163.00 928.49,1162.54"/>
+ </edge>
+ <edge id=":1780219362_4" function="internal">
+ <lane id=":1780219362_4_0" index="0" speed="22.22" length="9.51" shape="924.29,1161.23 928.71,1169.65"/>
+ </edge>
+ <edge id=":1780219362_5" function="internal">
+ <lane id=":1780219362_5_0" index="0" speed="15.28" length="7.85" shape="924.29,1161.23 925.42,1163.80 925.84,1165.84 925.53,1167.35 924.51,1168.34"/>
+ </edge>
+ <edge id=":1780219362_6" function="internal">
+ <lane id=":1780219362_6_0" index="0" speed="8.33" length="6.21" shape="922.98,1165.41 928.49,1162.54"/>
+ </edge>
+ <edge id=":1780219362_7" function="internal">
+ <lane id=":1780219362_7_0" index="0" speed="15.28" length="7.86" shape="922.98,1165.41 924.37,1165.14 925.79,1165.75 927.24,1167.26 928.71,1169.65"/>
+ </edge>
+ <edge id=":1780219362_8" function="internal">
+ <lane id=":1780219362_8_0" index="0" speed="8.33" length="4.82" shape="922.98,1165.41 924.46,1165.57 925.21,1166.11 925.23,1167.03 924.51,1168.34"/>
+ </edge>
+ <edge id=":1780219363_0" function="internal">
+ <lane id=":1780219363_0_0" index="0" speed="15.28" length="5.87" shape="848.86,1007.14 848.06,1008.17 847.75,1009.42 847.92,1010.88 848.58,1012.56"/>
+ </edge>
+ <edge id=":1780219363_1" function="internal">
+ <lane id=":1780219363_1_0" index="0" speed="8.33" length="6.71" shape="848.86,1007.14 844.28,1012.05"/>
+ </edge>
+ <edge id=":1780219363_2" function="internal">
+ <lane id=":1780219363_2_0" index="0" speed="8.33" length="4.82" shape="848.86,1007.14 847.39,1007.35 846.53,1007.01 846.29,1006.12 846.66,1004.68"/>
+ </edge>
+ <edge id=":1780219363_3" function="internal">
+ <lane id=":1780219363_3_0" index="0" speed="15.28" length="4.20" shape="843.64,1002.72 844.43,1004.05 845.20,1004.82 845.94,1005.03 846.66,1004.68"/>
+ </edge>
+ <edge id=":1780219363_4" function="internal">
+ <lane id=":1780219363_4_0" index="0" speed="22.22" length="11.01" shape="843.64,1002.72 845.04,1005.52 846.11,1007.64 847.18,1009.77 848.58,1012.56"/>
+ </edge>
+ <edge id=":1780219363_5" function="internal">
+ <lane id=":1780219363_5_0" index="0" speed="15.28" length="9.86" shape="843.64,1002.72 844.87,1005.68 845.39,1008.22 845.20,1010.35 844.28,1012.05"/>
+ </edge>
+ <edge id=":1780219363_6" function="internal">
+ <lane id=":1780219363_6_0" index="0" speed="8.33" length="7.16" shape="841.77,1009.91 846.66,1004.68"/>
+ </edge>
+ <edge id=":1780219363_7" function="internal">
+ <lane id=":1780219363_7_0" index="0" speed="15.28" length="9.22" shape="841.77,1009.91 843.49,1008.56 845.19,1008.55 846.89,1009.88 848.58,1012.56"/>
+ </edge>
+ <edge id=":1780219363_8" function="internal">
+ <lane id=":1780219363_8_0" index="0" speed="8.33" length="4.82" shape="841.77,1009.91 843.20,1009.50 844.10,1009.72 844.46,1010.57 844.28,1012.05"/>
+ </edge>
+ <edge id=":1780219365_0" function="internal">
+ <lane id=":1780219365_0_0" index="0" speed="6.94" length="4.80" shape="960.24,1212.87 959.16,1212.14 958.06,1211.82 956.95,1211.91 955.81,1212.41"/>
+ </edge>
+ <edge id=":1780219365_1" function="internal">
+ <lane id=":1780219365_1_0" index="0" speed="5.56" length="8.99" shape="960.24,1212.87 955.45,1205.26"/>
+ </edge>
+ <edge id=":1780219365_2" function="internal">
+ <lane id=":1780219365_2_0" index="0" speed="5.56" length="5.18" shape="960.24,1212.87 959.98,1211.30 960.32,1210.37 961.27,1210.09 962.83,1210.45"/>
+ </edge>
+ <edge id=":1780219365_3" function="internal">
+ <lane id=":1780219365_3_0" index="0" speed="5.56" length="8.12" shape="958.38,1203.74 959.94,1206.63 961.21,1208.72 962.17,1209.99 962.83,1210.45"/>
+ </edge>
+ <edge id=":1780219365_4" function="internal">
+ <lane id=":1780219365_4_0" index="0" speed="6.94" length="10.15" shape="958.38,1203.74 959.27,1206.30 959.14,1208.59 957.98,1210.63 955.81,1212.41"/>
+ </edge>
+ <edge id=":1780219365_5" function="internal">
+ <lane id=":1780219365_5_0" index="0" speed="5.56" length="4.82" shape="958.38,1203.74 958.22,1205.22 957.68,1205.96 956.76,1205.98 955.45,1205.26"/>
+ </edge>
+ <edge id=":1780219365_6" function="internal">
+ <lane id=":1780219365_6_0" index="0" speed="6.94" length="5.10" shape="954.09,1209.59 955.20,1208.69 955.80,1207.67 955.89,1206.52 955.45,1205.26"/>
+ </edge>
+ <edge id=":1780219365_7" function="internal">
+ <lane id=":1780219365_7_0" index="0" speed="6.94" length="8.78" shape="954.09,1209.59 962.83,1210.45"/>
+ </edge>
+ <edge id=":1780219365_8" function="internal">
+ <lane id=":1780219365_8_0" index="0" speed="8.33" length="4.82" shape="954.09,1209.59 955.57,1209.65 956.36,1210.14 956.44,1211.06 955.81,1212.41"/>
+ </edge>
+ <edge id=":1780219366_0" function="internal">
+ <lane id=":1780219366_0_0" index="0" speed="8.33" length="4.96" shape="792.76,1036.61 791.40,1036.63 790.37,1037.07 789.65,1037.94 789.25,1039.23"/>
+ </edge>
+ <edge id=":1780219366_1" function="internal">
+ <lane id=":1780219366_1_0" index="0" speed="8.33" length="8.98" shape="792.76,1036.61 790.23,1036.06 788.18,1035.11 786.60,1033.77 785.49,1032.04"/>
+ </edge>
+ <edge id=":1780219366_2" function="internal">
+ <lane id=":1780219366_2_0" index="0" speed="8.33" length="4.82" shape="792.76,1036.61 791.64,1035.64 791.34,1034.76 791.85,1034.00 793.18,1033.34"/>
+ </edge>
+ <edge id=":1780219366_3" function="internal">
+ <lane id=":1780219366_3_0" index="0" speed="8.33" length="5.62" shape="788.50,1030.68 789.16,1031.66 790.16,1032.43 791.50,1032.99 793.18,1033.34"/>
+ </edge>
+ <edge id=":1780219366_4" function="internal">
+ <lane id=":1780219366_4_0" index="0" speed="8.33" length="8.59" shape="788.50,1030.68 789.25,1039.23"/>
+ </edge>
+ <edge id=":1780219366_5" function="internal">
+ <lane id=":1780219366_5_0" index="0" speed="8.33" length="4.82" shape="788.50,1030.68 788.26,1032.15 787.68,1032.86 786.75,1032.82 785.49,1032.04"/>
+ </edge>
+ <edge id=":1780219366_6" function="internal">
+ <lane id=":1780219366_6_0" index="0" speed="8.33" length="6.69" shape="785.99,1038.71 785.49,1032.04"/>
+ </edge>
+ <edge id=":1780219366_7" function="internal">
+ <lane id=":1780219366_7_0" index="0" speed="8.33" length="10.17" shape="785.99,1038.71 786.81,1036.06 788.29,1034.28 790.41,1033.37 793.18,1033.34"/>
+ </edge>
+ <edge id=":1780219366_8" function="internal">
+ <lane id=":1780219366_8_0" index="0" speed="8.33" length="4.82" shape="785.99,1038.71 787.00,1037.62 787.88,1037.34 788.63,1037.88 789.25,1039.23"/>
+ </edge>
+ <edge id=":1780219369_0" function="internal">
+ <lane id=":1780219369_0_0" index="0" speed="8.33" length="9.83" shape="888.98,1191.38 883.03,1183.56"/>
+ </edge>
+ <edge id=":1780219369_1" function="internal">
+ <lane id=":1780219369_1_0" index="0" speed="8.33" length="11.35" shape="888.98,1191.38 887.37,1188.62 887.16,1186.15 888.35,1183.99 890.95,1182.12"/>
+ </edge>
+ <edge id=":1780219369_2" function="internal">
+ <lane id=":1780219369_2_0" index="0" speed="8.33" length="4.82" shape="888.98,1191.38 888.86,1189.90 889.25,1189.06 890.15,1188.87 891.56,1189.33"/>
+ </edge>
+ <edge id=":1780219369_3" function="internal">
+ <lane id=":1780219369_3_0" index="0" speed="8.33" length="5.25" shape="892.47,1185.04 891.27,1185.91 890.72,1186.91 890.82,1188.05 891.56,1189.33"/>
+ </edge>
+ <edge id=":1780219369_4" function="internal">
+ <lane id=":1780219369_4_0" index="0" speed="8.33" length="10.58" shape="892.47,1185.04 889.60,1186.14 887.06,1186.26 884.87,1185.40 883.03,1183.56"/>
+ </edge>
+ <edge id=":1780219369_5" function="internal">
+ <lane id=":1780219369_5_0" index="0" speed="8.33" length="4.82" shape="892.47,1185.04 890.99,1184.88 890.25,1184.34 890.23,1183.42 890.95,1182.12"/>
+ </edge>
+ <edge id=":1780219369_6" function="internal">
+ <lane id=":1780219369_6_0" index="0" speed="8.33" length="5.80" shape="885.70,1181.63 886.66,1182.54 887.86,1182.92 889.28,1182.78 890.95,1182.12"/>
+ </edge>
+ <edge id=":1780219369_7" function="internal">
+ <lane id=":1780219369_7_0" index="0" speed="8.33" length="9.67" shape="885.70,1181.63 891.56,1189.33"/>
+ </edge>
+ <edge id=":1780219369_8" function="internal">
+ <lane id=":1780219369_8_0" index="0" speed="8.33" length="4.81" shape="885.70,1181.63 885.75,1183.12 885.32,1183.93 884.42,1184.08 883.03,1183.56"/>
+ </edge>
+ <edge id=":1780219371_0" function="internal">
+ <lane id=":1780219371_0_0" index="0" speed="6.94" length="4.17" shape="853.15,1007.93 852.35,1006.62 851.58,1005.86 850.84,1005.66 850.13,1006.00"/>
+ </edge>
+ <edge id=":1780219371_1" function="internal">
+ <lane id=":1780219371_1_0" index="0" speed="5.56" length="9.71" shape="853.15,1007.93 848.69,999.31"/>
+ </edge>
+ <edge id=":1780219371_2" function="internal">
+ <lane id=":1780219371_2_0" index="0" speed="5.56" length="4.82" shape="853.15,1007.93 853.32,1006.45 853.86,1005.70 854.78,1005.69 856.08,1006.41"/>
+ </edge>
+ <edge id=":1780219371_3" function="internal">
+ <lane id=":1780219371_3_0" index="0" speed="5.56" length="9.71" shape="851.62,997.79 856.08,1006.41"/>
+ </edge>
+ <edge id=":1780219371_4" function="internal">
+ <lane id=":1780219371_4_0" index="0" speed="6.94" length="9.08" shape="851.62,997.79 852.44,1000.07 852.46,1002.20 851.69,1004.17 850.13,1006.00"/>
+ </edge>
+ <edge id=":1780219371_5" function="internal">
+ <lane id=":1780219371_5_0" index="0" speed="5.56" length="4.82" shape="851.62,997.79 851.45,999.27 850.91,1000.01 849.99,1000.03 848.69,999.31"/>
+ </edge>
+ <edge id=":1780219371_6" function="internal">
+ <lane id=":1780219371_6_0" index="0" speed="6.94" length="4.68" shape="847.93,1003.54 848.73,1002.60 849.13,1001.58 849.11,1000.48 848.69,999.31"/>
+ </edge>
+ <edge id=":1780219371_7" function="internal">
+ <lane id=":1780219371_7_0" index="0" speed="6.94" length="10.47" shape="847.93,1003.54 850.15,1002.19 852.25,1002.22 854.23,1003.63 856.08,1006.41"/>
+ </edge>
+ <edge id=":1780219371_8" function="internal">
+ <lane id=":1780219371_8_0" index="0" speed="8.33" length="4.82" shape="847.93,1003.54 849.40,1003.33 850.26,1003.67 850.50,1004.56 850.13,1006.00"/>
+ </edge>
+ <edge id=":1780219373_0" function="internal">
+ <lane id=":1780219373_0_0" index="0" speed="8.33" length="3.49" shape="815.62,1039.27 815.96,1039.30 816.18,1039.83 816.27,1040.87 816.25,1042.40"/>
+ </edge>
+ <edge id=":1780219373_1" function="internal">
+ <lane id=":1780219373_1_0" index="0" speed="8.33" length="5.48" shape="815.62,1039.27 810.15,1038.88"/>
+ </edge>
+ <edge id=":1780219373_2" function="internal">
+ <lane id=":1780219373_2_0" index="0" speed="8.33" length="4.82" shape="815.62,1039.27 814.14,1039.15 813.38,1038.62 813.34,1037.70 814.03,1036.38"/>
+ </edge>
+ <edge id=":1780219373_3" function="internal">
+ <lane id=":1780219373_3_0" index="0" speed="8.33" length="3.54" shape="810.57,1035.61 814.03,1036.38"/>
+ </edge>
+ <edge id=":1780219373_4" function="internal">
+ <lane id=":1780219373_4_0" index="0" speed="8.33" length="9.92" shape="810.57,1035.61 813.17,1036.32 814.98,1037.70 816.01,1039.72 816.25,1042.40"/>
+ </edge>
+ <edge id=":1780219373_5" function="internal">
+ <lane id=":1780219373_5_0" index="0" speed="8.33" length="4.82" shape="810.57,1035.61 811.69,1036.59 812.00,1037.46 811.48,1038.22 810.15,1038.88"/>
+ </edge>
+ <edge id=":1780219373_6" function="internal">
+ <lane id=":1780219373_6_0" index="0" speed="8.33" length="4.91" shape="812.95,1042.24 812.83,1040.91 812.32,1039.91 811.43,1039.23 810.15,1038.88"/>
+ </edge>
+ <edge id=":1780219373_7" function="internal">
+ <lane id=":1780219373_7_0" index="0" speed="8.33" length="6.03" shape="812.95,1042.24 813.12,1039.84 813.35,1038.07 813.66,1036.91 814.03,1036.38"/>
+ </edge>
+ <edge id=":1780219373_8" function="internal">
+ <lane id=":1780219373_8_0" index="0" speed="8.33" length="4.82" shape="812.95,1042.24 813.84,1041.04 814.68,1040.67 815.49,1041.12 816.25,1042.40"/>
+ </edge>
+ <edge id=":1780219374_0" function="internal">
+ <lane id=":1780219374_0_0" index="0" speed="8.33" length="10.40" shape="820.11,1164.02 817.43,1165.43 815.51,1166.44 813.59,1167.44 810.90,1168.85"/>
+ </edge>
+ <edge id=":1780219374_1" function="internal">
+ <lane id=":1780219374_1_0" index="0" speed="8.33" length="11.26" shape="820.11,1164.02 817.99,1164.64 815.53,1164.45 812.73,1163.46 809.60,1161.65"/>
+ </edge>
+ <edge id=":1780219374_2" function="internal">
+ <lane id=":1780219374_2_0" index="0" speed="8.33" length="4.82" shape="820.11,1164.02 818.63,1163.87 817.88,1163.33 817.87,1162.41 818.58,1161.10"/>
+ </edge>
+ <edge id=":1780219374_3" function="internal">
+ <lane id=":1780219374_3_0" index="0" speed="8.33" length="7.75" shape="811.44,1158.91 813.75,1160.29 815.71,1161.12 817.32,1161.39 818.58,1161.10"/>
+ </edge>
+ <edge id=":1780219374_4" function="internal">
+ <lane id=":1780219374_4_0" index="0" speed="8.33" length="13.41" shape="811.44,1158.91 814.44,1161.56 815.35,1164.10 814.17,1166.53 810.90,1168.85"/>
+ </edge>
+ <edge id=":1780219374_5" function="internal">
+ <lane id=":1780219374_5_0" index="0" speed="8.33" length="4.82" shape="811.44,1158.91 812.01,1160.28 811.89,1161.20 811.09,1161.65 809.60,1161.65"/>
+ </edge>
+ <edge id=":1780219374_6" function="internal">
+ <lane id=":1780219374_6_0" index="0" speed="8.33" length="5.77" shape="809.37,1165.93 810.78,1164.93 811.28,1163.88 810.89,1162.79 809.60,1161.65"/>
+ </edge>
+ <edge id=":1780219374_7" function="internal">
+ <lane id=":1780219374_7_0" index="0" speed="8.33" length="10.40" shape="809.37,1165.93 812.06,1164.52 813.98,1163.51 815.90,1162.51 818.58,1161.10"/>
+ </edge>
+ <edge id=":1780219374_8" function="internal">
+ <lane id=":1780219374_8_0" index="0" speed="8.33" length="4.82" shape="809.37,1165.93 810.85,1166.08 811.60,1166.62 811.62,1167.54 810.90,1168.85"/>
+ </edge>
+ <edge id=":1780219377_0" function="internal">
+ <lane id=":1780219377_0_0" index="0" speed="15.28" length="5.31" shape="954.82,1213.01 953.60,1214.00 952.98,1215.06 952.98,1216.20 953.59,1217.42"/>
+ </edge>
+ <edge id=":1780219377_1" function="internal">
+ <lane id=":1780219377_1_0" index="0" speed="8.33" length="6.48" shape="954.82,1213.01 949.20,1216.23"/>
+ </edge>
+ <edge id=":1780219377_2" function="internal">
+ <lane id=":1780219377_2_0" index="0" speed="8.33" length="4.82" shape="954.82,1213.01 953.34,1212.96 952.55,1212.47 952.47,1211.55 953.10,1210.20"/>
+ </edge>
+ <edge id=":1780219377_3" function="internal">
+ <lane id=":1780219377_3_0" index="0" speed="15.28" length="5.10" shape="948.87,1209.01 949.69,1210.17 950.66,1210.75 951.80,1210.76 953.10,1210.20"/>
+ </edge>
+ <edge id=":1780219377_4" function="internal">
+ <lane id=":1780219377_4_0" index="0" speed="22.22" length="9.64" shape="948.87,1209.01 953.59,1217.42"/>
+ </edge>
+ <edge id=":1780219377_5" function="internal">
+ <lane id=":1780219377_5_0" index="0" speed="15.28" length="7.92" shape="948.87,1209.01 950.01,1211.65 950.44,1213.73 950.17,1215.26 949.20,1216.23"/>
+ </edge>
+ <edge id=":1780219377_6" function="internal">
+ <lane id=":1780219377_6_0" index="0" speed="8.33" length="6.26" shape="947.66,1213.31 953.10,1210.20"/>
+ </edge>
+ <edge id=":1780219377_7" function="internal">
+ <lane id=":1780219377_7_0" index="0" speed="15.28" length="7.69" shape="947.66,1213.31 948.83,1213.14 950.21,1213.78 951.80,1215.20 953.59,1217.42"/>
+ </edge>
+ <edge id=":1780219377_8" function="internal">
+ <lane id=":1780219377_8_0" index="0" speed="8.33" length="4.82" shape="947.66,1213.31 949.14,1213.46 949.89,1214.00 949.91,1214.92 949.20,1216.23"/>
+ </edge>
+ <edge id=":1780381201_0" function="internal">
+ <lane id=":1780381201_0_0" index="0" speed="5.56" length="4.82" shape="780.44,287.22 780.54,285.74 781.04,284.97 781.96,284.91 783.30,285.57"/>
+ </edge>
+ <edge id=":1780623649_0" function="internal">
+ <lane id=":1780623649_0_0" index="0" speed="5.56" length="4.82" shape="944.71,1748.57 943.24,1748.40 942.49,1747.85 942.49,1746.92 943.22,1745.63"/>
+ </edge>
+ <edge id=":1903640411_0" function="internal">
+ <lane id=":1903640411_0_0" index="0" speed="22.22" length="3.42" shape="661.17,1136.60 658.27,1134.78"/>
+ </edge>
+ <edge id=":1903640411_1" function="internal">
+ <lane id=":1903640411_1_0" index="0" speed="22.22" length="2.41" shape="661.15,1133.17 661.03,1134.66 660.51,1135.42"/>
+ </edge>
+ <edge id=":1903640411_2" function="internal">
+ <lane id=":1903640411_2_0" index="0" speed="22.22" length="2.41" shape="660.51,1135.42 659.59,1135.46 658.27,1134.78"/>
+ </edge>
+ <edge id=":1913728534_0" function="internal">
+ <lane id=":1913728534_0_0" index="0" speed="27.78" length="0.10" shape="1291.59,1303.22 1291.59,1303.22"/>
+ </edge>
+ <edge id=":1913728534_1" function="internal">
+ <lane id=":1913728534_1_0" index="0" speed="27.78" length="0.10" shape="1294.51,1301.68 1294.51,1301.68"/>
+ </edge>
+ <edge id=":1913728534_2" function="internal">
+ <lane id=":1913728534_2_0" index="0" speed="27.78" length="2.41" shape="1294.51,1301.68 1294.67,1300.20 1295.20,1299.45"/>
+ </edge>
+ <edge id=":1913728534_6" function="internal">
+ <lane id=":1913728534_6_0" index="0" speed="27.78" length="2.41" shape="1295.20,1299.45 1296.13,1299.43 1297.43,1300.14"/>
+ </edge>
+ <edge id=":1913728534_3" function="internal">
+ <lane id=":1913728534_3_0" index="0" speed="27.78" length="0.10" shape="1300.35,1298.60 1300.35,1298.60"/>
+ </edge>
+ <edge id=":1913728534_4" function="internal">
+ <lane id=":1913728534_4_0" index="0" speed="27.78" length="0.10" shape="1297.43,1300.14 1297.43,1300.14"/>
+ </edge>
+ <edge id=":1913728534_5" function="internal">
+ <lane id=":1913728534_5_0" index="0" speed="27.78" length="2.41" shape="1297.43,1300.14 1297.28,1301.62 1296.74,1302.37"/>
+ </edge>
+ <edge id=":1913728534_7" function="internal">
+ <lane id=":1913728534_7_0" index="0" speed="27.78" length="2.41" shape="1296.74,1302.37 1295.82,1302.39 1294.51,1301.68"/>
+ </edge>
+ <edge id=":2004733211_0" function="internal">
+ <lane id=":2004733211_0_0" index="0" speed="22.22" length="4.82" shape="1466.74,2867.53 1466.21,2868.92 1465.50,2869.50 1464.60,2869.28 1463.52,2868.26"/>
+ </edge>
+ <edge id=":2006433692_0" function="internal">
+ <lane id=":2006433692_0_0" index="0" speed="22.22" length="0.10" shape="1336.70,2034.88 1336.70,2034.88"/>
+ </edge>
+ <edge id=":2006433692_1" function="internal">
+ <lane id=":2006433692_1_0" index="0" speed="22.22" length="2.41" shape="1336.70,2034.88 1336.86,2033.41 1337.40,2032.66"/>
+ </edge>
+ <edge id=":2006433692_4" function="internal">
+ <lane id=":2006433692_4_0" index="0" speed="22.22" length="2.41" shape="1337.40,2032.66 1338.32,2032.64 1339.62,2033.36"/>
+ </edge>
+ <edge id=":2006433692_2" function="internal">
+ <lane id=":2006433692_2_0" index="0" speed="22.22" length="0.10" shape="1339.62,2033.36 1339.62,2033.36"/>
+ </edge>
+ <edge id=":2006433692_3" function="internal">
+ <lane id=":2006433692_3_0" index="0" speed="22.22" length="2.41" shape="1339.62,2033.36 1339.47,2034.83 1338.93,2035.58"/>
+ </edge>
+ <edge id=":2006433692_5" function="internal">
+ <lane id=":2006433692_5_0" index="0" speed="22.22" length="2.41" shape="1338.93,2035.58 1338.00,2035.60 1336.70,2034.88"/>
+ </edge>
+ <edge id=":2016414184_0" function="internal">
+ <lane id=":2016414184_0_0" index="0" speed="5.56" length="5.00" shape="846.76,1631.88 842.01,1633.45"/>
+ </edge>
+ <edge id=":2016414184_1" function="internal">
+ <lane id=":2016414184_1_0" index="0" speed="5.56" length="4.82" shape="846.76,1631.88 845.33,1631.49 844.68,1630.83 844.81,1629.92 845.73,1628.75"/>
+ </edge>
+ <edge id=":2016414184_2" function="internal">
+ <lane id=":2016414184_2_0" index="0" speed="5.56" length="8.09" shape="843.57,1625.52 842.01,1633.45"/>
+ </edge>
+ <edge id=":2016414184_3" function="internal">
+ <lane id=":2016414184_3_0" index="0" speed="5.56" length="8.22" shape="843.57,1625.52 841.93,1627.78 841.74,1629.08 843.00,1629.40 845.73,1628.75"/>
+ </edge>
+ <edge id=":2016414184_4" function="internal">
+ <lane id=":2016414184_4_0" index="0" speed="5.56" length="5.00" shape="840.98,1630.32 845.73,1628.75"/>
+ </edge>
+ <edge id=":2016414184_5" function="internal">
+ <lane id=":2016414184_5_0" index="0" speed="5.56" length="4.82" shape="840.98,1630.32 842.42,1630.72 843.07,1631.37 842.93,1632.28 842.01,1633.45"/>
+ </edge>
+ <edge id=":2016414185_0" function="internal">
+ <lane id=":2016414185_0_0" index="0" speed="22.22" length="2.18" shape="825.62,1637.36 824.62,1635.42"/>
+ </edge>
+ <edge id=":2016414185_1" function="internal">
+ <lane id=":2016414185_1_0" index="0" speed="13.89" length="3.87" shape="825.62,1637.36 825.60,1636.49 826.43,1635.59 827.98,1634.74"/>
+ </edge>
+ <edge id=":2016414185_9" function="internal">
+ <lane id=":2016414185_9_0" index="0" speed="13.89" length="2.85" shape="827.98,1634.74 828.11,1634.66 830.64,1633.71"/>
+ </edge>
+ <edge id=":2016414185_2" function="internal">
+ <lane id=":2016414185_2_0" index="0" speed="22.22" length="2.41" shape="825.62,1637.36 825.79,1635.89 826.33,1635.14"/>
+ </edge>
+ <edge id=":2016414185_10" function="internal">
+ <lane id=":2016414185_10_0" index="0" speed="22.22" length="2.41" shape="826.33,1635.14 827.25,1635.13 828.55,1635.86"/>
+ </edge>
+ <edge id=":2016414185_3" function="internal">
+ <lane id=":2016414185_3_0" index="0" speed="13.89" length="3.26" shape="831.66,1636.85 828.55,1635.86"/>
+ </edge>
+ <edge id=":2016414185_4" function="internal">
+ <lane id=":2016414185_4_0" index="0" speed="13.89" length="7.86" shape="831.66,1636.85 829.20,1637.42 827.20,1637.38 825.68,1636.71 824.62,1635.42"/>
+ </edge>
+ <edge id=":2016414185_5" function="internal">
+ <lane id=":2016414185_5_0" index="0" speed="5.56" length="4.82" shape="831.66,1636.85 830.23,1636.45 829.58,1635.79 829.72,1634.88 830.64,1633.71"/>
+ </edge>
+ <edge id=":2016414185_6" function="internal">
+ <lane id=":2016414185_6_0" index="0" speed="13.89" length="3.22" shape="827.56,1633.92 827.89,1634.16 828.51,1634.21 829.42,1634.06 830.64,1633.71"/>
+ </edge>
+ <edge id=":2016414185_7" function="internal">
+ <lane id=":2016414185_7_0" index="0" speed="22.22" length="2.18" shape="827.56,1633.92 828.55,1635.86"/>
+ </edge>
+ <edge id=":2016414185_8" function="internal">
+ <lane id=":2016414185_8_0" index="0" speed="22.22" length="2.41" shape="827.56,1633.92 827.39,1635.40 826.84,1636.14"/>
+ </edge>
+ <edge id=":2016414185_11" function="internal">
+ <lane id=":2016414185_11_0" index="0" speed="22.22" length="2.41" shape="826.84,1636.14 825.92,1636.15 824.62,1635.42"/>
+ </edge>
+ <edge id=":2017759586_0" function="internal">
+ <lane id=":2017759586_0_0" index="0" speed="8.33" length="2.51" shape="858.91,1726.86 858.50,1726.32 858.01,1726.03 857.44,1726.00 856.79,1726.22"/>
+ </edge>
+ <edge id=":2017759586_1" function="internal">
+ <lane id=":2017759586_1_0" index="0" speed="8.33" length="2.41" shape="858.91,1726.86 859.03,1725.38 859.54,1724.62"/>
+ </edge>
+ <edge id=":2017759586_4" function="internal">
+ <lane id=":2017759586_4_0" index="0" speed="8.33" length="2.41" shape="859.54,1724.62 860.47,1724.58 861.79,1725.25"/>
+ </edge>
+ <edge id=":2017759586_2" function="internal">
+ <lane id=":2017759586_2_0" index="0" speed="8.33" length="7.67" shape="855.30,1723.28 857.28,1722.60 859.02,1722.70 860.52,1723.59 861.79,1725.25"/>
+ </edge>
+ <edge id=":2017759586_3" function="internal">
+ <lane id=":2017759586_3_0" index="0" speed="8.33" length="2.41" shape="855.30,1723.28 856.77,1723.45 857.51,1724.00"/>
+ </edge>
+ <edge id=":2017759586_5" function="internal">
+ <lane id=":2017759586_5_0" index="0" speed="8.33" length="2.41" shape="857.51,1724.00 857.52,1724.92 856.79,1726.22"/>
+ </edge>
+ <edge id=":2017759588_0" function="internal">
+ <lane id=":2017759588_0_0" index="0" speed="18.06" length="6.17" shape="875.53,1730.67 874.71,1729.66 873.52,1729.09 871.95,1728.94 870.00,1729.23"/>
+ </edge>
+ <edge id=":2017759588_1" function="internal">
+ <lane id=":2017759588_1_0" index="0" speed="27.78" length="9.70" shape="875.53,1730.67 871.07,1722.05"/>
+ </edge>
+ <edge id=":2017759588_2" function="internal">
+ <lane id=":2017759588_2_0" index="0" speed="27.78" length="2.41" shape="875.53,1730.67 875.70,1729.19 876.24,1728.45"/>
+ </edge>
+ <edge id=":2017759588_9" function="internal">
+ <lane id=":2017759588_9_0" index="0" speed="27.78" length="2.41" shape="876.24,1728.45 877.16,1728.43 878.46,1729.15"/>
+ </edge>
+ <edge id=":2017759588_3" function="internal">
+ <lane id=":2017759588_3_0" index="0" speed="27.78" length="9.70" shape="874.01,1720.53 878.46,1729.15"/>
+ </edge>
+ <edge id=":2017759588_4" function="internal">
+ <lane id=":2017759588_4_0" index="0" speed="18.06" length="7.34" shape="874.01,1720.53 875.10,1723.67 874.79,1726.17 873.78,1727.28"/>
+ </edge>
+ <edge id=":2017759588_10" function="internal">
+ <lane id=":2017759588_10_0" index="0" speed="18.06" length="4.33" shape="873.78,1727.28 873.09,1728.02 870.00,1729.23"/>
+ </edge>
+ <edge id=":2017759588_5" function="internal">
+ <lane id=":2017759588_5_0" index="0" speed="27.78" length="2.41" shape="874.01,1720.53 873.84,1722.01 873.30,1722.76"/>
+ </edge>
+ <edge id=":2017759588_11" function="internal">
+ <lane id=":2017759588_11_0" index="0" speed="27.78" length="2.41" shape="873.30,1722.76 872.38,1722.77 871.07,1722.05"/>
+ </edge>
+ <edge id=":2017759588_6" function="internal">
+ <lane id=":2017759588_6_0" index="0" speed="18.06" length="5.33" shape="869.25,1726.02 870.66,1725.47 871.43,1724.62 871.57,1723.48 871.07,1722.05"/>
+ </edge>
+ <edge id=":2017759588_7" function="internal">
+ <lane id=":2017759588_7_0" index="0" speed="18.06" length="10.57" shape="869.25,1726.02 872.36,1725.62 874.94,1726.01 876.97,1727.19 878.46,1729.15"/>
+ </edge>
+ <edge id=":2017759588_8" function="internal">
+ <lane id=":2017759588_8_0" index="0" speed="8.33" length="4.82" shape="869.25,1726.02 870.64,1726.54 871.23,1727.25 871.02,1728.14 870.00,1729.23"/>
+ </edge>
+ <edge id=":2017759592_0" function="internal">
+ <lane id=":2017759592_0_0" index="0" speed="8.33" length="0.47" shape="862.29,1732.86 862.04,1732.46"/>
+ </edge>
+ <edge id=":2017759592_1" function="internal">
+ <lane id=":2017759592_1_0" index="0" speed="8.33" length="2.41" shape="862.29,1732.86 862.26,1731.37 862.71,1730.56"/>
+ </edge>
+ <edge id=":2017759592_4" function="internal">
+ <lane id=":2017759592_4_0" index="0" speed="8.33" length="2.41" shape="862.71,1730.56 863.62,1730.43 865.00,1730.98"/>
+ </edge>
+ <edge id=":2017759592_2" function="internal">
+ <lane id=":2017759592_2_0" index="0" speed="8.33" length="0.15" shape="864.92,1730.85 865.00,1730.98"/>
+ </edge>
+ <edge id=":2017759592_3" function="internal">
+ <lane id=":2017759592_3_0" index="0" speed="8.33" length="2.41" shape="864.92,1730.85 864.81,1732.33 864.29,1733.09"/>
+ </edge>
+ <edge id=":2017759592_5" function="internal">
+ <lane id=":2017759592_5_0" index="0" speed="8.33" length="2.41" shape="864.29,1733.09 863.37,1733.14 862.04,1732.46"/>
+ </edge>
+ <edge id=":2017759594_0" function="internal">
+ <lane id=":2017759594_0_0" index="0" speed="8.33" length="2.18" shape="867.38,1740.61 866.34,1738.70"/>
+ </edge>
+ <edge id=":2017759594_1" function="internal">
+ <lane id=":2017759594_1_0" index="0" speed="8.33" length="2.22" shape="867.38,1740.61 866.56,1738.55"/>
+ </edge>
+ <edge id=":2017759594_2" function="internal">
+ <lane id=":2017759594_2_0" index="0" speed="8.33" length="13.23" shape="867.38,1740.61 865.62,1736.01 865.50,1734.09 867.02,1734.86 870.17,1738.32"/>
+ </edge>
+ <edge id=":2017759594_3" function="internal">
+ <lane id=":2017759594_3_0" index="0" speed="8.33" length="5.01" shape="867.38,1740.61 867.23,1739.07 867.62,1738.19 868.55,1737.98 870.03,1738.43"/>
+ </edge>
+ <edge id=":2017759594_4" function="internal">
+ <lane id=":2017759594_4_0" index="0" speed="8.33" length="3.12" shape="867.62,1740.41 870.03,1738.43"/>
+ </edge>
+ <edge id=":2017759594_5" function="internal">
+ <lane id=":2017759594_5_0" index="0" speed="8.33" length="2.14" shape="867.62,1740.41 866.34,1738.70"/>
+ </edge>
+ <edge id=":2017759594_6" function="internal">
+ <lane id=":2017759594_6_0" index="0" speed="8.33" length="2.15" shape="867.62,1740.41 866.56,1738.55"/>
+ </edge>
+ <edge id=":2017759594_7" function="internal">
+ <lane id=":2017759594_7_0" index="0" speed="8.33" length="4.82" shape="867.62,1740.41 867.48,1738.93 867.85,1738.09 868.75,1737.88 870.17,1738.32"/>
+ </edge>
+ <edge id=":2017759594_8" function="internal">
+ <lane id=":2017759594_8_0" index="0" speed="8.33" length="1.88" shape="869.39,1736.61 870.17,1738.32"/>
+ </edge>
+ <edge id=":2017759594_9" function="internal">
+ <lane id=":2017759594_9_0" index="0" speed="8.33" length="1.93" shape="869.39,1736.61 870.03,1738.43"/>
+ </edge>
+ <edge id=":2017759594_10" function="internal">
+ <lane id=":2017759594_10_0" index="0" speed="8.33" length="13.49" shape="869.39,1736.61 870.77,1741.44 870.72,1743.40 869.25,1742.48 866.34,1738.70"/>
+ </edge>
+ <edge id=":2017759594_11" function="internal">
+ <lane id=":2017759594_11_0" index="0" speed="8.33" length="5.01" shape="869.39,1736.61 869.41,1738.16 868.94,1738.99 867.99,1739.12 866.56,1738.55"/>
+ </edge>
+ <edge id=":2017759594_12" function="internal">
+ <lane id=":2017759594_12_0" index="0" speed="8.33" length="3.03" shape="869.06,1736.83 866.56,1738.55"/>
+ </edge>
+ <edge id=":2017759594_13" function="internal">
+ <lane id=":2017759594_13_0" index="0" speed="8.33" length="1.85" shape="869.06,1736.83 870.17,1738.32"/>
+ </edge>
+ <edge id=":2017759594_14" function="internal">
+ <lane id=":2017759594_14_0" index="0" speed="8.33" length="1.87" shape="869.06,1736.83 870.03,1738.43"/>
+ </edge>
+ <edge id=":2017759594_15" function="internal">
+ <lane id=":2017759594_15_0" index="0" speed="8.33" length="4.82" shape="869.06,1736.83 869.08,1738.32 868.63,1739.13 867.72,1739.25 866.34,1738.70"/>
+ </edge>
+ <edge id=":2017759596_0" function="internal">
+ <lane id=":2017759596_0_0" index="0" speed="8.33" length="0.57" shape="869.60,1745.64 869.34,1745.13"/>
+ </edge>
+ <edge id=":2017759596_1" function="internal">
+ <lane id=":2017759596_1_0" index="0" speed="8.33" length="2.41" shape="869.60,1745.64 869.69,1744.15 870.20,1743.38"/>
+ </edge>
+ <edge id=":2017759596_4" function="internal">
+ <lane id=":2017759596_4_0" index="0" speed="8.33" length="2.41" shape="870.20,1743.38 871.12,1743.33 872.45,1743.98"/>
+ </edge>
+ <edge id=":2017759596_2" function="internal">
+ <lane id=":2017759596_2_0" index="0" speed="8.33" length="0.19" shape="872.37,1743.82 872.45,1743.98"/>
+ </edge>
+ <edge id=":2017759596_3" function="internal">
+ <lane id=":2017759596_3_0" index="0" speed="8.33" length="2.41" shape="872.37,1743.82 872.10,1745.28 871.51,1745.99"/>
+ </edge>
+ <edge id=":2017759596_5" function="internal">
+ <lane id=":2017759596_5_0" index="0" speed="8.33" length="2.41" shape="871.51,1745.99 870.59,1745.94 869.34,1745.13"/>
+ </edge>
+ <edge id=":2017759615_0" function="internal">
+ <lane id=":2017759615_0_0" index="0" speed="8.33" length="4.82" shape="859.03,1764.26 857.55,1764.08 856.81,1763.53 856.81,1762.61 857.54,1761.32"/>
+ </edge>
+ <edge id=":2079750190_0" function="internal">
+ <lane id=":2079750190_0_0" index="0" speed="8.33" length="5.03" shape="1478.24,2189.32 1477.43,2188.20 1476.46,2187.60 1475.33,2187.52 1474.04,2187.97"/>
+ </edge>
+ <edge id=":2079750190_1" function="internal">
+ <lane id=":2079750190_1_0" index="0" speed="8.33" length="10.36" shape="1478.24,2189.32 1477.29,2186.65 1477.42,2184.31 1478.65,2182.32 1480.96,2180.67"/>
+ </edge>
+ <edge id=":2079750190_2" function="internal">
+ <lane id=":2079750190_2_0" index="0" speed="8.33" length="4.82" shape="1478.24,2189.32 1478.40,2187.84 1478.93,2187.09 1479.86,2187.08 1481.16,2187.79"/>
+ </edge>
+ <edge id=":2079750190_3" function="internal">
+ <lane id=":2079750190_3_0" index="0" speed="8.33" length="5.01" shape="1482.48,2183.60 1481.36,2184.40 1480.77,2185.36 1480.70,2186.49 1481.16,2187.79"/>
+ </edge>
+ <edge id=":2079750190_4" function="internal">
+ <lane id=":2079750190_4_0" index="0" speed="8.33" length="9.50" shape="1482.48,2183.60 1474.04,2187.97"/>
+ </edge>
+ <edge id=":2079750190_5" function="internal">
+ <lane id=":2079750190_5_0" index="0" speed="8.33" length="4.82" shape="1482.48,2183.60 1481.00,2183.44 1480.25,2182.90 1480.24,2181.97 1480.96,2180.67"/>
+ </edge>
+ <edge id=":2079750190_6" function="internal">
+ <lane id=":2079750190_6_0" index="0" speed="8.33" length="9.50" shape="1472.52,2185.04 1480.96,2180.67"/>
+ </edge>
+ <edge id=":2079750190_7" function="internal">
+ <lane id=":2079750190_7_0" index="0" speed="8.33" length="10.32" shape="1472.52,2185.04 1475.18,2184.11 1477.51,2184.26 1479.50,2185.49 1481.16,2187.79"/>
+ </edge>
+ <edge id=":2079750190_8" function="internal">
+ <lane id=":2079750190_8_0" index="0" speed="8.33" length="4.82" shape="1472.52,2185.04 1474.00,2185.20 1474.75,2185.74 1474.76,2186.67 1474.04,2187.97"/>
+ </edge>
+ <edge id=":2081499947_0" function="internal">
+ <lane id=":2081499947_0_0" index="0" speed="22.22" length="9.50" shape="1163.43,1005.03 1167.78,1013.47"/>
+ </edge>
+ <edge id=":2081499947_1" function="internal">
+ <lane id=":2081499947_1_0" index="0" speed="15.28" length="7.86" shape="1163.43,1005.03 1164.53,1007.60 1164.93,1009.65 1164.62,1011.17 1163.60,1012.16"/>
+ </edge>
+ <edge id=":2081499947_2" function="internal">
+ <lane id=":2081499947_2_0" index="0" speed="15.28" length="7.88" shape="1162.05,1009.24 1163.46,1008.95 1164.88,1009.56 1166.32,1011.07 1167.78,1013.47"/>
+ </edge>
+ <edge id=":2081499947_3" function="internal">
+ <lane id=":2081499947_3_0" index="0" speed="8.33" length="4.82" shape="1162.05,1009.24 1163.53,1009.39 1164.28,1009.93 1164.30,1010.85 1163.60,1012.16"/>
+ </edge>
+ <edge id=":2081499948_0" function="internal">
+ <lane id=":2081499948_0_0" index="0" speed="6.94" length="4.05" shape="1156.31,1019.66 1155.77,1018.38 1155.59,1017.34 1155.78,1016.55 1156.34,1016.00"/>
+ </edge>
+ <edge id=":2081499948_1" function="internal">
+ <lane id=":2081499948_1_0" index="0" speed="5.56" length="9.66" shape="1156.31,1019.66 1151.86,1011.09"/>
+ </edge>
+ <edge id=":2081499948_2" function="internal">
+ <lane id=":2081499948_2_0" index="0" speed="6.94" length="10.45" shape="1156.31,1019.66 1155.35,1016.94 1155.47,1014.57 1156.68,1012.55 1158.97,1010.87"/>
+ </edge>
+ <edge id=":2081499948_3" function="internal">
+ <lane id=":2081499948_3_0" index="0" speed="5.56" length="4.82" shape="1156.31,1019.66 1156.47,1018.18 1157.02,1017.44 1157.94,1017.42 1159.24,1018.14"/>
+ </edge>
+ <edge id=":2081499948_4" function="internal">
+ <lane id=":2081499948_4_0" index="0" speed="6.94" length="5.16" shape="1160.52,1013.79 1159.40,1014.61 1158.81,1015.61 1158.76,1016.79 1159.24,1018.14"/>
+ </edge>
+ <edge id=":2081499948_5" function="internal">
+ <lane id=":2081499948_5_0" index="0" speed="8.33" length="4.72" shape="1160.52,1013.79 1156.34,1016.00"/>
+ </edge>
+ <edge id=":2081499948_6" function="internal">
+ <lane id=":2081499948_6_0" index="0" speed="6.94" length="8.32" shape="1160.52,1013.79 1157.84,1014.75 1155.51,1014.62 1153.51,1013.40 1153.05,1012.75"/>
+ </edge>
+ <edge id=":2081499948_16" function="internal">
+ <lane id=":2081499948_16_0" index="0" speed="6.94" length="2.04" shape="1153.05,1012.75 1151.86,1011.09"/>
+ </edge>
+ <edge id=":2081499948_7" function="internal">
+ <lane id=":2081499948_7_0" index="0" speed="8.33" length="2.41" shape="1160.52,1013.79 1159.04,1013.64 1158.29,1013.10"/>
+ </edge>
+ <edge id=":2081499948_17" function="internal">
+ <lane id=":2081499948_17_0" index="0" speed="8.33" length="2.41" shape="1158.29,1013.10 1158.26,1012.18 1158.97,1010.87"/>
+ </edge>
+ <edge id=":2081499948_8" function="internal">
+ <lane id=":2081499948_8_0" index="0" speed="6.94" length="5.01" shape="1154.79,1009.57 1155.59,1010.69 1156.55,1011.28 1157.68,1011.34 1158.97,1010.87"/>
+ </edge>
+ <edge id=":2081499948_9" function="internal">
+ <lane id=":2081499948_9_0" index="0" speed="5.56" length="9.66" shape="1154.79,1009.57 1159.24,1018.14"/>
+ </edge>
+ <edge id=":2081499948_10" function="internal">
+ <lane id=":2081499948_10_0" index="0" speed="6.94" length="6.93" shape="1154.79,1009.57 1155.98,1012.09 1156.64,1014.00 1156.76,1015.30 1156.34,1016.00"/>
+ </edge>
+ <edge id=":2081499948_11" function="internal">
+ <lane id=":2081499948_11_0" index="0" speed="5.56" length="4.82" shape="1154.79,1009.57 1154.62,1011.05 1154.08,1011.79 1153.16,1011.81 1151.86,1011.09"/>
+ </edge>
+ <edge id=":2081499948_12" function="internal">
+ <lane id=":2081499948_12_0" index="0" speed="6.94" length="3.90" shape="1154.71,1013.14 1154.01,1013.30 1153.31,1013.02 1152.59,1012.28 1151.86,1011.09"/>
+ </edge>
+ <edge id=":2081499948_13" function="internal">
+ <lane id=":2081499948_13_0" index="0" speed="8.33" length="4.83" shape="1154.71,1013.14 1158.97,1010.87"/>
+ </edge>
+ <edge id=":2081499948_14" function="internal">
+ <lane id=":2081499948_14_0" index="0" speed="6.94" length="3.88" shape="1154.71,1013.14 1155.55,1013.13 1156.58,1013.96 1157.60,1015.34"/>
+ </edge>
+ <edge id=":2081499948_18" function="internal">
+ <lane id=":2081499948_18_0" index="0" speed="6.94" length="3.25" shape="1157.60,1015.34 1157.82,1015.63 1159.24,1018.14"/>
+ </edge>
+ <edge id=":2081499948_15" function="internal">
+ <lane id=":2081499948_15_0" index="0" speed="8.33" length="2.41" shape="1154.71,1013.14 1156.19,1013.24 1156.96,1013.75"/>
+ </edge>
+ <edge id=":2081499948_19" function="internal">
+ <lane id=":2081499948_19_0" index="0" speed="8.33" length="2.41" shape="1156.96,1013.75 1157.01,1014.67 1156.34,1016.00"/>
+ </edge>
+ <edge id=":2081499949_0" function="internal">
+ <lane id=":2081499949_0_0" index="0" speed="18.06" length="1.61" shape="1153.30,1017.74 1153.90,1017.39 1154.33,1017.12 1154.57,1016.95 1154.64,1016.86"/>
+ </edge>
+ <edge id=":2081499949_1" function="internal">
+ <lane id=":2081499949_1_0" index="0" speed="8.33" length="0.11" shape="1153.30,1017.74 1153.40,1017.69"/>
+ </edge>
+ <edge id=":2081499949_2" function="internal">
+ <lane id=":2081499949_2_0" index="0" speed="8.33" length="4.82" shape="1153.30,1017.74 1151.82,1017.64 1151.05,1017.13 1151.00,1016.20 1151.66,1014.87"/>
+ </edge>
+ <edge id=":2081499949_3" function="internal">
+ <lane id=":2081499949_3_0" index="0" speed="18.06" length="4.02" shape="1151.67,1011.24 1152.22,1012.51 1152.40,1013.54 1152.22,1014.33 1151.66,1014.87"/>
+ </edge>
+ <edge id=":2081499949_4" function="internal">
+ <lane id=":2081499949_4_0" index="0" speed="27.78" length="6.36" shape="1151.67,1011.24 1154.64,1016.86"/>
+ </edge>
+ <edge id=":2081499949_5" function="internal">
+ <lane id=":2081499949_5_0" index="0" speed="27.78" length="6.36" shape="1148.75,1012.79 1151.72,1018.40"/>
+ </edge>
+ <edge id=":2081499949_6" function="internal">
+ <lane id=":2081499949_6_0" index="0" speed="18.06" length="7.15" shape="1148.75,1012.79 1150.18,1015.25 1151.43,1016.89 1152.51,1017.70 1153.40,1017.69"/>
+ </edge>
+ <edge id=":2081499949_7" function="internal">
+ <lane id=":2081499949_7_0" index="0" speed="8.33" length="0.10" shape="1151.61,1014.90 1151.66,1014.87"/>
+ </edge>
+ <edge id=":2081499949_8" function="internal">
+ <lane id=":2081499949_8_0" index="0" speed="18.06" length="3.87" shape="1151.61,1014.90 1151.11,1015.39 1150.96,1016.14 1151.16,1017.14 1151.72,1018.40"/>
+ </edge>
+ <edge id=":2081499949_9" function="internal">
+ <lane id=":2081499949_9_0" index="0" speed="8.33" length="4.84" shape="1151.61,1014.90 1153.10,1014.93 1153.90,1015.40 1153.99,1016.32 1153.40,1017.69"/>
+ </edge>
+ <edge id=":2081499950_0" function="internal">
+ <lane id=":2081499950_0_0" index="0" speed="18.06" length="4.13" shape="1143.39,1022.78 1147.13,1021.01"/>
+ </edge>
+ <edge id=":2081499950_1" function="internal">
+ <lane id=":2081499950_1_0" index="0" speed="27.78" length="3.55" shape="1143.39,1022.78 1141.76,1019.62"/>
+ </edge>
+ <edge id=":2081499950_2" function="internal">
+ <lane id=":2081499950_2_0" index="0" speed="27.78" length="4.70" shape="1146.32,1021.25 1144.16,1017.09"/>
+ </edge>
+ <edge id=":2081499950_3" function="internal">
+ <lane id=":2081499950_3_0" index="0" speed="18.06" length="4.95" shape="1146.32,1021.25 1145.85,1019.95 1145.90,1018.82 1146.45,1017.86 1147.51,1017.07"/>
+ </edge>
+ <edge id=":2081499950_4" function="internal">
+ <lane id=":2081499950_4_0" index="0" speed="27.78" length="2.71" shape="1146.32,1021.25 1147.24,1019.86 1148.17,1019.39"/>
+ </edge>
+ <edge id=":2081499950_18" function="internal">
+ <lane id=":2081499950_18_0" index="0" speed="27.78" length="2.71" shape="1148.17,1019.39 1149.10,1019.85 1150.03,1021.24"/>
+ </edge>
+ <edge id=":2081499950_5" function="internal">
+ <lane id=":2081499950_5_0" index="0" speed="18.06" length="3.67" shape="1149.06,1019.99 1150.46,1019.28 1151.49,1018.83 1152.15,1018.64 1152.43,1018.70"/>
+ </edge>
+ <edge id=":2081499950_6" function="internal">
+ <lane id=":2081499950_6_0" index="0" speed="8.33" length="2.18" shape="1149.06,1019.99 1147.13,1021.01"/>
+ </edge>
+ <edge id=":2081499950_7" function="internal">
+ <lane id=":2081499950_7_0" index="0" speed="18.06" length="6.40" shape="1149.06,1019.99 1147.75,1020.34 1146.50,1019.97 1145.30,1018.89 1144.16,1017.09"/>
+ </edge>
+ <edge id=":2081499950_8" function="internal">
+ <lane id=":2081499950_8_0" index="0" speed="8.33" length="4.82" shape="1149.06,1019.99 1147.58,1019.84 1146.83,1019.30 1146.81,1018.38 1147.51,1017.07"/>
+ </edge>
+ <edge id=":2081499950_9" function="internal">
+ <lane id=":2081499950_9_0" index="0" speed="18.06" length="3.68" shape="1150.54,1015.06 1150.41,1015.30 1149.87,1015.72 1148.90,1016.31 1147.51,1017.07"/>
+ </edge>
+ <edge id=":2081499950_10" function="internal">
+ <lane id=":2081499950_10_0" index="0" speed="27.78" length="4.11" shape="1150.54,1015.06 1152.43,1018.70"/>
+ </edge>
+ <edge id=":2081499950_11" function="internal">
+ <lane id=":2081499950_11_0" index="0" speed="27.78" length="6.40" shape="1147.08,1015.56 1150.03,1021.24"/>
+ </edge>
+ <edge id=":2081499950_12" function="internal">
+ <lane id=":2081499950_12_0" index="0" speed="18.06" length="6.03" shape="1147.08,1015.56 1147.92,1017.51 1148.21,1019.07 1147.95,1020.24 1147.13,1021.01"/>
+ </edge>
+ <edge id=":2081499950_13" function="internal">
+ <lane id=":2081499950_13_0" index="0" speed="27.78" length="2.41" shape="1147.08,1015.56 1146.92,1017.04 1146.38,1017.79"/>
+ </edge>
+ <edge id=":2081499950_19" function="internal">
+ <lane id=":2081499950_19_0" index="0" speed="27.78" length="2.41" shape="1146.38,1017.79 1145.46,1017.80 1144.16,1017.09"/>
+ </edge>
+ <edge id=":2081499950_14" function="internal">
+ <lane id=":2081499950_14_0" index="0" speed="18.06" length="4.19" shape="1145.59,1018.09 1143.99,1018.90 1142.81,1019.43 1142.07,1019.67 1141.76,1019.62"/>
+ </edge>
+ <edge id=":2081499950_15" function="internal">
+ <lane id=":2081499950_15_0" index="0" speed="8.33" length="2.17" shape="1145.59,1018.09 1147.51,1017.07"/>
+ </edge>
+ <edge id=":2081499950_16" function="internal">
+ <lane id=":2081499950_16_0" index="0" speed="18.06" length="6.04" shape="1145.59,1018.09 1146.70,1017.85 1147.80,1018.30 1148.92,1019.43 1150.03,1021.24"/>
+ </edge>
+ <edge id=":2081499950_17" function="internal">
+ <lane id=":2081499950_17_0" index="0" speed="8.33" length="4.82" shape="1145.59,1018.09 1147.07,1018.24 1147.82,1018.78 1147.84,1019.70 1147.13,1021.01"/>
+ </edge>
+ <edge id=":2081499951_0" function="internal">
+ <lane id=":2081499951_0_0" index="0" speed="18.06" length="1.69" shape="1140.76,1022.67 1141.09,1023.24 1141.39,1023.61 1141.65,1023.79 1141.89,1023.77"/>
+ </edge>
+ <edge id=":2081499951_1" function="internal">
+ <lane id=":2081499951_1_0" index="0" speed="27.78" length="4.93" shape="1140.76,1022.67 1138.48,1018.30"/>
+ </edge>
+ <edge id=":2081499951_2" function="internal">
+ <lane id=":2081499951_2_0" index="0" speed="27.78" length="4.93" shape="1143.68,1021.15 1141.41,1016.78"/>
+ </edge>
+ <edge id=":2081499951_3" function="internal">
+ <lane id=":2081499951_3_0" index="0" speed="18.06" length="3.30" shape="1143.68,1021.15 1143.19,1020.51 1142.55,1020.20 1141.77,1020.23 1140.83,1020.59"/>
+ </edge>
+ <edge id=":2081499951_4" function="internal">
+ <lane id=":2081499951_4_0" index="0" speed="8.33" length="5.26" shape="1146.54,1021.32 1141.89,1023.77"/>
+ </edge>
+ <edge id=":2081499951_5" function="internal">
+ <lane id=":2081499951_5_0" index="0" speed="18.06" length="7.42" shape="1146.54,1021.32 1145.40,1021.47 1144.17,1020.76 1142.84,1019.19 1141.41,1016.78"/>
+ </edge>
+ <edge id=":2081499951_6" function="internal">
+ <lane id=":2081499951_6_0" index="0" speed="8.33" length="8.39" shape="1146.54,1021.32 1144.84,1023.28 1143.32,1023.81 1141.99,1022.91 1140.83,1020.59"/>
+ </edge>
+ <edge id=":2081499951_7" function="internal">
+ <lane id=":2081499951_7_0" index="0" speed="18.06" length="3.23" shape="1140.34,1020.86 1140.07,1020.78 1139.67,1020.33 1139.14,1019.50 1138.48,1018.30"/>
+ </edge>
+ <edge id=":2081499951_8" function="internal">
+ <lane id=":2081499951_8_0" index="0" speed="8.33" length="0.56" shape="1140.34,1020.86 1140.83,1020.59"/>
+ </edge>
+ <edge id=":2081499951_9" function="internal">
+ <lane id=":2081499951_9_0" index="0" speed="8.33" length="4.82" shape="1140.34,1020.86 1141.82,1021.01 1142.57,1021.54 1142.59,1022.46 1141.89,1023.77"/>
+ </edge>
+ <edge id=":2081499952_0" function="internal">
+ <lane id=":2081499952_0_0" index="0" speed="22.22" length="9.50" shape="1130.90,1033.28 1126.32,1024.95"/>
+ </edge>
+ <edge id=":2081499952_1" function="internal">
+ <lane id=":2081499952_1_0" index="0" speed="15.28" length="7.85" shape="1130.90,1033.28 1129.72,1030.73 1129.27,1028.70 1129.54,1027.18 1130.53,1026.17"/>
+ </edge>
+ <edge id=":2081499952_2" function="internal">
+ <lane id=":2081499952_2_0" index="0" speed="15.28" length="7.85" shape="1132.12,1029.07 1130.74,1029.37 1129.31,1028.78 1127.84,1027.31 1126.32,1024.95"/>
+ </edge>
+ <edge id=":2081499952_3" function="internal">
+ <lane id=":2081499952_3_0" index="0" speed="8.33" length="4.82" shape="1132.12,1029.07 1130.64,1028.94 1129.88,1028.41 1129.85,1027.49 1130.53,1026.17"/>
+ </edge>
+ <edge id=":2265767389_0" function="internal">
+ <lane id=":2265767389_0_0" index="0" speed="22.22" length="3.84" shape="1432.00,899.34 1430.23,895.93"/>
+ </edge>
+ <edge id=":2265767389_1" function="internal">
+ <lane id=":2265767389_1_0" index="0" speed="25.00" length="6.76" shape="1432.00,899.34 1432.55,899.52 1433.76,899.18 1435.64,898.34 1438.17,896.99"/>
+ </edge>
+ <edge id=":2265767389_2" function="internal">
+ <lane id=":2265767389_2_0" index="0" speed="22.22" length="4.82" shape="1432.00,899.34 1432.16,897.86 1432.70,897.12 1433.62,897.10 1434.93,897.82"/>
+ </edge>
+ <edge id=":2265767389_3" function="internal">
+ <lane id=":2265767389_3_0" index="0" speed="25.00" length="3.75" shape="1433.15,894.41 1433.61,894.86 1434.33,894.96 1435.31,894.71 1436.55,894.11"/>
+ </edge>
+ <edge id=":2265767389_4" function="internal">
+ <lane id=":2265767389_4_0" index="0" speed="22.22" length="3.84" shape="1433.15,894.41 1434.93,897.82"/>
+ </edge>
+ <edge id=":2265767389_5" function="internal">
+ <lane id=":2265767389_5_0" index="0" speed="22.22" length="4.82" shape="1433.15,894.41 1432.99,895.89 1432.45,896.64 1431.53,896.65 1430.23,895.93"/>
+ </edge>
+ <edge id=":2265767389_6" function="internal">
+ <lane id=":2265767389_6_0" index="0" speed="25.00" length="3.98" shape="1428.08,898.87 1429.28,898.09 1430.04,897.34 1430.35,896.62 1430.23,895.93"/>
+ </edge>
+ <edge id=":2265767389_7" function="internal">
+ <lane id=":2265767389_7_0" index="0" speed="27.78" length="9.71" shape="1428.08,898.87 1436.55,894.11"/>
+ </edge>
+ <edge id=":2265767389_8" function="internal">
+ <lane id=":2265767389_8_0" index="0" speed="27.78" length="9.72" shape="1429.70,901.75 1438.17,896.99"/>
+ </edge>
+ <edge id=":2265767389_9" function="internal">
+ <lane id=":2265767389_9_0" index="0" speed="25.00" length="6.66" shape="1429.70,901.75 1432.13,900.32 1433.82,899.18 1434.75,898.35 1434.93,897.82"/>
+ </edge>
+ <edge id=":2265767392_0" function="internal">
+ <lane id=":2265767392_0_0" index="0" speed="25.00" length="5.05" shape="1442.27,918.00 1441.43,916.91 1440.43,916.34 1439.29,916.31 1438.00,916.82"/>
+ </edge>
+ <edge id=":2265767392_1" function="internal">
+ <lane id=":2265767392_1_0" index="0" speed="22.22" length="5.01" shape="1442.27,918.00 1439.79,913.65"/>
+ </edge>
+ <edge id=":2265767392_2" function="internal">
+ <lane id=":2265767392_2_0" index="0" speed="22.22" length="4.82" shape="1442.27,918.00 1442.38,916.51 1442.89,915.75 1443.81,915.70 1445.14,916.36"/>
+ </edge>
+ <edge id=":2265767392_3" function="internal">
+ <lane id=":2265767392_3_0" index="0" speed="25.00" length="5.01" shape="1446.31,912.14 1445.22,912.97 1444.66,913.95 1444.63,915.08 1445.14,916.36"/>
+ </edge>
+ <edge id=":2265767392_4" function="internal">
+ <lane id=":2265767392_4_0" index="0" speed="27.78" length="9.54" shape="1446.31,912.14 1438.00,916.82"/>
+ </edge>
+ <edge id=":2265767392_5" function="internal">
+ <lane id=":2265767392_5_0" index="0" speed="27.78" length="9.54" shape="1444.69,909.26 1436.38,913.94"/>
+ </edge>
+ <edge id=":2265767392_6" function="internal">
+ <lane id=":2265767392_6_0" index="0" speed="25.00" length="6.86" shape="1444.69,909.26 1442.28,910.72 1440.66,911.93 1439.83,912.91 1439.79,913.65"/>
+ </edge>
+ <edge id=":2265767392_7" function="internal">
+ <lane id=":2265767392_7_0" index="0" speed="22.22" length="5.00" shape="1442.66,912.01 1445.14,916.36"/>
+ </edge>
+ <edge id=":2265767392_8" function="internal">
+ <lane id=":2265767392_8_0" index="0" speed="25.00" length="6.84" shape="1442.66,912.01 1442.01,911.68 1440.74,911.89 1438.87,912.64 1436.38,913.94"/>
+ </edge>
+ <edge id=":2265767392_9" function="internal">
+ <lane id=":2265767392_9_0" index="0" speed="22.22" length="4.82" shape="1442.66,912.01 1442.56,913.50 1442.04,914.27 1441.12,914.32 1439.79,913.65"/>
+ </edge>
+ <edge id=":2265767394_0" function="internal">
+ <lane id=":2265767394_0_0" index="0" speed="22.22" length="3.43" shape="1340.62,950.31 1339.56,947.04"/>
+ </edge>
+ <edge id=":2265767394_1" function="internal">
+ <lane id=":2265767394_1_0" index="0" speed="25.00" length="7.62" shape="1340.62,950.31 1341.21,950.64 1342.56,950.35 1344.68,949.44 1347.56,947.92"/>
+ </edge>
+ <edge id=":2265767394_2" function="internal">
+ <lane id=":2265767394_2_0" index="0" speed="22.22" length="4.82" shape="1340.62,950.31 1341.02,948.87 1341.68,948.23 1342.59,948.36 1343.76,949.28"/>
+ </edge>
+ <edge id=":2265767394_3" function="internal">
+ <lane id=":2265767394_3_0" index="0" speed="25.00" length="3.56" shape="1342.70,946.02 1342.99,946.23 1343.62,946.13 1344.61,945.74 1345.94,945.04"/>
+ </edge>
+ <edge id=":2265767394_4" function="internal">
+ <lane id=":2265767394_4_0" index="0" speed="22.22" length="3.43" shape="1342.70,946.02 1343.76,949.28"/>
+ </edge>
+ <edge id=":2265767394_5" function="internal">
+ <lane id=":2265767394_5_0" index="0" speed="22.22" length="4.82" shape="1342.70,946.02 1342.30,947.45 1341.64,948.10 1340.73,947.96 1339.56,947.04"/>
+ </edge>
+ <edge id=":2265767394_6" function="internal">
+ <lane id=":2265767394_6_0" index="0" speed="25.00" length="4.86" shape="1336.41,950.40 1337.95,949.43 1338.99,948.55 1339.53,947.75 1339.56,947.04"/>
+ </edge>
+ <edge id=":2265767394_7" function="internal">
+ <lane id=":2265767394_7_0" index="0" speed="27.78" length="10.93" shape="1336.41,950.40 1339.24,948.81 1341.18,947.72 1343.11,946.63 1345.94,945.04"/>
+ </edge>
+ <edge id=":2265767394_8" function="internal">
+ <lane id=":2265767394_8_0" index="0" speed="27.78" length="10.93" shape="1338.03,953.28 1340.86,951.68 1342.79,950.60 1344.73,949.51 1347.56,947.92"/>
+ </edge>
+ <edge id=":2265767394_9" function="internal">
+ <lane id=":2265767394_9_0" index="0" speed="25.00" length="7.05" shape="1338.03,953.28 1340.61,951.77 1342.43,950.61 1343.48,949.78 1343.76,949.28"/>
+ </edge>
+ <edge id=":2265767395_0" function="internal">
+ <lane id=":2265767395_0_0" index="0" speed="25.00" length="4.74" shape="1347.40,971.01 1346.84,969.97 1346.01,969.47 1344.91,969.51 1343.54,970.09"/>
+ </edge>
+ <edge id=":2265767395_1" function="internal">
+ <lane id=":2265767395_1_0" index="0" speed="22.22" length="4.76" shape="1347.40,971.01 1345.91,966.49"/>
+ </edge>
+ <edge id=":2265767395_2" function="internal">
+ <lane id=":2265767395_2_0" index="0" speed="22.22" length="4.82" shape="1347.40,971.01 1347.80,969.58 1348.45,968.93 1349.37,969.06 1350.54,969.98"/>
+ </edge>
+ <edge id=":2265767395_3" function="internal">
+ <lane id=":2265767395_3_0" index="0" speed="25.00" length="6.39" shape="1353.05,964.72 1351.55,965.81 1350.63,967.05 1350.29,968.44 1350.54,969.98"/>
+ </edge>
+ <edge id=":2265767395_4" function="internal">
+ <lane id=":2265767395_4_0" index="0" speed="27.78" length="10.92" shape="1353.05,964.72 1350.22,966.32 1348.29,967.41 1346.36,968.50 1343.54,970.09"/>
+ </edge>
+ <edge id=":2265767395_5" function="internal">
+ <lane id=":2265767395_5_0" index="0" speed="27.78" length="10.92" shape="1351.42,961.85 1348.60,963.44 1346.67,964.53 1344.74,965.62 1341.92,967.22"/>
+ </edge>
+ <edge id=":2265767395_6" function="internal">
+ <lane id=":2265767395_6_0" index="0" speed="25.00" length="7.41" shape="1351.42,961.85 1348.85,963.39 1347.08,964.68 1346.10,965.71 1345.91,966.49"/>
+ </edge>
+ <edge id=":2265767395_7" function="internal">
+ <lane id=":2265767395_7_0" index="0" speed="22.22" length="4.77" shape="1349.05,965.45 1350.54,969.98"/>
+ </edge>
+ <edge id=":2265767395_8" function="internal">
+ <lane id=":2265767395_8_0" index="0" speed="25.00" length="7.87" shape="1349.05,965.45 1348.37,964.85 1346.95,964.94 1344.80,965.73 1341.92,967.22"/>
+ </edge>
+ <edge id=":2265767395_9" function="internal">
+ <lane id=":2265767395_9_0" index="0" speed="22.22" length="4.82" shape="1349.05,965.45 1348.65,966.89 1348.00,967.54 1347.08,967.40 1345.91,966.49"/>
+ </edge>
+ <edge id=":243489891_0" function="internal">
+ <lane id=":243489891_0_0" index="0" speed="25.00" length="5.40" shape="745.92,2299.76 745.47,2298.28 744.68,2297.45 743.54,2297.27 742.07,2297.74"/>
+ </edge>
+ <edge id=":243489891_1" function="internal">
+ <lane id=":243489891_1_0" index="0" speed="22.22" length="9.43" shape="745.92,2299.76 744.48,2290.44"/>
+ </edge>
+ <edge id=":243489891_2" function="internal">
+ <lane id=":243489891_2_0" index="0" speed="22.22" length="4.82" shape="745.92,2299.76 746.55,2298.42 747.30,2297.88 748.18,2298.16 749.18,2299.26"/>
+ </edge>
+ <edge id=":243489891_3" function="internal">
+ <lane id=":243489891_3_0" index="0" speed="22.22" length="9.93" shape="751.30,2290.61 749.86,2291.07 749.03,2292.66 748.80,2295.39 749.18,2299.26"/>
+ </edge>
+ <edge id=":243489891_4" function="internal">
+ <lane id=":243489891_4_0" index="0" speed="25.00" length="11.67" shape="751.30,2290.61 748.25,2290.78 746.03,2291.64 743.77,2293.02 740.63,2294.77"/>
+ </edge>
+ <edge id=":243489891_5" function="internal">
+ <lane id=":243489891_5_0" index="0" speed="22.22" length="6.83" shape="751.30,2290.61 748.31,2290.44 746.17,2290.35 744.90,2290.35 744.48,2290.44"/>
+ </edge>
+ <edge id=":243489891_6" function="internal">
+ <lane id=":243489891_6_0" index="0" speed="22.22" length="16.51" shape="757.66,2287.09 753.41,2288.88 750.58,2291.51 749.17,2294.97 749.18,2299.26"/>
+ </edge>
+ <edge id=":243489891_7" function="internal">
+ <lane id=":243489891_7_0" index="0" speed="25.00" length="19.14" shape="757.66,2287.09 753.95,2287.80 749.84,2288.39 745.02,2289.50 739.20,2291.79"/>
+ </edge>
+ <edge id=":243489891_8" function="internal">
+ <lane id=":243489891_8_0" index="0" speed="22.22" length="13.61" shape="757.66,2287.09 751.91,2288.66 747.79,2289.75 745.32,2290.34 744.48,2290.44"/>
+ </edge>
+ <edge id=":243489891_9" function="internal">
+ <lane id=":243489891_9_0" index="0" speed="25.00" length="16.16" shape="757.36,2285.74 753.53,2290.03 750.89,2293.72 749.44,2296.79 749.18,2299.26"/>
+ </edge>
+ <edge id=":243489891_10" function="internal">
+ <lane id=":243489891_10_0" index="0" speed="27.78" length="19.63" shape="757.36,2285.74 753.36,2289.98 750.47,2292.78 747.20,2295.07 742.07,2297.74"/>
+ </edge>
+ <edge id=":243489891_11" function="internal">
+ <lane id=":243489891_11_0" index="0" speed="27.78" length="18.45" shape="754.98,2283.45 751.22,2287.44 748.52,2290.09 745.45,2292.25 740.63,2294.77"/>
+ </edge>
+ <edge id=":243489891_12" function="internal">
+ <lane id=":243489891_12_0" index="0" speed="27.78" length="17.28" shape="752.60,2281.16 749.09,2284.90 746.56,2287.40 743.71,2289.43 739.20,2291.79"/>
+ </edge>
+ <edge id=":243489891_13" function="internal">
+ <lane id=":243489891_13_0" index="0" speed="27.78" length="16.10" shape="750.22,2278.88 746.95,2282.37 744.61,2284.71 741.96,2286.61 737.76,2288.82"/>
+ </edge>
+ <edge id=":243489891_14" function="internal">
+ <lane id=":243489891_14_0" index="0" speed="25.00" length="13.27" shape="750.22,2278.88 747.52,2282.04 745.67,2285.01 744.65,2287.82 744.48,2290.44"/>
+ </edge>
+ <edge id=":243489891_15" function="internal">
+ <lane id=":243489891_15_0" index="0" speed="22.22" length="11.21" shape="747.58,2288.17 747.93,2291.31 748.28,2293.73 748.68,2296.14 749.18,2299.26"/>
+ </edge>
+ <edge id=":243489891_16" function="internal">
+ <lane id=":243489891_16_0" index="0" speed="25.00" length="11.13" shape="747.58,2288.17 746.82,2286.75 744.93,2286.38 741.91,2287.07 737.76,2288.82"/>
+ </edge>
+ <edge id=":243489891_17" function="internal">
+ <lane id=":243489891_17_0" index="0" speed="22.22" length="5.60" shape="747.58,2288.17 747.66,2289.90 747.17,2290.85 746.11,2291.03 744.48,2290.44"/>
+ </edge>
+ <edge id=":248913124_0" function="internal">
+ <lane id=":248913124_0_0" index="0" speed="25.00" length="3.37" shape="1420.44,1928.03 1419.21,1928.62 1418.29,1928.94 1417.66,1928.99 1417.32,1928.78"/>
+ </edge>
+ <edge id=":248913124_1" function="internal">
+ <lane id=":248913124_1_0" index="0" speed="27.78" length="6.21" shape="1420.44,1928.03 1414.94,1930.92"/>
+ </edge>
+ <edge id=":248913124_2" function="internal">
+ <lane id=":248913124_2_0" index="0" speed="27.78" length="2.41" shape="1420.44,1928.03 1418.96,1927.88 1418.21,1927.34"/>
+ </edge>
+ <edge id=":248913124_9" function="internal">
+ <lane id=":248913124_9_0" index="0" speed="27.78" length="2.41" shape="1418.21,1927.34 1418.20,1926.41 1418.91,1925.11"/>
+ </edge>
+ <edge id=":248913124_3" function="internal">
+ <lane id=":248913124_3_0" index="0" speed="25.00" length="3.10" shape="1416.15,1926.52 1416.32,1926.44 1416.84,1926.18 1417.70,1925.74 1418.91,1925.11"/>
+ </edge>
+ <edge id=":248913124_4" function="internal">
+ <lane id=":248913124_4_0" index="0" speed="22.22" length="2.54" shape="1416.15,1926.52 1417.32,1928.78"/>
+ </edge>
+ <edge id=":248913124_5" function="internal">
+ <lane id=":248913124_5_0" index="0" speed="25.00" length="5.20" shape="1416.15,1926.52 1416.65,1927.90 1416.62,1929.10 1416.05,1930.10 1414.94,1930.92"/>
+ </edge>
+ <edge id=":248913124_6" function="internal">
+ <lane id=":248913124_6_0" index="0" speed="27.78" length="6.22" shape="1413.40,1928.00 1418.91,1925.11"/>
+ </edge>
+ <edge id=":248913124_7" function="internal">
+ <lane id=":248913124_7_0" index="0" speed="25.00" length="4.55" shape="1413.40,1928.00 1414.68,1927.51 1415.76,1927.47 1416.64,1927.89 1417.32,1928.78"/>
+ </edge>
+ <edge id=":248913124_8" function="internal">
+ <lane id=":248913124_8_0" index="0" speed="27.78" length="2.41" shape="1413.40,1928.00 1414.88,1928.15 1415.63,1928.69"/>
+ </edge>
+ <edge id=":248913124_10" function="internal">
+ <lane id=":248913124_10_0" index="0" speed="27.78" length="2.41" shape="1415.63,1928.69 1415.65,1929.61 1414.94,1930.92"/>
+ </edge>
+ <edge id=":248913130_0" function="internal">
+ <lane id=":248913130_0_0" index="0" speed="18.06" length="5.01" shape="1266.71,1808.95 1265.59,1809.74 1264.99,1810.70 1264.93,1811.83 1265.38,1813.13"/>
+ </edge>
+ <edge id=":248913130_1" function="internal">
+ <lane id=":248913130_1_0" index="0" speed="13.89" length="4.82" shape="1266.71,1808.95 1265.23,1808.78 1264.48,1808.24 1264.47,1807.31 1265.19,1806.01"/>
+ </edge>
+ <edge id=":248913130_2" function="internal">
+ <lane id=":248913130_2_0" index="0" speed="18.06" length="5.04" shape="1260.94,1804.75 1261.75,1805.84 1262.73,1806.42 1263.88,1806.48 1265.19,1806.01"/>
+ </edge>
+ <edge id=":248913130_3" function="internal">
+ <lane id=":248913130_3_0" index="0" speed="22.22" length="9.48" shape="1260.94,1804.75 1265.38,1813.13"/>
+ </edge>
+ <edge id=":248913131_0" function="internal">
+ <lane id=":248913131_0_0" index="0" speed="13.89" length="5.06" shape="1338.97,1770.79 1337.85,1771.61 1337.25,1772.59 1337.17,1773.73 1337.63,1775.03"/>
+ </edge>
+ <edge id=":248913131_1" function="internal">
+ <lane id=":248913131_1_0" index="0" speed="13.89" length="6.26" shape="1338.97,1770.79 1333.44,1773.73"/>
+ </edge>
+ <edge id=":248913131_2" function="internal">
+ <lane id=":248913131_2_0" index="0" speed="13.89" length="2.41" shape="1338.97,1770.79 1337.49,1770.64 1336.74,1770.11"/>
+ </edge>
+ <edge id=":248913131_9" function="internal">
+ <lane id=":248913131_9_0" index="0" speed="13.89" length="2.41" shape="1336.74,1770.11 1336.72,1769.18 1337.43,1767.88"/>
+ </edge>
+ <edge id=":248913131_3" function="internal">
+ <lane id=":248913131_3_0" index="0" speed="13.89" length="5.01" shape="1333.24,1766.57 1334.04,1767.69 1335.00,1768.28 1336.13,1768.34 1337.43,1767.88"/>
+ </edge>
+ <edge id=":248913131_4" function="internal">
+ <lane id=":248913131_4_0" index="0" speed="13.89" length="9.53" shape="1333.24,1766.57 1337.63,1775.03"/>
+ </edge>
+ <edge id=":248913131_5" function="internal">
+ <lane id=":248913131_5_0" index="0" speed="13.89" length="7.89" shape="1333.24,1766.57 1334.36,1769.15 1334.77,1771.21 1334.46,1772.73 1333.44,1773.73"/>
+ </edge>
+ <edge id=":248913131_6" function="internal">
+ <lane id=":248913131_6_0" index="0" speed="13.89" length="6.26" shape="1331.89,1770.81 1337.43,1767.88"/>
+ </edge>
+ <edge id=":248913131_7" function="internal">
+ <lane id=":248913131_7_0" index="0" speed="13.89" length="4.74" shape="1331.89,1770.81 1333.30,1770.52 1334.72,1771.13 1335.94,1772.40"/>
+ </edge>
+ <edge id=":248913131_10" function="internal">
+ <lane id=":248913131_10_0" index="0" speed="13.89" length="3.13" shape="1335.94,1772.40 1336.16,1772.63 1337.63,1775.03"/>
+ </edge>
+ <edge id=":248913131_8" function="internal">
+ <lane id=":248913131_8_0" index="0" speed="13.89" length="2.41" shape="1331.89,1770.81 1333.37,1770.96 1334.13,1771.50"/>
+ </edge>
+ <edge id=":248913131_11" function="internal">
+ <lane id=":248913131_11_0" index="0" speed="13.89" length="2.41" shape="1334.13,1771.50 1334.15,1772.42 1333.44,1773.73"/>
+ </edge>
+ <edge id=":248913133_0" function="internal">
+ <lane id=":248913133_0_0" index="0" speed="13.89" length="5.01" shape="1409.96,1736.65 1409.16,1735.53 1408.19,1734.94 1407.06,1734.88 1405.77,1735.34"/>
+ </edge>
+ <edge id=":248913133_1" function="internal">
+ <lane id=":248913133_1_0" index="0" speed="13.89" length="9.52" shape="1409.96,1736.65 1405.58,1728.19"/>
+ </edge>
+ <edge id=":248913133_2" function="internal">
+ <lane id=":248913133_2_0" index="0" speed="13.89" length="7.87" shape="1409.96,1736.65 1408.84,1734.07 1408.43,1732.02 1408.74,1730.50 1409.76,1729.51"/>
+ </edge>
+ <edge id=":248913133_3" function="internal">
+ <lane id=":248913133_3_0" index="0" speed="13.89" length="6.24" shape="1411.29,1732.44 1405.77,1735.34"/>
+ </edge>
+ <edge id=":248913133_4" function="internal">
+ <lane id=":248913133_4_0" index="0" speed="13.89" length="4.72" shape="1411.29,1732.44 1409.90,1732.71 1408.48,1732.10 1407.27,1730.83"/>
+ </edge>
+ <edge id=":248913133_9" function="internal">
+ <lane id=":248913133_9_0" index="0" speed="13.89" length="3.13" shape="1407.27,1730.83 1407.04,1730.59 1405.58,1728.19"/>
+ </edge>
+ <edge id=":248913133_5" function="internal">
+ <lane id=":248913133_5_0" index="0" speed="13.89" length="2.41" shape="1411.29,1732.44 1409.81,1732.28 1409.06,1731.74"/>
+ </edge>
+ <edge id=":248913133_10" function="internal">
+ <lane id=":248913133_10_0" index="0" speed="13.89" length="2.41" shape="1409.06,1731.74 1409.05,1730.82 1409.76,1729.51"/>
+ </edge>
+ <edge id=":248913133_6" function="internal">
+ <lane id=":248913133_6_0" index="0" speed="13.89" length="5.06" shape="1404.22,1732.43 1405.35,1731.61 1405.96,1730.63 1406.03,1729.49 1405.58,1728.19"/>
+ </edge>
+ <edge id=":248913133_7" function="internal">
+ <lane id=":248913133_7_0" index="0" speed="13.89" length="6.26" shape="1404.22,1732.43 1409.76,1729.51"/>
+ </edge>
+ <edge id=":248913133_8" function="internal">
+ <lane id=":248913133_8_0" index="0" speed="13.89" length="2.41" shape="1404.22,1732.43 1405.70,1732.58 1406.45,1733.11"/>
+ </edge>
+ <edge id=":248913133_11" function="internal">
+ <lane id=":248913133_11_0" index="0" speed="13.89" length="2.41" shape="1406.45,1733.11 1406.48,1734.03 1405.77,1735.34"/>
+ </edge>
+ <edge id=":248913142_0" function="internal">
+ <lane id=":248913142_0_0" index="0" speed="13.89" length="5.02" shape="1446.76,1807.79 1445.96,1806.67 1444.99,1806.07 1443.86,1806.01 1442.57,1806.49"/>
+ </edge>
+ <edge id=":248913142_1" function="internal">
+ <lane id=":248913142_1_0" index="0" speed="13.89" length="9.54" shape="1446.76,1807.79 1442.37,1799.31"/>
+ </edge>
+ <edge id=":248913142_2" function="internal">
+ <lane id=":248913142_2_0" index="0" speed="13.89" length="7.91" shape="1446.76,1807.79 1445.64,1805.20 1445.23,1803.14 1445.54,1801.61 1446.56,1800.61"/>
+ </edge>
+ <edge id=":248913142_3" function="internal">
+ <lane id=":248913142_3_0" index="0" speed="13.89" length="6.29" shape="1448.12,1803.52 1442.57,1806.49"/>
+ </edge>
+ <edge id=":248913142_4" function="internal">
+ <lane id=":248913142_4_0" index="0" speed="13.89" length="4.75" shape="1448.12,1803.52 1446.71,1803.82 1445.28,1803.21 1444.06,1801.94"/>
+ </edge>
+ <edge id=":248913142_9" function="internal">
+ <lane id=":248913142_9_0" index="0" speed="13.89" length="3.14" shape="1444.06,1801.94 1443.84,1801.71 1442.37,1799.31"/>
+ </edge>
+ <edge id=":248913142_5" function="internal">
+ <lane id=":248913142_5_0" index="0" speed="13.89" length="2.41" shape="1448.12,1803.52 1446.63,1803.38 1445.88,1802.84"/>
+ </edge>
+ <edge id=":248913142_10" function="internal">
+ <lane id=":248913142_10_0" index="0" speed="13.89" length="2.41" shape="1445.88,1802.84 1445.86,1801.92 1446.56,1800.61"/>
+ </edge>
+ <edge id=":248913142_6" function="internal">
+ <lane id=":248913142_6_0" index="0" speed="13.89" length="5.09" shape="1441.01,1803.58 1442.14,1802.75 1442.75,1801.76 1442.82,1800.61 1442.37,1799.31"/>
+ </edge>
+ <edge id=":248913142_7" function="internal">
+ <lane id=":248913142_7_0" index="0" speed="13.89" length="6.29" shape="1441.01,1803.58 1446.56,1800.61"/>
+ </edge>
+ <edge id=":248913142_8" function="internal">
+ <lane id=":248913142_8_0" index="0" speed="13.89" length="2.41" shape="1441.01,1803.58 1442.49,1803.72 1443.25,1804.25"/>
+ </edge>
+ <edge id=":248913142_11" function="internal">
+ <lane id=":248913142_11_0" index="0" speed="13.89" length="2.41" shape="1443.25,1804.25 1443.27,1805.17 1442.57,1806.49"/>
+ </edge>
+ <edge id=":248913144_0" function="internal">
+ <lane id=":248913144_0_0" index="0" speed="13.89" length="5.09" shape="1375.96,1842.10 1374.83,1842.93 1374.22,1843.92 1374.15,1845.06 1374.60,1846.37"/>
+ </edge>
+ <edge id=":248913144_1" function="internal">
+ <lane id=":248913144_1_0" index="0" speed="13.89" length="6.29" shape="1375.96,1842.10 1370.42,1845.07"/>
+ </edge>
+ <edge id=":248913144_2" function="internal">
+ <lane id=":248913144_2_0" index="0" speed="13.89" length="2.41" shape="1375.96,1842.10 1374.48,1841.96 1373.73,1841.43"/>
+ </edge>
+ <edge id=":248913144_9" function="internal">
+ <lane id=":248913144_9_0" index="0" speed="13.89" length="2.41" shape="1373.73,1841.43 1373.70,1840.50 1374.40,1839.19"/>
+ </edge>
+ <edge id=":248913144_3" function="internal">
+ <lane id=":248913144_3_0" index="0" speed="13.89" length="5.01" shape="1370.21,1837.89 1371.01,1839.01 1371.98,1839.60 1373.11,1839.66 1374.40,1839.19"/>
+ </edge>
+ <edge id=":248913144_4" function="internal">
+ <lane id=":248913144_4_0" index="0" speed="13.89" length="9.54" shape="1370.21,1837.89 1374.60,1846.37"/>
+ </edge>
+ <edge id=":248913144_5" function="internal">
+ <lane id=":248913144_5_0" index="0" speed="13.89" length="7.90" shape="1370.21,1837.89 1371.33,1840.48 1371.74,1842.54 1371.44,1844.07 1370.42,1845.07"/>
+ </edge>
+ <edge id=":248913144_6" function="internal">
+ <lane id=":248913144_6_0" index="0" speed="13.89" length="6.29" shape="1368.86,1842.16 1374.40,1839.19"/>
+ </edge>
+ <edge id=":248913144_7" function="internal">
+ <lane id=":248913144_7_0" index="0" speed="13.89" length="4.75" shape="1368.86,1842.16 1370.27,1841.86 1371.69,1842.46 1372.91,1843.73"/>
+ </edge>
+ <edge id=":248913144_10" function="internal">
+ <lane id=":248913144_10_0" index="0" speed="13.89" length="3.14" shape="1372.91,1843.73 1373.14,1843.97 1374.60,1846.37"/>
+ </edge>
+ <edge id=":248913144_8" function="internal">
+ <lane id=":248913144_8_0" index="0" speed="13.89" length="2.41" shape="1368.86,1842.16 1370.34,1842.30 1371.09,1842.83"/>
+ </edge>
+ <edge id=":248913144_11" function="internal">
+ <lane id=":248913144_11_0" index="0" speed="13.89" length="2.41" shape="1371.09,1842.83 1371.12,1843.76 1370.42,1845.07"/>
+ </edge>
+ <edge id=":248913145_0" function="internal">
+ <lane id=":248913145_0_0" index="0" speed="18.06" length="5.05" shape="1304.18,1880.49 1303.05,1881.31 1302.44,1882.29 1302.35,1883.42 1302.79,1884.71"/>
+ </edge>
+ <edge id=":248913145_1" function="internal">
+ <lane id=":248913145_1_0" index="0" speed="13.89" length="4.82" shape="1304.18,1880.49 1302.70,1880.34 1301.95,1879.81 1301.93,1878.89 1302.63,1877.58"/>
+ </edge>
+ <edge id=":248913145_2" function="internal">
+ <lane id=":248913145_2_0" index="0" speed="18.06" length="5.01" shape="1298.44,1876.29 1299.24,1877.40 1300.21,1877.99 1301.34,1878.05 1302.63,1877.58"/>
+ </edge>
+ <edge id=":248913145_3" function="internal">
+ <lane id=":248913145_3_0" index="0" speed="22.22" length="9.48" shape="1298.44,1876.29 1302.79,1884.71"/>
+ </edge>
+ <edge id=":248913154_0" function="internal">
+ <lane id=":248913154_0_0" index="0" speed="27.78" length="4.82" shape="1815.47,1392.80 1816.95,1392.96 1817.70,1393.50 1817.71,1394.42 1817.00,1395.72"/>
+ </edge>
+ <edge id=":248913200_0" function="internal">
+ <lane id=":248913200_0_0" index="0" speed="8.33" length="8.23" shape="1290.98,1235.15 1290.22,1233.01 1290.35,1231.18 1291.37,1229.65 1293.28,1228.42"/>
+ </edge>
+ <edge id=":248913200_1" function="internal">
+ <lane id=":248913200_1_0" index="0" speed="8.33" length="2.41" shape="1290.98,1235.15 1291.13,1233.67 1291.67,1232.93"/>
+ </edge>
+ <edge id=":248913200_4" function="internal">
+ <lane id=":248913200_4_0" index="0" speed="8.33" length="2.41" shape="1291.67,1232.93 1292.59,1232.91 1293.90,1233.62"/>
+ </edge>
+ <edge id=":248913200_2" function="internal">
+ <lane id=":248913200_2_0" index="0" speed="8.33" length="2.69" shape="1294.65,1231.42 1294.03,1231.82 1293.69,1232.32 1293.65,1232.92 1293.90,1233.62"/>
+ </edge>
+ <edge id=":248913200_3" function="internal">
+ <lane id=":248913200_3_0" index="0" speed="8.33" length="2.41" shape="1294.65,1231.42 1293.18,1231.18 1292.47,1230.60"/>
+ </edge>
+ <edge id=":248913200_5" function="internal">
+ <lane id=":248913200_5_0" index="0" speed="8.33" length="2.41" shape="1292.47,1230.60 1292.50,1229.68 1293.28,1228.42"/>
+ </edge>
+ <edge id=":249404225_0" function="internal">
+ <lane id=":249404225_0_0" index="0" speed="83.33" length="0.10" shape="1742.68,2818.37 1742.69,2818.37"/>
+ </edge>
+ <edge id=":249404225_1" function="internal">
+ <lane id=":249404225_1_0" index="0" speed="83.33" length="0.10" shape="1742.68,2818.37 1742.67,2818.38"/>
+ </edge>
+ <edge id=":249404225_4" function="internal">
+ <lane id=":249404225_4_0" index="0" speed="83.33" length="0.10" shape="1742.67,2818.38 1742.65,2818.38"/>
+ </edge>
+ <edge id=":249404225_2" function="internal">
+ <lane id=":249404225_2_0" index="0" speed="83.33" length="0.10" shape="1742.65,2818.38 1742.65,2818.38"/>
+ </edge>
+ <edge id=":249404225_3" function="internal">
+ <lane id=":249404225_3_0" index="0" speed="83.33" length="0.10" shape="1742.65,2818.38 1742.67,2818.38"/>
+ </edge>
+ <edge id=":249404225_5" function="internal">
+ <lane id=":249404225_5_0" index="0" speed="83.33" length="0.10" shape="1742.67,2818.38 1742.69,2818.37"/>
+ </edge>
+ <edge id=":250683336_0" function="internal">
+ <lane id=":250683336_0_0" index="0" speed="22.22" length="6.29" shape="1210.80,2377.38 1207.86,2371.82"/>
+ </edge>
+ <edge id=":250683336_1" function="internal">
+ <lane id=":250683336_1_0" index="0" speed="22.22" length="4.77" shape="1210.80,2377.38 1210.50,2375.96 1211.10,2374.53 1212.38,2373.32"/>
+ </edge>
+ <edge id=":250683336_9" function="internal">
+ <lane id=":250683336_9_0" index="0" speed="22.22" length="3.14" shape="1212.38,2373.32 1212.62,2373.10 1215.04,2371.65"/>
+ </edge>
+ <edge id=":250683336_2" function="internal">
+ <lane id=":250683336_2_0" index="0" speed="22.22" length="2.41" shape="1210.80,2377.38 1210.94,2375.90 1211.48,2375.15"/>
+ </edge>
+ <edge id=":250683336_10" function="internal">
+ <lane id=":250683336_10_0" index="0" speed="22.22" length="2.41" shape="1211.48,2375.15 1212.40,2375.13 1213.71,2375.83"/>
+ </edge>
+ <edge id=":250683336_3" function="internal">
+ <lane id=":250683336_3_0" index="0" speed="22.22" length="5.07" shape="1210.79,2370.29 1211.60,2371.42 1212.58,2372.02 1213.72,2372.10 1215.04,2371.65"/>
+ </edge>
+ <edge id=":250683336_4" function="internal">
+ <lane id=":250683336_4_0" index="0" speed="22.22" length="6.26" shape="1210.79,2370.29 1213.71,2375.83"/>
+ </edge>
+ <edge id=":250683336_5" function="internal">
+ <lane id=":250683336_5_0" index="0" speed="22.22" length="2.41" shape="1210.79,2370.29 1210.63,2371.77 1210.09,2372.52"/>
+ </edge>
+ <edge id=":250683336_11" function="internal">
+ <lane id=":250683336_11_0" index="0" speed="22.22" length="2.41" shape="1210.09,2372.52 1209.17,2372.53 1207.86,2371.82"/>
+ </edge>
+ <edge id=":250683336_6" function="internal">
+ <lane id=":250683336_6_0" index="0" speed="22.22" length="5.00" shape="1206.55,2376.00 1207.66,2375.20 1208.25,2374.24 1208.32,2373.11 1207.86,2371.82"/>
+ </edge>
+ <edge id=":250683336_7" function="internal">
+ <lane id=":250683336_7_0" index="0" speed="22.22" length="9.54" shape="1206.55,2376.00 1215.04,2371.65"/>
+ </edge>
+ <edge id=":250683336_8" function="internal">
+ <lane id=":250683336_8_0" index="0" speed="22.22" length="7.91" shape="1206.55,2376.00 1209.12,2374.88 1211.18,2374.48 1212.71,2374.80 1213.71,2375.83"/>
+ </edge>
+ <edge id=":250683337_0" function="internal">
+ <lane id=":250683337_0_0" index="0" speed="22.22" length="6.20" shape="1435.82,2260.95 1432.93,2255.47"/>
+ </edge>
+ <edge id=":250683337_1" function="internal">
+ <lane id=":250683337_1_0" index="0" speed="22.22" length="5.00" shape="1431.63,2259.65 1432.74,2258.85 1433.33,2257.89 1433.39,2256.76 1432.93,2255.47"/>
+ </edge>
+ <edge id=":250683362_0" function="internal">
+ <lane id=":250683362_0_0" index="0" speed="13.89" length="6.24" shape="1325.16,2318.33 1322.32,2312.78"/>
+ </edge>
+ <edge id=":250683362_1" function="internal">
+ <lane id=":250683362_1_0" index="0" speed="18.06" length="5.02" shape="1325.16,2318.33 1324.70,2317.04 1324.77,2315.91 1325.36,2314.94 1326.49,2314.14"/>
+ </edge>
+ <edge id=":250683362_2" function="internal">
+ <lane id=":250683362_2_0" index="0" speed="18.06" length="5.05" shape="1320.97,2317.02 1322.08,2316.22 1322.68,2315.24 1322.76,2314.10 1322.32,2312.78"/>
+ </edge>
+ <edge id=":250683362_3" function="internal">
+ <lane id=":250683362_3_0" index="0" speed="22.22" length="6.23" shape="1320.97,2317.02 1326.49,2314.14"/>
+ </edge>
+ <edge id=":250683402_0" function="internal">
+ <lane id=":250683402_0_0" index="0" speed="22.22" length="5.02" shape="1266.32,2342.31 1267.11,2343.44 1268.07,2344.04 1269.20,2344.11 1270.50,2343.64"/>
+ </edge>
+ <edge id=":250683402_1" function="internal">
+ <lane id=":250683402_1_0" index="0" speed="22.22" length="6.23" shape="1264.96,2346.50 1270.50,2343.64"/>
+ </edge>
+ <edge id=":250684983_0" function="internal">
+ <lane id=":250684983_0_0" index="0" speed="22.22" length="0.10" shape="1311.62,2568.91 1311.62,2568.91"/>
+ </edge>
+ <edge id=":250684983_1" function="internal">
+ <lane id=":250684983_1_0" index="0" speed="22.22" length="2.41" shape="1311.62,2568.91 1311.78,2567.43 1312.32,2566.69"/>
+ </edge>
+ <edge id=":250684983_4" function="internal">
+ <lane id=":250684983_4_0" index="0" speed="22.22" length="2.41" shape="1312.32,2566.69 1313.24,2566.67 1314.55,2567.39"/>
+ </edge>
+ <edge id=":250684983_2" function="internal">
+ <lane id=":250684983_2_0" index="0" speed="22.22" length="0.10" shape="1314.55,2567.39 1314.55,2567.39"/>
+ </edge>
+ <edge id=":250684983_3" function="internal">
+ <lane id=":250684983_3_0" index="0" speed="22.22" length="2.41" shape="1314.55,2567.39 1314.39,2568.87 1313.84,2569.61"/>
+ </edge>
+ <edge id=":250684983_5" function="internal">
+ <lane id=":250684983_5_0" index="0" speed="22.22" length="2.41" shape="1313.84,2569.61 1312.92,2569.63 1311.62,2568.91"/>
+ </edge>
+ <edge id=":250685721_0" function="internal">
+ <lane id=":250685721_0_0" index="0" speed="22.22" length="7.25" shape="774.24,2476.57 774.79,2478.89 775.63,2479.80 776.75,2479.29 778.17,2477.37"/>
+ </edge>
+ <edge id=":250685721_1" function="internal">
+ <lane id=":250685721_1_0" index="0" speed="22.22" length="4.82" shape="774.24,2476.57 773.59,2477.90 772.83,2478.42 771.95,2478.12 770.97,2477.00"/>
+ </edge>
+ <edge id=":250685766_0" function="internal">
+ <lane id=":250685766_0_0" index="0" speed="22.22" length="5.01" shape="1164.61,2288.89 1163.81,2287.78 1162.84,2287.19 1161.71,2287.13 1160.42,2287.58"/>
+ </edge>
+ <edge id=":250685766_1" function="internal">
+ <lane id=":250685766_1_0" index="0" speed="22.22" length="6.21" shape="1164.61,2288.89 1161.72,2283.40"/>
+ </edge>
+ <edge id=":250685766_2" function="internal">
+ <lane id=":250685766_2_0" index="0" speed="22.22" length="2.41" shape="1164.61,2288.89 1164.77,2287.42 1165.31,2286.67"/>
+ </edge>
+ <edge id=":250685766_9" function="internal">
+ <lane id=":250685766_9_0" index="0" speed="22.22" length="2.41" shape="1165.31,2286.67 1166.23,2286.65 1167.53,2287.37"/>
+ </edge>
+ <edge id=":250685766_3" function="internal">
+ <lane id=":250685766_3_0" index="0" speed="22.22" length="5.02" shape="1168.84,2283.16 1167.73,2283.97 1167.14,2284.94 1167.08,2286.07 1167.53,2287.37"/>
+ </edge>
+ <edge id=":250685766_4" function="internal">
+ <lane id=":250685766_4_0" index="0" speed="22.22" length="9.51" shape="1168.84,2283.16 1160.42,2287.58"/>
+ </edge>
+ <edge id=":250685766_5" function="internal">
+ <lane id=":250685766_5_0" index="0" speed="22.22" length="3.13" shape="1168.84,2283.16 1166.27,2284.30 1165.96,2284.36"/>
+ </edge>
+ <edge id=":250685766_10" function="internal">
+ <lane id=":250685766_10_0" index="0" speed="22.22" length="4.73" shape="1165.96,2284.36 1164.23,2284.72 1162.72,2284.42 1161.72,2283.40"/>
+ </edge>
+ <edge id=":250685766_6" function="internal">
+ <lane id=":250685766_6_0" index="0" speed="22.22" length="6.23" shape="1164.64,2281.86 1167.53,2287.37"/>
+ </edge>
+ <edge id=":250685766_7" function="internal">
+ <lane id=":250685766_7_0" index="0" speed="22.22" length="4.74" shape="1164.64,2281.86 1164.93,2283.25 1164.32,2284.67 1163.04,2285.90"/>
+ </edge>
+ <edge id=":250685766_11" function="internal">
+ <lane id=":250685766_11_0" index="0" speed="22.22" length="3.12" shape="1163.04,2285.90 1162.81,2286.12 1160.42,2287.58"/>
+ </edge>
+ <edge id=":250685766_8" function="internal">
+ <lane id=":250685766_8_0" index="0" speed="22.22" length="2.41" shape="1164.64,2281.86 1164.49,2283.34 1163.95,2284.09"/>
+ </edge>
+ <edge id=":250685766_12" function="internal">
+ <lane id=":250685766_12_0" index="0" speed="22.22" length="2.41" shape="1163.95,2284.09 1163.03,2284.11 1161.72,2283.40"/>
+ </edge>
+ <edge id=":250685816_0" function="internal">
+ <lane id=":250685816_0_0" index="0" speed="18.06" length="6.34" shape="1280.72,2229.27 1279.63,2227.51 1278.46,2226.47 1277.19,2226.14 1275.85,2226.52"/>
+ </edge>
+ <edge id=":250685816_1" function="internal">
+ <lane id=":250685816_1_0" index="0" speed="18.06" length="7.82" shape="1280.72,2229.27 1279.65,2226.69 1279.27,2224.64 1279.58,2223.13 1280.58,2222.14"/>
+ </edge>
+ <edge id=":250685816_2" function="internal">
+ <lane id=":250685816_2_0" index="0" speed="22.22" length="6.45" shape="1282.13,2225.06 1275.85,2226.52"/>
+ </edge>
+ <edge id=":250685816_3" function="internal">
+ <lane id=":250685816_3_0" index="0" speed="22.22" length="4.82" shape="1282.13,2225.06 1280.65,2224.91 1279.90,2224.38 1279.88,2223.45 1280.58,2222.14"/>
+ </edge>
+ <edge id=":250685816_4" function="internal">
+ <lane id=":250685816_4_0" index="0" speed="18.06" length="5.00" shape="1276.39,2220.86 1277.20,2221.97 1278.17,2222.55 1279.29,2222.61 1280.58,2222.14"/>
+ </edge>
+ <edge id=":250685816_5" function="internal">
+ <lane id=":250685816_5_0" index="0" speed="18.06" length="6.40" shape="1276.39,2220.86 1277.19,2222.79 1277.37,2224.37 1276.92,2225.61 1275.85,2226.52"/>
+ </edge>
+ <edge id=":250685829_0" function="internal">
+ <lane id=":250685829_0_0" index="0" speed="22.22" length="4.10" shape="1388.60,2171.07 1388.00,2170.29 1387.20,2169.93 1386.22,2169.98 1385.05,2170.45"/>
+ </edge>
+ <edge id=":250685829_1" function="internal">
+ <lane id=":250685829_1_0" index="0" speed="22.22" length="8.62" shape="1388.60,2171.07 1384.54,2163.46"/>
+ </edge>
+ <edge id=":250685829_2" function="internal">
+ <lane id=":250685829_2_0" index="0" speed="22.22" length="10.66" shape="1388.60,2171.07 1387.91,2168.71 1388.38,2166.52 1390.02,2164.51 1392.84,2162.66"/>
+ </edge>
+ <edge id=":250685829_3" function="internal">
+ <lane id=":250685829_3_0" index="0" speed="13.89" length="9.68" shape="1388.60,2171.07 1387.75,2168.71 1388.36,2167.69 1390.44,2168.00 1393.97,2169.63"/>
+ </edge>
+ <edge id=":250685829_4" function="internal">
+ <lane id=":250685829_4_0" index="0" speed="13.89" length="7.83" shape="1392.41,2172.53 1389.85,2171.27 1387.77,2170.51 1386.17,2170.23 1385.05,2170.45"/>
+ </edge>
+ <edge id=":250685829_5" function="internal">
+ <lane id=":250685829_5_0" index="0" speed="13.89" length="12.24" shape="1392.41,2172.53 1389.66,2170.73 1387.72,2168.76 1386.15,2166.40 1384.54,2163.46"/>
+ </edge>
+ <edge id=":250685829_6" function="internal">
+ <lane id=":250685829_6_0" index="0" speed="13.89" length="14.04" shape="1392.41,2172.53 1389.01,2170.07 1387.95,2167.61 1389.23,2165.14 1392.84,2162.66"/>
+ </edge>
+ <edge id=":250685829_7" function="internal">
+ <lane id=":250685829_7_0" index="0" speed="5.56" length="4.82" shape="1392.41,2172.53 1391.71,2171.22 1391.74,2170.30 1392.49,2169.77 1393.97,2169.63"/>
+ </edge>
+ <edge id=":250685829_8" function="internal">
+ <lane id=":250685829_8_0" index="0" speed="13.89" length="5.75" shape="1394.36,2165.59 1392.83,2166.62 1392.25,2167.64 1392.63,2168.64 1393.97,2169.63"/>
+ </edge>
+ <edge id=":250685829_9" function="internal">
+ <lane id=":250685829_9_0" index="0" speed="22.22" length="10.50" shape="1394.36,2165.59 1391.65,2166.99 1389.70,2168.00 1387.74,2169.03 1385.05,2170.45"/>
+ </edge>
+ <edge id=":250685829_10" function="internal">
+ <lane id=":250685829_10_0" index="0" speed="22.22" length="8.15" shape="1394.36,2165.59 1391.21,2166.77 1388.52,2166.81 1386.64,2165.88"/>
+ </edge>
+ <edge id=":250685829_16" function="internal">
+ <lane id=":250685829_16_0" index="0" speed="22.22" length="3.24" shape="1386.64,2165.88 1386.30,2165.71 1384.54,2163.46"/>
+ </edge>
+ <edge id=":250685829_11" function="internal">
+ <lane id=":250685829_11_0" index="0" speed="22.22" length="2.41" shape="1394.36,2165.59 1392.88,2165.43 1392.13,2164.88"/>
+ </edge>
+ <edge id=":250685829_17" function="internal">
+ <lane id=":250685829_17_0" index="0" speed="22.22" length="2.41" shape="1392.13,2164.88 1392.12,2163.96 1392.84,2162.66"/>
+ </edge>
+ <edge id=":250685829_12" function="internal">
+ <lane id=":250685829_12_0" index="0" speed="22.22" length="4.80" shape="1383.50,2167.53 1384.51,2166.78 1385.02,2165.85 1385.03,2164.74 1384.54,2163.46"/>
+ </edge>
+ <edge id=":250685829_13" function="internal">
+ <lane id=":250685829_13_0" index="0" speed="22.22" length="10.53" shape="1383.50,2167.53 1386.20,2166.11 1388.16,2165.08 1390.13,2164.06 1392.84,2162.66"/>
+ </edge>
+ <edge id=":250685829_14" function="internal">
+ <lane id=":250685829_14_0" index="0" speed="13.89" length="6.66" shape="1383.50,2167.53 1385.40,2167.01 1387.78,2167.18 1389.98,2167.85"/>
+ </edge>
+ <edge id=":250685829_18" function="internal">
+ <lane id=":250685829_18_0" index="0" speed="13.89" length="4.37" shape="1389.98,2167.85 1390.63,2168.05 1393.97,2169.63"/>
+ </edge>
+ <edge id=":250685829_15" function="internal">
+ <lane id=":250685829_15_0" index="0" speed="22.22" length="2.41" shape="1383.50,2167.53 1384.98,2167.68 1385.73,2168.22"/>
+ </edge>
+ <edge id=":250685829_19" function="internal">
+ <lane id=":250685829_19_0" index="0" speed="22.22" length="2.41" shape="1385.73,2168.22 1385.76,2169.14 1385.05,2170.45"/>
+ </edge>
+ <edge id=":250686694_0" function="internal">
+ <lane id=":250686694_0_0" index="0" speed="22.22" length="5.03" shape="1225.09,2253.31 1223.99,2254.11 1223.41,2255.08 1223.34,2256.23 1223.78,2257.54"/>
+ </edge>
+ <edge id=":250686694_1" function="internal">
+ <lane id=":250686694_1_0" index="0" speed="22.22" length="6.20" shape="1225.09,2253.31 1219.60,2256.21"/>
+ </edge>
+ <edge id=":250688445_0" function="internal">
+ <lane id=":250688445_0_0" index="0" speed="22.22" length="2.56" shape="1157.65,1257.29 1158.07,1257.85 1158.56,1258.15 1159.14,1258.19 1159.80,1257.95"/>
+ </edge>
+ <edge id=":250688540_0" function="internal">
+ <lane id=":250688540_0_0" index="0" speed="22.22" length="5.05" shape="1120.58,1187.63 1121.38,1188.77 1122.35,1189.35 1123.48,1189.39 1124.78,1188.89"/>
+ </edge>
+ <edge id=":250688540_1" function="internal">
+ <lane id=":250688540_1_0" index="0" speed="22.22" length="6.22" shape="1120.58,1187.63 1123.47,1193.15"/>
+ </edge>
+ <edge id=":250689131_0" function="internal">
+ <lane id=":250689131_0_0" index="0" speed="8.33" length="9.18" shape="1381.90,1270.34 1380.00,1261.36"/>
+ </edge>
+ <edge id=":250689131_1" function="internal">
+ <lane id=":250689131_1_0" index="0" speed="8.33" length="10.31" shape="1381.90,1270.34 1381.98,1268.03 1382.89,1265.91 1384.63,1263.99 1387.20,1262.26"/>
+ </edge>
+ <edge id=":250689131_2" function="internal">
+ <lane id=":250689131_2_0" index="0" speed="8.33" length="4.81" shape="1381.90,1270.34 1382.55,1269.01 1383.31,1268.49 1384.18,1268.79 1385.16,1269.90"/>
+ </edge>
+ <edge id=":250689131_3" function="internal">
+ <lane id=":250689131_3_0" index="0" speed="8.33" length="6.32" shape="1388.78,1265.16 1387.06,1266.27 1385.89,1267.42 1385.26,1268.64 1385.16,1269.90"/>
+ </edge>
+ <edge id=":250689131_4" function="internal">
+ <lane id=":250689131_4_0" index="0" speed="8.33" length="11.65" shape="1388.78,1265.16 1385.67,1266.31 1383.17,1266.07 1381.28,1264.42 1380.00,1261.36"/>
+ </edge>
+ <edge id=":250689131_5" function="internal">
+ <lane id=":250689131_5_0" index="0" speed="8.33" length="4.82" shape="1388.78,1265.16 1387.29,1265.03 1386.54,1264.50 1386.51,1263.58 1387.20,1262.26"/>
+ </edge>
+ <edge id=":250689131_6" function="internal">
+ <lane id=":250689131_6_0" index="0" speed="8.33" length="5.32" shape="1383.19,1260.53 1383.77,1261.92 1384.64,1262.68 1385.78,1262.79 1387.20,1262.26"/>
+ </edge>
+ <edge id=":250689131_7" function="internal">
+ <lane id=":250689131_7_0" index="0" speed="8.33" length="9.58" shape="1383.19,1260.53 1385.16,1269.90"/>
+ </edge>
+ <edge id=":250689131_8" function="internal">
+ <lane id=":250689131_8_0" index="0" speed="8.33" length="4.82" shape="1383.19,1260.53 1382.70,1261.93 1382.01,1262.54 1381.11,1262.35 1380.00,1261.36"/>
+ </edge>
+ <edge id=":250689186_0" function="internal">
+ <lane id=":250689186_0_0" index="0" speed="8.33" length="8.04" shape="1351.73,1227.31 1344.40,1224.03"/>
+ </edge>
+ <edge id=":250689186_1" function="internal">
+ <lane id=":250689186_1_0" index="0" speed="8.33" length="9.95" shape="1351.73,1227.31 1349.67,1225.57 1348.60,1223.56 1348.52,1221.29 1349.44,1218.74"/>
+ </edge>
+ <edge id=":250689186_2" function="internal">
+ <lane id=":250689186_2_0" index="0" speed="8.33" length="4.81" shape="1351.73,1227.31 1351.13,1225.95 1351.22,1225.04 1352.00,1224.56 1353.49,1224.52"/>
+ </edge>
+ <edge id=":250689186_3" function="internal">
+ <lane id=":250689186_3_0" index="0" speed="8.33" length="4.91" shape="1352.36,1220.29 1351.90,1221.54 1351.94,1222.67 1352.47,1223.66 1353.49,1224.52"/>
+ </edge>
+ <edge id=":250689186_4" function="internal">
+ <lane id=":250689186_4_0" index="0" speed="8.33" length="9.61" shape="1352.36,1220.29 1350.83,1222.46 1349.00,1223.80 1346.85,1224.33 1344.40,1224.03"/>
+ </edge>
+ <edge id=":250689186_5" function="internal">
+ <lane id=":250689186_5_0" index="0" speed="8.33" length="4.82" shape="1352.36,1220.29 1351.05,1221.00 1350.13,1220.98 1349.59,1220.22 1349.44,1218.74"/>
+ </edge>
+ <edge id=":250689186_6" function="internal">
+ <lane id=":250689186_6_0" index="0" speed="8.33" length="5.11" shape="1345.26,1220.84 1346.53,1220.99 1347.65,1220.68 1348.62,1219.94 1349.44,1218.74"/>
+ </edge>
+ <edge id=":250689186_7" function="internal">
+ <lane id=":250689186_7_0" index="0" speed="8.33" length="9.01" shape="1345.26,1220.84 1353.49,1224.52"/>
+ </edge>
+ <edge id=":250689186_8" function="internal">
+ <lane id=":250689186_8_0" index="0" speed="8.33" length="4.82" shape="1345.26,1220.84 1346.24,1221.96 1346.42,1222.87 1345.81,1223.56 1344.40,1224.03"/>
+ </edge>
+ <edge id=":250689201_0" function="internal">
+ <lane id=":250689201_0_0" index="0" speed="8.33" length="5.47" shape="1389.13,1291.47 1387.50,1291.60 1386.20,1292.04 1385.24,1292.80 1384.61,1293.87"/>
+ </edge>
+ <edge id=":250689201_1" function="internal">
+ <lane id=":250689201_1_0" index="0" speed="8.33" length="10.33" shape="1389.13,1291.47 1386.33,1291.03 1384.35,1289.80 1383.18,1287.78 1382.83,1284.97"/>
+ </edge>
+ <edge id=":250689201_2" function="internal">
+ <lane id=":250689201_2_0" index="0" speed="8.33" length="4.82" shape="1389.13,1291.47 1387.90,1290.62 1387.50,1289.79 1387.93,1288.97 1389.17,1288.17"/>
+ </edge>
+ <edge id=":250689201_3" function="internal">
+ <lane id=":250689201_3_0" index="0" speed="8.33" length="5.00" shape="1386.12,1285.02 1386.29,1286.38 1386.86,1287.36 1387.82,1287.95 1389.17,1288.17"/>
+ </edge>
+ <edge id=":250689201_4" function="internal">
+ <lane id=":250689201_4_0" index="0" speed="8.33" length="8.98" shape="1386.12,1285.02 1384.61,1293.87"/>
+ </edge>
+ <edge id=":250689201_5" function="internal">
+ <lane id=":250689201_5_0" index="0" speed="8.33" length="4.81" shape="1386.12,1285.02 1385.28,1286.24 1384.45,1286.64 1383.63,1286.21 1382.83,1284.97"/>
+ </edge>
+ <edge id=":250689201_6" function="internal">
+ <lane id=":250689201_6_0" index="0" speed="8.33" length="7.85" shape="1381.52,1292.71 1382.83,1284.97"/>
+ </edge>
+ <edge id=":250689201_7" function="internal">
+ <lane id=":250689201_7_0" index="0" speed="8.33" length="9.54" shape="1381.52,1292.71 1382.65,1290.69 1384.31,1289.26 1386.48,1288.42 1389.17,1288.17"/>
+ </edge>
+ <edge id=":250689201_8" function="internal">
+ <lane id=":250689201_8_0" index="0" speed="8.33" length="4.82" shape="1381.52,1292.71 1382.73,1291.84 1383.65,1291.75 1384.28,1292.42 1384.61,1293.87"/>
+ </edge>
+ <edge id=":250689290_0" function="internal">
+ <lane id=":250689290_0_0" index="0" speed="22.22" length="4.96" shape="1164.06,1609.78 1162.98,1610.58 1162.40,1611.55 1162.32,1612.67 1162.75,1613.96"/>
+ </edge>
+ <edge id=":250689290_1" function="internal">
+ <lane id=":250689290_1_0" index="0" speed="22.22" length="6.04" shape="1159.79,1608.70 1162.75,1613.96"/>
+ </edge>
+ <edge id=":252417165_0" function="internal">
+ <lane id=":252417165_0_0" index="0" speed="22.22" length="6.17" shape="1224.95,1564.19 1230.47,1561.43"/>
+ </edge>
+ <edge id=":252417165_1" function="internal">
+ <lane id=":252417165_1_0" index="0" speed="18.06" length="5.01" shape="1224.95,1564.19 1226.25,1563.77 1227.37,1563.87 1228.34,1564.48 1229.13,1565.60"/>
+ </edge>
+ <edge id=":252417189_0" function="internal">
+ <lane id=":252417189_0_0" index="0" speed="20.83" length="5.00" shape="1360.62,1641.23 1359.82,1640.11 1358.86,1639.52 1357.73,1639.45 1356.44,1639.91"/>
+ </edge>
+ <edge id=":252417189_1" function="internal">
+ <lane id=":252417189_1_0" index="0" speed="13.89" length="16.11" shape="1360.62,1641.23 1358.82,1637.74 1356.92,1634.07 1355.02,1630.40 1353.22,1626.91"/>
+ </edge>
+ <edge id=":252417189_2" function="internal">
+ <lane id=":252417189_2_0" index="0" speed="20.83" length="10.91" shape="1360.62,1641.23 1358.84,1637.36 1357.97,1634.40 1357.99,1632.33 1358.92,1631.16"/>
+ </edge>
+ <edge id=":252417189_3" function="internal">
+ <lane id=":252417189_3_0" index="0" speed="27.78" length="6.25" shape="1361.98,1637.01 1356.44,1639.91"/>
+ </edge>
+ <edge id=":252417189_4" function="internal">
+ <lane id=":252417189_4_0" index="0" speed="27.78" length="6.25" shape="1360.45,1634.09 1354.91,1636.98"/>
+ </edge>
+ <edge id=":252417189_5" function="internal">
+ <lane id=":252417189_5_0" index="0" speed="20.83" length="7.79" shape="1360.45,1634.09 1358.96,1634.18 1357.25,1633.02 1355.34,1630.60 1354.77,1629.61"/>
+ </edge>
+ <edge id=":252417189_11" function="internal">
+ <lane id=":252417189_11_0" index="0" speed="20.83" length="3.11" shape="1354.77,1629.61 1353.22,1626.91"/>
+ </edge>
+ <edge id=":252417189_6" function="internal">
+ <lane id=":252417189_6_0" index="0" speed="27.78" length="2.41" shape="1360.45,1634.09 1358.97,1633.93 1358.23,1633.39"/>
+ </edge>
+ <edge id=":252417189_12" function="internal">
+ <lane id=":252417189_12_0" index="0" speed="27.78" length="2.41" shape="1358.23,1633.39 1358.21,1632.47 1358.92,1631.16"/>
+ </edge>
+ <edge id=":252417189_7" function="internal">
+ <lane id=":252417189_7_0" index="0" speed="20.83" length="5.05" shape="1351.85,1631.13 1352.99,1630.32 1353.59,1629.35 1353.67,1628.21 1353.22,1626.91"/>
+ </edge>
+ <edge id=":252417189_8" function="internal">
+ <lane id=":252417189_8_0" index="0" speed="27.78" length="6.25" shape="1351.85,1631.13 1357.40,1628.24"/>
+ </edge>
+ <edge id=":252417189_9" function="internal">
+ <lane id=":252417189_9_0" index="0" speed="27.78" length="6.25" shape="1353.38,1634.06 1358.92,1631.16"/>
+ </edge>
+ <edge id=":252417189_10" function="internal">
+ <lane id=":252417189_10_0" index="0" speed="27.78" length="2.41" shape="1353.38,1634.06 1354.86,1634.21 1355.61,1634.75"/>
+ </edge>
+ <edge id=":252417189_13" function="internal">
+ <lane id=":252417189_13_0" index="0" speed="27.78" length="2.41" shape="1355.61,1634.75 1355.62,1635.68 1354.91,1636.98"/>
+ </edge>
+ <edge id=":252417190_0" function="internal">
+ <lane id=":252417190_0_0" index="0" speed="18.06" length="5.00" shape="1302.16,1528.18 1301.71,1526.89 1301.76,1525.75 1302.33,1524.78 1303.41,1523.96"/>
+ </edge>
+ <edge id=":252417190_1" function="internal">
+ <lane id=":252417190_1_0" index="0" speed="22.22" length="6.15" shape="1297.99,1526.85 1303.41,1523.96"/>
+ </edge>
+ <edge id=":252418151_0" function="internal">
+ <lane id=":252418151_0_0" index="0" speed="22.22" length="6.20" shape="1458.51,2047.24 1455.67,2041.73"/>
+ </edge>
+ <edge id=":252418151_1" function="internal">
+ <lane id=":252418151_1_0" index="0" speed="22.22" length="5.03" shape="1459.86,2043.01 1458.57,2043.50 1457.44,2043.45 1456.47,2042.86 1455.67,2041.73"/>
+ </edge>
+ <edge id=":252418152_0" function="internal">
+ <lane id=":252418152_0_0" index="0" speed="22.22" length="5.00" shape="1410.09,1953.14 1409.30,1952.03 1408.34,1951.43 1407.21,1951.36 1405.91,1951.81"/>
+ </edge>
+ <edge id=":252418152_1" function="internal">
+ <lane id=":252418152_1_0" index="0" speed="22.22" length="6.21" shape="1411.43,1948.97 1405.91,1951.81"/>
+ </edge>
+ <edge id=":252418937_0" function="internal">
+ <lane id=":252418937_0_0" index="0" speed="22.22" length="5.03" shape="1082.70,2126.55 1081.91,2125.42 1080.95,2124.82 1079.83,2124.75 1078.53,2125.22"/>
+ </edge>
+ <edge id=":252418937_1" function="internal">
+ <lane id=":252418937_1_0" index="0" speed="22.22" length="6.50" shape="1082.70,2126.55 1079.87,2120.70"/>
+ </edge>
+ <edge id=":252418937_2" function="internal">
+ <lane id=":252418937_2_0" index="0" speed="22.22" length="2.41" shape="1082.70,2126.55 1082.88,2125.07 1083.44,2124.33"/>
+ </edge>
+ <edge id=":252418937_9" function="internal">
+ <lane id=":252418937_9_0" index="0" speed="22.22" length="2.41" shape="1083.44,2124.33 1084.36,2124.33 1085.65,2125.07"/>
+ </edge>
+ <edge id=":252418937_3" function="internal">
+ <lane id=":252418937_3_0" index="0" speed="22.22" length="5.20" shape="1087.03,2120.70 1085.88,2121.53 1085.27,2122.54 1085.20,2123.72 1085.65,2125.07"/>
+ </edge>
+ <edge id=":252418937_4" function="internal">
+ <lane id=":252418937_4_0" index="0" speed="22.22" length="9.63" shape="1087.03,2120.70 1078.53,2125.22"/>
+ </edge>
+ <edge id=":252418937_5" function="internal">
+ <lane id=":252418937_5_0" index="0" speed="22.22" length="3.15" shape="1087.03,2120.70 1084.43,2121.84 1084.12,2121.90"/>
+ </edge>
+ <edge id=":252418937_10" function="internal">
+ <lane id=":252418937_10_0" index="0" speed="22.22" length="4.85" shape="1084.12,2121.90 1082.37,2122.22 1080.85,2121.84 1079.87,2120.70"/>
+ </edge>
+ <edge id=":252418937_6" function="internal">
+ <lane id=":252418937_6_0" index="0" speed="22.22" length="6.40" shape="1082.87,2119.31 1085.65,2125.07"/>
+ </edge>
+ <edge id=":252418937_7" function="internal">
+ <lane id=":252418937_7_0" index="0" speed="22.22" length="4.82" shape="1082.87,2119.31 1083.10,2120.76 1082.45,2122.23 1081.20,2123.45"/>
+ </edge>
+ <edge id=":252418937_11" function="internal">
+ <lane id=":252418937_11_0" index="0" speed="22.22" length="3.22" shape="1081.20,2123.45 1080.93,2123.72 1078.53,2125.22"/>
+ </edge>
+ <edge id=":252418937_8" function="internal">
+ <lane id=":252418937_8_0" index="0" speed="22.22" length="2.41" shape="1082.87,2119.31 1082.64,2120.78 1082.07,2121.50"/>
+ </edge>
+ <edge id=":252418937_12" function="internal">
+ <lane id=":252418937_12_0" index="0" speed="22.22" length="2.41" shape="1082.07,2121.50 1081.14,2121.47 1079.87,2120.70"/>
+ </edge>
+ <edge id=":255227471_0" function="internal">
+ <lane id=":255227471_0_0" index="0" speed="25.00" length="5.18" shape="1344.21,961.30 1344.38,962.51 1344.08,963.61 1343.30,964.61 1342.03,965.50"/>
+ </edge>
+ <edge id=":255227471_1" function="internal">
+ <lane id=":255227471_1_0" index="0" speed="22.22" length="6.77" shape="1344.21,961.30 1342.10,954.87"/>
+ </edge>
+ <edge id=":255227471_2" function="internal">
+ <lane id=":255227471_2_0" index="0" speed="25.00" length="9.95" shape="1344.21,961.30 1344.06,959.38 1344.89,957.48 1346.69,955.60 1349.47,953.74"/>
+ </edge>
+ <edge id=":255227471_3" function="internal">
+ <lane id=":255227471_3_0" index="0" speed="22.22" length="6.23" shape="1344.21,961.30 1343.43,959.54 1343.55,958.35 1344.57,957.74 1346.50,957.69"/>
+ </edge>
+ <edge id=":255227471_4" function="internal">
+ <lane id=":255227471_4_0" index="0" speed="25.00" length="7.76" shape="1352.72,959.48 1350.55,960.38 1348.79,960.38 1347.44,959.49 1346.50,957.69"/>
+ </edge>
+ <edge id=":255227471_5" function="internal">
+ <lane id=":255227471_5_0" index="0" speed="27.78" length="12.27" shape="1352.72,959.48 1349.56,961.27 1347.39,962.50 1345.21,963.72 1342.03,965.50"/>
+ </edge>
+ <edge id=":255227471_6" function="internal">
+ <lane id=":255227471_6_0" index="0" speed="27.78" length="12.25" shape="1351.10,956.61 1347.93,958.40 1345.77,959.63 1343.60,960.84 1340.42,962.62"/>
+ </edge>
+ <edge id=":255227471_7" function="internal">
+ <lane id=":255227471_7_0" index="0" speed="25.00" length="10.89" shape="1351.10,956.61 1347.87,958.01 1345.29,958.19 1343.37,957.14 1342.10,954.87"/>
+ </edge>
+ <edge id=":255227471_8" function="internal">
+ <lane id=":255227471_8_0" index="0" speed="27.78" length="2.41" shape="1351.10,956.61 1349.61,956.50 1348.85,955.99"/>
+ </edge>
+ <edge id=":255227471_18" function="internal">
+ <lane id=":255227471_18_0" index="0" speed="27.78" length="2.41" shape="1348.85,955.99 1348.80,955.07 1349.47,953.74"/>
+ </edge>
+ <edge id=":255227471_9" function="internal">
+ <lane id=":255227471_9_0" index="0" speed="25.00" length="4.19" shape="1345.24,953.85 1345.25,953.18 1345.68,952.47 1346.55,951.69 1347.84,950.87"/>
+ </edge>
+ <edge id=":255227471_10" function="internal">
+ <lane id=":255227471_10_0" index="0" speed="22.22" length="4.05" shape="1345.24,953.85 1346.50,957.69"/>
+ </edge>
+ <edge id=":255227471_11" function="internal">
+ <lane id=":255227471_11_0" index="0" speed="25.00" length="10.94" shape="1345.24,953.85 1345.57,956.32 1344.87,958.61 1343.16,960.71 1340.42,962.62"/>
+ </edge>
+ <edge id=":255227471_12" function="internal">
+ <lane id=":255227471_12_0" index="0" speed="22.22" length="4.82" shape="1345.24,953.85 1344.84,955.28 1344.18,955.92 1343.27,955.79 1342.10,954.87"/>
+ </edge>
+ <edge id=":255227471_13" function="internal">
+ <lane id=":255227471_13_0" index="0" speed="25.00" length="5.40" shape="1337.20,956.86 1339.27,955.75 1340.78,955.05 1341.72,954.75 1342.10,954.87"/>
+ </edge>
+ <edge id=":255227471_14" function="internal">
+ <lane id=":255227471_14_0" index="0" speed="27.78" length="12.21" shape="1337.20,956.86 1340.37,955.09 1342.53,953.88 1344.69,952.66 1347.84,950.87"/>
+ </edge>
+ <edge id=":255227471_15" function="internal">
+ <lane id=":255227471_15_0" index="0" speed="27.78" length="12.23" shape="1338.81,959.74 1341.98,957.97 1344.15,956.75 1346.31,955.53 1349.47,953.74"/>
+ </edge>
+ <edge id=":255227471_16" function="internal">
+ <lane id=":255227471_16_0" index="0" speed="25.00" length="8.45" shape="1338.81,959.74 1341.94,958.13 1344.26,957.26 1345.78,957.11 1346.50,957.69"/>
+ </edge>
+ <edge id=":255227471_17" function="internal">
+ <lane id=":255227471_17_0" index="0" speed="27.78" length="2.41" shape="1338.81,959.74 1340.30,959.85 1341.06,960.37"/>
+ </edge>
+ <edge id=":255227471_19" function="internal">
+ <lane id=":255227471_19_0" index="0" speed="27.78" length="2.41" shape="1341.06,960.37 1341.10,961.29 1340.42,962.62"/>
+ </edge>
+ <edge id=":255227472_0" function="internal">
+ <lane id=":255227472_0_0" index="0" speed="22.22" length="4.96" shape="1269.63,818.64 1268.77,817.59 1267.78,817.05 1266.65,817.03 1265.39,817.52"/>
+ </edge>
+ <edge id=":255227472_1" function="internal">
+ <lane id=":255227472_1_0" index="0" speed="22.22" length="4.82" shape="1269.63,818.64 1269.69,817.15 1270.18,816.37 1271.10,816.29 1272.45,816.93"/>
+ </edge>
+ <edge id=":255227475_0" function="internal">
+ <lane id=":255227475_0_0" index="0" speed="22.22" length="9.11" shape="1307.71,882.17 1303.30,874.21"/>
+ </edge>
+ <edge id=":255227475_1" function="internal">
+ <lane id=":255227475_1_0" index="0" speed="18.06" length="6.79" shape="1307.71,882.17 1306.87,879.62 1307.03,877.33 1307.93,875.77"/>
+ </edge>
+ <edge id=":255227475_12" function="internal">
+ <lane id=":255227475_12_0" index="0" speed="18.06" length="3.34" shape="1307.93,875.77 1308.20,875.30 1310.38,873.54"/>
+ </edge>
+ <edge id=":255227475_2" function="internal">
+ <lane id=":255227475_2_0" index="0" speed="22.22" length="2.41" shape="1307.71,882.17 1307.90,880.70 1308.45,879.96"/>
+ </edge>
+ <edge id=":255227475_13" function="internal">
+ <lane id=":255227475_13_0" index="0" speed="22.22" length="2.41" shape="1308.45,879.96 1309.37,879.96 1310.66,880.70"/>
+ </edge>
+ <edge id=":255227475_3" function="internal">
+ <lane id=":255227475_3_0" index="0" speed="18.06" length="5.12" shape="1312.10,876.36 1310.97,877.26 1310.36,878.28 1310.25,879.43 1310.66,880.70"/>
+ </edge>
+ <edge id=":255227475_4" function="internal">
+ <lane id=":255227475_4_0" index="0" speed="18.06" length="10.33" shape="1312.10,876.36 1309.49,877.47 1307.16,877.48 1305.10,876.40 1303.30,874.21"/>
+ </edge>
+ <edge id=":255227475_5" function="internal">
+ <lane id=":255227475_5_0" index="0" speed="13.89" length="4.82" shape="1312.10,876.36 1310.61,876.30 1309.83,875.81 1309.75,874.89 1310.38,873.54"/>
+ </edge>
+ <edge id=":255227475_6" function="internal">
+ <lane id=":255227475_6_0" index="0" speed="18.06" length="5.00" shape="1306.12,872.50 1306.99,873.56 1307.99,874.08 1309.12,874.08 1310.38,873.54"/>
+ </edge>
+ <edge id=":255227475_7" function="internal">
+ <lane id=":255227475_7_0" index="0" speed="22.22" length="9.37" shape="1306.12,872.50 1310.66,880.70"/>
+ </edge>
+ <edge id=":255227475_8" function="internal">
+ <lane id=":255227475_8_0" index="0" speed="22.22" length="2.41" shape="1306.12,872.50 1306.06,873.98 1305.57,874.76"/>
+ </edge>
+ <edge id=":255227475_14" function="internal">
+ <lane id=":255227475_14_0" index="0" speed="22.22" length="2.41" shape="1305.57,874.76 1304.65,874.84 1303.30,874.21"/>
+ </edge>
+ <edge id=":255227475_9" function="internal">
+ <lane id=":255227475_9_0" index="0" speed="22.22" length="6.33" shape="1302.96,879.77 1304.02,878.84 1304.43,877.61 1304.19,876.06 1303.30,874.21"/>
+ </edge>
+ <edge id=":255227475_10" function="internal">
+ <lane id=":255227475_10_0" index="0" speed="18.06" length="9.69" shape="1302.96,879.77 1310.38,873.54"/>
+ </edge>
+ <edge id=":255227475_11" function="internal">
+ <lane id=":255227475_11_0" index="0" speed="22.22" length="8.85" shape="1302.96,879.77 1305.57,878.64 1307.72,878.42 1309.42,879.11 1310.66,880.70"/>
+ </edge>
+ <edge id=":255227478_0" function="internal">
+ <lane id=":255227478_0_0" index="0" speed="13.89" length="4.82" shape="1257.88,792.54 1256.40,792.37 1255.65,791.83 1255.64,790.91 1256.36,789.61"/>
+ </edge>
+ <edge id=":255227480_0" function="internal">
+ <lane id=":255227480_0_0" index="0" speed="11.11" length="11.75" shape="1361.07,853.33 1357.83,852.35 1354.86,852.05 1352.16,852.43 1349.73,853.48"/>
+ </edge>
+ <edge id=":255227480_1" function="internal">
+ <lane id=":255227480_1_0" index="0" speed="11.11" length="14.63" shape="1361.07,853.33 1357.66,851.90 1354.40,850.31 1351.28,848.47 1348.28,846.33"/>
+ </edge>
+ <edge id=":255227480_2" function="internal">
+ <lane id=":255227480_2_0" index="0" speed="8.33" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_3" function="internal">
+ <lane id=":255227480_3_0" index="0" speed="11.11" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_4" function="internal">
+ <lane id=":255227480_4_0" index="0" speed="8.33" length="3.30" shape="1361.07,853.33 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_5" function="internal">
+ <lane id=":255227480_5_0" index="0" speed="11.11" length="4.82" shape="1361.07,853.33 1360.22,852.11 1360.13,851.19 1360.82,850.57 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_6" function="internal">
+ <lane id=":255227480_6_0" index="0" speed="13.89" length="11.75" shape="1361.07,853.33 1357.83,852.35 1354.86,852.05 1352.16,852.43 1349.73,853.48"/>
+ </edge>
+ <edge id=":255227480_7" function="internal">
+ <lane id=":255227480_7_0" index="0" speed="13.89" length="14.63" shape="1361.07,853.33 1357.66,851.90 1354.40,850.31 1351.28,848.47 1348.28,846.33"/>
+ </edge>
+ <edge id=":255227480_8" function="internal">
+ <lane id=":255227480_8_0" index="0" speed="11.11" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_9" function="internal">
+ <lane id=":255227480_9_0" index="0" speed="13.89" length="14.84" shape="1361.07,853.33 1357.03,851.15 1355.54,848.74 1356.59,846.11 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_10" function="internal">
+ <lane id=":255227480_10_0" index="0" speed="13.89" length="3.30" shape="1361.07,853.33 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_11" function="internal">
+ <lane id=":255227480_11_0" index="0" speed="11.11" length="4.82" shape="1361.07,853.33 1360.22,852.11 1360.13,851.19 1360.82,850.57 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_12" function="internal">
+ <lane id=":255227480_12_0" index="0" speed="13.89" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_13" function="internal">
+ <lane id=":255227480_13_0" index="0" speed="11.11" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_14" function="internal">
+ <lane id=":255227480_14_0" index="0" speed="13.89" length="14.25" shape="1361.90,846.07 1358.80,847.96 1355.82,849.78 1352.83,851.59 1349.73,853.48"/>
+ </edge>
+ <edge id=":255227480_15" function="internal">
+ <lane id=":255227480_15_0" index="0" speed="13.89" length="14.57" shape="1361.90,846.07 1358.10,847.89 1354.56,848.53 1351.29,848.02 1348.28,846.33"/>
+ </edge>
+ <edge id=":255227480_16" function="internal">
+ <lane id=":255227480_16_0" index="0" speed="11.11" length="3.30" shape="1361.90,846.07 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_17" function="internal">
+ <lane id=":255227480_17_0" index="0" speed="13.89" length="2.41" shape="1361.90,846.07 1360.41,846.01 1359.63,845.52"/>
+ </edge>
+ <edge id=":255227480_36" function="internal">
+ <lane id=":255227480_36_0" index="0" speed="13.89" length="2.41" shape="1359.63,845.52 1359.55,844.60 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_18" function="internal">
+ <lane id=":255227480_18_0" index="0" speed="11.11" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_19" function="internal">
+ <lane id=":255227480_19_0" index="0" speed="8.33" length="6.16" shape="1361.90,846.07 1360.41,847.26 1359.97,848.35 1360.59,849.35 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_20" function="internal">
+ <lane id=":255227480_20_0" index="0" speed="11.11" length="14.25" shape="1361.90,846.07 1358.80,847.96 1355.82,849.78 1352.83,851.59 1349.73,853.48"/>
+ </edge>
+ <edge id=":255227480_21" function="internal">
+ <lane id=":255227480_21_0" index="0" speed="11.11" length="14.57" shape="1361.90,846.07 1358.10,847.89 1354.56,848.53 1351.29,848.02 1348.28,846.33"/>
+ </edge>
+ <edge id=":255227480_22" function="internal">
+ <lane id=":255227480_22_0" index="0" speed="11.11" length="3.30" shape="1361.90,846.07 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_23" function="internal">
+ <lane id=":255227480_23_0" index="0" speed="8.33" length="4.82" shape="1361.90,846.07 1360.41,846.01 1359.63,845.52 1359.55,844.60 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_24" function="internal">
+ <lane id=":255227480_24_0" index="0" speed="11.11" length="10.54" shape="1350.32,843.74 1352.42,844.88 1354.76,845.18 1357.35,844.63 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_25" function="internal">
+ <lane id=":255227480_25_0" index="0" speed="13.89" length="10.54" shape="1350.32,843.74 1352.42,844.88 1354.76,845.18 1357.35,844.63 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_26" function="internal">
+ <lane id=":255227480_26_0" index="0" speed="13.89" length="13.66" shape="1350.32,843.74 1353.19,845.81 1356.02,847.48 1358.99,848.90 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_27" function="internal">
+ <lane id=":255227480_27_0" index="0" speed="11.11" length="13.66" shape="1350.32,843.74 1353.19,845.81 1356.02,847.48 1358.99,848.90 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_28" function="internal">
+ <lane id=":255227480_28_0" index="0" speed="13.89" length="12.37" shape="1350.32,843.74 1352.81,846.34 1353.54,848.82 1352.51,851.21 1349.73,853.48"/>
+ </edge>
+ <edge id=":255227480_29" function="internal">
+ <lane id=":255227480_29_0" index="0" speed="13.89" length="4.82" shape="1350.32,843.74 1350.78,845.15 1350.60,846.06 1349.76,846.45 1348.28,846.33"/>
+ </edge>
+ <edge id=":255227480_30" function="internal">
+ <lane id=":255227480_30_0" index="0" speed="13.89" length="5.50" shape="1348.02,850.66 1349.25,849.65 1349.71,848.59 1349.38,847.49 1348.28,846.33"/>
+ </edge>
+ <edge id=":255227480_31" function="internal">
+ <lane id=":255227480_31_0" index="0" speed="11.11" length="14.24" shape="1348.02,850.66 1351.12,848.78 1354.10,846.96 1357.08,845.14 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_32" function="internal">
+ <lane id=":255227480_32_0" index="0" speed="13.89" length="14.24" shape="1348.02,850.66 1351.12,848.78 1354.10,846.96 1357.08,845.14 1360.18,843.25"/>
+ </edge>
+ <edge id=":255227480_33" function="internal">
+ <lane id=":255227480_33_0" index="0" speed="13.89" length="9.47" shape="1348.02,850.66 1351.15,849.27 1354.57,848.74 1357.14,848.97"/>
+ </edge>
+ <edge id=":255227480_37" function="internal">
+ <lane id=":255227480_37_0" index="0" speed="13.89" length="5.30" shape="1357.14,848.97 1358.28,849.07 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_34" function="internal">
+ <lane id=":255227480_34_0" index="0" speed="11.11" length="9.47" shape="1348.02,850.66 1351.15,849.27 1354.57,848.74 1357.14,848.97"/>
+ </edge>
+ <edge id=":255227480_38" function="internal">
+ <lane id=":255227480_38_0" index="0" speed="11.11" length="5.30" shape="1357.14,848.97 1358.28,849.07 1362.27,850.25"/>
+ </edge>
+ <edge id=":255227480_35" function="internal">
+ <lane id=":255227480_35_0" index="0" speed="13.89" length="2.41" shape="1348.02,850.66 1349.50,850.72 1350.28,851.22"/>
+ </edge>
+ <edge id=":255227480_39" function="internal">
+ <lane id=":255227480_39_0" index="0" speed="13.89" length="2.41" shape="1350.28,851.22 1350.36,852.13 1349.73,853.48"/>
+ </edge>
+ <edge id=":255227482_0" function="internal">
+ <lane id=":255227482_0_0" index="0" speed="11.11" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_1" function="internal">
+ <lane id=":255227482_1_0" index="0" speed="13.89" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_2" function="internal">
+ <lane id=":255227482_2_0" index="0" speed="13.89" length="10.36" shape="1395.58,829.28 1394.59,826.55 1394.63,824.15 1395.69,822.08 1397.78,820.33"/>
+ </edge>
+ <edge id=":255227482_3" function="internal">
+ <lane id=":255227482_3_0" index="0" speed="11.11" length="3.30" shape="1395.58,829.28 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_4" function="internal">
+ <lane id=":255227482_4_0" index="0" speed="13.89" length="4.82" shape="1395.58,829.28 1395.74,827.80 1396.28,827.06 1397.21,827.04 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_5" function="internal">
+ <lane id=":255227482_5_0" index="0" speed="8.33" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_6" function="internal">
+ <lane id=":255227482_6_0" index="0" speed="11.11" length="5.08" shape="1395.58,829.28 1394.76,828.14 1393.78,827.56 1392.65,827.55 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_7" function="internal">
+ <lane id=":255227482_7_0" index="0" speed="11.11" length="10.36" shape="1395.58,829.28 1394.59,826.55 1394.63,824.15 1395.69,822.08 1397.78,820.33"/>
+ </edge>
+ <edge id=":255227482_8" function="internal">
+ <lane id=":255227482_8_0" index="0" speed="11.11" length="3.30" shape="1395.58,829.28 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_9" function="internal">
+ <lane id=":255227482_9_0" index="0" speed="8.33" length="4.82" shape="1395.58,829.28 1395.74,827.80 1396.28,827.06 1397.21,827.04 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_10" function="internal">
+ <lane id=":255227482_10_0" index="0" speed="11.11" length="5.29" shape="1399.49,823.16 1398.47,824.03 1397.96,825.08 1397.98,826.33 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_11" function="internal">
+ <lane id=":255227482_11_0" index="0" speed="13.89" length="5.29" shape="1399.49,823.16 1398.47,824.03 1397.96,825.08 1397.98,826.33 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_12" function="internal">
+ <lane id=":255227482_12_0" index="0" speed="11.11" length="9.52" shape="1399.49,823.16 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_13" function="internal">
+ <lane id=":255227482_13_0" index="0" speed="13.89" length="9.52" shape="1399.49,823.16 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_14" function="internal">
+ <lane id=":255227482_14_0" index="0" speed="13.89" length="2.41" shape="1399.49,823.16 1398.00,823.09 1397.22,822.60"/>
+ </edge>
+ <edge id=":255227482_25" function="internal">
+ <lane id=":255227482_25_0" index="0" speed="13.89" length="2.41" shape="1397.22,822.60 1397.15,821.68 1397.78,820.33"/>
+ </edge>
+ <edge id=":255227482_15" function="internal">
+ <lane id=":255227482_15_0" index="0" speed="13.89" length="9.53" shape="1389.64,825.29 1397.78,820.33"/>
+ </edge>
+ <edge id=":255227482_16" function="internal">
+ <lane id=":255227482_16_0" index="0" speed="11.11" length="7.18" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.32,825.08"/>
+ </edge>
+ <edge id=":255227482_26" function="internal">
+ <lane id=":255227482_26_0" index="0" speed="11.11" length="3.50" shape="1396.32,825.08 1396.79,825.36 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_17" function="internal">
+ <lane id=":255227482_17_0" index="0" speed="13.89" length="7.18" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.32,825.08"/>
+ </edge>
+ <edge id=":255227482_27" function="internal">
+ <lane id=":255227482_27_0" index="0" speed="13.89" length="3.50" shape="1396.32,825.08 1396.79,825.36 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_18" function="internal">
+ <lane id=":255227482_18_0" index="0" speed="11.11" length="3.30" shape="1389.64,825.29 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_19" function="internal">
+ <lane id=":255227482_19_0" index="0" speed="13.89" length="2.41" shape="1389.64,825.29 1391.12,825.35 1391.90,825.84"/>
+ </edge>
+ <edge id=":255227482_28" function="internal">
+ <lane id=":255227482_28_0" index="0" speed="13.89" length="2.41" shape="1391.90,825.84 1391.98,826.75 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_20" function="internal">
+ <lane id=":255227482_20_0" index="0" speed="11.11" length="9.53" shape="1389.64,825.29 1397.78,820.33"/>
+ </edge>
+ <edge id=":255227482_21" function="internal">
+ <lane id=":255227482_21_0" index="0" speed="8.33" length="10.67" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.79,825.36 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_22" function="internal">
+ <lane id=":255227482_22_0" index="0" speed="11.11" length="10.67" shape="1389.64,825.29 1392.35,824.12 1394.73,824.15 1396.79,825.36 1398.51,827.76"/>
+ </edge>
+ <edge id=":255227482_23" function="internal">
+ <lane id=":255227482_23_0" index="0" speed="11.11" length="3.30" shape="1389.64,825.29 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227482_24" function="internal">
+ <lane id=":255227482_24_0" index="0" speed="8.33" length="4.82" shape="1389.64,825.29 1391.12,825.35 1391.90,825.84 1391.98,826.75 1391.36,828.10"/>
+ </edge>
+ <edge id=":255227483_0" function="internal">
+ <lane id=":255227483_0_0" index="0" speed="25.00" length="3.74" shape="1437.55,909.71 1437.69,910.35 1437.40,911.02 1436.69,911.73 1435.56,912.47"/>
+ </edge>
+ <edge id=":255227483_1" function="internal">
+ <lane id=":255227483_1_0" index="0" speed="22.22" length="7.64" shape="1437.55,909.71 1433.90,903.00"/>
+ </edge>
+ <edge id=":255227483_2" function="internal">
+ <lane id=":255227483_2_0" index="0" speed="25.00" length="9.55" shape="1437.55,909.71 1436.78,907.54 1437.06,905.52 1438.39,903.65 1440.76,901.94"/>
+ </edge>
+ <edge id=":255227483_3" function="internal">
+ <lane id=":255227483_3_0" index="0" speed="22.22" length="4.82" shape="1437.55,909.71 1437.65,908.23 1438.16,907.46 1439.09,907.41 1440.41,908.08"/>
+ </edge>
+ <edge id=":255227483_4" function="internal">
+ <lane id=":255227483_4_0" index="0" speed="25.00" length="3.94" shape="1444.00,907.69 1442.70,908.32 1441.66,908.60 1440.90,908.52 1440.41,908.08"/>
+ </edge>
+ <edge id=":255227483_5" function="internal">
+ <lane id=":255227483_5_0" index="0" speed="27.78" length="9.71" shape="1444.00,907.69 1435.56,912.47"/>
+ </edge>
+ <edge id=":255227483_6" function="internal">
+ <lane id=":255227483_6_0" index="0" speed="27.78" length="9.71" shape="1442.38,904.82 1433.93,909.60"/>
+ </edge>
+ <edge id=":255227483_7" function="internal">
+ <lane id=":255227483_7_0" index="0" speed="25.00" length="9.95" shape="1442.38,904.82 1439.66,905.94 1437.35,906.01 1435.43,905.03 1433.90,903.00"/>
+ </edge>
+ <edge id=":255227483_8" function="internal">
+ <lane id=":255227483_8_0" index="0" speed="27.78" length="2.41" shape="1442.38,904.82 1440.90,904.71 1440.13,904.19"/>
+ </edge>
+ <edge id=":255227483_18" function="internal">
+ <lane id=":255227483_18_0" index="0" speed="27.78" length="2.41" shape="1440.13,904.19 1440.08,903.27 1440.76,901.94"/>
+ </edge>
+ <edge id=":255227483_9" function="internal">
+ <lane id=":255227483_9_0" index="0" speed="25.00" length="3.54" shape="1436.83,901.48 1436.81,901.01 1437.18,900.45 1437.96,899.80 1439.13,899.07"/>
+ </edge>
+ <edge id=":255227483_10" function="internal">
+ <lane id=":255227483_10_0" index="0" speed="22.22" length="7.51" shape="1436.83,901.48 1440.41,908.08"/>
+ </edge>
+ <edge id=":255227483_11" function="internal">
+ <lane id=":255227483_11_0" index="0" speed="25.00" length="9.75" shape="1436.83,901.48 1437.62,903.86 1437.40,906.01 1436.17,907.92 1433.93,909.60"/>
+ </edge>
+ <edge id=":255227483_12" function="internal">
+ <lane id=":255227483_12_0" index="0" speed="22.22" length="4.82" shape="1436.83,901.48 1436.67,902.96 1436.13,903.70 1435.20,903.72 1433.90,903.00"/>
+ </edge>
+ <edge id=":255227483_13" function="internal">
+ <lane id=":255227483_13_0" index="0" speed="25.00" length="3.53" shape="1430.67,903.86 1431.94,903.20 1432.90,902.84 1433.55,902.77 1433.90,903.00"/>
+ </edge>
+ <edge id=":255227483_14" function="internal">
+ <lane id=":255227483_14_0" index="0" speed="27.78" length="9.73" shape="1430.67,903.86 1439.13,899.07"/>
+ </edge>
+ <edge id=":255227483_15" function="internal">
+ <lane id=":255227483_15_0" index="0" speed="27.78" length="9.72" shape="1432.30,906.73 1440.76,901.94"/>
+ </edge>
+ <edge id=":255227483_16" function="internal">
+ <lane id=":255227483_16_0" index="0" speed="25.00" length="9.35" shape="1432.30,906.73 1434.89,905.63 1437.10,905.49 1438.95,906.31 1440.41,908.08"/>
+ </edge>
+ <edge id=":255227483_17" function="internal">
+ <lane id=":255227483_17_0" index="0" speed="27.78" length="2.41" shape="1432.30,906.73 1433.78,906.84 1434.55,907.35"/>
+ </edge>
+ <edge id=":255227483_19" function="internal">
+ <lane id=":255227483_19_0" index="0" speed="27.78" length="2.41" shape="1434.55,907.35 1434.60,908.27 1433.93,909.60"/>
+ </edge>
+ <edge id=":256633248_0" function="internal">
+ <lane id=":256633248_0_0" index="0" speed="83.33" length="0.10" shape="763.20,924.92 763.20,924.92"/>
+ </edge>
+ <edge id=":257907508_0" function="internal">
+ <lane id=":257907508_0_0" index="0" speed="8.33" length="4.82" shape="1601.41,1285.75 1602.67,1286.54 1603.10,1287.35 1602.72,1288.19 1601.51,1289.05"/>
+ </edge>
+ <edge id=":267169554_0" function="internal">
+ <lane id=":267169554_0_0" index="0" speed="22.22" length="5.12" shape="1045.46,1030.10 1044.36,1030.95 1043.79,1031.96 1043.74,1033.13 1044.21,1034.45"/>
+ </edge>
+ <edge id=":267169554_1" function="internal">
+ <lane id=":267169554_1_0" index="0" speed="22.22" length="6.28" shape="1045.46,1030.10 1040.00,1033.21"/>
+ </edge>
+ <edge id=":267169554_2" function="internal">
+ <lane id=":267169554_2_0" index="0" speed="22.22" length="6.28" shape="1041.24,1028.91 1044.21,1034.45"/>
+ </edge>
+ <edge id=":267169554_3" function="internal">
+ <lane id=":267169554_3_0" index="0" speed="22.22" length="5.08" shape="1041.24,1028.91 1041.73,1030.21 1041.68,1031.35 1041.11,1032.35 1040.00,1033.21"/>
+ </edge>
+ <edge id=":267169591_0" function="internal">
+ <lane id=":267169591_0_0" index="0" speed="22.22" length="5.07" shape="901.93,1111.78 900.81,1112.64 900.21,1113.63 900.13,1114.77 900.58,1116.05"/>
+ </edge>
+ <edge id=":267169591_1" function="internal">
+ <lane id=":267169591_1_0" index="0" speed="22.22" length="6.23" shape="897.73,1110.51 900.58,1116.05"/>
+ </edge>
+ <edge id=":267169592_0" function="internal">
+ <lane id=":267169592_0_0" index="0" speed="22.22" length="5.05" shape="975.17,1073.70 974.36,1072.57 973.38,1071.99 972.25,1071.95 970.96,1072.46"/>
+ </edge>
+ <edge id=":267169592_1" function="internal">
+ <lane id=":267169592_1_0" index="0" speed="22.22" length="6.32" shape="975.17,1073.70 972.25,1068.09"/>
+ </edge>
+ <edge id=":267169592_2" function="internal">
+ <lane id=":267169592_2_0" index="0" speed="22.22" length="6.32" shape="976.45,1069.33 970.96,1072.46"/>
+ </edge>
+ <edge id=":267169592_3" function="internal">
+ <lane id=":267169592_3_0" index="0" speed="22.22" length="5.04" shape="976.45,1069.33 975.16,1069.84 974.03,1069.80 973.06,1069.22 972.25,1068.09"/>
+ </edge>
+ <edge id=":267169634_0" function="internal">
+ <lane id=":267169634_0_0" index="0" speed="15.28" length="10.98" shape="1477.42,987.15 1476.18,985.97 1474.60,986.51 1472.66,988.78 1470.38,992.78"/>
+ </edge>
+ <edge id=":267169634_1" function="internal">
+ <lane id=":267169634_1_0" index="0" speed="15.28" length="14.61" shape="1477.42,987.15 1475.58,985.26 1472.82,984.90 1469.14,986.06 1464.54,988.75"/>
+ </edge>
+ <edge id=":267169634_2" function="internal">
+ <lane id=":267169634_2_0" index="0" speed="22.22" length="12.21" shape="1477.42,987.15 1475.90,984.21 1474.61,981.73 1473.34,979.25 1471.84,976.29"/>
+ </edge>
+ <edge id=":267169634_3" function="internal">
+ <lane id=":267169634_3_0" index="0" speed="22.22" length="2.41" shape="1477.42,987.15 1477.59,985.67 1478.13,984.93"/>
+ </edge>
+ <edge id=":267169634_16" function="internal">
+ <lane id=":267169634_16_0" index="0" speed="22.22" length="2.41" shape="1478.13,984.93 1479.05,984.91 1480.35,985.63"/>
+ </edge>
+ <edge id=":267169634_4" function="internal">
+ <lane id=":267169634_4_0" index="0" speed="22.22" length="12.17" shape="1474.79,974.81 1476.29,977.76 1477.55,980.23 1478.83,982.70 1480.35,985.63"/>
+ </edge>
+ <edge id=":267169634_5" function="internal">
+ <lane id=":267169634_5_0" index="0" speed="15.28" length="7.28" shape="1474.79,974.81 1475.39,977.66 1474.85,981.61 1474.73,981.97"/>
+ </edge>
+ <edge id=":267169634_17" function="internal">
+ <lane id=":267169634_17_0" index="0" speed="15.28" length="11.67" shape="1474.73,981.97 1473.18,986.65 1470.38,992.78"/>
+ </edge>
+ <edge id=":267169634_6" function="internal">
+ <lane id=":267169634_6_0" index="0" speed="15.28" length="5.75" shape="1474.79,974.81 1475.13,977.62 1473.85,980.23"/>
+ </edge>
+ <edge id=":267169634_18" function="internal">
+ <lane id=":267169634_18_0" index="0" speed="15.28" length="12.71" shape="1473.85,980.23 1473.53,980.88 1470.00,984.59 1464.54,988.75"/>
+ </edge>
+ <edge id=":267169634_7" function="internal">
+ <lane id=":267169634_7_0" index="0" speed="22.22" length="2.41" shape="1474.79,974.81 1474.61,976.28 1474.06,977.02"/>
+ </edge>
+ <edge id=":267169634_19" function="internal">
+ <lane id=":267169634_19_0" index="0" speed="22.22" length="2.41" shape="1474.06,977.02 1473.14,977.02 1471.84,976.29"/>
+ </edge>
+ <edge id=":267169634_8" function="internal">
+ <lane id=":267169634_8_0" index="0" speed="15.28" length="13.88" shape="1462.68,986.03 1467.18,982.74 1470.21,980.02 1471.76,977.87 1471.84,976.29"/>
+ </edge>
+ <edge id=":267169634_9" function="internal">
+ <lane id=":267169634_9_0" index="0" speed="15.28" length="20.30" shape="1462.68,986.03 1468.73,982.62 1473.70,981.42 1477.57,982.43 1480.35,985.63"/>
+ </edge>
+ <edge id=":267169634_10" function="internal">
+ <lane id=":267169634_10_0" index="0" speed="8.33" length="22.90" shape="1462.68,986.03 1469.52,982.11 1473.08,981.93 1473.37,985.48 1470.38,992.78"/>
+ </edge>
+ <edge id=":267169634_11" function="internal">
+ <lane id=":267169634_11_0" index="0" speed="8.33" length="4.82" shape="1462.68,986.03 1464.17,986.01 1464.97,986.46 1465.10,987.37 1464.54,988.75"/>
+ </edge>
+ <edge id=":267169634_12" function="internal">
+ <lane id=":267169634_12_0" index="0" speed="8.33" length="8.60" shape="1467.44,991.29 1468.56,988.55 1468.45,987.21 1467.11,987.28 1464.54,988.75"/>
+ </edge>
+ <edge id=":267169634_13" function="internal">
+ <lane id=":267169634_13_0" index="0" speed="15.28" length="15.93" shape="1467.44,991.29 1469.96,985.90 1471.53,981.61 1472.16,978.40 1471.84,976.29"/>
+ </edge>
+ <edge id=":267169634_14" function="internal">
+ <lane id=":267169634_14_0" index="0" speed="15.28" length="19.10" shape="1467.44,991.29 1471.17,985.13 1474.57,982.13 1477.63,982.30 1480.35,985.63"/>
+ </edge>
+ <edge id=":267169634_15" function="internal">
+ <lane id=":267169634_15_0" index="0" speed="8.33" length="4.82" shape="1467.44,991.29 1468.73,990.56 1469.65,990.56 1470.20,991.30 1470.38,992.78"/>
+ </edge>
+ <edge id=":267169686_0" function="internal">
+ <lane id=":267169686_0_0" index="0" speed="8.33" length="6.11" shape="1419.13,1102.38 1418.10,1100.81 1417.06,1100.27 1416.00,1100.77 1414.92,1102.30"/>
+ </edge>
+ <edge id=":267169686_1" function="internal">
+ <lane id=":267169686_1_0" index="0" speed="8.33" length="15.37" shape="1419.13,1102.38 1417.44,1098.97 1415.67,1095.52 1413.85,1092.10 1412.00,1088.77"/>
+ </edge>
+ <edge id=":267169686_2" function="internal">
+ <lane id=":267169686_2_0" index="0" speed="8.33" length="15.91" shape="1419.13,1102.38 1417.70,1098.48 1417.22,1094.62 1417.69,1090.81 1419.10,1087.04"/>
+ </edge>
+ <edge id=":267169686_3" function="internal">
+ <lane id=":267169686_3_0" index="0" speed="8.33" length="4.82" shape="1419.13,1102.38 1419.33,1100.91 1419.89,1100.18 1420.82,1100.19 1422.10,1100.95"/>
+ </edge>
+ <edge id=":267169686_4" function="internal">
+ <lane id=":267169686_4_0" index="0" speed="8.33" length="12.88" shape="1422.05,1088.53 1420.91,1091.56 1420.54,1094.65 1420.94,1097.77 1422.10,1100.95"/>
+ </edge>
+ <edge id=":267169686_5" function="internal">
+ <lane id=":267169686_5_0" index="0" speed="8.33" length="15.51" shape="1422.05,1088.53 1420.31,1091.94 1418.52,1095.43 1416.70,1098.92 1414.92,1102.30"/>
+ </edge>
+ <edge id=":267169686_6" function="internal">
+ <lane id=":267169686_6_0" index="0" speed="8.33" length="14.20" shape="1422.05,1088.53 1419.62,1092.11 1417.14,1093.34 1414.60,1092.23 1412.00,1088.77"/>
+ </edge>
+ <edge id=":267169686_7" function="internal">
+ <lane id=":267169686_7_0" index="0" speed="8.33" length="4.82" shape="1422.05,1088.53 1420.76,1089.26 1419.83,1089.26 1419.28,1088.52 1419.10,1087.04"/>
+ </edge>
+ <edge id=":267169686_8" function="internal">
+ <lane id=":267169686_8_0" index="0" speed="8.33" length="5.98" shape="1414.87,1087.14 1415.96,1088.60 1417.03,1089.07 1418.08,1088.55 1419.10,1087.04"/>
+ </edge>
+ <edge id=":267169686_9" function="internal">
+ <lane id=":267169686_9_0" index="0" speed="8.33" length="15.58" shape="1414.87,1087.14 1416.73,1090.50 1418.59,1093.99 1420.40,1097.50 1422.10,1100.95"/>
+ </edge>
+ <edge id=":267169686_10" function="internal">
+ <lane id=":267169686_10_0" index="0" speed="8.33" length="15.85" shape="1414.87,1087.14 1416.44,1090.85 1416.97,1094.62 1416.46,1098.43 1414.92,1102.30"/>
+ </edge>
+ <edge id=":267169686_11" function="internal">
+ <lane id=":267169686_11_0" index="0" speed="8.33" length="4.82" shape="1414.87,1087.14 1414.76,1088.63 1414.25,1089.39 1413.33,1089.44 1412.00,1088.77"/>
+ </edge>
+ <edge id=":267169686_12" function="internal">
+ <lane id=":267169686_12_0" index="0" speed="8.33" length="12.53" shape="1412.00,1100.76 1413.23,1097.69 1413.64,1094.67 1413.23,1091.70 1412.00,1088.77"/>
+ </edge>
+ <edge id=":267169686_13" function="internal">
+ <lane id=":267169686_13_0" index="0" speed="8.33" length="15.45" shape="1412.00,1100.76 1413.78,1097.38 1415.59,1093.92 1417.37,1090.45 1419.10,1087.04"/>
+ </edge>
+ <edge id=":267169686_14" function="internal">
+ <lane id=":267169686_14_0" index="0" speed="8.33" length="14.65" shape="1412.00,1100.76 1414.60,1097.07 1417.14,1095.87 1419.64,1097.16 1422.10,1100.95"/>
+ </edge>
+ <edge id=":267169686_15" function="internal">
+ <lane id=":267169686_15_0" index="0" speed="8.33" length="4.82" shape="1412.00,1100.76 1413.31,1100.05 1414.23,1100.07 1414.77,1100.82 1414.92,1102.30"/>
+ </edge>
+ <edge id=":267169690_0" function="internal">
+ <lane id=":267169690_0_0" index="0" speed="8.33" length="5.00" shape="1387.23,1045.14 1386.39,1044.05 1385.40,1043.50 1384.27,1043.47 1383.00,1043.98"/>
+ </edge>
+ <edge id=":267169690_1" function="internal">
+ <lane id=":267169690_1_0" index="0" speed="15.28" length="9.87" shape="1387.23,1045.14 1382.42,1036.52"/>
+ </edge>
+ <edge id=":267169690_2" function="internal">
+ <lane id=":267169690_2_0" index="0" speed="8.33" length="7.25" shape="1387.23,1045.14 1386.21,1042.52 1386.27,1040.12 1387.20,1038.30"/>
+ </edge>
+ <edge id=":267169690_16" function="internal">
+ <lane id=":267169690_16_0" index="0" speed="8.33" length="3.37" shape="1387.20,1038.30 1387.39,1037.93 1389.58,1035.96"/>
+ </edge>
+ <edge id=":267169690_3" function="internal">
+ <lane id=":267169690_3_0" index="0" speed="8.33" length="2.41" shape="1387.23,1045.14 1387.33,1043.65 1387.85,1042.89"/>
+ </edge>
+ <edge id=":267169690_17" function="internal">
+ <lane id=":267169690_17_0" index="0" speed="8.33" length="2.41" shape="1387.85,1042.89 1388.77,1042.84 1390.10,1043.51"/>
+ </edge>
+ <edge id=":267169690_4" function="internal">
+ <lane id=":267169690_4_0" index="0" speed="8.33" length="5.61" shape="1391.44,1038.68 1390.25,1039.74 1389.63,1040.90 1389.58,1042.15 1390.10,1043.51"/>
+ </edge>
+ <edge id=":267169690_5" function="internal">
+ <lane id=":267169690_5_0" index="0" speed="8.33" length="9.97" shape="1391.44,1038.68 1383.00,1043.98"/>
+ </edge>
+ <edge id=":267169690_6" function="internal">
+ <lane id=":267169690_6_0" index="0" speed="15.28" length="10.83" shape="1391.44,1038.68 1388.74,1040.01 1386.34,1040.09 1384.23,1038.93 1382.42,1036.52"/>
+ </edge>
+ <edge id=":267169690_7" function="internal">
+ <lane id=":267169690_7_0" index="0" speed="8.33" length="4.82" shape="1391.44,1038.68 1389.96,1038.70 1389.15,1038.25 1389.03,1037.34 1389.58,1035.96"/>
+ </edge>
+ <edge id=":267169690_8" function="internal">
+ <lane id=":267169690_8_0" index="0" speed="15.28" length="5.12" shape="1385.32,1034.93 1386.17,1036.07 1387.17,1036.62 1388.31,1036.58 1389.58,1035.96"/>
+ </edge>
+ <edge id=":267169690_9" function="internal">
+ <lane id=":267169690_9_0" index="0" speed="15.28" length="9.82" shape="1385.32,1034.93 1390.10,1043.51"/>
+ </edge>
+ <edge id=":267169690_10" function="internal">
+ <lane id=":267169690_10_0" index="0" speed="15.28" length="7.38" shape="1385.32,1034.93 1386.38,1037.71 1386.35,1040.14 1385.41,1041.88"/>
+ </edge>
+ <edge id=":267169690_18" function="internal">
+ <lane id=":267169690_18_0" index="0" speed="15.28" length="3.23" shape="1385.41,1041.88 1385.22,1042.23 1383.00,1043.98"/>
+ </edge>
+ <edge id=":267169690_11" function="internal">
+ <lane id=":267169690_11_0" index="0" speed="22.22" length="2.41" shape="1385.32,1034.93 1385.19,1036.41 1384.66,1037.17"/>
+ </edge>
+ <edge id=":267169690_19" function="internal">
+ <lane id=":267169690_19_0" index="0" speed="22.22" length="2.41" shape="1384.66,1037.17 1383.74,1037.21 1382.42,1036.52"/>
+ </edge>
+ <edge id=":267169690_12" function="internal">
+ <lane id=":267169690_12_0" index="0" speed="15.28" length="5.35" shape="1381.36,1041.11 1382.45,1040.24 1382.99,1039.19 1382.98,1037.94 1382.42,1036.52"/>
+ </edge>
+ <edge id=":267169690_13" function="internal">
+ <lane id=":267169690_13_0" index="0" speed="8.33" length="9.70" shape="1381.36,1041.11 1389.58,1035.96"/>
+ </edge>
+ <edge id=":267169690_14" function="internal">
+ <lane id=":267169690_14_0" index="0" speed="8.33" length="10.33" shape="1381.36,1041.11 1384.00,1040.07 1386.33,1040.12 1388.36,1041.27 1390.10,1043.51"/>
+ </edge>
+ <edge id=":267169690_15" function="internal">
+ <lane id=":267169690_15_0" index="0" speed="8.33" length="4.82" shape="1381.36,1041.11 1382.85,1041.21 1383.61,1041.73 1383.66,1042.65 1383.00,1043.98"/>
+ </edge>
+ <edge id=":267169714_0" function="internal">
+ <lane id=":267169714_0_0" index="0" speed="22.22" length="5.01" shape="1519.25,1067.75 1518.45,1066.63 1517.49,1066.04 1516.36,1065.97 1515.07,1066.44"/>
+ </edge>
+ <edge id=":267169714_1" function="internal">
+ <lane id=":267169714_1_0" index="0" speed="22.22" length="9.60" shape="1519.25,1067.75 1514.84,1059.23"/>
+ </edge>
+ <edge id=":267169714_2" function="internal">
+ <lane id=":267169714_2_0" index="0" speed="22.22" length="10.41" shape="1519.25,1067.75 1518.32,1065.07 1518.47,1062.72 1519.68,1060.69 1521.97,1058.98"/>
+ </edge>
+ <edge id=":267169714_3" function="internal">
+ <lane id=":267169714_3_0" index="0" speed="22.22" length="4.82" shape="1519.25,1067.75 1519.42,1066.28 1519.96,1065.53 1520.88,1065.52 1522.18,1066.25"/>
+ </edge>
+ <edge id=":267169714_4" function="internal">
+ <lane id=":267169714_4_0" index="0" speed="22.22" length="5.19" shape="1523.55,1061.88 1522.41,1062.73 1521.80,1063.74 1521.72,1064.91 1522.18,1066.25"/>
+ </edge>
+ <edge id=":267169714_5" function="internal">
+ <lane id=":267169714_5_0" index="0" speed="22.22" length="9.63" shape="1523.55,1061.88 1515.07,1066.44"/>
+ </edge>
+ <edge id=":267169714_6" function="internal">
+ <lane id=":267169714_6_0" index="0" speed="22.22" length="7.19" shape="1523.55,1061.88 1520.86,1062.88 1518.52,1062.78 1516.83,1061.75"/>
+ </edge>
+ <edge id=":267169714_16" function="internal">
+ <lane id=":267169714_16_0" index="0" speed="22.22" length="3.23" shape="1516.83,1061.75 1516.51,1061.56 1514.84,1059.23"/>
+ </edge>
+ <edge id=":267169714_7" function="internal">
+ <lane id=":267169714_7_0" index="0" speed="22.22" length="2.41" shape="1523.55,1061.88 1522.07,1061.75 1521.31,1061.22"/>
+ </edge>
+ <edge id=":267169714_17" function="internal">
+ <lane id=":267169714_17_0" index="0" speed="22.22" length="2.41" shape="1521.31,1061.22 1521.28,1060.30 1521.97,1058.98"/>
+ </edge>
+ <edge id=":267169714_8" function="internal">
+ <lane id=":267169714_8_0" index="0" speed="22.22" length="5.03" shape="1517.77,1057.70 1518.57,1058.83 1519.54,1059.42 1520.67,1059.47 1521.97,1058.98"/>
+ </edge>
+ <edge id=":267169714_9" function="internal">
+ <lane id=":267169714_9_0" index="0" speed="22.22" length="9.61" shape="1517.77,1057.70 1522.18,1066.25"/>
+ </edge>
+ <edge id=":267169714_10" function="internal">
+ <lane id=":267169714_10_0" index="0" speed="22.22" length="10.41" shape="1517.77,1057.70 1518.72,1060.40 1518.58,1062.75 1517.37,1064.77 1515.07,1066.44"/>
+ </edge>
+ <edge id=":267169714_11" function="internal">
+ <lane id=":267169714_11_0" index="0" speed="22.22" length="4.82" shape="1517.77,1057.70 1517.61,1059.18 1517.07,1059.93 1516.14,1059.94 1514.84,1059.23"/>
+ </edge>
+ <edge id=":267169714_12" function="internal">
+ <lane id=":267169714_12_0" index="0" speed="22.22" length="5.12" shape="1513.52,1063.52 1514.65,1062.70 1515.25,1061.71 1515.31,1060.55 1514.84,1059.23"/>
+ </edge>
+ <edge id=":267169714_13" function="internal">
+ <lane id=":267169714_13_0" index="0" speed="22.22" length="9.58" shape="1513.52,1063.52 1521.97,1058.98"/>
+ </edge>
+ <edge id=":267169714_14" function="internal">
+ <lane id=":267169714_14_0" index="0" speed="22.22" length="7.10" shape="1513.52,1063.52 1516.21,1062.56 1518.54,1062.69 1520.17,1063.70"/>
+ </edge>
+ <edge id=":267169714_18" function="internal">
+ <lane id=":267169714_18_0" index="0" speed="22.22" length="3.28" shape="1520.17,1063.70 1520.54,1063.92 1522.18,1066.25"/>
+ </edge>
+ <edge id=":267169714_15" function="internal">
+ <lane id=":267169714_15_0" index="0" speed="22.22" length="2.41" shape="1513.52,1063.52 1515.00,1063.67 1515.75,1064.21"/>
+ </edge>
+ <edge id=":267169714_19" function="internal">
+ <lane id=":267169714_19_0" index="0" speed="22.22" length="2.41" shape="1515.75,1064.21 1515.77,1065.13 1515.07,1066.44"/>
+ </edge>
+ <edge id=":267169715_0" function="internal">
+ <lane id=":267169715_0_0" index="0" speed="8.33" length="9.47" shape="1426.05,1116.79 1421.96,1108.25"/>
+ </edge>
+ <edge id=":267169715_1" function="internal">
+ <lane id=":267169715_1_0" index="0" speed="15.28" length="10.32" shape="1426.05,1116.79 1425.25,1114.15 1425.49,1111.84 1426.77,1109.85 1429.10,1108.18"/>
+ </edge>
+ <edge id=":267169715_2" function="internal">
+ <lane id=":267169715_2_0" index="0" speed="8.33" length="4.82" shape="1426.05,1116.79 1426.27,1115.31 1426.84,1114.59 1427.76,1114.61 1429.03,1115.37"/>
+ </edge>
+ <edge id=":267169715_3" function="internal">
+ <lane id=":267169715_3_0" index="0" speed="15.28" length="5.16" shape="1430.64,1111.09 1429.45,1111.94 1428.79,1112.93 1428.65,1114.08 1429.03,1115.37"/>
+ </edge>
+ <edge id=":267169715_4" function="internal">
+ <lane id=":267169715_4_0" index="0" speed="15.28" length="10.51" shape="1430.64,1111.09 1427.92,1112.07 1425.56,1111.92 1423.58,1110.65 1421.96,1108.25"/>
+ </edge>
+ <edge id=":267169715_5" function="internal">
+ <lane id=":267169715_5_0" index="0" speed="22.22" length="4.82" shape="1430.64,1111.09 1429.16,1110.94 1428.41,1110.41 1428.39,1109.48 1429.10,1108.18"/>
+ </edge>
+ <edge id=":267169715_6" function="internal">
+ <lane id=":267169715_6_0" index="0" speed="15.28" length="5.04" shape="1424.93,1106.81 1425.71,1107.96 1426.66,1108.57 1427.79,1108.65 1429.10,1108.18"/>
+ </edge>
+ <edge id=":267169715_7" function="internal">
+ <lane id=":267169715_7_0" index="0" speed="8.33" length="9.49" shape="1424.93,1106.81 1429.03,1115.37"/>
+ </edge>
+ <edge id=":267169715_8" function="internal">
+ <lane id=":267169715_8_0" index="0" speed="8.33" length="4.82" shape="1424.93,1106.81 1424.73,1108.28 1424.16,1109.01 1423.24,1109.00 1421.96,1108.25"/>
+ </edge>
+ <edge id=":267169795_0" function="internal">
+ <lane id=":267169795_0_0" index="0" speed="22.22" length="4.82" shape="1578.23,1161.81 1578.36,1163.29 1577.98,1164.13 1577.08,1164.32 1575.66,1163.88"/>
+ </edge>
+ <edge id=":267169964_0" function="internal">
+ <lane id=":267169964_0_0" index="0" speed="22.22" length="5.08" shape="1232.24,1128.05 1231.10,1128.89 1230.49,1129.88 1230.41,1131.02 1230.87,1132.30"/>
+ </edge>
+ <edge id=":267169964_1" function="internal">
+ <lane id=":267169964_1_0" index="0" speed="22.22" length="2.41" shape="1232.24,1128.05 1230.76,1127.92 1230.00,1127.39"/>
+ </edge>
+ <edge id=":267169964_4" function="internal">
+ <lane id=":267169964_4_0" index="0" speed="22.22" length="2.41" shape="1230.00,1127.39 1229.97,1126.47 1230.66,1125.15"/>
+ </edge>
+ <edge id=":267169964_2" function="internal">
+ <lane id=":267169964_2_0" index="0" speed="22.22" length="5.03" shape="1226.47,1123.87 1227.27,1124.99 1228.23,1125.58 1229.36,1125.64 1230.66,1125.15"/>
+ </edge>
+ <edge id=":267169964_3" function="internal">
+ <lane id=":267169964_3_0" index="0" speed="22.22" length="9.52" shape="1226.47,1123.87 1230.87,1132.30"/>
+ </edge>
+ <edge id=":30406565_0" function="internal">
+ <lane id=":30406565_0_0" index="0" speed="22.22" length="1.28" shape="687.04,1858.39 687.05,1857.10"/>
+ </edge>
+ <edge id=":30406565_1" function="internal">
+ <lane id=":30406565_1_0" index="0" speed="22.22" length="2.41" shape="687.04,1858.39 687.71,1857.06 688.47,1856.55"/>
+ </edge>
+ <edge id=":30406565_4" function="internal">
+ <lane id=":30406565_4_0" index="0" speed="22.22" length="2.41" shape="688.47,1856.55 689.34,1856.86 690.31,1857.98"/>
+ </edge>
+ <edge id=":30406565_2" function="internal">
+ <lane id=":30406565_2_0" index="0" speed="22.22" length="0.42" shape="690.32,1857.57 690.31,1857.98"/>
+ </edge>
+ <edge id=":30406565_3" function="internal">
+ <lane id=":30406565_3_0" index="0" speed="22.22" length="2.41" shape="690.32,1857.57 689.33,1858.68 688.45,1858.97"/>
+ </edge>
+ <edge id=":30406565_5" function="internal">
+ <lane id=":30406565_5_0" index="0" speed="22.22" length="2.41" shape="688.45,1858.97 687.69,1858.45 687.05,1857.10"/>
+ </edge>
+ <edge id=":30406599_0" function="internal">
+ <lane id=":30406599_0_0" index="0" speed="25.00" length="11.94" shape="783.15,1282.02 778.65,1284.30 775.52,1285.23 773.76,1284.81 773.36,1283.04"/>
+ </edge>
+ <edge id=":30406599_1" function="internal">
+ <lane id=":30406599_1_0" index="0" speed="27.78" length="20.51" shape="783.15,1282.02 777.92,1285.01 774.25,1287.12 770.59,1289.26 765.40,1292.30"/>
+ </edge>
+ <edge id=":30406599_2" function="internal">
+ <lane id=":30406599_2_0" index="0" speed="27.78" length="20.55" shape="781.51,1279.16 776.28,1282.15 772.60,1284.27 768.92,1286.41 763.73,1289.46"/>
+ </edge>
+ <edge id=":30406599_3" function="internal">
+ <lane id=":30406599_3_0" index="0" speed="25.00" length="13.01" shape="781.51,1279.16 776.37,1281.90 772.75,1283.40 770.65,1283.65 770.08,1282.66"/>
+ </edge>
+ <edge id=":30406599_4" function="internal">
+ <lane id=":30406599_4_0" index="0" speed="27.78" length="2.41" shape="781.51,1279.16 780.03,1279.05 779.26,1278.54"/>
+ </edge>
+ <edge id=":30406599_18" function="internal">
+ <lane id=":30406599_18_0" index="0" speed="27.78" length="2.41" shape="779.26,1278.54 779.21,1277.62 779.88,1276.29"/>
+ </edge>
+ <edge id=":30406599_5" function="internal">
+ <lane id=":30406599_5_0" index="0" speed="25.00" length="5.94" shape="774.01,1277.38 774.34,1276.52 775.16,1275.57 776.46,1274.54 778.24,1273.42"/>
+ </edge>
+ <edge id=":30406599_6" function="internal">
+ <lane id=":30406599_6_0" index="0" speed="22.22" length="5.69" shape="774.01,1277.38 773.36,1283.04"/>
+ </edge>
+ <edge id=":30406599_7" function="internal">
+ <lane id=":30406599_7_0" index="0" speed="25.00" length="2.83" shape="774.01,1277.38 773.22,1280.10"/>
+ </edge>
+ <edge id=":30406599_19" function="internal">
+ <lane id=":30406599_19_0" index="0" speed="25.00" length="13.56" shape="773.22,1280.10 773.08,1280.56 771.07,1283.64 767.95,1286.60 763.73,1289.46"/>
+ </edge>
+ <edge id=":30406599_8" function="internal">
+ <lane id=":30406599_8_0" index="0" speed="22.22" length="4.80" shape="774.01,1277.38 775.00,1280.17 774.68,1281.98"/>
+ </edge>
+ <edge id=":30406599_20" function="internal">
+ <lane id=":30406599_20_0" index="0" speed="22.22" length="4.80" shape="774.68,1281.98 773.04,1282.81 770.08,1282.66"/>
+ </edge>
+ <edge id=":30406599_9" function="internal">
+ <lane id=":30406599_9_0" index="0" speed="25.00" length="11.89" shape="760.38,1283.77 764.84,1281.44 767.94,1280.48 769.68,1280.88 770.08,1282.66"/>
+ </edge>
+ <edge id=":30406599_10" function="internal">
+ <lane id=":30406599_10_0" index="0" speed="27.78" length="20.64" shape="760.38,1283.77 765.59,1280.71 769.29,1278.56 773.00,1276.42 778.24,1273.42"/>
+ </edge>
+ <edge id=":30406599_11" function="internal">
+ <lane id=":30406599_11_0" index="0" speed="27.78" length="20.59" shape="762.06,1286.61 767.26,1283.56 770.94,1281.41 774.64,1279.28 779.88,1276.29"/>
+ </edge>
+ <edge id=":30406599_12" function="internal">
+ <lane id=":30406599_12_0" index="0" speed="25.00" length="12.94" shape="762.06,1286.61 767.14,1283.82 770.72,1282.29 772.79,1282.03 773.36,1283.04"/>
+ </edge>
+ <edge id=":30406599_13" function="internal">
+ <lane id=":30406599_13_0" index="0" speed="27.78" length="2.41" shape="762.06,1286.61 763.54,1286.70 764.32,1287.20"/>
+ </edge>
+ <edge id=":30406599_21" function="internal">
+ <lane id=":30406599_21_0" index="0" speed="27.78" length="2.41" shape="764.32,1287.20 764.38,1288.12 763.73,1289.46"/>
+ </edge>
+ <edge id=":30406599_14" function="internal">
+ <lane id=":30406599_14_0" index="0" speed="25.00" length="6.55" shape="769.52,1287.49 769.15,1288.75 768.34,1289.98 767.09,1291.16 765.40,1292.30"/>
+ </edge>
+ <edge id=":30406599_15" function="internal">
+ <lane id=":30406599_15_0" index="0" speed="22.22" length="4.86" shape="769.52,1287.49 770.08,1282.66"/>
+ </edge>
+ <edge id=":30406599_16" function="internal">
+ <lane id=":30406599_16_0" index="0" speed="25.00" length="1.84" shape="769.52,1287.49 770.07,1285.74"/>
+ </edge>
+ <edge id=":30406599_22" function="internal">
+ <lane id=":30406599_22_0" index="0" speed="25.00" length="13.90" shape="770.07,1285.74 770.41,1284.67 772.44,1281.86 775.59,1279.07 779.88,1276.29"/>
+ </edge>
+ <edge id=":30406599_17" function="internal">
+ <lane id=":30406599_17_0" index="0" speed="22.22" length="4.29" shape="769.52,1287.49 768.81,1284.94 769.21,1283.35"/>
+ </edge>
+ <edge id=":30406599_23" function="internal">
+ <lane id=":30406599_23_0" index="0" speed="22.22" length="4.29" shape="769.21,1283.35 770.73,1282.71 773.36,1283.04"/>
+ </edge>
+ <edge id=":314636763_0" function="internal">
+ <lane id=":314636763_0_0" index="0" speed="6.94" length="3.54" shape="1396.75,2177.58 1396.06,2176.40 1395.43,2175.63 1394.86,2175.26 1394.36,2175.30"/>
+ </edge>
+ <edge id=":314636763_1" function="internal">
+ <lane id=":314636763_1_0" index="0" speed="5.56" length="4.90" shape="1396.75,2177.58 1394.11,2173.45"/>
+ </edge>
+ <edge id=":314636763_2" function="internal">
+ <lane id=":314636763_2_0" index="0" speed="6.94" length="10.31" shape="1396.75,2177.58 1395.81,2174.91 1395.96,2172.59 1397.17,2170.60 1399.47,2168.95"/>
+ </edge>
+ <edge id=":314636763_3" function="internal">
+ <lane id=":314636763_3_0" index="0" speed="5.56" length="4.82" shape="1396.75,2177.58 1396.91,2176.10 1397.45,2175.35 1398.37,2175.34 1399.67,2176.06"/>
+ </edge>
+ <edge id=":314636763_4" function="internal">
+ <lane id=":314636763_4_0" index="0" speed="6.94" length="5.00" shape="1401.00,2171.88 1399.88,2172.68 1399.29,2173.64 1399.22,2174.77 1399.67,2176.06"/>
+ </edge>
+ <edge id=":314636763_5" function="internal">
+ <lane id=":314636763_5_0" index="0" speed="8.33" length="7.47" shape="1401.00,2171.88 1394.36,2175.30"/>
+ </edge>
+ <edge id=":314636763_6" function="internal">
+ <lane id=":314636763_6_0" index="0" speed="6.94" length="7.27" shape="1401.00,2171.88 1398.70,2172.95 1396.78,2173.57 1395.25,2173.74 1394.11,2173.45"/>
+ </edge>
+ <edge id=":314636763_7" function="internal">
+ <lane id=":314636763_7_0" index="0" speed="8.33" length="2.41" shape="1401.00,2171.88 1399.52,2171.72 1398.77,2171.18"/>
+ </edge>
+ <edge id=":314636763_16" function="internal">
+ <lane id=":314636763_16_0" index="0" speed="8.33" length="2.41" shape="1398.77,2171.18 1398.75,2170.26 1399.47,2168.95"/>
+ </edge>
+ <edge id=":314636763_8" function="internal">
+ <lane id=":314636763_8_0" index="0" speed="6.94" length="4.14" shape="1395.67,2170.54 1396.05,2170.52 1396.80,2170.24 1397.95,2169.72 1399.47,2168.95"/>
+ </edge>
+ <edge id=":314636763_9" function="internal">
+ <lane id=":314636763_9_0" index="0" speed="5.56" length="6.81" shape="1395.67,2170.54 1399.67,2176.06"/>
+ </edge>
+ <edge id=":314636763_10" function="internal">
+ <lane id=":314636763_10_0" index="0" speed="6.94" length="6.88" shape="1395.67,2170.54 1397.06,2171.63 1397.30,2172.79 1396.40,2174.01 1394.36,2175.30"/>
+ </edge>
+ <edge id=":314636763_11" function="internal">
+ <lane id=":314636763_11_0" index="0" speed="5.56" length="4.82" shape="1395.67,2170.54 1396.37,2171.86 1396.34,2172.78 1395.59,2173.31 1394.11,2173.45"/>
+ </edge>
+ <edge id=":314636763_12" function="internal">
+ <lane id=":314636763_12_0" index="0" speed="6.94" length="1.80" shape="1392.87,2172.36 1392.79,2172.50 1392.97,2172.73 1393.41,2173.05 1394.11,2173.45"/>
+ </edge>
+ <edge id=":314636763_13" function="internal">
+ <lane id=":314636763_13_0" index="0" speed="8.33" length="7.43" shape="1392.87,2172.36 1399.47,2168.95"/>
+ </edge>
+ <edge id=":314636763_14" function="internal">
+ <lane id=":314636763_14_0" index="0" speed="6.94" length="5.58" shape="1392.87,2172.36 1394.74,2171.85 1396.50,2172.30 1397.89,2173.48"/>
+ </edge>
+ <edge id=":314636763_17" function="internal">
+ <lane id=":314636763_17_0" index="0" speed="6.94" length="3.15" shape="1397.89,2173.48 1398.15,2173.70 1399.67,2176.06"/>
+ </edge>
+ <edge id=":314636763_15" function="internal">
+ <lane id=":314636763_15_0" index="0" speed="8.33" length="2.41" shape="1392.87,2172.36 1394.34,2172.53 1395.09,2173.08"/>
+ </edge>
+ <edge id=":314636763_18" function="internal">
+ <lane id=":314636763_18_0" index="0" speed="8.33" length="2.41" shape="1395.09,2173.08 1395.09,2174.01 1394.36,2175.30"/>
+ </edge>
+ <edge id=":320879142_0" function="internal">
+ <lane id=":320879142_0_0" index="0" speed="22.22" length="8.24" shape="1318.96,2000.93 1317.95,1999.92 1316.36,1999.66 1314.20,2000.12 1311.45,2001.33"/>
+ </edge>
+ <edge id=":320879142_1" function="internal">
+ <lane id=":320879142_1_0" index="0" speed="22.22" length="7.20" shape="1318.96,2000.93 1317.91,1999.42 1316.57,1998.37 1314.95,1997.76 1313.03,1997.59"/>
+ </edge>
+ <edge id=":320879142_2" function="internal">
+ <lane id=":320879142_2_0" index="0" speed="22.22" length="2.41" shape="1318.96,2000.93 1319.12,1999.45 1319.66,1998.70"/>
+ </edge>
+ <edge id=":320879142_6" function="internal">
+ <lane id=":320879142_6_0" index="0" speed="22.22" length="2.41" shape="1319.66,1998.70 1320.58,1998.68 1321.88,1999.40"/>
+ </edge>
+ <edge id=":320879142_3" function="internal">
+ <lane id=":320879142_3_0" index="0" speed="22.22" length="5.01" shape="1323.16,1995.18 1322.06,1995.99 1321.48,1996.97 1321.42,1998.10 1321.88,1999.40"/>
+ </edge>
+ <edge id=":320879142_4" function="internal">
+ <lane id=":320879142_4_0" index="0" speed="22.22" length="13.22" shape="1323.16,1995.18 1320.09,1996.82 1317.32,1998.28 1314.54,1999.73 1311.45,2001.33"/>
+ </edge>
+ <edge id=":320879142_5" function="internal">
+ <lane id=":320879142_5_0" index="0" speed="22.22" length="10.57" shape="1323.16,1995.18 1320.42,1996.54 1318.32,1997.22 1316.10,1997.49 1313.03,1997.59"/>
+ </edge>
+ <edge id=":356693794_0" function="internal">
+ <lane id=":356693794_0_0" index="0" speed="27.78" length="4.82" shape="273.82,1568.09 272.34,1567.97 271.57,1567.45 271.53,1566.53 272.21,1565.21"/>
+ </edge>
+ <edge id=":410296508_0" function="internal">
+ <lane id=":410296508_0_0" index="0" speed="27.78" length="9.66" shape="681.08,1341.52 672.71,1346.33"/>
+ </edge>
+ <edge id=":410296508_1" function="internal">
+ <lane id=":410296508_1_0" index="0" speed="27.78" length="9.62" shape="679.42,1338.67 671.08,1343.46"/>
+ </edge>
+ <edge id=":410296508_2" function="internal">
+ <lane id=":410296508_2_0" index="0" speed="25.00" length="7.21" shape="679.42,1338.67 676.85,1340.05 674.89,1340.82 673.56,1340.98 672.84,1340.53"/>
+ </edge>
+ <edge id=":410296508_3" function="internal">
+ <lane id=":410296508_3_0" index="0" speed="27.78" length="2.41" shape="679.42,1338.67 677.94,1338.58 677.17,1338.07"/>
+ </edge>
+ <edge id=":410296508_11" function="internal">
+ <lane id=":410296508_11_0" index="0" speed="27.78" length="2.41" shape="677.17,1338.07 677.11,1337.15 677.76,1335.82"/>
+ </edge>
+ <edge id=":410296508_4" function="internal">
+ <lane id=":410296508_4_0" index="0" speed="25.00" length="3.15" shape="673.36,1334.54 673.54,1334.45 674.05,1334.15 674.90,1333.66 676.10,1332.97"/>
+ </edge>
+ <edge id=":410296508_5" function="internal">
+ <lane id=":410296508_5_0" index="0" speed="25.00" length="10.45" shape="673.36,1334.54 674.40,1337.29 674.37,1339.69 673.26,1341.75 671.08,1343.46"/>
+ </edge>
+ <edge id=":410296508_6" function="internal">
+ <lane id=":410296508_6_0" index="0" speed="22.22" length="8.79" shape="673.36,1334.54 675.48,1336.23 676.10,1337.79 675.22,1339.23 672.84,1340.53"/>
+ </edge>
+ <edge id=":410296508_7" function="internal">
+ <lane id=":410296508_7_0" index="0" speed="25.00" length="6.47" shape="667.84,1337.71 669.15,1337.32 670.42,1337.66 671.65,1338.73 672.84,1340.53"/>
+ </edge>
+ <edge id=":410296508_8" function="internal">
+ <lane id=":410296508_8_0" index="0" speed="27.78" length="9.52" shape="667.84,1337.71 676.10,1332.97"/>
+ </edge>
+ <edge id=":410296508_9" function="internal">
+ <lane id=":410296508_9_0" index="0" speed="27.78" length="9.57" shape="669.46,1340.58 677.76,1335.82"/>
+ </edge>
+ <edge id=":410296508_10" function="internal">
+ <lane id=":410296508_10_0" index="0" speed="27.78" length="2.41" shape="669.46,1340.58 670.94,1340.69 671.71,1341.21"/>
+ </edge>
+ <edge id=":410296508_12" function="internal">
+ <lane id=":410296508_12_0" index="0" speed="27.78" length="2.41" shape="671.71,1341.21 671.76,1342.13 671.08,1343.46"/>
+ </edge>
+ <edge id=":427996791_0" function="internal">
+ <lane id=":427996791_0_0" index="0" speed="25.00" length="3.34" shape="1075.43,2111.18 1075.36,2111.49 1074.90,2111.92 1074.07,2112.48 1072.85,2113.16"/>
+ </edge>
+ <edge id=":427996791_1" function="internal">
+ <lane id=":427996791_1_0" index="0" speed="22.22" length="1.18" shape="1075.43,2111.18 1074.93,2110.11"/>
+ </edge>
+ <edge id=":427996791_2" function="internal">
+ <lane id=":427996791_2_0" index="0" speed="25.00" length="3.59" shape="1075.43,2111.18 1075.01,2110.04 1074.90,2109.12 1075.12,2108.42 1075.67,2107.95"/>
+ </edge>
+ <edge id=":427996791_3" function="internal">
+ <lane id=":427996791_3_0" index="0" speed="22.22" length="2.41" shape="1075.43,2111.18 1075.65,2109.71 1076.23,2108.98"/>
+ </edge>
+ <edge id=":427996791_16" function="internal">
+ <lane id=":427996791_16_0" index="0" speed="22.22" length="2.41" shape="1076.23,2108.98 1077.15,2109.01 1078.42,2109.78"/>
+ </edge>
+ <edge id=":427996791_4" function="internal">
+ <lane id=":427996791_4_0" index="0" speed="25.00" length="0.57" shape="1078.87,2110.00 1078.74,2110.04 1078.62,2110.02 1078.51,2109.93 1078.42,2109.78"/>
+ </edge>
+ <edge id=":427996791_5" function="internal">
+ <lane id=":427996791_5_0" index="0" speed="27.78" length="6.80" shape="1078.87,2110.00 1072.85,2113.16"/>
+ </edge>
+ <edge id=":427996791_6" function="internal">
+ <lane id=":427996791_6_0" index="0" speed="25.00" length="4.37" shape="1078.87,2110.00 1077.42,2110.63 1076.28,2110.86 1075.45,2110.69 1074.93,2110.11"/>
+ </edge>
+ <edge id=":427996791_7" function="internal">
+ <lane id=":427996791_7_0" index="0" speed="27.78" length="2.78" shape="1078.87,2110.00 1077.30,2110.69 1076.24,2110.58"/>
+ </edge>
+ <edge id=":427996791_17" function="internal">
+ <lane id=":427996791_17_0" index="0" speed="27.78" length="2.78" shape="1076.24,2110.58 1075.70,2109.66 1075.67,2107.95"/>
+ </edge>
+ <edge id=":427996791_8" function="internal">
+ <lane id=":427996791_8_0" index="0" speed="25.00" length="2.04" shape="1076.90,2106.52 1076.93,2106.85 1076.74,2107.19 1076.32,2107.56 1075.67,2107.95"/>
+ </edge>
+ <edge id=":427996791_9" function="internal">
+ <lane id=":427996791_9_0" index="0" speed="22.22" length="3.59" shape="1076.90,2106.52 1078.42,2109.78"/>
+ </edge>
+ <edge id=":427996791_10" function="internal">
+ <lane id=":427996791_10_0" index="0" speed="25.00" length="5.78" shape="1076.90,2106.52 1077.28,2108.29 1076.73,2109.99 1075.26,2111.61"/>
+ </edge>
+ <edge id=":427996791_18" function="internal">
+ <lane id=":427996791_18_0" index="0" speed="25.00" length="2.86" shape="1075.26,2111.61 1072.85,2113.16"/>
+ </edge>
+ <edge id=":427996791_11" function="internal">
+ <lane id=":427996791_11_0" index="0" speed="22.22" length="2.99" shape="1076.90,2106.52 1077.75,2108.16 1077.71,2109.30"/>
+ </edge>
+ <edge id=":427996791_19" function="internal">
+ <lane id=":427996791_19_0" index="0" speed="22.22" length="2.99" shape="1077.71,2109.30 1076.77,2109.95 1074.93,2110.11"/>
+ </edge>
+ <edge id=":427996791_12" function="internal">
+ <lane id=":427996791_12_0" index="0" speed="25.00" length="4.01" shape="1071.32,2110.23 1072.65,2109.64 1073.69,2109.43 1074.46,2109.58 1074.93,2110.11"/>
+ </edge>
+ <edge id=":427996791_13" function="internal">
+ <lane id=":427996791_13_0" index="0" speed="27.78" length="4.92" shape="1071.32,2110.23 1075.67,2107.95"/>
+ </edge>
+ <edge id=":427996791_14" function="internal">
+ <lane id=":427996791_14_0" index="0" speed="25.00" length="7.85" shape="1071.32,2110.23 1073.96,2109.05 1076.03,2108.58 1077.51,2108.82 1078.42,2109.78"/>
+ </edge>
+ <edge id=":427996791_15" function="internal">
+ <lane id=":427996791_15_0" index="0" speed="27.78" length="2.41" shape="1071.32,2110.23 1072.79,2110.39 1073.54,2110.93"/>
+ </edge>
+ <edge id=":427996791_20" function="internal">
+ <lane id=":427996791_20_0" index="0" speed="27.78" length="2.41" shape="1073.54,2110.93 1073.56,2111.85 1072.85,2113.16"/>
+ </edge>
+ <edge id=":427996792_0" function="internal">
+ <lane id=":427996792_0_0" index="0" speed="25.00" length="2.53" shape="1068.32,2095.93 1067.26,2093.63"/>
+ </edge>
+ <edge id=":427996792_1" function="internal">
+ <lane id=":427996792_1_0" index="0" speed="22.22" length="0.70" shape="1068.32,2095.93 1068.31,2095.22"/>
+ </edge>
+ <edge id=":427996792_25" function="internal">
+ <lane id=":427996792_25_0" index="0" speed="22.22" length="8.16" shape="1068.31,2095.22 1068.31,2094.73 1069.28,2093.34 1071.25,2091.77 1074.22,2090.02"/>
+ </edge>
+ <edge id=":427996792_2" function="internal">
+ <lane id=":427996792_2_0" index="0" speed="25.00" length="1.07" shape="1068.32,2095.93 1068.09,2094.88"/>
+ </edge>
+ <edge id=":427996792_26" function="internal">
+ <lane id=":427996792_26_0" index="0" speed="25.00" length="7.43" shape="1068.09,2094.88 1067.92,2094.16 1068.75,2093.24 1070.82,2093.17 1074.12,2093.95"/>
+ </edge>
+ <edge id=":427996792_3" function="internal">
+ <lane id=":427996792_3_0" index="0" speed="25.00" length="1.92" shape="1068.32,2095.93 1067.57,2094.16"/>
+ </edge>
+ <edge id=":427996792_27" function="internal">
+ <lane id=":427996792_27_0" index="0" speed="25.00" length="19.21" shape="1067.57,2094.16 1065.26,2088.81 1064.79,2086.18 1066.91,2088.04 1071.61,2094.38"/>
+ </edge>
+ <edge id=":427996792_4" function="internal">
+ <lane id=":427996792_4_0" index="0" speed="22.22" length="2.41" shape="1068.32,2095.93 1068.55,2094.46 1069.12,2093.74"/>
+ </edge>
+ <edge id=":427996792_28" function="internal">
+ <lane id=":427996792_28_0" index="0" speed="22.22" length="2.41" shape="1069.12,2093.74 1070.05,2093.76 1071.32,2094.53"/>
+ </edge>
+ <edge id=":427996792_5" function="internal">
+ <lane id=":427996792_5_0" index="0" speed="27.78" length="3.11" shape="1068.98,2096.22 1067.26,2093.63"/>
+ </edge>
+ <edge id=":427996792_6" function="internal">
+ <lane id=":427996792_6_0" index="0" speed="25.00" length="0.99" shape="1068.98,2096.22 1068.76,2095.26"/>
+ </edge>
+ <edge id=":427996792_29" function="internal">
+ <lane id=":427996792_29_0" index="0" speed="25.00" length="7.92" shape="1068.76,2095.26 1068.67,2094.90 1069.44,2093.42 1071.29,2091.79 1074.22,2090.02"/>
+ </edge>
+ <edge id=":427996792_7" function="internal">
+ <lane id=":427996792_7_0" index="0" speed="27.78" length="1.39" shape="1068.98,2096.22 1068.40,2094.96"/>
+ </edge>
+ <edge id=":427996792_30" function="internal">
+ <lane id=":427996792_30_0" index="0" speed="27.78" length="7.54" shape="1068.40,2094.96 1068.07,2094.26 1068.63,2093.23 1070.64,2093.12 1074.12,2093.95"/>
+ </edge>
+ <edge id=":427996792_8" function="internal">
+ <lane id=":427996792_8_0" index="0" speed="25.00" length="2.88" shape="1068.98,2096.22 1071.32,2094.53"/>
+ </edge>
+ <edge id=":427996792_9" function="internal">
+ <lane id=":427996792_9_0" index="0" speed="27.78" length="2.35" shape="1068.98,2096.22 1068.95,2094.77 1069.37,2093.98"/>
+ </edge>
+ <edge id=":427996792_31" function="internal">
+ <lane id=":427996792_31_0" index="0" speed="27.78" length="2.35" shape="1069.37,2093.98 1070.26,2093.85 1071.61,2094.38"/>
+ </edge>
+ <edge id=":427996792_10" function="internal">
+ <lane id=":427996792_10_0" index="0" speed="27.78" length="3.26" shape="1072.13,2096.79 1072.66,2096.81 1072.74,2096.41 1072.40,2095.60 1071.61,2094.38"/>
+ </edge>
+ <edge id=":427996792_11" function="internal">
+ <lane id=":427996792_11_0" index="0" speed="25.00" length="2.40" shape="1072.13,2096.79 1071.32,2094.53"/>
+ </edge>
+ <edge id=":427996792_12" function="internal">
+ <lane id=":427996792_12_0" index="0" speed="27.78" length="5.96" shape="1072.13,2096.79 1070.34,2096.14 1068.93,2095.40 1067.90,2094.56 1067.26,2093.63"/>
+ </edge>
+ <edge id=":427996792_13" function="internal">
+ <lane id=":427996792_13_0" index="0" speed="25.00" length="4.76" shape="1072.13,2096.79 1069.73,2095.60 1069.28,2094.07 1069.58,2093.69"/>
+ </edge>
+ <edge id=":427996792_32" function="internal">
+ <lane id=":427996792_32_0" index="0" speed="25.00" length="5.98" shape="1069.58,2093.69 1070.78,2092.21 1074.22,2090.02"/>
+ </edge>
+ <edge id=":427996792_14" function="internal">
+ <lane id=":427996792_14_0" index="0" speed="27.78" length="2.53" shape="1072.13,2096.79 1071.56,2095.33 1071.71,2094.38"/>
+ </edge>
+ <edge id=":427996792_33" function="internal">
+ <lane id=":427996792_33_0" index="0" speed="27.78" length="2.53" shape="1071.71,2094.38 1072.56,2093.92 1074.12,2093.95"/>
+ </edge>
+ <edge id=":427996792_15" function="internal">
+ <lane id=":427996792_15_0" index="0" speed="25.00" length="4.55" shape="1070.25,2092.24 1070.48,2092.07 1071.22,2091.64 1072.47,2090.96 1074.22,2090.02"/>
+ </edge>
+ <edge id=":427996792_16" function="internal">
+ <lane id=":427996792_16_0" index="0" speed="27.78" length="4.27" shape="1070.25,2092.24 1070.60,2092.57 1071.36,2092.97 1072.53,2093.43 1074.12,2093.95"/>
+ </edge>
+ <edge id=":427996792_17" function="internal">
+ <lane id=":427996792_17_0" index="0" speed="27.78" length="2.54" shape="1070.25,2092.24 1071.61,2094.38"/>
+ </edge>
+ <edge id=":427996792_18" function="internal">
+ <lane id=":427996792_18_0" index="0" speed="25.00" length="2.53" shape="1070.25,2092.24 1071.32,2094.53"/>
+ </edge>
+ <edge id=":427996792_19" function="internal">
+ <lane id=":427996792_19_0" index="0" speed="27.78" length="2.41" shape="1070.25,2092.24 1070.02,2093.71 1069.45,2094.43"/>
+ </edge>
+ <edge id=":427996792_34" function="internal">
+ <lane id=":427996792_34_0" index="0" speed="27.78" length="2.41" shape="1069.45,2094.43 1068.53,2094.41 1067.26,2093.63"/>
+ </edge>
+ <edge id=":427996792_20" function="internal">
+ <lane id=":427996792_20_0" index="0" speed="25.00" length="3.52" shape="1064.60,2095.89 1065.81,2095.01 1066.65,2094.33 1067.14,2093.88 1067.26,2093.63"/>
+ </edge>
+ <edge id=":427996792_21" function="internal">
+ <lane id=":427996792_21_0" index="0" speed="22.22" length="11.29" shape="1064.60,2095.89 1067.20,2094.08 1069.28,2092.75 1071.43,2091.52 1074.22,2090.02"/>
+ </edge>
+ <edge id=":427996792_22" function="internal">
+ <lane id=":427996792_22_0" index="0" speed="25.00" length="3.38" shape="1064.60,2095.89 1066.98,2094.50 1067.57,2094.30"/>
+ </edge>
+ <edge id=":427996792_35" function="internal">
+ <lane id=":427996792_35_0" index="0" speed="25.00" length="6.69" shape="1067.57,2094.30 1069.37,2093.71 1071.74,2093.53 1074.12,2093.95"/>
+ </edge>
+ <edge id=":427996792_23" function="internal">
+ <lane id=":427996792_23_0" index="0" speed="25.00" length="3.39" shape="1064.60,2095.89 1067.06,2094.36 1067.51,2094.18"/>
+ </edge>
+ <edge id=":427996792_36" function="internal">
+ <lane id=":427996792_36_0" index="0" speed="25.00" length="4.47" shape="1067.51,2094.18 1069.05,2093.60 1070.57,2093.60 1071.61,2094.38"/>
+ </edge>
+ <edge id=":427996792_24" function="internal">
+ <lane id=":427996792_24_0" index="0" speed="22.22" length="3.39" shape="1064.60,2095.89 1067.09,2094.33 1067.51,2094.17"/>
+ </edge>
+ <edge id=":427996792_37" function="internal">
+ <lane id=":427996792_37_0" index="0" speed="22.22" length="4.29" shape="1067.51,2094.17 1069.04,2093.59 1070.45,2093.66 1071.32,2094.53"/>
+ </edge>
+ <edge id=":428097664_0" function="internal">
+ <lane id=":428097664_0_0" index="0" speed="22.22" length="6.16" shape="1355.22,1978.02 1349.76,1980.88"/>
+ </edge>
+ <edge id=":428097664_1" function="internal">
+ <lane id=":428097664_1_0" index="0" speed="22.22" length="3.09" shape="1352.49,1979.41 1352.32,1979.50 1351.81,1979.78 1350.96,1980.24 1349.76,1980.88"/>
+ </edge>
+ <edge id=":428303370_0" function="internal">
+ <lane id=":428303370_0_0" index="0" speed="22.22" length="19.07" shape="740.24,2247.28 739.82,2242.92 739.27,2237.80 738.68,2232.68 738.11,2228.33"/>
+ </edge>
+ <edge id=":428303370_1" function="internal">
+ <lane id=":428303370_1_0" index="0" speed="22.22" length="7.76" shape="740.24,2247.28 740.32,2243.20 741.50,2241.52 743.04,2242.01"/>
+ </edge>
+ <edge id=":428303370_9" function="internal">
+ <lane id=":428303370_9_0" index="0" speed="22.22" length="5.40" shape="743.04,2242.01 743.78,2242.24 747.18,2245.37"/>
+ </edge>
+ <edge id=":428303370_2" function="internal">
+ <lane id=":428303370_2_0" index="0" speed="22.22" length="2.41" shape="740.24,2247.28 740.95,2245.97 741.74,2245.49"/>
+ </edge>
+ <edge id=":428303370_10" function="internal">
+ <lane id=":428303370_10_0" index="0" speed="22.22" length="2.41" shape="741.74,2245.49 742.60,2245.82 743.53,2246.98"/>
+ </edge>
+ <edge id=":428303370_3" function="internal">
+ <lane id=":428303370_3_0" index="0" speed="22.22" length="17.65" shape="741.38,2227.87 742.14,2231.44 743.57,2234.96 745.96,2238.75 749.62,2243.15"/>
+ </edge>
+ <edge id=":428303370_4" function="internal">
+ <lane id=":428303370_4_0" index="0" speed="22.22" length="19.23" shape="741.38,2227.87 741.95,2232.24 742.55,2237.41 743.10,2242.59 743.53,2246.98"/>
+ </edge>
+ <edge id=":428303370_5" function="internal">
+ <lane id=":428303370_5_0" index="0" speed="22.22" length="2.41" shape="741.38,2227.87 740.74,2229.21 739.98,2229.74"/>
+ </edge>
+ <edge id=":428303370_11" function="internal">
+ <lane id=":428303370_11_0" index="0" speed="22.22" length="2.41" shape="739.98,2229.74 739.10,2229.44 738.11,2228.33"/>
+ </edge>
+ <edge id=":428303370_6" function="internal">
+ <lane id=":428303370_6_0" index="0" speed="22.22" length="6.13" shape="734.65,2230.73 736.42,2231.42 737.58,2231.26 738.14,2230.23 738.11,2228.33"/>
+ </edge>
+ <edge id=":428303370_7" function="internal">
+ <lane id=":428303370_7_0" index="0" speed="22.22" length="18.52" shape="733.07,2233.62 737.80,2236.36 740.83,2238.61 743.50,2241.29 747.18,2245.37"/>
+ </edge>
+ <edge id=":428303370_8" function="internal">
+ <lane id=":428303370_8_0" index="0" speed="22.22" length="17.66" shape="733.07,2233.62 737.37,2236.45 740.55,2239.62 742.60,2243.13 743.53,2246.98"/>
+ </edge>
+ <edge id=":429179805_0" function="internal">
+ <lane id=":429179805_0_0" index="0" speed="22.22" length="7.64" shape="758.37,1506.10 757.00,1503.94 755.90,1503.33 755.06,1504.27 754.48,1506.76"/>
+ </edge>
+ <edge id=":429179805_1" function="internal">
+ <lane id=":429179805_1_0" index="0" speed="22.22" length="9.60" shape="758.37,1506.10 753.80,1497.66"/>
+ </edge>
+ <edge id=":429179805_2" function="internal">
+ <lane id=":429179805_2_0" index="0" speed="22.22" length="2.41" shape="758.37,1506.10 758.54,1504.62 759.09,1503.88"/>
+ </edge>
+ <edge id=":429179805_6" function="internal">
+ <lane id=":429179805_6_0" index="0" speed="22.22" length="2.41" shape="759.09,1503.88 760.01,1503.87 761.31,1504.59"/>
+ </edge>
+ <edge id=":429179805_3" function="internal">
+ <lane id=":429179805_3_0" index="0" speed="22.22" length="10.49" shape="756.27,1495.47 758.14,1497.84 759.18,1499.76 760.03,1501.82 761.31,1504.59"/>
+ </edge>
+ <edge id=":429179805_4" function="internal">
+ <lane id=":429179805_4_0" index="0" speed="22.22" length="5.15" shape="756.27,1495.47 756.08,1496.08 755.71,1498.17 755.36,1500.53"/>
+ </edge>
+ <edge id=":429179805_7" function="internal">
+ <lane id=":429179805_7_0" index="0" speed="22.22" length="6.29" shape="755.36,1500.53 755.18,1501.73 754.48,1506.76"/>
+ </edge>
+ <edge id=":429179805_5" function="internal">
+ <lane id=":429179805_5_0" index="0" speed="22.22" length="2.41" shape="756.27,1495.47 756.48,1496.94 756.13,1497.79"/>
+ </edge>
+ <edge id=":429179805_8" function="internal">
+ <lane id=":429179805_8_0" index="0" speed="22.22" length="2.41" shape="756.13,1497.79 755.24,1498.03 753.80,1497.66"/>
+ </edge>
+ <edge id=":432548414_0" function="internal">
+ <lane id=":432548414_0_0" index="0" speed="13.89" length="4.82" shape="1482.63,768.89 1484.12,768.95 1484.90,769.44 1484.97,770.36 1484.34,771.71"/>
+ </edge>
+ <edge id=":435668511_0" function="internal">
+ <lane id=":435668511_0_0" index="0" speed="22.22" length="8.69" shape="742.93,2275.91 742.07,2267.26"/>
+ </edge>
+ <edge id=":435668511_1" function="internal">
+ <lane id=":435668511_1_0" index="0" speed="22.22" length="2.15" shape="742.93,2275.91 743.02,2275.78 743.28,2275.47 743.74,2274.98 744.37,2274.32"/>
+ </edge>
+ <edge id=":435668511_2" function="internal">
+ <lane id=":435668511_2_0" index="0" speed="25.00" length="4.96" shape="742.93,2275.91 746.67,2279.16"/>
+ </edge>
+ <edge id=":435668511_3" function="internal">
+ <lane id=":435668511_3_0" index="0" speed="22.22" length="5.22" shape="742.93,2275.91 743.02,2274.31 743.56,2273.47 744.56,2273.40 746.01,2274.10"/>
+ </edge>
+ <edge id=":435668511_4" function="internal">
+ <lane id=":435668511_4_0" index="0" speed="22.22" length="4.02" shape="745.69,2270.65 745.68,2271.67 745.46,2272.62 745.02,2273.51 744.37,2274.32"/>
+ </edge>
+ <edge id=":435668511_5" function="internal">
+ <lane id=":435668511_5_0" index="0" speed="25.00" length="2.92" shape="745.69,2270.65 745.78,2270.06 746.17,2269.61 746.85,2269.33 747.83,2269.19"/>
+ </edge>
+ <edge id=":435668511_6" function="internal">
+ <lane id=":435668511_6_0" index="0" speed="22.22" length="3.46" shape="745.69,2270.65 746.01,2274.10"/>
+ </edge>
+ <edge id=":435668511_7" function="internal">
+ <lane id=":435668511_7_0" index="0" speed="22.22" length="7.25" shape="745.69,2270.65 743.52,2271.16 742.19,2270.77 741.71,2269.47 742.07,2267.26"/>
+ </edge>
+ <edge id=":435668511_8" function="internal">
+ <lane id=":435668511_8_0" index="0" speed="25.00" length="4.55" shape="740.04,2271.02 741.02,2270.33 741.68,2269.48 742.03,2268.45 742.07,2267.26"/>
+ </edge>
+ <edge id=":435668511_9" function="internal">
+ <lane id=":435668511_9_0" index="0" speed="25.00" length="2.80" shape="741.60,2273.93 744.37,2274.32"/>
+ </edge>
+ <edge id=":435668511_10" function="internal">
+ <lane id=":435668511_10_0" index="0" speed="27.78" length="5.00" shape="743.15,2276.84 745.79,2272.60"/>
+ </edge>
+ <edge id=":435668511_11" function="internal">
+ <lane id=":435668511_11_0" index="0" speed="27.78" length="4.93" shape="744.71,2279.75 747.67,2275.81"/>
+ </edge>
+ <edge id=":435668511_12" function="internal">
+ <lane id=":435668511_12_0" index="0" speed="27.78" length="2.05" shape="744.71,2279.75 746.67,2279.16"/>
+ </edge>
+ <edge id=":435668511_13" function="internal">
+ <lane id=":435668511_13_0" index="0" speed="25.00" length="5.80" shape="744.71,2279.75 746.01,2274.10"/>
+ </edge>
+ <edge id=":435668513_0" function="internal">
+ <lane id=":435668513_0_0" index="0" speed="18.06" length="5.01" shape="1407.93,1910.74 1408.72,1911.86 1409.68,1912.45 1410.81,1912.52 1412.11,1912.06"/>
+ </edge>
+ <edge id=":435668513_1" function="internal">
+ <lane id=":435668513_1_0" index="0" speed="18.06" length="5.01" shape="1407.93,1910.74 1410.23,1915.19"/>
+ </edge>
+ <edge id=":435668513_2" function="internal">
+ <lane id=":435668513_2_0" index="0" speed="22.22" length="6.22" shape="1406.61,1914.97 1412.11,1912.06"/>
+ </edge>
+ <edge id=":435668513_3" function="internal">
+ <lane id=":435668513_3_0" index="0" speed="22.22" length="4.08" shape="1406.61,1914.97 1407.86,1914.43 1408.89,1914.29 1409.68,1914.54 1410.23,1915.19"/>
+ </edge>
+ <edge id=":435668516_0" function="internal">
+ <lane id=":435668516_0_0" index="0" speed="22.22" length="7.06" shape="1335.08,1947.79 1336.38,1949.85 1337.70,1951.08 1339.04,1951.48 1340.40,1951.05"/>
+ </edge>
+ <edge id=":435668516_1" function="internal">
+ <lane id=":435668516_1_0" index="0" speed="22.22" length="6.21" shape="1335.08,1947.79 1337.99,1953.28"/>
+ </edge>
+ <edge id=":435668516_2" function="internal">
+ <lane id=":435668516_2_0" index="0" speed="22.22" length="8.24" shape="1332.41,1950.87 1334.88,1951.58 1337.03,1951.85 1338.87,1951.67 1340.40,1951.05"/>
+ </edge>
+ <edge id=":435668516_3" function="internal">
+ <lane id=":435668516_3_0" index="0" speed="22.22" length="6.08" shape="1332.41,1950.87 1337.99,1953.28"/>
+ </edge>
+ <edge id=":435668521_0" function="internal">
+ <lane id=":435668521_0_0" index="0" speed="18.06" length="5.02" shape="1479.04,1876.99 1480.15,1876.19 1480.74,1875.22 1480.80,1874.09 1480.34,1872.78"/>
+ </edge>
+ <edge id=":435668521_1" function="internal">
+ <lane id=":435668521_1_0" index="0" speed="22.22" length="6.22" shape="1479.04,1876.99 1484.53,1874.08"/>
+ </edge>
+ <edge id=":435668534_0" function="internal">
+ <lane id=":435668534_0_0" index="0" speed="25.00" length="3.33" shape="1298.74,1993.74 1298.42,1993.55 1297.80,1993.62 1296.88,1993.95 1295.67,1994.55"/>
+ </edge>
+ <edge id=":435668534_1" function="internal">
+ <lane id=":435668534_1_0" index="0" speed="22.22" length="2.38" shape="1298.74,1993.74 1297.62,1991.64"/>
+ </edge>
+ <edge id=":435668534_2" function="internal">
+ <lane id=":435668534_2_0" index="0" speed="25.00" length="5.90" shape="1298.74,1993.74 1298.09,1992.09 1298.03,1990.68 1298.57,1989.53 1299.70,1988.62"/>
+ </edge>
+ <edge id=":435668534_3" function="internal">
+ <lane id=":435668534_3_0" index="0" speed="27.78" length="6.38" shape="1301.28,1991.52 1295.67,1994.55"/>
+ </edge>
+ <edge id=":435668534_4" function="internal">
+ <lane id=":435668534_4_0" index="0" speed="25.00" length="4.09" shape="1301.28,1991.52 1299.95,1992.13 1298.89,1992.36 1298.11,1992.19 1297.62,1991.64"/>
+ </edge>
+ <edge id=":435668534_5" function="internal">
+ <lane id=":435668534_5_0" index="0" speed="27.78" length="2.41" shape="1301.28,1991.52 1299.80,1991.39 1299.04,1990.86"/>
+ </edge>
+ <edge id=":435668534_9" function="internal">
+ <lane id=":435668534_9_0" index="0" speed="27.78" length="2.41" shape="1299.04,1990.86 1299.01,1989.94 1299.70,1988.62"/>
+ </edge>
+ <edge id=":435668534_6" function="internal">
+ <lane id=":435668534_6_0" index="0" speed="25.00" length="3.91" shape="1294.12,1991.64 1295.38,1991.08 1296.39,1990.90 1297.13,1991.08 1297.62,1991.64"/>
+ </edge>
+ <edge id=":435668534_7" function="internal">
+ <lane id=":435668534_7_0" index="0" speed="27.78" length="6.35" shape="1294.12,1991.64 1299.70,1988.62"/>
+ </edge>
+ <edge id=":435668534_8" function="internal">
+ <lane id=":435668534_8_0" index="0" speed="27.78" length="2.41" shape="1294.12,1991.64 1295.60,1991.78 1296.35,1992.32"/>
+ </edge>
+ <edge id=":435668534_10" function="internal">
+ <lane id=":435668534_10_0" index="0" speed="27.78" length="2.41" shape="1296.35,1992.32 1296.37,1993.24 1295.67,1994.55"/>
+ </edge>
+ <edge id=":435668539_0" function="internal">
+ <lane id=":435668539_0_0" index="0" speed="25.00" length="5.43" shape="767.16,2273.98 765.12,2274.94 763.64,2275.37 762.73,2275.26 762.39,2274.63"/>
+ </edge>
+ <edge id=":435668539_1" function="internal">
+ <lane id=":435668539_1_0" index="0" speed="27.78" length="12.93" shape="767.16,2273.98 764.74,2275.94 763.35,2278.29 761.90,2281.00 759.28,2284.04"/>
+ </edge>
+ <edge id=":435668539_2" function="internal">
+ <lane id=":435668539_2_0" index="0" speed="27.78" length="2.41" shape="767.16,2273.98 765.68,2273.83 764.94,2273.29"/>
+ </edge>
+ <edge id=":435668539_11" function="internal">
+ <lane id=":435668539_11_0" index="0" speed="27.78" length="2.41" shape="764.94,2273.29 764.92,2272.37 765.63,2271.06"/>
+ </edge>
+ <edge id=":435668539_3" function="internal">
+ <lane id=":435668539_3_0" index="0" speed="25.00" length="5.54" shape="761.81,2269.02 762.20,2270.59 762.96,2271.45 764.11,2271.61 765.63,2271.06"/>
+ </edge>
+ <edge id=":435668539_4" function="internal">
+ <lane id=":435668539_4_0" index="0" speed="22.22" length="5.65" shape="761.81,2269.02 762.39,2274.63"/>
+ </edge>
+ <edge id=":435668539_5" function="internal">
+ <lane id=":435668539_5_0" index="0" speed="25.00" length="13.95" shape="761.81,2269.02 761.81,2272.67 761.02,2275.98 759.45,2278.95 757.08,2281.58"/>
+ </edge>
+ <edge id=":435668539_6" function="internal">
+ <lane id=":435668539_6_0" index="0" speed="25.00" length="12.56" shape="761.81,2269.02 761.52,2270.99 760.26,2273.34 758.05,2276.04 754.89,2279.12"/>
+ </edge>
+ <edge id=":435668539_7" function="internal">
+ <lane id=":435668539_7_0" index="0" speed="27.78" length="4.69" shape="761.17,2269.60 765.63,2271.06"/>
+ </edge>
+ <edge id=":435668539_8" function="internal">
+ <lane id=":435668539_8_0" index="0" speed="25.00" length="2.47" shape="760.98,2272.90 761.55,2273.03 761.98,2273.37 762.25,2273.90 762.39,2274.63"/>
+ </edge>
+ <edge id=":435668539_9" function="internal">
+ <lane id=":435668539_9_0" index="0" speed="27.78" length="6.74" shape="760.79,2276.19 759.50,2276.32 758.08,2276.85 756.54,2277.78 754.89,2279.12"/>
+ </edge>
+ <edge id=":435668539_10" function="internal">
+ <lane id=":435668539_10_0" index="0" speed="27.78" length="5.50" shape="757.72,2279.32 755.14,2274.46"/>
+ </edge>
+ <edge id=":438042367_0" function="internal">
+ <lane id=":438042367_0_0" index="0" speed="27.78" length="4.66" shape="912.26,1208.61 911.95,1208.66 911.16,1209.02 909.88,1209.70 908.11,1210.69"/>
+ </edge>
+ <edge id=":438042367_1" function="internal">
+ <lane id=":438042367_1_0" index="0" speed="27.78" length="13.50" shape="912.26,1208.61 910.39,1205.08 909.45,1202.49 908.52,1199.89 906.64,1196.37"/>
+ </edge>
+ <edge id=":438042367_2" function="internal">
+ <lane id=":438042367_2_0" index="0" speed="27.78" length="13.50" shape="915.07,1206.88 913.20,1203.35 912.26,1200.75 911.32,1198.16 909.45,1194.63"/>
+ </edge>
+ <edge id=":438042367_3" function="internal">
+ <lane id=":438042367_3_0" index="0" speed="27.78" length="0.92" shape="915.07,1206.88 914.66,1206.05"/>
+ </edge>
+ <edge id=":438042367_11" function="internal">
+ <lane id=":438042367_11_0" index="0" speed="27.78" length="8.19" shape="914.66,1206.05 913.77,1204.23 913.41,1202.01 913.99,1200.22 915.51,1198.87"/>
+ </edge>
+ <edge id=":438042367_4" function="internal">
+ <lane id=":438042367_4_0" index="0" speed="27.78" length="12.86" shape="918.78,1204.61 915.30,1205.99 912.63,1206.22 909.95,1206.44 906.47,1207.83"/>
+ </edge>
+ <edge id=":438042367_5" function="internal">
+ <lane id=":438042367_5_0" index="0" speed="27.78" length="7.27" shape="917.14,1201.74 915.75,1201.82 914.00,1200.66 911.90,1198.27 911.57,1197.78"/>
+ </edge>
+ <edge id=":438042367_12" function="internal">
+ <lane id=":438042367_12_0" index="0" speed="27.78" length="3.79" shape="911.57,1197.78 909.45,1194.63"/>
+ </edge>
+ <edge id=":438042367_6" function="internal">
+ <lane id=":438042367_6_0" index="0" speed="27.78" length="2.41" shape="917.14,1201.74 915.66,1201.64 914.89,1201.12"/>
+ </edge>
+ <edge id=":438042367_13" function="internal">
+ <lane id=":438042367_13_0" index="0" speed="27.78" length="2.41" shape="914.89,1201.12 914.84,1200.20 915.51,1198.87"/>
+ </edge>
+ <edge id=":438042367_7" function="internal">
+ <lane id=":438042367_7_0" index="0" speed="27.78" length="4.63" shape="903.20,1202.09 904.10,1201.35 904.51,1200.44 904.42,1199.36 903.83,1198.10"/>
+ </edge>
+ <edge id=":438042367_8" function="internal">
+ <lane id=":438042367_8_0" index="0" speed="27.78" length="10.09" shape="904.84,1204.96 906.92,1203.30 907.92,1201.31 907.82,1199.00 906.64,1196.37"/>
+ </edge>
+ <edge id=":438042367_9" function="internal">
+ <lane id=":438042367_9_0" index="0" speed="27.78" length="12.86" shape="904.84,1204.96 907.80,1202.67 909.36,1200.48 910.91,1198.29 913.87,1196.01"/>
+ </edge>
+ <edge id=":438042367_10" function="internal">
+ <lane id=":438042367_10_0" index="0" speed="27.78" length="2.41" shape="904.84,1204.96 906.32,1205.06 907.09,1205.58"/>
+ </edge>
+ <edge id=":438042367_14" function="internal">
+ <lane id=":438042367_14_0" index="0" speed="27.78" length="2.41" shape="907.09,1205.58 907.14,1206.50 906.47,1207.83"/>
+ </edge>
+ <edge id=":438042369_0" function="internal">
+ <lane id=":438042369_0_0" index="0" speed="27.78" length="8.33" shape="931.33,1197.45 929.02,1198.42 927.08,1198.49 925.52,1197.65 924.32,1195.91"/>
+ </edge>
+ <edge id=":438042369_1" function="internal">
+ <lane id=":438042369_1_0" index="0" speed="27.78" length="9.17" shape="929.70,1194.59 926.32,1196.38 923.79,1197.43 922.13,1197.74 921.32,1197.29"/>
+ </edge>
+ <edge id=":438042369_2" function="internal">
+ <lane id=":438042369_2_0" index="0" speed="27.78" length="13.38" shape="929.70,1194.59 926.59,1196.95 924.94,1199.19 923.29,1201.44 920.18,1203.80"/>
+ </edge>
+ <edge id=":438042369_3" function="internal">
+ <lane id=":438042369_3_0" index="0" speed="27.78" length="2.41" shape="929.70,1194.59 928.21,1194.48 927.44,1193.97"/>
+ </edge>
+ <edge id=":438042369_11" function="internal">
+ <lane id=":438042369_11_0" index="0" speed="27.78" length="2.41" shape="927.44,1193.97 927.40,1193.05 928.06,1191.72"/>
+ </edge>
+ <edge id=":438042369_4" function="internal">
+ <lane id=":438042369_4_0" index="0" speed="27.78" length="5.10" shape="922.25,1187.51 923.02,1188.70 923.98,1189.32 925.11,1189.37 926.43,1188.85"/>
+ </edge>
+ <edge id=":438042369_5" function="internal">
+ <lane id=":438042369_5_0" index="0" speed="27.78" length="8.65" shape="922.25,1187.51 924.32,1195.91"/>
+ </edge>
+ <edge id=":438042369_6" function="internal">
+ <lane id=":438042369_6_0" index="0" speed="27.78" length="8.65" shape="919.26,1188.90 921.32,1197.29"/>
+ </edge>
+ <edge id=":438042369_7" function="internal">
+ <lane id=":438042369_7_0" index="0" speed="27.78" length="4.19" shape="916.26,1190.28 917.90,1194.14"/>
+ </edge>
+ <edge id=":438042369_12" function="internal">
+ <lane id=":438042369_12_0" index="0" speed="27.78" length="7.15" shape="917.90,1194.14 918.05,1194.50 919.02,1197.68 919.19,1199.82 918.55,1200.94"/>
+ </edge>
+ <edge id=":438042369_8" function="internal">
+ <lane id=":438042369_8_0" index="0" speed="27.78" length="13.38" shape="915.28,1195.20 918.89,1193.74 921.67,1193.46 924.45,1193.18 928.06,1191.72"/>
+ </edge>
+ <edge id=":438042369_9" function="internal">
+ <lane id=":438042369_9_0" index="0" speed="27.78" length="4.86" shape="916.91,1198.07 918.60,1197.22 919.90,1196.80 920.81,1196.83 921.32,1197.29"/>
+ </edge>
+ <edge id=":438042369_10" function="internal">
+ <lane id=":438042369_10_0" index="0" speed="27.78" length="2.41" shape="916.91,1198.07 918.40,1198.17 919.16,1198.69"/>
+ </edge>
+ <edge id=":438042369_13" function="internal">
+ <lane id=":438042369_13_0" index="0" speed="27.78" length="2.41" shape="919.16,1198.69 919.22,1199.61 918.55,1200.94"/>
+ </edge>
+ <edge id=":438042372_0" function="internal">
+ <lane id=":438042372_0_0" index="0" speed="18.06" length="6.04" shape="1289.95,1675.29 1288.91,1676.66 1288.38,1678.04 1288.35,1679.42 1288.81,1680.80"/>
+ </edge>
+ <edge id=":438042372_1" function="internal">
+ <lane id=":438042372_1_0" index="0" speed="22.22" length="6.79" shape="1289.95,1675.29 1284.63,1679.49"/>
+ </edge>
+ <edge id=":438042372_2" function="internal">
+ <lane id=":438042372_2_0" index="0" speed="13.89" length="6.88" shape="1285.65,1674.69 1288.81,1680.80"/>
+ </edge>
+ <edge id=":438042372_3" function="internal">
+ <lane id=":438042372_3_0" index="0" speed="18.06" length="5.57" shape="1285.65,1674.69 1286.23,1676.25 1286.26,1677.56 1285.72,1678.65 1284.63,1679.49"/>
+ </edge>
+ <edge id=":438042373_0" function="internal">
+ <lane id=":438042373_0_0" index="0" speed="22.22" length="4.71" shape="1245.44,1700.30 1241.94,1703.46"/>
+ </edge>
+ <edge id=":438042373_1" function="internal">
+ <lane id=":438042373_1_0" index="0" speed="22.22" length="4.68" shape="1241.31,1698.82 1241.94,1703.46"/>
+ </edge>
+ <edge id=":438042374_0" function="internal">
+ <lane id=":438042374_0_0" index="0" speed="22.22" length="7.38" shape="1232.54,1728.41 1231.48,1735.71"/>
+ </edge>
+ <edge id=":438042374_1" function="internal">
+ <lane id=":438042374_1_0" index="0" speed="22.22" length="7.29" shape="1232.54,1728.41 1227.80,1733.94"/>
+ </edge>
+ <edge id=":438042376_0" function="internal">
+ <lane id=":438042376_0_0" index="0" speed="18.06" length="6.28" shape="1278.91,1661.69 1279.78,1662.88 1280.96,1663.69 1282.46,1664.12 1284.28,1664.19"/>
+ </edge>
+ <edge id=":438042376_1" function="internal">
+ <lane id=":438042376_1_0" index="0" speed="13.89" length="7.04" shape="1278.91,1661.69 1282.15,1667.95"/>
+ </edge>
+ <edge id=":438042376_2" function="internal">
+ <lane id=":438042376_2_0" index="0" speed="22.22" length="6.91" shape="1277.58,1665.88 1284.28,1664.19"/>
+ </edge>
+ <edge id=":438042376_3" function="internal">
+ <lane id=":438042376_3_0" index="0" speed="18.06" length="5.70" shape="1277.58,1665.88 1278.90,1665.47 1280.10,1665.68 1281.18,1666.50 1282.15,1667.95"/>
+ </edge>
+ <edge id=":438042377_0" function="internal">
+ <lane id=":438042377_0_0" index="0" speed="22.22" length="4.76" shape="1233.12,1688.03 1237.70,1686.74"/>
+ </edge>
+ <edge id=":438042377_1" function="internal">
+ <lane id=":438042377_1_0" index="0" speed="22.22" length="4.73" shape="1233.12,1688.03 1236.79,1691.02"/>
+ </edge>
+ <edge id=":438042378_0" function="internal">
+ <lane id=":438042378_0_0" index="0" speed="22.22" length="6.46" shape="1198.48,1677.87 1203.48,1681.95"/>
+ </edge>
+ <edge id=":438042378_1" function="internal">
+ <lane id=":438042378_1_0" index="0" speed="22.22" length="6.75" shape="1196.73,1681.69 1203.48,1681.95"/>
+ </edge>
+ <edge id=":438042379_0" function="internal">
+ <lane id=":438042379_0_0" index="0" speed="13.89" length="4.92" shape="1127.25,1657.08 1122.83,1659.23"/>
+ </edge>
+ <edge id=":438042379_1" function="internal">
+ <lane id=":438042379_1_0" index="0" speed="22.22" length="6.59" shape="1127.25,1657.08 1122.96,1652.07"/>
+ </edge>
+ <edge id=":438042379_2" function="internal">
+ <lane id=":438042379_2_0" index="0" speed="13.89" length="5.09" shape="1121.51,1656.21 1122.71,1655.47 1123.35,1654.53 1123.43,1653.40 1122.96,1652.07"/>
+ </edge>
+ <edge id=":438042379_3" function="internal">
+ <lane id=":438042379_3_0" index="0" speed="5.56" length="2.41" shape="1121.51,1656.21 1122.97,1656.47 1123.68,1657.06"/>
+ </edge>
+ <edge id=":438042379_4" function="internal">
+ <lane id=":438042379_4_0" index="0" speed="5.56" length="2.41" shape="1123.68,1657.06 1123.64,1657.98 1122.83,1659.23"/>
+ </edge>
+ <edge id=":438042380_0" function="internal">
+ <lane id=":438042380_0_0" index="0" speed="25.00" length="5.46" shape="1206.28,1786.24 1207.55,1780.93"/>
+ </edge>
+ <edge id=":438042380_1" function="internal">
+ <lane id=":438042380_1_0" index="0" speed="27.78" length="5.15" shape="1210.38,1785.23 1207.55,1780.93"/>
+ </edge>
+ <edge id=":438042380_2" function="internal">
+ <lane id=":438042380_2_0" index="0" speed="27.78" length="4.94" shape="1213.30,1783.69 1210.56,1779.58"/>
+ </edge>
+ <edge id=":438042381_0" function="internal">
+ <lane id=":438042381_0_0" index="0" speed="25.00" length="8.04" shape="1166.34,1700.30 1163.66,1692.72"/>
+ </edge>
+ <edge id=":438042381_1" function="internal">
+ <lane id=":438042381_1_0" index="0" speed="25.00" length="9.14" shape="1166.34,1700.30 1166.57,1691.16"/>
+ </edge>
+ <edge id=":438042381_2" function="internal">
+ <lane id=":438042381_2_0" index="0" speed="22.22" length="9.82" shape="1166.34,1700.30 1170.87,1691.59"/>
+ </edge>
+ <edge id=":438042385_0" function="internal">
+ <lane id=":438042385_0_0" index="0" speed="25.00" length="7.92" shape="1215.51,1744.91 1214.28,1746.33 1213.66,1748.02 1213.63,1749.97 1214.21,1752.19"/>
+ </edge>
+ <edge id=":438042385_1" function="internal">
+ <lane id=":438042385_1_0" index="0" speed="22.22" length="11.33" shape="1215.51,1744.91 1213.14,1747.03 1211.31,1748.74 1209.40,1750.32 1206.77,1752.09"/>
+ </edge>
+ <edge id=":438042385_2" function="internal">
+ <lane id=":438042385_2_0" index="0" speed="27.78" length="8.98" shape="1211.38,1743.67 1214.21,1752.19"/>
+ </edge>
+ <edge id=":438042385_3" function="internal">
+ <lane id=":438042385_3_0" index="0" speed="27.78" length="9.22" shape="1208.21,1744.60 1211.12,1753.35"/>
+ </edge>
+ <edge id=":438042385_4" function="internal">
+ <lane id=":438042385_4_0" index="0" speed="25.00" length="8.21" shape="1208.21,1744.60 1208.74,1747.17 1208.68,1749.28 1208.02,1750.92 1206.77,1752.09"/>
+ </edge>
+ <edge id=":438042386_0" function="internal">
+ <lane id=":438042386_0_0" index="0" speed="25.00" length="5.89" shape="1176.05,1683.98 1176.89,1685.06 1178.03,1685.57 1179.46,1685.50 1181.19,1684.86"/>
+ </edge>
+ <edge id=":438042386_1" function="internal">
+ <lane id=":438042386_1_0" index="0" speed="27.78" length="6.97" shape="1176.05,1683.98 1180.71,1689.15"/>
+ </edge>
+ <edge id=":438042386_2" function="internal">
+ <lane id=":438042386_2_0" index="0" speed="27.78" length="8.33" shape="1173.11,1685.49 1178.64,1691.72"/>
+ </edge>
+ <edge id=":438042386_3" function="internal">
+ <lane id=":438042386_3_0" index="0" speed="22.22" length="10.29" shape="1172.45,1690.24 1174.84,1688.40 1176.61,1687.22 1178.48,1686.20 1181.19,1684.86"/>
+ </edge>
+ <edge id=":438042386_4" function="internal">
+ <lane id=":438042386_4_0" index="0" speed="25.00" length="6.86" shape="1172.45,1690.24 1173.66,1689.68 1175.10,1689.73 1176.76,1690.42 1178.64,1691.72"/>
+ </edge>
+ <edge id=":438042387_0" function="internal">
+ <lane id=":438042387_0_0" index="0" speed="25.00" length="7.92" shape="1198.02,1759.55 1193.90,1752.78"/>
+ </edge>
+ <edge id=":438042387_1" function="internal">
+ <lane id=":438042387_1_0" index="0" speed="22.22" length="9.37" shape="1202.83,1754.21 1200.51,1754.68 1198.24,1754.61 1196.04,1753.97 1193.90,1752.78"/>
+ </edge>
+ <edge id=":441236049_0" function="internal">
+ <lane id=":441236049_0_0" index="0" speed="25.00" length="6.93" shape="813.48,1029.46 812.20,1027.58 811.11,1027.03 810.21,1027.81 809.48,1029.93"/>
+ </edge>
+ <edge id=":441236049_1" function="internal">
+ <lane id=":441236049_1_0" index="0" speed="25.00" length="16.56" shape="813.48,1029.46 810.45,1024.25 807.69,1020.46 805.21,1018.08 803.01,1017.11"/>
+ </edge>
+ <edge id=":441236049_2" function="internal">
+ <lane id=":441236049_2_0" index="0" speed="27.78" length="17.77" shape="813.48,1029.46 810.97,1024.82 809.27,1021.63 807.65,1018.41 805.37,1013.65"/>
+ </edge>
+ <edge id=":441236049_3" function="internal">
+ <lane id=":441236049_3_0" index="0" speed="27.78" length="17.60" shape="816.39,1027.90 813.91,1023.30 812.22,1020.15 810.61,1016.95 808.35,1012.24"/>
+ </edge>
+ <edge id=":441236049_4" function="internal">
+ <lane id=":441236049_4_0" index="0" speed="27.78" length="17.44" shape="819.30,1026.34 816.84,1021.79 815.17,1018.66 813.57,1015.50 811.34,1010.83"/>
+ </edge>
+ <edge id=":441236049_5" function="internal">
+ <lane id=":441236049_5_0" index="0" speed="22.22" length="16.79" shape="817.56,1015.92 815.09,1017.37 812.92,1020.19 811.05,1024.37 809.48,1029.93"/>
+ </edge>
+ <edge id=":441236049_6" function="internal">
+ <lane id=":441236049_6_0" index="0" speed="22.22" length="14.71" shape="817.56,1015.92 813.96,1016.78 810.35,1017.27 806.70,1017.38 803.01,1017.11"/>
+ </edge>
+ <edge id=":441236049_7" function="internal">
+ <lane id=":441236049_7_0" index="0" speed="25.00" length="8.71" shape="817.56,1015.92 815.91,1015.97 814.33,1015.14 812.80,1013.42 811.34,1010.83"/>
+ </edge>
+ <edge id=":441236049_8" function="internal">
+ <lane id=":441236049_8_0" index="0" speed="22.22" length="13.95" shape="806.30,1029.05 807.05,1024.11 806.75,1020.46 805.40,1018.13 803.01,1017.11"/>
+ </edge>
+ <edge id=":441236049_9" function="internal">
+ <lane id=":441236049_9_0" index="0" speed="25.00" length="15.83" shape="806.30,1029.05 807.08,1025.57 807.48,1022.14 807.06,1018.32 805.37,1013.65"/>
+ </edge>
+ <edge id=":441236049_10" function="internal">
+ <lane id=":441236049_10_0" index="0" speed="22.22" length="4.82" shape="806.30,1029.05 807.42,1028.08 808.33,1027.90 809.02,1028.52 809.48,1029.93"/>
+ </edge>
+ <edge id=":441236060_0" function="internal">
+ <lane id=":441236060_0_0" index="0" speed="27.78" length="9.92" shape="788.33,977.61 783.95,968.71"/>
+ </edge>
+ <edge id=":441236060_1" function="internal">
+ <lane id=":441236060_1_0" index="0" speed="27.78" length="10.06" shape="791.32,976.20 790.04,973.50 789.16,971.65 788.25,969.82 786.87,967.17"/>
+ </edge>
+ <edge id=":441236060_2" function="internal">
+ <lane id=":441236060_2_0" index="0" speed="27.78" length="10.20" shape="794.30,974.79 793.01,972.05 792.12,970.18 791.19,968.33 789.79,965.64"/>
+ </edge>
+ <edge id=":441236060_3" function="internal">
+ <lane id=":441236060_3_0" index="0" speed="25.00" length="8.79" shape="794.30,974.79 793.19,971.96 792.78,969.66 793.07,967.87 794.07,966.61"/>
+ </edge>
+ <edge id=":441236060_4" function="internal">
+ <lane id=":441236060_4_0" index="0" speed="25.00" length="9.00" shape="784.08,977.25 785.00,975.38 785.29,973.33 784.94,971.11 783.95,968.71"/>
+ </edge>
+ <edge id=":441236060_5" function="internal">
+ <lane id=":441236060_5_0" index="0" speed="22.22" length="14.66" shape="784.08,977.25 786.28,974.28 788.64,971.51 791.22,968.96 794.07,966.61"/>
+ </edge>
+ <edge id=":441266854_0" function="internal">
+ <lane id=":441266854_0_0" index="0" speed="27.78" length="0.10" shape="1801.71,1403.73 1801.71,1403.73"/>
+ </edge>
+ <edge id=":441266854_1" function="internal">
+ <lane id=":441266854_1_0" index="0" speed="27.78" length="2.41" shape="1801.71,1403.73 1800.23,1403.58 1799.49,1403.04"/>
+ </edge>
+ <edge id=":441266854_4" function="internal">
+ <lane id=":441266854_4_0" index="0" speed="27.78" length="2.41" shape="1799.49,1403.04 1799.47,1402.11 1800.18,1400.81"/>
+ </edge>
+ <edge id=":441266854_2" function="internal">
+ <lane id=":441266854_2_0" index="0" speed="27.78" length="0.10" shape="1800.18,1400.81 1800.18,1400.81"/>
+ </edge>
+ <edge id=":441266854_3" function="internal">
+ <lane id=":441266854_3_0" index="0" speed="27.78" length="2.41" shape="1800.18,1400.81 1801.66,1400.97 1802.41,1401.51"/>
+ </edge>
+ <edge id=":441266854_5" function="internal">
+ <lane id=":441266854_5_0" index="0" speed="27.78" length="2.41" shape="1802.41,1401.51 1802.43,1402.43 1801.71,1403.73"/>
+ </edge>
+ <edge id=":441266865_0" function="internal">
+ <lane id=":441266865_0_0" index="0" speed="22.22" length="4.82" shape="1603.87,1014.24 1605.36,1014.37 1606.11,1014.90 1606.15,1015.82 1605.46,1017.13"/>
+ </edge>
+ <edge id=":441266870_0" function="internal">
+ <lane id=":441266870_0_0" index="0" speed="8.33" length="8.52" shape="1372.01,1244.76 1366.34,1238.41"/>
+ </edge>
+ <edge id=":441266870_1" function="internal">
+ <lane id=":441266870_1_0" index="0" speed="8.33" length="10.99" shape="1372.01,1244.76 1370.57,1242.06 1370.42,1239.63 1371.57,1237.50 1374.01,1235.64"/>
+ </edge>
+ <edge id=":441266870_2" function="internal">
+ <lane id=":441266870_2_0" index="0" speed="8.33" length="4.82" shape="1372.01,1244.76 1371.95,1243.28 1372.37,1242.46 1373.28,1242.30 1374.67,1242.81"/>
+ </edge>
+ <edge id=":441266870_3" function="internal">
+ <lane id=":441266870_3_0" index="0" speed="8.33" length="5.16" shape="1375.61,1238.53 1374.47,1239.40 1373.93,1240.40 1374.00,1241.54 1374.67,1242.81"/>
+ </edge>
+ <edge id=":441266870_4" function="internal">
+ <lane id=":441266870_4_0" index="0" speed="8.33" length="9.91" shape="1375.61,1238.53 1372.95,1239.67 1370.52,1240.03 1368.32,1239.61 1366.34,1238.41"/>
+ </edge>
+ <edge id=":441266870_5" function="internal">
+ <lane id=":441266870_5_0" index="0" speed="8.33" length="4.82" shape="1375.61,1238.53 1374.13,1238.41 1373.37,1237.88 1373.33,1236.96 1374.01,1235.64"/>
+ </edge>
+ <edge id=":441266870_6" function="internal">
+ <lane id=":441266870_6_0" index="0" speed="8.33" length="5.89" shape="1368.49,1235.91 1369.58,1236.53 1370.86,1236.69 1372.34,1236.39 1374.01,1235.64"/>
+ </edge>
+ <edge id=":441266870_7" function="internal">
+ <lane id=":441266870_7_0" index="0" speed="8.33" length="9.27" shape="1368.49,1235.91 1374.67,1242.81"/>
+ </edge>
+ <edge id=":441266870_8" function="internal">
+ <lane id=":441266870_8_0" index="0" speed="8.33" length="4.81" shape="1368.49,1235.91 1368.89,1237.34 1368.67,1238.23 1367.82,1238.59 1366.34,1238.41"/>
+ </edge>
+ <edge id=":441266874_0" function="internal">
+ <lane id=":441266874_0_0" index="0" speed="8.33" length="6.61" shape="1460.41,1177.69 1454.43,1180.50"/>
+ </edge>
+ <edge id=":441266874_1" function="internal">
+ <lane id=":441266874_1_0" index="0" speed="8.33" length="8.95" shape="1460.41,1177.69 1458.04,1177.74 1456.04,1177.11 1454.39,1175.79 1453.10,1173.80"/>
+ </edge>
+ <edge id=":441266874_2" function="internal">
+ <lane id=":441266874_2_0" index="0" speed="8.33" length="4.82" shape="1460.41,1177.69 1459.06,1177.06 1458.53,1176.31 1458.81,1175.43 1459.91,1174.43"/>
+ </edge>
+ <edge id=":441266874_3" function="internal">
+ <lane id=":441266874_3_0" index="0" speed="8.33" length="4.69" shape="1456.09,1172.38 1456.76,1173.43 1457.62,1174.12 1458.67,1174.46 1459.91,1174.43"/>
+ </edge>
+ <edge id=":441266874_4" function="internal">
+ <lane id=":441266874_4_0" index="0" speed="8.33" length="8.97" shape="1456.09,1172.38 1456.81,1174.65 1456.78,1176.76 1455.99,1178.71 1454.43,1180.50"/>
+ </edge>
+ <edge id=":441266874_5" function="internal">
+ <lane id=":441266874_5_0" index="0" speed="8.33" length="4.82" shape="1456.09,1172.38 1455.87,1173.86 1455.30,1174.58 1454.38,1174.56 1453.10,1173.80"/>
+ </edge>
+ <edge id=":441266874_6" function="internal">
+ <lane id=":441266874_6_0" index="0" speed="8.33" length="4.68" shape="1452.24,1178.03 1453.05,1177.10 1453.47,1176.08 1453.48,1174.98 1453.10,1173.80"/>
+ </edge>
+ <edge id=":441266874_7" function="internal">
+ <lane id=":441266874_7_0" index="0" speed="8.33" length="8.47" shape="1452.24,1178.03 1459.91,1174.43"/>
+ </edge>
+ <edge id=":441266874_8" function="internal">
+ <lane id=":441266874_8_0" index="0" speed="8.33" length="4.82" shape="1452.24,1178.03 1453.71,1177.83 1454.57,1178.17 1454.81,1179.07 1454.43,1180.50"/>
+ </edge>
+ <edge id=":441266876_0" function="internal">
+ <lane id=":441266876_0_0" index="0" speed="22.22" length="5.03" shape="1142.99,965.46 1143.80,966.58 1144.77,967.16 1145.90,967.20 1147.19,966.71"/>
+ </edge>
+ <edge id=":441266876_1" function="internal">
+ <lane id=":441266876_1_0" index="0" speed="22.22" length="6.19" shape="1142.99,965.46 1145.85,970.95"/>
+ </edge>
+ <edge id=":441266879_0" function="internal">
+ <lane id=":441266879_0_0" index="0" speed="22.22" length="5.01" shape="1416.14,1476.90 1415.03,1477.71 1414.45,1478.69 1414.38,1479.82 1414.84,1481.10"/>
+ </edge>
+ <edge id=":441266879_1" function="internal">
+ <lane id=":441266879_1_0" index="0" speed="22.22" length="6.20" shape="1411.95,1475.62 1414.84,1481.10"/>
+ </edge>
+ <edge id=":441266880_0" function="internal">
+ <lane id=":441266880_0_0" index="0" speed="25.00" length="3.11" shape="1466.32,1578.81 1466.42,1578.98 1466.69,1579.50 1467.14,1580.36 1467.78,1581.56"/>
+ </edge>
+ <edge id=":441266880_1" function="internal">
+ <lane id=":441266880_1_0" index="0" speed="27.78" length="3.11" shape="1466.32,1578.81 1463.56,1580.25"/>
+ </edge>
+ <edge id=":441266880_2" function="internal">
+ <lane id=":441266880_2_0" index="0" speed="27.78" length="2.41" shape="1466.32,1578.81 1464.84,1578.66 1464.10,1578.12"/>
+ </edge>
+ <edge id=":441266880_9" function="internal">
+ <lane id=":441266880_9_0" index="0" speed="27.78" length="2.41" shape="1464.10,1578.12 1464.08,1577.19 1464.79,1575.89"/>
+ </edge>
+ <edge id=":441266880_3" function="internal">
+ <lane id=":441266880_3_0" index="0" speed="25.00" length="3.11" shape="1463.34,1573.14 1463.97,1574.35 1464.43,1575.20 1464.70,1575.72 1464.79,1575.89"/>
+ </edge>
+ <edge id=":441266880_4" function="internal">
+ <lane id=":441266880_4_0" index="0" speed="22.22" length="9.51" shape="1463.34,1573.14 1467.78,1581.56"/>
+ </edge>
+ <edge id=":441266880_5" function="internal">
+ <lane id=":441266880_5_0" index="0" speed="25.00" length="3.12" shape="1463.34,1573.14 1464.47,1575.71 1464.54,1576.02"/>
+ </edge>
+ <edge id=":441266880_10" function="internal">
+ <lane id=":441266880_10_0" index="0" speed="25.00" length="4.73" shape="1464.54,1576.02 1464.89,1577.76 1464.59,1579.27 1463.56,1580.25"/>
+ </edge>
+ <edge id=":441266880_6" function="internal">
+ <lane id=":441266880_6_0" index="0" speed="27.78" length="3.11" shape="1462.04,1577.33 1464.79,1575.89"/>
+ </edge>
+ <edge id=":441266880_7" function="internal">
+ <lane id=":441266880_7_0" index="0" speed="25.00" length="4.74" shape="1462.04,1577.33 1463.43,1577.05 1464.85,1577.67 1466.08,1578.94"/>
+ </edge>
+ <edge id=":441266880_11" function="internal">
+ <lane id=":441266880_11_0" index="0" speed="25.00" length="3.13" shape="1466.08,1578.94 1466.30,1579.17 1467.78,1581.56"/>
+ </edge>
+ <edge id=":441266880_8" function="internal">
+ <lane id=":441266880_8_0" index="0" speed="27.78" length="2.41" shape="1462.04,1577.33 1463.52,1577.49 1464.26,1578.03"/>
+ </edge>
+ <edge id=":441266880_12" function="internal">
+ <lane id=":441266880_12_0" index="0" speed="27.78" length="2.41" shape="1464.26,1578.03 1464.28,1578.95 1463.56,1580.25"/>
+ </edge>
+ <edge id=":441266884_0" function="internal">
+ <lane id=":441266884_0_0" index="0" speed="22.22" length="5.00" shape="1590.28,1814.06 1591.09,1815.17 1592.05,1815.75 1593.18,1815.82 1594.48,1815.36"/>
+ </edge>
+ <edge id=":441266884_1" function="internal">
+ <lane id=":441266884_1_0" index="0" speed="22.22" length="6.20" shape="1590.28,1814.06 1593.18,1819.54"/>
+ </edge>
+ <edge id=":441266884_2" function="internal">
+ <lane id=":441266884_2_0" index="0" speed="22.22" length="3.34" shape="1591.52,1816.91 1594.48,1815.36"/>
+ </edge>
+ <edge id=":441266884_3" function="internal">
+ <lane id=":441266884_3_0" index="0" speed="22.22" length="3.14" shape="1591.52,1816.91 1591.70,1817.03 1592.04,1817.51 1592.53,1818.35 1593.18,1819.54"/>
+ </edge>
+ <edge id=":443089060_0" function="internal">
+ <lane id=":443089060_0_0" index="0" speed="22.22" length="6.26" shape="1554.37,1840.16 1551.52,1834.58"/>
+ </edge>
+ <edge id=":443089060_1" function="internal">
+ <lane id=":443089060_1_0" index="0" speed="22.22" length="5.05" shape="1554.37,1840.16 1553.90,1838.87 1553.97,1837.73 1554.57,1836.75 1555.69,1835.93"/>
+ </edge>
+ <edge id=":443089060_2" function="internal">
+ <lane id=":443089060_2_0" index="0" speed="22.22" length="5.10" shape="1550.17,1838.89 1551.28,1838.07 1551.88,1837.08 1551.96,1835.92 1551.52,1834.58"/>
+ </edge>
+ <edge id=":443089060_3" function="internal">
+ <lane id=":443089060_3_0" index="0" speed="22.22" length="6.26" shape="1550.17,1838.89 1555.69,1835.93"/>
+ </edge>
+ <edge id=":443089061_0" function="internal">
+ <lane id=":443089061_0_0" index="0" speed="18.06" length="5.04" shape="1519.35,1769.01 1518.57,1767.86 1517.61,1767.25 1516.48,1767.19 1515.18,1767.66"/>
+ </edge>
+ <edge id=":443089061_1" function="internal">
+ <lane id=":443089061_1_0" index="0" speed="22.22" length="9.55" shape="1519.35,1769.01 1515.03,1760.49"/>
+ </edge>
+ <edge id=":443089061_2" function="internal">
+ <lane id=":443089061_2_0" index="0" speed="18.06" length="5.10" shape="1513.62,1764.75 1514.78,1763.91 1515.40,1762.93 1515.48,1761.79 1515.03,1760.49"/>
+ </edge>
+ <edge id=":443089061_3" function="internal">
+ <lane id=":443089061_3_0" index="0" speed="13.89" length="4.82" shape="1513.62,1764.75 1515.10,1764.89 1515.86,1765.43 1515.88,1766.35 1515.18,1767.66"/>
+ </edge>
+ <edge id=":443089062_0" function="internal">
+ <lane id=":443089062_0_0" index="0" speed="18.06" length="5.02" shape="1482.57,1698.68 1481.77,1697.58 1480.80,1696.99 1479.67,1696.93 1478.37,1697.39"/>
+ </edge>
+ <edge id=":443089062_1" function="internal">
+ <lane id=":443089062_1_0" index="0" speed="22.22" length="9.51" shape="1482.57,1698.68 1478.14,1690.28"/>
+ </edge>
+ <edge id=":443089062_2" function="internal">
+ <lane id=":443089062_2_0" index="0" speed="18.06" length="5.01" shape="1476.84,1694.46 1477.95,1693.66 1478.54,1692.70 1478.60,1691.57 1478.14,1690.28"/>
+ </edge>
+ <edge id=":443089062_3" function="internal">
+ <lane id=":443089062_3_0" index="0" speed="13.89" length="4.82" shape="1476.84,1694.46 1478.32,1694.62 1479.06,1695.16 1479.08,1696.08 1478.37,1697.39"/>
+ </edge>
+ <edge id=":443089063_0" function="internal">
+ <lane id=":443089063_0_0" index="0" speed="25.00" length="5.27" shape="1431.50,1604.31 1430.60,1603.21 1429.56,1602.63 1428.35,1602.59 1426.99,1603.07"/>
+ </edge>
+ <edge id=":443089063_1" function="internal">
+ <lane id=":443089063_1_0" index="0" speed="22.22" length="16.22" shape="1431.50,1604.31 1429.52,1600.90 1427.49,1597.26 1425.53,1593.58 1423.73,1590.08"/>
+ </edge>
+ <edge id=":443089063_2" function="internal">
+ <lane id=":443089063_2_0" index="0" speed="25.00" length="3.18" shape="1431.50,1604.31 1430.02,1601.49"/>
+ </edge>
+ <edge id=":443089063_11" function="internal">
+ <lane id=":443089063_11_0" index="0" speed="25.00" length="7.93" shape="1430.02,1601.49 1429.51,1600.52 1428.53,1597.58 1428.58,1595.49 1429.64,1594.24"/>
+ </edge>
+ <edge id=":443089063_3" function="internal">
+ <lane id=":443089063_3_0" index="0" speed="27.78" length="6.44" shape="1432.70,1600.09 1426.99,1603.07"/>
+ </edge>
+ <edge id=":443089063_4" function="internal">
+ <lane id=":443089063_4_0" index="0" speed="27.78" length="6.44" shape="1431.17,1597.17 1425.46,1600.15"/>
+ </edge>
+ <edge id=":443089063_5" function="internal">
+ <lane id=":443089063_5_0" index="0" speed="25.00" length="4.63" shape="1431.17,1597.17 1429.55,1597.33 1427.76,1596.20 1427.21,1595.51"/>
+ </edge>
+ <edge id=":443089063_12" function="internal">
+ <lane id=":443089063_12_0" index="0" speed="25.00" length="6.47" shape="1427.21,1595.51 1425.83,1593.78 1423.73,1590.08"/>
+ </edge>
+ <edge id=":443089063_6" function="internal">
+ <lane id=":443089063_6_0" index="0" speed="27.78" length="2.41" shape="1431.17,1597.17 1429.69,1597.01 1428.94,1596.47"/>
+ </edge>
+ <edge id=":443089063_13" function="internal">
+ <lane id=":443089063_13_0" index="0" speed="27.78" length="2.41" shape="1428.94,1596.47 1428.93,1595.55 1429.64,1594.24"/>
+ </edge>
+ <edge id=":443089063_7" function="internal">
+ <lane id=":443089063_7_0" index="0" speed="25.00" length="5.02" shape="1422.41,1594.30 1423.51,1593.50 1424.10,1592.53 1424.17,1591.39 1423.73,1590.08"/>
+ </edge>
+ <edge id=":443089063_8" function="internal">
+ <lane id=":443089063_8_0" index="0" speed="27.78" length="6.44" shape="1422.41,1594.30 1428.12,1591.32"/>
+ </edge>
+ <edge id=":443089063_9" function="internal">
+ <lane id=":443089063_9_0" index="0" speed="27.78" length="6.44" shape="1423.93,1597.22 1429.64,1594.24"/>
+ </edge>
+ <edge id=":443089063_10" function="internal">
+ <lane id=":443089063_10_0" index="0" speed="27.78" length="2.41" shape="1423.93,1597.22 1425.41,1597.38 1426.16,1597.92"/>
+ </edge>
+ <edge id=":443089063_14" function="internal">
+ <lane id=":443089063_14_0" index="0" speed="27.78" length="2.41" shape="1426.16,1597.92 1426.18,1598.84 1425.46,1600.15"/>
+ </edge>
+ <edge id=":443089064_0" function="internal">
+ <lane id=":443089064_0_0" index="0" speed="22.22" length="5.03" shape="1379.33,1501.14 1378.55,1500.00 1377.59,1499.40 1376.46,1499.34 1375.16,1499.81"/>
+ </edge>
+ <edge id=":443089064_1" function="internal">
+ <lane id=":443089064_1_0" index="0" speed="22.22" length="6.26" shape="1379.33,1501.14 1376.42,1495.59"/>
+ </edge>
+ <edge id=":443089065_0" function="internal">
+ <lane id=":443089065_0_0" index="0" speed="22.22" length="6.21" shape="1232.06,1224.01 1229.16,1218.52"/>
+ </edge>
+ <edge id=":443089065_1" function="internal">
+ <lane id=":443089065_1_0" index="0" speed="22.22" length="5.01" shape="1227.86,1222.71 1228.98,1221.91 1229.57,1220.94 1229.63,1219.81 1229.16,1218.52"/>
+ </edge>
+ <edge id=":443089066_0" function="internal">
+ <lane id=":443089066_0_0" index="0" speed="22.22" length="6.22" shape="1194.45,1153.07 1191.51,1147.59"/>
+ </edge>
+ <edge id=":443089066_1" function="internal">
+ <lane id=":443089066_1_0" index="0" speed="22.22" length="5.04" shape="1190.24,1151.84 1191.35,1150.99 1191.93,1150.00 1191.98,1148.87 1191.51,1147.59"/>
+ </edge>
+ <edge id=":443089068_0" function="internal">
+ <lane id=":443089068_0_0" index="0" speed="22.22" length="5.02" shape="1110.64,996.49 1109.81,995.39 1108.83,994.83 1107.70,994.80 1106.42,995.30"/>
+ </edge>
+ <edge id=":443089068_1" function="internal">
+ <lane id=":443089068_1_0" index="0" speed="22.22" length="6.16" shape="1110.64,996.49 1107.74,991.06"/>
+ </edge>
+ <edge id=":443089069_0" function="internal">
+ <lane id=":443089069_0_0" index="0" speed="22.22" length="5.14" shape="1152.57,1596.90 1153.39,1597.98 1154.39,1598.54 1155.58,1598.59 1156.95,1598.12"/>
+ </edge>
+ <edge id=":443089069_1" function="internal">
+ <lane id=":443089069_1_0" index="0" speed="22.22" length="6.31" shape="1152.57,1596.90 1155.77,1602.34"/>
+ </edge>
+ <edge id=":443089070_0" function="internal">
+ <lane id=":443089070_0_0" index="0" speed="22.22" length="6.19" shape="1372.85,1489.12 1369.89,1483.69"/>
+ </edge>
+ <edge id=":443089070_1" function="internal">
+ <lane id=":443089070_1_0" index="0" speed="22.22" length="5.00" shape="1368.64,1487.90 1369.74,1487.07 1370.31,1486.10 1370.36,1484.97 1369.89,1483.69"/>
+ </edge>
+ <edge id=":443089071_0" function="internal">
+ <lane id=":443089071_0_0" index="0" speed="18.06" length="5.01" shape="1235.99,1572.06 1234.86,1572.85 1234.26,1573.81 1234.18,1574.94 1234.64,1576.23"/>
+ </edge>
+ <edge id=":443089071_1" function="internal">
+ <lane id=":443089071_1_0" index="0" speed="22.22" length="6.22" shape="1235.99,1572.06 1230.45,1574.90"/>
+ </edge>
+ <edge id=":443089071_2" function="internal">
+ <lane id=":443089071_2_0" index="0" speed="13.89" length="6.21" shape="1231.78,1570.72 1234.64,1576.23"/>
+ </edge>
+ <edge id=":443089071_3" function="internal">
+ <lane id=":443089071_3_0" index="0" speed="18.06" length="5.00" shape="1231.78,1570.72 1232.23,1572.01 1232.16,1573.14 1231.57,1574.10 1230.45,1574.90"/>
+ </edge>
+ <edge id=":443089072_0" function="internal">
+ <lane id=":443089072_0_0" index="0" speed="18.06" length="5.01" shape="1307.88,1539.24 1307.08,1538.13 1306.12,1537.53 1304.98,1537.46 1303.68,1537.90"/>
+ </edge>
+ <edge id=":443089072_1" function="internal">
+ <lane id=":443089072_1_0" index="0" speed="13.89" length="6.21" shape="1307.88,1539.24 1305.02,1533.72"/>
+ </edge>
+ <edge id=":443089072_2" function="internal">
+ <lane id=":443089072_2_0" index="0" speed="22.22" length="6.24" shape="1309.21,1535.03 1303.68,1537.90"/>
+ </edge>
+ <edge id=":443089072_3" function="internal">
+ <lane id=":443089072_3_0" index="0" speed="18.06" length="5.02" shape="1309.21,1535.03 1307.92,1535.50 1306.79,1535.44 1305.82,1534.85 1305.02,1533.72"/>
+ </edge>
+ <edge id=":443089074_0" function="internal">
+ <lane id=":443089074_0_0" index="0" speed="22.22" length="5.02" shape="1404.59,1461.64 1405.40,1462.76 1406.37,1463.34 1407.50,1463.39 1408.79,1462.90"/>
+ </edge>
+ <edge id=":443089074_1" function="internal">
+ <lane id=":443089074_1_0" index="0" speed="22.22" length="6.20" shape="1404.59,1461.64 1407.48,1467.13"/>
+ </edge>
+ <edge id=":443101905_0" function="internal">
+ <lane id=":443101905_0_0" index="0" speed="22.22" length="5.05" shape="1445.68,924.31 1444.89,923.16 1443.92,922.57 1442.79,922.52 1441.49,923.02"/>
+ </edge>
+ <edge id=":443101905_1" function="internal">
+ <lane id=":443101905_1_0" index="0" speed="22.22" length="6.28" shape="1445.68,924.31 1442.71,918.77"/>
+ </edge>
+ <edge id=":443101905_2" function="internal">
+ <lane id=":443101905_2_0" index="0" speed="22.22" length="2.41" shape="1445.68,924.31 1445.86,922.83 1446.41,922.09"/>
+ </edge>
+ <edge id=":443101905_9" function="internal">
+ <lane id=":443101905_9_0" index="0" speed="22.22" length="2.41" shape="1446.41,922.09 1447.34,922.09 1448.63,922.82"/>
+ </edge>
+ <edge id=":443101905_3" function="internal">
+ <lane id=":443101905_3_0" index="0" speed="22.22" length="5.22" shape="1449.83,918.36 1448.75,919.21 1448.19,920.23 1448.15,921.43 1448.63,922.82"/>
+ </edge>
+ <edge id=":443101905_4" function="internal">
+ <lane id=":443101905_4_0" index="0" speed="22.22" length="9.56" shape="1449.83,918.36 1441.49,923.02"/>
+ </edge>
+ <edge id=":443101905_5" function="internal">
+ <lane id=":443101905_5_0" index="0" speed="22.22" length="7.86" shape="1449.83,918.36 1447.30,919.55 1445.26,920.02 1443.74,919.76 1442.71,918.77"/>
+ </edge>
+ <edge id=":443101905_6" function="internal">
+ <lane id=":443101905_6_0" index="0" speed="22.22" length="6.46" shape="1445.58,917.13 1448.63,922.82"/>
+ </edge>
+ <edge id=":443101905_7" function="internal">
+ <lane id=":443101905_7_0" index="0" speed="22.22" length="4.81" shape="1445.58,917.13 1445.91,918.52 1445.34,919.97 1444.06,921.27"/>
+ </edge>
+ <edge id=":443101905_10" function="internal">
+ <lane id=":443101905_10_0" index="0" speed="22.22" length="3.11" shape="1444.06,921.27 1443.86,921.47 1441.49,923.02"/>
+ </edge>
+ <edge id=":443101905_8" function="internal">
+ <lane id=":443101905_8_0" index="0" speed="22.22" length="2.41" shape="1445.58,917.13 1445.48,918.61 1444.96,919.38"/>
+ </edge>
+ <edge id=":443101905_11" function="internal">
+ <lane id=":443101905_11_0" index="0" speed="22.22" length="2.41" shape="1444.96,919.38 1444.04,919.43 1442.71,918.77"/>
+ </edge>
+ <edge id=":443101906_0" function="internal">
+ <lane id=":443101906_0_0" index="0" speed="22.22" length="5.01" shape="1350.20,977.61 1349.37,976.51 1348.40,975.94 1347.27,975.90 1345.98,976.40"/>
+ </edge>
+ <edge id=":443101906_1" function="internal">
+ <lane id=":443101906_1_0" index="0" speed="22.22" length="6.47" shape="1350.20,977.61 1347.62,971.67"/>
+ </edge>
+ <edge id=":443101906_2" function="internal">
+ <lane id=":443101906_2_0" index="0" speed="22.22" length="2.41" shape="1350.20,977.61 1350.33,976.13 1350.85,975.37"/>
+ </edge>
+ <edge id=":443101906_9" function="internal">
+ <lane id=":443101906_9_0" index="0" speed="22.22" length="2.41" shape="1350.85,975.37 1351.78,975.33 1353.09,976.02"/>
+ </edge>
+ <edge id=":443101906_3" function="internal">
+ <lane id=":443101906_3_0" index="0" speed="22.22" length="5.35" shape="1354.61,971.57 1353.38,972.48 1352.72,973.53 1352.62,974.71 1353.09,976.02"/>
+ </edge>
+ <edge id=":443101906_4" function="internal">
+ <lane id=":443101906_4_0" index="0" speed="22.22" length="9.89" shape="1354.61,971.57 1345.98,976.40"/>
+ </edge>
+ <edge id=":443101906_5" function="internal">
+ <lane id=":443101906_5_0" index="0" speed="22.22" length="8.00" shape="1354.61,971.57 1351.95,972.82 1349.90,973.26 1348.45,972.87 1347.62,971.67"/>
+ </edge>
+ <edge id=":443101906_6" function="internal">
+ <lane id=":443101906_6_0" index="0" speed="22.22" length="5.87" shape="1350.75,970.64 1353.09,976.02"/>
+ </edge>
+ <edge id=":443101906_7" function="internal">
+ <lane id=":443101906_7_0" index="0" speed="22.22" length="4.53" shape="1350.75,970.64 1350.78,971.98 1349.99,973.38 1348.83,974.45"/>
+ </edge>
+ <edge id=":443101906_10" function="internal">
+ <lane id=":443101906_10_0" index="0" speed="22.22" length="3.45" shape="1348.83,974.45 1348.39,974.86 1345.98,976.40"/>
+ </edge>
+ <edge id=":443101906_8" function="internal">
+ <lane id=":443101906_8_0" index="0" speed="22.22" length="2.41" shape="1350.75,970.64 1350.36,972.08 1349.70,972.72"/>
+ </edge>
+ <edge id=":443101906_11" function="internal">
+ <lane id=":443101906_11_0" index="0" speed="22.22" length="2.41" shape="1349.70,972.72 1348.79,972.59 1347.62,971.67"/>
+ </edge>
+ <edge id=":443101911_0" function="internal">
+ <lane id=":443101911_0_0" index="0" speed="22.22" length="5.06" shape="1089.77,1121.37 1088.72,1122.21 1088.17,1123.21 1088.14,1124.37 1088.61,1125.70"/>
+ </edge>
+ <edge id=":443101911_1" function="internal">
+ <lane id=":443101911_1_0" index="0" speed="22.22" length="6.19" shape="1089.77,1121.37 1084.40,1124.45"/>
+ </edge>
+ <edge id=":443101912_0" function="internal">
+ <lane id=":443101912_0_0" index="0" speed="22.22" length="5.14" shape="948.66,1201.67 947.54,1202.52 946.96,1203.53 946.89,1204.70 947.35,1206.03"/>
+ </edge>
+ <edge id=":443101912_1" function="internal">
+ <lane id=":443101912_1_0" index="0" speed="22.22" length="6.31" shape="948.66,1201.67 943.15,1204.76"/>
+ </edge>
+ <edge id=":443101912_2" function="internal">
+ <lane id=":443101912_2_0" index="0" speed="22.22" length="6.31" shape="944.45,1200.42 947.35,1206.03"/>
+ </edge>
+ <edge id=":443101912_3" function="internal">
+ <lane id=":443101912_3_0" index="0" speed="22.22" length="5.13" shape="944.45,1200.42 944.92,1201.74 944.86,1202.90 944.27,1203.91 943.15,1204.76"/>
+ </edge>
+ <edge id=":443101913_0" function="internal">
+ <lane id=":443101913_0_0" index="0" speed="22.22" length="5.04" shape="929.76,1171.64 930.57,1172.76 931.54,1173.34 932.67,1173.38 933.96,1172.88"/>
+ </edge>
+ <edge id=":443101913_1" function="internal">
+ <lane id=":443101913_1_0" index="0" speed="22.22" length="6.31" shape="929.76,1171.64 932.66,1177.25"/>
+ </edge>
+ <edge id=":443101913_2" function="internal">
+ <lane id=":443101913_2_0" index="0" speed="22.22" length="6.31" shape="928.46,1175.98 933.96,1172.88"/>
+ </edge>
+ <edge id=":443101913_3" function="internal">
+ <lane id=":443101913_3_0" index="0" speed="22.22" length="5.05" shape="928.46,1175.98 929.76,1175.48 930.89,1175.52 931.86,1176.11 932.66,1177.25"/>
+ </edge>
+ <edge id=":443101914_0" function="internal">
+ <lane id=":443101914_0_0" index="0" speed="22.22" length="5.05" shape="1003.08,1133.94 1004.15,1133.11 1004.70,1132.12 1004.75,1130.96 1004.27,1129.64"/>
+ </edge>
+ <edge id=":443101914_1" function="internal">
+ <lane id=":443101914_1_0" index="0" speed="22.22" length="6.21" shape="1003.08,1133.94 1008.48,1130.89"/>
+ </edge>
+ <edge id=":443101915_0" function="internal">
+ <lane id=":443101915_0_0" index="0" speed="22.22" length="5.02" shape="1073.46,1090.50 1074.26,1091.62 1075.23,1092.20 1076.36,1092.26 1077.65,1091.77"/>
+ </edge>
+ <edge id=":443101915_1" function="internal">
+ <lane id=":443101915_1_0" index="0" speed="22.22" length="6.18" shape="1072.26,1094.78 1077.65,1091.77"/>
+ </edge>
+ <edge id=":443101920_0" function="internal">
+ <lane id=":443101920_0_0" index="0" speed="22.22" length="4.06" shape="1338.73,944.47 1337.03,940.77"/>
+ </edge>
+ <edge id=":443101920_1" function="internal">
+ <lane id=":443101920_1_0" index="0" speed="22.22" length="3.47" shape="1338.73,944.47 1338.98,943.96 1339.98,943.15 1341.33,942.27"/>
+ </edge>
+ <edge id=":443101920_9" function="internal">
+ <lane id=":443101920_9_0" index="0" speed="22.22" length="3.31" shape="1341.33,942.27 1341.71,942.02 1344.18,940.58"/>
+ </edge>
+ <edge id=":443101920_2" function="internal">
+ <lane id=":443101920_2_0" index="0" speed="22.22" length="2.41" shape="1338.73,944.47 1339.13,943.04 1339.79,942.39"/>
+ </edge>
+ <edge id=":443101920_10" function="internal">
+ <lane id=":443101920_10_0" index="0" speed="22.22" length="2.41" shape="1339.79,942.39 1340.70,942.53 1341.86,943.45"/>
+ </edge>
+ <edge id=":443101920_3" function="internal">
+ <lane id=":443101920_3_0" index="0" speed="22.22" length="5.06" shape="1339.99,939.30 1340.78,940.44 1341.74,941.04 1342.88,941.09 1344.18,940.58"/>
+ </edge>
+ <edge id=":443101920_4" function="internal">
+ <lane id=":443101920_4_0" index="0" speed="22.22" length="4.56" shape="1339.99,939.30 1341.86,943.45"/>
+ </edge>
+ <edge id=":443101920_5" function="internal">
+ <lane id=":443101920_5_0" index="0" speed="22.22" length="2.41" shape="1339.99,939.30 1339.80,940.77 1339.25,941.51"/>
+ </edge>
+ <edge id=":443101920_11" function="internal">
+ <lane id=":443101920_11_0" index="0" speed="22.22" length="2.41" shape="1339.25,941.51 1338.33,941.51 1337.03,940.77"/>
+ </edge>
+ <edge id=":443101920_6" function="internal">
+ <lane id=":443101920_6_0" index="0" speed="22.22" length="5.55" shape="1335.49,945.44 1336.72,944.51 1337.39,943.43 1337.50,942.18 1337.03,940.77"/>
+ </edge>
+ <edge id=":443101920_7" function="internal">
+ <lane id=":443101920_7_0" index="0" speed="22.22" length="9.95" shape="1335.49,945.44 1344.18,940.58"/>
+ </edge>
+ <edge id=":443101920_8" function="internal">
+ <lane id=":443101920_8_0" index="0" speed="22.22" length="6.99" shape="1335.49,945.44 1338.12,944.07 1340.06,943.29 1341.30,943.08 1341.86,943.45"/>
+ </edge>
+ <edge id=":443101921_0" function="internal">
+ <lane id=":443101921_0_0" index="0" speed="18.06" length="4.68" shape="1429.42,894.38 1427.26,890.23"/>
+ </edge>
+ <edge id=":443101921_1" function="internal">
+ <lane id=":443101921_1_0" index="0" speed="22.22" length="2.05" shape="1429.42,894.38 1429.49,893.64 1430.34,892.66"/>
+ </edge>
+ <edge id=":443101921_9" function="internal">
+ <lane id=":443101921_9_0" index="0" speed="22.22" length="4.88" shape="1430.34,892.66 1431.98,891.43 1434.39,889.95"/>
+ </edge>
+ <edge id=":443101921_2" function="internal">
+ <lane id=":443101921_2_0" index="0" speed="22.22" length="1.49" shape="1429.42,894.38 1429.58,892.90"/>
+ </edge>
+ <edge id=":443101921_10" function="internal">
+ <lane id=":443101921_10_0" index="0" speed="22.22" length="3.33" shape="1429.58,892.90 1430.12,892.16 1431.04,892.14 1432.35,892.86"/>
+ </edge>
+ <edge id=":443101921_3" function="internal">
+ <lane id=":443101921_3_0" index="0" speed="18.06" length="5.05" shape="1430.19,888.71 1431.00,889.84 1431.97,890.42 1433.10,890.46 1434.39,889.95"/>
+ </edge>
+ <edge id=":443101921_4" function="internal">
+ <lane id=":443101921_4_0" index="0" speed="18.06" length="4.68" shape="1430.19,888.71 1432.35,892.86"/>
+ </edge>
+ <edge id=":443101921_5" function="internal">
+ <lane id=":443101921_5_0" index="0" speed="13.89" length="4.82" shape="1430.19,888.71 1430.03,890.19 1429.48,890.93 1428.56,890.95 1427.26,890.23"/>
+ </edge>
+ <edge id=":443101921_6" function="internal">
+ <lane id=":443101921_6_0" index="0" speed="18.06" length="5.23" shape="1426.02,894.68 1427.13,893.82 1427.71,892.80 1427.75,891.60 1427.26,890.23"/>
+ </edge>
+ <edge id=":443101921_7" function="internal">
+ <lane id=":443101921_7_0" index="0" speed="22.22" length="9.62" shape="1426.02,894.68 1434.39,889.95"/>
+ </edge>
+ <edge id=":443101921_8" function="internal">
+ <lane id=":443101921_8_0" index="0" speed="22.22" length="6.89" shape="1426.02,894.68 1428.53,893.38 1430.42,892.65 1431.69,892.47 1432.35,892.86"/>
+ </edge>
+ <edge id=":443101938_0" function="internal">
+ <lane id=":443101938_0_0" index="0" speed="22.22" length="0.10" shape="1568.44,1866.64 1568.44,1866.64"/>
+ </edge>
+ <edge id=":444026884_0" function="internal">
+ <lane id=":444026884_0_0" index="0" speed="27.78" length="18.86" shape="765.16,1292.44 760.34,1295.28 757.03,1297.22 753.72,1299.15 748.89,1301.97"/>
+ </edge>
+ <edge id=":444026884_1" function="internal">
+ <lane id=":444026884_1_0" index="0" speed="27.78" length="18.85" shape="763.49,1289.60 758.67,1292.43 755.36,1294.37 752.06,1296.30 747.23,1299.12"/>
+ </edge>
+ <edge id=":444026884_2" function="internal">
+ <lane id=":444026884_2_0" index="0" speed="25.00" length="10.10" shape="763.49,1289.60 759.45,1291.85 756.63,1293.15 755.02,1293.50 754.64,1292.89"/>
+ </edge>
+ <edge id=":444026884_3" function="internal">
+ <lane id=":444026884_3_0" index="0" speed="27.78" length="2.41" shape="763.49,1289.60 762.01,1289.51 761.23,1289.01"/>
+ </edge>
+ <edge id=":444026884_11" function="internal">
+ <lane id=":444026884_11_0" index="0" speed="27.78" length="2.41" shape="761.23,1289.01 761.17,1288.09 761.82,1286.75"/>
+ </edge>
+ <edge id=":444026884_4" function="internal">
+ <lane id=":444026884_4_0" index="0" speed="25.00" length="13.90" shape="743.90,1293.42 749.10,1290.74 752.63,1289.76 754.47,1290.48 754.64,1292.89"/>
+ </edge>
+ <edge id=":444026884_5" function="internal">
+ <lane id=":444026884_5_0" index="0" speed="27.78" length="18.82" shape="743.90,1293.42 748.73,1290.60 752.03,1288.67 755.33,1286.74 760.15,1283.91"/>
+ </edge>
+ <edge id=":444026884_6" function="internal">
+ <lane id=":444026884_6_0" index="0" speed="27.78" length="18.84" shape="745.56,1296.27 750.39,1293.45 753.70,1291.52 757.00,1289.59 761.82,1286.75"/>
+ </edge>
+ <edge id=":444026884_7" function="internal">
+ <lane id=":444026884_7_0" index="0" speed="27.78" length="2.41" shape="745.56,1296.27 747.05,1296.36 747.82,1296.86"/>
+ </edge>
+ <edge id=":444026884_12" function="internal">
+ <lane id=":444026884_12_0" index="0" speed="27.78" length="2.41" shape="747.82,1296.86 747.88,1297.79 747.23,1299.12"/>
+ </edge>
+ <edge id=":444026884_8" function="internal">
+ <lane id=":444026884_8_0" index="0" speed="25.00" length="5.04" shape="753.27,1299.48 753.00,1299.61 752.18,1300.07 750.81,1300.85 748.89,1301.97"/>
+ </edge>
+ <edge id=":444026884_9" function="internal">
+ <lane id=":444026884_9_0" index="0" speed="22.22" length="6.73" shape="753.27,1299.48 754.64,1292.89"/>
+ </edge>
+ <edge id=":444026884_10" function="internal">
+ <lane id=":444026884_10_0" index="0" speed="25.00" length="5.09" shape="753.27,1299.48 754.49,1295.39 754.87,1294.66"/>
+ </edge>
+ <edge id=":444026884_13" function="internal">
+ <lane id=":444026884_13_0" index="0" speed="25.00" length="10.69" shape="754.87,1294.66 756.32,1291.91 758.76,1289.03 761.82,1286.75"/>
+ </edge>
+ <edge id=":444026886_0" function="internal">
+ <lane id=":444026886_0_0" index="0" speed="22.22" length="0.30" shape="783.32,1096.26 783.38,1095.97"/>
+ </edge>
+ <edge id=":444026889_0" function="internal">
+ <lane id=":444026889_0_0" index="0" speed="22.22" length="6.87" shape="803.15,1079.82 802.19,1086.63"/>
+ </edge>
+ <edge id=":444026889_1" function="internal">
+ <lane id=":444026889_1_0" index="0" speed="22.22" length="2.41" shape="803.15,1079.82 802.20,1080.96 801.33,1081.28"/>
+ </edge>
+ <edge id=":444026889_6" function="internal">
+ <lane id=":444026889_6_0" index="0" speed="22.22" length="2.41" shape="801.33,1081.28 800.56,1080.77 799.88,1079.45"/>
+ </edge>
+ <edge id=":444026889_2" function="internal">
+ <lane id=":444026889_2_0" index="0" speed="22.22" length="6.15" shape="795.59,1083.47 797.36,1082.63 798.66,1081.68 799.50,1080.62 799.88,1079.45"/>
+ </edge>
+ <edge id=":444026889_3" function="internal">
+ <lane id=":444026889_3_0" index="0" speed="22.22" length="9.79" shape="795.59,1083.47 798.82,1082.56 801.00,1082.79 802.12,1084.14 802.19,1086.63"/>
+ </edge>
+ <edge id=":444026889_4" function="internal">
+ <lane id=":444026889_4_0" index="0" speed="22.22" length="6.75" shape="798.93,1086.14 799.88,1079.45"/>
+ </edge>
+ <edge id=":444026889_5" function="internal">
+ <lane id=":444026889_5_0" index="0" speed="22.22" length="2.41" shape="798.93,1086.14 799.93,1085.03 800.80,1084.75"/>
+ </edge>
+ <edge id=":444026889_7" function="internal">
+ <lane id=":444026889_7_0" index="0" speed="22.22" length="2.41" shape="800.80,1084.75 801.56,1085.28 802.19,1086.63"/>
+ </edge>
+ <edge id=":444026917_0" function="internal">
+ <lane id=":444026917_0_0" index="0" speed="22.22" length="6.33" shape="1040.99,861.82 1038.07,856.21"/>
+ </edge>
+ <edge id=":444026917_1" function="internal">
+ <lane id=":444026917_1_0" index="0" speed="22.22" length="5.16" shape="1040.99,861.82 1040.52,860.49 1040.58,859.32 1041.17,858.31 1042.28,857.45"/>
+ </edge>
+ <edge id=":444026917_2" function="internal">
+ <lane id=":444026917_2_0" index="0" speed="22.22" length="5.15" shape="1036.78,860.57 1037.89,859.71 1038.48,858.70 1038.54,857.53 1038.07,856.21"/>
+ </edge>
+ <edge id=":444026917_3" function="internal">
+ <lane id=":444026917_3_0" index="0" speed="22.22" length="6.33" shape="1036.78,860.57 1042.28,857.45"/>
+ </edge>
+ <edge id=":445506213_0" function="internal">
+ <lane id=":445506213_0_0" index="0" speed="22.22" length="0.52" shape="703.62,1856.95 703.63,1857.47"/>
+ </edge>
+ <edge id=":445506215_0" function="internal">
+ <lane id=":445506215_0_0" index="0" speed="22.22" length="12.04" shape="759.69,2250.12 760.59,2253.21 762.37,2254.96 765.02,2255.35 768.55,2254.40"/>
+ </edge>
+ <edge id=":445506215_1" function="internal">
+ <lane id=":445506215_1_0" index="0" speed="22.22" length="11.70" shape="759.69,2250.12 760.44,2252.77 761.97,2254.96 764.29,2256.71 767.40,2258.01"/>
+ </edge>
+ <edge id=":445506215_2" function="internal">
+ <lane id=":445506215_2_0" index="0" speed="22.22" length="8.42" shape="759.69,2250.12 760.70,2258.48"/>
+ </edge>
+ <edge id=":445506215_3" function="internal">
+ <lane id=":445506215_3_0" index="0" speed="22.22" length="14.34" shape="755.87,2250.00 759.05,2252.89 762.23,2254.59 765.39,2255.10 768.55,2254.40"/>
+ </edge>
+ <edge id=":445506215_4" function="internal">
+ <lane id=":445506215_4_0" index="0" speed="22.22" length="14.34" shape="755.87,2250.00 758.73,2253.15 760.90,2255.18 763.44,2256.62 767.40,2258.01"/>
+ </edge>
+ <edge id=":445506215_5" function="internal">
+ <lane id=":445506215_5_0" index="0" speed="22.22" length="16.11" shape="753.43,2252.23 756.65,2255.75 759.10,2258.01 761.97,2259.61 766.43,2261.17"/>
+ </edge>
+ <edge id=":445506215_6" function="internal">
+ <lane id=":445506215_6_0" index="0" speed="22.22" length="9.59" shape="753.43,2252.23 760.70,2258.48"/>
+ </edge>
+ <edge id=":445506215_7" function="internal">
+ <lane id=":445506215_7_0" index="0" speed="22.22" length="13.33" shape="757.19,2261.16 759.79,2258.86 762.44,2257.15 765.31,2255.75 768.55,2254.40"/>
+ </edge>
+ <edge id=":445506215_8" function="internal">
+ <lane id=":445506215_8_0" index="0" speed="22.22" length="9.60" shape="757.19,2261.16 758.57,2260.34 760.57,2260.07 763.19,2260.35 766.43,2261.17"/>
+ </edge>
+ <edge id=":445506215_9" function="internal">
+ <lane id=":445506215_9_0" index="0" speed="22.22" length="4.62" shape="757.19,2261.16 758.69,2259.68 759.78,2258.74 760.45,2258.34 760.70,2258.48"/>
+ </edge>
+ <edge id=":445506216_0" function="internal">
+ <lane id=":445506216_0_0" index="0" speed="25.00" length="5.00" shape="976.84,1924.81 976.03,1923.71 975.06,1923.13 973.93,1923.08 972.64,1923.55"/>
+ </edge>
+ <edge id=":445506216_1" function="internal">
+ <lane id=":445506216_1_0" index="0" speed="27.78" length="6.18" shape="976.84,1924.81 973.95,1919.35"/>
+ </edge>
+ <edge id=":445506216_2" function="internal">
+ <lane id=":445506216_2_0" index="0" speed="27.78" length="2.41" shape="976.84,1924.81 976.98,1923.33 977.52,1922.58"/>
+ </edge>
+ <edge id=":445506216_6" function="internal">
+ <lane id=":445506216_6_0" index="0" speed="27.78" length="2.41" shape="977.52,1922.58 978.44,1922.55 979.75,1923.25"/>
+ </edge>
+ <edge id=":445506216_3" function="internal">
+ <lane id=":445506216_3_0" index="0" speed="27.78" length="6.15" shape="976.87,1917.82 979.75,1923.25"/>
+ </edge>
+ <edge id=":445506216_4" function="internal">
+ <lane id=":445506216_4_0" index="0" speed="25.00" length="4.69" shape="976.87,1917.82 977.13,1919.19 976.52,1920.60 975.26,1921.82"/>
+ </edge>
+ <edge id=":445506216_7" function="internal">
+ <lane id=":445506216_7_0" index="0" speed="25.00" length="3.14" shape="975.26,1921.82 975.02,1922.05 972.64,1923.55"/>
+ </edge>
+ <edge id=":445506216_5" function="internal">
+ <lane id=":445506216_5_0" index="0" speed="27.78" length="2.41" shape="976.87,1917.82 976.71,1919.30 976.17,1920.05"/>
+ </edge>
+ <edge id=":445506216_8" function="internal">
+ <lane id=":445506216_8_0" index="0" speed="27.78" length="2.41" shape="976.17,1920.05 975.25,1920.06 973.95,1919.35"/>
+ </edge>
+ <edge id=":445506217_0" function="internal">
+ <lane id=":445506217_0_0" index="0" speed="22.22" length="6.61" shape="734.00,2051.66 732.55,2052.68 731.59,2053.93 731.12,2055.41 731.14,2057.12"/>
+ </edge>
+ <edge id=":445506217_1" function="internal">
+ <lane id=":445506217_1_0" index="0" speed="22.22" length="7.54" shape="734.00,2051.66 727.29,2055.09"/>
+ </edge>
+ <edge id=":445506217_2" function="internal">
+ <lane id=":445506217_2_0" index="0" speed="22.22" length="7.54" shape="730.16,2049.64 731.14,2057.12"/>
+ </edge>
+ <edge id=":445506217_3" function="internal">
+ <lane id=":445506217_3_0" index="0" speed="22.22" length="6.61" shape="730.16,2049.64 730.15,2051.42 729.66,2052.92 728.71,2054.14 727.29,2055.09"/>
+ </edge>
+ <edge id=":445506220_0" function="internal">
+ <lane id=":445506220_0_0" index="0" speed="22.22" length="6.31" shape="747.17,1490.20 745.69,1488.89 744.53,1488.65 743.70,1489.49 743.18,1491.39"/>
+ </edge>
+ <edge id=":445506220_1" function="internal">
+ <lane id=":445506220_1_0" index="0" speed="22.22" length="12.30" shape="747.17,1490.20 744.52,1486.94 742.71,1484.09 741.73,1481.62 741.59,1479.55"/>
+ </edge>
+ <edge id=":445506220_2" function="internal">
+ <lane id=":445506220_2_0" index="0" speed="22.22" length="4.82" shape="747.17,1490.20 746.96,1488.72 747.31,1487.87 748.20,1487.63 749.64,1488.00"/>
+ </edge>
+ <edge id=":445506220_3" function="internal">
+ <lane id=":445506220_3_0" index="0" speed="22.22" length="9.46" shape="744.85,1480.03 745.03,1481.36 745.89,1483.14 747.42,1485.35 749.64,1488.00"/>
+ </edge>
+ <edge id=":445506220_4" function="internal">
+ <lane id=":445506220_4_0" index="0" speed="22.22" length="11.48" shape="744.85,1480.03 744.39,1483.20 744.02,1485.71 743.64,1488.22 743.18,1491.39"/>
+ </edge>
+ <edge id=":445506220_5" function="internal">
+ <lane id=":445506220_5_0" index="0" speed="22.22" length="2.41" shape="744.85,1480.03 743.86,1481.14 742.98,1481.43"/>
+ </edge>
+ <edge id=":445506220_9" function="internal">
+ <lane id=":445506220_9_0" index="0" speed="22.22" length="2.41" shape="742.98,1481.43 742.22,1480.90 741.59,1479.55"/>
+ </edge>
+ <edge id=":445506220_6" function="internal">
+ <lane id=":445506220_6_0" index="0" speed="22.22" length="11.47" shape="739.91,1490.90 740.38,1487.74 740.75,1485.23 741.12,1482.72 741.59,1479.55"/>
+ </edge>
+ <edge id=":445506220_7" function="internal">
+ <lane id=":445506220_7_0" index="0" speed="22.22" length="8.68" shape="739.91,1490.90 741.18,1486.27 743.22,1484.25 744.20,1484.45"/>
+ </edge>
+ <edge id=":445506220_10" function="internal">
+ <lane id=":445506220_10_0" index="0" speed="22.22" length="6.68" shape="744.20,1484.45 746.04,1484.82 749.64,1488.00"/>
+ </edge>
+ <edge id=":445506220_8" function="internal">
+ <lane id=":445506220_8_0" index="0" speed="22.22" length="2.41" shape="739.91,1490.90 740.91,1489.80 741.78,1489.51"/>
+ </edge>
+ <edge id=":445506220_11" function="internal">
+ <lane id=":445506220_11_0" index="0" speed="22.22" length="2.41" shape="741.78,1489.51 742.54,1490.04 743.18,1491.39"/>
+ </edge>
+ <edge id=":445506221_0" function="internal">
+ <lane id=":445506221_0_0" index="0" speed="22.22" length="6.40" shape="714.57,2063.01 713.69,2056.67"/>
+ </edge>
+ <edge id=":445506221_1" function="internal">
+ <lane id=":445506221_1_0" index="0" speed="22.22" length="2.41" shape="714.57,2063.01 715.21,2061.67 715.97,2061.15"/>
+ </edge>
+ <edge id=":445506221_6" function="internal">
+ <lane id=":445506221_6_0" index="0" speed="22.22" length="2.41" shape="715.97,2061.15 716.84,2061.44 717.83,2062.55"/>
+ </edge>
+ <edge id=":445506221_2" function="internal">
+ <lane id=":445506221_2_0" index="0" speed="22.22" length="5.58" shape="720.80,2058.27 719.36,2059.16 718.39,2060.16 717.88,2061.29 717.83,2062.55"/>
+ </edge>
+ <edge id=":445506221_3" function="internal">
+ <lane id=":445506221_3_0" index="0" speed="22.22" length="8.89" shape="720.80,2058.27 717.93,2059.36 715.79,2059.46 714.38,2058.56 713.69,2056.67"/>
+ </edge>
+ <edge id=":445506221_4" function="internal">
+ <lane id=":445506221_4_0" index="0" speed="22.22" length="6.38" shape="716.96,2056.23 717.83,2062.55"/>
+ </edge>
+ <edge id=":445506221_5" function="internal">
+ <lane id=":445506221_5_0" index="0" speed="22.22" length="2.41" shape="716.96,2056.23 716.31,2057.57 715.55,2058.09"/>
+ </edge>
+ <edge id=":445506221_7" function="internal">
+ <lane id=":445506221_7_0" index="0" speed="22.22" length="2.41" shape="715.55,2058.09 714.67,2057.79 713.69,2056.67"/>
+ </edge>
+ <edge id=":445823604_0" function="internal">
+ <lane id=":445823604_0_0" index="0" speed="22.22" length="5.87" shape="767.16,2289.61 765.68,2290.56 764.68,2291.64 764.16,2292.84 764.11,2294.17"/>
+ </edge>
+ <edge id=":445823604_1" function="internal">
+ <lane id=":445823604_1_0" index="0" speed="22.22" length="3.86" shape="767.16,2289.61 763.73,2291.39"/>
+ </edge>
+ <edge id=":445823604_2" function="internal">
+ <lane id=":445823604_2_0" index="0" speed="22.22" length="2.81" shape="763.73,2291.39 764.11,2294.17"/>
+ </edge>
+ <edge id=":445823604_3" function="internal">
+ <lane id=":445823604_3_0" index="0" speed="22.22" length="0.10" shape="763.73,2291.39 763.73,2291.39"/>
+ </edge>
+ <edge id=":446017735_0" function="internal">
+ <lane id=":446017735_0_0" index="0" speed="22.22" length="5.38" shape="723.93,2226.63 725.47,2226.63 726.50,2226.12 727.01,2225.09 727.00,2223.55"/>
+ </edge>
+ <edge id=":446017735_1" function="internal">
+ <lane id=":446017735_1_0" index="0" speed="22.22" length="6.71" shape="723.93,2226.63 730.40,2228.40"/>
+ </edge>
+ <edge id=":446017735_2" function="internal">
+ <lane id=":446017735_2_0" index="0" speed="22.22" length="5.54" shape="723.46,2229.90 728.82,2231.30"/>
+ </edge>
+ <edge id=":446017738_0" function="internal">
+ <lane id=":446017738_0_0" index="0" speed="22.22" length="10.32" shape="667.32,1330.28 666.10,1327.56 665.77,1325.50 666.01,1323.33 666.51,1320.30"/>
+ </edge>
+ <edge id=":446017738_1" function="internal">
+ <lane id=":446017738_1_0" index="0" speed="22.22" length="6.10" shape="667.32,1330.28 667.15,1328.81 668.08,1327.12 670.03,1325.28"/>
+ </edge>
+ <edge id=":446017738_9" function="internal">
+ <lane id=":446017738_9_0" index="0" speed="22.22" length="3.92" shape="670.03,1325.28 670.12,1325.20 673.27,1323.06"/>
+ </edge>
+ <edge id=":446017738_2" function="internal">
+ <lane id=":446017738_2_0" index="0" speed="22.22" length="2.41" shape="667.32,1330.28 667.46,1328.80 667.99,1328.05"/>
+ </edge>
+ <edge id=":446017738_10" function="internal">
+ <lane id=":446017738_10_0" index="0" speed="22.22" length="2.41" shape="667.99,1328.05 668.91,1328.02 670.23,1328.72"/>
+ </edge>
+ <edge id=":446017738_3" function="internal">
+ <lane id=":446017738_3_0" index="0" speed="22.22" length="6.28" shape="669.78,1320.76 669.74,1322.72 670.31,1323.76 671.49,1323.87 673.27,1323.06"/>
+ </edge>
+ <edge id=":446017738_4" function="internal">
+ <lane id=":446017738_4_0" index="0" speed="22.22" length="7.97" shape="669.78,1320.76 670.23,1328.72"/>
+ </edge>
+ <edge id=":446017738_5" function="internal">
+ <lane id=":446017738_5_0" index="0" speed="22.22" length="2.41" shape="669.78,1320.76 668.79,1321.87 667.92,1322.17"/>
+ </edge>
+ <edge id=":446017738_11" function="internal">
+ <lane id=":446017738_11_0" index="0" speed="22.22" length="2.41" shape="667.92,1322.17 667.16,1321.64 666.51,1320.30"/>
+ </edge>
+ <edge id=":446017738_6" function="internal">
+ <lane id=":446017738_6_0" index="0" speed="22.22" length="7.14" shape="666.23,1327.30 665.96,1327.02 665.92,1325.77 666.10,1323.53 666.51,1320.30"/>
+ </edge>
+ <edge id=":446017738_7" function="internal">
+ <lane id=":446017738_7_0" index="0" speed="22.22" length="8.22" shape="666.23,1327.30 673.27,1323.06"/>
+ </edge>
+ <edge id=":446017738_8" function="internal">
+ <lane id=":446017738_8_0" index="0" speed="22.22" length="4.86" shape="666.23,1327.30 667.41,1326.86 668.47,1326.95 669.41,1327.57 670.23,1328.72"/>
+ </edge>
+ <edge id=":446017739_0" function="internal">
+ <lane id=":446017739_0_0" index="0" speed="22.22" length="9.28" shape="754.78,1273.45 756.76,1271.98 758.26,1270.25 759.30,1268.27 759.86,1266.05"/>
+ </edge>
+ <edge id=":446017739_1" function="internal">
+ <lane id=":446017739_1_0" index="0" speed="22.22" length="9.93" shape="754.78,1273.45 763.33,1268.39"/>
+ </edge>
+ <edge id=":446017739_2" function="internal">
+ <lane id=":446017739_2_0" index="0" speed="22.22" length="9.93" shape="758.16,1275.83 759.86,1266.05"/>
+ </edge>
+ <edge id=":446017739_3" function="internal">
+ <lane id=":446017739_3_0" index="0" speed="22.22" length="9.34" shape="758.16,1275.83 758.88,1273.46 759.98,1271.43 761.46,1269.74 763.33,1268.39"/>
+ </edge>
+ <edge id=":446017740_0" function="internal">
+ <lane id=":446017740_0_0" index="0" speed="22.22" length="9.83" shape="754.67,1311.39 746.16,1316.30"/>
+ </edge>
+ <edge id=":446017740_1" function="internal">
+ <lane id=":446017740_1_0" index="0" speed="22.22" length="6.14" shape="754.67,1311.39 752.81,1312.23 751.61,1312.19 751.08,1311.26 751.21,1309.44"/>
+ </edge>
+ <edge id=":446017740_2" function="internal">
+ <lane id=":446017740_2_0" index="0" speed="22.22" length="6.17" shape="749.64,1318.65 749.66,1316.75 749.09,1315.72 747.92,1315.57 746.16,1316.30"/>
+ </edge>
+ <edge id=":446017740_3" function="internal">
+ <lane id=":446017740_3_0" index="0" speed="22.22" length="9.35" shape="749.64,1318.65 751.21,1309.44"/>
+ </edge>
+ <edge id=":446017741_0" function="internal">
+ <lane id=":446017741_0_0" index="0" speed="22.22" length="6.18" shape="776.62,1256.52 776.57,1258.43 777.13,1259.47 778.30,1259.63 780.07,1258.91"/>
+ </edge>
+ <edge id=":446017741_1" function="internal">
+ <lane id=":446017741_1_0" index="0" speed="22.22" length="8.95" shape="776.62,1256.52 775.39,1265.38"/>
+ </edge>
+ <edge id=":446017741_2" function="internal">
+ <lane id=":446017741_2_0" index="0" speed="22.22" length="2.41" shape="776.62,1256.52 775.62,1257.62 774.74,1257.90"/>
+ </edge>
+ <edge id=":446017741_9" function="internal">
+ <lane id=":446017741_9_0" index="0" speed="22.22" length="2.41" shape="774.74,1257.90 773.99,1257.37 773.36,1256.03"/>
+ </edge>
+ <edge id=":446017741_3" function="internal">
+ <lane id=":446017741_3_0" index="0" speed="22.22" length="11.17" shape="768.26,1265.58 770.08,1264.12 771.54,1262.04 772.63,1259.35 773.36,1256.03"/>
+ </edge>
+ <edge id=":446017741_4" function="internal">
+ <lane id=":446017741_4_0" index="0" speed="22.22" length="13.56" shape="768.26,1265.58 771.33,1263.83 774.16,1262.22 776.99,1260.63 780.07,1258.91"/>
+ </edge>
+ <edge id=":446017741_5" function="internal">
+ <lane id=":446017741_5_0" index="0" speed="22.22" length="4.43" shape="768.26,1265.58 771.56,1263.93 772.29,1263.75"/>
+ </edge>
+ <edge id=":446017741_10" function="internal">
+ <lane id=":446017741_10_0" index="0" speed="22.22" length="4.55" shape="772.29,1263.75 773.85,1263.35 775.12,1263.83 775.39,1265.38"/>
+ </edge>
+ <edge id=":446017741_6" function="internal">
+ <lane id=":446017741_6_0" index="0" speed="22.22" length="9.06" shape="772.11,1265.00 773.36,1256.03"/>
+ </edge>
+ <edge id=":446017741_7" function="internal">
+ <lane id=":446017741_7_0" index="0" speed="22.22" length="5.34" shape="772.11,1265.00 772.69,1263.96 774.20,1262.59 775.94,1261.40"/>
+ </edge>
+ <edge id=":446017741_11" function="internal">
+ <lane id=":446017741_11_0" index="0" speed="22.22" length="4.83" shape="775.94,1261.40 776.67,1260.91 780.07,1258.91"/>
+ </edge>
+ <edge id=":446017741_8" function="internal">
+ <lane id=":446017741_8_0" index="0" speed="22.22" length="2.41" shape="772.11,1265.00 773.07,1263.87 773.94,1263.55"/>
+ </edge>
+ <edge id=":446017741_12" function="internal">
+ <lane id=":446017741_12_0" index="0" speed="22.22" length="2.41" shape="773.94,1263.55 774.71,1264.06 775.39,1265.38"/>
+ </edge>
+ <edge id=":446017742_0" function="internal">
+ <lane id=":446017742_0_0" index="0" speed="27.78" length="6.72" shape="901.86,1194.90 898.51,1189.07"/>
+ </edge>
+ <edge id=":446017742_1" function="internal">
+ <lane id=":446017742_1_0" index="0" speed="27.78" length="6.51" shape="904.67,1193.17 901.42,1187.52"/>
+ </edge>
+ <edge id=":446017742_2" function="internal">
+ <lane id=":446017742_2_0" index="0" speed="27.78" length="6.30" shape="907.47,1191.43 904.34,1185.97"/>
+ </edge>
+ <edge id=":446017742_3" function="internal">
+ <lane id=":446017742_3_0" index="0" speed="25.00" length="5.05" shape="907.47,1191.43 906.92,1190.16 906.92,1189.03 907.47,1188.04 908.57,1187.19"/>
+ </edge>
+ <edge id=":446017742_4" function="internal">
+ <lane id=":446017742_4_0" index="0" speed="25.00" length="4.35" shape="898.29,1192.96 898.96,1192.35 899.23,1191.49 899.07,1190.40 898.51,1189.07"/>
+ </edge>
+ <edge id=":446017742_5" function="internal">
+ <lane id=":446017742_5_0" index="0" speed="22.22" length="11.79" shape="898.29,1192.96 901.12,1191.37 903.43,1190.08 905.74,1188.78 908.57,1187.19"/>
+ </edge>
+ <edge id=":446017743_0" function="internal">
+ <lane id=":446017743_0_0" index="0" speed="25.00" length="5.04" shape="917.84,1178.34 918.65,1179.47 919.62,1180.05 920.75,1180.10 922.05,1179.59"/>
+ </edge>
+ <edge id=":446017743_1" function="internal">
+ <lane id=":446017743_1_0" index="0" speed="27.78" length="6.92" shape="917.84,1178.34 920.88,1184.55"/>
+ </edge>
+ <edge id=":446017743_2" function="internal">
+ <lane id=":446017743_2_0" index="0" speed="27.78" length="6.77" shape="914.91,1179.85 917.89,1185.94"/>
+ </edge>
+ <edge id=":446017743_3" function="internal">
+ <lane id=":446017743_3_0" index="0" speed="27.78" length="6.63" shape="911.98,1181.37 914.89,1187.32"/>
+ </edge>
+ <edge id=":446017743_4" function="internal">
+ <lane id=":446017743_4_0" index="0" speed="22.22" length="13.00" shape="910.72,1185.98 913.71,1184.29 916.38,1182.78 919.05,1181.28 922.05,1179.59"/>
+ </edge>
+ <edge id=":446017743_5" function="internal">
+ <lane id=":446017743_5_0" index="0" speed="25.00" length="3.17" shape="910.72,1185.98 913.30,1184.77 913.61,1184.71"/>
+ </edge>
+ <edge id=":446017743_7" function="internal">
+ <lane id=":446017743_7_0" index="0" speed="25.00" length="4.91" shape="913.61,1184.71 915.36,1184.36 916.89,1184.75 917.89,1185.94"/>
+ </edge>
+ <edge id=":446017743_6" function="internal">
+ <lane id=":446017743_6_0" index="0" speed="25.00" length="5.10" shape="910.72,1185.98 912.03,1185.46 913.17,1185.52 914.12,1186.14 914.89,1187.32"/>
+ </edge>
+ <edge id=":446017744_0" function="internal">
+ <lane id=":446017744_0_0" index="0" speed="22.22" length="11.34" shape="775.12,1299.55 773.25,1301.03 771.77,1303.13 770.66,1305.87 769.93,1309.23"/>
+ </edge>
+ <edge id=":446017744_1" function="internal">
+ <lane id=":446017744_1_0" index="0" speed="22.22" length="13.75" shape="775.12,1299.55 772.03,1301.31 769.14,1302.96 766.27,1304.62 763.20,1306.41"/>
+ </edge>
+ <edge id=":446017744_2" function="internal">
+ <lane id=":446017744_2_0" index="0" speed="22.22" length="4.45" shape="775.12,1299.55 771.77,1301.18 771.06,1301.35"/>
+ </edge>
+ <edge id=":446017744_9" function="internal">
+ <lane id=":446017744_9_0" index="0" speed="22.22" length="4.73" shape="771.06,1301.35 769.47,1301.71 768.22,1301.12 768.01,1299.42"/>
+ </edge>
+ <edge id=":446017744_3" function="internal">
+ <lane id=":446017744_3_0" index="0" speed="22.22" length="9.45" shape="771.28,1299.87 769.93,1309.23"/>
+ </edge>
+ <edge id=":446017744_4" function="internal">
+ <lane id=":446017744_4_0" index="0" speed="22.22" length="5.57" shape="771.28,1299.87 770.67,1301.02 769.12,1302.49 767.39,1303.74"/>
+ </edge>
+ <edge id=":446017744_10" function="internal">
+ <lane id=":446017744_10_0" index="0" speed="22.22" length="4.96" shape="767.39,1303.74 766.63,1304.29 763.20,1306.41"/>
+ </edge>
+ <edge id=":446017744_5" function="internal">
+ <lane id=":446017744_5_0" index="0" speed="22.22" length="2.41" shape="771.28,1299.87 770.29,1300.99 769.42,1301.28"/>
+ </edge>
+ <edge id=":446017744_11" function="internal">
+ <lane id=":446017744_11_0" index="0" speed="22.22" length="2.41" shape="769.42,1301.28 768.65,1300.76 768.01,1299.42"/>
+ </edge>
+ <edge id=":446017744_6" function="internal">
+ <lane id=":446017744_6_0" index="0" speed="22.22" length="6.24" shape="766.67,1308.75 766.71,1306.81 766.15,1305.77 764.98,1305.64 763.20,1306.41"/>
+ </edge>
+ <edge id=":446017744_7" function="internal">
+ <lane id=":446017744_7_0" index="0" speed="22.22" length="9.42" shape="766.67,1308.75 768.01,1299.42"/>
+ </edge>
+ <edge id=":446017744_8" function="internal">
+ <lane id=":446017744_8_0" index="0" speed="22.22" length="2.41" shape="766.67,1308.75 767.66,1307.64 768.54,1307.35"/>
+ </edge>
+ <edge id=":446017744_12" function="internal">
+ <lane id=":446017744_12_0" index="0" speed="22.22" length="2.41" shape="768.54,1307.35 769.29,1307.88 769.93,1309.23"/>
+ </edge>
+ <edge id=":446017746_0" function="internal">
+ <lane id=":446017746_0_0" index="0" speed="25.00" length="5.06" shape="919.57,1221.63 918.78,1220.49 917.81,1219.89 916.68,1219.84 915.38,1220.35"/>
+ </edge>
+ <edge id=":446017746_1" function="internal">
+ <lane id=":446017746_1_0" index="0" speed="27.78" length="6.28" shape="919.57,1221.63 916.63,1216.08"/>
+ </edge>
+ <edge id=":446017746_2" function="internal">
+ <lane id=":446017746_2_0" index="0" speed="27.78" length="6.45" shape="922.52,1220.16 919.50,1214.46"/>
+ </edge>
+ <edge id=":446017746_3" function="internal">
+ <lane id=":446017746_3_0" index="0" speed="22.22" length="9.58" shape="923.73,1215.66 915.38,1220.35"/>
+ </edge>
+ <edge id=":446017746_4" function="internal">
+ <lane id=":446017746_4_0" index="0" speed="25.00" length="5.01" shape="923.73,1215.66 922.45,1216.15 921.32,1216.12 920.34,1215.55 919.50,1214.46"/>
+ </edge>
+ <edge id=":446017747_0" function="internal">
+ <lane id=":446017747_0_0" index="0" speed="25.00" length="5.29" shape="934.27,1209.75 933.13,1210.62 932.53,1211.66 932.47,1212.86 932.95,1214.23"/>
+ </edge>
+ <edge id=":446017747_1" function="internal">
+ <lane id=":446017747_1_0" index="0" speed="22.22" length="9.69" shape="934.27,1209.75 925.82,1214.49"/>
+ </edge>
+ <edge id=":446017747_2" function="internal">
+ <lane id=":446017747_2_0" index="0" speed="27.78" length="6.49" shape="930.10,1208.40 932.95,1214.23"/>
+ </edge>
+ <edge id=":446017747_3" function="internal">
+ <lane id=":446017747_3_0" index="0" speed="27.78" length="6.64" shape="927.10,1209.78 930.02,1215.75"/>
+ </edge>
+ <edge id=":446017747_4" function="internal">
+ <lane id=":446017747_4_0" index="0" speed="25.00" length="5.47" shape="927.10,1209.78 927.57,1211.26 927.51,1212.54 926.93,1213.62 925.82,1214.49"/>
+ </edge>
+ <edge id=":446766148_0" function="internal">
+ <lane id=":446766148_0_0" index="0" speed="22.22" length="4.82" shape="59.07,2230.05 57.59,2229.95 56.82,2229.44 56.77,2228.52 57.43,2227.19"/>
+ </edge>
+ <edge id=":446766149_0" function="internal">
+ <lane id=":446766149_0_0" index="0" speed="22.22" length="5.54" shape="676.66,1878.08 676.20,1876.53 675.40,1875.70 674.25,1875.59 672.76,1876.19"/>
+ </edge>
+ <edge id=":446766149_1" function="internal">
+ <lane id=":446766149_1_0" index="0" speed="22.22" length="10.24" shape="676.66,1878.08 676.22,1875.11 675.93,1873.01 675.68,1870.91 675.34,1867.92"/>
+ </edge>
+ <edge id=":446766149_2" function="internal">
+ <lane id=":446766149_2_0" index="0" speed="22.22" length="8.80" shape="676.66,1878.08 676.43,1874.92 676.81,1872.65 677.79,1871.29 679.38,1870.82"/>
+ </edge>
+ <edge id=":446766149_3" function="internal">
+ <lane id=":446766149_3_0" index="0" speed="22.22" length="6.97" shape="679.41,1874.12 672.76,1876.19"/>
+ </edge>
+ <edge id=":446766149_4" function="internal">
+ <lane id=":446766149_4_0" index="0" speed="22.22" length="4.15" shape="679.41,1874.12 677.89,1873.75 676.70,1872.59 676.33,1871.74"/>
+ </edge>
+ <edge id=":446766149_9" function="internal">
+ <lane id=":446766149_9_0" index="0" speed="22.22" length="3.97" shape="676.33,1871.74 675.85,1870.65 675.34,1867.92"/>
+ </edge>
+ <edge id=":446766149_5" function="internal">
+ <lane id=":446766149_5_0" index="0" speed="22.22" length="2.41" shape="679.41,1874.12 678.17,1873.31 677.75,1872.49"/>
+ </edge>
+ <edge id=":446766149_10" function="internal">
+ <lane id=":446766149_10_0" index="0" speed="22.22" length="2.41" shape="677.75,1872.49 678.15,1871.66 679.38,1870.82"/>
+ </edge>
+ <edge id=":446766149_6" function="internal">
+ <lane id=":446766149_6_0" index="0" speed="22.22" length="7.23" shape="671.11,1873.33 673.08,1872.01 674.44,1870.67 675.19,1869.31 675.34,1867.92"/>
+ </edge>
+ <edge id=":446766149_7" function="internal">
+ <lane id=":446766149_7_0" index="0" speed="22.22" length="8.64" shape="671.11,1873.33 679.38,1870.82"/>
+ </edge>
+ <edge id=":446766149_8" function="internal">
+ <lane id=":446766149_8_0" index="0" speed="22.22" length="2.41" shape="671.11,1873.33 672.59,1873.43 673.36,1873.94"/>
+ </edge>
+ <edge id=":446766149_11" function="internal">
+ <lane id=":446766149_11_0" index="0" speed="22.22" length="2.41" shape="673.36,1873.94 673.42,1874.86 672.76,1876.19"/>
+ </edge>
+ <edge id=":446770956_0" function="internal">
+ <lane id=":446770956_0_0" index="0" speed="22.22" length="4.82" shape="0.79,2039.12 -0.69,2038.98 -1.45,2038.46 -1.48,2037.54 -0.79,2036.22"/>
+ </edge>
+ <edge id=":446770959_0" function="internal">
+ <lane id=":446770959_0_0" index="0" speed="22.22" length="5.00" shape="694.32,1682.82 695.69,1682.83 696.73,1682.39 697.45,1681.52 697.83,1680.20"/>
+ </edge>
+ <edge id=":446770959_1" function="internal">
+ <lane id=":446770959_1_0" index="0" speed="22.22" length="2.41" shape="694.32,1682.82 695.42,1683.82 695.71,1684.70"/>
+ </edge>
+ <edge id=":446770959_4" function="internal">
+ <lane id=":446770959_4_0" index="0" speed="22.22" length="2.41" shape="695.71,1684.70 695.19,1685.45 693.84,1686.09"/>
+ </edge>
+ <edge id=":446770959_2" function="internal">
+ <lane id=":446770959_2_0" index="0" speed="22.22" length="5.01" shape="696.47,1689.60 696.47,1688.23 696.04,1687.19 695.16,1686.48 693.84,1686.09"/>
+ </edge>
+ <edge id=":446770959_3" function="internal">
+ <lane id=":446770959_3_0" index="0" speed="22.22" length="9.50" shape="696.47,1689.60 697.83,1680.20"/>
+ </edge>
+ <edge id=":450564002_0" function="internal">
+ <lane id=":450564002_0_0" index="0" speed="22.22" length="5.47" shape="787.66,2466.00 788.09,2467.52 788.88,2468.36 790.02,2468.52 791.52,2468.00"/>
+ </edge>
+ <edge id=":450564002_1" function="internal">
+ <lane id=":450564002_1_0" index="0" speed="22.22" length="7.95" shape="787.66,2466.00 788.71,2473.87"/>
+ </edge>
+ <edge id=":450564002_2" function="internal">
+ <lane id=":450564002_2_0" index="0" speed="22.22" length="7.93" shape="784.78,2472.17 791.52,2468.00"/>
+ </edge>
+ <edge id=":450564002_3" function="internal">
+ <lane id=":450564002_3_0" index="0" speed="22.22" length="5.76" shape="784.78,2472.17 786.30,2471.36 787.46,2471.37 788.26,2472.21 788.71,2473.87"/>
+ </edge>
+ <edge id=":450564003_0" function="internal">
+ <lane id=":450564003_0_0" index="0" speed="22.22" length="6.24" shape="1160.20,2280.52 1157.31,2274.98"/>
+ </edge>
+ <edge id=":450564003_1" function="internal">
+ <lane id=":450564003_1_0" index="0" speed="22.22" length="4.73" shape="1160.20,2280.52 1159.93,2279.14 1160.54,2277.72 1161.82,2276.48"/>
+ </edge>
+ <edge id=":450564003_9" function="internal">
+ <lane id=":450564003_9_0" index="0" speed="22.22" length="3.12" shape="1161.82,2276.48 1162.04,2276.26 1164.43,2274.78"/>
+ </edge>
+ <edge id=":450564003_2" function="internal">
+ <lane id=":450564003_2_0" index="0" speed="22.22" length="2.41" shape="1160.20,2280.52 1160.35,2279.04 1160.89,2278.29"/>
+ </edge>
+ <edge id=":450564003_10" function="internal">
+ <lane id=":450564003_10_0" index="0" speed="22.22" length="2.41" shape="1160.89,2278.29 1161.81,2278.27 1163.12,2278.98"/>
+ </edge>
+ <edge id=":450564003_3" function="internal">
+ <lane id=":450564003_3_0" index="0" speed="22.22" length="5.01" shape="1160.24,2273.47 1161.04,2274.59 1162.01,2275.18 1163.13,2275.24 1164.43,2274.78"/>
+ </edge>
+ <edge id=":450564003_4" function="internal">
+ <lane id=":450564003_4_0" index="0" speed="22.22" length="6.21" shape="1160.24,2273.47 1163.12,2278.98"/>
+ </edge>
+ <edge id=":450564003_5" function="internal">
+ <lane id=":450564003_5_0" index="0" speed="22.22" length="2.41" shape="1160.24,2273.47 1160.08,2274.95 1159.53,2275.69"/>
+ </edge>
+ <edge id=":450564003_11" function="internal">
+ <lane id=":450564003_11_0" index="0" speed="22.22" length="2.41" shape="1159.53,2275.69 1158.61,2275.71 1157.31,2274.98"/>
+ </edge>
+ <edge id=":450564003_6" function="internal">
+ <lane id=":450564003_6_0" index="0" speed="22.22" length="5.03" shape="1156.00,2279.20 1157.11,2278.40 1157.70,2277.43 1157.77,2276.29 1157.31,2274.98"/>
+ </edge>
+ <edge id=":450564003_7" function="internal">
+ <lane id=":450564003_7_0" index="0" speed="22.22" length="9.52" shape="1156.00,2279.20 1164.43,2274.78"/>
+ </edge>
+ <edge id=":450564003_8" function="internal">
+ <lane id=":450564003_8_0" index="0" speed="22.22" length="3.13" shape="1156.00,2279.20 1158.58,2278.08 1158.90,2278.02"/>
+ </edge>
+ <edge id=":450564003_12" function="internal">
+ <lane id=":450564003_12_0" index="0" speed="22.22" length="4.71" shape="1158.90,2278.02 1160.62,2277.67 1162.14,2277.97 1163.12,2278.98"/>
+ </edge>
+ <edge id=":450564004_0" function="internal">
+ <lane id=":450564004_0_0" index="0" speed="22.22" length="5.04" shape="1383.42,2161.40 1382.94,2160.10 1383.00,2158.97 1383.60,2158.00 1384.73,2157.21"/>
+ </edge>
+ <edge id=":450564004_1" function="internal">
+ <lane id=":450564004_1_0" index="0" speed="22.22" length="6.24" shape="1379.19,2160.09 1384.73,2157.21"/>
+ </edge>
+ <edge id=":450564005_0" function="internal">
+ <lane id=":450564005_0_0" index="0" speed="22.22" length="6.41" shape="1398.78,2146.58 1400.22,2152.83"/>
+ </edge>
+ <edge id=":450564005_1" function="internal">
+ <lane id=":450564005_1_0" index="0" speed="22.22" length="2.41" shape="1398.78,2146.58 1398.62,2148.06 1398.08,2148.81"/>
+ </edge>
+ <edge id=":450564005_4" function="internal">
+ <lane id=":450564005_4_0" index="0" speed="22.22" length="2.41" shape="1398.08,2148.81 1397.16,2148.83 1395.85,2148.11"/>
+ </edge>
+ <edge id=":450564005_2" function="internal">
+ <lane id=":450564005_2_0" index="0" speed="22.22" length="5.02" shape="1394.51,2152.29 1395.64,2151.50 1396.24,2150.54 1396.31,2149.41 1395.85,2148.11"/>
+ </edge>
+ <edge id=":450564005_3" function="internal">
+ <lane id=":450564005_3_0" index="0" speed="22.22" length="6.42" shape="1394.51,2152.29 1396.46,2151.51 1398.07,2151.35 1399.32,2151.79 1400.22,2152.83"/>
+ </edge>
+ <edge id=":450564006_0" function="internal">
+ <lane id=":450564006_0_0" index="0" speed="22.22" length="8.59" shape="1401.26,2154.77 1405.43,2162.27"/>
+ </edge>
+ <edge id=":450564006_1" function="internal">
+ <lane id=":450564006_1_0" index="0" speed="22.22" length="7.89" shape="1401.26,2154.77 1402.41,2157.33 1402.84,2159.38 1402.53,2160.89 1401.49,2161.89"/>
+ </edge>
+ <edge id=":450564006_2" function="internal">
+ <lane id=":450564006_2_0" index="0" speed="22.22" length="2.97" shape="1399.97,2158.96 1401.33,2158.63 1402.69,2159.08 1402.79,2159.17"/>
+ </edge>
+ <edge id=":450564006_4" function="internal">
+ <lane id=":450564006_4_0" index="0" speed="22.22" length="4.10" shape="1402.79,2159.17 1404.06,2160.29 1405.43,2162.27"/>
+ </edge>
+ <edge id=":450564006_3" function="internal">
+ <lane id=":450564006_3_0" index="0" speed="22.22" length="2.41" shape="1399.97,2158.96 1401.44,2159.12 1402.19,2159.66"/>
+ </edge>
+ <edge id=":450564006_5" function="internal">
+ <lane id=":450564006_5_0" index="0" speed="22.22" length="2.41" shape="1402.19,2159.66 1402.20,2160.58 1401.49,2161.89"/>
+ </edge>
+ <edge id=":452425486_0" function="internal">
+ <lane id=":452425486_0_0" index="0" speed="5.56" length="4.96" shape="1348.31,1947.87 1346.19,1943.38"/>
+ </edge>
+ <edge id=":452425486_1" function="internal">
+ <lane id=":452425486_1_0" index="0" speed="13.89" length="7.01" shape="1348.31,1947.87 1348.36,1947.08 1349.21,1946.08 1350.88,1944.87 1353.35,1943.44"/>
+ </edge>
+ <edge id=":452425486_2" function="internal">
+ <lane id=":452425486_2_0" index="0" speed="5.56" length="4.82" shape="1348.31,1947.87 1348.47,1946.39 1349.01,1945.64 1349.93,1945.62 1351.23,1946.34"/>
+ </edge>
+ <edge id=":452425486_3" function="internal">
+ <lane id=":452425486_3_0" index="0" speed="13.89" length="5.08" shape="1349.20,1942.03 1349.95,1943.21 1350.89,1943.84 1352.03,1943.92 1353.35,1943.44"/>
+ </edge>
+ <edge id=":452425486_4" function="internal">
+ <lane id=":452425486_4_0" index="0" speed="5.56" length="4.77" shape="1349.20,1942.03 1351.23,1946.34"/>
+ </edge>
+ <edge id=":452425486_5" function="internal">
+ <lane id=":452425486_5_0" index="0" speed="5.56" length="4.82" shape="1349.20,1942.03 1348.95,1943.49 1348.37,1944.21 1347.45,1944.17 1346.19,1943.38"/>
+ </edge>
+ <edge id=":452425486_6" function="internal">
+ <lane id=":452425486_6_0" index="0" speed="13.89" length="5.63" shape="1344.91,1948.28 1346.01,1947.35 1346.59,1946.22 1346.65,1944.90 1346.19,1943.38"/>
+ </edge>
+ <edge id=":452425486_7" function="internal">
+ <lane id=":452425486_7_0" index="0" speed="22.22" length="9.73" shape="1344.91,1948.28 1353.35,1943.44"/>
+ </edge>
+ <edge id=":452425486_8" function="internal">
+ <lane id=":452425486_8_0" index="0" speed="13.89" length="6.99" shape="1344.91,1948.28 1347.39,1946.88 1349.27,1946.09 1350.55,1945.91 1351.23,1946.34"/>
+ </edge>
+ <edge id=":452425487_0" function="internal">
+ <lane id=":452425487_0_0" index="0" speed="9.72" length="5.02" shape="1316.67,1877.36 1315.88,1876.23 1314.91,1875.63 1313.78,1875.57 1312.49,1876.04"/>
+ </edge>
+ <edge id=":452425487_1" function="internal">
+ <lane id=":452425487_1_0" index="0" speed="5.56" length="9.60" shape="1316.67,1877.36 1312.29,1868.81"/>
+ </edge>
+ <edge id=":452425487_2" function="internal">
+ <lane id=":452425487_2_0" index="0" speed="9.72" length="10.42" shape="1316.67,1877.36 1315.75,1874.66 1315.89,1872.30 1317.11,1870.28 1319.41,1868.60"/>
+ </edge>
+ <edge id=":452425487_3" function="internal">
+ <lane id=":452425487_3_0" index="0" speed="5.56" length="4.82" shape="1316.67,1877.36 1316.84,1875.88 1317.39,1875.14 1318.31,1875.13 1319.61,1875.85"/>
+ </edge>
+ <edge id=":452425487_4" function="internal">
+ <lane id=":452425487_4_0" index="0" speed="9.72" length="5.16" shape="1320.96,1871.51 1319.83,1872.35 1319.22,1873.35 1319.15,1874.52 1319.61,1875.85"/>
+ </edge>
+ <edge id=":452425487_5" function="internal">
+ <lane id=":452425487_5_0" index="0" speed="13.89" length="9.61" shape="1320.96,1871.51 1312.49,1876.04"/>
+ </edge>
+ <edge id=":452425487_6" function="internal">
+ <lane id=":452425487_6_0" index="0" speed="9.72" length="7.15" shape="1320.96,1871.51 1318.28,1872.49 1315.94,1872.36 1314.28,1871.34"/>
+ </edge>
+ <edge id=":452425487_16" function="internal">
+ <lane id=":452425487_16_0" index="0" speed="9.72" length="3.25" shape="1314.28,1871.34 1313.94,1871.14 1312.29,1868.81"/>
+ </edge>
+ <edge id=":452425487_7" function="internal">
+ <lane id=":452425487_7_0" index="0" speed="13.89" length="2.41" shape="1320.96,1871.51 1319.48,1871.37 1318.73,1870.83"/>
+ </edge>
+ <edge id=":452425487_17" function="internal">
+ <lane id=":452425487_17_0" index="0" speed="13.89" length="2.41" shape="1318.73,1870.83 1318.70,1869.91 1319.41,1868.60"/>
+ </edge>
+ <edge id=":452425487_8" function="internal">
+ <lane id=":452425487_8_0" index="0" speed="9.72" length="5.02" shape="1315.22,1867.30 1316.02,1868.42 1316.98,1869.01 1318.11,1869.07 1319.41,1868.60"/>
+ </edge>
+ <edge id=":452425487_9" function="internal">
+ <lane id=":452425487_9_0" index="0" speed="5.56" length="9.62" shape="1315.22,1867.30 1319.61,1875.85"/>
+ </edge>
+ <edge id=":452425487_10" function="internal">
+ <lane id=":452425487_10_0" index="0" speed="9.72" length="10.41" shape="1315.22,1867.30 1316.15,1869.99 1316.01,1872.34 1314.79,1874.36 1312.49,1876.04"/>
+ </edge>
+ <edge id=":452425487_11" function="internal">
+ <lane id=":452425487_11_0" index="0" speed="5.56" length="4.82" shape="1315.22,1867.30 1315.05,1868.78 1314.51,1869.52 1313.59,1869.53 1312.29,1868.81"/>
+ </edge>
+ <edge id=":452425487_12" function="internal">
+ <lane id=":452425487_12_0" index="0" speed="9.72" length="5.15" shape="1310.93,1873.13 1312.07,1872.30 1312.68,1871.30 1312.75,1870.14 1312.29,1868.81"/>
+ </edge>
+ <edge id=":452425487_13" function="internal">
+ <lane id=":452425487_13_0" index="0" speed="13.89" length="9.61" shape="1310.93,1873.13 1319.41,1868.60"/>
+ </edge>
+ <edge id=":452425487_14" function="internal">
+ <lane id=":452425487_14_0" index="0" speed="9.72" length="7.15" shape="1310.93,1873.13 1313.62,1872.16 1315.96,1872.28 1317.62,1873.30"/>
+ </edge>
+ <edge id=":452425487_18" function="internal">
+ <lane id=":452425487_18_0" index="0" speed="9.72" length="3.27" shape="1317.62,1873.30 1317.96,1873.52 1319.61,1875.85"/>
+ </edge>
+ <edge id=":452425487_15" function="internal">
+ <lane id=":452425487_15_0" index="0" speed="13.89" length="2.41" shape="1310.93,1873.13 1312.41,1873.28 1313.16,1873.81"/>
+ </edge>
+ <edge id=":452425487_19" function="internal">
+ <lane id=":452425487_19_0" index="0" speed="13.89" length="2.41" shape="1313.16,1873.81 1313.19,1874.73 1312.49,1876.04"/>
+ </edge>
+ <edge id=":452425488_0" function="internal">
+ <lane id=":452425488_0_0" index="0" speed="9.72" length="5.03" shape="1279.75,1805.70 1278.96,1804.59 1277.99,1804.00 1276.86,1803.93 1275.55,1804.38"/>
+ </edge>
+ <edge id=":452425488_1" function="internal">
+ <lane id=":452425488_1_0" index="0" speed="5.56" length="9.52" shape="1279.75,1805.70 1275.35,1797.27"/>
+ </edge>
+ <edge id=":452425488_2" function="internal">
+ <lane id=":452425488_2_0" index="0" speed="9.72" length="10.33" shape="1279.75,1805.70 1278.83,1803.04 1278.97,1800.70 1280.19,1798.70 1282.47,1797.04"/>
+ </edge>
+ <edge id=":452425488_3" function="internal">
+ <lane id=":452425488_3_0" index="0" speed="5.56" length="4.82" shape="1279.75,1805.70 1279.92,1804.23 1280.46,1803.48 1281.39,1803.47 1282.69,1804.19"/>
+ </edge>
+ <edge id=":452425488_4" function="internal">
+ <lane id=":452425488_4_0" index="0" speed="9.72" length="5.05" shape="1284.02,1799.95 1282.90,1800.77 1282.30,1801.75 1282.23,1802.89 1282.69,1804.19"/>
+ </edge>
+ <edge id=":452425488_5" function="internal">
+ <lane id=":452425488_5_0" index="0" speed="13.89" length="9.56" shape="1284.02,1799.95 1275.55,1804.38"/>
+ </edge>
+ <edge id=":452425488_6" function="internal">
+ <lane id=":452425488_6_0" index="0" speed="9.72" length="7.18" shape="1284.02,1799.95 1281.35,1800.91 1279.02,1800.78 1277.30,1799.74"/>
+ </edge>
+ <edge id=":452425488_16" function="internal">
+ <lane id=":452425488_16_0" index="0" speed="9.72" length="3.18" shape="1277.30,1799.74 1277.02,1799.57 1275.35,1797.27"/>
+ </edge>
+ <edge id=":452425488_7" function="internal">
+ <lane id=":452425488_7_0" index="0" speed="13.89" length="2.41" shape="1284.02,1799.95 1282.54,1799.80 1281.79,1799.27"/>
+ </edge>
+ <edge id=":452425488_17" function="internal">
+ <lane id=":452425488_17_0" index="0" speed="13.89" length="2.41" shape="1281.79,1799.27 1281.76,1798.35 1282.47,1797.04"/>
+ </edge>
+ <edge id=":452425488_8" function="internal">
+ <lane id=":452425488_8_0" index="0" speed="9.72" length="5.02" shape="1278.27,1795.73 1279.08,1796.85 1280.05,1797.44 1281.18,1797.50 1282.47,1797.04"/>
+ </edge>
+ <edge id=":452425488_9" function="internal">
+ <lane id=":452425488_9_0" index="0" speed="5.56" length="9.55" shape="1278.27,1795.73 1282.69,1804.19"/>
+ </edge>
+ <edge id=":452425488_10" function="internal">
+ <lane id=":452425488_10_0" index="0" speed="9.72" length="10.37" shape="1278.27,1795.73 1279.23,1798.40 1279.09,1800.74 1277.87,1802.73 1275.55,1804.38"/>
+ </edge>
+ <edge id=":452425488_11" function="internal">
+ <lane id=":452425488_11_0" index="0" speed="5.56" length="4.82" shape="1278.27,1795.73 1278.12,1797.21 1277.58,1797.96 1276.66,1797.98 1275.35,1797.27"/>
+ </edge>
+ <edge id=":452425488_12" function="internal">
+ <lane id=":452425488_12_0" index="0" speed="9.72" length="5.01" shape="1274.04,1801.45 1275.16,1800.65 1275.75,1799.69 1275.81,1798.56 1275.35,1797.27"/>
+ </edge>
+ <edge id=":452425488_13" function="internal">
+ <lane id=":452425488_13_0" index="0" speed="13.89" length="9.52" shape="1274.04,1801.45 1282.47,1797.04"/>
+ </edge>
+ <edge id=":452425488_14" function="internal">
+ <lane id=":452425488_14_0" index="0" speed="9.72" length="7.13" shape="1274.04,1801.45 1276.72,1800.52 1279.06,1800.66 1280.71,1801.68"/>
+ </edge>
+ <edge id=":452425488_18" function="internal">
+ <lane id=":452425488_18_0" index="0" speed="9.72" length="3.22" shape="1280.71,1801.68 1281.05,1801.89 1282.69,1804.19"/>
+ </edge>
+ <edge id=":452425488_15" function="internal">
+ <lane id=":452425488_15_0" index="0" speed="13.89" length="2.41" shape="1274.04,1801.45 1275.51,1801.62 1276.26,1802.16"/>
+ </edge>
+ <edge id=":452425488_19" function="internal">
+ <lane id=":452425488_19_0" index="0" speed="13.89" length="2.41" shape="1276.26,1802.16 1276.27,1803.08 1275.55,1804.38"/>
+ </edge>
+ <edge id=":452425489_0" function="internal">
+ <lane id=":452425489_0_0" index="0" speed="5.56" length="3.45" shape="1245.99,1739.57 1245.77,1736.13"/>
+ </edge>
+ <edge id=":452425489_1" function="internal">
+ <lane id=":452425489_1_0" index="0" speed="5.56" length="2.41" shape="1245.99,1739.57 1246.23,1738.11 1246.82,1737.39"/>
+ </edge>
+ <edge id=":452425489_4" function="internal">
+ <lane id=":452425489_4_0" index="0" speed="5.56" length="2.41" shape="1246.82,1737.39 1247.74,1737.43 1249.00,1738.22"/>
+ </edge>
+ <edge id=":452425489_2" function="internal">
+ <lane id=":452425489_2_0" index="0" speed="5.56" length="1.13" shape="1248.93,1737.10 1249.00,1738.22"/>
+ </edge>
+ <edge id=":452425489_3" function="internal">
+ <lane id=":452425489_3_0" index="0" speed="5.56" length="2.41" shape="1248.93,1737.10 1247.78,1738.04 1246.87,1738.19"/>
+ </edge>
+ <edge id=":452425489_5" function="internal">
+ <lane id=":452425489_5_0" index="0" speed="5.56" length="2.41" shape="1246.87,1738.19 1246.20,1737.56 1245.77,1736.13"/>
+ </edge>
+ <edge id=":452425490_0" function="internal">
+ <lane id=":452425490_0_0" index="0" speed="5.56" length="3.80" shape="1261.78,1705.02 1258.30,1706.54"/>
+ </edge>
+ <edge id=":452425490_1" function="internal">
+ <lane id=":452425490_1_0" index="0" speed="5.56" length="10.39" shape="1261.78,1705.02 1259.11,1706.01 1256.77,1705.90 1254.76,1704.69 1253.09,1702.38"/>
+ </edge>
+ <edge id=":452425490_2" function="internal">
+ <lane id=":452425490_2_0" index="0" speed="5.56" length="4.82" shape="1261.78,1705.02 1260.30,1704.89 1259.54,1704.36 1259.51,1703.44 1260.21,1702.12"/>
+ </edge>
+ <edge id=":452425490_3" function="internal">
+ <lane id=":452425490_3_0" index="0" speed="5.56" length="5.01" shape="1256.02,1700.84 1256.82,1701.96 1257.79,1702.54 1258.92,1702.60 1260.21,1702.12"/>
+ </edge>
+ <edge id=":452425490_4" function="internal">
+ <lane id=":452425490_4_0" index="0" speed="5.56" length="6.13" shape="1256.02,1700.84 1258.30,1706.54"/>
+ </edge>
+ <edge id=":452425490_5" function="internal">
+ <lane id=":452425490_5_0" index="0" speed="5.56" length="4.82" shape="1256.02,1700.84 1255.86,1702.32 1255.32,1703.07 1254.40,1703.09 1253.09,1702.38"/>
+ </edge>
+ <edge id=":452425490_6" function="internal">
+ <lane id=":452425490_6_0" index="0" speed="5.56" length="3.79" shape="1255.14,1705.57 1253.09,1702.38"/>
+ </edge>
+ <edge id=":452425490_7" function="internal">
+ <lane id=":452425490_7_0" index="0" speed="5.56" length="6.13" shape="1255.14,1705.57 1260.21,1702.12"/>
+ </edge>
+ <edge id=":452425490_8" function="internal">
+ <lane id=":452425490_8_0" index="0" speed="5.56" length="4.82" shape="1255.14,1705.57 1256.29,1704.63 1257.20,1704.47 1257.87,1705.11 1258.30,1706.54"/>
+ </edge>
+ <edge id=":452425491_0" function="internal">
+ <lane id=":452425491_0_0" index="0" speed="9.72" length="5.14" shape="1295.51,1686.77 1294.37,1687.61 1293.76,1688.61 1293.69,1689.77 1294.14,1691.08"/>
+ </edge>
+ <edge id=":452425491_1" function="internal">
+ <lane id=":452425491_1_0" index="0" speed="5.56" length="6.33" shape="1295.51,1686.77 1289.95,1689.79"/>
+ </edge>
+ <edge id=":452425491_2" function="internal">
+ <lane id=":452425491_2_0" index="0" speed="5.56" length="4.82" shape="1295.51,1686.77 1294.03,1686.64 1293.27,1686.11 1293.24,1685.19 1293.93,1683.87"/>
+ </edge>
+ <edge id=":452425491_3" function="internal">
+ <lane id=":452425491_3_0" index="0" speed="9.72" length="5.02" shape="1289.74,1682.59 1290.54,1683.71 1291.51,1684.30 1292.64,1684.35 1293.93,1683.87"/>
+ </edge>
+ <edge id=":452425491_4" function="internal">
+ <lane id=":452425491_4_0" index="0" speed="13.89" length="9.56" shape="1289.74,1682.59 1294.14,1691.08"/>
+ </edge>
+ <edge id=":452425491_5" function="internal">
+ <lane id=":452425491_5_0" index="0" speed="9.72" length="7.93" shape="1289.74,1682.59 1290.86,1685.18 1291.27,1687.25 1290.97,1688.78 1289.95,1689.79"/>
+ </edge>
+ <edge id=":452425491_6" function="internal">
+ <lane id=":452425491_6_0" index="0" speed="5.56" length="6.32" shape="1288.38,1686.89 1293.93,1683.87"/>
+ </edge>
+ <edge id=":452425491_7" function="internal">
+ <lane id=":452425491_7_0" index="0" speed="9.72" length="7.90" shape="1288.38,1686.89 1289.79,1686.58 1291.22,1687.18 1292.67,1688.68 1294.14,1691.08"/>
+ </edge>
+ <edge id=":452425491_8" function="internal">
+ <lane id=":452425491_8_0" index="0" speed="5.56" length="4.82" shape="1288.38,1686.89 1289.86,1687.03 1290.61,1687.55 1290.64,1688.48 1289.95,1689.79"/>
+ </edge>
+ <edge id=":452425493_0" function="internal">
+ <lane id=":452425493_0_0" index="0" speed="9.72" length="5.03" shape="1366.11,1651.85 1365.31,1650.73 1364.34,1650.14 1363.21,1650.09 1361.92,1650.57"/>
+ </edge>
+ <edge id=":452425493_1" function="internal">
+ <lane id=":452425493_1_0" index="0" speed="13.89" length="9.54" shape="1366.11,1651.85 1361.73,1643.38"/>
+ </edge>
+ <edge id=":452425493_2" function="internal">
+ <lane id=":452425493_2_0" index="0" speed="9.72" length="7.88" shape="1366.11,1651.85 1364.99,1649.26 1364.58,1647.21 1364.89,1645.69 1365.91,1644.71"/>
+ </edge>
+ <edge id=":452425493_3" function="internal">
+ <lane id=":452425493_3_0" index="0" speed="5.56" length="6.24" shape="1367.43,1647.64 1361.92,1650.57"/>
+ </edge>
+ <edge id=":452425493_4" function="internal">
+ <lane id=":452425493_4_0" index="0" speed="9.72" length="7.85" shape="1367.43,1647.64 1366.04,1647.91 1364.62,1647.29 1363.19,1645.78 1361.73,1643.38"/>
+ </edge>
+ <edge id=":452425493_5" function="internal">
+ <lane id=":452425493_5_0" index="0" speed="5.56" length="4.82" shape="1367.43,1647.64 1365.95,1647.48 1365.20,1646.93 1365.19,1646.01 1365.91,1644.71"/>
+ </edge>
+ <edge id=":452425493_6" function="internal">
+ <lane id=":452425493_6_0" index="0" speed="9.72" length="5.12" shape="1360.34,1647.67 1361.48,1646.83 1362.09,1645.83 1362.18,1644.68 1361.73,1643.38"/>
+ </edge>
+ <edge id=":452425493_7" function="internal">
+ <lane id=":452425493_7_0" index="0" speed="5.56" length="6.31" shape="1360.34,1647.67 1365.91,1644.71"/>
+ </edge>
+ <edge id=":452425493_8" function="internal">
+ <lane id=":452425493_8_0" index="0" speed="5.56" length="4.82" shape="1360.34,1647.67 1361.82,1647.80 1362.58,1648.33 1362.61,1649.25 1361.92,1650.57"/>
+ </edge>
+ <edge id=":452425497_0" function="internal">
+ <lane id=":452425497_0_0" index="0" speed="5.56" length="5.00" shape="1469.87,1598.11 1469.07,1596.99 1468.11,1596.40 1466.98,1596.33 1465.69,1596.78"/>
+ </edge>
+ <edge id=":452425497_1" function="internal">
+ <lane id=":452425497_1_0" index="0" speed="5.56" length="6.95" shape="1469.87,1598.11 1468.67,1595.58 1468.01,1593.67 1467.91,1592.37 1468.37,1591.68"/>
+ </edge>
+ <edge id=":452425497_2" function="internal">
+ <lane id=":452425497_2_0" index="0" speed="5.56" length="4.82" shape="1469.87,1598.11 1470.03,1596.63 1470.57,1595.88 1471.49,1595.86 1472.79,1596.58"/>
+ </edge>
+ <edge id=":452425497_3" function="internal">
+ <lane id=":452425497_3_0" index="0" speed="5.56" length="3.25" shape="1470.87,1594.09 1471.17,1594.15 1471.60,1594.58 1472.14,1595.39 1472.79,1596.58"/>
+ </edge>
+ <edge id=":452425497_4" function="internal">
+ <lane id=":452425497_4_0" index="0" speed="5.56" length="5.84" shape="1470.87,1594.09 1465.69,1596.78"/>
+ </edge>
+ <edge id=":452425497_5" function="internal">
+ <lane id=":452425497_5_0" index="0" speed="5.56" length="5.08" shape="1470.87,1594.09 1469.34,1594.43 1468.41,1594.13 1468.09,1593.22 1468.37,1591.68"/>
+ </edge>
+ <edge id=":452425497_6" function="internal">
+ <lane id=":452425497_6_0" index="0" speed="5.56" length="4.73" shape="1464.17,1593.85 1468.37,1591.68"/>
+ </edge>
+ <edge id=":452425497_7" function="internal">
+ <lane id=":452425497_7_0" index="0" speed="5.56" length="10.31" shape="1464.17,1593.85 1466.83,1592.92 1469.16,1593.07 1471.15,1594.28 1472.79,1596.58"/>
+ </edge>
+ <edge id=":452425497_8" function="internal">
+ <lane id=":452425497_8_0" index="0" speed="5.56" length="4.82" shape="1464.17,1593.85 1465.65,1594.02 1466.39,1594.56 1466.41,1595.48 1465.69,1596.78"/>
+ </edge>
+ <edge id=":452425499_0" function="internal">
+ <lane id=":452425499_0_0" index="0" speed="5.56" length="4.35" shape="1208.00,1667.83 1206.94,1667.47 1206.04,1666.91 1205.30,1666.16 1204.71,1665.21"/>
+ </edge>
+ <edge id=":452425499_1" function="internal">
+ <lane id=":452425499_1_0" index="0" speed="5.56" length="2.41" shape="1208.00,1667.83 1206.98,1666.75 1206.77,1665.85"/>
+ </edge>
+ <edge id=":452425499_4" function="internal">
+ <lane id=":452425499_4_0" index="0" speed="5.56" length="2.41" shape="1206.77,1665.85 1207.36,1665.14 1208.75,1664.62"/>
+ </edge>
+ <edge id=":452425499_2" function="internal">
+ <lane id=":452425499_2_0" index="0" speed="5.56" length="1.42" shape="1207.68,1663.76 1207.87,1664.07 1208.11,1664.32 1208.41,1664.50 1208.75,1664.62"/>
+ </edge>
+ <edge id=":452425499_3" function="internal">
+ <lane id=":452425499_3_0" index="0" speed="5.56" length="2.41" shape="1207.68,1663.76 1207.48,1665.24 1206.92,1665.97"/>
+ </edge>
+ <edge id=":452425499_5" function="internal">
+ <lane id=":452425499_5_0" index="0" speed="5.56" length="2.41" shape="1206.92,1665.97 1206.00,1665.96 1204.71,1665.21"/>
+ </edge>
+ <edge id=":452425500_0" function="internal">
+ <lane id=":452425500_0_0" index="0" speed="13.89" length="5.05" shape="1176.17,1606.78 1175.38,1605.62 1174.43,1605.02 1173.29,1604.96 1171.99,1605.45"/>
+ </edge>
+ <edge id=":452425500_1" function="internal">
+ <lane id=":452425500_1_0" index="0" speed="5.56" length="6.26" shape="1176.17,1606.78 1173.33,1601.20"/>
+ </edge>
+ <edge id=":452425500_2" function="internal">
+ <lane id=":452425500_2_0" index="0" speed="5.56" length="4.82" shape="1176.17,1606.78 1176.37,1605.30 1176.93,1604.57 1177.85,1604.58 1179.13,1605.33"/>
+ </edge>
+ <edge id=":452425500_3" function="internal">
+ <lane id=":452425500_3_0" index="0" speed="13.89" length="5.18" shape="1180.43,1600.95 1179.32,1601.75 1178.73,1602.75 1178.67,1603.95 1179.13,1605.33"/>
+ </edge>
+ <edge id=":452425500_4" function="internal">
+ <lane id=":452425500_4_0" index="0" speed="22.22" length="9.56" shape="1180.43,1600.95 1171.99,1605.45"/>
+ </edge>
+ <edge id=":452425500_5" function="internal">
+ <lane id=":452425500_5_0" index="0" speed="13.89" length="7.82" shape="1180.43,1600.95 1177.86,1602.07 1175.82,1602.48 1174.31,1602.19 1173.33,1601.20"/>
+ </edge>
+ <edge id=":452425500_6" function="internal">
+ <lane id=":452425500_6_0" index="0" speed="5.56" length="6.38" shape="1176.24,1599.65 1179.13,1605.33"/>
+ </edge>
+ <edge id=":452425500_7" function="internal">
+ <lane id=":452425500_7_0" index="0" speed="13.89" length="7.90" shape="1176.24,1599.65 1176.51,1601.02 1175.89,1602.44 1174.39,1603.92 1171.99,1605.45"/>
+ </edge>
+ <edge id=":452425500_8" function="internal">
+ <lane id=":452425500_8_0" index="0" speed="5.56" length="4.82" shape="1176.24,1599.65 1176.09,1601.13 1175.56,1601.88 1174.63,1601.90 1173.33,1601.20"/>
+ </edge>
+ <edge id=":452425501_0" function="internal">
+ <lane id=":452425501_0_0" index="0" speed="5.56" length="6.33" shape="1170.11,1595.15 1167.18,1589.54"/>
+ </edge>
+ <edge id=":452425501_1" function="internal">
+ <lane id=":452425501_1_0" index="0" speed="13.89" length="7.90" shape="1170.11,1595.15 1169.81,1593.73 1170.42,1592.30 1171.93,1590.87 1174.35,1589.42"/>
+ </edge>
+ <edge id=":452425501_2" function="internal">
+ <lane id=":452425501_2_0" index="0" speed="5.56" length="4.82" shape="1170.11,1595.15 1170.26,1593.67 1170.79,1592.92 1171.71,1592.89 1173.02,1593.60"/>
+ </edge>
+ <edge id=":452425501_3" function="internal">
+ <lane id=":452425501_3_0" index="0" speed="13.89" length="5.07" shape="1170.12,1588.03 1170.92,1589.17 1171.89,1589.78 1173.03,1589.86 1174.35,1589.42"/>
+ </edge>
+ <edge id=":452425501_4" function="internal">
+ <lane id=":452425501_4_0" index="0" speed="5.56" length="6.28" shape="1170.12,1588.03 1173.02,1593.60"/>
+ </edge>
+ <edge id=":452425501_5" function="internal">
+ <lane id=":452425501_5_0" index="0" speed="5.56" length="4.82" shape="1170.12,1588.03 1169.95,1589.51 1169.40,1590.26 1168.48,1590.26 1167.18,1589.54"/>
+ </edge>
+ <edge id=":452425501_6" function="internal">
+ <lane id=":452425501_6_0" index="0" speed="13.89" length="5.01" shape="1165.81,1593.70 1166.94,1592.92 1167.55,1591.97 1167.63,1590.84 1167.18,1589.54"/>
+ </edge>
+ <edge id=":452425501_7" function="internal">
+ <lane id=":452425501_7_0" index="0" speed="22.22" length="9.55" shape="1165.81,1593.70 1174.35,1589.42"/>
+ </edge>
+ <edge id=":452425501_8" function="internal">
+ <lane id=":452425501_8_0" index="0" speed="13.89" length="7.93" shape="1165.81,1593.70 1168.42,1592.62 1170.49,1592.25 1172.02,1592.57 1173.02,1593.60"/>
+ </edge>
+ <edge id=":452425502_0" function="internal">
+ <lane id=":452425502_0_0" index="0" speed="13.89" length="5.04" shape="953.93,1202.33 953.13,1201.20 952.16,1200.61 951.03,1200.57 949.73,1201.07"/>
+ </edge>
+ <edge id=":452425502_1" function="internal">
+ <lane id=":452425502_1_0" index="0" speed="5.56" length="6.42" shape="953.93,1202.33 950.97,1196.62"/>
+ </edge>
+ <edge id=":452425502_2" function="internal">
+ <lane id=":452425502_2_0" index="0" speed="5.56" length="2.41" shape="953.93,1202.33 954.10,1200.85 954.64,1200.10"/>
+ </edge>
+ <edge id=":452425502_9" function="internal">
+ <lane id=":452425502_9_0" index="0" speed="5.56" length="2.41" shape="954.64,1200.10 955.56,1200.09 956.86,1200.81"/>
+ </edge>
+ <edge id=":452425502_3" function="internal">
+ <lane id=":452425502_3_0" index="0" speed="13.89" length="5.24" shape="958.11,1196.34 957.00,1197.20 956.42,1198.24 956.38,1199.44 956.86,1200.81"/>
+ </edge>
+ <edge id=":452425502_4" function="internal">
+ <lane id=":452425502_4_0" index="0" speed="22.22" length="9.62" shape="958.11,1196.34 949.73,1201.07"/>
+ </edge>
+ <edge id=":452425502_5" function="internal">
+ <lane id=":452425502_5_0" index="0" speed="13.89" length="3.18" shape="958.11,1196.34 955.55,1197.56 955.21,1197.63"/>
+ </edge>
+ <edge id=":452425502_10" function="internal">
+ <lane id=":452425502_10_0" index="0" speed="13.89" length="4.78" shape="955.21,1197.63 953.51,1198.01 951.99,1197.70 950.97,1196.62"/>
+ </edge>
+ <edge id=":452425502_6" function="internal">
+ <lane id=":452425502_6_0" index="0" speed="5.56" length="6.43" shape="953.90,1195.10 956.86,1200.81"/>
+ </edge>
+ <edge id=":452425502_7" function="internal">
+ <lane id=":452425502_7_0" index="0" speed="13.89" length="4.82" shape="953.90,1195.10 954.19,1196.53 953.59,1198.00 952.35,1199.27"/>
+ </edge>
+ <edge id=":452425502_11" function="internal">
+ <lane id=":452425502_11_0" index="0" speed="13.89" length="3.18" shape="952.35,1199.27 952.11,1199.51 949.73,1201.07"/>
+ </edge>
+ <edge id=":452425502_8" function="internal">
+ <lane id=":452425502_8_0" index="0" speed="5.56" length="2.41" shape="953.90,1195.10 953.74,1196.58 953.20,1197.33"/>
+ </edge>
+ <edge id=":452425502_12" function="internal">
+ <lane id=":452425502_12_0" index="0" speed="5.56" length="2.41" shape="953.20,1197.33 952.28,1197.34 950.97,1196.62"/>
+ </edge>
+ <edge id=":452446339_0" function="internal">
+ <lane id=":452446339_0_0" index="0" speed="22.22" length="0.10" shape="1304.14,2005.12 1304.14,2005.12"/>
+ </edge>
+ <edge id=":452446340_0" function="internal">
+ <lane id=":452446340_0_0" index="0" speed="25.00" length="5.41" shape="1298.91,1959.79 1299.75,1958.82 1300.12,1957.67 1300.01,1956.35 1299.44,1954.85"/>
+ </edge>
+ <edge id=":452446340_1" function="internal">
+ <lane id=":452446340_1_0" index="0" speed="25.00" length="7.81" shape="1298.91,1959.79 1300.91,1957.92 1302.15,1956.22 1302.64,1954.70 1302.38,1953.35"/>
+ </edge>
+ <edge id=":452446340_2" function="internal">
+ <lane id=":452446340_2_0" index="0" speed="22.22" length="9.22" shape="1298.91,1959.79 1306.57,1954.65"/>
+ </edge>
+ <edge id=":452446345_0" function="internal">
+ <lane id=":452446345_0_0" index="0" speed="25.00" length="5.68" shape="1313.95,1946.95 1314.95,1948.37 1316.03,1949.32 1317.20,1949.80 1318.44,1949.81"/>
+ </edge>
+ <edge id=":452446345_1" function="internal">
+ <lane id=":452446345_1_0" index="0" speed="22.22" length="9.05" shape="1309.92,1952.83 1318.44,1949.81"/>
+ </edge>
+ <edge id=":477486714_0" function="internal">
+ <lane id=":477486714_0_0" index="0" speed="27.78" length="14.69" shape="672.46,2233.72 670.14,2230.84 667.62,2228.20 665.12,2225.53 662.87,2222.61"/>
+ </edge>
+ <edge id=":477486714_1" function="internal">
+ <lane id=":477486714_1_0" index="0" speed="25.00" length="5.97" shape="672.46,2233.72 671.02,2230.95 671.08,2228.90 671.68,2228.38"/>
+ </edge>
+ <edge id=":477486714_9" function="internal">
+ <lane id=":477486714_9_0" index="0" speed="25.00" length="4.35" shape="671.68,2228.38 672.62,2227.56 675.66,2226.94"/>
+ </edge>
+ <edge id=":477486714_2" function="internal">
+ <lane id=":477486714_2_0" index="0" speed="27.78" length="10.27" shape="672.46,2233.72 670.57,2230.61 670.37,2229.13 671.86,2229.27 675.04,2231.04"/>
+ </edge>
+ <edge id=":477486714_3" function="internal">
+ <lane id=":477486714_3_0" index="0" speed="25.00" length="10.65" shape="665.62,2220.80 667.07,2222.24 669.19,2223.20 671.97,2223.67 675.43,2223.65"/>
+ </edge>
+ <edge id=":477486714_4" function="internal">
+ <lane id=":477486714_4_0" index="0" speed="27.78" length="14.02" shape="665.62,2220.80 667.66,2223.78 669.79,2226.47 672.18,2228.89 675.04,2231.04"/>
+ </edge>
+ <edge id=":477486714_5" function="internal">
+ <lane id=":477486714_5_0" index="0" speed="27.78" length="2.41" shape="665.62,2220.80 665.62,2222.29 665.15,2223.08"/>
+ </edge>
+ <edge id=":477486714_10" function="internal">
+ <lane id=":477486714_10_0" index="0" speed="27.78" length="2.41" shape="665.15,2223.08 664.24,2223.19 662.87,2222.61"/>
+ </edge>
+ <edge id=":477486714_6" function="internal">
+ <lane id=":477486714_6_0" index="0" speed="25.00" length="5.09" shape="661.83,2226.87 662.95,2226.02 663.49,2225.02 663.47,2223.89 662.87,2222.61"/>
+ </edge>
+ <edge id=":477486714_7" function="internal">
+ <lane id=":477486714_7_0" index="0" speed="22.22" length="12.73" shape="663.44,2229.76 666.78,2228.09 669.25,2227.36 671.88,2227.13 675.66,2226.94"/>
+ </edge>
+ <edge id=":477486714_8" function="internal">
+ <lane id=":477486714_8_0" index="0" speed="25.00" length="12.28" shape="663.44,2229.76 666.09,2228.76 668.90,2228.64 671.89,2229.40 675.04,2231.04"/>
+ </edge>
+ <edge id=":477486717_0" function="internal">
+ <lane id=":477486717_0_0" index="0" speed="25.00" length="5.44" shape="505.62,1976.41 504.65,1975.29 503.55,1974.72 502.31,1974.71 500.94,1975.26"/>
+ </edge>
+ <edge id=":477486717_1" function="internal">
+ <lane id=":477486717_1_0" index="0" speed="27.78" length="9.81" shape="505.62,1976.41 500.34,1968.14"/>
+ </edge>
+ <edge id=":477486717_2" function="internal">
+ <lane id=":477486717_2_0" index="0" speed="25.00" length="7.18" shape="505.62,1976.41 504.41,1973.76 504.37,1971.39 505.26,1969.73"/>
+ </edge>
+ <edge id=":477486717_16" function="internal">
+ <lane id=":477486717_16_0" index="0" speed="25.00" length="3.39" shape="505.26,1969.73 505.49,1969.31 507.78,1967.51"/>
+ </edge>
+ <edge id=":477486717_3" function="internal">
+ <lane id=":477486717_3_0" index="0" speed="27.78" length="2.41" shape="505.62,1976.41 505.64,1974.92 506.12,1974.13"/>
+ </edge>
+ <edge id=":477486717_17" function="internal">
+ <lane id=":477486717_17_0" index="0" speed="27.78" length="2.41" shape="506.12,1974.13 507.03,1974.03 508.40,1974.63"/>
+ </edge>
+ <edge id=":477486717_4" function="internal">
+ <lane id=":477486717_4_0" index="0" speed="25.00" length="5.06" shape="509.43,1970.37 508.33,1971.23 507.80,1972.23 507.82,1973.36 508.40,1974.63"/>
+ </edge>
+ <edge id=":477486717_5" function="internal">
+ <lane id=":477486717_5_0" index="0" speed="22.22" length="9.80" shape="509.43,1970.37 500.94,1975.26"/>
+ </edge>
+ <edge id=":477486717_6" function="internal">
+ <lane id=":477486717_6_0" index="0" speed="25.00" length="10.58" shape="509.43,1970.37 506.75,1971.44 504.35,1971.43 502.21,1970.33 500.34,1968.14"/>
+ </edge>
+ <edge id=":477486717_7" function="internal">
+ <lane id=":477486717_7_0" index="0" speed="22.22" length="4.82" shape="509.43,1970.37 507.95,1970.27 507.18,1969.76 507.12,1968.84 507.78,1967.51"/>
+ </edge>
+ <edge id=":477486717_8" function="internal">
+ <lane id=":477486717_8_0" index="0" speed="25.00" length="5.42" shape="503.12,1966.37 504.08,1967.49 505.18,1968.06 506.41,1968.06 507.78,1967.51"/>
+ </edge>
+ <edge id=":477486717_9" function="internal">
+ <lane id=":477486717_9_0" index="0" speed="27.78" length="9.79" shape="503.12,1966.37 508.40,1974.63"/>
+ </edge>
+ <edge id=":477486717_10" function="internal">
+ <lane id=":477486717_10_0" index="0" speed="25.00" length="7.14" shape="503.12,1966.37 504.32,1969.02 504.35,1971.39 503.46,1973.03"/>
+ </edge>
+ <edge id=":477486717_18" function="internal">
+ <lane id=":477486717_18_0" index="0" speed="25.00" length="3.40" shape="503.46,1973.03 503.22,1973.47 500.94,1975.26"/>
+ </edge>
+ <edge id=":477486717_11" function="internal">
+ <lane id=":477486717_11_0" index="0" speed="27.78" length="2.41" shape="503.12,1966.37 503.09,1967.86 502.61,1968.65"/>
+ </edge>
+ <edge id=":477486717_19" function="internal">
+ <lane id=":477486717_19_0" index="0" speed="27.78" length="2.41" shape="502.61,1968.65 501.70,1968.75 500.34,1968.14"/>
+ </edge>
+ <edge id=":477486717_12" function="internal">
+ <lane id=":477486717_12_0" index="0" speed="25.00" length="5.05" shape="499.29,1972.40 500.39,1971.54 500.93,1970.55 500.91,1969.41 500.34,1968.14"/>
+ </edge>
+ <edge id=":477486717_13" function="internal">
+ <lane id=":477486717_13_0" index="0" speed="22.22" length="9.80" shape="499.29,1972.40 507.78,1967.51"/>
+ </edge>
+ <edge id=":477486717_14" function="internal">
+ <lane id=":477486717_14_0" index="0" speed="25.00" length="10.58" shape="499.29,1972.40 501.96,1971.33 504.37,1971.35 506.51,1972.44 508.40,1974.63"/>
+ </edge>
+ <edge id=":477486717_15" function="internal">
+ <lane id=":477486717_15_0" index="0" speed="22.22" length="4.82" shape="499.29,1972.40 500.77,1972.50 501.54,1973.01 501.60,1973.93 500.94,1975.26"/>
+ </edge>
+ <edge id=":477486719_0" function="internal">
+ <lane id=":477486719_0_0" index="0" speed="25.00" length="5.72" shape="406.80,1821.31 405.81,1820.16 404.65,1819.58 403.33,1819.56 401.85,1820.11"/>
+ </edge>
+ <edge id=":477486719_1" function="internal">
+ <lane id=":477486719_1_0" index="0" speed="27.78" length="9.97" shape="406.80,1821.31 401.37,1812.95"/>
+ </edge>
+ <edge id=":477486719_2" function="internal">
+ <lane id=":477486719_2_0" index="0" speed="25.00" length="7.14" shape="406.80,1821.31 405.60,1818.65 405.56,1816.27 406.45,1814.66"/>
+ </edge>
+ <edge id=":477486719_16" function="internal">
+ <lane id=":477486719_16_0" index="0" speed="25.00" length="3.45" shape="406.45,1814.66 406.70,1814.19 409.02,1812.41"/>
+ </edge>
+ <edge id=":477486719_3" function="internal">
+ <lane id=":477486719_3_0" index="0" speed="27.78" length="2.41" shape="406.80,1821.31 406.83,1819.82 407.31,1819.03"/>
+ </edge>
+ <edge id=":477486719_17" function="internal">
+ <lane id=":477486719_17_0" index="0" speed="27.78" length="2.41" shape="407.31,1819.03 408.22,1818.93 409.59,1819.53"/>
+ </edge>
+ <edge id=":477486719_4" function="internal">
+ <lane id=":477486719_4_0" index="0" speed="25.00" length="5.06" shape="410.64,1815.28 409.54,1816.13 408.99,1817.13 409.01,1818.26 409.59,1819.53"/>
+ </edge>
+ <edge id=":477486719_5" function="internal">
+ <lane id=":477486719_5_0" index="0" speed="22.22" length="10.04" shape="410.64,1815.28 408.05,1816.74 406.27,1817.73 404.47,1818.71 401.85,1820.11"/>
+ </edge>
+ <edge id=":477486719_6" function="internal">
+ <lane id=":477486719_6_0" index="0" speed="25.00" length="10.74" shape="410.64,1815.28 407.95,1816.33 405.51,1816.29 403.32,1815.16 401.37,1812.95"/>
+ </edge>
+ <edge id=":477486719_7" function="internal">
+ <lane id=":477486719_7_0" index="0" speed="22.22" length="4.82" shape="410.64,1815.28 409.16,1815.17 408.40,1814.65 408.35,1813.73 409.02,1812.41"/>
+ </edge>
+ <edge id=":477486719_8" function="internal">
+ <lane id=":477486719_8_0" index="0" speed="25.00" length="5.68" shape="404.13,1811.13 405.16,1812.31 406.32,1812.92 407.61,1812.95 409.02,1812.41"/>
+ </edge>
+ <edge id=":477486719_9" function="internal">
+ <lane id=":477486719_9_0" index="0" speed="27.78" length="10.02" shape="404.13,1811.13 405.76,1813.61 406.88,1815.31 407.99,1817.03 409.59,1819.53"/>
+ </edge>
+ <edge id=":477486719_10" function="internal">
+ <lane id=":477486719_10_0" index="0" speed="25.00" length="7.24" shape="404.13,1811.13 405.41,1813.84 405.45,1816.25 404.55,1817.84"/>
+ </edge>
+ <edge id=":477486719_18" function="internal">
+ <lane id=":477486719_18_0" index="0" speed="25.00" length="3.57" shape="404.55,1817.84 404.27,1818.33 401.85,1820.11"/>
+ </edge>
+ <edge id=":477486719_11" function="internal">
+ <lane id=":477486719_11_0" index="0" speed="27.78" length="2.41" shape="404.13,1811.13 404.12,1812.62 403.66,1813.41"/>
+ </edge>
+ <edge id=":477486719_19" function="internal">
+ <lane id=":477486719_19_0" index="0" speed="27.78" length="2.41" shape="403.66,1813.41 402.74,1813.53 401.37,1812.95"/>
+ </edge>
+ <edge id=":477486719_12" function="internal">
+ <lane id=":477486719_12_0" index="0" speed="25.00" length="5.12" shape="400.29,1817.20 401.44,1816.36 402.00,1815.37 401.98,1814.23 401.37,1812.95"/>
+ </edge>
+ <edge id=":477486719_13" function="internal">
+ <lane id=":477486719_13_0" index="0" speed="22.22" length="9.95" shape="400.29,1817.20 409.02,1812.41"/>
+ </edge>
+ <edge id=":477486719_14" function="internal">
+ <lane id=":477486719_14_0" index="0" speed="25.00" length="10.75" shape="400.29,1817.20 403.06,1816.18 405.53,1816.23 407.70,1817.35 409.59,1819.53"/>
+ </edge>
+ <edge id=":477486719_15" function="internal">
+ <lane id=":477486719_15_0" index="0" speed="22.22" length="4.82" shape="400.29,1817.20 401.77,1817.34 402.53,1817.88 402.55,1818.80 401.85,1820.11"/>
+ </edge>
+ <edge id=":484282948_0" function="internal">
+ <lane id=":484282948_0_0" index="0" speed="22.22" length="4.82" shape="576.52,948.34 575.16,947.74 574.61,947.00 574.88,946.11 575.96,945.09"/>
+ </edge>
+ <edge id=":484282955_0" function="internal">
+ <lane id=":484282955_0_0" index="0" speed="22.22" length="6.46" shape="667.87,932.66 661.51,933.80"/>
+ </edge>
+ <edge id=":484282955_1" function="internal">
+ <lane id=":484282955_1_0" index="0" speed="22.22" length="2.41" shape="667.87,932.66 666.50,932.09 665.94,931.35"/>
+ </edge>
+ <edge id=":484282955_6" function="internal">
+ <lane id=":484282955_6_0" index="0" speed="22.22" length="2.41" shape="665.94,931.35 666.19,930.47 667.25,929.42"/>
+ </edge>
+ <edge id=":484282955_2" function="internal">
+ <lane id=":484282955_2_0" index="0" speed="22.22" length="5.57" shape="662.88,926.64 663.80,928.05 664.83,928.98 665.98,929.44 667.25,929.42"/>
+ </edge>
+ <edge id=":484282955_3" function="internal">
+ <lane id=":484282955_3_0" index="0" speed="22.22" length="8.86" shape="662.88,926.64 664.04,929.47 664.20,931.61 663.36,933.05 661.51,933.80"/>
+ </edge>
+ <edge id=":484282955_4" function="internal">
+ <lane id=":484282955_4_0" index="0" speed="22.22" length="6.39" shape="660.95,930.54 667.25,929.42"/>
+ </edge>
+ <edge id=":484282955_5" function="internal">
+ <lane id=":484282955_5_0" index="0" speed="22.22" length="2.41" shape="660.95,930.54 662.31,931.15 662.86,931.89"/>
+ </edge>
+ <edge id=":484282955_7" function="internal">
+ <lane id=":484282955_7_0" index="0" speed="22.22" length="2.41" shape="662.86,931.89 662.59,932.77 661.51,933.80"/>
+ </edge>
+ <edge id=":484282961_0" function="internal">
+ <lane id=":484282961_0_0" index="0" speed="22.22" length="4.82" shape="514.23,1034.65 512.87,1034.06 512.31,1033.32 512.57,1032.44 513.64,1031.40"/>
+ </edge>
+ <edge id=":503954409_0" function="internal">
+ <lane id=":503954409_0_0" index="0" speed="22.22" length="5.50" shape="802.53,2583.43 802.95,2584.97 803.73,2585.82 804.87,2585.97 806.37,2585.44"/>
+ </edge>
+ <edge id=":503954409_1" function="internal">
+ <lane id=":503954409_1_0" index="0" speed="22.22" length="6.42" shape="802.53,2583.43 803.33,2589.79"/>
+ </edge>
+ <edge id=":538265860_0" function="internal">
+ <lane id=":538265860_0_0" index="0" speed="22.22" length="0.72" shape="724.40,778.36 724.87,778.91"/>
+ </edge>
+ <edge id=":538265864_0" function="internal">
+ <lane id=":538265864_0_0" index="0" speed="22.22" length="6.42" shape="743.69,920.70 742.86,919.71 741.62,919.13 739.96,918.96 737.89,919.19"/>
+ </edge>
+ <edge id=":538265864_1" function="internal">
+ <lane id=":538265864_1_0" index="0" speed="22.22" length="9.79" shape="743.69,920.70 739.15,912.03"/>
+ </edge>
+ <edge id=":538265864_2" function="internal">
+ <lane id=":538265864_2_0" index="0" speed="22.22" length="5.39" shape="737.26,915.95 738.73,915.45 739.53,914.63 739.67,913.48 739.15,912.03"/>
+ </edge>
+ <edge id=":538265864_3" function="internal">
+ <lane id=":538265864_3_0" index="0" speed="22.22" length="2.41" shape="737.26,915.95 738.63,916.53 739.19,917.26"/>
+ </edge>
+ <edge id=":538265864_4" function="internal">
+ <lane id=":538265864_4_0" index="0" speed="22.22" length="2.41" shape="739.19,917.26 738.94,918.15 737.89,919.19"/>
+ </edge>
+ <edge id=":538265866_0" function="internal">
+ <lane id=":538265866_0_0" index="0" speed="22.22" length="0.48" shape="687.64,813.72 687.48,813.26"/>
+ </edge>
+ <edge id=":538265870_0" function="internal">
+ <lane id=":538265870_0_0" index="0" speed="22.22" length="5.14" shape="905.12,1229.86 904.38,1228.64 903.44,1227.99 902.30,1227.93 900.97,1228.45"/>
+ </edge>
+ <edge id=":538265870_1" function="internal">
+ <lane id=":538265870_1_0" index="0" speed="22.22" length="4.32" shape="904.73,1226.32 900.97,1228.45"/>
+ </edge>
+ <edge id=":538810722_0" function="internal">
+ <lane id=":538810722_0_0" index="0" speed="22.22" length="0.10" shape="934.86,658.06 934.86,658.06"/>
+ </edge>
+ <edge id=":538810724_0" function="internal">
+ <lane id=":538810724_0_0" index="0" speed="22.22" length="6.31" shape="905.15,939.07 902.24,933.47"/>
+ </edge>
+ <edge id=":538810724_1" function="internal">
+ <lane id=":538810724_1_0" index="0" speed="22.22" length="5.14" shape="905.15,939.07 904.69,937.75 904.75,936.58 905.33,935.57 906.45,934.71"/>
+ </edge>
+ <edge id=":538810724_2" function="internal">
+ <lane id=":538810724_2_0" index="0" speed="22.22" length="5.12" shape="900.95,937.81 902.06,936.96 902.65,935.96 902.71,934.80 902.24,933.47"/>
+ </edge>
+ <edge id=":538810724_3" function="internal">
+ <lane id=":538810724_3_0" index="0" speed="22.22" length="6.31" shape="900.95,937.81 906.45,934.71"/>
+ </edge>
+ <edge id=":538810726_0" function="internal">
+ <lane id=":538810726_0_0" index="0" speed="22.22" length="5.04" shape="969.51,895.18 970.32,896.31 971.29,896.89 972.42,896.93 973.71,896.42"/>
+ </edge>
+ <edge id=":538810726_1" function="internal">
+ <lane id=":538810726_1_0" index="0" speed="22.22" length="6.32" shape="969.51,895.18 972.43,900.78"/>
+ </edge>
+ <edge id=":538810726_2" function="internal">
+ <lane id=":538810726_2_0" index="0" speed="22.22" length="6.32" shape="968.22,899.55 973.71,896.42"/>
+ </edge>
+ <edge id=":538810726_3" function="internal">
+ <lane id=":538810726_3_0" index="0" speed="22.22" length="5.04" shape="968.22,899.55 969.51,899.04 970.65,899.07 971.62,899.66 972.43,900.78"/>
+ </edge>
+ <edge id=":543360161_0" function="internal">
+ <lane id=":543360161_0_0" index="0" speed="16.67" length="5.02" shape="1596.39,1840.08 1595.59,1838.96 1594.62,1838.37 1593.49,1838.31 1592.20,1838.79"/>
+ </edge>
+ <edge id=":543360161_1" function="internal">
+ <lane id=":543360161_1_0" index="0" speed="5.56" length="6.25" shape="1596.39,1840.08 1593.50,1834.54"/>
+ </edge>
+ <edge id=":543360161_2" function="internal">
+ <lane id=":543360161_2_0" index="0" speed="5.56" length="4.82" shape="1596.39,1840.08 1596.55,1838.60 1597.09,1837.85 1598.01,1837.84 1599.32,1838.55"/>
+ </edge>
+ <edge id=":543360161_3" function="internal">
+ <lane id=":543360161_3_0" index="0" speed="16.67" length="5.04" shape="1600.61,1834.32 1599.50,1835.12 1598.91,1836.10 1598.85,1837.24 1599.32,1838.55"/>
+ </edge>
+ <edge id=":543360161_4" function="internal">
+ <lane id=":543360161_4_0" index="0" speed="27.78" length="9.52" shape="1600.61,1834.32 1592.20,1838.79"/>
+ </edge>
+ <edge id=":543360161_5" function="internal">
+ <lane id=":543360161_5_0" index="0" speed="16.67" length="7.85" shape="1600.61,1834.32 1598.04,1835.45 1596.00,1835.86 1594.48,1835.56 1593.50,1834.54"/>
+ </edge>
+ <edge id=":543360161_6" function="internal">
+ <lane id=":543360161_6_0" index="0" speed="5.56" length="6.25" shape="1596.43,1833.01 1599.32,1838.55"/>
+ </edge>
+ <edge id=":543360161_7" function="internal">
+ <lane id=":543360161_7_0" index="0" speed="16.67" length="7.88" shape="1596.43,1833.01 1596.70,1834.39 1596.08,1835.82 1594.58,1837.28 1592.20,1838.79"/>
+ </edge>
+ <edge id=":543360161_8" function="internal">
+ <lane id=":543360161_8_0" index="0" speed="5.56" length="4.82" shape="1596.43,1833.01 1596.27,1834.49 1595.73,1835.24 1594.81,1835.25 1593.50,1834.54"/>
+ </edge>
+ <edge id=":552842254_0" function="internal">
+ <lane id=":552842254_0_0" index="0" speed="25.00" length="2.56" shape="454.23,1469.83 454.35,1470.10 454.12,1470.47 453.55,1470.94 452.62,1471.51"/>
+ </edge>
+ <edge id=":552842254_1" function="internal">
+ <lane id=":552842254_1_0" index="0" speed="25.00" length="12.29" shape="454.23,1469.83 452.50,1467.84 452.57,1465.66 454.44,1463.30 458.11,1460.76"/>
+ </edge>
+ <edge id=":552842254_2" function="internal">
+ <lane id=":552842254_2_0" index="0" speed="22.22" length="7.51" shape="454.23,1469.83 452.04,1469.06 451.10,1467.97 451.41,1466.56 452.97,1464.84"/>
+ </edge>
+ <edge id=":552842254_3" function="internal">
+ <lane id=":552842254_3_0" index="0" speed="25.00" length="9.08" shape="461.40,1466.48 459.58,1467.12 457.57,1467.06 455.37,1466.30 452.97,1464.84"/>
+ </edge>
+ <edge id=":552842254_4" function="internal">
+ <lane id=":552842254_4_0" index="0" speed="27.78" length="10.11" shape="461.40,1466.48 458.80,1467.98 457.02,1469.01 455.23,1470.03 452.62,1471.51"/>
+ </edge>
+ <edge id=":552842254_5" function="internal">
+ <lane id=":552842254_5_0" index="0" speed="27.78" length="10.09" shape="459.75,1463.62 457.16,1465.12 455.38,1466.14 453.60,1467.16 451.00,1468.64"/>
+ </edge>
+ <edge id=":552842254_6" function="internal">
+ <lane id=":552842254_6_0" index="0" speed="27.78" length="2.41" shape="459.75,1463.62 458.27,1463.52 457.50,1463.01"/>
+ </edge>
+ <edge id=":552842254_11" function="internal">
+ <lane id=":552842254_11_0" index="0" speed="27.78" length="2.41" shape="457.50,1463.01 457.45,1462.09 458.11,1460.76"/>
+ </edge>
+ <edge id=":552842254_7" function="internal">
+ <lane id=":552842254_7_0" index="0" speed="27.78" length="10.05" shape="447.74,1462.90 450.34,1461.43 452.11,1460.41 453.88,1459.39 456.46,1457.90"/>
+ </edge>
+ <edge id=":552842254_8" function="internal">
+ <lane id=":552842254_8_0" index="0" speed="27.78" length="10.07" shape="449.37,1465.77 451.97,1464.30 453.74,1463.28 455.52,1462.26 458.11,1460.76"/>
+ </edge>
+ <edge id=":552842254_9" function="internal">
+ <lane id=":552842254_9_0" index="0" speed="25.00" length="3.85" shape="449.37,1465.77 450.62,1465.13 451.64,1464.76 452.42,1464.67 452.97,1464.84"/>
+ </edge>
+ <edge id=":552842254_10" function="internal">
+ <lane id=":552842254_10_0" index="0" speed="27.78" length="2.41" shape="449.37,1465.77 450.85,1465.88 451.62,1466.40"/>
+ </edge>
+ <edge id=":552842254_12" function="internal">
+ <lane id=":552842254_12_0" index="0" speed="27.78" length="2.41" shape="451.62,1466.40 451.67,1467.32 451.00,1468.64"/>
+ </edge>
+ <edge id=":552842255_0" function="internal">
+ <lane id=":552842255_0_0" index="0" speed="22.22" length="8.41" shape="468.41,1480.15 466.27,1478.87 464.25,1478.24 462.35,1478.25 460.57,1478.92"/>
+ </edge>
+ <edge id=":552842255_1" function="internal">
+ <lane id=":552842255_1_0" index="0" speed="22.22" length="8.08" shape="468.41,1480.15 461.89,1475.40"/>
+ </edge>
+ <edge id=":552842255_2" function="internal">
+ <lane id=":552842255_2_0" index="0" speed="22.22" length="2.41" shape="468.41,1480.15 467.90,1478.76 468.05,1477.85"/>
+ </edge>
+ <edge id=":552842255_9" function="internal">
+ <lane id=":552842255_9_0" index="0" speed="22.22" length="2.41" shape="468.05,1477.85 468.87,1477.43 470.36,1477.49"/>
+ </edge>
+ <edge id=":552842255_3" function="internal">
+ <lane id=":552842255_3_0" index="0" speed="22.22" length="5.62" shape="470.60,1473.18 469.29,1474.19 468.82,1475.24 469.17,1476.34 470.36,1477.49"/>
+ </edge>
+ <edge id=":552842255_4" function="internal">
+ <lane id=":552842255_4_0" index="0" speed="22.22" length="11.56" shape="470.60,1473.18 467.81,1474.77 465.58,1476.04 463.36,1477.32 460.57,1478.92"/>
+ </edge>
+ <edge id=":552842255_5" function="internal">
+ <lane id=":552842255_5_0" index="0" speed="22.22" length="9.33" shape="470.60,1473.18 467.59,1474.73 465.13,1475.61 463.23,1475.84 461.89,1475.40"/>
+ </edge>
+ <edge id=":552842255_6" function="internal">
+ <lane id=":552842255_6_0" index="0" speed="22.22" length="8.08" shape="463.83,1472.73 470.36,1477.49"/>
+ </edge>
+ <edge id=":552842255_7" function="internal">
+ <lane id=":552842255_7_0" index="0" speed="22.22" length="4.72" shape="463.83,1472.73 464.87,1474.02 464.67,1475.48 463.63,1476.67"/>
+ </edge>
+ <edge id=":552842255_10" function="internal">
+ <lane id=":552842255_10_0" index="0" speed="22.22" length="3.82" shape="463.63,1476.67 463.24,1477.12 460.57,1478.92"/>
+ </edge>
+ <edge id=":552842255_8" function="internal">
+ <lane id=":552842255_8_0" index="0" speed="22.22" length="2.41" shape="463.83,1472.73 464.34,1474.12 464.19,1475.03"/>
+ </edge>
+ <edge id=":552842255_11" function="internal">
+ <lane id=":552842255_11_0" index="0" speed="22.22" length="2.41" shape="464.19,1475.03 463.37,1475.46 461.89,1475.40"/>
+ </edge>
+ <edge id=":552842256_0" function="internal">
+ <lane id=":552842256_0_0" index="0" speed="22.22" length="5.59" shape="721.22,1660.69 719.91,1660.37 718.89,1660.76 718.15,1661.84 717.71,1663.63"/>
+ </edge>
+ <edge id=":552842256_1" function="internal">
+ <lane id=":552842256_1_0" index="0" speed="25.00" length="15.77" shape="721.22,1660.69 717.56,1659.62 713.58,1659.25 709.52,1659.17 705.63,1658.93"/>
+ </edge>
+ <edge id=":552842256_2" function="internal">
+ <lane id=":552842256_2_0" index="0" speed="22.22" length="16.06" shape="721.22,1660.69 717.63,1659.09 713.87,1657.40 710.21,1655.53 706.91,1653.45"/>
+ </edge>
+ <edge id=":552842256_3" function="internal">
+ <lane id=":552842256_3_0" index="0" speed="22.22" length="11.31" shape="721.22,1660.69 718.64,1659.08 716.93,1657.02 716.09,1654.52 716.13,1651.57"/>
+ </edge>
+ <edge id=":552842256_4" function="internal">
+ <lane id=":552842256_4_0" index="0" speed="22.22" length="5.80" shape="721.22,1660.69 719.59,1659.75 719.20,1659.01 720.02,1658.44 722.07,1658.07"/>
+ </edge>
+ <edge id=":552842256_5" function="internal">
+ <lane id=":552842256_5_0" index="0" speed="25.00" length="10.78" shape="721.22,1660.69 717.76,1658.88 716.75,1657.77 718.17,1657.34 722.04,1657.61"/>
+ </edge>
+ <edge id=":552842256_6" function="internal">
+ <lane id=":552842256_6_0" index="0" speed="25.00" length="5.07" shape="721.20,1660.83 719.84,1660.87 718.80,1661.35 718.09,1662.27 717.71,1663.63"/>
+ </edge>
+ <edge id=":552842256_7" function="internal">
+ <lane id=":552842256_7_0" index="0" speed="27.78" length="15.68" shape="721.20,1660.83 717.37,1660.37 713.41,1659.88 709.46,1659.40 705.63,1658.93"/>
+ </edge>
+ <edge id=":552842256_8" function="internal">
+ <lane id=":552842256_8_0" index="0" speed="25.00" length="16.23" shape="721.20,1660.83 717.44,1659.84 713.70,1658.03 710.15,1655.77 706.91,1653.45"/>
+ </edge>
+ <edge id=":552842256_9" function="internal">
+ <lane id=":552842256_9_0" index="0" speed="25.00" length="5.76" shape="721.20,1660.83 718.51,1659.96 716.76,1658.13 716.65,1657.74"/>
+ </edge>
+ <edge id=":552842256_36" function="internal">
+ <lane id=":552842256_36_0" index="0" speed="25.00" length="6.27" shape="716.65,1657.74 715.97,1655.33 716.13,1651.57"/>
+ </edge>
+ <edge id=":552842256_10" function="internal">
+ <lane id=":552842256_10_0" index="0" speed="25.00" length="12.65" shape="721.20,1660.83 716.82,1660.12 715.51,1659.43 717.26,1658.75 722.07,1658.07"/>
+ </edge>
+ <edge id=":552842256_11" function="internal">
+ <lane id=":552842256_11_0" index="0" speed="27.78" length="2.43" shape="721.20,1660.83 720.20,1659.70 720.01,1658.79"/>
+ </edge>
+ <edge id=":552842256_37" function="internal">
+ <lane id=":552842256_37_0" index="0" speed="27.78" length="2.43" shape="720.01,1658.79 720.62,1658.09 722.04,1657.61"/>
+ </edge>
+ <edge id=":552842256_12" function="internal">
+ <lane id=":552842256_12_0" index="0" speed="22.22" length="7.74" shape="719.39,1652.05 719.20,1654.83 719.59,1656.76 720.54,1657.84 722.07,1658.07"/>
+ </edge>
+ <edge id=":552842256_13" function="internal">
+ <lane id=":552842256_13_0" index="0" speed="25.00" length="6.98" shape="719.39,1652.05 719.27,1654.33 719.67,1656.01 720.60,1657.11 722.04,1657.61"/>
+ </edge>
+ <edge id=":552842256_14" function="internal">
+ <lane id=":552842256_14_0" index="0" speed="22.22" length="11.70" shape="719.39,1652.05 718.92,1655.25 718.54,1657.84 718.16,1660.42 717.71,1663.63"/>
+ </edge>
+ <edge id=":552842256_15" function="internal">
+ <lane id=":552842256_15_0" index="0" speed="25.00" length="17.27" shape="719.39,1652.05 718.06,1655.64 715.33,1657.98 711.18,1659.08 705.63,1658.93"/>
+ </edge>
+ <edge id=":552842256_16" function="internal">
+ <lane id=":552842256_16_0" index="0" speed="22.22" length="16.35" shape="719.39,1652.05 718.08,1655.71 715.57,1657.17 711.84,1656.41 706.91,1653.45"/>
+ </edge>
+ <edge id=":552842256_17" function="internal">
+ <lane id=":552842256_17_0" index="0" speed="22.22" length="4.82" shape="719.39,1652.05 718.39,1653.15 717.52,1653.44 716.76,1652.91 716.13,1651.57"/>
+ </edge>
+ <edge id=":552842256_18" function="internal">
+ <lane id=":552842256_18_0" index="0" speed="22.22" length="8.94" shape="708.87,1650.79 711.82,1652.67 714.01,1653.43 715.44,1653.06 716.13,1651.57"/>
+ </edge>
+ <edge id=":552842256_19" function="internal">
+ <lane id=":552842256_19_0" index="0" speed="22.22" length="15.42" shape="708.87,1650.79 711.93,1653.25 715.12,1655.74 718.48,1657.57 722.07,1658.07"/>
+ </edge>
+ <edge id=":552842256_20" function="internal">
+ <lane id=":552842256_20_0" index="0" speed="25.00" length="15.00" shape="708.87,1650.79 711.93,1653.02 715.11,1655.09 718.46,1656.71 722.04,1657.61"/>
+ </edge>
+ <edge id=":552842256_21" function="internal">
+ <lane id=":552842256_21_0" index="0" speed="22.22" length="16.24" shape="708.87,1650.79 713.04,1654.25 715.90,1657.55 717.46,1660.67 717.71,1663.63"/>
+ </edge>
+ <edge id=":552842256_22" function="internal">
+ <lane id=":552842256_22_0" index="0" speed="25.00" length="19.35" shape="708.87,1650.79 713.89,1655.14 715.03,1657.95 712.27,1659.21 705.63,1658.93"/>
+ </edge>
+ <edge id=":552842256_23" function="internal">
+ <lane id=":552842256_23_0" index="0" speed="22.22" length="4.82" shape="708.87,1650.79 709.38,1652.19 709.22,1653.10 708.40,1653.52 706.91,1653.45"/>
+ </edge>
+ <edge id=":552842256_24" function="internal">
+ <lane id=":552842256_24_0" index="0" speed="25.00" length="5.25" shape="706.03,1655.65 707.83,1655.73 708.58,1655.39 708.28,1654.63 706.91,1653.45"/>
+ </edge>
+ <edge id=":552842256_25" function="internal">
+ <lane id=":552842256_25_0" index="0" speed="25.00" length="12.10" shape="706.03,1655.65 710.16,1655.83 713.22,1655.20 715.20,1653.78 716.13,1651.57"/>
+ </edge>
+ <edge id=":552842256_26" function="internal">
+ <lane id=":552842256_26_0" index="0" speed="25.00" length="16.27" shape="706.03,1655.65 709.93,1656.36 714.05,1657.29 718.16,1658.00 722.07,1658.07"/>
+ </edge>
+ <edge id=":552842256_27" function="internal">
+ <lane id=":552842256_27_0" index="0" speed="27.78" length="16.13" shape="706.03,1655.65 709.93,1656.13 714.04,1656.64 718.15,1657.14 722.04,1657.61"/>
+ </edge>
+ <edge id=":552842256_28" function="internal">
+ <lane id=":552842256_28_0" index="0" speed="25.00" length="12.23" shape="706.03,1655.65 711.48,1656.73 715.24,1658.42 716.96,1660.32"/>
+ </edge>
+ <edge id=":552842256_38" function="internal">
+ <lane id=":552842256_38_0" index="0" speed="25.00" length="3.48" shape="716.96,1660.32 717.32,1660.72 717.71,1663.63"/>
+ </edge>
+ <edge id=":552842256_29" function="internal">
+ <lane id=":552842256_29_0" index="0" speed="27.78" length="2.41" shape="706.03,1655.65 707.16,1656.62 707.47,1657.49"/>
+ </edge>
+ <edge id=":552842256_39" function="internal">
+ <lane id=":552842256_39_0" index="0" speed="27.78" length="2.41" shape="707.47,1657.49 706.96,1658.26 705.63,1658.93"/>
+ </edge>
+ <edge id=":552842256_30" function="internal">
+ <lane id=":552842256_30_0" index="0" speed="25.00" length="10.51" shape="714.44,1663.16 714.06,1661.74 712.46,1660.56 709.65,1659.62 705.63,1658.93"/>
+ </edge>
+ <edge id=":552842256_31" function="internal">
+ <lane id=":552842256_31_0" index="0" speed="22.22" length="12.73" shape="714.44,1663.16 714.17,1661.14 712.83,1658.84 710.41,1656.28 706.91,1653.45"/>
+ </edge>
+ <edge id=":552842256_32" function="internal">
+ <lane id=":552842256_32_0" index="0" speed="22.22" length="11.72" shape="714.44,1663.16 714.90,1659.96 715.27,1657.36 715.65,1654.77 716.13,1651.57"/>
+ </edge>
+ <edge id=":552842256_33" function="internal">
+ <lane id=":552842256_33_0" index="0" speed="22.22" length="9.90" shape="714.44,1663.16 715.15,1661.21 716.66,1659.71 718.96,1658.67 722.07,1658.07"/>
+ </edge>
+ <edge id=":552842256_34" function="internal">
+ <lane id=":552842256_34_0" index="0" speed="25.00" length="10.69" shape="714.44,1663.16 715.25,1660.43 716.79,1658.59 719.06,1657.65 722.04,1657.61"/>
+ </edge>
+ <edge id=":552842256_35" function="internal">
+ <lane id=":552842256_35_0" index="0" speed="22.22" length="4.82" shape="714.44,1663.16 715.43,1662.05 716.31,1661.76 717.07,1662.28 717.71,1663.63"/>
+ </edge>
+ <edge id=":552842257_0" function="internal">
+ <lane id=":552842257_0_0" index="0" speed="27.78" length="4.90" shape="702.73,1658.57 697.87,1657.99"/>
+ </edge>
+ <edge id=":552842257_1" function="internal">
+ <lane id=":552842257_1_0" index="0" speed="25.00" length="4.18" shape="702.73,1658.57 701.82,1658.20 701.50,1657.36 701.77,1656.08 702.20,1655.19"/>
+ </edge>
+ <edge id=":552842257_9" function="internal">
+ <lane id=":552842257_9_0" index="0" speed="25.00" length="0.95" shape="702.20,1655.19 702.62,1654.34"/>
+ </edge>
+ <edge id=":552842257_2" function="internal">
+ <lane id=":552842257_2_0" index="0" speed="27.78" length="2.41" shape="702.73,1658.57 701.60,1657.60 701.30,1656.73"/>
+ </edge>
+ <edge id=":552842257_10" function="internal">
+ <lane id=":552842257_10_0" index="0" speed="27.78" length="2.41" shape="701.30,1656.73 701.81,1655.96 703.13,1655.30"/>
+ </edge>
+ <edge id=":552842257_3" function="internal">
+ <lane id=":552842257_3_0" index="0" speed="25.00" length="4.50" shape="698.25,1654.71 699.98,1654.86 701.29,1654.85 702.16,1654.67 702.62,1654.34"/>
+ </edge>
+ <edge id=":552842257_4" function="internal">
+ <lane id=":552842257_4_0" index="0" speed="27.78" length="4.92" shape="698.25,1654.71 703.13,1655.30"/>
+ </edge>
+ <edge id=":552842257_5" function="internal">
+ <lane id=":552842257_5_0" index="0" speed="27.78" length="2.41" shape="698.25,1654.71 699.39,1655.68 699.70,1656.55"/>
+ </edge>
+ <edge id=":552842257_11" function="internal">
+ <lane id=":552842257_11_0" index="0" speed="27.78" length="2.41" shape="699.70,1656.55 699.19,1657.32 697.87,1657.99"/>
+ </edge>
+ <edge id=":552842257_6" function="internal">
+ <lane id=":552842257_6_0" index="0" speed="25.00" length="5.03" shape="700.54,1661.47 700.54,1660.09 700.10,1659.04 699.21,1658.35 697.87,1657.99"/>
+ </edge>
+ <edge id=":552842257_7" function="internal">
+ <lane id=":552842257_7_0" index="0" speed="22.22" length="7.43" shape="700.54,1661.47 702.62,1654.34"/>
+ </edge>
+ <edge id=":552842257_8" function="internal">
+ <lane id=":552842257_8_0" index="0" speed="25.00" length="7.04" shape="700.54,1661.47 701.05,1658.69 701.65,1656.74 702.35,1655.61 703.13,1655.30"/>
+ </edge>
+ <edge id=":560472377_0" function="internal">
+ <lane id=":560472377_0_0" index="0" speed="22.22" length="6.25" shape="830.60,1983.09 827.73,1977.53"/>
+ </edge>
+ <edge id=":560472377_1" function="internal">
+ <lane id=":560472377_1_0" index="0" speed="22.22" length="2.41" shape="830.60,1983.09 830.79,1981.61 831.35,1980.88"/>
+ </edge>
+ <edge id=":560472377_6" function="internal">
+ <lane id=":560472377_6_0" index="0" speed="22.22" length="2.41" shape="831.35,1980.88 832.27,1980.88 833.56,1981.62"/>
+ </edge>
+ <edge id=":560472377_2" function="internal">
+ <lane id=":560472377_2_0" index="0" speed="22.22" length="6.37" shape="830.64,1975.96 833.56,1981.62"/>
+ </edge>
+ <edge id=":560472377_3" function="internal">
+ <lane id=":560472377_3_0" index="0" speed="22.22" length="2.41" shape="830.64,1975.96 830.50,1977.45 829.97,1978.20"/>
+ </edge>
+ <edge id=":560472377_7" function="internal">
+ <lane id=":560472377_7_0" index="0" speed="22.22" length="2.41" shape="829.97,1978.20 829.04,1978.23 827.73,1977.53"/>
+ </edge>
+ <edge id=":560472377_4" function="internal">
+ <lane id=":560472377_4_0" index="0" speed="22.22" length="5.04" shape="826.42,1981.75 827.55,1980.93 828.14,1979.95 828.20,1978.82 827.73,1977.53"/>
+ </edge>
+ <edge id=":560472377_5" function="internal">
+ <lane id=":560472377_5_0" index="0" speed="22.22" length="7.93" shape="826.42,1981.75 829.00,1980.60 831.05,1980.20 832.57,1980.54 833.56,1981.62"/>
+ </edge>
+ <edge id=":560472378_0" function="internal">
+ <lane id=":560472378_0_0" index="0" speed="22.22" length="9.51" shape="843.00,1993.60 834.61,1998.10"/>
+ </edge>
+ <edge id=":560472378_1" function="internal">
+ <lane id=":560472378_1_0" index="0" speed="22.22" length="7.95" shape="843.00,1993.60 840.42,1994.76 838.37,1995.17 836.85,1994.83 835.86,1993.73"/>
+ </edge>
+ <edge id=":560472378_2" function="internal">
+ <lane id=":560472378_2_0" index="0" speed="22.22" length="3.03" shape="838.82,1992.27 839.08,1993.70 838.47,1995.15"/>
+ </edge>
+ <edge id=":560472378_4" function="internal">
+ <lane id=":560472378_4_0" index="0" speed="22.22" length="4.88" shape="838.47,1995.15 836.98,1996.61 834.61,1998.10"/>
+ </edge>
+ <edge id=":560472378_3" function="internal">
+ <lane id=":560472378_3_0" index="0" speed="22.22" length="2.41" shape="838.82,1992.27 838.63,1993.75 838.07,1994.48"/>
+ </edge>
+ <edge id=":560472378_5" function="internal">
+ <lane id=":560472378_5_0" index="0" speed="22.22" length="2.41" shape="838.07,1994.48 837.15,1994.48 835.86,1993.73"/>
+ </edge>
+ <edge id=":560472379_0" function="internal">
+ <lane id=":560472379_0_0" index="0" speed="22.22" length="5.50" shape="727.84,2030.26 728.28,2031.80 729.07,2032.64 730.21,2032.78 731.71,2032.24"/>
+ </edge>
+ <edge id=":560472379_1" function="internal">
+ <lane id=":560472379_1_0" index="0" speed="22.22" length="6.39" shape="727.84,2030.26 728.65,2036.60"/>
+ </edge>
+ <edge id=":561204538_0" function="internal">
+ <lane id=":561204538_0_0" index="0" speed="22.22" length="5.57" shape="704.56,1651.71 700.04,1648.44"/>
+ </edge>
+ <edge id=":561204538_1" function="internal">
+ <lane id=":561204538_1_0" index="0" speed="22.22" length="3.62" shape="704.56,1651.71 704.76,1651.32 705.05,1649.92 705.32,1648.19"/>
+ </edge>
+ <edge id=":561204538_9" function="internal">
+ <lane id=":561204538_9_0" index="0" speed="22.22" length="4.16" shape="705.32,1648.19 705.43,1647.50 705.91,1644.08"/>
+ </edge>
+ <edge id=":561204538_2" function="internal">
+ <lane id=":561204538_2_0" index="0" speed="22.22" length="2.41" shape="704.56,1651.71 704.05,1650.32 704.21,1649.41"/>
+ </edge>
+ <edge id=":561204538_10" function="internal">
+ <lane id=":561204538_10_0" index="0" speed="22.22" length="2.41" shape="704.21,1649.41 705.03,1648.99 706.51,1649.06"/>
+ </edge>
+ <edge id=":561204538_3" function="internal">
+ <lane id=":561204538_3_0" index="0" speed="22.22" length="5.76" shape="701.98,1645.77 703.49,1646.58 704.65,1646.57 705.46,1645.74 705.91,1644.08"/>
+ </edge>
+ <edge id=":561204538_4" function="internal">
+ <lane id=":561204538_4_0" index="0" speed="22.22" length="5.60" shape="701.98,1645.77 706.51,1649.06"/>
+ </edge>
+ <edge id=":561204538_5" function="internal">
+ <lane id=":561204538_5_0" index="0" speed="22.22" length="2.41" shape="701.98,1645.77 702.50,1647.16 702.35,1648.07"/>
+ </edge>
+ <edge id=":561204538_11" function="internal">
+ <lane id=":561204538_11_0" index="0" speed="22.22" length="2.41" shape="702.35,1648.07 701.53,1648.50 700.04,1648.44"/>
+ </edge>
+ <edge id=":561204538_6" function="internal">
+ <lane id=":561204538_6_0" index="0" speed="22.22" length="5.29" shape="704.11,1651.78 703.92,1651.47 703.18,1650.81 701.88,1649.80 700.04,1648.44"/>
+ </edge>
+ <edge id=":561204538_7" function="internal">
+ <lane id=":561204538_7_0" index="0" speed="22.22" length="7.91" shape="704.11,1651.78 705.91,1644.08"/>
+ </edge>
+ <edge id=":561204538_8" function="internal">
+ <lane id=":561204538_8_0" index="0" speed="22.22" length="3.78" shape="704.11,1651.78 704.95,1650.43 705.63,1649.53 706.15,1649.07 706.51,1649.06"/>
+ </edge>
+ <edge id=":566579336_0" function="internal">
+ <lane id=":566579336_0_0" index="0" speed="22.22" length="0.10" shape="970.87,637.71 970.87,637.70"/>
+ </edge>
+ <edge id=":566579338_0" function="internal">
+ <lane id=":566579338_0_0" index="0" speed="22.22" length="0.10" shape="1076.57,837.91 1076.57,837.91"/>
+ </edge>
+ <edge id=":566579339_0" function="internal">
+ <lane id=":566579339_0_0" index="0" speed="22.22" length="5.05" shape="1113.48,902.52 1112.36,903.36 1111.77,904.35 1111.70,905.48 1112.15,906.76"/>
+ </edge>
+ <edge id=":566579339_1" function="internal">
+ <lane id=":566579339_1_0" index="0" speed="22.22" length="6.21" shape="1109.28,901.25 1112.15,906.76"/>
+ </edge>
+ <edge id=":566579340_0" function="internal">
+ <lane id=":566579340_0_0" index="0" speed="25.00" length="5.01" shape="1557.39,1852.48 1558.51,1851.68 1559.09,1850.72 1559.15,1849.59 1558.69,1848.30"/>
+ </edge>
+ <edge id=":566579340_1" function="internal">
+ <lane id=":566579340_1_0" index="0" speed="27.78" length="4.82" shape="1557.39,1852.48 1558.87,1852.64 1559.62,1853.18 1559.64,1854.10 1558.93,1855.41"/>
+ </edge>
+ <edge id=":566670951_0" function="internal">
+ <lane id=":566670951_0_0" index="0" speed="5.56" length="4.82" shape="1804.54,1409.41 1806.02,1409.56 1806.78,1410.09 1806.80,1411.02 1806.09,1412.32"/>
+ </edge>
+ <edge id=":650318340_0" function="internal">
+ <lane id=":650318340_0_0" index="0" speed="5.56" length="4.82" shape="652.51,307.34 653.52,306.25 654.40,305.97 655.15,306.50 655.77,307.86"/>
+ </edge>
+ <edge id=":719463587_0" function="internal">
+ <lane id=":719463587_0_0" index="0" speed="5.56" length="6.43" shape="939.06,1173.63 936.10,1167.92"/>
+ </edge>
+ <edge id=":719463587_1" function="internal">
+ <lane id=":719463587_1_0" index="0" speed="13.89" length="4.82" shape="939.06,1173.63 938.77,1172.21 939.38,1170.74 940.62,1169.47"/>
+ </edge>
+ <edge id=":719463587_9" function="internal">
+ <lane id=":719463587_9_0" index="0" speed="13.89" length="3.19" shape="940.62,1169.47 940.86,1169.22 943.23,1167.66"/>
+ </edge>
+ <edge id=":719463587_2" function="internal">
+ <lane id=":719463587_2_0" index="0" speed="5.56" length="2.41" shape="939.06,1173.63 939.22,1172.15 939.76,1171.41"/>
+ </edge>
+ <edge id=":719463587_10" function="internal">
+ <lane id=":719463587_10_0" index="0" speed="5.56" length="2.41" shape="939.76,1171.41 940.69,1171.40 941.99,1172.12"/>
+ </edge>
+ <edge id=":719463587_3" function="internal">
+ <lane id=":719463587_3_0" index="0" speed="13.89" length="5.04" shape="939.03,1166.41 939.84,1167.54 940.81,1168.12 941.94,1168.16 943.23,1167.66"/>
+ </edge>
+ <edge id=":719463587_4" function="internal">
+ <lane id=":719463587_4_0" index="0" speed="5.56" length="6.43" shape="939.03,1166.41 941.99,1172.12"/>
+ </edge>
+ <edge id=":719463587_5" function="internal">
+ <lane id=":719463587_5_0" index="0" speed="5.56" length="2.41" shape="939.03,1166.41 938.87,1167.88 938.32,1168.63"/>
+ </edge>
+ <edge id=":719463587_11" function="internal">
+ <lane id=":719463587_11_0" index="0" speed="5.56" length="2.41" shape="938.32,1168.63 937.40,1168.64 936.10,1167.92"/>
+ </edge>
+ <edge id=":719463587_6" function="internal">
+ <lane id=":719463587_6_0" index="0" speed="13.89" length="5.23" shape="934.86,1172.38 935.96,1171.52 936.54,1170.49 936.59,1169.29 936.10,1167.92"/>
+ </edge>
+ <edge id=":719463587_7" function="internal">
+ <lane id=":719463587_7_0" index="0" speed="22.22" length="9.62" shape="934.86,1172.38 943.23,1167.66"/>
+ </edge>
+ <edge id=":719463587_8" function="internal">
+ <lane id=":719463587_8_0" index="0" speed="13.89" length="3.17" shape="934.86,1172.38 937.41,1171.17 937.75,1171.10"/>
+ </edge>
+ <edge id=":719463587_12" function="internal">
+ <lane id=":719463587_12_0" index="0" speed="13.89" length="4.78" shape="937.75,1171.10 939.45,1170.73 940.98,1171.04 941.99,1172.12"/>
+ </edge>
+ <edge id=":719463795_0" function="internal">
+ <lane id=":719463795_0_0" index="0" speed="13.89" length="5.05" shape="907.30,1112.36 906.49,1111.23 905.52,1110.64 904.38,1110.61 903.09,1111.12"/>
+ </edge>
+ <edge id=":719463795_1" function="internal">
+ <lane id=":719463795_1_0" index="0" speed="5.56" length="6.46" shape="907.30,1112.36 904.32,1106.62"/>
+ </edge>
+ <edge id=":719463795_2" function="internal">
+ <lane id=":719463795_2_0" index="0" speed="5.56" length="4.82" shape="907.30,1112.36 907.46,1110.88 908.00,1110.13 908.92,1110.12 910.23,1110.84"/>
+ </edge>
+ <edge id=":719463795_3" function="internal">
+ <lane id=":719463795_3_0" index="0" speed="13.89" length="5.27" shape="911.46,1106.35 910.35,1107.22 909.78,1108.25 909.74,1109.46 910.23,1110.84"/>
+ </edge>
+ <edge id=":719463795_4" function="internal">
+ <lane id=":719463795_4_0" index="0" speed="22.22" length="9.63" shape="911.46,1106.35 903.09,1111.12"/>
+ </edge>
+ <edge id=":719463795_5" function="internal">
+ <lane id=":719463795_5_0" index="0" speed="13.89" length="7.96" shape="911.46,1106.35 908.91,1107.56 906.87,1108.02 905.34,1107.70 904.32,1106.62"/>
+ </edge>
+ <edge id=":719463795_6" function="internal">
+ <lane id=":719463795_6_0" index="0" speed="5.56" length="6.46" shape="907.25,1105.10 910.23,1110.84"/>
+ </edge>
+ <edge id=":719463795_7" function="internal">
+ <lane id=":719463795_7_0" index="0" speed="13.89" length="8.03" shape="907.25,1105.10 907.54,1106.53 906.94,1108.01 905.46,1109.54 903.09,1111.12"/>
+ </edge>
+ <edge id=":719463795_8" function="internal">
+ <lane id=":719463795_8_0" index="0" speed="5.56" length="4.82" shape="907.25,1105.10 907.09,1106.58 906.55,1107.33 905.63,1107.34 904.32,1106.62"/>
+ </edge>
+ <edge id=":719464017_0" function="internal">
+ <lane id=":719464017_0_0" index="0" speed="5.56" length="0.10" shape="653.98,319.17 653.98,319.17"/>
+ </edge>
+ <edge id=":719464017_1" function="internal">
+ <lane id=":719464017_1_0" index="0" speed="5.56" length="2.41" shape="653.98,319.17 652.96,320.26 652.08,320.53"/>
+ </edge>
+ <edge id=":719464017_4" function="internal">
+ <lane id=":719464017_4_0" index="0" speed="5.56" length="2.41" shape="652.08,320.53 651.33,319.99 650.72,318.64"/>
+ </edge>
+ <edge id=":719464017_2" function="internal">
+ <lane id=":719464017_2_0" index="0" speed="5.56" length="0.10" shape="650.73,318.60 650.72,318.64"/>
+ </edge>
+ <edge id=":719464017_3" function="internal">
+ <lane id=":719464017_3_0" index="0" speed="5.56" length="2.41" shape="650.73,318.60 651.75,317.52 652.64,317.26"/>
+ </edge>
+ <edge id=":719464017_5" function="internal">
+ <lane id=":719464017_5_0" index="0" speed="5.56" length="2.41" shape="652.64,317.26 653.38,317.81 653.98,319.17"/>
+ </edge>
+ <edge id=":724002953_0" function="internal">
+ <lane id=":724002953_0_0" index="0" speed="27.78" length="6.35" shape="728.93,2289.33 728.03,2283.05"/>
+ </edge>
+ <edge id=":724002953_1" function="internal">
+ <lane id=":724002953_1_0" index="0" speed="27.78" length="5.45" shape="728.93,2289.33 728.73,2287.30 728.76,2285.75 729.03,2284.69 729.54,2284.11"/>
+ </edge>
+ <edge id=":724002953_2" function="internal">
+ <lane id=":724002953_2_0" index="0" speed="27.78" length="3.32" shape="728.93,2289.33 729.01,2288.78 729.40,2288.22 730.09,2287.63 731.09,2287.02"/>
+ </edge>
+ <edge id=":724002953_3" function="internal">
+ <lane id=":724002953_3_0" index="0" speed="27.78" length="9.39" shape="720.76,2281.33 723.75,2280.08 725.95,2279.95 727.38,2280.94 728.03,2283.05"/>
+ </edge>
+ <edge id=":724002953_4" function="internal">
+ <lane id=":724002953_4_0" index="0" speed="27.78" length="9.21" shape="723.88,2287.14 726.43,2278.29"/>
+ </edge>
+ <edge id=":724002953_5" function="internal">
+ <lane id=":724002953_5_0" index="0" speed="27.78" length="9.21" shape="725.44,2290.05 727.98,2281.20"/>
+ </edge>
+ <edge id=":728492341_0" function="internal">
+ <lane id=":728492341_0_0" index="0" speed="27.78" length="9.50" shape="441.88,1876.27 436.77,1868.25"/>
+ </edge>
+ <edge id=":728492341_1" function="internal">
+ <lane id=":728492341_1_0" index="0" speed="25.00" length="7.15" shape="441.88,1876.27 440.69,1873.63 440.64,1871.27 441.53,1869.59"/>
+ </edge>
+ <edge id=":728492341_9" function="internal">
+ <lane id=":728492341_9_0" index="0" speed="25.00" length="3.35" shape="441.53,1869.59 441.75,1869.19 444.00,1867.38"/>
+ </edge>
+ <edge id=":728492341_2" function="internal">
+ <lane id=":728492341_2_0" index="0" speed="27.78" length="2.41" shape="441.88,1876.27 441.91,1874.78 442.38,1873.99"/>
+ </edge>
+ <edge id=":728492341_10" function="internal">
+ <lane id=":728492341_10_0" index="0" speed="27.78" length="2.41" shape="442.38,1873.99 443.30,1873.89 444.66,1874.49"/>
+ </edge>
+ <edge id=":728492341_3" function="internal">
+ <lane id=":728492341_3_0" index="0" speed="25.00" length="5.04" shape="445.68,1870.22 444.60,1871.09 444.07,1872.09 444.09,1873.23 444.66,1874.49"/>
+ </edge>
+ <edge id=":728492341_4" function="internal">
+ <lane id=":728492341_4_0" index="0" speed="25.00" length="10.33" shape="445.68,1870.22 443.04,1871.33 440.67,1871.37 438.58,1870.35 436.77,1868.25"/>
+ </edge>
+ <edge id=":728492341_5" function="internal">
+ <lane id=":728492341_5_0" index="0" speed="22.22" length="4.82" shape="445.68,1870.22 444.20,1870.14 443.42,1869.64 443.36,1868.72 444.00,1867.38"/>
+ </edge>
+ <edge id=":728492341_6" function="internal">
+ <lane id=":728492341_6_0" index="0" speed="25.00" length="5.14" shape="439.55,1866.48 440.44,1867.50 441.48,1867.99 442.67,1867.95 444.00,1867.38"/>
+ </edge>
+ <edge id=":728492341_7" function="internal">
+ <lane id=":728492341_7_0" index="0" speed="27.78" length="9.50" shape="439.55,1866.48 444.66,1874.49"/>
+ </edge>
+ <edge id=":728492341_8" function="internal">
+ <lane id=":728492341_8_0" index="0" speed="27.78" length="2.41" shape="439.55,1866.48 439.52,1867.97 439.04,1868.76"/>
+ </edge>
+ <edge id=":728492341_11" function="internal">
+ <lane id=":728492341_11_0" index="0" speed="27.78" length="2.41" shape="439.04,1868.76 438.13,1868.85 436.77,1868.25"/>
+ </edge>
+ <edge id=":728492348_0" function="internal">
+ <lane id=":728492348_0_0" index="0" speed="22.22" length="4.82" shape="538.49,1883.87 537.01,1883.77 536.24,1883.26 536.19,1882.34 536.85,1881.01"/>
+ </edge>
+ <edge id=":728492353_0" function="internal">
+ <lane id=":728492353_0_0" index="0" speed="25.00" length="5.00" shape="633.52,1650.45 632.15,1650.48 631.12,1650.95 630.43,1651.84 630.07,1653.16"/>
+ </edge>
+ <edge id=":728492353_1" function="internal">
+ <lane id=":728492353_1_0" index="0" speed="27.78" length="9.48" shape="633.52,1650.45 624.10,1649.30"/>
+ </edge>
+ <edge id=":728492353_2" function="internal">
+ <lane id=":728492353_2_0" index="0" speed="27.78" length="2.41" shape="633.52,1650.45 632.38,1649.49 632.07,1648.62"/>
+ </edge>
+ <edge id=":728492353_9" function="internal">
+ <lane id=":728492353_9_0" index="0" speed="27.78" length="2.41" shape="632.07,1648.62 632.58,1647.85 633.90,1647.17"/>
+ </edge>
+ <edge id=":728492353_3" function="internal">
+ <lane id=":728492353_3_0" index="0" speed="27.78" length="9.45" shape="624.52,1646.02 633.90,1647.17"/>
+ </edge>
+ <edge id=":728492353_4" function="internal">
+ <lane id=":728492353_4_0" index="0" speed="25.00" length="7.10" shape="624.52,1646.02 627.24,1646.77 629.07,1648.21 629.86,1650.00"/>
+ </edge>
+ <edge id=":728492353_10" function="internal">
+ <lane id=":728492353_10_0" index="0" speed="25.00" length="3.19" shape="629.86,1650.00 630.01,1650.34 630.07,1653.16"/>
+ </edge>
+ <edge id=":728492353_5" function="internal">
+ <lane id=":728492353_5_0" index="0" speed="27.78" length="2.41" shape="624.52,1646.02 625.64,1647.00 625.95,1647.87"/>
+ </edge>
+ <edge id=":728492353_11" function="internal">
+ <lane id=":728492353_11_0" index="0" speed="27.78" length="2.41" shape="625.95,1647.87 625.44,1648.63 624.10,1649.30"/>
+ </edge>
+ <edge id=":728492353_6" function="internal">
+ <lane id=":728492353_6_0" index="0" speed="25.00" length="5.00" shape="626.80,1652.77 626.77,1651.39 626.31,1650.36 625.42,1649.66 624.10,1649.30"/>
+ </edge>
+ <edge id=":728492353_7" function="internal">
+ <lane id=":728492353_7_0" index="0" speed="25.00" length="10.31" shape="626.80,1652.77 627.53,1650.04 628.95,1648.20 631.08,1647.24 633.90,1647.17"/>
+ </edge>
+ <edge id=":728492353_8" function="internal">
+ <lane id=":728492353_8_0" index="0" speed="22.22" length="4.82" shape="626.80,1652.77 627.76,1651.64 628.63,1651.33 629.40,1651.83 630.07,1653.16"/>
+ </edge>
+ <edge id=":728492360_0" function="internal">
+ <lane id=":728492360_0_0" index="0" speed="22.22" length="6.85" shape="617.85,1777.20 616.41,1777.30 615.35,1778.13 614.66,1779.71 614.35,1782.02"/>
+ </edge>
+ <edge id=":728492360_1" function="internal">
+ <lane id=":728492360_1_0" index="0" speed="22.22" length="10.98" shape="617.85,1777.20 614.77,1776.90 612.45,1777.20 610.24,1778.10 607.45,1779.58"/>
+ </edge>
+ <edge id=":728492360_2" function="internal">
+ <lane id=":728492360_2_0" index="0" speed="22.22" length="10.57" shape="617.85,1777.20 614.99,1776.33 613.06,1774.83 612.07,1772.69 612.00,1769.92"/>
+ </edge>
+ <edge id=":728492360_3" function="internal">
+ <lane id=":728492360_3_0" index="0" speed="22.22" length="4.82" shape="617.85,1777.20 616.77,1776.18 616.49,1775.30 617.03,1774.55 618.39,1773.94"/>
+ </edge>
+ <edge id=":728492360_4" function="internal">
+ <lane id=":728492360_4_0" index="0" speed="22.22" length="5.38" shape="615.27,1770.34 615.32,1771.70 615.86,1772.75 616.88,1773.50 618.39,1773.94"/>
+ </edge>
+ <edge id=":728492360_5" function="internal">
+ <lane id=":728492360_5_0" index="0" speed="22.22" length="11.72" shape="615.27,1770.34 614.89,1773.56 614.66,1776.17 614.50,1778.78 614.35,1782.02"/>
+ </edge>
+ <edge id=":728492360_6" function="internal">
+ <lane id=":728492360_6_0" index="0" speed="22.22" length="7.86" shape="615.27,1770.34 614.52,1772.96 612.96,1775.37 611.31,1776.92"/>
+ </edge>
+ <edge id=":728492360_16" function="internal">
+ <lane id=":728492360_16_0" index="0" speed="22.22" length="4.70" shape="611.31,1776.92 610.61,1777.58 607.45,1779.58"/>
+ </edge>
+ <edge id=":728492360_7" function="internal">
+ <lane id=":728492360_7_0" index="0" speed="22.22" length="2.41" shape="615.27,1770.34 614.30,1771.46 613.43,1771.77"/>
+ </edge>
+ <edge id=":728492360_17" function="internal">
+ <lane id=":728492360_17_0" index="0" speed="22.22" length="2.41" shape="613.43,1771.77 612.66,1771.25 612.00,1769.92"/>
+ </edge>
+ <edge id=":728492360_8" function="internal">
+ <lane id=":728492360_8_0" index="0" speed="22.22" length="9.43" shape="605.90,1776.67 608.38,1775.12 610.23,1773.48 611.44,1771.75 612.00,1769.92"/>
+ </edge>
+ <edge id=":728492360_9" function="internal">
+ <lane id=":728492360_9_0" index="0" speed="22.22" length="13.06" shape="605.90,1776.67 609.02,1775.13 611.95,1774.12 614.98,1773.69 618.39,1773.94"/>
+ </edge>
+ <edge id=":728492360_10" function="internal">
+ <lane id=":728492360_10_0" index="0" speed="22.22" length="13.74" shape="605.90,1776.67 609.77,1775.22 612.47,1775.63 614.00,1777.89 614.35,1782.02"/>
+ </edge>
+ <edge id=":728492360_11" function="internal">
+ <lane id=":728492360_11_0" index="0" speed="22.22" length="4.82" shape="605.90,1776.67 607.38,1776.81 608.13,1777.35 608.15,1778.27 607.45,1779.58"/>
+ </edge>
+ <edge id=":728492360_12" function="internal">
+ <lane id=":728492360_12_0" index="0" speed="22.22" length="5.86" shape="611.05,1781.86 610.90,1780.10 610.25,1779.14 609.10,1778.96 607.45,1779.58"/>
+ </edge>
+ <edge id=":728492360_13" function="internal">
+ <lane id=":728492360_13_0" index="0" speed="22.22" length="11.99" shape="611.05,1781.86 611.21,1778.58 611.37,1775.87 611.61,1773.17 612.00,1769.92"/>
+ </edge>
+ <edge id=":728492360_14" function="internal">
+ <lane id=":728492360_14_0" index="0" speed="22.22" length="8.93" shape="611.05,1781.86 611.67,1777.97 613.10,1775.35 614.82,1774.32"/>
+ </edge>
+ <edge id=":728492360_18" function="internal">
+ <lane id=":728492360_18_0" index="0" speed="22.22" length="3.65" shape="614.82,1774.32 615.34,1774.01 618.39,1773.94"/>
+ </edge>
+ <edge id=":728492360_15" function="internal">
+ <lane id=":728492360_15_0" index="0" speed="22.22" length="2.41" shape="611.05,1781.86 611.93,1780.66 612.78,1780.29"/>
+ </edge>
+ <edge id=":728492360_19" function="internal">
+ <lane id=":728492360_19_0" index="0" speed="22.22" length="2.41" shape="612.78,1780.29 613.58,1780.74 614.35,1782.02"/>
+ </edge>
+ <edge id=":728492361_0" function="internal">
+ <lane id=":728492361_0_0" index="0" speed="22.22" length="7.09" shape="614.69,1843.16 613.27,1843.31 612.21,1844.22 611.52,1845.90 611.21,1848.32"/>
+ </edge>
+ <edge id=":728492361_1" function="internal">
+ <lane id=":728492361_1_0" index="0" speed="22.22" length="11.09" shape="614.69,1843.16 611.59,1842.95 609.26,1843.37 607.04,1844.37 604.29,1845.96"/>
+ </edge>
+ <edge id=":728492361_2" function="internal">
+ <lane id=":728492361_2_0" index="0" speed="22.22" length="10.37" shape="614.69,1843.16 611.86,1842.39 609.88,1840.98 608.75,1838.95 608.47,1836.28"/>
+ </edge>
+ <edge id=":728492361_3" function="internal">
+ <lane id=":728492361_3_0" index="0" speed="22.22" length="4.82" shape="614.69,1843.16 613.58,1842.17 613.29,1841.30 613.81,1840.54 615.15,1839.89"/>
+ </edge>
+ <edge id=":728492361_4" function="internal">
+ <lane id=":728492361_4_0" index="0" speed="22.22" length="5.40" shape="611.76,1836.44 611.92,1837.76 612.54,1838.78 613.61,1839.49 615.15,1839.89"/>
+ </edge>
+ <edge id=":728492361_5" function="internal">
+ <lane id=":728492361_5_0" index="0" speed="22.22" length="11.90" shape="611.76,1836.44 611.61,1839.70 611.48,1842.38 611.36,1845.06 611.21,1848.32"/>
+ </edge>
+ <edge id=":728492361_6" function="internal">
+ <lane id=":728492361_6_0" index="0" speed="22.22" length="7.80" shape="611.76,1836.44 611.20,1839.05 609.77,1841.50 608.15,1843.12"/>
+ </edge>
+ <edge id=":728492361_16" function="internal">
+ <lane id=":728492361_16_0" index="0" speed="22.22" length="4.81" shape="608.15,1843.12 607.46,1843.81 604.29,1845.96"/>
+ </edge>
+ <edge id=":728492361_7" function="internal">
+ <lane id=":728492361_7_0" index="0" speed="22.22" length="2.41" shape="611.76,1836.44 610.88,1837.64 610.04,1838.01"/>
+ </edge>
+ <edge id=":728492361_17" function="internal">
+ <lane id=":728492361_17_0" index="0" speed="22.22" length="2.41" shape="610.04,1838.01 609.23,1837.56 608.47,1836.28"/>
+ </edge>
+ <edge id=":728492361_8" function="internal">
+ <lane id=":728492361_8_0" index="0" speed="22.22" length="9.32" shape="602.64,1843.10 605.12,1841.46 606.92,1839.77 608.04,1838.04 608.47,1836.28"/>
+ </edge>
+ <edge id=":728492361_9" function="internal">
+ <lane id=":728492361_9_0" index="0" speed="22.22" length="13.19" shape="602.64,1843.10 605.72,1841.45 608.66,1840.30 611.71,1839.75 615.15,1839.89"/>
+ </edge>
+ <edge id=":728492361_10" function="internal">
+ <lane id=":728492361_10_0" index="0" speed="22.22" length="14.02" shape="602.64,1843.10 606.57,1841.47 609.31,1841.80 610.85,1844.08 611.21,1848.32"/>
+ </edge>
+ <edge id=":728492361_11" function="internal">
+ <lane id=":728492361_11_0" index="0" speed="22.22" length="4.82" shape="602.64,1843.10 604.12,1843.20 604.89,1843.71 604.95,1844.63 604.29,1845.96"/>
+ </edge>
+ <edge id=":728492361_12" function="internal">
+ <lane id=":728492361_12_0" index="0" speed="22.22" length="5.94" shape="607.91,1848.17 607.76,1846.38 607.11,1845.41 605.95,1845.27 604.29,1845.96"/>
+ </edge>
+ <edge id=":728492361_13" function="internal">
+ <lane id=":728492361_13_0" index="0" speed="22.22" length="11.90" shape="607.91,1848.17 608.06,1844.91 608.19,1842.23 608.31,1839.55 608.47,1836.28"/>
+ </edge>
+ <edge id=":728492361_14" function="internal">
+ <lane id=":728492361_14_0" index="0" speed="22.22" length="9.04" shape="607.91,1848.17 608.52,1844.19 609.93,1841.48 611.58,1840.42"/>
+ </edge>
+ <edge id=":728492361_18" function="internal">
+ <lane id=":728492361_18_0" index="0" speed="22.22" length="3.69" shape="611.58,1840.42 612.14,1840.05 615.15,1839.89"/>
+ </edge>
+ <edge id=":728492361_15" function="internal">
+ <lane id=":728492361_15_0" index="0" speed="22.22" length="2.41" shape="607.91,1848.17 608.79,1846.97 609.64,1846.60"/>
+ </edge>
+ <edge id=":728492361_19" function="internal">
+ <lane id=":728492361_19_0" index="0" speed="22.22" length="2.41" shape="609.64,1846.60 610.44,1847.05 611.21,1848.32"/>
+ </edge>
+ <edge id=":728492364_0" function="internal">
+ <lane id=":728492364_0_0" index="0" speed="22.22" length="5.02" shape="679.68,1784.01 681.06,1784.04 682.11,1783.62 682.83,1782.75 683.22,1781.42"/>
+ </edge>
+ <edge id=":728492364_1" function="internal">
+ <lane id=":728492364_1_0" index="0" speed="22.22" length="2.41" shape="679.68,1784.01 680.77,1785.03 681.04,1785.91"/>
+ </edge>
+ <edge id=":728492364_4" function="internal">
+ <lane id=":728492364_4_0" index="0" speed="22.22" length="2.41" shape="681.04,1785.91 680.50,1786.66 679.14,1787.27"/>
+ </edge>
+ <edge id=":728492364_2" function="internal">
+ <lane id=":728492364_2_0" index="0" speed="22.22" length="5.08" shape="681.86,1790.83 681.85,1789.47 681.40,1788.42 680.50,1787.69 679.14,1787.27"/>
+ </edge>
+ <edge id=":728492364_3" function="internal">
+ <lane id=":728492364_3_0" index="0" speed="22.22" length="9.50" shape="681.86,1790.83 683.22,1781.42"/>
+ </edge>
+ <edge id=":728492366_0" function="internal">
+ <lane id=":728492366_0_0" index="0" speed="22.22" length="5.40" shape="606.34,1918.53 605.78,1917.09 604.93,1916.32 603.78,1916.22 602.35,1916.80"/>
+ </edge>
+ <edge id=":728492366_1" function="internal">
+ <lane id=":728492366_1_0" index="0" speed="22.22" length="13.69" shape="606.34,1918.53 605.67,1915.05 605.31,1911.77 605.21,1908.47 605.31,1904.92"/>
+ </edge>
+ <edge id=":728492366_2" function="internal">
+ <lane id=":728492366_2_0" index="0" speed="22.22" length="13.70" shape="606.34,1918.53 606.11,1915.23 607.01,1912.26 609.05,1909.61 612.23,1907.28"/>
+ </edge>
+ <edge id=":728492366_3" function="internal">
+ <lane id=":728492366_3_0" index="0" speed="22.22" length="4.82" shape="606.34,1918.53 606.87,1917.14 607.58,1916.55 608.47,1916.76 609.56,1917.78"/>
+ </edge>
+ <edge id=":728492366_4" function="internal">
+ <lane id=":728492366_4_0" index="0" speed="22.22" length="9.46" shape="613.88,1910.14 611.59,1911.78 610.11,1913.60 609.43,1915.60 609.56,1917.78"/>
+ </edge>
+ <edge id=":728492366_5" function="internal">
+ <lane id=":728492366_5_0" index="0" speed="22.22" length="13.32" shape="613.88,1910.14 610.86,1911.88 608.11,1913.47 605.37,1915.05 602.35,1916.80"/>
+ </edge>
+ <edge id=":728492366_6" function="internal">
+ <lane id=":728492366_6_0" index="0" speed="22.22" length="8.12" shape="613.88,1910.14 609.95,1911.77 607.21,1911.45 606.59,1910.54"/>
+ </edge>
+ <edge id=":728492366_16" function="internal">
+ <lane id=":728492366_16_0" index="0" speed="22.22" length="5.92" shape="606.59,1910.54 605.66,1909.16 605.31,1904.92"/>
+ </edge>
+ <edge id=":728492366_7" function="internal">
+ <lane id=":728492366_7_0" index="0" speed="22.22" length="2.41" shape="613.88,1910.14 612.40,1910.04 611.63,1909.54"/>
+ </edge>
+ <edge id=":728492366_17" function="internal">
+ <lane id=":728492366_17_0" index="0" speed="22.22" length="2.41" shape="611.63,1909.54 611.57,1908.62 612.23,1907.28"/>
+ </edge>
+ <edge id=":728492366_8" function="internal">
+ <lane id=":728492366_8_0" index="0" speed="22.22" length="5.94" shape="608.60,1905.07 608.75,1906.87 609.41,1907.83 610.57,1907.97 612.23,1907.28"/>
+ </edge>
+ <edge id=":728492366_9" function="internal">
+ <lane id=":728492366_9_0" index="0" speed="22.22" length="12.79" shape="608.60,1905.07 608.50,1908.48 608.57,1911.47 608.90,1914.44 609.56,1917.78"/>
+ </edge>
+ <edge id=":728492366_10" function="internal">
+ <lane id=":728492366_10_0" index="0" speed="22.22" length="13.88" shape="608.60,1905.07 608.07,1908.93 606.85,1912.17 604.94,1914.79 602.35,1916.80"/>
+ </edge>
+ <edge id=":728492366_11" function="internal">
+ <lane id=":728492366_11_0" index="0" speed="22.22" length="4.82" shape="608.60,1905.07 607.72,1906.27 606.88,1906.65 606.08,1906.20 605.31,1904.92"/>
+ </edge>
+ <edge id=":728492366_12" function="internal">
+ <lane id=":728492366_12_0" index="0" speed="22.22" length="10.57" shape="600.70,1913.94 602.60,1912.44 604.00,1910.44 604.91,1907.93 605.31,1904.92"/>
+ </edge>
+ <edge id=":728492366_13" function="internal">
+ <lane id=":728492366_13_0" index="0" speed="22.22" length="13.32" shape="600.70,1913.94 603.72,1912.20 606.46,1910.61 609.21,1909.02 612.23,1907.28"/>
+ </edge>
+ <edge id=":728492366_14" function="internal">
+ <lane id=":728492366_14_0" index="0" speed="22.22" length="7.41" shape="600.70,1913.94 603.88,1912.66 606.42,1912.87 607.48,1913.83"/>
+ </edge>
+ <edge id=":728492366_18" function="internal">
+ <lane id=":728492366_18_0" index="0" speed="22.22" length="4.55" shape="607.48,1913.83 608.31,1914.58 609.56,1917.78"/>
+ </edge>
+ <edge id=":728492366_15" function="internal">
+ <lane id=":728492366_15_0" index="0" speed="22.22" length="2.41" shape="600.70,1913.94 602.18,1914.03 602.95,1914.54"/>
+ </edge>
+ <edge id=":728492366_19" function="internal">
+ <lane id=":728492366_19_0" index="0" speed="22.22" length="2.41" shape="602.95,1914.54 603.01,1915.46 602.35,1916.80"/>
+ </edge>
+ <edge id=":728492371_0" function="internal">
+ <lane id=":728492371_0_0" index="0" speed="22.22" length="5.37" shape="673.84,1854.10 673.50,1852.88 672.75,1851.93 671.61,1851.27 670.08,1850.89"/>
+ </edge>
+ <edge id=":728492371_1" function="internal">
+ <lane id=":728492371_1_0" index="0" speed="22.22" length="9.12" shape="673.84,1854.10 674.04,1844.99"/>
+ </edge>
+ <edge id=":728492371_2" function="internal">
+ <lane id=":728492371_2_0" index="0" speed="22.22" length="4.99" shape="670.53,1847.62 671.90,1847.61 672.94,1847.17 673.65,1846.30 674.04,1844.99"/>
+ </edge>
+ <edge id=":728492371_3" function="internal">
+ <lane id=":728492371_3_0" index="0" speed="22.22" length="2.41" shape="670.53,1847.62 671.65,1848.61 671.94,1849.48"/>
+ </edge>
+ <edge id=":728492371_4" function="internal">
+ <lane id=":728492371_4_0" index="0" speed="22.22" length="2.41" shape="671.94,1849.48 671.42,1850.24 670.08,1850.89"/>
+ </edge>
+ <edge id=":728492372_0" function="internal">
+ <lane id=":728492372_0_0" index="0" speed="22.22" length="13.05" shape="630.73,1695.58 627.96,1697.55 625.86,1699.94 624.42,1702.74 623.64,1705.97"/>
+ </edge>
+ <edge id=":728492372_1" function="internal">
+ <lane id=":728492372_1_0" index="0" speed="22.22" length="15.75" shape="630.73,1695.58 627.36,1697.47 623.85,1699.41 620.32,1701.31 616.90,1703.12"/>
+ </edge>
+ <edge id=":728492372_2" function="internal">
+ <lane id=":728492372_2_0" index="0" speed="22.22" length="14.69" shape="630.73,1695.58 626.54,1697.31 623.75,1696.95 622.34,1694.51 622.31,1689.98"/>
+ </edge>
+ <edge id=":728492372_3" function="internal">
+ <lane id=":728492372_3_0" index="0" speed="22.22" length="4.82" shape="630.73,1695.58 629.24,1695.47 628.48,1694.96 628.43,1694.04 629.09,1692.71"/>
+ </edge>
+ <edge id=":728492372_4" function="internal">
+ <lane id=":728492372_4_0" index="0" speed="22.22" length="6.12" shape="625.59,1690.38 625.60,1692.26 626.19,1693.28 627.35,1693.43 629.09,1692.71"/>
+ </edge>
+ <edge id=":728492372_5" function="internal">
+ <lane id=":728492372_5_0" index="0" speed="22.22" length="15.71" shape="625.59,1690.38 625.12,1694.21 624.63,1698.17 624.13,1702.14 623.64,1705.97"/>
+ </edge>
+ <edge id=":728492372_6" function="internal">
+ <lane id=":728492372_6_0" index="0" speed="22.22" length="10.81" shape="625.59,1690.38 624.65,1694.46 622.89,1697.94 621.08,1699.97"/>
+ </edge>
+ <edge id=":728492372_16" function="internal">
+ <lane id=":728492372_16_0" index="0" speed="22.22" length="5.26" shape="621.08,1699.97 620.31,1700.83 616.90,1703.12"/>
+ </edge>
+ <edge id=":728492372_7" function="internal">
+ <lane id=":728492372_7_0" index="0" speed="22.22" length="2.41" shape="625.59,1690.38 624.62,1691.51 623.75,1691.82"/>
+ </edge>
+ <edge id=":728492372_17" function="internal">
+ <lane id=":728492372_17_0" index="0" speed="22.22" length="2.41" shape="623.75,1691.82 622.99,1691.31 622.31,1689.98"/>
+ </edge>
+ <edge id=":728492372_8" function="internal">
+ <lane id=":728492372_8_0" index="0" speed="22.22" length="12.87" shape="615.37,1700.20 618.09,1698.37 620.16,1696.05 621.56,1693.26 622.31,1689.98"/>
+ </edge>
+ <edge id=":728492372_9" function="internal">
+ <lane id=":728492372_9_0" index="0" speed="22.22" length="15.63" shape="615.37,1700.20 618.78,1698.40 622.27,1696.51 625.74,1694.60 629.09,1692.71"/>
+ </edge>
+ <edge id=":728492372_10" function="internal">
+ <lane id=":728492372_10_0" index="0" speed="22.22" length="14.43" shape="615.37,1700.20 619.52,1698.66 622.28,1699.11 623.65,1701.55 623.64,1705.97"/>
+ </edge>
+ <edge id=":728492372_11" function="internal">
+ <lane id=":728492372_11_0" index="0" speed="22.22" length="4.82" shape="615.37,1700.20 616.85,1700.36 617.60,1700.90 617.62,1701.82 616.90,1703.12"/>
+ </edge>
+ <edge id=":728492372_12" function="internal">
+ <lane id=":728492372_12_0" index="0" speed="22.22" length="6.05" shape="620.37,1705.54 620.37,1703.69 619.80,1702.67 618.64,1702.48 616.90,1703.12"/>
+ </edge>
+ <edge id=":728492372_13" function="internal">
+ <lane id=":728492372_13_0" index="0" speed="22.22" length="15.68" shape="620.37,1705.54 620.86,1701.72 621.36,1697.76 621.85,1693.81 622.31,1689.98"/>
+ </edge>
+ <edge id=":728492372_14" function="internal">
+ <lane id=":728492372_14_0" index="0" speed="22.22" length="10.72" shape="620.37,1705.54 621.33,1701.55 623.10,1698.08 624.90,1696.04"/>
+ </edge>
+ <edge id=":728492372_18" function="internal">
+ <lane id=":728492372_18_0" index="0" speed="22.22" length="5.38" shape="624.90,1696.04 625.69,1695.14 629.09,1692.71"/>
+ </edge>
+ <edge id=":728492372_15" function="internal">
+ <lane id=":728492372_15_0" index="0" speed="22.22" length="2.41" shape="620.37,1705.54 621.35,1704.42 622.22,1704.12"/>
+ </edge>
+ <edge id=":728492372_19" function="internal">
+ <lane id=":728492372_19_0" index="0" speed="22.22" length="2.41" shape="622.22,1704.12 622.98,1704.63 623.64,1705.97"/>
+ </edge>
+ <edge id=":733663070_0" function="internal">
+ <lane id=":733663070_0_0" index="0" speed="22.22" length="3.58" shape="718.53,1767.92 717.91,1768.38 717.42,1769.03 717.06,1769.88 716.82,1770.92"/>
+ </edge>
+ <edge id=":733663070_1" function="internal">
+ <lane id=":733663070_1_0" index="0" speed="22.22" length="6.94" shape="717.82,1764.06 716.82,1770.92"/>
+ </edge>
+ <edge id=":733663071_0" function="internal">
+ <lane id=":733663071_0_0" index="0" speed="8.33" length="7.26" shape="1458.51,1228.70 1451.60,1230.95"/>
+ </edge>
+ <edge id=":733663071_1" function="internal">
+ <lane id=":733663071_1_0" index="0" speed="8.33" length="9.41" shape="1458.51,1228.70 1450.52,1223.74"/>
+ </edge>
+ <edge id=":733663071_2" function="internal">
+ <lane id=":733663071_2_0" index="0" speed="8.33" length="4.82" shape="1458.51,1228.70 1457.45,1227.66 1457.21,1226.77 1457.77,1226.04 1459.14,1225.47"/>
+ </edge>
+ <edge id=":733663071_3" function="internal">
+ <lane id=":733663071_3_0" index="0" speed="8.33" length="7.69" shape="1452.70,1221.27 1459.14,1225.47"/>
+ </edge>
+ <edge id=":733663071_4" function="internal">
+ <lane id=":733663071_4_0" index="0" speed="8.33" length="12.31" shape="1452.70,1221.27 1455.02,1223.98 1455.61,1226.50 1454.47,1228.83 1451.60,1230.95"/>
+ </edge>
+ <edge id=":733663071_5" function="internal">
+ <lane id=":733663071_5_0" index="0" speed="8.33" length="4.82" shape="1452.70,1221.27 1453.08,1222.71 1452.85,1223.60 1451.99,1223.94 1450.52,1223.74"/>
+ </edge>
+ <edge id=":733663071_6" function="internal">
+ <lane id=":733663071_6_0" index="0" speed="8.33" length="5.48" shape="1450.03,1228.05 1451.30,1227.11 1451.81,1226.07 1451.55,1224.95 1450.52,1223.74"/>
+ </edge>
+ <edge id=":733663071_7" function="internal">
+ <lane id=":733663071_7_0" index="0" speed="8.33" length="9.48" shape="1450.03,1228.05 1459.14,1225.47"/>
+ </edge>
+ <edge id=":733663071_8" function="internal">
+ <lane id=":733663071_8_0" index="0" speed="8.33" length="4.82" shape="1450.03,1228.05 1451.51,1228.19 1452.26,1228.71 1452.30,1229.64 1451.60,1230.95"/>
+ </edge>
+ <edge id=":733663076_0" function="internal">
+ <lane id=":733663076_0_0" index="0" speed="25.00" length="19.34" shape="847.51,1676.50 845.87,1675.64 842.15,1675.41 836.35,1675.81 828.48,1676.85"/>
+ </edge>
+ <edge id=":733663076_1" function="internal">
+ <lane id=":733663076_1_0" index="0" speed="27.78" length="19.37" shape="847.51,1676.50 846.12,1675.90 842.48,1675.16 836.60,1674.29 828.47,1673.29"/>
+ </edge>
+ <edge id=":733663076_2" function="internal">
+ <lane id=":733663076_2_0" index="0" speed="25.00" length="9.00" shape="847.51,1676.50 843.38,1668.51"/>
+ </edge>
+ <edge id=":733663076_3" function="internal">
+ <lane id=":733663076_3_0" index="0" speed="27.78" length="2.41" shape="847.51,1676.50 847.68,1675.02 848.22,1674.28"/>
+ </edge>
+ <edge id=":733663076_16" function="internal">
+ <lane id=":733663076_16_0" index="0" speed="27.78" length="2.41" shape="848.22,1674.28 849.14,1674.26 850.45,1674.98"/>
+ </edge>
+ <edge id=":733663076_4" function="internal">
+ <lane id=":733663076_4_0" index="0" speed="25.00" length="9.00" shape="846.30,1666.99 850.45,1674.98"/>
+ </edge>
+ <edge id=":733663076_5" function="internal">
+ <lane id=":733663076_5_0" index="0" speed="22.22" length="22.75" shape="846.30,1666.99 846.48,1670.10 843.57,1672.77 837.57,1675.02 828.48,1676.85"/>
+ </edge>
+ <edge id=":733663076_6" function="internal">
+ <lane id=":733663076_6_0" index="0" speed="25.00" length="23.13" shape="846.30,1666.99 846.92,1670.72 844.15,1673.01 838.00,1673.87 828.47,1673.29"/>
+ </edge>
+ <edge id=":733663076_7" function="internal">
+ <lane id=":733663076_7_0" index="0" speed="22.22" length="4.81" shape="846.30,1666.99 846.14,1668.47 845.60,1669.21 844.68,1669.23 843.38,1668.51"/>
+ </edge>
+ <edge id=":733663076_8" function="internal">
+ <lane id=":733663076_8_0" index="0" speed="22.22" length="16.25" shape="829.26,1668.17 836.35,1670.08 841.07,1670.78 843.41,1670.25 843.38,1668.51"/>
+ </edge>
+ <edge id=":733663076_9" function="internal">
+ <lane id=":733663076_9_0" index="0" speed="25.00" length="22.26" shape="829.26,1668.17 838.45,1670.99 845.04,1673.07 849.04,1674.40 850.45,1674.98"/>
+ </edge>
+ <edge id=":733663076_10" function="internal">
+ <lane id=":733663076_10_0" index="0" speed="22.22" length="21.53" shape="829.26,1668.17 836.25,1670.86 838.44,1673.20 835.85,1675.20 828.48,1676.85"/>
+ </edge>
+ <edge id=":733663076_11" function="internal">
+ <lane id=":733663076_11_0" index="0" speed="25.00" length="29.15" shape="829.26,1668.17 839.54,1671.64 842.84,1673.65 839.15,1674.20 828.47,1673.29"/>
+ </edge>
+ <edge id=":733663076_12" function="internal">
+ <lane id=":733663076_12_0" index="0" speed="25.00" length="15.67" shape="828.98,1670.02 835.93,1670.63 840.65,1670.58 843.13,1669.87 843.38,1668.51"/>
+ </edge>
+ <edge id=":733663076_13" function="internal">
+ <lane id=":733663076_13_0" index="0" speed="27.78" length="22.25" shape="828.98,1670.02 837.86,1671.21 844.40,1672.43 848.59,1673.69 850.45,1674.98"/>
+ </edge>
+ <edge id=":733663076_14" function="internal">
+ <lane id=":733663076_14_0" index="0" speed="25.00" length="16.07" shape="828.98,1670.02 838.42,1671.55 841.48,1673.19 838.81,1674.62"/>
+ </edge>
+ <edge id=":733663076_17" function="internal">
+ <lane id=":733663076_17_0" index="0" speed="25.00" length="10.60" shape="838.81,1674.62 838.17,1674.96 828.48,1676.85"/>
+ </edge>
+ <edge id=":733663076_15" function="internal">
+ <lane id=":733663076_15_0" index="0" speed="27.78" length="2.41" shape="828.98,1670.02 830.07,1671.03 830.36,1671.91"/>
+ </edge>
+ <edge id=":733663076_18" function="internal">
+ <lane id=":733663076_18_0" index="0" speed="27.78" length="2.41" shape="830.36,1671.91 829.82,1672.66 828.47,1673.29"/>
+ </edge>
+ <edge id=":733663078_0" function="internal">
+ <lane id=":733663078_0_0" index="0" speed="8.33" length="5.30" shape="1440.88,1206.29 1440.27,1204.92 1439.39,1204.18 1438.25,1204.08 1436.84,1204.61"/>
+ </edge>
+ <edge id=":733663078_1" function="internal">
+ <lane id=":733663078_1_0" index="0" speed="8.33" length="9.01" shape="1440.88,1206.29 1440.24,1197.30"/>
+ </edge>
+ <edge id=":733663078_2" function="internal">
+ <lane id=":733663078_2_0" index="0" speed="8.33" length="4.82" shape="1440.88,1206.29 1441.34,1204.88 1442.02,1204.26 1442.92,1204.43 1444.05,1205.39"/>
+ </edge>
+ <edge id=":733663078_3" function="internal">
+ <lane id=":733663078_3_0" index="0" speed="8.33" length="7.10" shape="1443.38,1198.33 1444.05,1205.39"/>
+ </edge>
+ <edge id=":733663078_4" function="internal">
+ <lane id=":733663078_4_0" index="0" speed="8.33" length="9.06" shape="1443.38,1198.33 1436.84,1204.61"/>
+ </edge>
+ <edge id=":733663078_5" function="internal">
+ <lane id=":733663078_5_0" index="0" speed="8.33" length="4.82" shape="1443.38,1198.33 1442.21,1199.25 1441.29,1199.38 1440.64,1198.74 1440.24,1197.30"/>
+ </edge>
+ <edge id=":733663078_6" function="internal">
+ <lane id=":733663078_6_0" index="0" speed="8.33" length="6.67" shape="1435.24,1201.72 1440.24,1197.30"/>
+ </edge>
+ <edge id=":733663078_7" function="internal">
+ <lane id=":733663078_7_0" index="0" speed="8.33" length="11.57" shape="1435.24,1201.72 1438.31,1200.56 1440.81,1200.78 1442.72,1202.39 1444.05,1205.39"/>
+ </edge>
+ <edge id=":733663078_8" function="internal">
+ <lane id=":733663078_8_0" index="0" speed="8.33" length="4.82" shape="1435.24,1201.72 1436.73,1201.85 1437.49,1202.37 1437.53,1203.29 1436.84,1204.61"/>
+ </edge>
+ <edge id=":733663082_0" function="internal">
+ <lane id=":733663082_0_0" index="0" speed="22.22" length="6.62" shape="710.79,1872.33 708.97,1873.44 707.73,1874.62 707.06,1875.88 706.96,1877.23"/>
+ </edge>
+ <edge id=":733663082_1" function="internal">
+ <lane id=":733663082_1_0" index="0" speed="22.22" length="8.51" shape="710.79,1872.33 702.52,1874.29"/>
+ </edge>
+ <edge id=":733663082_2" function="internal">
+ <lane id=":733663082_2_0" index="0" speed="22.22" length="2.41" shape="710.79,1872.33 709.32,1872.15 708.57,1871.60"/>
+ </edge>
+ <edge id=":733663082_9" function="internal">
+ <lane id=":733663082_9_0" index="0" speed="22.22" length="2.41" shape="708.57,1871.60 708.57,1870.68 709.30,1869.39"/>
+ </edge>
+ <edge id=":733663082_3" function="internal">
+ <lane id=":733663082_3_0" index="0" speed="22.22" length="5.39" shape="705.40,1867.44 705.89,1868.91 706.70,1869.73 707.84,1869.88 709.30,1869.39"/>
+ </edge>
+ <edge id=":733663082_4" function="internal">
+ <lane id=":733663082_4_0" index="0" speed="22.22" length="9.91" shape="705.40,1867.44 706.96,1877.23"/>
+ </edge>
+ <edge id=":733663082_5" function="internal">
+ <lane id=":733663082_5_0" index="0" speed="22.22" length="8.66" shape="705.40,1867.44 705.69,1870.47 705.30,1872.63 704.24,1873.90 702.52,1874.29"/>
+ </edge>
+ <edge id=":733663082_6" function="internal">
+ <lane id=":733663082_6_0" index="0" speed="22.22" length="6.90" shape="702.59,1870.99 709.30,1869.39"/>
+ </edge>
+ <edge id=":733663082_7" function="internal">
+ <lane id=":733663082_7_0" index="0" speed="22.22" length="4.37" shape="702.59,1870.99 704.19,1871.41 705.45,1872.59 705.88,1873.50"/>
+ </edge>
+ <edge id=":733663082_10" function="internal">
+ <lane id=":733663082_10_0" index="0" speed="22.22" length="3.90" shape="705.88,1873.50 706.37,1874.53 706.96,1877.23"/>
+ </edge>
+ <edge id=":733663082_8" function="internal">
+ <lane id=":733663082_8_0" index="0" speed="22.22" length="2.41" shape="702.59,1870.99 703.81,1871.85 704.20,1872.68"/>
+ </edge>
+ <edge id=":733663082_11" function="internal">
+ <lane id=":733663082_11_0" index="0" speed="22.22" length="2.41" shape="704.20,1872.68 703.77,1873.50 702.52,1874.29"/>
+ </edge>
+ <edge id=":733663089_0" function="internal">
+ <lane id=":733663089_0_0" index="0" speed="18.06" length="5.36" shape="1241.77,1761.65 1240.50,1762.56 1239.81,1763.60 1239.68,1764.77 1240.13,1766.06"/>
+ </edge>
+ <edge id=":733663089_1" function="internal">
+ <lane id=":733663089_1_0" index="0" speed="13.89" length="4.82" shape="1241.77,1761.65 1240.29,1761.52 1239.53,1760.99 1239.49,1760.07 1240.18,1758.75"/>
+ </edge>
+ <edge id=":733663089_2" function="internal">
+ <lane id=":733663089_2_0" index="0" speed="18.06" length="5.16" shape="1236.06,1757.26 1236.77,1758.51 1237.70,1759.18 1238.84,1759.26 1240.18,1758.75"/>
+ </edge>
+ <edge id=":733663089_3" function="internal">
+ <lane id=":733663089_3_0" index="0" speed="22.22" length="9.70" shape="1236.06,1757.26 1240.13,1766.06"/>
+ </edge>
+ <edge id=":733663093_0" function="internal">
+ <lane id=":733663093_0_0" index="0" speed="13.89" length="5.00" shape="1372.18,1663.60 1371.39,1662.48 1370.42,1661.89 1369.30,1661.82 1368.00,1662.27"/>
+ </edge>
+ <edge id=":733663093_1" function="internal">
+ <lane id=":733663093_1_0" index="0" speed="13.89" length="9.52" shape="1372.18,1663.60 1367.81,1655.14"/>
+ </edge>
+ <edge id=":733663093_2" function="internal">
+ <lane id=":733663093_2_0" index="0" speed="13.89" length="7.88" shape="1372.18,1663.60 1371.07,1661.02 1370.66,1658.97 1370.97,1657.45 1371.99,1656.45"/>
+ </edge>
+ <edge id=":733663093_3" function="internal">
+ <lane id=":733663093_3_0" index="0" speed="13.89" length="6.25" shape="1373.54,1659.37 1368.00,1662.27"/>
+ </edge>
+ <edge id=":733663093_4" function="internal">
+ <lane id=":733663093_4_0" index="0" speed="13.89" length="4.75" shape="1373.54,1659.37 1372.14,1659.66 1370.71,1659.05 1369.49,1657.77"/>
+ </edge>
+ <edge id=":733663093_9" function="internal">
+ <lane id=":733663093_9_0" index="0" speed="13.89" length="3.12" shape="1369.49,1657.77 1369.27,1657.55 1367.81,1655.14"/>
+ </edge>
+ <edge id=":733663093_5" function="internal">
+ <lane id=":733663093_5_0" index="0" speed="13.89" length="2.41" shape="1373.54,1659.37 1372.06,1659.22 1371.31,1658.68"/>
+ </edge>
+ <edge id=":733663093_10" function="internal">
+ <lane id=":733663093_10_0" index="0" speed="13.89" length="2.41" shape="1371.31,1658.68 1371.29,1657.76 1371.99,1656.45"/>
+ </edge>
+ <edge id=":733663093_6" function="internal">
+ <lane id=":733663093_6_0" index="0" speed="13.89" length="5.02" shape="1366.48,1659.34 1367.60,1658.55 1368.19,1657.58 1368.26,1656.44 1367.81,1655.14"/>
+ </edge>
+ <edge id=":733663093_7" function="internal">
+ <lane id=":733663093_7_0" index="0" speed="13.89" length="6.22" shape="1366.48,1659.34 1371.99,1656.45"/>
+ </edge>
+ <edge id=":733663093_8" function="internal">
+ <lane id=":733663093_8_0" index="0" speed="13.89" length="2.41" shape="1366.48,1659.34 1367.96,1659.51 1368.71,1660.05"/>
+ </edge>
+ <edge id=":733663093_11" function="internal">
+ <lane id=":733663093_11_0" index="0" speed="13.89" length="2.41" shape="1368.71,1660.05 1368.72,1660.97 1368.00,1662.27"/>
+ </edge>
+ <edge id=":733663096_0" function="internal">
+ <lane id=":733663096_0_0" index="0" speed="9.72" length="5.02" shape="1254.67,1758.14 1253.86,1757.03 1252.89,1756.44 1251.76,1756.40 1250.47,1756.88"/>
+ </edge>
+ <edge id=":733663096_1" function="internal">
+ <lane id=":733663096_1_0" index="0" speed="5.56" length="13.48" shape="1254.67,1758.14 1253.06,1755.02 1251.66,1752.11 1250.31,1749.18 1248.87,1745.98"/>
+ </edge>
+ <edge id=":733663096_2" function="internal">
+ <lane id=":733663096_2_0" index="0" speed="9.72" length="14.00" shape="1254.67,1758.14 1253.77,1755.43 1253.70,1752.29 1254.45,1748.70 1256.04,1744.66"/>
+ </edge>
+ <edge id=":733663096_3" function="internal">
+ <lane id=":733663096_3_0" index="0" speed="5.56" length="4.82" shape="1254.67,1758.14 1254.82,1756.66 1255.36,1755.91 1256.28,1755.89 1257.59,1756.60"/>
+ </edge>
+ <edge id=":733663096_4" function="internal">
+ <lane id=":733663096_4_0" index="0" speed="9.72" length="10.96" shape="1259.01,1746.06 1257.69,1749.35 1257.01,1752.20 1256.98,1754.62 1257.59,1756.60"/>
+ </edge>
+ <edge id=":733663096_5" function="internal">
+ <lane id=":733663096_5_0" index="0" speed="13.89" length="14.03" shape="1259.01,1746.06 1257.40,1749.32 1255.59,1752.27 1253.36,1754.81 1250.47,1756.88"/>
+ </edge>
+ <edge id=":733663096_6" function="internal">
+ <lane id=":733663096_6_0" index="0" speed="9.72" length="9.16" shape="1259.01,1746.06 1256.44,1750.19 1253.90,1751.55 1252.66,1750.87"/>
+ </edge>
+ <edge id=":733663096_16" function="internal">
+ <lane id=":733663096_16_0" index="0" speed="9.72" length="6.34" shape="1252.66,1750.87 1251.37,1750.15 1248.87,1745.98"/>
+ </edge>
+ <edge id=":733663096_7" function="internal">
+ <lane id=":733663096_7_0" index="0" speed="13.89" length="2.40" shape="1259.01,1746.06 1257.74,1746.82 1256.82,1746.85"/>
+ </edge>
+ <edge id=":733663096_17" function="internal">
+ <lane id=":733663096_17_0" index="0" speed="13.89" length="2.40" shape="1256.82,1746.85 1256.26,1746.13 1256.04,1744.66"/>
+ </edge>
+ <edge id=":733663096_8" function="internal">
+ <lane id=":733663096_8_0" index="0" speed="9.72" length="6.35" shape="1251.88,1744.63 1252.90,1746.33 1253.94,1746.91 1254.98,1746.35 1256.04,1744.66"/>
+ </edge>
+ <edge id=":733663096_9" function="internal">
+ <lane id=":733663096_9_0" index="0" speed="5.56" length="13.26" shape="1251.88,1744.63 1253.30,1747.80 1254.62,1750.67 1256.00,1753.50 1257.59,1756.60"/>
+ </edge>
+ <edge id=":733663096_10" function="internal">
+ <lane id=":733663096_10_0" index="0" speed="9.72" length="13.65" shape="1251.88,1744.63 1253.34,1748.85 1253.59,1752.30 1252.64,1754.97 1250.47,1756.88"/>
+ </edge>
+ <edge id=":733663096_11" function="internal">
+ <lane id=":733663096_11_0" index="0" speed="5.56" length="4.82" shape="1251.88,1744.63 1251.63,1746.09 1251.05,1746.81 1250.13,1746.77 1248.87,1745.98"/>
+ </edge>
+ <edge id=":733663096_12" function="internal">
+ <lane id=":733663096_12_0" index="0" speed="9.72" length="8.71" shape="1248.88,1753.99 1249.96,1752.89 1250.31,1751.20 1249.95,1748.89 1248.87,1745.98"/>
+ </edge>
+ <edge id=":733663096_13" function="internal">
+ <lane id=":733663096_13_0" index="0" speed="13.89" length="12.03" shape="1248.88,1753.99 1251.55,1752.15 1253.31,1750.12 1254.64,1747.69 1256.04,1744.66"/>
+ </edge>
+ <edge id=":733663096_14" function="internal">
+ <lane id=":733663096_14_0" index="0" speed="9.72" length="5.94" shape="1248.88,1753.99 1251.56,1752.98 1253.90,1753.08 1254.54,1753.47"/>
+ </edge>
+ <edge id=":733663096_18" function="internal">
+ <lane id=":733663096_18_0" index="0" speed="9.72" length="4.45" shape="1254.54,1753.47 1255.91,1754.29 1257.59,1756.60"/>
+ </edge>
+ <edge id=":733663096_15" function="internal">
+ <lane id=":733663096_15_0" index="0" speed="13.89" length="2.41" shape="1248.88,1753.99 1250.36,1754.11 1251.12,1754.64"/>
+ </edge>
+ <edge id=":733663096_19" function="internal">
+ <lane id=":733663096_19_0" index="0" speed="13.89" length="2.41" shape="1251.12,1754.64 1251.16,1755.56 1250.47,1756.88"/>
+ </edge>
+ <edge id=":733663116_0" function="internal">
+ <lane id=":733663116_0_0" index="0" speed="25.00" length="5.01" shape="858.46,1697.66 857.66,1696.54 856.70,1695.95 855.57,1695.89 854.28,1696.35"/>
+ </edge>
+ <edge id=":733663116_1" function="internal">
+ <lane id=":733663116_1_0" index="0" speed="27.78" length="6.20" shape="858.46,1697.66 855.61,1692.15"/>
+ </edge>
+ <edge id=":733663116_2" function="internal">
+ <lane id=":733663116_2_0" index="0" speed="27.78" length="2.41" shape="858.46,1697.66 858.63,1696.18 859.17,1695.44"/>
+ </edge>
+ <edge id=":733663116_6" function="internal">
+ <lane id=":733663116_6_0" index="0" speed="27.78" length="2.41" shape="859.17,1695.44 860.09,1695.42 861.39,1696.15"/>
+ </edge>
+ <edge id=":733663116_3" function="internal">
+ <lane id=":733663116_3_0" index="0" speed="27.78" length="6.20" shape="858.54,1690.64 861.39,1696.15"/>
+ </edge>
+ <edge id=":733663116_4" function="internal">
+ <lane id=":733663116_4_0" index="0" speed="25.00" length="4.71" shape="858.54,1690.64 858.80,1692.01 858.18,1693.42 856.90,1694.65"/>
+ </edge>
+ <edge id=":733663116_7" function="internal">
+ <lane id=":733663116_7_0" index="0" speed="25.00" length="3.13" shape="856.90,1694.65 856.67,1694.87 854.28,1696.35"/>
+ </edge>
+ <edge id=":733663116_5" function="internal">
+ <lane id=":733663116_5_0" index="0" speed="27.78" length="2.41" shape="858.54,1690.64 858.38,1692.12 857.84,1692.86"/>
+ </edge>
+ <edge id=":733663116_8" function="internal">
+ <lane id=":733663116_8_0" index="0" speed="27.78" length="2.41" shape="857.84,1692.86 856.91,1692.87 855.61,1692.15"/>
+ </edge>
+ <edge id=":733663121_0" function="internal">
+ <lane id=":733663121_0_0" index="0" speed="13.89" length="5.04" shape="1300.78,1697.16 1299.67,1697.96 1299.08,1698.93 1299.02,1700.08 1299.48,1701.39"/>
+ </edge>
+ <edge id=":733663121_1" function="internal">
+ <lane id=":733663121_1_0" index="0" speed="13.89" length="6.25" shape="1300.78,1697.16 1295.28,1700.13"/>
+ </edge>
+ <edge id=":733663121_2" function="internal">
+ <lane id=":733663121_2_0" index="0" speed="13.89" length="2.41" shape="1300.78,1697.16 1299.31,1697.00 1298.56,1696.46"/>
+ </edge>
+ <edge id=":733663121_9" function="internal">
+ <lane id=":733663121_9_0" index="0" speed="13.89" length="2.41" shape="1298.56,1696.46 1298.55,1695.54 1299.26,1694.23"/>
+ </edge>
+ <edge id=":733663121_3" function="internal">
+ <lane id=":733663121_3_0" index="0" speed="13.89" length="5.00" shape="1295.08,1692.91 1295.88,1694.02 1296.84,1694.62 1297.97,1694.69 1299.26,1694.23"/>
+ </edge>
+ <edge id=":733663121_4" function="internal">
+ <lane id=":733663121_4_0" index="0" speed="13.89" length="9.55" shape="1295.08,1692.91 1299.48,1701.39"/>
+ </edge>
+ <edge id=":733663121_5" function="internal">
+ <lane id=":733663121_5_0" index="0" speed="13.89" length="7.94" shape="1295.08,1692.91 1296.20,1695.49 1296.60,1697.56 1296.30,1699.10 1295.28,1700.13"/>
+ </edge>
+ <edge id=":733663121_6" function="internal">
+ <lane id=":733663121_6_0" index="0" speed="13.89" length="6.35" shape="1293.67,1697.24 1299.26,1694.23"/>
+ </edge>
+ <edge id=":733663121_7" function="internal">
+ <lane id=":733663121_7_0" index="0" speed="13.89" length="4.81" shape="1293.67,1697.24 1295.10,1696.91 1296.54,1697.49 1297.79,1698.77"/>
+ </edge>
+ <edge id=":733663121_10" function="internal">
+ <lane id=":733663121_10_0" index="0" speed="13.89" length="3.12" shape="1297.79,1698.77 1298.00,1698.98 1299.48,1701.39"/>
+ </edge>
+ <edge id=":733663121_8" function="internal">
+ <lane id=":733663121_8_0" index="0" speed="13.89" length="2.41" shape="1293.67,1697.24 1295.15,1697.36 1295.92,1697.88"/>
+ </edge>
+ <edge id=":733663121_11" function="internal">
+ <lane id=":733663121_11_0" index="0" speed="13.89" length="2.41" shape="1295.92,1697.88 1295.96,1698.80 1295.28,1700.13"/>
+ </edge>
+ <edge id=":733663131_0" function="internal">
+ <lane id=":733663131_0_0" index="0" speed="18.06" length="5.13" shape="1443.87,1625.63 1443.05,1624.53 1442.06,1623.96 1440.89,1623.92 1439.54,1624.42"/>
+ </edge>
+ <edge id=":733663131_1" function="internal">
+ <lane id=":733663131_1_0" index="0" speed="22.22" length="9.58" shape="1443.87,1625.63 1439.18,1617.28"/>
+ </edge>
+ <edge id=":733663131_2" function="internal">
+ <lane id=":733663131_2_0" index="0" speed="18.06" length="5.06" shape="1437.99,1621.50 1439.12,1620.68 1439.70,1619.70 1439.72,1618.57 1439.18,1617.28"/>
+ </edge>
+ <edge id=":733663131_3" function="internal">
+ <lane id=":733663131_3_0" index="0" speed="13.89" length="4.82" shape="1437.99,1621.50 1439.47,1621.65 1440.22,1622.19 1440.25,1623.11 1439.54,1624.42"/>
+ </edge>
+ <edge id=":733663136_0" function="internal">
+ <lane id=":733663136_0_0" index="0" speed="25.00" length="5.02" shape="900.49,1778.89 899.69,1777.78 898.72,1777.19 897.58,1777.12 896.28,1777.58"/>
+ </edge>
+ <edge id=":733663136_1" function="internal">
+ <lane id=":733663136_1_0" index="0" speed="27.78" length="9.49" shape="900.49,1778.89 896.11,1770.46"/>
+ </edge>
+ <edge id=":733663136_2" function="internal">
+ <lane id=":733663136_2_0" index="0" speed="27.78" length="2.41" shape="900.49,1778.89 900.65,1777.41 901.19,1776.66"/>
+ </edge>
+ <edge id=":733663136_9" function="internal">
+ <lane id=":733663136_9_0" index="0" speed="27.78" length="2.41" shape="901.19,1776.66 902.11,1776.64 903.41,1777.36"/>
+ </edge>
+ <edge id=":733663136_3" function="internal">
+ <lane id=":733663136_3_0" index="0" speed="27.78" length="9.48" shape="899.04,1768.95 903.41,1777.36"/>
+ </edge>
+ <edge id=":733663136_4" function="internal">
+ <lane id=":733663136_4_0" index="0" speed="25.00" length="7.13" shape="899.04,1768.95 899.97,1771.63 899.82,1773.96 898.79,1775.62"/>
+ </edge>
+ <edge id=":733663136_10" function="internal">
+ <lane id=":733663136_10_0" index="0" speed="25.00" length="3.21" shape="898.79,1775.62 898.59,1775.94 896.28,1777.58"/>
+ </edge>
+ <edge id=":733663136_5" function="internal">
+ <lane id=":733663136_5_0" index="0" speed="27.78" length="2.41" shape="899.04,1768.95 898.88,1770.43 898.33,1771.17"/>
+ </edge>
+ <edge id=":733663136_11" function="internal">
+ <lane id=":733663136_11_0" index="0" speed="27.78" length="2.41" shape="898.33,1771.17 897.41,1771.18 896.11,1770.46"/>
+ </edge>
+ <edge id=":733663136_6" function="internal">
+ <lane id=":733663136_6_0" index="0" speed="25.00" length="5.00" shape="894.77,1774.64 895.89,1773.85 896.49,1772.89 896.56,1771.76 896.11,1770.46"/>
+ </edge>
+ <edge id=":733663136_7" function="internal">
+ <lane id=":733663136_7_0" index="0" speed="25.00" length="10.31" shape="894.77,1774.64 897.45,1773.72 899.78,1773.86 901.77,1775.07 903.41,1777.36"/>
+ </edge>
+ <edge id=":733663136_8" function="internal">
+ <lane id=":733663136_8_0" index="0" speed="22.22" length="4.82" shape="894.77,1774.64 896.25,1774.81 896.99,1775.36 897.00,1776.28 896.28,1777.58"/>
+ </edge>
+ <edge id=":767282288_0" function="internal">
+ <lane id=":767282288_0_0" index="0" speed="16.67" length="3.19" shape="946.92,1188.82 946.70,1188.83 946.16,1189.07 945.28,1189.52 944.07,1190.20"/>
+ </edge>
+ <edge id=":767282288_1" function="internal">
+ <lane id=":767282288_1_0" index="0" speed="5.56" length="10.42" shape="946.92,1188.82 945.53,1186.12 944.53,1184.19 943.53,1182.25 942.13,1179.56"/>
+ </edge>
+ <edge id=":767282288_2" function="internal">
+ <lane id=":767282288_2_0" index="0" speed="16.67" length="0.22" shape="946.92,1188.82 946.85,1188.61"/>
+ </edge>
+ <edge id=":767282288_18" function="internal">
+ <lane id=":767282288_18_0" index="0" speed="16.67" length="10.72" shape="946.85,1188.61 945.91,1185.96 946.01,1183.46 947.21,1181.30 949.52,1179.50"/>
+ </edge>
+ <edge id=":767282288_3" function="internal">
+ <lane id=":767282288_3_0" index="0" speed="5.56" length="2.41" shape="946.92,1188.82 947.08,1187.34 947.63,1186.59"/>
+ </edge>
+ <edge id=":767282288_19" function="internal">
+ <lane id=":767282288_19_0" index="0" speed="5.56" length="2.41" shape="947.63,1186.59 948.55,1186.58 949.85,1187.30"/>
+ </edge>
+ <edge id=":767282288_4" function="internal">
+ <lane id=":767282288_4_0" index="0" speed="16.67" length="3.62" shape="952.78,1185.24 951.44,1186.02 950.50,1186.63 949.97,1187.06 949.85,1187.30"/>
+ </edge>
+ <edge id=":767282288_5" function="internal">
+ <lane id=":767282288_5_0" index="0" speed="27.78" length="10.02" shape="952.78,1185.24 950.19,1186.71 948.42,1187.71 946.65,1188.72 944.07,1190.20"/>
+ </edge>
+ <edge id=":767282288_6" function="internal">
+ <lane id=":767282288_6_0" index="0" speed="27.78" length="10.03" shape="951.15,1182.37 948.56,1183.84 946.79,1184.85 945.02,1185.85 942.43,1187.33"/>
+ </edge>
+ <edge id=":767282288_7" function="internal">
+ <lane id=":767282288_7_0" index="0" speed="16.67" length="3.51" shape="951.15,1182.37 948.40,1183.44 947.84,1183.41"/>
+ </edge>
+ <edge id=":767282288_20" function="internal">
+ <lane id=":767282288_20_0" index="0" speed="16.67" length="7.36" shape="947.84,1183.41 945.97,1183.33 943.89,1182.03 942.13,1179.56"/>
+ </edge>
+ <edge id=":767282288_8" function="internal">
+ <lane id=":767282288_8_0" index="0" speed="27.78" length="2.41" shape="951.15,1182.37 949.67,1182.26 948.90,1181.75"/>
+ </edge>
+ <edge id=":767282288_21" function="internal">
+ <lane id=":767282288_21_0" index="0" speed="27.78" length="2.41" shape="948.90,1181.75 948.85,1180.83 949.52,1179.50"/>
+ </edge>
+ <edge id=":767282288_9" function="internal">
+ <lane id=":767282288_9_0" index="0" speed="16.67" length="3.17" shape="945.06,1178.04 945.27,1178.01 945.81,1177.76 946.68,1177.30 947.89,1176.63"/>
+ </edge>
+ <edge id=":767282288_10" function="internal">
+ <lane id=":767282288_10_0" index="0" speed="5.56" length="10.43" shape="945.06,1178.04 946.46,1180.73 947.46,1182.67 948.46,1184.61 949.85,1187.30"/>
+ </edge>
+ <edge id=":767282288_11" function="internal">
+ <lane id=":767282288_11_0" index="0" speed="16.67" length="0.18" shape="945.06,1178.04 945.12,1178.20"/>
+ </edge>
+ <edge id=":767282288_22" function="internal">
+ <lane id=":767282288_22_0" index="0" speed="16.67" length="10.74" shape="945.12,1178.20 946.06,1180.87 945.96,1183.37 944.75,1185.52 942.43,1187.33"/>
+ </edge>
+ <edge id=":767282288_12" function="internal">
+ <lane id=":767282288_12_0" index="0" speed="5.56" length="2.41" shape="945.06,1178.04 944.90,1179.52 944.35,1180.26"/>
+ </edge>
+ <edge id=":767282288_23" function="internal">
+ <lane id=":767282288_23_0" index="0" speed="5.56" length="2.41" shape="944.35,1180.26 943.43,1180.28 942.13,1179.56"/>
+ </edge>
+ <edge id=":767282288_13" function="internal">
+ <lane id=":767282288_13_0" index="0" speed="16.67" length="3.63" shape="939.16,1181.60 940.51,1180.81 941.46,1180.20 942.00,1179.79 942.13,1179.56"/>
+ </edge>
+ <edge id=":767282288_14" function="internal">
+ <lane id=":767282288_14_0" index="0" speed="27.78" length="10.04" shape="939.16,1181.60 941.75,1180.12 943.52,1179.11 945.30,1178.10 947.89,1176.63"/>
+ </edge>
+ <edge id=":767282288_15" function="internal">
+ <lane id=":767282288_15_0" index="0" speed="27.78" length="10.03" shape="940.80,1184.46 943.39,1182.99 945.16,1181.98 946.93,1180.97 949.52,1179.50"/>
+ </edge>
+ <edge id=":767282288_16" function="internal">
+ <lane id=":767282288_16_0" index="0" speed="16.67" length="3.53" shape="940.80,1184.46 943.56,1183.39 944.13,1183.41"/>
+ </edge>
+ <edge id=":767282288_24" function="internal">
+ <lane id=":767282288_24_0" index="0" speed="16.67" length="7.39" shape="944.13,1183.41 945.99,1183.50 948.09,1184.81 949.85,1187.30"/>
+ </edge>
+ <edge id=":767282288_17" function="internal">
+ <lane id=":767282288_17_0" index="0" speed="27.78" length="2.41" shape="940.80,1184.46 942.28,1184.57 943.05,1185.08"/>
+ </edge>
+ <edge id=":767282288_25" function="internal">
+ <lane id=":767282288_25_0" index="0" speed="27.78" length="2.41" shape="943.05,1185.08 943.10,1186.00 942.43,1187.33"/>
+ </edge>
+ <edge id=":945146413_0" function="internal">
+ <lane id=":945146413_0_0" index="0" speed="22.22" length="5.00" shape="1427.14,1940.88 1426.03,1941.68 1425.43,1942.65 1425.37,1943.78 1425.82,1945.07"/>
+ </edge>
+ <edge id=":945146413_1" function="internal">
+ <lane id=":945146413_1_0" index="0" speed="22.22" length="6.22" shape="1427.14,1940.88 1421.62,1943.74"/>
+ </edge>
+ <edge id=":945146413_2" function="internal">
+ <lane id=":945146413_2_0" index="0" speed="22.22" length="6.21" shape="1422.95,1939.56 1425.82,1945.07"/>
+ </edge>
+ <edge id=":945146413_3" function="internal">
+ <lane id=":945146413_3_0" index="0" speed="22.22" length="5.01" shape="1422.95,1939.56 1423.41,1940.86 1423.34,1941.99 1422.74,1942.95 1421.62,1943.74"/>
+ </edge>
+ <edge id=":945146437_0" function="internal">
+ <lane id=":945146437_0_0" index="0" speed="18.06" length="5.03" shape="1475.89,2034.30 1474.78,2035.09 1474.19,2036.06 1474.13,2037.20 1474.59,2038.50"/>
+ </edge>
+ <edge id=":945146437_1" function="internal">
+ <lane id=":945146437_1_0" index="0" speed="18.06" length="6.24" shape="1475.89,2034.30 1470.39,2037.23"/>
+ </edge>
+ <edge id=":945146437_2" function="internal">
+ <lane id=":945146437_2_0" index="0" speed="22.22" length="6.23" shape="1471.70,2032.98 1474.59,2038.50"/>
+ </edge>
+ <edge id=":945146437_3" function="internal">
+ <lane id=":945146437_3_0" index="0" speed="22.22" length="5.05" shape="1471.70,2032.98 1472.16,2034.28 1472.09,2035.42 1471.50,2036.40 1470.39,2037.23"/>
+ </edge>
+ <edge id=":948350565_0" function="internal">
+ <lane id=":948350565_0_0" index="0" speed="27.78" length="9.22" shape="734.83,2322.42 734.53,2325.73 734.15,2326.78 733.69,2325.58 733.16,2322.12"/>
+ </edge>
+ <edge id=":948350565_1" function="internal">
+ <lane id=":948350565_1_0" index="0" speed="27.78" length="4.82" shape="734.83,2322.42 733.93,2323.61 733.09,2323.97 732.29,2323.50 731.54,2322.22"/>
+ </edge>
+ <edge id=":948350588_0" function="internal">
+ <lane id=":948350588_0_0" index="0" speed="25.00" length="7.82" shape="769.58,2268.95 761.77,2268.58"/>
+ </edge>
+ <edge id=":948350588_1" function="internal">
+ <lane id=":948350588_1_0" index="0" speed="27.78" length="6.56" shape="769.58,2268.95 763.93,2272.28"/>
+ </edge>
+ <edge id=":948350588_2" function="internal">
+ <lane id=":948350588_2_0" index="0" speed="27.78" length="6.55" shape="767.91,2266.11 762.26,2269.43"/>
+ </edge>
+ <edge id=":948350588_3" function="internal">
+ <lane id=":948350588_3_0" index="0" speed="27.78" length="2.41" shape="767.91,2266.11 766.42,2266.03 765.65,2265.52"/>
+ </edge>
+ <edge id=":948350588_11" function="internal">
+ <lane id=":948350588_11_0" index="0" speed="27.78" length="2.41" shape="765.65,2265.52 765.58,2264.60 766.23,2263.27"/>
+ </edge>
+ <edge id=":948350588_4" function="internal">
+ <lane id=":948350588_4_0" index="0" speed="25.00" length="4.54" shape="761.22,2263.34 761.39,2262.82 762.00,2262.16 763.06,2261.36 764.56,2260.42"/>
+ </edge>
+ <edge id=":948350588_5" function="internal">
+ <lane id=":948350588_5_0" index="0" speed="22.22" length="5.27" shape="761.22,2263.34 761.77,2268.58"/>
+ </edge>
+ <edge id=":948350588_6" function="internal">
+ <lane id=":948350588_6_0" index="0" speed="25.00" length="6.23" shape="761.22,2263.34 761.53,2266.09 761.81,2268.02 762.05,2269.13 762.26,2269.43"/>
+ </edge>
+ <edge id=":948350588_7" function="internal">
+ <lane id=":948350588_7_0" index="0" speed="27.78" length="6.52" shape="758.93,2263.73 764.56,2260.42"/>
+ </edge>
+ <edge id=":948350588_8" function="internal">
+ <lane id=":948350588_8_0" index="0" speed="27.78" length="6.54" shape="760.60,2266.58 766.23,2263.27"/>
+ </edge>
+ <edge id=":948350588_9" function="internal">
+ <lane id=":948350588_9_0" index="0" speed="25.00" length="2.69" shape="760.60,2266.58 761.01,2266.51 761.34,2266.82 761.60,2267.51 761.77,2268.58"/>
+ </edge>
+ <edge id=":948350588_10" function="internal">
+ <lane id=":948350588_10_0" index="0" speed="27.78" length="2.41" shape="760.60,2266.58 762.08,2266.67 762.86,2267.17"/>
+ </edge>
+ <edge id=":948350588_12" function="internal">
+ <lane id=":948350588_12_0" index="0" speed="27.78" length="2.41" shape="762.86,2267.17 762.92,2268.09 762.26,2269.43"/>
+ </edge>
+ <edge id=":948350595_0" function="internal">
+ <lane id=":948350595_0_0" index="0" speed="25.00" length="4.54" shape="760.36,2291.17 759.63,2291.36 759.00,2292.01 758.47,2293.13 758.04,2294.71"/>
+ </edge>
+ <edge id=":948350595_1" function="internal">
+ <lane id=":948350595_1_0" index="0" speed="22.22" length="1.99" shape="760.36,2291.17 758.37,2291.05"/>
+ </edge>
+ <edge id=":948350595_2" function="internal">
+ <lane id=":948350595_2_0" index="0" speed="27.78" length="4.42" shape="759.86,2290.68 758.04,2294.71"/>
+ </edge>
+ <edge id=":948350595_3" function="internal">
+ <lane id=":948350595_3_0" index="0" speed="25.00" length="1.59" shape="759.86,2290.68 759.65,2290.87 759.34,2290.99 758.91,2291.06 758.37,2291.05"/>
+ </edge>
+ <edge id=":948350597_0" function="internal">
+ <lane id=":948350597_0_0" index="0" speed="27.78" length="4.97" shape="739.18,2299.13 738.01,2299.84 737.11,2300.69 736.49,2301.68 736.14,2302.82"/>
+ </edge>
+ <edge id=":948350597_1" function="internal">
+ <lane id=":948350597_1_0" index="0" speed="27.78" length="0.36" shape="737.54,2296.26 737.19,2296.35"/>
+ </edge>
+ <edge id=":948350597_2" function="internal">
+ <lane id=":948350597_2_0" index="0" speed="27.78" length="0.16" shape="735.91,2293.38 735.75,2293.37"/>
+ </edge>
+ <edge id=":948350597_3" function="internal">
+ <lane id=":948350597_3_0" index="0" speed="27.78" length="2.75" shape="737.12,2289.13 736.48,2289.33 736.22,2289.12 736.33,2288.51 736.81,2287.49"/>
+ </edge>
+ <edge id=":948350597_4" function="internal">
+ <lane id=":948350597_4_0" index="0" speed="27.78" length="14.70" shape="739.90,2288.68 738.42,2292.05 737.45,2295.55 736.75,2299.15 736.14,2302.82"/>
+ </edge>
+ <edge id=":948350597_5" function="internal">
+ <lane id=":948350597_5_0" index="0" speed="27.78" length="5.93" shape="739.90,2288.68 734.23,2290.44"/>
+ </edge>
+ <edge id=":948350597_6" function="internal">
+ <lane id=":948350597_6_0" index="0" speed="27.78" length="2.42" shape="739.90,2288.68 738.68,2289.55 737.76,2289.63"/>
+ </edge>
+ <edge id=":948350597_10" function="internal">
+ <lane id=":948350597_10_0" index="0" speed="27.78" length="2.42" shape="737.76,2289.63 737.13,2288.95 736.81,2287.49"/>
+ </edge>
+ <edge id=":948350597_7" function="internal">
+ <lane id=":948350597_7_0" index="0" speed="27.78" length="5.57" shape="732.85,2302.55 737.72,2299.84"/>
+ </edge>
+ <edge id=":948350597_8" function="internal">
+ <lane id=":948350597_8_0" index="0" speed="27.78" length="15.64" shape="732.85,2302.55 733.49,2298.74 734.25,2294.82 735.30,2291.00 736.81,2287.49"/>
+ </edge>
+ <edge id=":948350597_9" function="internal">
+ <lane id=":948350597_9_0" index="0" speed="27.78" length="2.41" shape="732.85,2302.55 733.77,2301.39 734.63,2301.04"/>
+ </edge>
+ <edge id=":948350597_11" function="internal">
+ <lane id=":948350597_11_0" index="0" speed="27.78" length="2.41" shape="734.63,2301.04 735.42,2301.52 736.14,2302.82"/>
+ </edge>
+ <edge id=":948350607_0" function="internal">
+ <lane id=":948350607_0_0" index="0" speed="25.00" length="6.83" shape="768.96,2282.19 766.45,2283.97 764.65,2285.13 763.56,2285.66 763.17,2285.56"/>
+ </edge>
+ <edge id=":948350607_1" function="internal">
+ <lane id=":948350607_1_0" index="0" speed="27.78" length="8.90" shape="768.96,2282.19 761.87,2287.57"/>
+ </edge>
+ <edge id=":948350607_2" function="internal">
+ <lane id=":948350607_2_0" index="0" speed="25.00" length="5.90" shape="753.14,2289.70 758.33,2286.90"/>
+ </edge>
+ <edge id=":948350607_3" function="internal">
+ <lane id=":948350607_3_0" index="0" speed="22.22" length="0.10" shape="763.17,2285.56 763.17,2285.56"/>
+ </edge>
+ <edge id=":948350607_4" function="internal">
+ <lane id=":948350607_4_0" index="0" speed="25.00" length="2.39" shape="763.17,2285.56 761.87,2287.57"/>
+ </edge>
+ <edge id=":948350607_5" function="internal">
+ <lane id=":948350607_5_0" index="0" speed="22.22" length="5.02" shape="763.17,2285.56 762.86,2285.65 761.96,2285.90 760.45,2286.32 758.33,2286.90"/>
+ </edge>
+ <edge id=":948350615_0" function="internal">
+ <lane id=":948350615_0_0" index="0" speed="22.22" length="4.99" shape="741.66,2262.80 741.21,2257.83"/>
+ </edge>
+ <edge id=":948350615_1" function="internal">
+ <lane id=":948350615_1_0" index="0" speed="25.00" length="2.26" shape="741.66,2262.80 741.90,2262.22 742.79,2262.57 743.31,2263.00"/>
+ </edge>
+ <edge id=":948350615_9" function="internal">
+ <lane id=":948350615_9_0" index="0" speed="25.00" length="4.48" shape="743.31,2263.00 744.34,2263.86 746.54,2266.09"/>
+ </edge>
+ <edge id=":948350615_2" function="internal">
+ <lane id=":948350615_2_0" index="0" speed="22.22" length="1.47" shape="741.66,2262.80 743.12,2262.63"/>
+ </edge>
+ <edge id=":948350615_10" function="internal">
+ <lane id=":948350615_10_0" index="0" speed="22.22" length="6.93" shape="743.12,2262.63 744.24,2262.50 745.72,2263.14 746.10,2264.70 745.38,2267.19"/>
+ </edge>
+ <edge id=":948350615_3" function="internal">
+ <lane id=":948350615_3_0" index="0" speed="25.00" length="4.65" shape="744.88,2261.75 746.54,2266.09"/>
+ </edge>
+ <edge id=":948350615_4" function="internal">
+ <lane id=":948350615_4_0" index="0" speed="22.22" length="5.46" shape="744.88,2261.75 745.38,2267.19"/>
+ </edge>
+ <edge id=":948350615_5" function="internal">
+ <lane id=":948350615_5_0" index="0" speed="22.22" length="7.84" shape="744.88,2261.75 742.49,2262.15 741.09,2261.63 740.66,2260.19 741.21,2257.83"/>
+ </edge>
+ <edge id=":948350615_6" function="internal">
+ <lane id=":948350615_6_0" index="0" speed="25.00" length="4.40" shape="742.78,2261.94 741.21,2257.83"/>
+ </edge>
+ <edge id=":948350615_7" function="internal">
+ <lane id=":948350615_7_0" index="0" speed="27.78" length="5.60" shape="742.78,2261.94 746.54,2266.09"/>
+ </edge>
+ <edge id=":948350615_8" function="internal">
+ <lane id=":948350615_8_0" index="0" speed="25.00" length="5.85" shape="742.78,2261.94 745.38,2267.19"/>
+ </edge>
+ <edge id=":948350621_0" function="internal">
+ <lane id=":948350621_0_0" index="0" speed="27.78" length="3.81" shape="757.58,2285.56 756.27,2286.67 755.33,2287.35 754.74,2287.60 754.51,2287.42"/>
+ </edge>
+ <edge id=":948350621_1" function="internal">
+ <lane id=":948350621_1_0" index="0" speed="27.78" length="6.58" shape="752.80,2280.98 757.55,2285.54"/>
+ </edge>
+ <edge id=":948350621_2" function="internal">
+ <lane id=":948350621_2_0" index="0" speed="27.78" length="7.05" shape="752.69,2276.65 755.17,2283.25"/>
+ </edge>
+ <edge id=":948350621_3" function="internal">
+ <lane id=":948350621_3_0" index="0" speed="27.78" length="5.16" shape="753.79,2282.31 754.51,2287.42"/>
+ </edge>
+ <edge id=":948350621_4" function="internal">
+ <lane id=":948350621_4_0" index="0" speed="27.78" length="1.90" shape="753.79,2282.31 753.52,2281.55 753.26,2281.07 753.02,2280.88 752.79,2280.96"/>
+ </edge>
+ <edge id=":948350621_5" function="internal">
+ <lane id=":948350621_5_0" index="0" speed="27.78" length="5.91" shape="753.79,2282.31 752.95,2280.06 752.10,2278.70 751.26,2278.24 750.41,2278.68"/>
+ </edge>
+ <edge id=":948350630_0" function="internal">
+ <lane id=":948350630_0_0" index="0" speed="27.78" length="3.07" shape="776.47,2264.97 773.79,2266.47"/>
+ </edge>
+ <edge id=":948350630_1" function="internal">
+ <lane id=":948350630_1_0" index="0" speed="27.78" length="3.22" shape="774.93,2262.06 772.12,2263.63"/>
+ </edge>
+ <edge id=":948350630_2" function="internal">
+ <lane id=":948350630_2_0" index="0" speed="27.78" length="2.41" shape="774.93,2262.06 773.45,2261.91 772.70,2261.37"/>
+ </edge>
+ <edge id=":948350630_8" function="internal">
+ <lane id=":948350630_8_0" index="0" speed="27.78" length="2.41" shape="772.70,2261.37 772.68,2260.45 773.39,2259.14"/>
+ </edge>
+ <edge id=":948350630_3" function="internal">
+ <lane id=":948350630_3_0" index="0" speed="25.00" length="3.13" shape="771.75,2259.35 771.84,2256.22"/>
+ </edge>
+ <edge id=":948350630_4" function="internal">
+ <lane id=":948350630_4_0" index="0" speed="25.00" length="3.14" shape="769.73,2262.18 771.07,2262.64 771.92,2263.03 772.27,2263.36 772.12,2263.63"/>
+ </edge>
+ <edge id=":948350630_5" function="internal">
+ <lane id=":948350630_5_0" index="0" speed="27.78" length="3.89" shape="768.45,2258.13 771.84,2256.22"/>
+ </edge>
+ <edge id=":948350630_6" function="internal">
+ <lane id=":948350630_6_0" index="0" speed="27.78" length="4.50" shape="769.47,2261.36 773.39,2259.14"/>
+ </edge>
+ <edge id=":948350630_7" function="internal">
+ <lane id=":948350630_7_0" index="0" speed="27.78" length="2.55" shape="769.47,2261.36 770.98,2260.93 771.93,2261.17"/>
+ </edge>
+ <edge id=":948350630_9" function="internal">
+ <lane id=":948350630_9_0" index="0" speed="27.78" length="2.55" shape="771.93,2261.17 772.31,2262.07 772.12,2263.63"/>
+ </edge>
+ <edge id=":948350640_0" function="internal">
+ <lane id=":948350640_0_0" index="0" speed="25.00" length="9.30" shape="743.32,2278.71 743.27,2280.43 742.79,2282.46 741.88,2284.81 740.56,2287.47"/>
+ </edge>
+ <edge id=":948350640_1" function="internal">
+ <lane id=":948350640_1_0" index="0" speed="22.22" length="2.12" shape="743.32,2278.71 743.03,2276.60"/>
+ </edge>
+ <edge id=":948350640_2" function="internal">
+ <lane id=":948350640_2_0" index="0" speed="25.00" length="5.55" shape="743.32,2278.71 743.53,2278.11 744.24,2277.28 745.47,2276.19 747.20,2274.86"/>
+ </edge>
+ <edge id=":948350640_3" function="internal">
+ <lane id=":948350640_3_0" index="0" speed="22.22" length="4.82" shape="743.32,2278.71 744.02,2277.39 744.80,2276.90 745.66,2277.23 746.61,2278.38"/>
+ </edge>
+ <edge id=":948350640_4" function="internal">
+ <lane id=":948350640_4_0" index="0" speed="25.00" length="2.22" shape="748.42,2278.06 747.66,2278.55 747.11,2278.77 746.75,2278.71 746.61,2278.38"/>
+ </edge>
+ <edge id=":948350640_5" function="internal">
+ <lane id=":948350640_5_0" index="0" speed="27.78" length="12.39" shape="748.42,2278.06 745.83,2280.16 743.87,2282.23 742.23,2284.56 740.56,2287.47"/>
+ </edge>
+ <edge id=":948350640_6" function="internal">
+ <lane id=":948350640_6_0" index="0" speed="25.00" length="5.93" shape="748.42,2278.06 746.32,2279.26 744.72,2279.42 743.62,2278.53 743.48,2278.06"/>
+ </edge>
+ <edge id=":948350640_16" function="internal">
+ <lane id=":948350640_16_0" index="0" speed="25.00" length="1.53" shape="743.48,2278.06 743.03,2276.60"/>
+ </edge>
+ <edge id=":948350640_7" function="internal">
+ <lane id=":948350640_7_0" index="0" speed="27.78" length="2.50" shape="748.42,2278.06 746.92,2277.72 746.21,2277.07"/>
+ </edge>
+ <edge id=":948350640_17" function="internal">
+ <lane id=":948350640_17_0" index="0" speed="27.78" length="2.50" shape="746.21,2277.07 746.31,2276.12 747.20,2274.86"/>
+ </edge>
+ <edge id=":948350640_8" function="internal">
+ <lane id=":948350640_8_0" index="0" speed="25.00" length="1.22" shape="746.22,2275.58 746.28,2275.53 746.46,2275.40 746.77,2275.18 747.20,2274.86"/>
+ </edge>
+ <edge id=":948350640_9" function="internal">
+ <lane id=":948350640_9_0" index="0" speed="22.22" length="2.83" shape="746.22,2275.58 746.61,2278.38"/>
+ </edge>
+ <edge id=":948350640_10" function="internal">
+ <lane id=":948350640_10_0" index="0" speed="25.00" length="13.49" shape="746.22,2275.58 745.96,2278.91 744.54,2281.73 742.55,2284.46 740.56,2287.47"/>
+ </edge>
+ <edge id=":948350640_11" function="internal">
+ <lane id=":948350640_11_0" index="0" speed="22.22" length="4.89" shape="746.22,2275.58 745.80,2277.03 745.13,2277.68 744.21,2277.54 743.03,2276.60"/>
+ </edge>
+ <edge id=":948350640_12" function="internal">
+ <lane id=":948350640_12_0" index="0" speed="25.00" length="10.60" shape="737.95,2285.40 739.85,2282.87 741.65,2281.22 742.86,2279.45 743.03,2276.60"/>
+ </edge>
+ <edge id=":948350640_13" function="internal">
+ <lane id=":948350640_13_0" index="0" speed="27.78" length="14.14" shape="737.95,2285.40 739.84,2282.32 741.96,2279.60 744.39,2277.14 747.20,2274.86"/>
+ </edge>
+ <edge id=":948350640_14" function="internal">
+ <lane id=":948350640_14_0" index="0" speed="25.00" length="15.15" shape="737.95,2285.40 741.46,2279.54 744.07,2276.42 745.79,2276.03 746.61,2278.38"/>
+ </edge>
+ <edge id=":948350640_15" function="internal">
+ <lane id=":948350640_15_0" index="0" speed="27.78" length="2.43" shape="737.95,2285.40 739.38,2284.94 740.29,2285.13"/>
+ </edge>
+ <edge id=":948350640_18" function="internal">
+ <lane id=":948350640_18_0" index="0" speed="27.78" length="2.43" shape="740.29,2285.13 740.68,2285.97 740.56,2287.47"/>
+ </edge>
+ <edge id=":948350673_0" function="internal">
+ <lane id=":948350673_0_0" index="0" speed="27.78" length="5.54" shape="731.36,2307.52 730.94,2305.96 730.16,2305.11 729.02,2304.97 727.51,2305.54"/>
+ </edge>
+ <edge id=":948350673_1" function="internal">
+ <lane id=":948350673_1_0" index="0" speed="27.78" length="9.13" shape="731.36,2307.52 730.68,2304.46 729.55,2302.62 727.96,2302.02 725.92,2302.65"/>
+ </edge>
+ <edge id=":948350673_2" function="internal">
+ <lane id=":948350673_2_0" index="0" speed="27.78" length="15.64" shape="731.36,2307.52 730.89,2303.70 730.38,2299.76 729.85,2295.82 729.32,2292.01"/>
+ </edge>
+ <edge id=":948350673_3" function="internal">
+ <lane id=":948350673_3_0" index="0" speed="27.78" length="9.05" shape="732.94,2302.56 724.33,2299.76"/>
+ </edge>
+ <edge id=":948350673_4" function="internal">
+ <lane id=":948350673_4_0" index="0" speed="27.78" length="12.95" shape="732.94,2302.56 729.92,2302.49 727.86,2299.74 725.78,2296.98 722.75,2296.86"/>
+ </edge>
+ <edge id=":948350673_5" function="internal">
+ <lane id=":948350673_5_0" index="0" speed="27.78" length="10.59" shape="736.09,2296.98 733.57,2297.86 731.60,2297.32 730.18,2295.37 729.32,2292.01"/>
+ </edge>
+ <edge id=":948350676_0" function="internal">
+ <lane id=":948350676_0_0" index="0" speed="27.78" length="5.16" shape="739.87,2257.51 744.95,2258.40"/>
+ </edge>
+ <edge id=":948350676_1" function="internal">
+ <lane id=":948350676_1_0" index="0" speed="27.78" length="5.04" shape="739.87,2257.51 742.63,2261.73"/>
+ </edge>
+ <edge id=":948350693_0" function="internal">
+ <lane id=":948350693_0_0" index="0" speed="25.00" length="5.43" shape="746.90,2266.68 747.81,2267.95 748.83,2268.48 749.96,2268.26 751.20,2267.31"/>
+ </edge>
+ <edge id=":948350693_1" function="internal">
+ <lane id=":948350693_1_0" index="0" speed="27.78" length="4.77" shape="746.90,2266.68 749.19,2270.85"/>
+ </edge>
+ <edge id=":948350693_2" function="internal">
+ <lane id=":948350693_2_0" index="0" speed="22.22" length="3.71" shape="748.62,2269.96 751.20,2267.31"/>
+ </edge>
+ <edge id=":948350693_3" function="internal">
+ <lane id=":948350693_3_0" index="0" speed="25.00" length="1.06" shape="748.62,2269.96 748.65,2270.02 748.76,2270.18 748.94,2270.46 749.19,2270.85"/>
+ </edge>
+ <edge id=":948350705_0" function="internal">
+ <lane id=":948350705_0_0" index="0" speed="27.78" length="28.86" shape="752.71,2288.88 754.08,2287.92 765.12,2281.71 776.31,2275.73 778.13,2275.47"/>
+ </edge>
+ <edge id=":948350705_1" function="internal">
+ <lane id=":948350705_1_0" index="0" speed="27.78" length="6.35" shape="751.17,2285.96 757.50,2286.50"/>
+ </edge>
+ <edge id=":948350705_2" function="internal">
+ <lane id=":948350705_2_0" index="0" speed="27.78" length="3.05" shape="751.17,2285.96 748.30,2286.99"/>
+ </edge>
+ <edge id=":948350707_0" function="internal">
+ <lane id=":948350707_0_0" index="0" speed="27.78" length="7.12" shape="756.73,2276.48 757.15,2269.37"/>
+ </edge>
+ <edge id=":948350707_1" function="internal">
+ <lane id=":948350707_1_0" index="0" speed="27.78" length="7.35" shape="756.73,2276.48 754.88,2277.21 753.34,2277.03 752.11,2275.96 751.19,2273.98"/>
+ </edge>
+ <edge id=":948350707_2" function="internal">
+ <lane id=":948350707_2_0" index="0" speed="27.78" length="9.90" shape="756.96,2272.53 748.65,2277.89"/>
+ </edge>
+ <edge id=":948350707_3" function="internal">
+ <lane id=":948350707_3_0" index="0" speed="27.78" length="4.00" shape="756.96,2272.53 755.54,2271.45 755.10,2270.43 755.65,2269.47"/>
+ </edge>
+ <edge id=":948350707_17" function="internal">
+ <lane id=":948350707_17_0" index="0" speed="27.78" length="1.79" shape="755.65,2269.47 757.19,2268.57"/>
+ </edge>
+ <edge id=":948350707_4" function="internal">
+ <lane id=":948350707_4_0" index="0" speed="27.78" length="4.01" shape="750.51,2272.92 750.00,2268.95"/>
+ </edge>
+ <edge id=":948350707_5" function="internal">
+ <lane id=":948350707_5_0" index="0" speed="27.78" length="6.57" shape="750.51,2272.92 750.76,2272.66 751.91,2272.53 753.98,2272.53 756.96,2272.66"/>
+ </edge>
+ <edge id=":948350707_6" function="internal">
+ <lane id=":948350707_6_0" index="0" speed="27.78" length="1.26" shape="750.51,2272.92 751.19,2273.98"/>
+ </edge>
+ <edge id=":948350707_7" function="internal">
+ <lane id=":948350707_7_0" index="0" speed="27.78" length="5.92" shape="750.51,2272.92 750.99,2274.15 750.83,2275.39 750.05,2276.64 748.65,2277.89"/>
+ </edge>
+ <edge id=":948350707_8" function="internal">
+ <lane id=":948350707_8_0" index="0" speed="27.78" length="0.74" shape="749.29,2269.12 750.00,2268.95"/>
+ </edge>
+ <edge id=":948350707_9" function="internal">
+ <lane id=":948350707_9_0" index="0" speed="27.78" length="8.97" shape="749.10,2272.44 757.19,2268.57"/>
+ </edge>
+ <edge id=":948350707_10" function="internal">
+ <lane id=":948350707_10_0" index="0" speed="27.78" length="6.99" shape="749.78,2275.71 756.76,2275.96"/>
+ </edge>
+ <edge id=":948350707_11" function="internal">
+ <lane id=":948350707_11_0" index="0" speed="27.78" length="2.72" shape="749.78,2275.71 750.59,2275.56 751.09,2275.23 751.30,2274.70 751.19,2273.98"/>
+ </edge>
+ <edge id=":948350707_12" function="internal">
+ <lane id=":948350707_12_0" index="0" speed="27.78" length="1.22" shape="749.04,2279.05 748.65,2277.89"/>
+ </edge>
+ <edge id=":948350707_13" function="internal">
+ <lane id=":948350707_13_0" index="0" speed="27.78" length="9.53" shape="749.04,2273.51 757.19,2268.57"/>
+ </edge>
+ <edge id=":948350707_14" function="internal">
+ <lane id=":948350707_14_0" index="0" speed="27.78" length="9.47" shape="749.04,2273.51 756.57,2279.25"/>
+ </edge>
+ <edge id=":948350707_15" function="internal">
+ <lane id=":948350707_15_0" index="0" speed="27.78" length="2.75" shape="749.04,2273.51 749.79,2273.10 750.40,2273.03 750.87,2273.33 751.19,2273.98"/>
+ </edge>
+ <edge id=":948350707_16" function="internal">
+ <lane id=":948350707_16_0" index="0" speed="27.78" length="4.09" shape="749.04,2273.51 750.59,2274.76 751.03,2275.90 750.57,2276.65"/>
+ </edge>
+ <edge id=":948350707_18" function="internal">
+ <lane id=":948350707_18_0" index="0" speed="27.78" length="2.33" shape="750.57,2276.65 750.39,2276.95 748.65,2277.89"/>
+ </edge>
+ <edge id=":948350715_0" function="internal">
+ <lane id=":948350715_0_0" index="0" speed="25.00" length="3.49" shape="755.65,2290.89 755.38,2291.08 755.24,2291.70 755.23,2292.74 755.35,2294.22"/>
+ </edge>
+ <edge id=":948350715_1" function="internal">
+ <lane id=":948350715_1_0" index="0" speed="22.22" length="4.13" shape="755.65,2290.89 751.53,2290.62"/>
+ </edge>
+ <edge id=":948350715_2" function="internal">
+ <lane id=":948350715_2_0" index="0" speed="27.78" length="3.70" shape="754.94,2290.54 755.35,2294.22"/>
+ </edge>
+ <edge id=":948350715_3" function="internal">
+ <lane id=":948350715_3_0" index="0" speed="25.00" length="3.45" shape="754.94,2290.54 754.75,2290.66 754.11,2290.71 753.04,2290.70 751.53,2290.62"/>
+ </edge>
+ <edge id=":950094314_0" function="internal">
+ <lane id=":950094314_0_0" index="0" speed="25.00" length="3.95" shape="1352.36,1972.41 1351.10,1973.00 1350.09,1973.21 1349.33,1973.05 1348.81,1972.51"/>
+ </edge>
+ <edge id=":950094314_1" function="internal">
+ <lane id=":950094314_1_0" index="0" speed="27.78" length="6.31" shape="1352.36,1972.41 1346.82,1975.43"/>
+ </edge>
+ <edge id=":950094314_2" function="internal">
+ <lane id=":950094314_2_0" index="0" speed="27.78" length="6.23" shape="1350.75,1969.53 1345.27,1972.52"/>
+ </edge>
+ <edge id=":950094314_3" function="internal">
+ <lane id=":950094314_3_0" index="0" speed="22.22" length="2.84" shape="1347.46,1970.01 1348.81,1972.51"/>
+ </edge>
+ <edge id=":950094314_4" function="internal">
+ <lane id=":950094314_4_0" index="0" speed="25.00" length="3.61" shape="1347.46,1970.01 1347.53,1970.56 1347.20,1971.16 1346.44,1971.81 1345.27,1972.52"/>
+ </edge>
+ <edge id=":950094380_0" function="internal">
+ <lane id=":950094380_0_0" index="0" speed="25.00" length="12.10" shape="1310.50,1997.66 1307.34,1997.83 1304.86,1998.26 1302.32,1999.20 1299.00,2000.85"/>
+ </edge>
+ <edge id=":950094380_1" function="internal">
+ <lane id=":950094380_1_0" index="0" speed="22.22" length="11.07" shape="1310.50,1997.66 1306.27,1997.65 1303.09,1997.34 1300.95,1996.73 1299.86,1995.82"/>
+ </edge>
+ <edge id=":950094380_2" function="internal">
+ <lane id=":950094380_2_0" index="0" speed="27.78" length="14.78" shape="1312.06,1993.92 1308.19,1995.98 1305.54,1997.39 1302.88,1998.80 1299.00,2000.85"/>
+ </edge>
+ <edge id=":950094380_3" function="internal">
+ <lane id=":950094380_3_0" index="0" speed="27.78" length="14.77" shape="1310.51,1991.00 1306.64,1993.06 1303.99,1994.48 1301.34,1995.88 1297.46,1997.93"/>
+ </edge>
+ <edge id=":950094380_4" function="internal">
+ <lane id=":950094380_4_0" index="0" speed="25.00" length="11.75" shape="1310.51,1991.00 1305.98,1993.36 1302.70,1994.95 1300.66,1995.77 1299.86,1995.82"/>
+ </edge>
+ <edge id=":950094412_0" function="internal">
+ <lane id=":950094412_0_0" index="0" speed="25.00" length="5.06" shape="1079.58,2120.06 1078.81,2118.90 1077.87,2118.27 1076.74,2118.20 1075.42,2118.67"/>
+ </edge>
+ <edge id=":950094412_1" function="internal">
+ <lane id=":950094412_1_0" index="0" speed="22.22" length="6.08" shape="1079.58,2120.06 1077.01,2114.55"/>
+ </edge>
+ <edge id=":950094412_2" function="internal">
+ <lane id=":950094412_2_0" index="0" speed="22.22" length="4.82" shape="1079.58,2120.06 1079.80,2118.59 1080.38,2117.87 1081.30,2117.90 1082.57,2118.67"/>
+ </edge>
+ <edge id=":950094412_3" function="internal">
+ <lane id=":950094412_3_0" index="0" speed="25.00" length="3.35" shape="1081.28,2115.58 1081.32,2115.80 1081.54,2116.39 1081.96,2117.34 1082.57,2118.67"/>
+ </edge>
+ <edge id=":950094412_4" function="internal">
+ <lane id=":950094412_4_0" index="0" speed="27.78" length="6.62" shape="1081.28,2115.58 1075.42,2118.67"/>
+ </edge>
+ <edge id=":950094412_5" function="internal">
+ <lane id=":950094412_5_0" index="0" speed="27.78" length="6.64" shape="1079.75,2112.66 1073.88,2115.75"/>
+ </edge>
+ <edge id=":950094412_6" function="internal">
+ <lane id=":950094412_6_0" index="0" speed="25.00" length="3.39" shape="1079.75,2112.66 1078.49,2113.35 1077.61,2113.89 1077.11,2114.30 1077.01,2114.55"/>
+ </edge>
+ <edge id=":950094412_7" function="internal">
+ <lane id=":950094412_7_0" index="0" speed="22.22" length="6.08" shape="1080.00,2113.16 1082.57,2118.67"/>
+ </edge>
+ <edge id=":950094412_8" function="internal">
+ <lane id=":950094412_8_0" index="0" speed="25.00" length="6.70" shape="1080.00,2113.16 1079.53,2113.13 1078.35,2113.55 1076.47,2114.42 1073.88,2115.75"/>
+ </edge>
+ <edge id=":950094412_9" function="internal">
+ <lane id=":950094412_9_0" index="0" speed="22.22" length="4.82" shape="1080.00,2113.16 1079.78,2114.63 1079.20,2115.35 1078.28,2115.33 1077.01,2114.55"/>
+ </edge>
+ <edge id=":950094425_0" function="internal">
+ <lane id=":950094425_0_0" index="0" speed="25.00" length="4.41" shape="1072.87,2105.68 1073.09,2106.63 1072.85,2107.53 1072.15,2108.37 1070.97,2109.14"/>
+ </edge>
+ <edge id=":950094425_1" function="internal">
+ <lane id=":950094425_1_0" index="0" speed="22.22" length="9.81" shape="1072.87,2105.68 1068.72,2096.79"/>
+ </edge>
+ <edge id=":950094425_2" function="internal">
+ <lane id=":950094425_2_0" index="0" speed="25.00" length="5.14" shape="1072.87,2105.68 1072.13,2103.86 1071.81,2102.46 1071.90,2101.48 1072.41,2100.91"/>
+ </edge>
+ <edge id=":950094425_3" function="internal">
+ <lane id=":950094425_3_0" index="0" speed="22.22" length="4.82" shape="1072.87,2105.68 1073.09,2104.21 1073.66,2103.48 1074.59,2103.51 1075.86,2104.28"/>
+ </edge>
+ <edge id=":950094425_4" function="internal">
+ <lane id=":950094425_4_0" index="0" speed="25.00" length="2.90" shape="1075.37,2106.81 1075.91,2106.40 1076.17,2105.84 1076.15,2105.14 1075.86,2104.28"/>
+ </edge>
+ <edge id=":950094425_5" function="internal">
+ <lane id=":950094425_5_0" index="0" speed="27.78" length="4.97" shape="1075.37,2106.81 1070.97,2109.14"/>
+ </edge>
+ <edge id=":950094425_6" function="internal">
+ <lane id=":950094425_6_0" index="0" speed="27.78" length="5.05" shape="1073.89,2103.86 1069.43,2106.22"/>
+ </edge>
+ <edge id=":950094425_7" function="internal">
+ <lane id=":950094425_7_0" index="0" speed="25.00" length="7.02" shape="1073.89,2103.86 1073.00,2103.70 1071.84,2102.47 1070.42,2100.17 1069.65,2098.64"/>
+ </edge>
+ <edge id=":950094425_18" function="internal">
+ <lane id=":950094425_18_0" index="0" speed="25.00" length="2.07" shape="1069.65,2098.64 1068.72,2096.79"/>
+ </edge>
+ <edge id=":950094425_8" function="internal">
+ <lane id=":950094425_8_0" index="0" speed="27.78" length="2.41" shape="1073.89,2103.86 1072.42,2103.68 1071.68,2103.12"/>
+ </edge>
+ <edge id=":950094425_19" function="internal">
+ <lane id=":950094425_19_0" index="0" speed="27.78" length="2.41" shape="1071.68,2103.12 1071.68,2102.20 1072.41,2100.91"/>
+ </edge>
+ <edge id=":950094425_9" function="internal">
+ <lane id=":950094425_9_0" index="0" speed="25.00" length="1.91" shape="1072.27,2096.59 1070.94,2097.96"/>
+ </edge>
+ <edge id=":950094425_10" function="internal">
+ <lane id=":950094425_10_0" index="0" speed="22.22" length="8.49" shape="1072.27,2096.59 1075.86,2104.28"/>
+ </edge>
+ <edge id=":950094425_11" function="internal">
+ <lane id=":950094425_11_0" index="0" speed="25.00" length="11.33" shape="1072.27,2096.59 1073.23,2099.64 1073.08,2102.26 1071.81,2104.45 1069.43,2106.22"/>
+ </edge>
+ <edge id=":950094425_12" function="internal">
+ <lane id=":950094425_12_0" index="0" speed="22.22" length="5.19" shape="1072.27,2096.59 1071.46,2097.97 1070.60,2098.46 1069.69,2098.07 1068.72,2096.79"/>
+ </edge>
+ <edge id=":950094425_13" function="internal">
+ <lane id=":950094425_13_0" index="0" speed="25.00" length="4.78" shape="1066.34,2100.39 1067.71,2099.52 1068.57,2098.63 1068.90,2097.72 1068.72,2096.79"/>
+ </edge>
+ <edge id=":950094425_14" function="internal">
+ <lane id=":950094425_14_0" index="0" speed="27.78" length="5.20" shape="1066.34,2100.39 1070.94,2097.96"/>
+ </edge>
+ <edge id=":950094425_15" function="internal">
+ <lane id=":950094425_15_0" index="0" speed="27.78" length="5.12" shape="1067.89,2103.31 1072.41,2100.91"/>
+ </edge>
+ <edge id=":950094425_16" function="internal">
+ <lane id=":950094425_16_0" index="0" speed="25.00" length="9.15" shape="1067.89,2103.31 1070.64,2102.17 1072.89,2101.96 1074.63,2102.66 1075.86,2104.28"/>
+ </edge>
+ <edge id=":950094425_17" function="internal">
+ <lane id=":950094425_17_0" index="0" speed="27.78" length="2.41" shape="1067.89,2103.31 1069.37,2103.46 1070.12,2103.99"/>
+ </edge>
+ <edge id=":950094425_20" function="internal">
+ <lane id=":950094425_20_0" index="0" speed="27.78" length="2.41" shape="1070.12,2103.99 1070.14,2104.92 1069.43,2106.22"/>
+ </edge>
+ <edge id=":950094434_0" function="internal">
+ <lane id=":950094434_0_0" index="0" speed="25.00" length="5.06" shape="1423.05,1933.00 1421.93,1933.81 1421.34,1934.79 1421.28,1935.93 1421.74,1937.25"/>
+ </edge>
+ <edge id=":950094434_1" function="internal">
+ <lane id=":950094434_1_0" index="0" speed="27.78" length="6.26" shape="1423.05,1933.00 1417.54,1935.99"/>
+ </edge>
+ <edge id=":950094434_2" function="internal">
+ <lane id=":950094434_2_0" index="0" speed="27.78" length="6.35" shape="1421.51,1930.08 1415.93,1933.11"/>
+ </edge>
+ <edge id=":950094434_3" function="internal">
+ <lane id=":950094434_3_0" index="0" speed="22.22" length="5.66" shape="1419.13,1932.23 1421.74,1937.25"/>
+ </edge>
+ <edge id=":950094434_4" function="internal">
+ <lane id=":950094434_4_0" index="0" speed="25.00" length="3.48" shape="1419.13,1932.23 1418.79,1932.02 1418.15,1932.10 1417.19,1932.46 1415.93,1933.11"/>
+ </edge>
+ <edge id=":950094458_0" function="internal">
+ <lane id=":950094458_0_0" index="0" speed="25.00" length="6.75" shape="1410.79,1916.27 1412.01,1918.18 1413.28,1919.34 1414.58,1919.75 1415.93,1919.41"/>
+ </edge>
+ <edge id=":950094458_1" function="internal">
+ <lane id=":950094458_1_0" index="0" speed="22.22" length="8.50" shape="1410.79,1916.27 1414.72,1923.80"/>
+ </edge>
+ <edge id=":950094458_2" function="internal">
+ <lane id=":950094458_2_0" index="0" speed="25.00" length="12.81" shape="1410.79,1916.27 1413.01,1920.92 1414.21,1924.45 1414.39,1926.85 1413.55,1928.12"/>
+ </edge>
+ <edge id=":950094458_3" function="internal">
+ <lane id=":950094458_3_0" index="0" speed="25.00" length="9.72" shape="1410.79,1916.27 1412.34,1919.64 1413.06,1922.26 1412.95,1924.11 1412.01,1925.21"/>
+ </edge>
+ <edge id=":950094458_4" function="internal">
+ <lane id=":950094458_4_0" index="0" speed="27.78" length="7.01" shape="1408.93,1919.37 1415.93,1919.41"/>
+ </edge>
+ <edge id=":950094458_5" function="internal">
+ <lane id=":950094458_5_0" index="0" speed="27.78" length="7.00" shape="1410.47,1922.29 1417.47,1922.33"/>
+ </edge>
+ <edge id=":950094458_6" function="internal">
+ <lane id=":950094458_6_0" index="0" speed="25.00" length="5.15" shape="1410.47,1922.29 1411.75,1921.84 1412.89,1921.95 1413.88,1922.60 1414.72,1923.80"/>
+ </edge>
+ <edge id=":950094458_7" function="internal">
+ <lane id=":950094458_7_0" index="0" speed="27.78" length="4.82" shape="1410.47,1922.29 1411.95,1922.44 1412.70,1922.98 1412.72,1923.90 1412.01,1925.21"/>
+ </edge>
+ <edge id=":950094494_0" function="internal">
+ <lane id=":950094494_0_0" index="0" speed="25.00" length="5.06" shape="1295.53,1987.28 1295.94,1988.58 1295.83,1989.72 1295.20,1990.69 1294.06,1991.49"/>
+ </edge>
+ <edge id=":950094494_1" function="internal">
+ <lane id=":950094494_1_0" index="0" speed="22.22" length="10.24" shape="1295.53,1987.28 1294.22,1984.56 1293.37,1982.63 1292.76,1980.61 1292.18,1977.66"/>
+ </edge>
+ <edge id=":950094494_2" function="internal">
+ <lane id=":950094494_2_0" index="0" speed="25.00" length="6.19" shape="1295.53,1987.28 1295.09,1985.77 1295.28,1984.42 1296.12,1983.22 1297.59,1982.19"/>
+ </edge>
+ <edge id=":950094494_3" function="internal">
+ <lane id=":950094494_3_0" index="0" speed="27.78" length="7.50" shape="1300.70,1988.01 1294.06,1991.49"/>
+ </edge>
+ <edge id=":950094494_4" function="internal">
+ <lane id=":950094494_4_0" index="0" speed="27.78" length="7.44" shape="1299.15,1985.10 1292.56,1988.55"/>
+ </edge>
+ <edge id=":950094494_5" function="internal">
+ <lane id=":950094494_5_0" index="0" speed="25.00" length="8.87" shape="1299.15,1985.10 1296.76,1985.67 1294.81,1984.63 1293.28,1981.96 1293.00,1980.87"/>
+ </edge>
+ <edge id=":950094494_11" function="internal">
+ <lane id=":950094494_11_0" index="0" speed="25.00" length="3.31" shape="1293.00,1980.87 1292.18,1977.66"/>
+ </edge>
+ <edge id=":950094494_6" function="internal">
+ <lane id=":950094494_6_0" index="0" speed="27.78" length="2.41" shape="1299.15,1985.10 1297.67,1984.95 1296.91,1984.42"/>
+ </edge>
+ <edge id=":950094494_12" function="internal">
+ <lane id=":950094494_12_0" index="0" speed="27.78" length="2.41" shape="1296.91,1984.42 1296.89,1983.50 1297.59,1982.19"/>
+ </edge>
+ <edge id=":950094494_7" function="internal">
+ <lane id=":950094494_7_0" index="0" speed="25.00" length="6.11" shape="1289.55,1982.68 1290.92,1981.75 1291.82,1980.60 1292.24,1979.24 1292.18,1977.66"/>
+ </edge>
+ <edge id=":950094494_8" function="internal">
+ <lane id=":950094494_8_0" index="0" speed="27.78" length="7.33" shape="1289.55,1982.68 1296.04,1979.28"/>
+ </edge>
+ <edge id=":950094494_9" function="internal">
+ <lane id=":950094494_9_0" index="0" speed="27.78" length="7.38" shape="1291.05,1985.61 1297.59,1982.19"/>
+ </edge>
+ <edge id=":950094494_10" function="internal">
+ <lane id=":950094494_10_0" index="0" speed="27.78" length="2.41" shape="1291.05,1985.61 1292.53,1985.78 1293.27,1986.33"/>
+ </edge>
+ <edge id=":950094494_13" function="internal">
+ <lane id=":950094494_13_0" index="0" speed="27.78" length="2.41" shape="1293.27,1986.33 1293.28,1987.25 1292.56,1988.55"/>
+ </edge>
+ <edge id=":950640351_0" function="internal">
+ <lane id=":950640351_0_0" index="0" speed="5.56" length="3.56" shape="940.75,1176.91 939.11,1173.74"/>
+ </edge>
+ <edge id=":950640351_1" function="internal">
+ <lane id=":950640351_1_0" index="0" speed="16.67" length="6.50" shape="940.75,1176.91 941.05,1176.60 942.06,1175.93 943.80,1174.88 946.25,1173.47"/>
+ </edge>
+ <edge id=":950640351_2" function="internal">
+ <lane id=":950640351_2_0" index="0" speed="5.56" length="4.82" shape="940.75,1176.91 940.92,1175.43 941.46,1174.68 942.38,1174.67 943.68,1175.39"/>
+ </edge>
+ <edge id=":950640351_3" function="internal">
+ <lane id=":950640351_3_0" index="0" speed="16.67" length="5.05" shape="942.04,1172.22 942.85,1173.35 943.82,1173.94 944.95,1173.98 946.25,1173.47"/>
+ </edge>
+ <edge id=":950640351_4" function="internal">
+ <lane id=":950640351_4_0" index="0" speed="5.56" length="3.56" shape="942.04,1172.22 943.68,1175.39"/>
+ </edge>
+ <edge id=":950640351_5" function="internal">
+ <lane id=":950640351_5_0" index="0" speed="5.56" length="4.82" shape="942.04,1172.22 941.88,1173.70 941.34,1174.45 940.41,1174.46 939.11,1173.74"/>
+ </edge>
+ <edge id=":950640351_6" function="internal">
+ <lane id=":950640351_6_0" index="0" speed="16.67" length="5.38" shape="937.91,1178.38 939.01,1177.46 939.58,1176.38 939.61,1175.14 939.11,1173.74"/>
+ </edge>
+ <edge id=":950640351_7" function="internal">
+ <lane id=":950640351_7_0" index="0" speed="27.78" length="9.68" shape="937.91,1178.38 946.25,1173.47"/>
+ </edge>
+ <edge id=":950640351_8" function="internal">
+ <lane id=":950640351_8_0" index="0" speed="16.67" length="6.55" shape="937.91,1178.38 940.36,1176.92 942.13,1175.93 943.24,1175.42 943.68,1175.39"/>
+ </edge>
+ <edge id=":950640361_0" function="internal">
+ <lane id=":950640361_0_0" index="0" speed="25.00" length="9.72" shape="752.62,1283.98 754.59,1282.59 756.16,1280.84 757.32,1278.74 758.06,1276.29"/>
+ </edge>
+ <edge id=":950640361_1" function="internal">
+ <lane id=":950640361_1_0" index="0" speed="27.78" length="10.36" shape="752.62,1283.98 755.25,1282.50 757.11,1281.41 758.93,1280.25 761.46,1278.59"/>
+ </edge>
+ <edge id=":950640361_2" function="internal">
+ <lane id=":950640361_2_0" index="0" speed="22.22" length="5.37" shape="756.98,1281.55 758.06,1276.29"/>
+ </edge>
+ <edge id=":950640361_3" function="internal">
+ <lane id=":950640361_3_0" index="0" speed="25.00" length="5.37" shape="756.98,1281.55 761.46,1278.59"/>
+ </edge>
+ <edge id=":950640371_0" function="internal">
+ <lane id=":950640371_0_0" index="0" speed="22.22" length="3.26" shape="668.95,1333.31 667.40,1330.44"/>
+ </edge>
+ <edge id=":950640371_1" function="internal">
+ <lane id=":950640371_1_0" index="0" speed="25.00" length="6.48" shape="668.95,1333.31 669.31,1333.13 670.37,1332.52 672.11,1331.49 674.54,1330.03"/>
+ </edge>
+ <edge id=":950640371_2" function="internal">
+ <lane id=":950640371_2_0" index="0" speed="22.22" length="4.82" shape="668.95,1333.31 669.11,1331.83 669.65,1331.08 670.57,1331.06 671.87,1331.78"/>
+ </edge>
+ <edge id=":950640371_3" function="internal">
+ <lane id=":950640371_3_0" index="0" speed="25.00" length="5.06" shape="670.31,1328.87 671.14,1329.99 672.12,1330.56 673.26,1330.57 674.54,1330.03"/>
+ </edge>
+ <edge id=":950640371_4" function="internal">
+ <lane id=":950640371_4_0" index="0" speed="22.22" length="3.30" shape="670.31,1328.87 671.87,1331.78"/>
+ </edge>
+ <edge id=":950640371_5" function="internal">
+ <lane id=":950640371_5_0" index="0" speed="22.22" length="4.82" shape="670.31,1328.87 670.17,1330.35 669.64,1331.11 668.72,1331.13 667.40,1330.44"/>
+ </edge>
+ <edge id=":950640371_6" function="internal">
+ <lane id=":950640371_6_0" index="0" speed="25.00" length="5.22" shape="666.24,1334.89 667.34,1334.03 667.90,1333.00 667.92,1331.80 667.40,1330.44"/>
+ </edge>
+ <edge id=":950640371_7" function="internal">
+ <lane id=":950640371_7_0" index="0" speed="27.78" length="9.62" shape="666.24,1334.89 674.54,1330.03"/>
+ </edge>
+ <edge id=":950640371_8" function="internal">
+ <lane id=":950640371_8_0" index="0" speed="25.00" length="6.44" shape="666.24,1334.89 668.69,1333.50 670.45,1332.52 671.51,1331.95 671.87,1331.78"/>
+ </edge>
+ <edge id=":950640393_0" function="internal">
+ <lane id=":950640393_0_0" index="0" speed="25.00" length="7.26" shape="460.80,1474.61 459.12,1473.67 457.42,1473.27 455.71,1473.43 453.98,1474.14"/>
+ </edge>
+ <edge id=":950640393_1" function="internal">
+ <lane id=":950640393_1_0" index="0" speed="22.22" length="3.38" shape="460.80,1474.61 458.07,1472.62"/>
+ </edge>
+ <edge id=":950640393_2" function="internal">
+ <lane id=":950640393_2_0" index="0" speed="22.22" length="4.82" shape="460.80,1474.61 460.29,1473.21 460.44,1472.30 461.26,1471.88 462.74,1471.94"/>
+ </edge>
+ <edge id=":950640393_3" function="internal">
+ <lane id=":950640393_3_0" index="0" speed="25.00" length="4.74" shape="464.07,1468.42 462.69,1469.38 462.01,1470.28 462.03,1471.14 462.74,1471.94"/>
+ </edge>
+ <edge id=":950640393_4" function="internal">
+ <lane id=":950640393_4_0" index="0" speed="27.78" length="11.60" shape="464.07,1468.42 461.27,1470.01 459.03,1471.29 456.78,1472.56 453.98,1474.14"/>
+ </edge>
+ <edge id=":950640393_5" function="internal">
+ <lane id=":950640393_5_0" index="0" speed="25.00" length="7.42" shape="464.07,1468.42 461.22,1470.09 459.27,1471.35 458.22,1472.19 458.07,1472.62"/>
+ </edge>
+ <edge id=":950640393_6" function="internal">
+ <lane id=":950640393_6_0" index="0" speed="22.22" length="3.38" shape="460.01,1469.95 462.74,1471.94"/>
+ </edge>
+ <edge id=":950640393_7" function="internal">
+ <lane id=":950640393_7_0" index="0" speed="25.00" length="7.44" shape="460.01,1469.95 459.86,1470.38 458.81,1471.22 456.85,1472.47 453.98,1474.14"/>
+ </edge>
+ <edge id=":950640393_8" function="internal">
+ <lane id=":950640393_8_0" index="0" speed="22.22" length="4.82" shape="460.01,1469.95 460.52,1471.34 460.37,1472.25 459.55,1472.68 458.07,1472.62"/>
+ </edge>
+ <edge id=":950640399_0" function="internal">
+ <lane id=":950640399_0_0" index="0" speed="25.00" length="5.09" shape="932.88,1177.67 933.69,1178.82 934.67,1179.41 935.80,1179.42 937.10,1178.87"/>
+ </edge>
+ <edge id=":950640399_1" function="internal">
+ <lane id=":950640399_1_0" index="0" speed="22.22" length="3.35" shape="932.88,1177.67 934.40,1180.66"/>
+ </edge>
+ <edge id=":950640399_2" function="internal">
+ <lane id=":950640399_2_0" index="0" speed="27.78" length="6.42" shape="931.59,1182.16 937.10,1178.87"/>
+ </edge>
+ <edge id=":950640399_3" function="internal">
+ <lane id=":950640399_3_0" index="0" speed="25.00" length="3.20" shape="931.59,1182.16 932.80,1181.46 933.67,1180.98 934.21,1180.71 934.40,1180.66"/>
+ </edge>
+ <edge id=":950640411_0" function="internal">
+ <lane id=":950640411_0_0" index="0" speed="25.00" length="4.56" shape="775.05,1268.27 775.22,1268.87 775.92,1268.98 777.14,1268.60 778.89,1267.73"/>
+ </edge>
+ <edge id=":950640411_1" function="internal">
+ <lane id=":950640411_1_0" index="0" speed="22.22" length="2.86" shape="775.05,1268.27 774.73,1271.11"/>
+ </edge>
+ <edge id=":950640411_2" function="internal">
+ <lane id=":950640411_2_0" index="0" speed="22.22" length="4.82" shape="775.05,1268.27 774.09,1269.41 773.23,1269.72 772.45,1269.22 771.78,1267.89"/>
+ </edge>
+ <edge id=":950640411_3" function="internal">
+ <lane id=":950640411_3_0" index="0" speed="25.00" length="8.59" shape="767.18,1274.82 769.01,1273.37 770.38,1271.73 771.31,1269.91 771.78,1267.89"/>
+ </edge>
+ <edge id=":950640411_4" function="internal">
+ <lane id=":950640411_4_0" index="0" speed="27.78" length="13.70" shape="767.18,1274.82 770.15,1272.89 772.96,1271.15 775.80,1269.47 778.89,1267.73"/>
+ </edge>
+ <edge id=":950640411_5" function="internal">
+ <lane id=":950640411_5_0" index="0" speed="25.00" length="8.70" shape="767.18,1274.82 770.54,1272.68 772.92,1271.35 774.31,1270.83 774.73,1271.11"/>
+ </edge>
+ <edge id=":950640411_6" function="internal">
+ <lane id=":950640411_6_0" index="0" speed="22.22" length="2.86" shape="771.45,1270.74 771.78,1267.89"/>
+ </edge>
+ <edge id=":950640411_7" function="internal">
+ <lane id=":950640411_7_0" index="0" speed="25.00" length="8.25" shape="771.45,1270.74 771.86,1270.98 773.24,1270.57 775.58,1269.48 778.89,1267.73"/>
+ </edge>
+ <edge id=":950640411_8" function="internal">
+ <lane id=":950640411_8_0" index="0" speed="22.22" length="4.82" shape="771.45,1270.74 772.41,1269.60 773.27,1269.29 774.05,1269.79 774.73,1271.11"/>
+ </edge>
+ <edge id=":950640413_0" function="internal">
+ <lane id=":950640413_0_0" index="0" speed="25.00" length="8.73" shape="776.31,1290.18 774.51,1291.49 773.14,1293.09 772.18,1294.99 771.64,1297.19"/>
+ </edge>
+ <edge id=":950640413_1" function="internal">
+ <lane id=":950640413_1_0" index="0" speed="27.78" length="13.69" shape="776.31,1290.18 773.24,1291.95 770.39,1293.62 767.56,1295.30 764.52,1297.12"/>
+ </edge>
+ <edge id=":950640413_2" function="internal">
+ <lane id=":950640413_2_0" index="0" speed="25.00" length="8.34" shape="776.31,1290.18 772.99,1292.02 770.64,1293.15 769.26,1293.59 768.85,1293.34"/>
+ </edge>
+ <edge id=":950640413_3" function="internal">
+ <lane id=":950640413_3_0" index="0" speed="22.22" length="3.51" shape="772.12,1293.71 771.64,1297.19"/>
+ </edge>
+ <edge id=":950640413_4" function="internal">
+ <lane id=":950640413_4_0" index="0" speed="25.00" length="8.59" shape="772.12,1293.71 771.70,1293.45 770.29,1293.93 767.90,1295.16 764.52,1297.12"/>
+ </edge>
+ <edge id=":950640413_5" function="internal">
+ <lane id=":950640413_5_0" index="0" speed="22.22" length="4.82" shape="772.12,1293.71 771.16,1294.85 770.30,1295.16 769.52,1294.66 768.85,1293.34"/>
+ </edge>
+ <edge id=":950640413_6" function="internal">
+ <lane id=":950640413_6_0" index="0" speed="25.00" length="4.84" shape="768.38,1296.74 768.24,1295.97 767.56,1295.78 766.31,1296.16 764.52,1297.12"/>
+ </edge>
+ <edge id=":950640413_7" function="internal">
+ <lane id=":950640413_7_0" index="0" speed="22.22" length="3.44" shape="768.38,1296.74 768.85,1293.34"/>
+ </edge>
+ <edge id=":950640413_8" function="internal">
+ <lane id=":950640413_8_0" index="0" speed="22.22" length="4.82" shape="768.38,1296.74 769.36,1295.63 770.24,1295.33 771.00,1295.86 771.64,1297.19"/>
+ </edge>
+ <edge id=":950640428_0" function="internal">
+ <lane id=":950640428_0_0" index="0" speed="27.78" length="8.66" shape="687.84,2240.81 679.23,2241.77"/>
+ </edge>
+ <edge id=":950640428_1" function="internal">
+ <lane id=":950640428_1_0" index="0" speed="27.78" length="8.60" shape="687.84,2240.81 679.75,2237.88"/>
+ </edge>
+ <edge id=":950640474_0" function="internal">
+ <lane id=":950640474_0_0" index="0" speed="27.78" length="10.17" shape="756.64,1301.87 754.08,1303.41 752.28,1304.47 750.47,1305.51 747.86,1306.99"/>
+ </edge>
+ <edge id=":950640474_1" function="internal">
+ <lane id=":950640474_1_0" index="0" speed="25.00" length="5.07" shape="756.64,1301.87 754.71,1303.02 753.34,1303.83 752.52,1304.29 752.25,1304.39"/>
+ </edge>
+ <edge id=":950640474_2" function="internal">
+ <lane id=":950640474_2_0" index="0" speed="25.00" length="6.08" shape="751.31,1308.98 751.44,1307.18 750.90,1306.25 749.71,1306.19 747.86,1306.99"/>
+ </edge>
+ <edge id=":950640474_3" function="internal">
+ <lane id=":950640474_3_0" index="0" speed="22.22" length="4.68" shape="751.31,1308.98 752.25,1304.39"/>
+ </edge>
+ <edge id=":950640525_0" function="internal">
+ <lane id=":950640525_0_0" index="0" speed="25.00" length="5.15" shape="944.61,1193.87 943.49,1194.73 942.90,1195.74 942.83,1196.90 943.30,1198.22"/>
+ </edge>
+ <edge id=":950640525_1" function="internal">
+ <lane id=":950640525_1_0" index="0" speed="27.78" length="6.33" shape="944.61,1193.87 939.09,1196.98"/>
+ </edge>
+ <edge id=":950640525_2" function="internal">
+ <lane id=":950640525_2_0" index="0" speed="22.22" length="3.41" shape="941.72,1195.20 943.30,1198.22"/>
+ </edge>
+ <edge id=":950640525_3" function="internal">
+ <lane id=":950640525_3_0" index="0" speed="25.00" length="3.20" shape="941.72,1195.20 941.60,1195.40 941.12,1195.76 940.29,1196.29 939.09,1196.98"/>
+ </edge>
+ <edge id=":950640531_0" function="internal">
+ <lane id=":950640531_0_0" index="0" speed="16.67" length="5.04" shape="949.88,1194.53 949.07,1193.40 948.10,1192.82 946.97,1192.78 945.68,1193.28"/>
+ </edge>
+ <edge id=":950640531_1" function="internal">
+ <lane id=":950640531_1_0" index="0" speed="5.56" length="3.48" shape="949.88,1194.53 948.27,1191.44"/>
+ </edge>
+ <edge id=":950640531_2" function="internal">
+ <lane id=":950640531_2_0" index="0" speed="5.56" length="4.82" shape="949.88,1194.53 950.04,1193.05 950.58,1192.30 951.50,1192.29 952.81,1193.01"/>
+ </edge>
+ <edge id=":950640531_3" function="internal">
+ <lane id=":950640531_3_0" index="0" speed="16.67" length="5.23" shape="954.06,1188.56 952.94,1189.42 952.37,1190.45 952.32,1191.64 952.81,1193.01"/>
+ </edge>
+ <edge id=":950640531_4" function="internal">
+ <lane id=":950640531_4_0" index="0" speed="27.78" length="9.62" shape="954.06,1188.56 945.68,1193.28"/>
+ </edge>
+ <edge id=":950640531_5" function="internal">
+ <lane id=":950640531_5_0" index="0" speed="16.67" length="6.49" shape="954.06,1188.56 951.58,1189.93 949.80,1190.87 948.69,1191.38 948.27,1191.44"/>
+ </edge>
+ <edge id=":950640531_6" function="internal">
+ <lane id=":950640531_6_0" index="0" speed="5.56" length="3.47" shape="951.21,1189.93 952.81,1193.01"/>
+ </edge>
+ <edge id=":950640531_7" function="internal">
+ <lane id=":950640531_7_0" index="0" speed="16.67" length="6.47" shape="951.21,1189.93 950.90,1190.21 949.87,1190.86 948.13,1191.89 945.68,1193.28"/>
+ </edge>
+ <edge id=":950640531_8" function="internal">
+ <lane id=":950640531_8_0" index="0" speed="5.56" length="4.82" shape="951.21,1189.93 951.04,1191.41 950.50,1192.15 949.57,1192.16 948.27,1191.44"/>
+ </edge>
+ <edge id=":950640550_0" function="internal">
+ <lane id=":950640550_0_0" index="0" speed="27.78" length="5.04" shape="915.45,1214.00 914.61,1212.91 913.62,1212.36 912.47,1212.34 911.18,1212.86"/>
+ </edge>
+ <edge id=":950640550_1" function="internal">
+ <lane id=":950640550_1_0" index="0" speed="27.78" length="4.63" shape="918.32,1212.38 913.85,1211.18"/>
+ </edge>
+ <edge id=":950640550_2" function="internal">
+ <lane id=":950640550_2_0" index="0" speed="27.78" length="9.55" shape="919.47,1208.12 911.18,1212.86"/>
+ </edge>
+ <edge id=":950640550_3" function="internal">
+ <lane id=":950640550_3_0" index="0" speed="27.78" length="3.13" shape="919.47,1208.12 918.29,1208.78 917.42,1209.22 916.88,1209.44 916.66,1209.45"/>
+ </edge>
+ <edge id=":950640558_0" function="internal">
+ <lane id=":950640558_0_0" index="0" speed="27.78" length="5.57" shape="930.59,1201.79 929.45,1202.69 928.85,1203.78 928.78,1205.08 929.25,1206.58"/>
+ </edge>
+ <edge id=":950640558_1" function="internal">
+ <lane id=":950640558_1_0" index="0" speed="27.78" length="9.79" shape="930.59,1201.79 922.08,1206.63"/>
+ </edge>
+ <edge id=":950640558_2" function="internal">
+ <lane id=":950640558_2_0" index="0" speed="27.78" length="4.73" shape="927.83,1203.51 926.26,1207.96"/>
+ </edge>
+ <edge id=":950640558_3" function="internal">
+ <lane id=":950640558_3_0" index="0" speed="27.78" length="3.27" shape="924.84,1204.89 924.69,1205.05 924.18,1205.39 923.31,1205.92 922.08,1206.63"/>
+ </edge>
+ <edge id=":950640617_0" function="internal">
+ <lane id=":950640617_0_0" index="0" speed="27.78" length="4.82" shape="276.62,1619.29 276.64,1617.80 277.11,1617.00 278.03,1616.90 279.39,1617.50"/>
+ </edge>
+ <edge id=":951739420_0" function="internal">
+ <lane id=":951739420_0_0" index="0" speed="5.56" length="9.50" shape="838.54,1317.02 834.06,1308.65"/>
+ </edge>
+ <edge id=":951739420_1" function="internal">
+ <lane id=":951739420_1_0" index="0" speed="5.56" length="10.32" shape="838.54,1317.02 837.58,1314.38 837.69,1312.05 838.89,1310.04 841.17,1308.35"/>
+ </edge>
+ <edge id=":951739420_2" function="internal">
+ <lane id=":951739420_2_0" index="0" speed="5.56" length="4.82" shape="838.54,1317.02 838.69,1315.54 839.22,1314.79 840.14,1314.77 841.45,1315.47"/>
+ </edge>
+ <edge id=":951739420_3" function="internal">
+ <lane id=":951739420_3_0" index="0" speed="5.56" length="5.02" shape="842.74,1311.25 841.63,1312.07 841.04,1313.05 840.98,1314.18 841.45,1315.47"/>
+ </edge>
+ <edge id=":951739420_4" function="internal">
+ <lane id=":951739420_4_0" index="0" speed="5.56" length="10.35" shape="842.74,1311.25 840.08,1312.24 837.75,1312.13 835.74,1310.94 834.06,1308.65"/>
+ </edge>
+ <edge id=":951739420_5" function="internal">
+ <lane id=":951739420_5_0" index="0" speed="5.56" length="4.82" shape="842.74,1311.25 841.26,1311.11 840.50,1310.59 840.47,1309.66 841.17,1308.35"/>
+ </edge>
+ <edge id=":951739420_6" function="internal">
+ <lane id=":951739420_6_0" index="0" speed="5.56" length="5.01" shape="836.96,1307.09 837.78,1308.20 838.75,1308.78 839.88,1308.83 841.17,1308.35"/>
+ </edge>
+ <edge id=":951739420_7" function="internal">
+ <lane id=":951739420_7_0" index="0" speed="5.56" length="9.50" shape="836.96,1307.09 841.45,1315.47"/>
+ </edge>
+ <edge id=":951739420_8" function="internal">
+ <lane id=":951739420_8_0" index="0" speed="5.56" length="4.82" shape="836.96,1307.09 836.82,1308.57 836.29,1309.33 835.37,1309.35 834.06,1308.65"/>
+ </edge>
+ <edge id=":951739443_0" function="internal">
+ <lane id=":951739443_0_0" index="0" speed="27.78" length="6.54" shape="1158.46,1056.46 1155.43,1050.67"/>
+ </edge>
+ <edge id=":951739443_1" function="internal">
+ <lane id=":951739443_1_0" index="0" speed="27.78" length="6.54" shape="1161.39,1054.93 1158.36,1049.14"/>
+ </edge>
+ <edge id=":951739443_2" function="internal">
+ <lane id=":951739443_2_0" index="0" speed="27.78" length="4.09" shape="1161.39,1054.93 1160.62,1053.68 1159.86,1052.91 1159.12,1052.61 1158.40,1052.79"/>
+ </edge>
+ <edge id=":951739443_3" function="internal">
+ <lane id=":951739443_3_0" index="0" speed="27.78" length="5.36" shape="1154.24,1055.27 1155.34,1054.37 1155.91,1053.30 1155.94,1052.07 1155.43,1050.67"/>
+ </edge>
+ <edge id=":951739443_4" function="internal">
+ <lane id=":951739443_4_0" index="0" speed="27.78" length="4.84" shape="1154.24,1055.27 1158.40,1052.79"/>
+ </edge>
+ <edge id=":951739458_0" function="internal">
+ <lane id=":951739458_0_0" index="0" speed="5.56" length="9.50" shape="846.77,1332.39 842.29,1324.01"/>
+ </edge>
+ <edge id=":951739458_1" function="internal">
+ <lane id=":951739458_1_0" index="0" speed="5.56" length="10.38" shape="846.77,1332.39 845.79,1329.71 845.92,1327.37 847.14,1325.37 849.45,1323.71"/>
+ </edge>
+ <edge id=":951739458_2" function="internal">
+ <lane id=":951739458_2_0" index="0" speed="5.56" length="4.82" shape="846.77,1332.39 846.91,1330.91 847.45,1330.15 848.37,1330.13 849.68,1330.83"/>
+ </edge>
+ <edge id=":951739458_3" function="internal">
+ <lane id=":951739458_3_0" index="0" speed="5.56" length="5.01" shape="850.97,1326.64 849.86,1327.44 849.27,1328.41 849.21,1329.54 849.68,1330.83"/>
+ </edge>
+ <edge id=":951739458_4" function="internal">
+ <lane id=":951739458_4_0" index="0" speed="5.56" length="10.32" shape="850.97,1326.64 848.30,1327.59 845.95,1327.46 843.95,1326.27 842.29,1324.01"/>
+ </edge>
+ <edge id=":951739458_5" function="internal">
+ <lane id=":951739458_5_0" index="0" speed="5.56" length="4.82" shape="850.97,1326.64 849.50,1326.48 848.75,1325.94 848.74,1325.02 849.45,1323.71"/>
+ </edge>
+ <edge id=":951739458_6" function="internal">
+ <lane id=":951739458_6_0" index="0" speed="5.56" length="5.05" shape="845.19,1322.45 846.01,1323.55 846.99,1324.13 848.14,1324.18 849.45,1323.71"/>
+ </edge>
+ <edge id=":951739458_7" function="internal">
+ <lane id=":951739458_7_0" index="0" speed="5.56" length="9.50" shape="845.19,1322.45 849.68,1330.83"/>
+ </edge>
+ <edge id=":951739458_8" function="internal">
+ <lane id=":951739458_8_0" index="0" speed="5.56" length="4.82" shape="845.19,1322.45 845.05,1323.94 844.52,1324.69 843.60,1324.71 842.29,1324.01"/>
+ </edge>
+ <edge id=":951739511_0" function="internal">
+ <lane id=":951739511_0_0" index="0" speed="5.56" length="9.50" shape="854.72,1347.24 850.24,1338.87"/>
+ </edge>
+ <edge id=":951739511_1" function="internal">
+ <lane id=":951739511_1_0" index="0" speed="5.56" length="10.37" shape="854.72,1347.24 853.75,1344.56 853.87,1342.23 855.08,1340.23 857.40,1338.57"/>
+ </edge>
+ <edge id=":951739511_2" function="internal">
+ <lane id=":951739511_2_0" index="0" speed="5.56" length="4.82" shape="854.72,1347.24 854.86,1345.76 855.40,1345.01 856.32,1344.98 857.63,1345.68"/>
+ </edge>
+ <edge id=":951739511_3" function="internal">
+ <lane id=":951739511_3_0" index="0" speed="5.56" length="10.32" shape="858.92,1341.49 856.25,1342.44 853.91,1342.32 851.91,1341.13 850.24,1338.87"/>
+ </edge>
+ <edge id=":951739511_4" function="internal">
+ <lane id=":951739511_4_0" index="0" speed="5.56" length="5.01" shape="858.92,1341.49 857.81,1342.30 857.22,1343.26 857.16,1344.39 857.63,1345.68"/>
+ </edge>
+ <edge id=":951739511_5" function="internal">
+ <lane id=":951739511_5_0" index="0" speed="5.56" length="4.82" shape="858.92,1341.49 857.44,1341.33 856.70,1340.79 856.68,1339.87 857.40,1338.57"/>
+ </edge>
+ <edge id=":951739511_6" function="internal">
+ <lane id=":951739511_6_0" index="0" speed="5.56" length="5.04" shape="853.15,1337.31 853.96,1338.41 854.94,1338.98 856.08,1339.04 857.40,1338.57"/>
+ </edge>
+ <edge id=":951739511_7" function="internal">
+ <lane id=":951739511_7_0" index="0" speed="5.56" length="9.50" shape="853.15,1337.31 857.63,1345.68"/>
+ </edge>
+ <edge id=":951739511_8" function="internal">
+ <lane id=":951739511_8_0" index="0" speed="5.56" length="4.82" shape="853.15,1337.31 853.00,1338.79 852.47,1339.54 851.55,1339.57 850.24,1338.87"/>
+ </edge>
+ <edge id=":951739549_0" function="internal">
+ <lane id=":951739549_0_0" index="0" speed="5.56" length="6.70" shape="876.14,1277.21 875.02,1276.58 873.60,1276.47 871.88,1276.87 869.86,1277.79"/>
+ </edge>
+ <edge id=":951739549_1" function="internal">
+ <lane id=":951739549_1_0" index="0" speed="5.56" length="9.91" shape="876.14,1277.21 868.78,1270.58"/>
+ </edge>
+ <edge id=":951739549_2" function="internal">
+ <lane id=":951739549_2_0" index="0" speed="5.56" length="4.82" shape="876.14,1277.21 875.78,1275.77 876.03,1274.88 876.90,1274.55 878.37,1274.77"/>
+ </edge>
+ <edge id=":951739549_3" function="internal">
+ <lane id=":951739549_3_0" index="0" speed="5.56" length="9.94" shape="870.98,1268.12 878.37,1274.77"/>
+ </edge>
+ <edge id=":951739549_4" function="internal">
+ <lane id=":951739549_4_0" index="0" speed="5.56" length="12.27" shape="870.98,1268.12 873.27,1270.84 873.85,1273.35 872.71,1275.67 869.86,1277.79"/>
+ </edge>
+ <edge id=":951739549_5" function="internal">
+ <lane id=":951739549_5_0" index="0" speed="5.56" length="4.82" shape="870.98,1268.12 871.35,1269.56 871.11,1270.45 870.25,1270.79 868.78,1270.58"/>
+ </edge>
+ <edge id=":951739549_6" function="internal">
+ <lane id=":951739549_6_0" index="0" speed="5.56" length="5.48" shape="868.28,1274.90 869.55,1273.95 870.06,1272.91 869.80,1271.79 868.78,1270.58"/>
+ </edge>
+ <edge id=":951739549_7" function="internal">
+ <lane id=":951739549_7_0" index="0" speed="5.56" length="10.79" shape="868.28,1274.90 871.31,1273.58 874.00,1273.12 876.35,1273.52 878.37,1274.77"/>
+ </edge>
+ <edge id=":951739549_8" function="internal">
+ <lane id=":951739549_8_0" index="0" speed="5.56" length="4.82" shape="868.28,1274.90 869.76,1275.03 870.52,1275.55 870.55,1276.48 869.86,1277.79"/>
+ </edge>
+ <edge id=":951739557_0" function="internal">
+ <lane id=":951739557_0_0" index="0" speed="27.78" length="3.95" shape="1168.61,1043.26 1169.16,1044.52 1169.34,1045.54 1169.17,1046.31 1168.63,1046.83"/>
+ </edge>
+ <edge id=":951739557_1" function="internal">
+ <lane id=":951739557_1_0" index="0" speed="27.78" length="6.40" shape="1168.61,1043.26 1171.60,1048.92"/>
+ </edge>
+ <edge id=":951739557_2" function="internal">
+ <lane id=":951739557_2_0" index="0" speed="27.78" length="6.40" shape="1165.69,1044.80 1168.68,1050.46"/>
+ </edge>
+ <edge id=":951739557_3" function="internal">
+ <lane id=":951739557_3_0" index="0" speed="27.78" length="4.05" shape="1165.13,1048.87 1168.63,1046.83"/>
+ </edge>
+ <edge id=":951739557_4" function="internal">
+ <lane id=":951739557_4_0" index="0" speed="27.78" length="4.45" shape="1165.13,1048.87 1166.13,1048.51 1167.05,1048.66 1167.90,1049.31 1168.68,1050.46"/>
+ </edge>
+ <edge id=":951739568_0" function="internal">
+ <lane id=":951739568_0_0" index="0" speed="5.56" length="6.72" shape="889.09,1288.80 887.95,1288.21 886.52,1288.14 884.79,1288.56 882.76,1289.49"/>
+ </edge>
+ <edge id=":951739568_1" function="internal">
+ <lane id=":951739568_1_0" index="0" speed="5.56" length="9.85" shape="889.09,1288.80 881.71,1282.28"/>
+ </edge>
+ <edge id=":951739568_2" function="internal">
+ <lane id=":951739568_2_0" index="0" speed="5.56" length="4.82" shape="889.09,1288.80 888.67,1287.37 888.89,1286.47 889.74,1286.11 891.21,1286.27"/>
+ </edge>
+ <edge id=":951739568_3" function="internal">
+ <lane id=":951739568_3_0" index="0" speed="5.56" length="9.72" shape="883.93,1279.84 891.21,1286.27"/>
+ </edge>
+ <edge id=":951739568_4" function="internal">
+ <lane id=":951739568_4_0" index="0" speed="5.56" length="12.22" shape="883.93,1279.84 886.18,1282.56 886.74,1285.07 885.60,1287.38 882.76,1289.49"/>
+ </edge>
+ <edge id=":951739568_5" function="internal">
+ <lane id=":951739568_5_0" index="0" speed="5.56" length="4.82" shape="883.93,1279.84 884.29,1281.28 884.04,1282.17 883.18,1282.50 881.71,1282.28"/>
+ </edge>
+ <edge id=":951739568_6" function="internal">
+ <lane id=":951739568_6_0" index="0" speed="5.56" length="5.46" shape="881.19,1286.59 882.46,1285.65 882.97,1284.62 882.72,1283.49 881.71,1282.28"/>
+ </edge>
+ <edge id=":951739568_7" function="internal">
+ <lane id=":951739568_7_0" index="0" speed="5.56" length="10.67" shape="881.19,1286.59 884.18,1285.28 886.86,1284.79 889.20,1285.12 891.21,1286.27"/>
+ </edge>
+ <edge id=":951739568_8" function="internal">
+ <lane id=":951739568_8_0" index="0" speed="5.56" length="4.82" shape="881.19,1286.59 882.67,1286.72 883.43,1287.25 883.46,1288.17 882.76,1289.49"/>
+ </edge>
+ <edge id=":951739649_0" function="internal">
+ <lane id=":951739649_0_0" index="0" speed="5.56" length="6.41" shape="1171.69,1048.70 1168.65,1043.05"/>
+ </edge>
+ <edge id=":951739649_1" function="internal">
+ <lane id=":951739649_1_0" index="0" speed="16.67" length="7.98" shape="1171.69,1048.70 1171.40,1047.31 1171.99,1045.85 1173.45,1044.30 1175.79,1042.67"/>
+ </edge>
+ <edge id=":951739649_2" function="internal">
+ <lane id=":951739649_2_0" index="0" speed="5.56" length="4.82" shape="1171.69,1048.70 1171.82,1047.22 1172.35,1046.46 1173.27,1046.43 1174.59,1047.13"/>
+ </edge>
+ <edge id=":951739649_3" function="internal">
+ <lane id=":951739649_3_0" index="0" speed="16.67" length="5.06" shape="1171.57,1041.50 1172.39,1042.62 1173.37,1043.19 1174.51,1043.21 1175.79,1042.67"/>
+ </edge>
+ <edge id=":951739649_4" function="internal">
+ <lane id=":951739649_4_0" index="0" speed="5.56" length="6.39" shape="1171.57,1041.50 1174.59,1047.13"/>
+ </edge>
+ <edge id=":951739649_5" function="internal">
+ <lane id=":951739649_5_0" index="0" speed="5.56" length="4.82" shape="1171.57,1041.50 1171.42,1042.98 1170.89,1043.73 1169.96,1043.75 1168.65,1043.05"/>
+ </edge>
+ <edge id=":951739649_6" function="internal">
+ <lane id=":951739649_6_0" index="0" speed="16.67" length="4.06" shape="1171.65,1045.16 1170.92,1045.33 1170.18,1045.03 1169.42,1044.27 1168.65,1043.05"/>
+ </edge>
+ <edge id=":951739649_7" function="internal">
+ <lane id=":951739649_7_0" index="0" speed="27.78" length="4.84" shape="1171.65,1045.16 1175.79,1042.67"/>
+ </edge>
+ <edge id=":951739649_8" function="internal">
+ <lane id=":951739649_8_0" index="0" speed="16.67" length="3.93" shape="1171.65,1045.16 1172.37,1044.98 1173.10,1045.25 1173.84,1045.97 1174.59,1047.13"/>
+ </edge>
+ <edge id=":951739684_0" function="internal">
+ <lane id=":951739684_0_0" index="0" speed="16.67" length="4.32" shape="1180.64,1064.32 1179.80,1062.95 1179.40,1061.86 1179.45,1061.05 1179.95,1060.50"/>
+ </edge>
+ <edge id=":951739684_1" function="internal">
+ <lane id=":951739684_1_0" index="0" speed="5.56" length="6.80" shape="1180.64,1064.32 1177.02,1058.56"/>
+ </edge>
+ <edge id=":951739684_2" function="internal">
+ <lane id=":951739684_2_0" index="0" speed="5.56" length="4.82" shape="1180.64,1064.32 1180.59,1062.83 1181.03,1062.02 1181.94,1061.87 1183.33,1062.41"/>
+ </edge>
+ <edge id=":951739684_3" function="internal">
+ <lane id=":951739684_3_0" index="0" speed="16.67" length="5.15" shape="1184.32,1058.13 1183.17,1058.99 1182.62,1059.99 1182.67,1061.13 1183.33,1062.41"/>
+ </edge>
+ <edge id=":951739684_4" function="internal">
+ <lane id=":951739684_4_0" index="0" speed="27.78" length="4.97" shape="1184.32,1058.13 1179.95,1060.50"/>
+ </edge>
+ <edge id=":951739684_5" function="internal">
+ <lane id=":951739684_5_0" index="0" speed="16.67" length="8.04" shape="1184.32,1058.13 1181.68,1059.34 1179.59,1059.82 1178.03,1059.55 1177.02,1058.56"/>
+ </edge>
+ <edge id=":951739684_6" function="internal">
+ <lane id=":951739684_6_0" index="0" speed="5.56" length="6.40" shape="1179.93,1056.99 1183.33,1062.41"/>
+ </edge>
+ <edge id=":951739684_7" function="internal">
+ <lane id=":951739684_7_0" index="0" speed="16.67" length="3.89" shape="1179.93,1056.99 1180.47,1058.22 1180.66,1059.21 1180.49,1059.98 1179.95,1060.50"/>
+ </edge>
+ <edge id=":951739684_8" function="internal">
+ <lane id=":951739684_8_0" index="0" speed="5.56" length="4.82" shape="1179.93,1056.99 1179.79,1058.47 1179.26,1059.22 1178.34,1059.25 1177.02,1058.56"/>
+ </edge>
+ <edge id=":951739693_0" function="internal">
+ <lane id=":951739693_0_0" index="0" speed="13.89" length="5.03" shape="818.11,1278.86 817.29,1277.75 816.31,1277.18 815.18,1277.14 813.90,1277.64"/>
+ </edge>
+ <edge id=":951739693_1" function="internal">
+ <lane id=":951739693_1_0" index="0" speed="5.56" length="4.82" shape="818.11,1278.86 818.25,1277.38 818.78,1276.63 819.70,1276.60 821.02,1277.30"/>
+ </edge>
+ <edge id=":951739693_2" function="internal">
+ <lane id=":951739693_2_0" index="0" speed="13.89" length="5.09" shape="822.17,1272.97 821.10,1273.81 820.55,1274.81 820.52,1275.97 821.02,1277.30"/>
+ </edge>
+ <edge id=":951739693_3" function="internal">
+ <lane id=":951739693_3_0" index="0" speed="22.22" length="9.50" shape="822.17,1272.97 813.90,1277.64"/>
+ </edge>
+ <edge id=":951739718_0" function="internal">
+ <lane id=":951739718_0_0" index="0" speed="27.78" length="4.00" shape="1176.81,1062.29 1177.53,1062.11 1178.26,1062.39 1179.01,1063.13 1179.76,1064.34"/>
+ </edge>
+ <edge id=":951739718_1" function="internal">
+ <lane id=":951739718_1_0" index="0" speed="27.78" length="4.16" shape="1176.81,1062.29 1173.19,1064.34"/>
+ </edge>
+ <edge id=":951739718_2" function="internal">
+ <lane id=":951739718_2_0" index="0" speed="27.78" length="6.39" shape="1176.77,1058.69 1179.76,1064.34"/>
+ </edge>
+ <edge id=":951739718_3" function="internal">
+ <lane id=":951739718_3_0" index="0" speed="27.78" length="6.39" shape="1173.85,1060.23 1176.84,1065.88"/>
+ </edge>
+ <edge id=":951739718_4" function="internal">
+ <lane id=":951739718_4_0" index="0" speed="27.78" length="4.69" shape="1173.85,1060.23 1174.38,1061.56 1174.44,1062.69 1174.05,1063.62 1173.19,1064.34"/>
+ </edge>
+ <edge id=":951739766_0" function="internal">
+ <lane id=":951739766_0_0" index="0" speed="5.56" length="9.50" shape="830.80,1302.57 826.31,1294.19"/>
+ </edge>
+ <edge id=":951739766_1" function="internal">
+ <lane id=":951739766_1_0" index="0" speed="5.56" length="10.32" shape="830.80,1302.57 829.83,1299.93 829.95,1297.60 831.15,1295.59 833.42,1293.89"/>
+ </edge>
+ <edge id=":951739766_2" function="internal">
+ <lane id=":951739766_2_0" index="0" speed="5.56" length="4.82" shape="830.80,1302.57 830.94,1301.09 831.47,1300.34 832.39,1300.31 833.71,1301.01"/>
+ </edge>
+ <edge id=":951739766_3" function="internal">
+ <lane id=":951739766_3_0" index="0" speed="5.56" length="5.03" shape="835.00,1296.79 833.89,1297.62 833.30,1298.60 833.24,1299.73 833.71,1301.01"/>
+ </edge>
+ <edge id=":951739766_4" function="internal">
+ <lane id=":951739766_4_0" index="0" speed="5.56" length="10.36" shape="835.00,1296.79 832.34,1297.78 830.00,1297.68 827.99,1296.49 826.31,1294.19"/>
+ </edge>
+ <edge id=":951739766_5" function="internal">
+ <lane id=":951739766_5_0" index="0" speed="5.56" length="4.82" shape="835.00,1296.79 833.52,1296.66 832.76,1296.13 832.73,1295.21 833.42,1293.89"/>
+ </edge>
+ <edge id=":951739766_6" function="internal">
+ <lane id=":951739766_6_0" index="0" speed="5.56" length="5.01" shape="829.22,1292.64 830.03,1293.74 831.00,1294.32 832.13,1294.37 833.42,1293.89"/>
+ </edge>
+ <edge id=":951739766_7" function="internal">
+ <lane id=":951739766_7_0" index="0" speed="5.56" length="9.50" shape="829.22,1292.64 833.71,1301.01"/>
+ </edge>
+ <edge id=":951739766_8" function="internal">
+ <lane id=":951739766_8_0" index="0" speed="5.56" length="4.82" shape="829.22,1292.64 829.08,1294.12 828.54,1294.87 827.62,1294.90 826.31,1294.19"/>
+ </edge>
+ <edge id=":951739771_0" function="internal">
+ <lane id=":951739771_0_0" index="0" speed="25.00" length="7.18" shape="1149.39,1666.22 1143.21,1662.57"/>
+ </edge>
+ <edge id=":951739771_1" function="internal">
+ <lane id=":951739771_1_0" index="0" speed="27.78" length="7.61" shape="1149.39,1666.22 1145.87,1659.47"/>
+ </edge>
+ <edge id=":951739771_2" function="internal">
+ <lane id=":951739771_2_0" index="0" speed="27.78" length="7.56" shape="1152.29,1664.65 1148.80,1657.95"/>
+ </edge>
+ <edge id=":951739776_0" function="internal">
+ <lane id=":951739776_0_0" index="0" speed="27.78" length="5.03" shape="1166.48,1071.76 1165.67,1070.64 1164.70,1070.06 1163.57,1070.02 1162.28,1070.52"/>
+ </edge>
+ <edge id=":951739776_1" function="internal">
+ <lane id=":951739776_1_0" index="0" speed="27.78" length="6.41" shape="1166.48,1071.76 1163.51,1066.09"/>
+ </edge>
+ <edge id=":951739776_2" function="internal">
+ <lane id=":951739776_2_0" index="0" speed="27.78" length="6.41" shape="1169.40,1070.23 1166.43,1064.55"/>
+ </edge>
+ <edge id=":951739776_3" function="internal">
+ <lane id=":951739776_3_0" index="0" speed="27.78" length="4.80" shape="1166.46,1068.17 1162.28,1070.52"/>
+ </edge>
+ <edge id=":951739776_4" function="internal">
+ <lane id=":951739776_4_0" index="0" speed="27.78" length="3.99" shape="1166.46,1068.17 1167.00,1067.64 1167.17,1066.86 1166.98,1065.83 1166.43,1064.55"/>
+ </edge>
+ <edge id=":956116503_0" function="internal">
+ <lane id=":956116503_0_0" index="0" speed="22.22" length="5.09" shape="759.75,1851.15 758.91,1850.00 757.93,1849.37 756.79,1849.28 755.50,1849.71"/>
+ </edge>
+ <edge id=":956116503_1" function="internal">
+ <lane id=":956116503_1_0" index="0" speed="22.22" length="7.04" shape="759.75,1851.15 758.50,1848.59 757.81,1846.66 757.71,1845.35 758.17,1844.66"/>
+ </edge>
+ <edge id=":956116503_2" function="internal">
+ <lane id=":956116503_2_0" index="0" speed="22.22" length="4.82" shape="759.75,1851.15 759.89,1849.66 760.42,1848.91 761.34,1848.88 762.65,1849.58"/>
+ </edge>
+ <edge id=":956116503_3" function="internal">
+ <lane id=":956116503_3_0" index="0" speed="22.22" length="3.97" shape="759.67,1847.59 760.42,1847.43 761.17,1847.71 761.91,1848.42 762.65,1849.58"/>
+ </edge>
+ <edge id=":956116503_4" function="internal">
+ <lane id=":956116503_4_0" index="0" speed="22.22" length="4.68" shape="759.67,1847.59 755.50,1849.71"/>
+ </edge>
+ <edge id=":956116503_5" function="internal">
+ <lane id=":956116503_5_0" index="0" speed="22.22" length="2.41" shape="759.67,1847.59 758.20,1847.42 757.45,1846.88"/>
+ </edge>
+ <edge id=":956116503_9" function="internal">
+ <lane id=":956116503_9_0" index="0" speed="22.22" length="2.41" shape="757.45,1846.88 757.44,1845.96 758.17,1844.66"/>
+ </edge>
+ <edge id=":956116503_6" function="internal">
+ <lane id=":956116503_6_0" index="0" speed="22.22" length="4.66" shape="754.01,1846.76 758.17,1844.66"/>
+ </edge>
+ <edge id=":956116503_7" function="internal">
+ <lane id=":956116503_7_0" index="0" speed="22.22" length="8.45" shape="754.01,1846.76 756.65,1845.87 758.97,1846.05 760.97,1847.28 761.55,1848.08"/>
+ </edge>
+ <edge id=":956116503_10" function="internal">
+ <lane id=":956116503_10_0" index="0" speed="22.22" length="1.86" shape="761.55,1848.08 762.65,1849.58"/>
+ </edge>
+ <edge id=":956116503_8" function="internal">
+ <lane id=":956116503_8_0" index="0" speed="22.22" length="2.41" shape="754.01,1846.76 755.49,1846.94 756.23,1847.49"/>
+ </edge>
+ <edge id=":956116503_11" function="internal">
+ <lane id=":956116503_11_0" index="0" speed="22.22" length="2.41" shape="756.23,1847.49 756.23,1848.41 755.50,1849.71"/>
+ </edge>
+ <edge id=":966097830_0" function="internal">
+ <lane id=":966097830_0_0" index="0" speed="5.56" length="2.61" shape="828.20,1462.74 827.79,1462.15 827.30,1461.83 826.71,1461.79 826.03,1462.03"/>
+ </edge>
+ <edge id=":966097830_1" function="internal">
+ <lane id=":966097830_1_0" index="0" speed="5.56" length="2.41" shape="828.20,1462.74 828.39,1461.27 828.95,1460.53"/>
+ </edge>
+ <edge id=":966097830_4" function="internal">
+ <lane id=":966097830_4_0" index="0" speed="5.56" length="2.41" shape="828.95,1460.53 829.87,1460.54 831.16,1461.29"/>
+ </edge>
+ <edge id=":966097830_2" function="internal">
+ <lane id=":966097830_2_0" index="0" speed="5.56" length="8.01" shape="824.52,1459.09 826.60,1458.37 828.40,1458.50 829.92,1459.47 831.16,1461.29"/>
+ </edge>
+ <edge id=":966097830_3" function="internal">
+ <lane id=":966097830_3_0" index="0" speed="5.56" length="2.41" shape="824.52,1459.09 826.00,1459.26 826.74,1459.80"/>
+ </edge>
+ <edge id=":966097830_5" function="internal">
+ <lane id=":966097830_5_0" index="0" speed="5.56" length="2.41" shape="826.74,1459.80 826.75,1460.73 826.03,1462.03"/>
+ </edge>
+ <edge id=":966097837_0" function="internal">
+ <lane id=":966097837_0_0" index="0" speed="5.56" length="5.36" shape="814.31,1471.55 813.45,1470.23 812.45,1469.38 811.32,1468.98 810.05,1469.05"/>
+ </edge>
+ <edge id=":966097837_1" function="internal">
+ <lane id=":966097837_1_0" index="0" speed="5.56" length="10.33" shape="814.31,1471.55 813.39,1468.87 813.53,1466.55 814.76,1464.56 817.07,1462.92"/>
+ </edge>
+ <edge id=":966097837_2" function="internal">
+ <lane id=":966097837_2_0" index="0" speed="5.56" length="4.82" shape="814.31,1471.55 814.48,1470.07 815.02,1469.32 815.95,1469.31 817.25,1470.03"/>
+ </edge>
+ <edge id=":966097837_3" function="internal">
+ <lane id=":966097837_3_0" index="0" speed="5.56" length="9.11" shape="818.58,1465.86 810.05,1469.05"/>
+ </edge>
+ <edge id=":966097837_4" function="internal">
+ <lane id=":966097837_4_0" index="0" speed="5.56" length="5.00" shape="818.58,1465.86 817.46,1466.65 816.87,1467.61 816.80,1468.74 817.25,1470.03"/>
+ </edge>
+ <edge id=":966097837_5" function="internal">
+ <lane id=":966097837_5_0" index="0" speed="5.56" length="4.82" shape="818.58,1465.86 817.10,1465.69 816.36,1465.15 816.35,1464.22 817.07,1462.92"/>
+ </edge>
+ <edge id=":966097837_6" function="internal">
+ <lane id=":966097837_6_0" index="0" speed="5.56" length="8.27" shape="809.33,1465.83 817.07,1462.92"/>
+ </edge>
+ <edge id=":966097837_7" function="internal">
+ <lane id=":966097837_7_0" index="0" speed="5.56" length="9.73" shape="809.33,1465.83 811.76,1465.66 813.89,1466.30 815.72,1467.76 817.25,1470.03"/>
+ </edge>
+ <edge id=":966097837_8" function="internal">
+ <lane id=":966097837_8_0" index="0" speed="5.56" length="4.82" shape="809.33,1465.83 810.72,1466.36 811.30,1467.08 811.08,1467.97 810.05,1469.05"/>
+ </edge>
+ <edge id=":966097869_0" function="internal">
+ <lane id=":966097869_0_0" index="0" speed="13.89" length="5.01" shape="751.13,1458.72 749.75,1458.70 748.71,1459.13 747.99,1460.00 747.60,1461.32"/>
+ </edge>
+ <edge id=":966097869_1" function="internal">
+ <lane id=":966097869_1_0" index="0" speed="13.89" length="10.32" shape="751.13,1458.72 748.41,1457.89 746.60,1456.41 745.70,1454.26 745.71,1451.44"/>
+ </edge>
+ <edge id=":966097869_2" function="internal">
+ <lane id=":966097869_2_0" index="0" speed="5.56" length="4.82" shape="751.13,1458.72 750.03,1457.71 749.75,1456.84 750.29,1456.08 751.63,1455.46"/>
+ </edge>
+ <edge id=":966097869_3" function="internal">
+ <lane id=":966097869_3_0" index="0" speed="13.89" length="5.04" shape="748.98,1451.92 748.97,1453.29 749.42,1454.33 750.30,1455.06 751.63,1455.46"/>
+ </edge>
+ <edge id=":966097869_4" function="internal">
+ <lane id=":966097869_4_0" index="0" speed="22.22" length="9.50" shape="748.98,1451.92 747.60,1461.32"/>
+ </edge>
+ <edge id=":966097869_5" function="internal">
+ <lane id=":966097869_5_0" index="0" speed="22.22" length="2.41" shape="748.98,1451.92 747.98,1453.03 747.10,1453.32"/>
+ </edge>
+ <edge id=":966097869_9" function="internal">
+ <lane id=":966097869_9_0" index="0" speed="22.22" length="2.41" shape="747.10,1453.32 746.35,1452.79 745.71,1451.44"/>
+ </edge>
+ <edge id=":966097869_6" function="internal">
+ <lane id=":966097869_6_0" index="0" speed="22.22" length="9.50" shape="744.33,1460.84 745.71,1451.44"/>
+ </edge>
+ <edge id=":966097869_7" function="internal">
+ <lane id=":966097869_7_0" index="0" speed="13.89" length="7.14" shape="744.33,1460.84 745.14,1458.12 746.63,1456.31 748.44,1455.57"/>
+ </edge>
+ <edge id=":966097869_10" function="internal">
+ <lane id=":966097869_10_0" index="0" speed="13.89" length="3.22" shape="748.44,1455.57 748.79,1455.42 751.63,1455.46"/>
+ </edge>
+ <edge id=":966097869_8" function="internal">
+ <lane id=":966097869_8_0" index="0" speed="22.22" length="2.41" shape="744.33,1460.84 745.33,1459.74 746.20,1459.45"/>
+ </edge>
+ <edge id=":966097869_11" function="internal">
+ <lane id=":966097869_11_0" index="0" speed="22.22" length="2.41" shape="746.20,1459.45 746.96,1459.98 747.60,1461.32"/>
+ </edge>
+ <edge id=":966132112_0" function="internal">
+ <lane id=":966132112_0_0" index="0" speed="13.89" length="5.04" shape="1201.76,1572.02 1202.59,1573.15 1203.56,1573.76 1204.70,1573.86 1205.98,1573.45"/>
+ </edge>
+ <edge id=":966132112_1" function="internal">
+ <lane id=":966132112_1_0" index="0" speed="22.22" length="6.18" shape="1200.45,1576.20 1205.98,1573.45"/>
+ </edge>
+ <edge id=":966132131_0" function="internal">
+ <lane id=":966132131_0_0" index="0" speed="13.89" length="5.01" shape="1318.70,1388.90 1317.88,1387.80 1316.91,1387.22 1315.78,1387.18 1314.49,1387.66"/>
+ </edge>
+ <edge id=":966132131_1" function="internal">
+ <lane id=":966132131_1_0" index="0" speed="22.22" length="6.18" shape="1318.70,1388.90 1315.79,1383.44"/>
+ </edge>
+ <edge id=":966193793_0" function="internal">
+ <lane id=":966193793_0_0" index="0" speed="8.33" length="5.06" shape="1416.89,1295.03 1416.70,1293.65 1416.13,1292.65 1415.16,1292.04 1413.82,1291.82"/>
+ </edge>
+ <edge id=":966193793_1" function="internal">
+ <lane id=":966193793_1_0" index="0" speed="8.33" length="10.39" shape="1416.89,1295.03 1417.30,1292.21 1418.51,1290.21 1420.54,1289.02 1423.37,1288.66"/>
+ </edge>
+ <edge id=":966193793_2" function="internal">
+ <lane id=":966193793_2_0" index="0" speed="8.33" length="4.82" shape="1416.89,1295.03 1417.72,1293.80 1418.54,1293.39 1419.37,1293.80 1420.19,1295.04"/>
+ </edge>
+ <edge id=":966193793_3" function="internal">
+ <lane id=":966193793_3_0" index="0" speed="8.33" length="5.02" shape="1423.32,1291.96 1421.95,1292.13 1420.98,1292.71 1420.39,1293.67 1420.19,1295.04"/>
+ </edge>
+ <edge id=":966193793_4" function="internal">
+ <lane id=":966193793_4_0" index="0" speed="8.33" length="9.50" shape="1423.32,1291.96 1413.82,1291.82"/>
+ </edge>
+ <edge id=":966193793_5" function="internal">
+ <lane id=":966193793_5_0" index="0" speed="8.33" length="4.82" shape="1423.32,1291.96 1422.09,1291.12 1421.69,1290.29 1422.12,1289.47 1423.37,1288.66"/>
+ </edge>
+ <edge id=":966193793_6" function="internal">
+ <lane id=":966193793_6_0" index="0" speed="8.33" length="9.50" shape="1413.87,1288.52 1423.37,1288.66"/>
+ </edge>
+ <edge id=":966193793_7" function="internal">
+ <lane id=":966193793_7_0" index="0" speed="8.33" length="10.32" shape="1413.87,1288.52 1416.64,1288.96 1418.61,1290.20 1419.80,1292.22 1420.19,1295.04"/>
+ </edge>
+ <edge id=":966193793_8" function="internal">
+ <lane id=":966193793_8_0" index="0" speed="8.33" length="4.82" shape="1413.87,1288.52 1415.09,1289.37 1415.49,1290.20 1415.07,1291.02 1413.82,1291.82"/>
+ </edge>
+ <edge id=":966193796_0" function="internal">
+ <lane id=":966193796_0_0" index="0" speed="22.22" length="5.06" shape="1269.57,1022.76 1268.77,1021.62 1267.81,1021.02 1266.68,1020.98 1265.38,1021.49"/>
+ </edge>
+ <edge id=":966193796_1" function="internal">
+ <lane id=":966193796_1_0" index="0" speed="22.22" length="2.41" shape="1269.57,1022.76 1269.75,1021.29 1270.31,1020.55"/>
+ </edge>
+ <edge id=":966193796_4" function="internal">
+ <lane id=":966193796_4_0" index="0" speed="22.22" length="2.41" shape="1270.31,1020.55 1271.23,1020.54 1272.52,1021.28"/>
+ </edge>
+ <edge id=":966193796_2" function="internal">
+ <lane id=":966193796_2_0" index="0" speed="22.22" length="5.20" shape="1273.67,1016.82 1272.60,1017.65 1272.06,1018.67 1272.03,1019.88 1272.52,1021.28"/>
+ </edge>
+ <edge id=":966193796_3" function="internal">
+ <lane id=":966193796_3_0" index="0" speed="22.22" length="9.52" shape="1273.67,1016.82 1265.38,1021.49"/>
+ </edge>
+ <edge id=":966193808_0" function="internal">
+ <lane id=":966193808_0_0" index="0" speed="15.28" length="5.52" shape="1305.27,1092.26 1304.23,1091.08 1303.10,1090.46 1301.86,1090.38 1300.53,1090.86"/>
+ </edge>
+ <edge id=":966193808_1" function="internal">
+ <lane id=":966193808_1_0" index="0" speed="15.28" length="10.14" shape="1305.27,1092.26 1303.60,1089.78 1302.49,1088.02 1301.49,1086.20 1300.14,1083.53"/>
+ </edge>
+ <edge id=":966193808_2" function="internal">
+ <lane id=":966193808_2_0" index="0" speed="8.33" length="10.72" shape="1305.27,1092.26 1303.97,1089.59 1303.89,1087.20 1305.02,1085.10 1307.36,1083.27"/>
+ </edge>
+ <edge id=":966193808_3" function="internal">
+ <lane id=":966193808_3_0" index="0" speed="8.33" length="4.82" shape="1305.27,1092.26 1305.26,1090.78 1305.71,1089.97 1306.62,1089.85 1308.00,1090.41"/>
+ </edge>
+ <edge id=":966193808_4" function="internal">
+ <lane id=":966193808_4_0" index="0" speed="8.33" length="5.10" shape="1308.99,1086.14 1307.88,1087.01 1307.34,1088.01 1307.38,1089.14 1308.00,1090.41"/>
+ </edge>
+ <edge id=":966193808_5" function="internal">
+ <lane id=":966193808_5_0" index="0" speed="15.28" length="9.69" shape="1308.99,1086.14 1300.53,1090.86"/>
+ </edge>
+ <edge id=":966193808_6" function="internal">
+ <lane id=":966193808_6_0" index="0" speed="15.28" length="10.66" shape="1308.99,1086.14 1306.24,1087.23 1303.85,1087.16 1301.81,1085.93 1300.14,1083.53"/>
+ </edge>
+ <edge id=":966193808_7" function="internal">
+ <lane id=":966193808_7_0" index="0" speed="8.33" length="4.82" shape="1308.99,1086.14 1307.51,1086.04 1306.74,1085.52 1306.69,1084.60 1307.36,1083.27"/>
+ </edge>
+ <edge id=":966193808_8" function="internal">
+ <lane id=":966193808_8_0" index="0" speed="15.28" length="5.13" shape="1303.08,1082.05 1303.89,1083.19 1304.87,1083.78 1306.03,1083.80 1307.36,1083.27"/>
+ </edge>
+ <edge id=":966193808_9" function="internal">
+ <lane id=":966193808_9_0" index="0" speed="15.28" length="9.70" shape="1303.08,1082.05 1308.00,1090.41"/>
+ </edge>
+ <edge id=":966193808_10" function="internal">
+ <lane id=":966193808_10_0" index="0" speed="22.22" length="10.38" shape="1303.08,1082.05 1304.02,1084.78 1303.91,1087.16 1302.75,1089.19 1300.53,1090.86"/>
+ </edge>
+ <edge id=":966193808_11" function="internal">
+ <lane id=":966193808_11_0" index="0" speed="22.22" length="2.41" shape="1303.08,1082.05 1302.90,1083.52 1302.35,1084.26"/>
+ </edge>
+ <edge id=":966193808_16" function="internal">
+ <lane id=":966193808_16_0" index="0" speed="22.22" length="2.41" shape="1302.35,1084.26 1301.43,1084.27 1300.14,1083.53"/>
+ </edge>
+ <edge id=":966193808_12" function="internal">
+ <lane id=":966193808_12_0" index="0" speed="22.22" length="5.19" shape="1298.95,1087.96 1300.03,1087.14 1300.59,1086.12 1300.62,1084.92 1300.14,1083.53"/>
+ </edge>
+ <edge id=":966193808_13" function="internal">
+ <lane id=":966193808_13_0" index="0" speed="15.28" length="9.63" shape="1298.95,1087.96 1307.36,1083.27"/>
+ </edge>
+ <edge id=":966193808_14" function="internal">
+ <lane id=":966193808_14_0" index="0" speed="15.28" length="5.13" shape="1298.95,1087.96 1301.54,1087.01 1303.91,1087.10"/>
+ </edge>
+ <edge id=":966193808_17" function="internal">
+ <lane id=":966193808_17_0" index="0" speed="15.28" length="5.34" shape="1303.91,1087.10 1306.07,1088.24 1308.00,1090.41"/>
+ </edge>
+ <edge id=":966193808_15" function="internal">
+ <lane id=":966193808_15_0" index="0" speed="22.22" length="2.41" shape="1298.95,1087.96 1300.43,1088.09 1301.19,1088.62"/>
+ </edge>
+ <edge id=":966193808_18" function="internal">
+ <lane id=":966193808_18_0" index="0" speed="22.22" length="2.41" shape="1301.19,1088.62 1301.22,1089.54 1300.53,1090.86"/>
+ </edge>
+ <edge id=":966193812_0" function="internal">
+ <lane id=":966193812_0_0" index="0" speed="8.33" length="9.50" shape="1386.53,1155.84 1382.08,1164.24"/>
+ </edge>
+ <edge id=":966193812_1" function="internal">
+ <lane id=":966193812_1_0" index="0" speed="8.33" length="10.39" shape="1386.53,1155.84 1384.85,1158.15 1382.83,1159.35 1380.49,1159.45 1377.82,1158.45"/>
+ </edge>
+ <edge id=":966193812_2" function="internal">
+ <lane id=":966193812_2_0" index="0" speed="8.33" length="4.82" shape="1386.53,1155.84 1385.22,1156.55 1384.30,1156.53 1383.76,1155.78 1383.61,1154.30"/>
+ </edge>
+ <edge id=":966193812_3" function="internal">
+ <lane id=":966193812_3_0" index="0" speed="8.33" length="5.02" shape="1379.41,1155.56 1380.70,1156.04 1381.83,1155.99 1382.80,1155.41 1383.61,1154.30"/>
+ </edge>
+ <edge id=":966193812_4" function="internal">
+ <lane id=":966193812_4_0" index="0" speed="8.33" length="10.32" shape="1379.41,1155.56 1381.69,1157.26 1382.89,1159.27 1383.02,1161.60 1382.08,1164.24"/>
+ </edge>
+ <edge id=":966193812_5" function="internal">
+ <lane id=":966193812_5_0" index="0" speed="8.33" length="4.82" shape="1379.41,1155.56 1380.10,1156.87 1380.06,1157.80 1379.30,1158.32 1377.82,1158.45"/>
+ </edge>
+ <edge id=":966193812_6" function="internal">
+ <lane id=":966193812_6_0" index="0" speed="8.33" length="5.06" shape="1379.16,1162.69 1379.62,1161.41 1379.55,1160.27 1378.95,1159.29 1377.82,1158.45"/>
+ </edge>
+ <edge id=":966193812_7" function="internal">
+ <lane id=":966193812_7_0" index="0" speed="8.33" length="9.50" shape="1379.16,1162.69 1383.61,1154.30"/>
+ </edge>
+ <edge id=":966193812_8" function="internal">
+ <lane id=":966193812_8_0" index="0" speed="8.33" length="4.82" shape="1379.16,1162.69 1380.47,1161.99 1381.39,1162.01 1381.93,1162.76 1382.08,1164.24"/>
+ </edge>
+ <edge id=":966193814_0" function="internal">
+ <lane id=":966193814_0_0" index="0" speed="15.28" length="0.40" shape="1416.90,1309.13 1416.88,1308.73"/>
+ </edge>
+ <edge id=":966193814_1" function="internal">
+ <lane id=":966193814_1_0" index="0" speed="22.22" length="2.41" shape="1416.90,1309.13 1417.62,1307.83 1418.41,1307.35"/>
+ </edge>
+ <edge id=":966193814_4" function="internal">
+ <lane id=":966193814_4_0" index="0" speed="22.22" length="2.41" shape="1418.41,1307.35 1419.26,1307.70 1420.19,1308.86"/>
+ </edge>
+ <edge id=":966193814_2" function="internal">
+ <lane id=":966193814_2_0" index="0" speed="15.28" length="0.13" shape="1420.18,1308.73 1420.19,1308.86"/>
+ </edge>
+ <edge id=":966193814_3" function="internal">
+ <lane id=":966193814_3_0" index="0" speed="8.33" length="2.41" shape="1420.18,1308.73 1419.36,1309.97 1418.53,1310.38"/>
+ </edge>
+ <edge id=":966193814_5" function="internal">
+ <lane id=":966193814_5_0" index="0" speed="8.33" length="2.41" shape="1418.53,1310.38 1417.71,1309.97 1416.88,1308.73"/>
+ </edge>
+ <edge id=":966193857_0" function="internal">
+ <lane id=":966193857_0_0" index="0" speed="22.22" length="5.01" shape="1461.46,1430.32 1462.28,1431.43 1463.25,1432.00 1464.38,1432.05 1465.66,1431.57"/>
+ </edge>
+ <edge id=":966193857_1" function="internal">
+ <lane id=":966193857_1_0" index="0" speed="22.22" length="2.41" shape="1461.46,1430.32 1461.32,1431.80 1460.79,1432.56"/>
+ </edge>
+ <edge id=":966193857_4" function="internal">
+ <lane id=":966193857_4_0" index="0" speed="22.22" length="2.41" shape="1460.79,1432.56 1459.87,1432.59 1458.55,1431.89"/>
+ </edge>
+ <edge id=":966193857_2" function="internal">
+ <lane id=":966193857_2_0" index="0" speed="22.22" length="5.03" shape="1457.34,1436.14 1458.43,1435.32 1459.00,1434.33 1459.04,1433.19 1458.55,1431.89"/>
+ </edge>
+ <edge id=":966193857_3" function="internal">
+ <lane id=":966193857_3_0" index="0" speed="22.22" length="9.50" shape="1457.34,1436.14 1465.66,1431.57"/>
+ </edge>
+ <edge id=":974693391_0" function="internal">
+ <lane id=":974693391_0_0" index="0" speed="25.00" length="6.29" shape="1346.95,1963.34 1345.75,1963.62 1344.57,1963.20 1343.39,1962.07 1342.23,1960.24"/>
+ </edge>
+ <edge id=":974693391_1" function="internal">
+ <lane id=":974693391_1_0" index="0" speed="27.78" length="6.18" shape="1346.95,1963.34 1341.50,1966.24"/>
+ </edge>
+ <edge id=":974693391_2" function="internal">
+ <lane id=":974693391_2_0" index="0" speed="27.78" length="6.19" shape="1345.40,1960.42 1339.94,1963.33"/>
+ </edge>
+ <edge id=":974693391_3" function="internal">
+ <lane id=":974693391_3_0" index="0" speed="27.78" length="2.41" shape="1345.40,1960.42 1343.92,1960.27 1343.17,1959.74"/>
+ </edge>
+ <edge id=":974693391_11" function="internal">
+ <lane id=":974693391_11_0" index="0" speed="27.78" length="2.41" shape="1343.17,1959.74 1343.15,1958.82 1343.86,1957.51"/>
+ </edge>
+ <edge id=":974693391_4" function="internal">
+ <lane id=":974693391_4_0" index="0" speed="25.00" length="3.28" shape="1339.27,1955.38 1339.60,1955.56 1340.22,1955.49 1341.12,1955.17 1342.31,1954.59"/>
+ </edge>
+ <edge id=":974693391_5" function="internal">
+ <lane id=":974693391_5_0" index="0" speed="22.22" length="5.69" shape="1339.27,1955.38 1342.23,1960.24"/>
+ </edge>
+ <edge id=":974693391_6" function="internal">
+ <lane id=":974693391_6_0" index="0" speed="25.00" length="8.89" shape="1339.27,1955.38 1340.75,1958.22 1341.35,1960.50 1341.08,1962.20 1339.94,1963.33"/>
+ </edge>
+ <edge id=":974693391_7" function="internal">
+ <lane id=":974693391_7_0" index="0" speed="27.78" length="6.20" shape="1336.83,1957.51 1342.31,1954.59"/>
+ </edge>
+ <edge id=":974693391_8" function="internal">
+ <lane id=":974693391_8_0" index="0" speed="27.78" length="6.19" shape="1338.39,1960.42 1343.86,1957.51"/>
+ </edge>
+ <edge id=":974693391_9" function="internal">
+ <lane id=":974693391_9_0" index="0" speed="25.00" length="4.24" shape="1338.39,1960.42 1339.78,1959.79 1340.89,1959.55 1341.70,1959.70 1342.23,1960.24"/>
+ </edge>
+ <edge id=":974693391_10" function="internal">
+ <lane id=":974693391_10_0" index="0" speed="27.78" length="2.41" shape="1338.39,1960.42 1339.87,1960.56 1340.62,1961.10"/>
+ </edge>
+ <edge id=":974693391_12" function="internal">
+ <lane id=":974693391_12_0" index="0" speed="27.78" length="2.41" shape="1340.62,1961.10 1340.65,1962.02 1339.94,1963.33"/>
+ </edge>
+ <edge id=":975934874_0" function="internal">
+ <lane id=":975934874_0_0" index="0" speed="13.89" length="5.64" shape="773.32,2286.40 772.34,2287.17 771.71,2288.25 771.43,2289.65 771.50,2291.37"/>
+ </edge>
+ <edge id=":975934874_1" function="internal">
+ <lane id=":975934874_1_0" index="0" speed="22.22" length="6.39" shape="773.32,2286.40 767.65,2289.36"/>
+ </edge>
+ <edge id=":975934878_0" function="internal">
+ <lane id=":975934878_0_0" index="0" speed="22.22" length="6.18" shape="1156.27,2272.97 1153.46,2267.47"/>
+ </edge>
+ <edge id=":975934878_1" function="internal">
+ <lane id=":975934878_1_0" index="0" speed="22.22" length="2.41" shape="1156.27,2272.97 1156.44,2271.49 1156.98,2270.75"/>
+ </edge>
+ <edge id=":975934878_6" function="internal">
+ <lane id=":975934878_6_0" index="0" speed="22.22" length="2.41" shape="1156.98,2270.75 1157.90,2270.74 1159.20,2271.46"/>
+ </edge>
+ <edge id=":975934878_2" function="internal">
+ <lane id=":975934878_2_0" index="0" speed="22.22" length="6.14" shape="1156.41,2265.98 1159.20,2271.46"/>
+ </edge>
+ <edge id=":975934878_3" function="internal">
+ <lane id=":975934878_3_0" index="0" speed="22.22" length="2.41" shape="1156.41,2265.98 1156.23,2267.46 1155.68,2268.20"/>
+ </edge>
+ <edge id=":975934878_7" function="internal">
+ <lane id=":975934878_7_0" index="0" speed="22.22" length="2.41" shape="1155.68,2268.20 1154.76,2268.20 1153.46,2267.47"/>
+ </edge>
+ <edge id=":975934878_4" function="internal">
+ <lane id=":975934878_4_0" index="0" speed="13.89" length="5.01" shape="1152.09,2271.66 1153.21,2270.85 1153.81,2269.89 1153.90,2268.76 1153.46,2267.47"/>
+ </edge>
+ <edge id=":975934878_5" function="internal">
+ <lane id=":975934878_5_0" index="0" speed="13.89" length="7.86" shape="1152.09,2271.66 1154.66,2270.53 1156.71,2270.12 1158.22,2270.43 1159.20,2271.46"/>
+ </edge>
+
+ <edge id="-101272434" from="566670951" to="1168929661" priority="1" type="highway.cycleway" shape="1805.32,1410.87 1763.70,1432.92 1747.57,1444.12 1695.54,1470.89 1582.36,1529.08 1473.76,1584.23">
+ <lane id="-101272434_0" index="0" allow="bicycle" speed="5.56" length="369.55" shape="1806.09,1412.32 1764.47,1434.38 1748.51,1445.47 1696.30,1472.35 1583.11,1530.55 1478.78,1583.53"/>
+ </edge>
+ <edge id="-105254616#0" from="1719223329" to="1212960879" priority="1" type="highway.footway" shape="921.87,1598.37 908.33,1603.29 888.28,1610.18 869.53,1619.30 848.44,1632.84 828.53,1639.42">
+ <lane id="-105254616#0_0" index="0" allow="pedestrian" speed="8.33" length="94.11" shape="919.48,1600.99 908.89,1604.84 888.82,1611.74 870.26,1620.79 849.16,1634.35 834.07,1639.33"/>
+ </edge>
+ <edge id="-105254616#1" from="1719223322" to="1719223329" priority="1" type="highway.footway" shape="1073.63,1558.52 1068.38,1561.19 1025.87,1582.83 1010.12,1553.37 921.87,1598.37">
+ <lane id="-105254616#1_0" index="0" allow="pedestrian" speed="8.33" length="180.63" shape="1071.60,1561.40 1069.13,1562.66 1025.18,1585.04 1009.43,1555.57 924.68,1598.78"/>
+ </edge>
+ <edge id="-105254618" from="1634988377" to="1212960877" priority="2" type="highway.service" shape="748.19,1445.93 760.42,1449.07 772.23,1451.72 788.25,1452.79 798.22,1451.33 844.39,1427.33 924.37,1572.29 910.05,1587.09 867.02,1608.45 823.93,1630.44">
+ <lane id="-105254618_0" index="0" allow="delivery" speed="5.56" length="380.61" shape="753.55,1445.60 760.83,1447.47 772.59,1450.11 788.18,1451.13 797.71,1449.74 845.06,1425.12 926.41,1572.56 911.04,1588.44 867.75,1609.92 828.91,1629.75"/>
+ </edge>
+ <edge id="-105283535#0" from="1213368991" to="733663076" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-105283535#0_0" index="0" speed="27.78" length="93.70" shape="735.90,1659.25 828.98,1670.02"/>
+ </edge>
+ <edge id="-105283535#1" from="552842256" to="1213368991" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-105283535#1_0" index="0" speed="27.78" length="7.61" shape="722.04,1657.61 729.60,1658.51"/>
+ </edge>
+ <edge id="-106366774" from="1224080676" to="1224080660" priority="5" type="highway.unclassified" shape="508.14,1033.93 520.07,1058.29 662.05,1329.66">
+ <lane id="-106366774_0" index="0" speed="22.22" length="330.14" shape="509.62,1033.21 521.55,1057.57 662.02,1326.06"/>
+ </edge>
+ <edge id="-106367427#0" from="1239243628" to="1224091971" priority="5" type="highway.unclassified">
+ <lane id="-106367427#0_0" index="0" speed="22.22" length="67.52" shape="651.58,1122.41 620.86,1062.27"/>
+ </edge>
+ <edge id="-106367427#1" from="1903640411" to="1239243628" priority="5" type="highway.unclassified">
+ <lane id="-106367427#1_0" index="0" speed="22.22" length="4.39" shape="658.27,1134.78 656.13,1130.94"/>
+ </edge>
+ <edge id="-106836308#0" from="1232169474" to="1228499918" priority="4" type="highway.residential">
+ <lane id="-106836308#0_0" index="0" speed="13.89" length="44.75" shape="668.83,2156.41 713.08,2149.70"/>
+ </edge>
+ <edge id="-106836308#1" from="1228499957" to="1232169474" priority="4" type="highway.residential">
+ <lane id="-106836308#1_0" index="0" speed="13.89" length="26.84" shape="632.91,2162.01 659.43,2157.86"/>
+ </edge>
+ <edge id="-106836308#2" from="1228499925" to="1228499957" priority="4" type="highway.residential" shape="368.82,2201.27 460.15,2188.24 529.42,2178.37 577.70,2171.08 626.69,2164.66">
+ <lane id="-106836308#2_0" index="0" speed="13.89" length="253.93" shape="368.59,2199.63 459.91,2186.61 529.18,2176.73 577.45,2169.45 619.98,2163.87"/>
+ </edge>
+ <edge id="-107028581#0" from="728492353" to="1233612841" priority="15" type="highway.unclassified|railway.tram" shape="629.00,1648.26 570.76,1640.81 479.06,1629.71 384.79,1618.30 287.32,1606.97 270.32,1605.03 267.14,1604.67">
+ <lane id="-107028581#0_0" index="0" speed="27.78" length="359.73" shape="624.10,1649.30 570.55,1642.45 478.86,1631.35 384.60,1619.94 287.13,1608.61 270.13,1606.67 266.95,1606.31"/>
+ </edge>
+ <edge id="-107028581#1" from="1239242543" to="728492353" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-107028581#1_0" index="0" speed="27.78" length="26.73" shape="660.06,1653.56 633.52,1650.45"/>
+ </edge>
+ <edge id="-107028581#2" from="552842257" to="1239242543" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-107028581#2_0" index="0" speed="27.78" length="28.47" shape="697.87,1657.99 669.60,1654.68"/>
+ </edge>
+ <edge id="-107028581#3" from="552842256" to="552842257" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-107028581#3_0" index="0" speed="27.78" length="2.92" shape="705.63,1658.93 702.73,1658.57"/>
+ </edge>
+ <edge id="-107066313#0" from="477486719" to="950640617" priority="15" type="highway.unclassified|railway.tram" shape="405.54,1816.27 393.25,1797.66 372.19,1764.52 334.49,1706.02 281.98,1624.56 278.01,1618.39">
+ <lane id="-107066313#0_0" index="0" speed="27.78" length="230.37" shape="401.37,1812.95 391.87,1798.57 370.80,1765.41 333.10,1706.92 280.60,1625.45 276.62,1619.29"/>
+ </edge>
+ <edge id="-107066313#1" from="728492341" to="477486719" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-107066313#1_0" index="0" speed="27.78" length="55.69" shape="436.77,1868.25 406.80,1821.31"/>
+ </edge>
+ <edge id="-107066313#2" from="477486717" to="728492341" priority="15" type="highway.unclassified|railway.tram" shape="504.35,1971.39 499.22,1963.31 455.89,1895.16 440.65,1871.28">
+ <lane id="-107066313#2_0" index="0" speed="27.78" length="108.90" shape="500.34,1968.14 497.83,1964.19 454.50,1896.04 441.88,1876.27"/>
+ </edge>
+ <edge id="-107066313#3" from="1228499992" to="477486717" priority="15" type="highway.unclassified|railway.tram" shape="568.86,2072.13 545.68,2035.82 507.14,1975.73 504.35,1971.39">
+ <lane id="-107066313#3_0" index="0" speed="27.78" length="110.27" shape="565.08,2069.27 544.29,2036.71 505.75,1976.62 505.62,1976.41"/>
+ </edge>
+ <edge id="-107066313#4" from="1228499957" to="1228499992" priority="15" type="highway.unclassified|railway.tram" shape="626.69,2164.66 621.68,2156.63 568.86,2072.13">
+ <lane id="-107066313#4_0" index="0" speed="27.78" length="98.13" shape="621.82,2159.97 620.28,2157.50 569.80,2076.76"/>
+ </edge>
+ <edge id="-107066313#5" from="477486714" to="1228499957" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-107066313#5_0" index="0" speed="27.78" length="61.75" shape="662.87,2222.61 628.91,2171.03"/>
+ </edge>
+ <edge id="-107166846#0" from="728492372" to="728492353" priority="5" type="highway.unclassified">
+ <lane id="-107166846#0_0" index="0" speed="22.22" length="37.49" shape="622.31,1689.98 626.80,1652.77"/>
+ </edge>
+ <edge id="-107166846#1" from="728492360" to="728492372" priority="5" type="highway.unclassified">
+ <lane id="-107166846#1_0" index="0" speed="22.22" length="64.92" shape="612.00,1769.92 620.37,1705.54"/>
+ </edge>
+ <edge id="-107166846#2" from="728492361" to="728492360" priority="5" type="highway.unclassified">
+ <lane id="-107166846#2_0" index="0" speed="22.22" length="54.48" shape="608.47,1836.28 611.05,1781.86"/>
+ </edge>
+ <edge id="-107166846#3" from="728492366" to="728492361" priority="5" type="highway.unclassified" shape="606.61,1912.43 606.99,1904.28 609.90,1840.82">
+ <lane id="-107166846#3_0" index="0" speed="22.22" length="56.81" shape="605.31,1904.92 605.34,1904.20 607.91,1848.17"/>
+ </edge>
+ <edge id="-107166846#4" from="1239242544" to="728492366" priority="5" type="highway.unclassified" shape="640.45,2057.53 607.80,1917.51 606.61,1912.43">
+ <lane id="-107166846#4_0" index="0" speed="22.22" length="139.93" shape="638.12,2054.80 606.34,1918.53"/>
+ </edge>
+ <edge id="-107166846#5" from="1232169474" to="1239242544" priority="5" type="highway.unclassified">
+ <lane id="-107166846#5_0" index="0" speed="22.22" length="95.82" shape="661.87,2154.22 639.59,2061.03"/>
+ </edge>
+ <edge id="-107167209#0" from="1239242543" to="1232172723" priority="4" type="highway.residential">
+ <lane id="-107167209#0_0" index="0" speed="13.89" length="17.14" shape="664.02,1647.50 666.28,1630.51"/>
+ </edge>
+ <edge id="-107167209#1" from="1232172714" to="1239242543" priority="4" type="highway.residential">
+ <lane id="-107167209#1_0" index="0" speed="13.89" length="17.85" shape="660.40,1674.72 662.75,1657.02"/>
+ </edge>
+ <edge id="-108329425#0" from="1212960879" to="733663076" priority="5" type="highway.unclassified" shape="828.53,1639.42 833.33,1648.80 844.12,1666.36 848.02,1673.89">
+ <lane id="-108329425#0_0" index="0" speed="22.22" length="27.41" shape="832.41,1643.38 834.80,1648.04 845.53,1665.50 846.30,1666.99"/>
+ </edge>
+ <edge id="-108329425#1" from="2016414185" to="1212960879" priority="5" type="highway.unclassified">
+ <lane id="-108329425#1_0" index="0" speed="22.22" length="1.50" shape="828.55,1635.86 829.24,1637.19"/>
+ </edge>
+ <edge id="-108329425#2" from="1212960877" to="2016414185" priority="5" type="highway.unclassified">
+ <lane id="-108329425#2_0" index="0" speed="22.22" length="2.10" shape="826.61,1632.05 827.56,1633.92"/>
+ </edge>
+ <edge id="-108329425#3" from="1323557968" to="1212960877" priority="5" type="highway.unclassified">
+ <lane id="-108329425#3_0" index="0" speed="22.22" length="52.28" shape="799.40,1578.93 823.23,1625.46"/>
+ </edge>
+ <edge id="-108329425#4" from="429179805" to="1323557968" priority="5" type="highway.unclassified">
+ <lane id="-108329425#4_0" index="0" speed="22.22" length="77.32" shape="761.31,1504.59 796.57,1573.41"/>
+ </edge>
+ <edge id="-108329425#5" from="445506220" to="429179805" priority="5" type="highway.unclassified">
+ <lane id="-108329425#5_0" index="0" speed="22.22" length="9.98" shape="749.64,1488.00 756.27,1495.47"/>
+ </edge>
+ <edge id="-108329426#0" from="427996792" to="1243159116" priority="15" type="highway.unclassified|railway.tram" shape="1068.75,2092.94 1071.45,2094.86 1076.02,2096.26 1078.78,2096.74 1082.77,2097.34">
+ <lane id="-108329426#0_0" index="0" speed="27.78" length="1.03" shape="1074.12,2093.95 1075.11,2094.25"/>
+ </edge>
+ <edge id="-108329426#1" from="1257054208" to="427996792" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-108329426#1_0" index="0" speed="27.78" length="4.73" shape="1068.25,2087.95 1070.25,2092.24"/>
+ </edge>
+ <edge id="-108329426#2" from="445506216" to="1257054208" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-108329426#2_0" index="0" speed="27.78" length="182.09" shape="979.75,1923.25 1065.94,2083.65"/>
+ </edge>
+ <edge id="-108329427#0" from="1263725264" to="427996792" priority="15" type="highway.unclassified|railway.tram" shape="1074.67,2101.63 1073.22,2099.56 1068.75,2092.94">
+ <lane id="-108329427#0_0" index="0" speed="27.78" length="0.33" shape="1069.16,2096.49 1068.98,2096.22"/>
+ </edge>
+ <edge id="-108329427#1" from="1263725266" to="1263725264" priority="15" type="highway.unclassified|railway.tram" shape="1080.63,2107.23 1080.00,2107.03 1076.79,2104.66 1074.67,2101.63">
+ <lane id="-108329427#1_0" index="0" speed="27.78" length="5.15" shape="1077.64,2108.76 1075.59,2105.83 1076.86,2106.76"/>
+ </edge>
+ <edge id="-108329427#2" from="1243159115" to="1263725266" priority="15" type="highway.unclassified|railway.tram" shape="1090.69,2108.82 1087.06,2109.03 1083.82,2108.23 1080.63,2107.23">
+ <lane id="-108329427#2_0" index="0" speed="27.78" length="10.92" shape="1090.79,2110.47 1086.91,2110.70 1083.42,2109.83 1080.14,2108.80"/>
+ </edge>
+ <edge id="-108733421" from="1246731541" to="1246731574" priority="15" type="highway.secondary_link|railway.tram" shape="1198.37,1029.90 1193.93,1030.49 1189.07,1030.72 1185.19,1030.38 1182.97,1030.16">
+ <lane id="-108733421_0" index="0" speed="27.78" length="18.54" shape="1196.47,1031.82 1194.14,1032.12 1189.15,1032.37 1185.05,1032.02 1178.01,1031.33"/>
+ </edge>
+ <edge id="-108733422" from="1246731544" to="1246731620" priority="15" type="highway.secondary_link|railway.tram" shape="1175.93,1027.69 1171.58,1026.54 1166.74,1024.73 1162.28,1023.27 1158.89,1022.12 1155.47,1019.97 1153.47,1018.17">
+ <lane id="-108733422_0" index="0" speed="27.78" length="12.00" shape="1175.50,1029.28 1171.15,1028.13 1166.16,1026.27 1164.10,1025.60"/>
+ </edge>
+ <edge id="-108733424" from="1246731525" to="1246731470" priority="15" type="highway.secondary_link|railway.tram" shape="1199.81,1056.38 1199.13,1054.50 1200.51,1051.85 1202.48,1049.18 1204.48,1046.73">
+ <lane id="-108733424_0" index="0" speed="27.78" length="3.95" shape="1200.12,1049.62 1201.15,1048.20 1202.54,1046.50"/>
+ </edge>
+ <edge id="-108733425" from="1246731466" to="1246731504" priority="15" type="highway.secondary_link|railway.tram" shape="1143.83,1025.01 1144.19,1027.73 1144.25,1032.21 1143.67,1035.61 1143.01,1038.97 1142.53,1042.42">
+ <lane id="-108733425_0" index="0" speed="27.78" length="5.40" shape="1145.75,1026.98 1145.82,1027.52 1145.90,1032.38"/>
+ </edge>
+ <edge id="-108733428" from="1246731576" to="1246731455" priority="15" type="highway.secondary_link|railway.tram" shape="1138.83,1083.97 1142.61,1082.99 1146.02,1082.71 1149.60,1082.87 1154.20,1084.13">
+ <lane id="-108733428_0" index="0" speed="27.78" length="13.50" shape="1133.91,1083.55 1142.19,1081.39 1145.89,1081.06 1147.13,1081.12"/>
+ </edge>
+ <edge id="-108733429" from="1246731460" to="1246731647" priority="15" type="highway.secondary_link|railway.tram" shape="1166.50,1087.91 1169.23,1089.27 1172.44,1091.05 1177.24,1094.45 1180.40,1096.87 1182.25,1098.33">
+ <lane id="-108733429_0" index="0" speed="27.78" length="7.32" shape="1175.55,1091.24 1178.20,1093.10 1181.44,1095.59"/>
+ </edge>
+ <edge id="-108733430" from="1246731457" to="1246731482" priority="15" type="highway.secondary_link|railway.tram" shape="1191.33,1089.79 1191.38,1086.69 1191.57,1082.69 1192.05,1079.51 1193.00,1076.70">
+ <lane id="-108733430_0" index="0" speed="27.78" length="10.58" shape="1189.72,1087.28 1189.73,1086.67 1189.92,1082.61 1190.44,1079.12 1191.20,1076.87"/>
+ </edge>
+ <edge id="-108733431" from="1246731627" to="1246731601" priority="15" type="highway.secondary_link|railway.tram" shape="1138.62,1055.33 1136.19,1058.12 1134.30,1061.69 1132.77,1065.18 1130.65,1068.67">
+ <lane id="-108733431_0" index="0" speed="27.78" length="5.43" shape="1139.38,1056.97 1137.56,1059.06 1136.32,1061.41"/>
+ </edge>
+ <edge id="-109912567#0" from="1257054208" to="1257054077" priority="1" type="highway.cycleway">
+ <lane id="-109912567#0_0" index="0" allow="bicycle" speed="5.56" length="10.83" shape="1070.20,2085.09 1079.89,2080.26"/>
+ </edge>
+ <edge id="-109912567#1" from="1257054132" to="1257054208" priority="1" type="highway.cycleway" shape="759.16,2245.83 770.22,2237.43 914.76,2164.08 935.95,2150.15 1013.62,2110.04 1024.08,2107.93 1047.70,2098.62 1066.75,2088.65">
+ <lane id="-109912567#1_0" index="0" allow="bicycle" speed="5.56" length="336.58" shape="762.23,2241.43 769.35,2236.03 914.01,2162.61 935.04,2148.77 1013.07,2108.47 1023.61,2106.34 1047.10,2097.08 1061.64,2089.46"/>
+ </edge>
+ <edge id="-109912568" from="1257054162" to="1257054196" priority="1" type="highway.cycleway" shape="716.52,2257.84 706.60,2263.39 703.02,2269.30 701.22,2271.85 697.43,2272.03 682.54,2268.72 670.54,2266.62 661.61,2268.84 649.13,2279.25 642.72,2288.19 640.46,2297.74 639.17,2309.68 635.92,2315.00 628.32,2320.99 620.79,2325.34 616.12,2326.99 609.59,2329.64 596.91,2334.80 597.13,2341.44 600.71,2350.85">
+ <lane id="-109912568_0" index="0" allow="bicycle" speed="5.56" length="175.35" shape="717.32,2259.28 707.79,2264.62 704.43,2270.15 702.11,2273.46 697.29,2273.69 682.18,2270.34 670.60,2268.31 662.37,2270.35 650.34,2280.38 644.25,2288.88 642.07,2298.12 640.77,2310.23 637.17,2316.12 629.34,2322.28 621.48,2326.85 616.66,2328.55 610.21,2331.17 598.60,2335.89 598.77,2341.11 602.25,2350.26"/>
+ </edge>
+ <edge id="-109912572#0" from="1257054155" to="1257054178" priority="1" type="highway.cycleway">
+ <lane id="-109912572#0_0" index="0" allow="bicycle" speed="5.56" length="9.46" shape="1329.57,1930.46 1337.96,1926.12"/>
+ </edge>
+ <edge id="-109912572#1" from="1257054108" to="1257054155" priority="1" type="highway.cycleway" shape="1307.17,1938.59 1316.46,1933.32 1327.55,1933.37">
+ <lane id="-109912572#1_0" index="0" allow="bicycle" speed="5.56" length="12.81" shape="1310.59,1934.75 1316.03,1931.66 1322.59,1931.69"/>
+ </edge>
+ <edge id="-109912572#2" from="1257054092" to="1257054108" priority="1" type="highway.cycleway">
+ <lane id="-109912572#2_0" index="0" allow="bicycle" speed="5.56" length="2.98" shape="1299.42,1940.53 1302.10,1939.23"/>
+ </edge>
+ <edge id="-109912572#3" from="1257054165" to="1257054092" priority="1" type="highway.cycleway">
+ <lane id="-109912572#3_0" index="0" allow="bicycle" speed="5.56" length="9.82" shape="1282.14,1949.63 1290.79,1944.97"/>
+ </edge>
+ <edge id="-109912572#4" from="1257054077" to="1257054165" priority="1" type="highway.cycleway" shape="1080.63,2081.74 1271.51,1979.78 1281.48,1974.95 1282.90,1969.75 1275.30,1955.19 1280.20,1952.56">
+ <lane id="-109912572#4_0" index="0" allow="bicycle" speed="5.56" length="252.46" shape="1079.85,2080.28 1270.74,1978.33 1280.09,1973.79 1281.14,1969.94 1273.08,1954.50 1276.82,1952.50"/>
+ </edge>
+ <edge id="-110514869#0" from="252417189" to="1261880295" priority="7" type="highway.secondary">
+ <lane id="-110514869#0_0" index="0" speed="27.78" length="66.86" shape="1356.44,1639.91 1295.39,1671.80"/>
+ <lane id="-110514869#0_1" index="1" speed="27.78" length="66.86" shape="1354.91,1636.98 1297.44,1667.00"/>
+ </edge>
+ <edge id="-110514869#1" from="443089063" to="252417189" priority="7" type="highway.secondary">
+ <lane id="-110514869#1_0" index="0" speed="27.78" length="73.34" shape="1426.99,1603.07 1361.98,1637.01"/>
+ <lane id="-110514869#1_1" index="1" speed="27.78" length="73.34" shape="1425.46,1600.15 1360.45,1634.09"/>
+ </edge>
+ <edge id="-110514869#2" from="1669480282" to="443089063" priority="7" type="highway.secondary">
+ <lane id="-110514869#2_0" index="0" speed="27.78" length="7.73" shape="1439.55,1596.52 1432.70,1600.09"/>
+ <lane id="-110514869#2_1" index="1" speed="27.78" length="7.73" shape="1438.03,1593.59 1431.17,1597.17"/>
+ </edge>
+ <edge id="-122394833#0" from="1367855932" to="1367855969" priority="1" type="highway.footway" shape="1427.25,2261.94 1438.63,2283.86 1447.82,2301.53 1457.82,2320.79 1478.52,2360.64 1494.93,2392.23 1504.68,2410.99 1514.56,2430.00 1528.72,2457.27 1543.14,2485.02 1552.71,2503.46 1562.00,2521.34 1570.43,2537.57 1612.08,2617.74">
+ <lane id="-122394833#0_0" index="0" allow="pedestrian" speed="8.33" length="397.85" shape="1430.14,2263.93 1440.09,2283.10 1449.28,2300.77 1459.28,2320.03 1479.99,2359.88 1496.40,2391.47 1506.14,2410.23 1516.02,2429.24 1530.19,2456.51 1544.60,2484.26 1554.17,2502.70 1563.47,2520.58 1571.89,2536.81 1613.54,2616.98"/>
+ </edge>
+ <edge id="-122394833#1" from="1367855931" to="1367855932" priority="1" type="highway.footway">
+ <lane id="-122394833#1_0" index="0" allow="pedestrian" speed="8.33" length="19.11" shape="1418.47,2241.46 1427.28,2258.42"/>
+ </edge>
+ <edge id="-122394833#2" from="1367855930" to="1367855931" priority="1" type="highway.footway">
+ <lane id="-122394833#2_0" index="0" allow="pedestrian" speed="8.33" length="16.46" shape="1408.59,2222.44 1416.18,2237.05"/>
+ </edge>
+ <edge id="-122394833#3" from="1367855929" to="1367855930" priority="1" type="highway.footway">
+ <lane id="-122394833#3_0" index="0" allow="pedestrian" speed="8.33" length="15.66" shape="1399.05,2204.09 1406.27,2217.98"/>
+ </edge>
+ <edge id="-122394833#4" from="1367855927" to="1367855929" priority="1" type="highway.footway">
+ <lane id="-122394833#4_0" index="0" allow="pedestrian" speed="8.33" length="18.52" shape="1387.81,2182.45 1396.34,2198.89"/>
+ </edge>
+ <edge id="-122394833#5" from="1367855925" to="1367855927" priority="1" type="highway.footway">
+ <lane id="-122394833#5_0" index="0" allow="pedestrian" speed="8.33" length="0.76" shape="1383.42,2174.01 1383.77,2174.68"/>
+ </edge>
+ <edge id="-122394834" from="1367855909" to="1367855907" priority="1" type="highway.steps">
+ <lane id="-122394834_0" index="0" allow="pedestrian" speed="1.39" length="11.20" shape="1404.80,2216.54 1399.64,2206.61"/>
+ </edge>
+ <edge id="-122394841#0" from="1369844772" to="1367855909" priority="1" type="highway.footway">
+ <lane id="-122394841#0_0" index="0" allow="pedestrian" speed="8.33" length="8.08" shape="1420.60,2215.54 1413.43,2219.27"/>
+ </edge>
+ <edge id="-122394841#1" from="1369844762" to="1369844772" priority="1" type="highway.footway">
+ <lane id="-122394841#1_0" index="0" allow="pedestrian" speed="8.33" length="5.93" shape="1434.44,2208.31 1429.18,2211.06"/>
+ </edge>
+ <edge id="-122394841#2" from="1369844757" to="1369844762" priority="1" type="highway.footway">
+ <lane id="-122394841#2_0" index="0" allow="pedestrian" speed="8.33" length="4.65" shape="1447.06,2201.86 1442.91,2203.96"/>
+ </edge>
+ <edge id="-122394841#3" from="2079750190" to="1369844757" priority="1" type="highway.footway" shape="1477.48,2184.33 1451.23,2197.91 1450.57,2198.24">
+ <lane id="-122394841#3_0" index="0" allow="pedestrian" speed="8.33" length="20.83" shape="1474.04,2187.97 1455.53,2197.54"/>
+ </edge>
+ <edge id="-122394845" from="1367855909" to="1367855930" priority="1" type="highway.footway">
+ <lane id="-122394845_0" index="0" allow="pedestrian" speed="8.33" length="0.86" shape="1408.77,2221.75 1408.04,2222.20"/>
+ </edge>
+ <edge id="-122394853" from="1367855907" to="1367855929" priority="1" type="highway.footway">
+ <lane id="-122394853_0" index="0" allow="pedestrian" speed="8.33" length="0.98" shape="1398.97,2205.93 1398.11,2205.47"/>
+ </edge>
+ <edge id="-122394859" from="1367855910" to="1367855931" priority="1" type="highway.footway">
+ <lane id="-122394859_0" index="0" allow="pedestrian" speed="8.33" length="0.33" shape="1417.97,2236.79 1417.92,2237.12"/>
+ </edge>
+ <edge id="-122394860" from="1367855909" to="1367855910" priority="1" type="highway.steps">
+ <lane id="-122394860_0" index="0" allow="pedestrian" speed="1.39" length="11.65" shape="1412.10,2223.46 1417.47,2233.80"/>
+ </edge>
+ <edge id="-122394864#0" from="1367855926" to="1367855927" priority="1" type="highway.footway">
+ <lane id="-122394864#0_0" index="0" allow="pedestrian" speed="8.33" length="0.58" shape="1389.33,2178.05 1388.83,2178.34"/>
+ </edge>
+ <edge id="-122394864#1" from="314636763" to="1367855926" priority="1" type="highway.footway">
+ <lane id="-122394864#1_0" index="0" allow="pedestrian" speed="8.33" length="2.01" shape="1394.36,2175.30 1392.56,2176.21"/>
+ </edge>
+ <edge id="-122394864#2" from="1367855923" to="314636763" priority="1" type="highway.footway">
+ <lane id="-122394864#2_0" index="0" allow="pedestrian" speed="8.33" length="5.34" shape="1405.73,2169.41 1401.00,2171.88"/>
+ </edge>
+ <edge id="-122641556#0" from="1369844762" to="1369844758" priority="1" type="highway.steps">
+ <lane id="-122641556#0_0" index="0" allow="pedestrian" speed="1.39" length="4.15" shape="1441.55,2208.13 1443.45,2211.82"/>
+ </edge>
+ <edge id="-122641556#1" from="1369844770" to="1369844762" priority="1" type="highway.steps">
+ <lane id="-122641556#1_0" index="0" allow="pedestrian" speed="1.39" length="4.82" shape="1434.97,2195.40 1437.19,2199.67"/>
+ </edge>
+ <edge id="-122641557" from="1369844786" to="1369844780" priority="1" type="highway.steps" shape="1481.20,2289.82 1478.92,2285.27 1476.61,2280.66">
+ <lane id="-122641557_0" index="0" allow="pedestrian" speed="1.39" length="10.24" shape="1479.73,2290.56 1477.45,2286.01 1475.14,2281.40"/>
+ </edge>
+ <edge id="-122641559#0" from="1369844757" to="1369844756" priority="1" type="highway.steps">
+ <lane id="-122641559#0_0" index="0" allow="pedestrian" speed="1.39" length="4.35" shape="1454.18,2201.77 1456.12,2205.66"/>
+ </edge>
+ <edge id="-122641559#1" from="1369844760" to="1369844757" priority="1" type="highway.steps">
+ <lane id="-122641559#1_0" index="0" allow="pedestrian" speed="1.39" length="5.07" shape="1447.56,2188.73 1449.87,2193.25"/>
+ </edge>
+ <edge id="-122641560#0" from="1369844772" to="1369844763" priority="1" type="highway.steps">
+ <lane id="-122641560#0_0" index="0" allow="pedestrian" speed="1.39" length="3.85" shape="1427.72,2215.39 1429.46,2218.83"/>
+ </edge>
+ <edge id="-122641560#1" from="1369844774" to="1369844772" priority="1" type="highway.steps">
+ <lane id="-122641560#1_0" index="0" allow="pedestrian" speed="1.39" length="4.28" shape="1421.67,2202.87 1423.50,2206.74"/>
+ </edge>
+ <edge id="-129780022#0" from="1257054205" to="248913124" priority="9" type="highway.primary">
+ <lane id="-129780022#0_0" index="0" speed="27.78" length="60.58" shape="1359.81,1956.23 1413.40,1928.00"/>
+ </edge>
+ <edge id="-129780022#1" from="13929747" to="1257054205" priority="9" type="highway.primary">
+ <lane id="-129780022#1_0" index="0" speed="27.78" length="4.67" shape="1347.18,1962.90 1351.32,1960.71"/>
+ </edge>
+ <edge id="-129780022#2" from="435668534" to="13929747" priority="9" type="highway.primary" shape="1297.62,1991.64 1321.80,1978.44 1345.18,1965.82">
+ <lane id="-129780022#2_0" index="0" speed="27.78" length="47.76" shape="1299.70,1988.62 1321.01,1976.99 1341.67,1965.84"/>
+ </edge>
+ <edge id="-129780022#3" from="1263725266" to="435668534" priority="9" type="highway.primary">
+ <lane id="-129780022#3_0" index="0" speed="27.78" length="239.45" shape="1082.78,2104.22 1294.12,1991.64"/>
+ </edge>
+ <edge id="-129780022#4" from="427996791" to="1263725266" priority="9" type="highway.primary">
+ <lane id="-129780022#4_0" index="0" speed="27.78" length="4.74" shape="1075.67,2107.95 1079.88,2105.76"/>
+ </edge>
+ <edge id="-129780022#5" from="435668539" to="427996791" priority="9" type="highway.primary">
+ <lane id="-129780022#5_0" index="0" speed="27.78" length="345.41" shape="765.63,2271.06 1071.32,2110.23"/>
+ </edge>
+ <edge id="-130443629#0" from="243489891" to="250685721" priority="6" type="highway.tertiary" shape="746.13,2290.28 758.26,2368.80 773.69,2484.93">
+ <lane id="-130443629#0_0" index="0" speed="22.22" length="179.08" shape="749.18,2299.26 759.89,2368.54 774.24,2476.57"/>
+ </edge>
+ <edge id="-130443629#1" from="948350640" to="243489891" priority="6" type="highway.tertiary">
+ <lane id="-130443629#1_0" index="0" speed="22.22" length="9.84" shape="746.61,2278.38 747.58,2288.17"/>
+ </edge>
+ <edge id="-130443629#2" from="435668511" to="948350640" priority="6" type="highway.tertiary">
+ <lane id="-130443629#2_0" index="0" speed="22.22" length="1.49" shape="746.01,2274.10 746.22,2275.58"/>
+ </edge>
+ <edge id="-130443629#3" from="948350615" to="435668511" priority="6" type="highway.tertiary">
+ <lane id="-130443629#3_0" index="0" speed="22.22" length="3.48" shape="745.38,2267.19 745.69,2270.65"/>
+ </edge>
+ <edge id="-130443629#4" from="428303370" to="948350615" priority="6" type="highway.tertiary">
+ <lane id="-130443629#4_0" index="0" speed="22.22" length="14.83" shape="743.53,2246.98 744.88,2261.75"/>
+ </edge>
+ <edge id="-130443629#5" from="445506221" to="428303370" priority="6" type="highway.tertiary">
+ <lane id="-130443629#5_0" index="0" speed="22.22" length="166.99" shape="717.83,2062.55 741.38,2227.87"/>
+ </edge>
+ <edge id="-130443629#6" from="1231011197" to="445506221" priority="6" type="highway.tertiary">
+ <lane id="-130443629#6_0" index="0" speed="22.22" length="10.65" shape="715.52,2045.68 716.96,2056.23"/>
+ </edge>
+ <edge id="-130443629#7" from="1457695393" to="1231011197" priority="6" type="highway.tertiary">
+ <lane id="-130443629#7_0" index="0" speed="22.22" length="163.62" shape="692.76,1877.39 714.69,2039.54"/>
+ </edge>
+ <edge id="-130443629#8" from="30406565" to="1457695393" priority="6" type="highway.tertiary">
+ <lane id="-130443629#8_0" index="0" speed="22.22" length="9.14" shape="690.31,1857.98 691.42,1867.06"/>
+ </edge>
+ <edge id="-130443630#0" from="445506220" to="552842256" priority="6" type="highway.tertiary">
+ <lane id="-130443630#0_0" index="0" speed="22.22" length="162.41" shape="743.18,1491.39 719.39,1652.05"/>
+ </edge>
+ <edge id="-130443630#1" from="966097869" to="445506220" priority="6" type="highway.tertiary">
+ <lane id="-130443630#1_0" index="0" speed="22.22" length="18.91" shape="747.60,1461.32 744.85,1480.03"/>
+ </edge>
+ <edge id="-130443630#10" from="1780219355" to="1780219345" priority="6" type="highway.tertiary">
+ <lane id="-130443630#10_0" index="0" speed="22.22" length="18.14" shape="792.02,1154.25 789.32,1172.19"/>
+ </edge>
+ <edge id="-130443630#11" from="444026889" to="1780219355" priority="6" type="highway.tertiary">
+ <lane id="-130443630#11_0" index="0" speed="22.22" length="58.19" shape="802.19,1086.63 793.53,1144.17"/>
+ </edge>
+ <edge id="-130443630#2" from="1634988377" to="966097869" priority="6" type="highway.tertiary">
+ <lane id="-130443630#2_0" index="0" speed="22.22" length="0.70" shape="749.08,1451.23 748.98,1451.92"/>
+ </edge>
+ <edge id="-130443630#3" from="1726380194" to="1634988377" priority="6" type="highway.tertiary">
+ <lane id="-130443630#3_0" index="0" speed="22.22" length="10.67" shape="752.02,1431.24 750.46,1441.79"/>
+ </edge>
+ <edge id="-130443630#4" from="446017744" to="1726380194" priority="6" type="highway.tertiary">
+ <lane id="-130443630#4_0" index="0" speed="22.22" length="117.08" shape="769.93,1309.23 752.93,1425.07"/>
+ </edge>
+ <edge id="-130443630#5" from="950640413" to="446017744" priority="6" type="highway.tertiary">
+ <lane id="-130443630#5_0" index="0" speed="22.22" length="2.70" shape="771.64,1297.19 771.28,1299.87"/>
+ </edge>
+ <edge id="-130443630#6" from="30406599" to="950640413" priority="6" type="highway.tertiary">
+ <lane id="-130443630#6_0" index="0" speed="22.22" length="10.75" shape="773.36,1283.04 772.12,1293.71"/>
+ </edge>
+ <edge id="-130443630#7" from="950640411" to="30406599" priority="6" type="highway.tertiary">
+ <lane id="-130443630#7_0" index="0" speed="22.22" length="6.31" shape="774.73,1271.11 774.01,1277.38"/>
+ </edge>
+ <edge id="-130443630#8" from="446017741" to="950640411" priority="6" type="highway.tertiary">
+ <lane id="-130443630#8_0" index="0" speed="22.22" length="2.91" shape="775.39,1265.38 775.05,1268.27"/>
+ </edge>
+ <edge id="-130443630#9" from="1780219345" to="446017741" priority="6" type="highway.tertiary">
+ <lane id="-130443630#9_0" index="0" speed="22.22" length="74.25" shape="787.67,1183.10 776.62,1256.52"/>
+ </edge>
+ <edge id="-132323955" from="2006433692" to="320879142" priority="5" type="highway.unclassified">
+ <lane id="-132323955_0" index="0" speed="22.22" length="38.31" shape="1336.70,2034.88 1318.96,2000.93"/>
+ </edge>
+ <edge id="-133868229#0" from="948350588" to="948350707" priority="15" type="highway.primary|railway.tram">
+ <lane id="-133868229#0_0" index="0" speed="27.78" length="7.23" shape="763.93,2272.28 756.73,2276.48"/>
+ <lane id="-133868229#0_1" index="1" speed="27.78" length="7.23" shape="762.26,2269.43 756.96,2272.53"/>
+ </edge>
+ <edge id="-133868229#1" from="948350630" to="948350588" priority="15" type="highway.primary|railway.tram">
+ <lane id="-133868229#1_0" index="0" speed="27.78" length="4.89" shape="773.79,2266.47 769.58,2268.95"/>
+ <lane id="-133868229#1_1" index="1" speed="27.78" length="4.89" shape="772.12,2263.63 767.91,2266.11"/>
+ </edge>
+ <edge id="-134872478" from="1482088987" to="1482088973" priority="1" type="highway.pedestrian">
+ <lane id="-134872478_0" index="0" allow="pedestrian" speed="8.33" length="80.18" shape="759.31,1840.58 722.71,1769.24"/>
+ </edge>
+ <edge id="-139118805#0" from="974693391" to="950094494" priority="15" type="highway.primary|railway.tram">
+ <lane id="-139118805#0_0" index="0" speed="27.78" length="46.24" shape="1341.50,1966.24 1300.70,1988.01"/>
+ <lane id="-139118805#0_1" index="1" speed="27.78" length="46.24" shape="1339.94,1963.33 1299.15,1985.10"/>
+ </edge>
+ <edge id="-139118805#1" from="1257054172" to="974693391" priority="15" type="highway.primary|railway.tram">
+ <lane id="-139118805#1_0" index="0" speed="27.78" length="5.34" shape="1351.67,1960.84 1346.95,1963.34"/>
+ <lane id="-139118805#1_1" index="1" speed="27.78" length="5.34" shape="1350.12,1957.92 1345.40,1960.42"/>
+ </edge>
+ <edge id="-139118805#2" from="950094458" to="1257054172" priority="15" type="highway.primary|railway.tram">
+ <lane id="-139118805#2_0" index="0" speed="27.78" length="60.52" shape="1413.55,1928.12 1360.04,1956.40"/>
+ <lane id="-139118805#2_1" index="1" speed="27.78" length="60.52" shape="1412.01,1925.21 1358.50,1953.48"/>
+ </edge>
+ <edge id="-141191247#0" from="1545672806" to="1545672819" priority="1" type="highway.footway">
+ <lane id="-141191247#0_0" index="0" allow="pedestrian" speed="8.33" length="2.20" shape="1174.75,2088.45 1176.35,2089.95"/>
+ </edge>
+ <edge id="-141191247#1" from="1545673105" to="1545672806" priority="1" type="highway.footway" shape="1110.81,2160.62 1092.59,2124.91 1168.13,2085.06 1172.90,2088.98">
+ <lane id="-141191247#1_0" index="0" allow="pedestrian" speed="8.33" length="129.03" shape="1107.13,2157.04 1090.38,2124.21 1168.34,2083.09 1171.45,2085.65"/>
+ </edge>
+ <edge id="-141191247#2" from="1545673345" to="1545673105" priority="1" type="highway.footway">
+ <lane id="-141191247#2_0" index="0" allow="pedestrian" speed="8.33" length="58.61" shape="1138.20,2217.92 1111.56,2165.71"/>
+ </edge>
+ <edge id="-141191247#3" from="1545673319" to="1545673345" priority="1" type="highway.footway" shape="1259.48,2214.22 1259.47,2219.72 1165.58,2267.95 1141.83,2221.41">
+ <lane id="-141191247#3_0" index="0" allow="pedestrian" speed="8.33" length="160.72" shape="1261.13,2217.35 1261.12,2220.73 1164.86,2270.17 1142.53,2226.41"/>
+ </edge>
+ <edge id="-141191247#4" from="1545673304" to="1545673319" priority="1" type="highway.footway">
+ <lane id="-141191247#4_0" index="0" allow="pedestrian" speed="8.33" length="2.18" shape="1261.10,2211.09 1261.12,2213.27"/>
+ </edge>
+ <edge id="-141191248#0" from="1545672843" to="1545672864" priority="1" type="highway.footway" shape="1191.03,2098.99 1191.53,2099.68 1197.19,2109.26">
+ <lane id="-141191248#0_0" index="0" allow="pedestrian" speed="8.33" length="4.34" shape="1193.90,2100.47 1196.11,2104.20"/>
+ </edge>
+ <edge id="-141191248#1" from="1545672797" to="1545672843" priority="1" type="highway.footway" shape="1188.51,2080.15 1187.61,2083.58 1187.04,2088.22 1188.45,2093.93 1189.88,2097.39 1191.03,2098.99">
+ <lane id="-141191248#1_0" index="0" allow="pedestrian" speed="8.33" length="9.80" shape="1189.83,2092.66 1190.05,2093.54 1191.33,2096.58 1188.09,2092.03"/>
+ </edge>
+ <edge id="-141191248#2" from="1545672785" to="1545672797" priority="1" type="highway.footway" shape="1247.38,2046.15 1192.21,2075.01 1188.51,2080.15">
+ <lane id="-141191248#2_0" index="0" allow="pedestrian" speed="8.33" length="65.71" shape="1248.15,2047.62 1193.32,2076.29 1191.08,2079.41"/>
+ </edge>
+ <edge id="-141191249#0" from="1545673345" to="1545673349" priority="1" type="highway.footway">
+ <lane id="-141191249#0_0" index="0" allow="pedestrian" speed="8.33" length="0.93" shape="1139.19,2224.64 1138.36,2225.07"/>
+ </edge>
+ <edge id="-141191249#1" from="1545673333" to="1545673345" priority="1" type="highway.footway">
+ <lane id="-141191249#1_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1149.39,2219.37 1146.82,2220.69"/>
+ </edge>
+ <edge id="-141191249#2" from="1545673280" to="1545673333" priority="1" type="highway.footway" shape="1190.28,2200.75 1162.72,2215.20 1160.41,2216.54 1157.37,2217.24 1154.67,2216.86 1151.68,2216.33">
+ <lane id="-141191249#2_0" index="0" allow="pedestrian" speed="8.33" length="33.73" shape="1186.04,2204.84 1163.49,2216.66 1161.03,2218.09 1157.44,2218.92 1155.72,2218.67"/>
+ </edge>
+ <edge id="-141191249#3" from="1545673191" to="1545673280" priority="1" type="highway.footway">
+ <lane id="-141191249#3_0" index="0" allow="pedestrian" speed="8.33" length="25.71" shape="1217.42,2188.39 1194.65,2200.32"/>
+ </edge>
+ <edge id="-141191249#4" from="1545673135" to="1545673191" priority="1" type="highway.footway">
+ <lane id="-141191249#4_0" index="0" allow="pedestrian" speed="8.33" length="30.31" shape="1252.64,2169.85 1225.83,2183.97"/>
+ </edge>
+ <edge id="-141191249#5" from="1545673031" to="1545673135" priority="1" type="highway.footway">
+ <lane id="-141191249#5_0" index="0" allow="pedestrian" speed="8.33" length="41.17" shape="1297.47,2146.24 1261.04,2165.42"/>
+ </edge>
+ <edge id="-141191250#0" from="1545673105" to="1545673118" priority="1" type="highway.footway">
+ <lane id="-141191250#0_0" index="0" allow="pedestrian" speed="8.33" length="1.58" shape="1108.74,2163.67 1107.36,2164.44"/>
+ </edge>
+ <edge id="-141191250#1" from="1545673065" to="1545673105" priority="1" type="highway.footway" shape="1122.59,2153.96 1121.27,2154.80 1110.81,2160.62">
+ <lane id="-141191250#1_0" index="0" allow="pedestrian" speed="8.33" length="4.77" shape="1120.03,2157.38 1115.87,2159.70"/>
+ </edge>
+ <edge id="-141191250#2" from="1545672874" to="1545673065" priority="1" type="highway.footway" shape="1186.40,2115.00 1127.20,2146.49 1125.37,2147.86 1124.05,2149.21 1123.07,2151.90 1122.59,2153.96">
+ <lane id="-141191250#2_0" index="0" allow="pedestrian" speed="8.33" length="66.26" shape="1182.65,2118.87 1127.97,2147.95 1126.36,2149.18 1125.48,2150.11 1125.13,2151.07"/>
+ </edge>
+ <edge id="-141191250#3" from="1545672864" to="1545672874" priority="1" type="highway.footway">
+ <lane id="-141191250#3_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1193.64,2113.01 1191.09,2114.38"/>
+ </edge>
+ <edge id="-141191250#4" from="1545672804" to="1545672864" priority="1" type="highway.footway">
+ <lane id="-141191250#4_0" index="0" allow="pedestrian" speed="8.33" length="44.67" shape="1241.47,2087.57 1202.03,2108.55"/>
+ </edge>
+ <edge id="-141191250#5" from="1545672788" to="1545672804" priority="1" type="highway.footway">
+ <lane id="-141191250#5_0" index="0" allow="pedestrian" speed="8.33" length="21.07" shape="1268.46,2073.21 1249.86,2083.10"/>
+ </edge>
+ <edge id="-141191251#0" from="1545673218" to="1545673280" priority="1" type="highway.footway" shape="1176.54,2190.64 1179.76,2191.53 1182.92,2193.29 1185.36,2195.49 1187.95,2198.06 1190.28,2200.75">
+ <lane id="-141191251#0_0" index="0" allow="pedestrian" speed="8.33" length="9.35" shape="1180.32,2189.97 1183.89,2191.94 1186.46,2194.27 1187.75,2195.54"/>
+ </edge>
+ <edge id="-141191251#1" from="1545673223" to="1545673218" priority="1" type="highway.footway" shape="1164.77,2191.70 1166.94,2190.65 1169.70,2190.24 1172.68,2190.04 1176.54,2190.64">
+ <lane id="-141191251#1_0" index="0" allow="pedestrian" speed="8.33" length="3.51" shape="1167.33,2188.92 1169.46,2188.61 1170.82,2188.52"/>
+ </edge>
+ <edge id="-141191251#2" from="1545673333" to="1545673223" priority="1" type="highway.footway" shape="1151.68,2216.33 1151.74,2213.60 1152.64,2210.11 1154.02,2206.17 1155.94,2203.01 1160.13,2196.79 1162.33,2193.63 1164.77,2191.70">
+ <lane id="-141191251#2_0" index="0" allow="pedestrian" speed="8.33" length="20.28" shape="1150.44,2212.04 1151.04,2209.70 1152.52,2205.46 1154.53,2202.16 1158.76,2195.87 1159.86,2194.29"/>
+ </edge>
+ <edge id="-141191252" from="1545672824" to="1545672804" priority="1" type="highway.footway">
+ <lane id="-141191252_0" index="0" allow="pedestrian" speed="8.33" length="3.17" shape="1246.99,2091.81 1245.63,2088.95"/>
+ </edge>
+ <edge id="-141191253#0" from="1545673240" to="1545673150" priority="1" type="highway.footway" shape="1256.69,2192.89 1260.35,2189.95 1264.52,2186.60 1269.08,2182.53 1275.18,2178.02 1280.78,2174.63 1287.21,2171.56 1292.34,2170.03 1297.68,2169.54 1303.54,2169.23 1309.98,2169.16">
+ <lane id="-141191253#0_0" index="0" allow="pedestrian" speed="8.33" length="54.28" shape="1257.62,2190.02 1259.32,2188.66 1263.48,2185.32 1267.98,2181.30 1274.20,2176.69 1279.93,2173.22 1286.50,2170.07 1292.02,2168.40 1297.53,2167.90 1303.46,2167.59 1305.23,2167.57"/>
+ </edge>
+ <edge id="-141191253#1" from="1545673191" to="1545673240" priority="1" type="highway.footway" shape="1221.00,2184.66 1224.47,2192.09 1226.11,2194.93 1227.83,2196.44 1230.11,2197.43 1232.90,2198.10 1236.40,2198.15 1240.82,2197.86 1245.44,2197.18 1249.55,2196.50 1252.92,2195.00 1256.69,2192.89">
+ <lane id="-141191253#1_0" index="0" allow="pedestrian" speed="8.33" length="27.39" shape="1224.56,2188.40 1225.96,2191.39 1227.40,2193.87 1228.72,2195.03 1230.77,2195.91 1233.11,2196.46 1236.42,2196.50 1240.71,2196.22 1245.20,2195.54 1247.85,2195.10"/>
+ </edge>
+ <edge id="-141191254#0" from="1545673067" to="1545673135" priority="1" type="highway.footway" shape="1245.45,2152.18 1248.13,2153.76 1249.98,2155.33 1252.27,2158.13 1254.25,2162.73 1256.14,2166.14">
+ <lane id="-141191254#0_0" index="0" allow="pedestrian" speed="8.33" length="13.19" shape="1247.09,2151.24 1248.97,2152.34 1251.16,2154.17 1253.70,2157.26 1255.34,2161.08"/>
+ </edge>
+ <edge id="-141191254#1" from="1545673123" to="1545673067" priority="1" type="highway.footway" shape="1182.08,2163.41 1183.08,2162.82 1187.19,2161.01 1197.18,2157.95 1205.65,2155.34 1213.04,2153.19 1221.17,2151.96 1228.66,2151.40 1233.90,2151.24 1240.89,2151.35 1245.45,2152.18">
+ <lane id="-141191254#1_0" index="0" allow="pedestrian" speed="8.33" length="62.95" shape="1183.67,2160.76 1186.53,2159.50 1196.70,2156.37 1205.17,2153.76 1212.58,2151.60 1220.93,2150.33 1228.54,2149.76 1233.85,2149.59 1240.91,2149.70 1245.00,2150.43"/>
+ </edge>
+ <edge id="-141191254#2" from="1545673218" to="1545673123" priority="1" type="highway.footway" shape="1176.54,2190.64 1175.84,2187.38 1175.71,2184.19 1175.65,2180.35 1176.22,2175.55 1177.80,2169.58 1179.20,2166.00 1181.06,2164.02 1182.08,2163.41">
+ <lane id="-141191254#2_0" index="0" allow="pedestrian" speed="8.33" length="16.80" shape="1174.09,2184.95 1174.06,2184.26 1174.00,2180.38 1174.58,2175.36 1176.21,2169.16 1176.48,2168.45"/>
+ </edge>
+ <edge id="-141191255#0" from="1545672999" to="1545672923" priority="1" type="highway.footway" shape="1276.17,2138.79 1275.37,2139.92 1272.78,2141.82 1269.74,2142.80 1266.15,2142.75 1262.94,2141.55 1260.00,2138.97 1258.32,2135.75 1257.87,2132.60 1258.56,2129.03 1260.99,2125.47 1260.36,2124.39 1259.59,2121.77 1259.82,2118.57 1261.13,2115.88 1263.27,2113.84 1266.90,2112.53 1270.31,2112.84 1273.41,2114.58 1275.34,2117.09 1276.18,2120.33 1275.85,2123.17 1274.93,2125.18">
+ <lane id="-141191255#0_0" index="0" allow="pedestrian" speed="8.33" length="72.12" shape="1273.97,2142.99 1273.54,2143.31 1269.99,2144.46 1265.84,2144.40 1262.09,2142.99 1258.68,2140.01 1256.73,2136.26 1256.19,2132.56 1257.01,2128.38 1259.04,2125.40 1258.84,2125.05 1257.92,2121.95 1258.20,2118.13 1259.77,2114.89 1262.38,2112.41 1266.68,2110.85 1270.81,2111.22 1274.52,2113.31 1276.85,2116.35 1277.86,2120.21 1277.45,2123.62 1277.27,2124.02"/>
+ </edge>
+ <edge id="-141191255#1" from="1545672923" to="1545672999" priority="1" type="highway.footway" shape="1274.93,2125.18 1277.03,2127.73 1278.13,2130.65 1278.32,2133.43 1277.36,2137.10 1276.17,2138.79">
+ <lane id="-141191255#1_0" index="0" allow="pedestrian" speed="8.33" length="10.56" shape="1277.50,2125.70 1278.48,2126.89 1279.76,2130.30 1279.99,2133.58 1279.46,2135.60"/>
+ </edge>
+ <edge id="-141191256#0" from="1545673092" to="1545673223" priority="1" type="highway.footway" shape="1152.72,2157.95 1152.52,2163.32 1152.01,2168.12 1152.15,2171.89 1152.64,2175.00 1153.93,2178.10 1155.80,2181.62 1158.42,2185.78 1161.61,2189.14 1164.77,2191.70">
+ <lane id="-141191256#0_0" index="0" allow="pedestrian" speed="8.33" length="25.93" shape="1154.17,2163.20 1154.17,2163.38 1153.65,2168.29 1153.80,2171.84 1154.24,2174.55 1155.45,2177.47 1157.26,2180.85 1159.73,2184.76 1161.72,2186.86"/>
+ </edge>
+ <edge id="-141191256#1" from="1545672919" to="1545673092" priority="1" type="highway.footway" shape="1189.89,2126.22 1188.43,2126.47 1183.65,2127.41 1179.08,2128.65 1173.81,2130.48 1169.03,2132.51 1166.88,2134.51 1163.36,2137.40 1159.58,2141.81 1156.68,2146.51 1154.64,2150.67 1153.16,2154.10 1152.72,2157.95">
+ <lane id="-141191256#1_0" index="0" allow="pedestrian" speed="8.33" length="41.19" shape="1185.27,2128.78 1183.97,2129.03 1179.51,2130.24 1174.35,2132.04 1169.94,2133.92 1168.01,2135.72 1164.52,2138.58 1160.83,2142.89 1158.08,2147.37 1156.12,2151.40 1155.16,2153.62"/>
+ </edge>
+ <edge id="-141191256#2" from="1545672910" to="1545672919" priority="1" type="highway.footway" shape="1227.08,2124.27 1222.77,2125.02 1218.41,2125.75 1213.69,2126.41 1208.17,2127.01 1203.07,2127.03 1196.89,2126.62 1189.89,2126.22">
+ <lane id="-141191256#2_0" index="0" allow="pedestrian" speed="8.33" length="27.57" shape="1222.52,2126.74 1218.68,2127.38 1213.92,2128.04 1208.35,2128.65 1203.08,2128.68 1196.78,2128.26 1195.09,2128.17"/>
+ </edge>
+ <edge id="-141191257" from="1545672999" to="1545673030" priority="1" type="highway.footway" shape="1276.17,2138.79 1278.81,2140.81 1281.00,2142.63">
+ <lane id="-141191257_0" index="0" allow="pedestrian" speed="8.33" length="3.34" shape="1278.07,2138.05 1280.64,2140.18"/>
+ </edge>
+ <edge id="-141191258#0" from="1545673031" to="1545672954" priority="1" type="highway.footway" shape="1300.95,2142.54 1299.06,2138.73 1296.25,2135.95 1292.28,2133.33 1287.14,2130.58 1286.23,2130.45">
+ <lane id="-141191258#0_0" index="0" allow="pedestrian" speed="8.33" length="8.71" shape="1297.22,2139.22 1295.21,2137.24 1291.37,2134.71 1290.24,2134.10"/>
+ </edge>
+ <edge id="-141191258#1" from="1545673150" to="1545673031" priority="1" type="highway.footway" shape="1309.98,2169.16 1310.15,2166.11 1310.52,2162.55 1309.82,2159.95 1300.95,2142.54">
+ <lane id="-141191258#1_0" index="0" allow="pedestrian" speed="8.33" length="18.66" shape="1308.65,2164.54 1308.85,2162.68 1308.28,2160.55 1301.65,2147.56"/>
+ </edge>
+ <edge id="-141191258#2" from="1545673304" to="1545673150" priority="1" type="highway.footway" shape="1259.42,2208.43 1270.90,2208.66 1274.95,2207.57 1276.09,2205.81 1277.05,2202.75 1277.74,2200.13 1280.60,2196.88 1283.76,2194.95 1288.68,2192.55 1294.03,2190.57 1303.49,2186.60 1306.95,2184.00 1308.88,2181.73 1309.63,2179.02 1310.06,2174.09 1309.98,2169.16">
+ <lane id="-141191258#2_0" index="0" allow="pedestrian" speed="8.33" length="60.85" shape="1264.30,2206.88 1270.69,2207.00 1273.91,2206.14 1274.58,2205.10 1275.48,2202.26 1276.24,2199.33 1279.53,2195.60 1282.91,2193.54 1287.95,2191.07 1293.46,2189.02 1302.66,2185.16 1305.81,2182.79 1307.38,2180.93 1308.00,2178.73 1308.41,2173.92"/>
+ </edge>
+ <edge id="-141191258#3" from="1545673240" to="1545673304" priority="1" type="highway.footway" shape="1256.69,2192.89 1255.42,2197.21 1254.66,2200.81 1255.02,2203.99 1256.10,2206.53 1257.67,2208.05 1259.42,2208.43">
+ <lane id="-141191258#3_0" index="0" allow="pedestrian" speed="8.33" length="2.87" shape="1256.45,2201.95 1256.64,2203.57 1257.12,2204.72"/>
+ </edge>
+ <edge id="-141191259#0" from="1545672824" to="1545672852" priority="1" type="highway.footway" shape="1250.63,2095.64 1256.60,2094.96 1262.17,2095.42 1267.71,2096.97 1273.29,2099.82 1277.60,2103.24">
+ <lane id="-141191259#0_0" index="0" allow="pedestrian" speed="8.33" length="26.29" shape="1254.24,2093.57 1256.57,2093.30 1262.46,2093.79 1268.31,2095.42 1274.18,2098.42 1278.39,2101.75"/>
+ </edge>
+ <edge id="-141191259#1" from="1545672910" to="1545672824" priority="1" type="highway.footway" shape="1227.08,2124.27 1227.81,2118.19 1229.22,2113.66 1231.91,2108.49 1235.83,2103.67 1242.13,2098.88 1250.63,2095.64">
+ <lane id="-141191259#1_0" index="0" allow="pedestrian" speed="8.33" length="32.79" shape="1225.91,2120.19 1226.19,2117.85 1227.69,2113.03 1230.52,2107.58 1234.67,2102.48 1241.32,2097.42 1245.35,2095.88"/>
+ </edge>
+ <edge id="-141191259#2" from="1545673067" to="1545672910" priority="1" type="highway.footway" shape="1245.45,2152.18 1240.58,2149.61 1236.03,2145.96 1232.44,2141.72 1229.55,2136.54 1228.04,2132.21 1227.08,2124.27">
+ <lane id="-141191259#2_0" index="0" allow="pedestrian" speed="8.33" length="31.79" shape="1244.42,2153.50 1239.67,2150.99 1234.88,2147.15 1231.08,2142.66 1228.04,2137.22 1226.43,2132.59 1226.04,2129.36"/>
+ </edge>
+ <edge id="-141191259#3" from="1545673030" to="1545673067" priority="1" type="highway.footway" shape="1281.00,2142.63 1278.13,2145.66 1274.20,2148.99 1269.94,2151.50 1264.52,2153.49 1256.24,2154.46 1251.00,2153.87 1245.45,2152.18">
+ <lane id="-141191259#3_0" index="0" allow="pedestrian" speed="8.33" length="35.02" shape="1278.71,2147.32 1275.27,2150.25 1270.65,2153.00 1264.91,2155.11 1256.25,2156.12 1250.66,2155.49 1246.20,2154.13"/>
+ </edge>
+ <edge id="-141191259#4" from="1545672954" to="1545673030" priority="1" type="highway.footway" shape="1286.23,2130.45 1284.55,2136.01 1283.09,2139.36 1281.00,2142.63">
+ <lane id="-141191259#4_0" index="0" allow="pedestrian" speed="8.33" length="3.50" shape="1286.33,2135.85 1286.13,2136.49 1285.01,2139.09"/>
+ </edge>
+ <edge id="-141191259#5" from="1545672852" to="1545672954" priority="1" type="highway.footway" shape="1277.60,2103.24 1281.30,2107.52 1284.31,2112.85 1286.37,2119.72 1286.79,2124.40 1286.23,2130.45">
+ <lane id="-141191259#5_0" index="0" allow="pedestrian" speed="8.33" length="26.76" shape="1279.05,2102.39 1282.66,2106.57 1285.84,2112.20 1288.00,2119.40 1288.44,2124.40 1288.24,2126.62"/>
+ </edge>
+ <edge id="-141191262#0" from="1545672919" to="1545672874" priority="1" type="highway.footway" shape="1189.89,2126.22 1189.29,2123.34 1188.37,2120.10 1187.37,2117.35 1186.40,2115.00">
+ <lane id="-141191262#0_0" index="0" allow="pedestrian" speed="8.33" length="1.56" shape="1187.16,2121.87 1186.78,2120.55 1186.72,2120.38"/>
+ </edge>
+ <edge id="-141191262#1" from="1545672971" to="1545672919" priority="1" type="highway.footway" shape="1190.71,2134.12 1190.19,2129.24 1189.89,2126.22">
+ <lane id="-141191262#1_0" index="0" allow="pedestrian" speed="8.33" length="2.65" shape="1189.07,2134.30 1188.79,2131.66"/>
+ </edge>
+ <edge id="-141191263#0" from="1545672819" to="1545672843" priority="1" type="highway.footway" shape="1177.15,2092.96 1179.32,2096.55 1181.89,2098.03 1184.81,2098.78 1187.94,2098.65 1191.03,2098.99">
+ <lane id="-141191263#0_0" index="0" allow="pedestrian" speed="8.33" length="3.70" shape="1180.59,2095.38 1182.52,2096.49 1183.94,2096.85"/>
+ </edge>
+ <edge id="-141191263#1" from="1545672797" to="1545672819" priority="1" type="highway.footway">
+ <lane id="-141191263#1_0" index="0" allow="pedestrian" speed="8.33" length="0.52" shape="1181.94,2090.05 1181.60,2090.44"/>
+ </edge>
+ <edge id="-141191264#0" from="1545673092" to="1545673065" priority="1" type="highway.footway" shape="1152.72,2157.95 1133.85,2159.62 1129.91,2159.25 1127.34,2157.84 1125.36,2156.49 1122.59,2153.96">
+ <lane id="-141191264#0_0" index="0" allow="pedestrian" speed="8.33" length="24.23" shape="1147.70,2160.05 1133.84,2161.28 1129.42,2160.86 1126.55,2159.28 1124.39,2157.83"/>
+ </edge>
+ <edge id="-141191264#1" from="1545673123" to="1545673092" priority="1" type="highway.footway" shape="1182.08,2163.41 1161.36,2159.39 1155.15,2158.32 1152.72,2157.95">
+ <lane id="-141191264#1_0" index="0" allow="pedestrian" speed="8.33" length="17.49" shape="1174.73,2163.66 1161.04,2161.01 1157.55,2160.41"/>
+ </edge>
+ <edge id="-149422193#0" from="2265767389" to="443101921" priority="5" type="highway.unclassified">
+ <lane id="-149422193#0_0" index="0" speed="22.22" length="1.75" shape="1430.23,895.93 1429.42,894.38"/>
+ </edge>
+ <edge id="-149422193#1" from="255227483" to="2265767389" priority="5" type="highway.unclassified">
+ <lane id="-149422193#1_0" index="0" speed="22.22" length="4.12" shape="1433.90,903.00 1432.00,899.34"/>
+ </edge>
+ <edge id="-149422199#0" from="255227480" to="255227475" priority="4" type="highway.residential">
+ <lane id="-149422199#0_0" index="0" speed="13.89" length="44.04" shape="1349.73,853.48 1312.10,876.36"/>
+ </edge>
+ <edge id="-149422199#1" from="255227482" to="255227480" priority="4" type="highway.residential">
+ <lane id="-149422199#1_0" index="0" speed="13.89" length="34.50" shape="1391.36,828.10 1361.90,846.07"/>
+ </edge>
+ <edge id="-149422199#2" from="432548414" to="255227482" priority="4" type="highway.residential">
+ <lane id="-149422199#2_0" index="0" speed="13.89" length="99.23" shape="1484.34,771.71 1399.49,823.16"/>
+ </edge>
+ <edge id="-149422210#0" from="1624060630" to="255227482" priority="4" type="highway.residential">
+ <lane id="-149422210#0_0" index="0" speed="13.89" length="42.24" shape="1415.06,866.76 1395.58,829.28"/>
+ </edge>
+ <edge id="-149422210#1" from="443101921" to="1624060630" priority="4" type="highway.residential">
+ <lane id="-149422210#1_0" index="0" speed="13.89" length="13.59" shape="1427.26,890.23 1420.99,878.17"/>
+ </edge>
+ <edge id="-149819220" from="1224074535" to="1224074532" priority="2" type="highway.service">
+ <lane id="-149819220_0" index="0" allow="delivery" speed="5.56" length="55.78" shape="660.39,1055.08 686.41,1104.42"/>
+ </edge>
+ <edge id="-149819222" from="1627657715" to="1627657783" priority="2" type="highway.service">
+ <lane id="-149819222_0" index="0" allow="delivery" speed="5.56" length="55.07" shape="699.06,1099.56 674.11,1050.47"/>
+ </edge>
+ <edge id="-149819224" from="1627657825" to="1627657822" priority="2" type="highway.service">
+ <lane id="-149819224_0" index="0" allow="delivery" speed="5.56" length="61.71" shape="667.32,1114.31 639.07,1059.44"/>
+ </edge>
+ <edge id="-149819227#0" from="1239243628" to="1224074527" priority="5" type="highway.unclassified">
+ <lane id="-149819227#0_0" index="0" speed="22.22" length="49.85" shape="651.72,1129.52 607.29,1152.11"/>
+ </edge>
+ <edge id="-149819227#1" from="1627657825" to="1239243628" priority="5" type="highway.unclassified">
+ <lane id="-149819227#1_0" index="0" speed="22.22" length="8.12" shape="667.50,1121.42 660.29,1125.14"/>
+ </edge>
+ <edge id="-149819227#2" from="1224074532" to="1627657825" priority="5" type="highway.unclassified">
+ <lane id="-149819227#2_0" index="0" speed="22.22" length="8.71" shape="683.69,1113.08 675.95,1117.07"/>
+ </edge>
+ <edge id="-149819227#3" from="1627657715" to="1224074532" priority="5" type="highway.unclassified">
+ <lane id="-149819227#3_0" index="0" speed="22.22" length="7.31" shape="698.69,1106.73 691.87,1109.37"/>
+ </edge>
+ <edge id="-149819232#0" from="1224074535" to="1627657783" priority="5" type="highway.unclassified">
+ <lane id="-149819232#0_0" index="0" speed="22.22" length="10.22" shape="661.83,1047.93 671.93,1046.36"/>
+ </edge>
+ <edge id="-149819232#1" from="1627657822" to="1224074535" priority="5" type="highway.unclassified">
+ <lane id="-149819232#1_0" index="0" speed="22.22" length="8.71" shape="643.47,1050.79 652.08,1049.45"/>
+ </edge>
+ <edge id="-149819232#2" from="1224091971" to="1627657822" priority="5" type="highway.unclassified">
+ <lane id="-149819232#2_0" index="0" speed="22.22" length="8.57" shape="625.26,1053.64 633.73,1052.31"/>
+ </edge>
+ <edge id="-149819232#3" from="1224074526" to="1224091971" priority="5" type="highway.unclassified" shape="562.74,1065.06 581.95,1062.06 600.63,1059.15 619.60,1056.19">
+ <lane id="-149819232#3_0" index="0" speed="22.22" length="53.70" shape="562.49,1063.43 581.70,1060.43 600.38,1057.52 615.54,1055.16"/>
+ </edge>
+ <edge id="-149868584#0" from="255227483" to="13990620" priority="7" type="highway.secondary" shape="1437.23,905.83 1504.88,867.61 1538.48,848.32 1573.50,828.93 1652.76,784.92 1735.40,738.79 1751.39,729.54 1756.16,726.92 1765.26,719.21">
+ <lane id="-149868584#0_0" index="0" speed="27.78" length="372.01" shape="1439.13,899.07 1502.45,863.30 1536.02,844.03 1571.10,824.60 1650.36,780.60 1732.99,734.47 1748.92,725.26 1753.33,722.82 1762.06,715.43"/>
+ <lane id="-149868584#0_1" index="1" speed="27.78" length="372.01" shape="1440.76,901.94 1504.07,866.17 1537.66,846.89 1572.70,827.49 1651.96,783.48 1734.60,737.35 1750.57,728.11 1755.22,725.55 1764.19,717.95"/>
+ </edge>
+ <edge id="-149868584#1" from="255227471" to="255227483" priority="7" type="highway.secondary">
+ <lane id="-149868584#1_0" index="0" speed="27.78" length="95.24" shape="1347.84,950.87 1430.67,903.86"/>
+ <lane id="-149868584#1_1" index="1" speed="27.78" length="95.24" shape="1349.47,953.74 1432.30,906.73"/>
+ </edge>
+ <edge id="-149868584#2" from="1168929657" to="255227471" priority="7" type="highway.secondary">
+ <lane id="-149868584#2_0" index="0" speed="27.78" length="162.54" shape="1195.32,1036.17 1337.20,956.86"/>
+ <lane id="-149868584#2_1" index="1" speed="27.78" length="162.54" shape="1196.93,1039.05 1338.81,959.74"/>
+ </edge>
+ <edge id="-149868584#3" from="1726394724" to="1168929657" priority="7" type="highway.secondary">
+ <lane id="-149868584#3_0" index="0" speed="27.78" length="19.18" shape="1172.68,1048.96 1189.37,1039.52"/>
+ <lane id="-149868584#3_1" index="1" speed="27.78" length="19.18" shape="1174.30,1051.84 1190.99,1042.40"/>
+ </edge>
+ <edge id="-149868584#4" from="1168929383" to="1726394724" priority="7" type="highway.secondary">
+ <lane id="-149868584#4_0" index="0" speed="27.78" length="17.23" shape="1143.26,1065.60 1158.26,1057.12"/>
+ <lane id="-149868584#4_1" index="1" speed="27.78" length="17.23" shape="1144.88,1068.47 1159.88,1059.99"/>
+ </edge>
+ <edge id="-149868584#5" from="767282288" to="1168929383" priority="7" type="highway.secondary">
+ <lane id="-149868584#5_0" index="0" speed="27.78" length="218.15" shape="947.89,1176.63 1137.55,1068.84"/>
+ <lane id="-149868584#5_1" index="1" speed="27.78" length="218.15" shape="949.52,1179.50 1139.18,1071.71"/>
+ </edge>
+ <edge id="-149868584#6" from="13929775" to="767282288" priority="7" type="highway.secondary">
+ <lane id="-149868584#6_0" index="0" speed="27.78" length="0.64" shape="938.61,1181.91 939.16,1181.60"/>
+ <lane id="-149868584#6_1" index="1" speed="27.78" length="0.64" shape="940.24,1184.78 940.80,1184.46"/>
+ </edge>
+ <edge id="-149868584#7" from="438042369" to="13929775" priority="7" type="highway.secondary">
+ <lane id="-149868584#7_0" index="0" speed="27.78" length="7.13" shape="926.43,1188.85 932.63,1185.32"/>
+ <lane id="-149868584#7_1" index="1" speed="27.78" length="7.13" shape="928.06,1191.72 934.26,1188.19"/>
+ </edge>
+ <edge id="-149868584#8" from="438042367" to="438042369" priority="7" type="highway.secondary">
+ <lane id="-149868584#8_0" index="0" speed="27.78" length="1.62" shape="913.87,1196.01 915.28,1195.20"/>
+ <lane id="-149868584#8_1" index="1" speed="27.78" length="1.62" shape="915.51,1198.87 916.91,1198.07"/>
+ </edge>
+ <edge id="-151164683" from="1718241040" to="1639892546" priority="1" type="highway.footway" shape="755.09,305.48 765.84,314.28 827.26,437.09 941.95,654.06 1055.17,864.46 1125.03,1000.52 1136.82,1024.60">
+ <lane id="-151164683_0" index="0" allow="pedestrian" speed="8.33" length="811.17" shape="756.13,304.20 767.16,313.22 828.73,436.35 943.41,653.29 1056.62,863.68 1126.49,999.76 1136.16,1019.51"/>
+ </edge>
+ <edge id="-154409621" from="248913124" to="566579340" priority="9" type="highway.primary">
+ <lane id="-154409621_0" index="0" speed="27.78" length="156.37" shape="1418.91,1925.11 1557.39,1852.48"/>
+ </edge>
+ <edge id="-154844500#0" from="441266880" to="1669480281" priority="7" type="highway.secondary">
+ <lane id="-154844500#0_0" index="0" speed="27.78" length="7.28" shape="1463.56,1580.25 1457.12,1583.62"/>
+ </edge>
+ <edge id="-154844500#1" from="1669480280" to="441266880" priority="7" type="highway.secondary">
+ <lane id="-154844500#1_0" index="0" speed="27.78" length="4.06" shape="1469.92,1576.93 1466.32,1578.81"/>
+ </edge>
+ <edge id="-154844500#2" from="441266854" to="1669480280" priority="7" type="highway.secondary" shape="1800.95,1402.27 1690.06,1460.13 1577.25,1519.04 1469.16,1575.47">
+ <lane id="-154844500#2_0" index="0" speed="27.78" length="369.52" shape="1801.71,1403.73 1690.82,1461.60 1578.01,1520.50 1474.14,1574.73"/>
+ </edge>
+ <edge id="-154844500#3" from="248913154" to="441266854" priority="7" type="highway.secondary">
+ <lane id="-154844500#3_0" index="0" speed="27.78" length="17.26" shape="1817.00,1395.72 1801.71,1403.73"/>
+ </edge>
+ <edge id="-154844503" from="1726394726" to="1669480282" priority="7" type="highway.secondary">
+ <lane id="-154844503_0" index="0" speed="27.78" length="0.28" shape="1448.03,1592.09 1447.78,1592.22"/>
+ <lane id="-154844503_1" index="1" speed="27.78" length="0.28" shape="1446.50,1589.17 1446.25,1589.30"/>
+ </edge>
+ <edge id="-160584981" from="1726380184" to="1726380187" priority="5" type="highway.unclassified" shape="681.18,1353.27 683.52,1357.65 712.82,1412.54">
+ <lane id="-160584981_0" index="0" speed="22.22" length="64.32" shape="684.14,1355.30 684.98,1356.88 714.43,1412.05"/>
+ </edge>
+ <edge id="-160584984" from="1224080669" to="446017738" priority="5" type="highway.unclassified" shape="521.64,1031.63 621.99,1227.58 668.61,1317.24 667.27,1326.71">
+ <lane id="-160584984_0" index="0" speed="22.22" length="319.70" shape="525.79,1036.11 623.46,1226.82 670.32,1316.95 669.78,1320.76"/>
+ </edge>
+ <edge id="-160587537#0" from="1726394727" to="1726394726" priority="7" type="highway.secondary">
+ <lane id="-160587537#0_0" index="0" speed="27.78" length="11.46" shape="1448.53,1601.44 1443.09,1590.72"/>
+ <lane id="-160587537#0_1" index="1" speed="27.78" length="11.46" shape="1450.96,1598.93 1446.03,1589.22"/>
+ </edge>
+ <edge id="-160587537#1" from="1726394728" to="1726394727" priority="7" type="highway.secondary">
+ <lane id="-160587537#1_0" index="0" speed="27.78" length="250.54" shape="1566.72,1826.46 1450.19,1604.66"/>
+ <lane id="-160587537#1_1" index="1" speed="27.78" length="250.54" shape="1569.64,1824.92 1453.11,1603.13"/>
+ </edge>
+ <edge id="-160587537#2" from="1726394729" to="1726394728" priority="7" type="highway.secondary">
+ <lane id="-160587537#2_0" index="0" speed="27.78" length="2.43" shape="1570.65,1834.28 1569.58,1832.09"/>
+ <lane id="-160587537#2_1" index="1" speed="27.78" length="2.43" shape="1573.61,1832.82 1572.54,1830.64"/>
+ </edge>
+ <edge id="-160587537#3" from="13929752" to="1726394729" priority="7" type="highway.secondary">
+ <lane id="-160587537#3_0" index="0" speed="27.78" length="1.40" shape="1576.58,1844.78 1575.84,1843.59"/>
+ <lane id="-160587537#3_1" index="1" speed="27.78" length="1.40" shape="1579.38,1843.03 1578.64,1841.84"/>
+ </edge>
+ <edge id="-160587538#0" from="2081499950" to="1726394722" priority="7" type="highway.secondary">
+ <lane id="-160587538#0_0" index="0" speed="27.78" length="186.57" shape="1141.76,1019.62 1055.54,853.53"/>
+ <lane id="-160587538#0_1" index="1" speed="27.78" length="186.57" shape="1144.16,1017.09 1058.47,852.01"/>
+ </edge>
+ <edge id="-160587538#1" from="1168929634" to="2081499950" priority="7" type="highway.secondary">
+ <lane id="-160587538#1_0" index="0" speed="27.78" length="10.68" shape="1148.31,1032.25 1143.39,1022.78"/>
+ <lane id="-160587538#1_1" index="1" speed="27.78" length="10.68" shape="1151.24,1030.73 1146.32,1021.25"/>
+ </edge>
+ <edge id="-160587538#2" from="1726394723" to="1168929634" priority="7" type="highway.secondary">
+ <lane id="-160587538#2_0" index="0" speed="27.78" length="18.03" shape="1158.77,1050.74 1149.84,1035.06"/>
+ <lane id="-160587538#2_1" index="1" speed="27.78" length="18.03" shape="1161.61,1049.06 1152.71,1033.42"/>
+ </edge>
+ <edge id="-160587538#3" from="1726394724" to="1726394723" priority="7" type="highway.secondary">
+ <lane id="-160587538#3_0" index="0" speed="27.78" length="0.90" shape="1160.21,1053.32 1159.78,1052.53"/>
+ <lane id="-160587538#3_1" index="1" speed="27.78" length="0.90" shape="1163.11,1051.73 1162.67,1050.94"/>
+ </edge>
+ <edge id="-160587538#4" from="1726394725" to="1726394724" priority="7" type="highway.secondary">
+ <lane id="-160587538#4_0" index="0" speed="27.78" length="1.24" shape="1167.32,1067.03 1166.78,1065.92"/>
+ <lane id="-160587538#4_1" index="1" speed="27.78" length="1.24" shape="1170.28,1065.57 1169.74,1064.46"/>
+ </edge>
+ <edge id="-160587538#5" from="1168929558" to="1726394725" priority="7" type="highway.secondary">
+ <lane id="-160587538#5_0" index="0" speed="27.78" length="19.43" shape="1177.19,1085.99 1168.18,1068.70"/>
+ <lane id="-160587538#5_1" index="1" speed="27.78" length="19.43" shape="1180.06,1084.35 1171.11,1067.17"/>
+ </edge>
+ <edge id="-160587538#6" from="1913728534" to="1168929558" priority="7" type="highway.secondary">
+ <lane id="-160587538#6_0" index="0" speed="27.78" length="242.43" shape="1291.59,1303.22 1178.62,1088.72"/>
+ <lane id="-160587538#6_1" index="1" speed="27.78" length="242.43" shape="1294.51,1301.68 1181.54,1087.18"/>
+ </edge>
+ <edge id="-160587538#7" from="1726394726" to="1913728534" priority="7" type="highway.secondary" shape="1446.82,1587.14 1305.20,1318.43 1295.97,1300.91">
+ <lane id="-160587538#7_0" index="0" speed="27.78" length="318.81" shape="1441.00,1586.71 1300.82,1320.73 1291.59,1303.22"/>
+ <lane id="-160587538#7_1" index="1" speed="27.78" length="318.81" shape="1442.39,1582.26 1303.74,1319.19 1294.51,1301.68"/>
+ </edge>
+ <edge id="-160587542" from="1669480281" to="1726394726" priority="7" type="highway.secondary">
+ <lane id="-160587542_0" index="0" speed="27.78" length="3.61" shape="1451.87,1590.09 1450.15,1590.99"/>
+ <lane id="-160587542_1" index="1" speed="27.78" length="3.61" shape="1453.31,1585.62 1448.62,1588.06"/>
+ </edge>
+ <edge id="-166576459" from="1780219374" to="1780219355" priority="1" type="highway.footway">
+ <lane id="-166576459_0" index="0" allow="pedestrian" speed="8.33" length="16.42" shape="809.60,1161.65 795.96,1152.51"/>
+ </edge>
+ <edge id="-166576461#0" from="1780219366" to="1224074534" priority="1" type="highway.footway">
+ <lane id="-166576461#0_0" index="0" allow="pedestrian" speed="8.33" length="43.72" shape="789.25,1039.23 782.27,1082.39"/>
+ </edge>
+ <edge id="-166576461#1" from="1168929652" to="1780219366" priority="1" type="highway.footway" shape="765.18,988.02 770.39,994.53 788.36,1034.38">
+ <lane id="-166576461#1_0" index="0" allow="pedestrian" speed="8.33" length="42.02" shape="770.92,992.56 771.80,993.66 788.50,1030.68"/>
+ </edge>
+ <edge id="-166576462#0" from="1780219377" to="1780219365" priority="1" type="highway.footway">
+ <lane id="-166576462#0_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="953.10,1210.20 954.09,1209.59"/>
+ </edge>
+ <edge id="-166576462#1" from="1780219361" to="1780219377" priority="1" type="highway.footway">
+ <lane id="-166576462#1_0" index="0" allow="pedestrian" speed="8.33" length="10.38" shape="938.47,1218.13 947.66,1213.31"/>
+ </edge>
+ <edge id="-166576462#2" from="1780219359" to="1780219361" priority="1" type="highway.footway">
+ <lane id="-166576462#2_0" index="0" allow="pedestrian" speed="8.33" length="2.44" shape="927.86,1223.80 930.01,1222.64"/>
+ </edge>
+ <edge id="-166576462#3" from="1780219341" to="1780219359" priority="1" type="highway.footway" shape="909.11,1223.86 912.89,1233.84 924.37,1227.56">
+ <lane id="-166576462#3_0" index="0" allow="pedestrian" speed="8.33" length="11.47" shape="911.94,1226.65 913.76,1231.48 919.30,1228.45"/>
+ </edge>
+ <edge id="-166576462#4" from="1780219353" to="1780219341" priority="1" type="highway.footway">
+ <lane id="-166576462#4_0" index="0" allow="pedestrian" speed="8.33" length="5.50" shape="906.57,1215.37 909.10,1220.25"/>
+ </edge>
+ <edge id="-166576462#5" from="1780219360" to="1780219353" priority="1" type="highway.footway">
+ <lane id="-166576462#5_0" index="0" allow="pedestrian" speed="8.33" length="4.03" shape="897.11,1197.30 898.99,1200.87"/>
+ </edge>
+ <edge id="-166576462#6" from="1780219369" to="1780219360" priority="1" type="highway.footway">
+ <lane id="-166576462#6_0" index="0" allow="pedestrian" speed="8.33" length="2.61" shape="891.56,1189.33 893.19,1191.37"/>
+ </edge>
+ <edge id="-166576462#7" from="1780219335" to="1780219369" priority="1" type="highway.footway" shape="860.88,1140.91 879.47,1175.79 886.89,1186.10">
+ <lane id="-166576462#7_0" index="0" allow="pedestrian" speed="8.33" length="42.98" shape="864.55,1144.29 880.93,1175.01 885.70,1181.63"/>
+ </edge>
+ <edge id="-166576462#8" from="1780219348" to="1780219335" priority="1" type="highway.footway">
+ <lane id="-166576462#8_0" index="0" allow="pedestrian" speed="8.33" length="15.91" shape="852.73,1121.84 860.12,1135.92"/>
+ </edge>
+ <edge id="-166576462#9" from="1780219373" to="1780219348" priority="1" type="highway.footway" shape="814.82,1037.83 814.19,1050.57 843.27,1107.37">
+ <lane id="-166576462#9_0" index="0" allow="pedestrian" speed="8.33" length="83.39" shape="816.25,1042.40 815.86,1050.21 850.30,1117.48"/>
+ </edge>
+ <edge id="-166576463" from="1780219348" to="1780219344" priority="1" type="highway.footway">
+ <lane id="-166576463_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="846.21,1124.40 847.53,1141.89"/>
+ </edge>
+ <edge id="-166576464#0" from="1780219373" to="1780219366" priority="1" type="highway.footway">
+ <lane id="-166576464#0_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="810.15,1038.88 792.76,1036.61"/>
+ </edge>
+ <edge id="-166576464#1" from="1780219331" to="1780219373" priority="1" type="highway.footway">
+ <lane id="-166576464#1_0" index="0" allow="pedestrian" speed="8.33" length="6.06" shape="820.93,1036.35 815.62,1039.27"/>
+ </edge>
+ <edge id="-166576464#2" from="1780219342" to="1780219331" priority="1" type="highway.footway">
+ <lane id="-166576464#2_0" index="0" allow="pedestrian" speed="8.33" length="3.32" shape="829.10,1028.66 826.69,1030.95"/>
+ </edge>
+ <edge id="-166576464#3" from="1780219363" to="1780219342" priority="1" type="highway.footway">
+ <lane id="-166576464#3_0" index="0" allow="pedestrian" speed="8.33" length="6.68" shape="844.28,1012.05 839.95,1017.14"/>
+ </edge>
+ <edge id="-166576464#4" from="1780219371" to="1780219363" priority="1" type="highway.footway">
+ <lane id="-166576464#4_0" index="0" allow="pedestrian" speed="8.33" length="1.70" shape="850.13,1006.00 848.86,1007.14"/>
+ </edge>
+ <edge id="-166576466#0" from="1780219344" to="1780219335" priority="1" type="highway.footway">
+ <lane id="-166576466#0_0" index="0" allow="pedestrian" speed="8.33" length="5.15" shape="851.30,1144.00 855.88,1141.64"/>
+ </edge>
+ <edge id="-166576466#1" from="1780219374" to="1780219344" priority="1" type="highway.footway">
+ <lane id="-166576466#1_0" index="0" allow="pedestrian" speed="8.33" length="26.87" shape="818.58,1161.10 842.38,1148.63"/>
+ </edge>
+ <edge id="-166576466#2" from="1780219345" to="1780219374" priority="1" type="highway.footway" shape="786.51,1179.73 795.03,1175.31 816.31,1164.16">
+ <lane id="-166576466#2_0" index="0" allow="pedestrian" speed="8.33" length="18.77" shape="792.74,1174.64 794.27,1173.84 809.37,1165.93"/>
+ </edge>
+ <edge id="-166576468#0" from="1780219343" to="1780219369" priority="1" type="highway.footway">
+ <lane id="-166576468#0_0" index="0" allow="pedestrian" speed="8.33" length="0.29" shape="892.73,1184.91 892.47,1185.04"/>
+ </edge>
+ <edge id="-166576468#1" from="1780219352" to="1780219343" priority="1" type="highway.footway">
+ <lane id="-166576468#1_0" index="0" allow="pedestrian" speed="8.33" length="2.76" shape="906.58,1177.69 904.13,1178.97"/>
+ </edge>
+ <edge id="-166576468#2" from="1780219362" to="1780219352" priority="1" type="highway.footway">
+ <lane id="-166576468#2_0" index="0" allow="pedestrian" speed="8.33" length="7.40" shape="924.51,1168.34 917.95,1171.76"/>
+ </edge>
+ <edge id="-166576468#3" from="1780219332" to="1780219362" priority="1" type="highway.footway">
+ <lane id="-166576468#3_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="931.05,1164.93 930.02,1165.46"/>
+ </edge>
+ <edge id="-166625256#0" from="1244292210" to="1244292219" priority="1" type="highway.pedestrian" shape="1166.69,1743.45 1149.19,1709.42 1064.23,1752.83 1081.72,1786.85">
+ <lane id="-166625256#0_0" index="0" allow="pedestrian" speed="8.33" length="158.83" shape="1163.73,1741.30 1148.48,1711.64 1066.45,1753.55 1081.71,1783.22"/>
+ </edge>
+ <edge id="-166625256#1" from="1244292219" to="1244292210" priority="1" type="highway.pedestrian">
+ <lane id="-166625256#1_0" index="0" allow="pedestrian" speed="8.33" length="88.91" shape="1083.86,1783.91 1163.03,1743.46"/>
+ </edge>
+ <edge id="-166625259" from="1780623649" to="438042379" priority="2" type="highway.service" shape="943.97,1747.10 1111.17,1662.53 1125.23,1656.38">
+ <lane id="-166625259_0" index="0" allow="delivery" speed="5.56" length="199.47" shape="943.22,1745.63 1110.43,1661.05 1121.51,1656.21"/>
+ </edge>
+ <edge id="-166728377#0" from="255227482" to="255227480" priority="1" type="highway.pedestrian">
+ <lane id="-166728377#0_0" index="0" allow="pedestrian" speed="8.33" length="34.50" shape="1391.36,828.10 1361.90,846.07"/>
+ </edge>
+ <edge id="-166728377#1" from="1624060630" to="255227482" priority="1" type="highway.pedestrian">
+ <lane id="-166728377#1_0" index="0" allow="pedestrian" speed="8.33" length="42.24" shape="1415.06,866.76 1395.58,829.28"/>
+ </edge>
+ <edge id="-166728377#2" from="255227480" to="1624060630" priority="1" type="highway.pedestrian">
+ <lane id="-166728377#2_0" index="0" allow="pedestrian" speed="8.33" length="53.75" shape="1362.27,850.25 1412.35,869.77"/>
+ </edge>
+ <edge id="-179692877#0" from="1168929398" to="444026889" priority="6" type="highway.tertiary">
+ <lane id="-179692877#0_0" index="0" speed="22.22" length="44.11" shape="808.12,1035.99 803.15,1079.82"/>
+ </edge>
+ <edge id="-179692877#1" from="441236049" to="1168929398" priority="6" type="highway.tertiary" shape="810.99,1017.83 808.39,1027.28 806.50,1035.63">
+ <lane id="-179692877#1_0" index="0" speed="22.22" length="6.04" shape="809.48,1029.93 808.15,1035.82"/>
+ </edge>
+ <edge id="-179917803#0" from="1224074534" to="1627657715" priority="5" type="highway.unclassified" shape="779.72,1087.83 707.93,1101.38 702.84,1103.36">
+ <lane id="-179917803#0_0" index="0" speed="22.22" length="69.99" shape="776.31,1090.16 708.38,1102.98 707.58,1103.29"/>
+ </edge>
+ <edge id="-179917803#1" from="1224074533" to="1224074534" priority="5" type="highway.unclassified">
+ <lane id="-179917803#1_0" index="0" speed="22.22" length="3.88" shape="785.64,1088.83 781.79,1089.26"/>
+ </edge>
+ <edge id="-190048065" from="450564005" to="2006433692" priority="5" type="highway.unclassified">
+ <lane id="-190048065_0" index="0" speed="22.22" length="127.75" shape="1395.85,2148.11 1336.70,2034.88"/>
+ </edge>
+ <edge id="-191056427#0" from="2016414184" to="2016414185" priority="2" type="highway.service">
+ <lane id="-191056427#0_0" index="0" allow="delivery" speed="5.56" length="10.89" shape="842.01,1633.45 831.66,1636.85"/>
+ </edge>
+ <edge id="-191056427#1" from="1719223329" to="2016414184" priority="2" type="highway.service" shape="921.87,1598.37 911.34,1598.13 871.10,1615.22 847.03,1630.06 836.73,1633.45">
+ <lane id="-191056427#1_0" index="0" allow="delivery" speed="5.56" length="80.44" shape="919.49,1599.97 911.66,1599.79 871.74,1616.74 847.73,1631.56 846.76,1631.88"/>
+ </edge>
+ <edge id="-191176261" from="2017759586" to="2017759592" priority="1" type="highway.footway">
+ <lane id="-191176261_0" index="0" allow="pedestrian" speed="8.33" length="6.41" shape="861.79,1725.25 864.92,1730.85"/>
+ </edge>
+ <edge id="-191176262" from="1474873139" to="2017759586" priority="1" type="highway.footway">
+ <lane id="-191176262_0" index="0" allow="pedestrian" speed="8.33" length="64.64" shape="797.66,1752.53 855.30,1723.28"/>
+ </edge>
+ <edge id="-191176263" from="2017759596" to="2017759594" priority="1" type="highway.footway">
+ <lane id="-191176263_0" index="0" allow="pedestrian" speed="8.33" length="4.93" shape="869.34,1745.13 867.38,1740.61"/>
+ </edge>
+ <edge id="-191176264" from="2017759592" to="2017759594" priority="1" type="highway.footway">
+ <lane id="-191176264_0" index="0" allow="pedestrian" speed="8.33" length="7.13" shape="865.00,1730.98 869.06,1736.83"/>
+ </edge>
+ <edge id="-191176265" from="2017759594" to="1474873137" priority="1" type="highway.footway">
+ <lane id="-191176265_0" index="0" allow="pedestrian" speed="8.33" length="5.57" shape="870.17,1738.32 873.73,1742.60"/>
+ </edge>
+ <edge id="-191176266" from="2017759594" to="1474873133" priority="1" type="highway.footway">
+ <lane id="-191176266_0" index="0" allow="pedestrian" speed="8.33" length="7.46" shape="866.56,1738.55 864.19,1731.47"/>
+ </edge>
+ <edge id="-191176267" from="2017759615" to="2017759596" priority="1" type="highway.footway" shape="858.28,1762.79 876.21,1753.74 870.93,1744.65">
+ <lane id="-191176267_0" index="0" allow="pedestrian" speed="8.33" length="26.90" shape="857.54,1761.32 873.90,1753.05 869.60,1745.64"/>
+ </edge>
+ <edge id="-191176268" from="1474873133" to="2017759588" priority="1" type="highway.footway" shape="865.67,1730.70 864.67,1728.78 875.15,1726.33">
+ <lane id="-191176268_0" index="0" allow="pedestrian" speed="8.33" length="11.24" shape="864.09,1731.23 862.23,1727.66 869.25,1726.02"/>
+ </edge>
+ <edge id="-197781817" from="2079750190" to="1625774769" priority="1" type="highway.footway" shape="1477.48,2184.33 1519.37,2263.89 1576.84,2373.05 1638.79,2492.24">
+ <lane id="-197781817_0" index="0" allow="pedestrian" speed="8.33" length="342.84" shape="1481.16,2187.79 1520.83,2263.12 1578.30,2372.28 1640.25,2491.48"/>
+ </edge>
+ <edge id="-197794762" from="1431113444" to="2079750190" priority="1" type="highway.footway">
+ <lane id="-197794762_0" index="0" allow="pedestrian" speed="8.33" length="21.71" shape="1501.76,2173.63 1482.48,2183.60"/>
+ </edge>
+ <edge id="-197955309#0" from="1639892546" to="2081499952" priority="1" type="highway.footway">
+ <lane id="-197955309#0_0" index="0" allow="pedestrian" speed="8.33" length="1.67" shape="1133.58,1028.26 1132.12,1029.07"/>
+ </edge>
+ <edge id="-197955309#1" from="2081499951" to="1639892546" priority="1" type="highway.footway">
+ <lane id="-197955309#1_0" index="0" allow="pedestrian" speed="8.33" length="3.61" shape="1141.89,1023.77 1138.70,1025.47"/>
+ </edge>
+ <edge id="-197955309#2" from="2081499950" to="2081499951" priority="1" type="highway.footway">
+ <lane id="-197955309#2_0" index="0" allow="pedestrian" speed="8.33" length="0.67" shape="1147.13,1021.01 1146.54,1021.32"/>
+ </edge>
+ <edge id="-197955309#3" from="2081499949" to="2081499950" priority="1" type="highway.footway">
+ <lane id="-197955309#3_0" index="0" allow="pedestrian" speed="8.33" length="4.91" shape="1153.40,1017.69 1149.06,1019.99"/>
+ </edge>
+ <edge id="-197955309#4" from="2081499948" to="2081499949" priority="1" type="highway.footway">
+ <lane id="-197955309#4_0" index="0" allow="pedestrian" speed="8.33" length="3.50" shape="1156.34,1016.00 1153.30,1017.74"/>
+ </edge>
+ <edge id="-197955309#5" from="2081499947" to="2081499948" priority="1" type="highway.footway">
+ <lane id="-197955309#5_0" index="0" allow="pedestrian" speed="8.33" length="3.49" shape="1163.60,1012.16 1160.52,1013.79"/>
+ </edge>
+ <edge id="-23066446#0" from="452425488" to="248913130" priority="4" type="highway.residential">
+ <lane id="-23066446#0_0" index="0" speed="13.89" length="9.95" shape="1275.55,1804.38 1266.71,1808.95"/>
+ </edge>
+ <edge id="-23066446#1" from="248913131" to="452425488" priority="4" type="highway.residential">
+ <lane id="-23066446#1_0" index="0" speed="13.89" length="55.95" shape="1333.44,1773.73 1284.02,1799.95"/>
+ </edge>
+ <edge id="-23066446#2" from="248913133" to="248913131" priority="4" type="highway.residential">
+ <lane id="-23066446#2_0" index="0" speed="13.89" length="75.62" shape="1405.77,1735.34 1338.97,1770.79"/>
+ </edge>
+ <edge id="-23066446#3" from="443089062" to="248913133" priority="4" type="highway.residential">
+ <lane id="-23066446#3_0" index="0" speed="13.89" length="75.68" shape="1478.37,1697.39 1411.29,1732.44"/>
+ </edge>
+ <edge id="-23066462#0" from="250689186" to="248913200" priority="1" type="highway.pedestrian" shape="1348.78,1223.51 1335.59,1219.93 1321.70,1219.55 1306.94,1224.00 1290.84,1231.35">
+ <lane id="-23066462#0_0" index="0" allow="pedestrian" speed="8.33" length="51.99" shape="1344.40,1224.03 1335.34,1221.57 1321.92,1221.20 1307.42,1225.58 1294.65,1231.42"/>
+ </edge>
+ <edge id="-23066462#1" from="441266870" to="250689186" priority="1" type="highway.pedestrian" shape="1370.27,1239.60 1358.96,1229.91 1348.78,1223.51">
+ <lane id="-23066462#1_0" index="0" allow="pedestrian" speed="8.33" length="18.40" shape="1366.34,1238.41 1357.89,1231.16 1351.73,1227.31"/>
+ </edge>
+ <edge id="-23066462#2" from="250689131" to="441266870" priority="1" type="highway.pedestrian" shape="1383.02,1266.41 1379.18,1251.74 1370.27,1239.60">
+ <lane id="-23066462#2_0" index="0" allow="pedestrian" speed="8.33" length="18.75" shape="1380.00,1261.36 1377.67,1252.47 1372.01,1244.76"/>
+ </edge>
+ <edge id="-23066462#3" from="250689201" to="250689131" priority="1" type="highway.pedestrian" shape="1384.40,1289.75 1384.59,1277.96 1383.02,1266.41">
+ <lane id="-23066462#3_0" index="0" allow="pedestrian" speed="8.33" length="14.70" shape="1382.83,1284.97 1382.94,1277.93 1381.90,1270.34"/>
+ </edge>
+ <edge id="-23066462#4" from="248913200" to="250689201" priority="1" type="highway.pedestrian" shape="1290.84,1231.35 1345.01,1334.36 1363.65,1322.46 1378.26,1306.06 1384.40,1289.75">
+ <lane id="-23066462#4_0" index="0" allow="pedestrian" speed="8.33" length="166.01" shape="1293.90,1233.62 1345.64,1332.00 1362.57,1321.19 1376.82,1305.19 1381.52,1292.71"/>
+ </edge>
+ <edge id="-23182358#0" from="250683336" to="250685766" priority="5" type="highway.unclassified">
+ <lane id="-23182358#0_0" index="0" speed="22.22" length="93.53" shape="1207.86,2371.82 1164.61,2288.89"/>
+ </edge>
+ <edge id="-23182358#1" from="250684983" to="250683336" priority="5" type="highway.unclassified" shape="1313.08,2568.15 1264.20,2474.18 1210.76,2373.81">
+ <lane id="-23182358#1_0" index="0" speed="22.22" length="216.45" shape="1311.62,2568.91 1262.74,2474.95 1210.80,2377.38"/>
+ </edge>
+ <edge id="-23182358#2" from="2004733211" to="250684983" priority="5" type="highway.unclassified" shape="1465.13,2867.89 1462.78,2857.50 1459.79,2849.82 1452.46,2835.71 1396.85,2729.13 1355.30,2649.19 1313.08,2568.15">
+ <lane id="-23182358#2_0" index="0" speed="22.22" length="336.06" shape="1463.52,2868.26 1461.17,2857.86 1458.26,2850.42 1451.00,2836.47 1395.38,2729.90 1353.84,2649.95 1311.62,2568.91"/>
+ </edge>
+ <edge id="-23182484#0" from="250685829" to="450564006" priority="5" type="highway.unclassified">
+ <lane id="-23182484#0_0" index="0" speed="22.22" length="8.03" shape="1392.84,2162.66 1399.97,2158.96"/>
+ </edge>
+ <edge id="-23182484#1" from="1367855925" to="250685829" priority="5" type="highway.unclassified">
+ <lane id="-23182484#1_0" index="0" speed="22.22" length="0.26" shape="1383.27,2167.66 1383.50,2167.53"/>
+ </edge>
+ <edge id="-23182484#2" from="250685816" to="1367855925" priority="5" type="highway.unclassified">
+ <lane id="-23182484#2_0" index="0" speed="22.22" length="107.01" shape="1280.58,2222.14 1375.11,2171.99"/>
+ </edge>
+ <edge id="-23182517#0" from="450564003" to="250685766" priority="5" type="highway.unclassified">
+ <lane id="-23182517#0_0" index="0" speed="22.22" length="3.26" shape="1163.12,2278.98 1164.64,2281.86"/>
+ </edge>
+ <edge id="-23182517#1" from="975934878" to="450564003" priority="5" type="highway.unclassified">
+ <lane id="-23182517#1_0" index="0" speed="22.22" length="2.26" shape="1159.20,2271.46 1160.24,2273.47"/>
+ </edge>
+ <edge id="-23182517#2" from="1545673349" to="975934878" priority="5" type="highway.unclassified">
+ <lane id="-23182517#2_0" index="0" speed="22.22" length="41.56" shape="1137.76,2228.84 1156.41,2265.98"/>
+ </edge>
+ <edge id="-23182517#3" from="1545673118" to="1545673349" priority="5" type="highway.unclassified">
+ <lane id="-23182517#3_0" index="0" speed="22.22" length="58.59" shape="1107.21,2167.99 1133.50,2220.35"/>
+ </edge>
+ <edge id="-23182517#4" from="252418937" to="1545673118" priority="5" type="highway.unclassified">
+ <lane id="-23182517#4_0" index="0" speed="22.22" length="38.52" shape="1085.65,2125.07 1102.94,2159.49"/>
+ </edge>
+ <edge id="-23262356#0" from="2265767394" to="255227471" priority="5" type="highway.unclassified">
+ <lane id="-23262356#0_0" index="0" speed="22.22" length="4.80" shape="1343.76,949.28 1345.24,953.85"/>
+ </edge>
+ <edge id="-23262356#1" from="443101920" to="2265767394" priority="5" type="highway.unclassified">
+ <lane id="-23262356#1_0" index="0" speed="22.22" length="2.70" shape="1341.86,943.45 1342.70,946.02"/>
+ </edge>
+ <edge id="-23262356#2" from="255227475" to="443101920" priority="5" type="highway.unclassified">
+ <lane id="-23262356#2_0" index="0" speed="22.22" length="65.53" shape="1310.66,880.70 1339.99,939.30"/>
+ </edge>
+ <edge id="-23262356#3" from="255227472" to="255227475" priority="5" type="highway.unclassified">
+ <lane id="-23262356#3_0" index="0" speed="22.22" length="64.98" shape="1272.45,816.93 1306.12,872.50"/>
+ </edge>
+ <edge id="-23315111#0" from="950094412" to="252418937" priority="5" type="highway.unclassified">
+ <lane id="-23315111#0_0" index="0" speed="22.22" length="0.70" shape="1082.57,2118.67 1082.87,2119.31"/>
+ </edge>
+ <edge id="-23315111#1" from="427996791" to="950094412" priority="5" type="highway.unclassified">
+ <lane id="-23315111#1_0" index="0" speed="22.22" length="3.73" shape="1078.42,2109.78 1080.00,2113.16"/>
+ </edge>
+ <edge id="-23315111#2" from="950094425" to="427996791" priority="5" type="highway.unclassified">
+ <lane id="-23315111#2_0" index="0" speed="22.22" length="2.47" shape="1075.86,2104.28 1076.90,2106.52"/>
+ </edge>
+ <edge id="-23315111#3" from="427996792" to="950094425" priority="5" type="highway.unclassified">
+ <lane id="-23315111#3_0" index="0" speed="22.22" length="2.27" shape="1071.32,2094.53 1072.27,2096.59"/>
+ </edge>
+ <edge id="-23566901#0" from="255227480" to="255227478" priority="4" type="highway.residential" shape="1354.16,848.86 1271.43,783.65 1257.12,791.07">
+ <lane id="-23566901#0_0" index="0" speed="13.89" length="113.15" shape="1348.28,846.33 1271.25,785.60 1257.88,792.54"/>
+ </edge>
+ <edge id="-23566901#1" from="1624060630" to="255227480" priority="4" type="highway.residential">
+ <lane id="-23566901#1_0" index="0" speed="13.89" length="53.75" shape="1411.16,872.85 1361.07,853.33"/>
+ </edge>
+ <edge id="-24573937" from="966193808" to="267169964" priority="5" type="highway.unclassified">
+ <lane id="-24573937_0" index="0" speed="22.22" length="77.77" shape="1300.53,1090.86 1232.24,1128.05"/>
+ </edge>
+ <edge id="-24573939#0" from="267169686" to="267169690" priority="1" type="highway.pedestrian">
+ <lane id="-24573939#0_0" index="0" allow="pedestrian" speed="8.33" length="50.18" shape="1412.00,1088.77 1387.23,1045.14"/>
+ </edge>
+ <edge id="-24573939#1" from="267169715" to="267169686" priority="1" type="highway.pedestrian">
+ <lane id="-24573939#1_0" index="0" allow="pedestrian" speed="8.33" length="6.51" shape="1421.96,1108.25 1419.13,1102.38"/>
+ </edge>
+ <edge id="-24573939#2" from="441266874" to="267169715" priority="1" type="highway.pedestrian">
+ <lane id="-24573939#2_0" index="0" allow="pedestrian" speed="8.33" length="63.11" shape="1453.10,1173.80 1426.05,1116.79"/>
+ </edge>
+ <edge id="-24573947#0" from="2265767392" to="255227483" priority="5" type="highway.unclassified">
+ <lane id="-24573947#0_0" index="0" speed="22.22" length="4.53" shape="1439.79,913.65 1437.55,909.71"/>
+ </edge>
+ <edge id="-24573947#1" from="443101905" to="2265767392" priority="5" type="highway.unclassified">
+ <lane id="-24573947#1_0" index="0" speed="22.22" length="0.89" shape="1442.71,918.77 1442.27,918.00"/>
+ </edge>
+ <edge id="-24573947#2" from="267169634" to="443101905" priority="5" type="highway.unclassified">
+ <lane id="-24573947#2_0" index="0" speed="22.22" length="58.20" shape="1471.84,976.29 1445.68,924.31"/>
+ </edge>
+ <edge id="-24573947#3" from="267169714" to="267169634" priority="5" type="highway.unclassified">
+ <lane id="-24573947#3_0" index="0" speed="22.22" length="81.21" shape="1514.84,1059.23 1477.42,987.15"/>
+ </edge>
+ <edge id="-24573947#4" from="267169795" to="267169714" priority="5" type="highway.unclassified" shape="1576.94,1162.84 1557.82,1139.13 1518.53,1062.74">
+ <lane id="-24573947#4_0" index="0" speed="22.22" length="111.91" shape="1575.66,1163.88 1556.43,1140.04 1519.25,1067.75"/>
+ </edge>
+ <edge id="-34962531#0" from="950640371" to="410296508" priority="5" type="highway.unclassified">
+ <lane id="-34962531#0_0" index="0" speed="22.22" length="3.13" shape="671.87,1331.78 673.36,1334.54"/>
+ </edge>
+ <edge id="-34962531#1" from="446017738" to="950640371" priority="5" type="highway.unclassified">
+ <lane id="-34962531#1_0" index="0" speed="22.22" length="0.18" shape="670.23,1328.72 670.31,1328.87"/>
+ </edge>
+ <edge id="-37638470#0" from="1168929652" to="1168929308" priority="5" type="highway.unclassified">
+ <lane id="-37638470#0_0" index="0" speed="22.22" length="2.42" shape="771.98,985.32 774.37,984.96"/>
+ </edge>
+ <edge id="-37638470#1" from="1224080669" to="1168929652" priority="5" type="highway.unclassified" shape="521.64,1031.63 543.93,1027.58 765.18,988.02">
+ <lane id="-37638470#1_0" index="0" speed="22.22" length="238.10" shape="527.13,1028.96 543.64,1025.96 761.51,987.00"/>
+ </edge>
+ <edge id="-37638470#2" from="484282961" to="1224080669" priority="5" type="highway.unclassified">
+ <lane id="-37638470#2_0" index="0" speed="22.22" length="3.92" shape="513.64,1031.40 517.50,1030.71"/>
+ </edge>
+ <edge id="-37640549#0" from="267169714" to="441266865" priority="5" type="highway.unclassified">
+ <lane id="-37640549#0_0" index="0" speed="22.22" length="93.33" shape="1521.97,1058.98 1603.87,1014.24"/>
+ </edge>
+ <edge id="-37640549#1" from="267169715" to="267169714" priority="5" type="highway.unclassified">
+ <lane id="-37640549#1_0" index="0" speed="22.22" length="95.51" shape="1429.10,1108.18 1513.52,1063.52"/>
+ </edge>
+ <edge id="-37772597#0" from="2265767395" to="255227471" priority="5" type="highway.unclassified">
+ <lane id="-37772597#0_0" index="0" speed="22.22" length="5.46" shape="1345.91,966.49 1344.21,961.30"/>
+ </edge>
+ <edge id="-37772597#1" from="443101906" to="2265767395" priority="5" type="highway.unclassified">
+ <lane id="-37772597#1_0" index="0" speed="22.22" length="0.70" shape="1347.62,971.67 1347.40,971.01"/>
+ </edge>
+ <edge id="-37772597#2" from="267169690" to="443101906" priority="5" type="highway.unclassified">
+ <lane id="-37772597#2_0" index="0" speed="22.22" length="67.15" shape="1382.42,1036.52 1350.20,977.61"/>
+ </edge>
+ <edge id="-37973566" from="552842256" to="30406565" priority="6" type="highway.tertiary">
+ <lane id="-37973566_0" index="0" speed="22.22" length="195.87" shape="717.71,1663.63 690.32,1857.57"/>
+ </edge>
+ <edge id="-37973572#0" from="1780219353" to="438042367" priority="7" type="highway.secondary">
+ <lane id="-37973572#0_0" index="0" speed="27.78" length="0.52" shape="902.75,1202.35 903.20,1202.09"/>
+ <lane id="-37973572#0_1" index="1" speed="27.78" length="0.52" shape="904.39,1205.22 904.84,1204.96"/>
+ </edge>
+ <edge id="-37973572#1" from="30406599" to="1780219353" priority="7" type="highway.secondary">
+ <lane id="-37973572#1_0" index="0" speed="27.78" length="133.89" shape="778.24,1273.42 894.52,1207.05"/>
+ <lane id="-37973572#1_1" index="1" speed="27.78" length="133.89" shape="779.88,1276.29 896.16,1209.91"/>
+ </edge>
+ <edge id="-37973572#2" from="444026884" to="30406599" priority="7" type="highway.secondary">
+ <lane id="-37973572#2_0" index="0" speed="27.78" length="0.28" shape="760.15,1283.91 760.38,1283.77"/>
+ <lane id="-37973572#2_1" index="1" speed="27.78" length="0.28" shape="761.82,1286.75 762.06,1286.61"/>
+ </edge>
+ <edge id="-37973572#3" from="410296508" to="444026884" priority="7" type="highway.secondary">
+ <lane id="-37973572#3_0" index="0" speed="27.78" length="78.49" shape="676.10,1332.97 743.90,1293.42"/>
+ <lane id="-37973572#3_1" index="1" speed="27.78" length="78.49" shape="677.76,1335.82 745.56,1296.27"/>
+ </edge>
+ <edge id="-37973572#4" from="552842254" to="410296508" priority="7" type="highway.secondary" shape="452.00,1466.18 474.12,1453.45 534.54,1418.69 674.29,1339.75">
+ <lane id="-37973572#4_0" index="0" speed="27.78" length="243.15" shape="456.46,1457.90 471.65,1449.16 532.07,1414.40 667.84,1337.71"/>
+ <lane id="-37973572#4_1" index="1" speed="27.78" length="243.15" shape="458.11,1460.76 473.30,1452.02 533.72,1417.26 669.46,1340.58"/>
+ </edge>
+ <edge id="-37973572#5" from="356693794" to="552842254" priority="7" type="highway.secondary" shape="273.02,1566.65 377.57,1508.39 452.00,1466.18">
+ <lane id="-37973572#5_0" index="0" speed="27.78" length="203.14" shape="270.61,1562.32 375.16,1504.07 447.74,1462.90"/>
+ <lane id="-37973572#5_1" index="1" speed="27.78" length="203.14" shape="272.21,1565.21 376.76,1506.95 449.37,1465.77"/>
+ </edge>
+ <edge id="-38027102#0" from="477486717" to="446766148" priority="5" type="highway.unclassified" shape="504.35,1971.39 493.65,1977.56 477.57,1986.83 416.23,2022.19 353.73,2058.24 342.28,2064.84 326.97,2073.66 282.69,2099.19 231.01,2129.00 225.76,2132.02 217.58,2136.74 169.69,2164.36 120.25,2192.87 68.43,2222.75 58.25,2228.62">
+ <lane id="-38027102#0_0" index="0" speed="22.22" length="510.06" shape="500.94,1975.26 494.48,1978.99 478.39,1988.26 417.05,2023.62 354.56,2059.67 343.10,2066.27 327.79,2075.09 283.51,2100.62 231.84,2130.43 226.59,2133.45 218.41,2138.17 170.51,2165.79 121.08,2194.30 69.25,2224.18 59.07,2230.05"/>
+ </edge>
+ <edge id="-38027102#1" from="728492366" to="477486717" priority="5" type="highway.unclassified" shape="606.61,1912.43 601.56,1915.35 551.77,1944.04 513.18,1966.30 504.35,1971.39">
+ <lane id="-38027102#1_0" index="0" speed="22.22" length="107.25" shape="602.35,1916.80 552.60,1945.47 514.01,1967.73 509.43,1970.37"/>
+ </edge>
+ <edge id="-38027102#2" from="446766149" to="728492366" priority="5" type="highway.unclassified" shape="675.84,1872.51 611.61,1909.54 606.61,1912.43">
+ <lane id="-38027102#2_0" index="0" speed="22.22" length="67.96" shape="672.76,1876.19 613.88,1910.14"/>
+ </edge>
+ <edge id="-38027665#0" from="477486719" to="446770956" priority="5" type="highway.unclassified" shape="405.54,1816.27 302.24,1871.38 242.04,1905.02 186.61,1935.87 130.26,1966.62 5.12,2034.88 0.00,2037.67">
+ <lane id="-38027665#0_0" index="0" speed="22.22" length="456.97" shape="401.85,1820.11 303.02,1872.84 242.84,1906.46 187.42,1937.32 131.05,1968.07 5.91,2036.33 0.79,2039.12"/>
+ </edge>
+ <edge id="-38027665#1" from="728492372" to="477486719" priority="5" type="highway.unclassified" shape="623.00,1698.07 509.20,1757.58 405.54,1816.27">
+ <lane id="-38027665#1_0" index="0" speed="22.22" length="234.81" shape="616.90,1703.12 509.97,1759.04 410.64,1815.28"/>
+ </edge>
+ <edge id="-38027665#2" from="1232172714" to="728492372" priority="5" type="highway.unclassified" shape="661.41,1679.69 656.56,1678.98 623.00,1698.07">
+ <lane id="-38027665#2_0" index="0" speed="22.22" length="29.70" shape="656.55,1680.89 630.73,1695.58"/>
+ </edge>
+ <edge id="-38027665#3" from="446770959" to="1232172714" priority="5" type="highway.unclassified">
+ <lane id="-38027665#3_0" index="0" speed="22.22" length="28.31" shape="693.84,1686.09 665.83,1682.00"/>
+ </edge>
+ <edge id="-38318373#0" from="314636763" to="1373642446" priority="1" type="highway.cycleway" shape="1396.03,2172.61 1540.45,2451.07 1619.47,2601.21 1632.17,2615.09">
+ <lane id="-38318373#0_0" index="0" allow="bicycle" speed="5.56" length="496.98" shape="1399.67,2176.06 1541.92,2450.31 1620.83,2600.25 1633.39,2613.97"/>
+ </edge>
+ <edge id="-38318373#1" from="250685829" to="314636763" priority="1" type="highway.cycleway">
+ <lane id="-38318373#1_0" index="0" allow="bicycle" speed="5.56" length="1.93" shape="1393.97,2169.63 1395.67,2170.54"/>
+ </edge>
+ <edge id="-38319546#0" from="1257054074" to="1257054127" priority="1" type="highway.cycleway">
+ <lane id="-38319546#0_0" index="0" allow="bicycle" speed="5.56" length="0.25" shape="1363.36,1970.08 1363.47,1970.31"/>
+ </edge>
+ <edge id="-38319546#1" from="1257054205" to="1257054074" priority="1" type="highway.cycleway">
+ <lane id="-38319546#1_0" index="0" allow="bicycle" speed="5.56" length="2.29" shape="1358.90,1961.37 1359.97,1963.39"/>
+ </edge>
+ <edge id="-38319546#2" from="1257054172" to="1257054205" priority="1" type="highway.cycleway">
+ <lane id="-38319546#2_0" index="0" allow="bicycle" speed="5.56" length="6.34" shape="1354.98,1953.53 1357.77,1959.22"/>
+ </edge>
+ <edge id="-38319546#3" from="452425486" to="1257054172" priority="1" type="highway.cycleway">
+ <lane id="-38319546#3_0" index="0" allow="bicycle" speed="5.56" length="1.79" shape="1351.23,1946.34 1352.06,1947.93"/>
+ </edge>
+ <edge id="-38319546#4" from="1257054178" to="452425486" priority="1" type="highway.cycleway" shape="1343.04,1925.34 1347.29,1934.31 1346.02,1939.01 1349.06,1945.73">
+ <lane id="-38319546#4_0" index="0" allow="bicycle" speed="5.56" length="14.01" shape="1346.62,1929.03 1349.04,1934.15 1347.77,1938.87 1349.20,1942.03"/>
+ </edge>
+ <edge id="-38319546#5" from="452425487" to="1257054178" priority="1" type="highway.cycleway">
+ <lane id="-38319546#5_0" index="0" allow="bicycle" speed="5.56" length="50.00" shape="1319.61,1875.85 1342.36,1920.38"/>
+ </edge>
+ <edge id="-38319546#6" from="452425488" to="452425487" priority="1" type="highway.cycleway">
+ <lane id="-38319546#6_0" index="0" allow="bicycle" speed="5.56" length="71.00" shape="1282.69,1804.19 1315.22,1867.30"/>
+ </edge>
+ <edge id="-38319546#7" from="733663096" to="452425488" priority="1" type="highway.cycleway">
+ <lane id="-38319546#7_0" index="0" allow="bicycle" speed="5.56" length="44.26" shape="1257.59,1756.60 1278.27,1795.73"/>
+ </edge>
+ <edge id="-38319546#8" from="452425489" to="733663096" priority="1" type="highway.cycleway">
+ <lane id="-38319546#8_0" index="0" allow="bicycle" speed="5.56" length="7.02" shape="1249.00,1738.22 1251.88,1744.63"/>
+ </edge>
+ <edge id="-38319547" from="452425490" to="452425489" priority="1" type="highway.cycleway">
+ <lane id="-38319547_0" index="0" allow="bicycle" speed="5.56" length="31.97" shape="1258.30,1706.54 1248.93,1737.10"/>
+ </edge>
+ <edge id="-38319548#0" from="452425491" to="452425490" priority="1" type="highway.cycleway">
+ <lane id="-38319548#0_0" index="0" allow="bicycle" speed="5.56" length="32.02" shape="1289.95,1689.79 1261.78,1705.02"/>
+ </edge>
+ <edge id="-38319548#1" from="452425493" to="452425491" priority="1" type="highway.cycleway">
+ <lane id="-38319548#1_0" index="0" allow="bicycle" speed="5.56" length="75.63" shape="1361.92,1650.57 1295.51,1686.77"/>
+ </edge>
+ <edge id="-38319548#10" from="1669480279" to="1669480280" priority="1" type="highway.cycleway" shape="1456.23,1559.65 1460.35,1558.69 1469.16,1575.47">
+ <lane id="-38319548#10_0" index="0" allow="bicycle" speed="5.56" length="18.78" shape="1458.00,1557.54 1461.22,1556.80 1468.41,1570.49"/>
+ </edge>
+ <edge id="-38319548#11" from="1168929659" to="1669480279" priority="1" type="highway.cycleway" shape="1192.17,1077.69 1196.81,1084.49 1452.33,1560.55 1456.23,1559.65">
+ <lane id="-38319548#11_0" index="0" allow="bicycle" speed="5.56" length="544.70" shape="1195.54,1079.71 1198.17,1083.56 1453.18,1558.66 1454.00,1558.47"/>
+ </edge>
+ <edge id="-38319548#12" from="951739684" to="1168929659" priority="1" type="highway.cycleway">
+ <lane id="-38319548#12_0" index="0" allow="bicycle" speed="5.56" length="14.86" shape="1183.33,1062.41 1191.94,1074.52"/>
+ </edge>
+ <edge id="-38319548#13" from="951739649" to="951739684" priority="1" type="highway.cycleway">
+ <lane id="-38319548#13_0" index="0" allow="bicycle" speed="5.56" length="11.21" shape="1174.59,1047.13 1179.93,1056.99"/>
+ </edge>
+ <edge id="-38319548#14" from="1168929546" to="951739649" priority="1" type="highway.cycleway">
+ <lane id="-38319548#14_0" index="0" allow="bicycle" speed="5.56" length="12.09" shape="1165.88,1030.82 1171.57,1041.50"/>
+ </edge>
+ <edge id="-38319548#15" from="2081499948" to="1168929546" priority="1" type="highway.cycleway">
+ <lane id="-38319548#15_0" index="0" allow="bicycle" speed="5.56" length="7.89" shape="1159.24,1018.14 1162.88,1025.14"/>
+ </edge>
+ <edge id="-38319548#16" from="1780381201" to="2081499948" priority="1" type="highway.cycleway" shape="781.87,286.40 794.70,308.53 802.31,326.56 814.44,346.36 822.77,361.38 837.59,390.48 845.42,406.05 848.91,424.48 1155.52,1014.57">
+ <lane id="-38319548#16_0" index="0" allow="bicycle" speed="5.56" length="814.68" shape="783.30,285.57 796.13,307.70 803.83,325.92 815.84,345.50 824.21,360.58 839.06,389.73 847.00,405.52 850.49,423.94 1154.79,1009.57"/>
+ </edge>
+ <edge id="-38319548#2" from="1669480287" to="452425493" priority="1" type="highway.cycleway">
+ <lane id="-38319548#2_0" index="0" allow="bicycle" speed="5.56" length="73.95" shape="1433.10,1613.64 1367.43,1647.64"/>
+ </edge>
+ <edge id="-38319548#3" from="1669480286" to="1669480287" priority="1" type="highway.cycleway">
+ <lane id="-38319548#3_0" index="0" allow="bicycle" speed="5.56" length="7.14" shape="1445.29,1607.34 1438.94,1610.62"/>
+ </edge>
+ <edge id="-38319548#4" from="1726394727" to="1669480286" priority="1" type="highway.cycleway">
+ <lane id="-38319548#4_0" index="0" allow="bicycle" speed="5.56" length="0.53" shape="1453.77,1602.95 1453.30,1603.19"/>
+ </edge>
+ <edge id="-38319548#5" from="1669480284" to="1726394727" priority="1" type="highway.cycleway">
+ <lane id="-38319548#5_0" index="0" allow="bicycle" speed="5.56" length="4.53" shape="1459.98,1599.74 1455.96,1601.82"/>
+ </edge>
+ <edge id="-38319548#6" from="452425497" to="1669480284" priority="1" type="highway.cycleway">
+ <lane id="-38319548#6_0" index="0" allow="bicycle" speed="5.56" length="1.38" shape="1465.69,1596.78 1464.46,1597.42"/>
+ </edge>
+ <edge id="-38319548#7" from="1669480283" to="452425497" priority="1" type="highway.cycleway">
+ <lane id="-38319548#7_0" index="0" allow="bicycle" speed="5.56" length="3.11" shape="1473.62,1592.65 1470.87,1594.09"/>
+ </edge>
+ <edge id="-38319548#8" from="1168929661" to="1669480283" priority="1" type="highway.cycleway" shape="1473.76,1584.23 1476.43,1589.31 1472.85,1591.19">
+ <lane id="-38319548#8_0" index="0" allow="bicycle" speed="5.56" length="6.10" shape="1477.21,1587.26 1478.65,1590.00 1475.99,1591.40"/>
+ </edge>
+ <edge id="-38319548#9" from="1669480280" to="1168929661" priority="1" type="highway.cycleway">
+ <lane id="-38319548#9_0" index="0" allow="bicycle" speed="5.56" length="0.43" shape="1472.83,1578.91 1473.03,1579.29"/>
+ </edge>
+ <edge id="-38319549#0" from="1719213141" to="452425490" priority="1" type="highway.cycleway">
+ <lane id="-38319549#0_0" index="0" allow="bicycle" speed="5.56" length="2.32" shape="1254.94,1698.79 1256.02,1700.84"/>
+ </edge>
+ <edge id="-38319549#1" from="1719213140" to="1719213141" priority="1" type="highway.cycleway">
+ <lane id="-38319549#1_0" index="0" allow="bicycle" speed="5.56" length="9.34" shape="1247.70,1685.01 1252.04,1693.27"/>
+ </edge>
+ <edge id="-38319549#2" from="452425499" to="1719213140" priority="1" type="highway.cycleway" shape="1206.87,1665.88 1239.65,1673.53 1244.80,1683.03">
+ <lane id="-38319549#2_0" index="0" allow="bicycle" speed="5.56" length="41.25" shape="1208.75,1664.62 1240.74,1672.10 1244.74,1679.47"/>
+ </edge>
+ <edge id="-38319550#0" from="452425500" to="452425499" priority="1" type="highway.cycleway">
+ <lane id="-38319550#0_0" index="0" allow="bicycle" speed="5.56" length="65.03" shape="1179.13,1605.33 1207.68,1663.76"/>
+ </edge>
+ <edge id="-38319550#1" from="452425501" to="452425500" priority="1" type="highway.cycleway">
+ <lane id="-38319550#1_0" index="0" allow="bicycle" speed="5.56" length="6.85" shape="1173.02,1593.60 1176.24,1599.65"/>
+ </edge>
+ <edge id="-38319550#10" from="1780219371" to="719463795" priority="1" type="highway.cycleway">
+ <lane id="-38319550#10_0" index="0" allow="bicycle" speed="5.56" length="111.17" shape="856.08,1006.41 907.25,1105.10"/>
+ </edge>
+ <edge id="-38319550#11" from="1719213509" to="1780219371" priority="1" type="highway.cycleway" shape="840.35,971.51 843.32,976.39 845.12,983.10 845.76,990.08 852.00,1002.12">
+ <lane id="-38319550#11_0" index="0" allow="bicycle" speed="5.56" length="26.09" shape="843.44,973.41 844.85,975.74 846.72,982.67 847.37,989.60 851.62,997.79"/>
+ </edge>
+ <edge id="-38319550#12" from="1719213668" to="1719213509" priority="1" type="highway.cycleway" shape="789.27,881.21 830.05,959.77 834.19,963.07 838.03,967.15 840.35,971.51">
+ <lane id="-38319550#12_0" index="0" allow="bicycle" speed="5.56" length="97.70" shape="792.21,883.29 831.35,958.70 835.22,961.78 839.39,966.18 840.20,967.71"/>
+ </edge>
+ <edge id="-38319550#13" from="719464017" to="1719213668" priority="1" type="highway.cycleway" shape="652.35,318.90 640.93,380.90 633.99,420.60 629.59,461.09 631.56,539.77 652.67,658.18 660.80,654.60 672.27,647.45 681.96,641.40 686.64,638.49 691.89,648.12 692.98,650.11 689.20,660.83 688.67,677.73 692.38,700.17 725.19,766.66 728.49,766.77 732.62,772.05 789.27,881.21">
+ <lane id="-38319550#13_0" index="0" allow="bicycle" speed="5.56" length="649.08" shape="653.98,319.17 642.56,381.20 635.61,420.88 631.24,461.27 633.21,539.73 653.93,655.82 660.13,653.09 671.40,646.05 681.09,640.00 687.25,636.17 693.34,647.33 694.78,649.97 690.85,661.14 690.32,677.62 693.97,699.66 726.23,765.05 729.31,765.15 734.02,771.15 789.26,877.60"/>
+ </edge>
+ <edge id="-38319550#14" from="650318340" to="719464017" priority="1" type="highway.cycleway">
+ <lane id="-38319550#14_0" index="0" allow="bicycle" speed="5.56" length="11.45" shape="655.77,307.86 653.98,319.17"/>
+ </edge>
+ <edge id="-38319550#2" from="1780219365" to="452425501" priority="1" type="highway.cycleway" shape="959.00,1208.51 960.03,1210.51 961.74,1211.99 964.06,1212.25 969.63,1209.47 971.66,1209.51 973.33,1210.62 1024.09,1306.64 1170.08,1591.58">
+ <lane id="-38319550#2_0" index="0" allow="bicycle" speed="5.56" length="438.98" shape="962.83,1210.45 963.76,1210.56 969.26,1207.81 972.17,1207.88 974.59,1209.48 1025.54,1305.87 1170.12,1588.03"/>
+ </edge>
+ <edge id="-38319550#3" from="452425502" to="1780219365" priority="1" type="highway.cycleway">
+ <lane id="-38319550#3_0" index="0" allow="bicycle" speed="5.56" length="3.30" shape="956.86,1200.81 958.38,1203.74"/>
+ </edge>
+ <edge id="-38319550#4" from="950640531" to="452425502" priority="1" type="highway.cycleway">
+ <lane id="-38319550#4_0" index="0" allow="bicycle" speed="5.56" length="2.36" shape="952.81,1193.01 953.90,1195.10"/>
+ </edge>
+ <edge id="-38319550#5" from="767282288" to="950640531" priority="1" type="highway.cycleway">
+ <lane id="-38319550#5_0" index="0" allow="bicycle" speed="5.56" length="2.95" shape="949.85,1187.30 951.21,1189.93"/>
+ </edge>
+ <edge id="-38319550#6" from="950640351" to="767282288" priority="1" type="highway.cycleway">
+ <lane id="-38319550#6_0" index="0" allow="bicycle" speed="5.56" length="2.99" shape="943.68,1175.39 945.06,1178.04"/>
+ </edge>
+ <edge id="-38319550#7" from="719463587" to="950640351" priority="1" type="highway.cycleway">
+ <lane id="-38319550#7_0" index="0" allow="bicycle" speed="5.56" length="0.12" shape="941.99,1172.12 942.04,1172.22"/>
+ </edge>
+ <edge id="-38319550#8" from="1780219332" to="719463587" priority="1" type="highway.cycleway">
+ <lane id="-38319550#8_0" index="0" allow="bicycle" speed="5.56" length="1.89" shape="938.16,1164.73 939.03,1166.41"/>
+ </edge>
+ <edge id="-38319550#9" from="719463795" to="1780219332" priority="1" type="highway.cycleway">
+ <lane id="-38319550#9_0" index="0" allow="bicycle" speed="5.56" length="51.20" shape="910.23,1110.84 933.79,1156.29"/>
+ </edge>
+ <edge id="-40196944#0" from="484282955" to="484282948" priority="5" type="highway.unclassified">
+ <lane id="-40196944#0_0" index="0" speed="22.22" length="86.23" shape="661.51,933.80 576.52,948.34"/>
+ </edge>
+ <edge id="-40196944#1" from="538265864" to="484282955" priority="5" type="highway.unclassified">
+ <lane id="-40196944#1_0" index="0" speed="22.22" length="71.30" shape="737.89,919.19 667.87,932.66"/>
+ </edge>
+ <edge id="-43684741#0" from="561204538" to="552842256" priority="5" type="highway.unclassified">
+ <lane id="-43684741#0_0" index="0" speed="22.22" length="2.92" shape="706.51,1649.06 708.87,1650.79"/>
+ </edge>
+ <edge id="-43684741#1" from="1232172723" to="561204538" priority="5" type="highway.unclassified">
+ <lane id="-43684741#1_0" index="0" speed="22.22" length="32.77" shape="675.42,1626.58 701.98,1645.77"/>
+ </edge>
+ <edge id="-43684741#2" from="1726380204" to="1232172723" priority="5" type="highway.unclassified">
+ <lane id="-43684741#2_0" index="0" speed="22.22" length="21.33" shape="649.72,1608.01 667.00,1620.50"/>
+ </edge>
+ <edge id="-43684741#3" from="552842255" to="1726380204" priority="5" type="highway.unclassified" shape="465.58,1476.04 577.63,1557.95 582.08,1561.17 648.77,1609.36">
+ <lane id="-43684741#3_0" index="0" speed="22.22" length="213.67" shape="470.36,1477.49 578.60,1556.62 583.05,1559.83 643.11,1603.23"/>
+ </edge>
+ <edge id="-43684741#4" from="950640393" to="552842255" priority="5" type="highway.unclassified">
+ <lane id="-43684741#4_0" index="0" speed="22.22" length="1.34" shape="462.74,1471.94 463.83,1472.73"/>
+ </edge>
+ <edge id="-43684741#5" from="552842254" to="950640393" priority="5" type="highway.unclassified">
+ <lane id="-43684741#5_0" index="0" speed="22.22" length="8.70" shape="452.97,1464.84 460.01,1469.95"/>
+ </edge>
+ <edge id="-44104491#0" from="560472377" to="956116503" priority="5" type="highway.unclassified">
+ <lane id="-44104491#0_0" index="0" speed="22.22" length="143.51" shape="827.73,1977.53 759.75,1851.15"/>
+ </edge>
+ <edge id="-44104491#1" from="560472378" to="560472377" priority="5" type="highway.unclassified">
+ <lane id="-44104491#1_0" index="0" speed="22.22" length="11.88" shape="835.86,1993.73 830.60,1983.09"/>
+ </edge>
+ <edge id="-58779718#0" from="728492360" to="728492341" priority="5" type="highway.unclassified" shape="613.04,1774.73 523.68,1822.29 440.65,1871.28">
+ <lane id="-58779718#0_0" index="0" speed="22.22" length="185.48" shape="607.45,1779.58 524.46,1823.75 445.68,1870.22"/>
+ </edge>
+ <edge id="-58779718#1" from="728492364" to="728492360" priority="5" type="highway.unclassified">
+ <lane id="-58779718#1_0" index="0" speed="22.22" length="62.11" shape="679.14,1787.27 617.85,1777.20"/>
+ </edge>
+ <edge id="-58779719#0" from="728492361" to="728492348" priority="5" type="highway.unclassified">
+ <lane id="-58779719#0_0" index="0" speed="22.22" length="75.93" shape="604.29,1845.96 538.49,1883.87"/>
+ </edge>
+ <edge id="-58779719#1" from="728492371" to="728492361" priority="5" type="highway.unclassified">
+ <lane id="-58779719#1_0" index="0" speed="22.22" length="55.92" shape="670.08,1850.89 614.69,1843.16"/>
+ </edge>
+ <edge id="-59159260#0" from="733663093" to="733663131" priority="4" type="highway.residential">
+ <lane id="-59159260#0_0" index="0" speed="13.89" length="74.68" shape="1371.99,1656.45 1437.99,1621.50"/>
+ </edge>
+ <edge id="-59159260#1" from="733663121" to="733663093" priority="4" type="highway.residential">
+ <lane id="-59159260#1_0" index="0" speed="13.89" length="75.73" shape="1299.26,1694.23 1366.48,1659.34"/>
+ </edge>
+ <edge id="-59159260#2" from="733663096" to="733663121" priority="4" type="highway.residential" shape="1253.88,1753.13 1258.93,1742.39 1266.82,1714.10 1297.27,1697.13">
+ <lane id="-59159260#2_0" index="0" speed="13.89" length="65.42" shape="1256.04,1744.66 1257.43,1741.69 1265.41,1712.99 1293.67,1697.24"/>
+ </edge>
+ <edge id="-59159260#3" from="733663089" to="733663096" priority="4" type="highway.residential">
+ <lane id="-59159260#3_0" index="0" speed="13.89" length="9.92" shape="1240.18,1758.75 1248.88,1753.99"/>
+ </edge>
+ <edge id="-59159262#0" from="1457695393" to="446766149" priority="5" type="highway.unclassified">
+ <lane id="-59159262#0_0" index="0" speed="22.22" length="5.88" shape="685.29,1874.06 679.41,1874.12"/>
+ </edge>
+ <edge id="-59159262#1" from="733663082" to="1457695393" priority="5" type="highway.unclassified">
+ <lane id="-59159262#1_0" index="0" speed="22.22" length="6.84" shape="702.52,1874.29 695.68,1874.13"/>
+ </edge>
+ <edge id="-59159262#2" from="956116503" to="733663082" priority="5" type="highway.unclassified">
+ <lane id="-59159262#2_0" index="0" speed="22.22" length="50.11" shape="755.50,1849.71 710.79,1872.33"/>
+ </edge>
+ <edge id="-59159262#3" from="1482088987" to="956116503" priority="5" type="highway.unclassified">
+ <lane id="-59159262#3_0" index="0" speed="22.22" length="4.53" shape="763.70,1845.53 759.67,1847.59"/>
+ </edge>
+ <edge id="-59159262#4" from="733663136" to="1482088987" priority="5" type="highway.unclassified">
+ <lane id="-59159262#4_0" index="0" speed="22.22" length="144.23" shape="896.28,1777.58 767.93,1843.36"/>
+ </edge>
+ <edge id="-69931595#0" from="733663136" to="445506216" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-69931595#0_0" index="0" speed="27.78" length="158.51" shape="903.41,1777.36 976.87,1917.82"/>
+ </edge>
+ <edge id="-69931595#1" from="2017759588" to="733663136" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-69931595#1_0" index="0" speed="27.78" length="44.80" shape="878.46,1729.15 899.04,1768.95"/>
+ </edge>
+ <edge id="-69931595#2" from="733663116" to="2017759588" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-69931595#2_0" index="0" speed="27.78" length="27.46" shape="861.39,1696.15 874.01,1720.53"/>
+ </edge>
+ <edge id="-69931595#3" from="733663076" to="733663116" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="-69931595#3_0" index="0" speed="27.78" length="17.63" shape="850.45,1674.98 858.54,1690.64"/>
+ </edge>
+ <edge id="-81096822#0" from="1669480292" to="452425497" priority="1" type="highway.cycleway">
+ <lane id="-81096822#0_0" index="0" allow="bicycle" speed="5.56" length="247.17" shape="1584.40,1817.14 1469.87,1598.11"/>
+ </edge>
+ <edge id="-81096822#1" from="543360161" to="1669480292" priority="1" type="highway.cycleway" shape="1596.40,1836.52 1595.43,1834.67 1592.52,1829.10 1590.94,1826.09 1587.31,1819.14">
+ <lane id="-81096822#1_0" index="0" allow="bicycle" speed="5.56" length="13.40" shape="1593.50,1834.54 1591.06,1829.86 1589.48,1826.86 1587.29,1822.66"/>
+ </edge>
+ <edge id="-81096822#2" from="1268463825" to="543360161" priority="1" type="highway.cycleway" shape="1676.03,1992.80 1602.73,1848.68 1596.40,1836.52">
+ <lane id="-81096822#2_0" index="0" allow="bicycle" speed="5.56" length="172.23" shape="1674.55,1993.55 1601.26,1849.42 1596.39,1840.08"/>
+ </edge>
+ <edge id="-81096844#0" from="248913142" to="443089061" priority="4" type="highway.residential">
+ <lane id="-81096844#0_0" index="0" speed="13.89" length="76.05" shape="1446.56,1800.61 1513.62,1764.75"/>
+ </edge>
+ <edge id="-81096844#1" from="248913144" to="248913142" priority="4" type="highway.residential">
+ <lane id="-81096844#1_0" index="0" speed="13.89" length="75.53" shape="1374.40,1839.19 1441.01,1803.58"/>
+ </edge>
+ <edge id="-81096844#2" from="452425487" to="248913144" priority="4" type="highway.residential">
+ <lane id="-81096844#2_0" index="0" speed="13.89" length="56.08" shape="1319.41,1868.60 1368.86,1842.16"/>
+ </edge>
+ <edge id="-81096844#3" from="248913145" to="452425487" priority="4" type="highway.residential">
+ <lane id="-81096844#3_0" index="0" speed="13.89" length="9.42" shape="1302.63,1877.58 1310.93,1873.13"/>
+ </edge>
+ <edge id="-81394200#0" from="948350597" to="948350565" priority="15" type="highway.tertiary|railway.tram" shape="735.50,2295.41 735.25,2298.36 734.35,2303.49 733.19,2322.32">
+ <lane id="-81394200#0_0" index="0" speed="27.78" length="19.65" shape="736.14,2302.82 735.97,2303.78 734.83,2322.42"/>
+ </edge>
+ <edge id="-81394200#1" from="948350640" to="948350597" priority="15" type="highway.tertiary|railway.tram" shape="744.96,2278.54 740.54,2284.12 738.24,2288.29 735.50,2295.41">
+ <lane id="-81394200#1_0" index="0" speed="27.78" length="1.38" shape="740.56,2287.47 739.90,2288.68"/>
+ </edge>
+ <edge id="-81394200#2" from="948350707" to="948350640" priority="15" type="highway.tertiary|railway.tram">
+ <lane id="-81394200#2_0" index="0" speed="27.78" length="0.28" shape="748.65,2277.89 748.42,2278.06"/>
+ </edge>
+ <edge id="-81523330#0" from="1252777720" to="948350630" priority="15" type="highway.primary|railway.tram">
+ <lane id="-81523330#0_0" index="0" speed="27.78" length="1.53" shape="777.83,2264.26 776.47,2264.97"/>
+ <lane id="-81523330#0_1" index="1" speed="27.78" length="1.53" shape="776.28,2261.34 774.93,2262.06"/>
+ </edge>
+ <edge id="-81523330#1" from="950094425" to="1252777720" priority="15" type="highway.primary|railway.tram" shape="1073.15,2102.39 801.79,2245.97 776.84,2259.18">
+ <lane id="-81523330#1_0" index="0" speed="27.78" length="328.65" shape="1070.97,2109.14 804.11,2250.35 780.48,2262.85"/>
+ <lane id="-81523330#1_1" index="1" speed="27.78" length="328.65" shape="1069.43,2106.22 802.56,2247.43 778.94,2259.94"/>
+ </edge>
+ <edge id="-81523330#2" from="1263725264" to="950094425" priority="15" type="highway.primary|railway.tram">
+ <lane id="-81523330#2_0" index="0" speed="27.78" length="1.69" shape="1076.88,2106.05 1075.37,2106.81"/>
+ <lane id="-81523330#2_1" index="1" speed="27.78" length="1.69" shape="1075.41,2103.10 1073.89,2103.86"/>
+ </edge>
+ <edge id="-81523330#3" from="1243159116" to="1263725264" priority="15" type="highway.primary|railway.tram">
+ <lane id="-81523330#3_0" index="0" speed="27.78" length="3.33" shape="1083.48,2102.56 1080.54,2104.12"/>
+ <lane id="-81523330#3_1" index="1" speed="27.78" length="3.33" shape="1081.94,2099.64 1079.00,2101.20"/>
+ </edge>
+ <edge id="-81523330#4" from="950094494" to="1243159116" priority="15" type="highway.primary|railway.tram" shape="1294.72,1985.59 1273.52,1996.44 1111.32,2082.24 1082.77,2097.34">
+ <lane id="-81523330#4_0" index="0" speed="27.78" length="237.79" shape="1294.06,1991.49 1275.78,2000.85 1113.64,2086.62 1083.76,2102.41"/>
+ <lane id="-81523330#4_1" index="1" speed="27.78" length="237.79" shape="1292.56,1988.55 1274.27,1997.91 1112.09,2083.70 1082.21,2099.50"/>
+ </edge>
+ <edge id="-81672209" from="1457699222" to="951739458" priority="2" type="highway.service">
+ <lane id="-81672209_0" index="0" allow="delivery" speed="5.56" length="51.26" shape="896.46,1303.00 850.97,1326.64"/>
+ </edge>
+ <edge id="-81672213" from="951739568" to="951739420" priority="2" type="highway.service">
+ <lane id="-81672213_0" index="0" allow="delivery" speed="5.56" length="45.55" shape="882.76,1289.49 842.74,1311.25"/>
+ </edge>
+ <edge id="-81672214" from="951739549" to="951739766" priority="2" type="highway.service">
+ <lane id="-81672214_0" index="0" allow="delivery" speed="5.56" length="39.70" shape="869.86,1277.79 835.00,1296.79"/>
+ </edge>
+ <edge id="-81672216#0" from="1457699220" to="951739693" priority="2" type="highway.service" shape="823.20,1284.88 821.49,1281.69 820.39,1279.62 818.06,1275.29">
+ <lane id="-81672216#0_0" index="0" allow="delivery" speed="5.56" length="2.91" shape="819.48,1281.43 818.93,1280.39 818.11,1278.86"/>
+ </edge>
+ <edge id="-81672216#1" from="951739766" to="1457699220" priority="2" type="highway.service">
+ <lane id="-81672216#1_0" index="0" allow="delivery" speed="5.56" length="4.98" shape="826.31,1294.19 823.96,1289.81"/>
+ </edge>
+ <edge id="-81672216#2" from="951739420" to="951739766" priority="2" type="highway.service">
+ <lane id="-81672216#2_0" index="0" allow="delivery" speed="5.56" length="6.90" shape="834.06,1308.65 830.80,1302.57"/>
+ </edge>
+ <edge id="-81672216#3" from="951739458" to="951739420" priority="2" type="highway.service">
+ <lane id="-81672216#3_0" index="0" allow="delivery" speed="5.56" length="7.93" shape="842.29,1324.01 838.54,1317.02"/>
+ </edge>
+ <edge id="-81672216#4" from="951739511" to="951739458" priority="2" type="highway.service">
+ <lane id="-81672216#4_0" index="0" allow="delivery" speed="5.56" length="7.35" shape="850.24,1338.87 846.77,1332.39"/>
+ </edge>
+ <edge id="-81672216#5" from="1457699223" to="951739511" priority="2" type="highway.service" shape="907.70,1314.17 915.18,1328.32 861.87,1357.10 853.92,1342.24">
+ <lane id="-81672216#5_0" index="0" allow="delivery" speed="5.56" length="90.50" shape="911.37,1317.58 917.40,1328.99 861.19,1359.34 854.72,1347.24"/>
+ </edge>
+ <edge id="-81672216#6" from="1457699222" to="1457699223" priority="2" type="highway.service">
+ <lane id="-81672216#6_0" index="0" allow="delivery" speed="5.56" length="7.25" shape="903.66,1302.77 906.99,1309.21"/>
+ </edge>
+ <edge id="-81672216#7" from="951739568" to="1457699222" priority="2" type="highway.service" shape="887.31,1285.14 896.33,1292.74 900.01,1299.30">
+ <lane id="-81672216#7_0" index="0" allow="delivery" speed="5.56" length="11.35" shape="891.21,1286.27 897.63,1291.67 899.08,1294.26"/>
+ </edge>
+ <edge id="-81672216#8" from="951739549" to="951739568" priority="2" type="highway.service">
+ <lane id="-81672216#8_0" index="0" allow="delivery" speed="5.56" length="7.53" shape="878.37,1274.77 883.93,1279.84"/>
+ </edge>
+ <edge id="-81672216#9" from="1457699220" to="951739549" priority="2" type="highway.service" shape="823.20,1284.88 862.74,1262.97 874.43,1273.42">
+ <lane id="-81672216#9_0" index="0" allow="delivery" speed="5.56" length="52.33" shape="826.60,1281.11 862.97,1260.96 870.98,1268.12"/>
+ </edge>
+ <edge id="-81672218" from="1457699223" to="951739511" priority="2" type="highway.service">
+ <lane id="-81672218_0" index="0" allow="delivery" speed="5.56" length="51.14" shape="904.26,1317.83 858.92,1341.49"/>
+ </edge>
+ <edge id="-83038920" from="966097830" to="966097837" priority="2" type="highway.service" shape="828.22,1459.05 887.22,1579.00 874.94,1585.38 813.60,1466.57">
+ <lane id="-83038920_0" index="0" allow="delivery" speed="5.56" length="279.71" shape="831.16,1461.29 889.41,1579.72 874.23,1587.61 814.31,1471.55"/>
+ </edge>
+ <edge id="-83038923#0" from="966097837" to="966097869" priority="2" type="highway.service" shape="813.60,1466.57 799.68,1469.66 791.14,1469.22 771.08,1461.26 758.84,1458.25 746.66,1456.35">
+ <lane id="-83038923#0_0" index="0" allow="delivery" speed="5.56" length="61.17" shape="810.05,1469.05 799.82,1471.32 790.78,1470.85 770.47,1462.79 758.45,1459.86 751.13,1458.72"/>
+ </edge>
+ <edge id="-83038923#1" from="966097830" to="966097837" priority="2" type="highway.service">
+ <lane id="-83038923#1_0" index="0" allow="delivery" speed="5.56" length="8.37" shape="826.03,1462.03 818.58,1465.86"/>
+ </edge>
+ <edge id="-83051417" from="966193808" to="966193812" priority="1" type="highway.pedestrian" shape="1303.82,1087.19 1319.30,1110.02 1354.64,1143.84 1382.82,1159.31">
+ <lane id="-83051417_0" index="0" allow="pedestrian" speed="8.33" length="98.05" shape="1308.00,1090.41 1320.56,1108.95 1355.62,1142.50 1379.41,1155.56"/>
+ </edge>
+ <edge id="-83051420" from="966193796" to="966193808" priority="5" type="highway.unclassified">
+ <lane id="-83051420_0" index="0" speed="22.22" length="68.02" shape="1272.52,1021.28 1303.08,1082.05"/>
+ </edge>
+ <edge id="-83051421#0" from="267169686" to="267169634" priority="1" type="highway.pedestrian">
+ <lane id="-83051421#0_0" index="0" allow="pedestrian" speed="8.33" length="107.26" shape="1419.10,1087.04 1467.44,991.29"/>
+ </edge>
+ <edge id="-83051421#1" from="966193812" to="267169686" priority="1" type="highway.pedestrian">
+ <lane id="-83051421#1_0" index="0" allow="pedestrian" speed="8.33" length="60.60" shape="1383.61,1154.30 1412.00,1100.76"/>
+ </edge>
+ <edge id="-83051421#2" from="250689186" to="966193812" priority="1" type="highway.pedestrian">
+ <lane id="-83051421#2_0" index="0" allow="pedestrian" speed="8.33" length="63.44" shape="1349.44,1218.74 1379.16,1162.69"/>
+ </edge>
+ <edge id="-83051424" from="966193793" to="966193814" priority="1" type="highway.pedestrian">
+ <lane id="-83051424_0" index="0" allow="pedestrian" speed="8.33" length="13.70" shape="1420.19,1295.04 1420.18,1308.73"/>
+ </edge>
+ <edge id="-83051426" from="250689131" to="733663071" priority="1" type="highway.pedestrian">
+ <lane id="-83051426_0" index="0" allow="pedestrian" speed="8.33" length="71.54" shape="1387.20,1262.26 1450.03,1228.05"/>
+ </edge>
+ <edge id="-83051436#0" from="267169690" to="966193808" priority="1" type="highway.pedestrian">
+ <lane id="-83051436#0_0" index="0" allow="pedestrian" speed="8.33" length="85.17" shape="1383.00,1043.98 1308.99,1086.14"/>
+ </edge>
+ <edge id="-83051436#1" from="267169634" to="267169690" priority="1" type="highway.pedestrian">
+ <lane id="-83051436#1_0" index="0" allow="pedestrian" speed="8.33" length="88.52" shape="1464.54,988.75 1391.44,1038.68"/>
+ </edge>
+ <edge id="-83051442#0" from="733663078" to="733663071" priority="1" type="highway.pedestrian" shape="1440.94,1200.45 1445.69,1217.27 1456.20,1226.57">
+ <lane id="-83051442#0_0" index="0" allow="pedestrian" speed="8.33" length="18.80" shape="1444.05,1205.39 1447.15,1216.35 1452.70,1221.27"/>
+ </edge>
+ <edge id="-83051442#1" from="441266874" to="733663078" priority="1" type="highway.pedestrian" shape="1456.29,1176.65 1445.67,1186.05 1440.94,1200.45">
+ <lane id="-83051442#1_0" index="0" allow="pedestrian" speed="8.33" length="21.72" shape="1454.43,1180.50 1447.10,1186.99 1443.38,1198.33"/>
+ </edge>
+ <edge id="-83051442#2" from="733663071" to="441266874" priority="1" type="highway.pedestrian" shape="1456.20,1226.57 1471.45,1229.56 1483.49,1225.68 1493.98,1214.58 1497.01,1204.51 1494.97,1190.78 1486.47,1179.63 1473.69,1173.99 1456.29,1176.65">
+ <lane id="-83051442#2_0" index="0" allow="pedestrian" speed="8.33" length="100.98" shape="1459.14,1225.47 1471.35,1227.86 1482.58,1224.24 1492.51,1213.73 1495.32,1204.38 1493.40,1191.45 1485.41,1180.97 1473.47,1175.69 1460.41,1177.69"/>
+ </edge>
+ <edge id="-83051455" from="441266870" to="733663078" priority="1" type="highway.pedestrian">
+ <lane id="-83051455_0" index="0" allow="pedestrian" speed="8.33" length="70.00" shape="1374.01,1235.64 1435.24,1201.72"/>
+ </edge>
+ <edge id="-83051480#0" from="966193793" to="257907508" priority="1" type="highway.pedestrian" shape="1418.55,1290.24 1478.82,1291.11 1601.46,1287.40">
+ <lane id="-83051480#0_0" index="0" allow="pedestrian" speed="8.33" length="178.10" shape="1423.37,1288.66 1478.85,1289.46 1601.41,1285.75"/>
+ </edge>
+ <edge id="-83051480#1" from="250689201" to="966193793" priority="1" type="highway.pedestrian">
+ <lane id="-83051480#1_0" index="0" allow="pedestrian" speed="8.33" length="24.69" shape="1389.17,1288.17 1413.87,1288.52"/>
+ </edge>
+ <edge id="-83051483" from="966193814" to="966193857" priority="5" type="highway.unclassified" shape="1418.53,1308.86 1420.20,1329.48 1426.16,1352.67 1433.51,1379.54 1445.06,1403.43 1461.49,1433.85">
+ <lane id="-83051483_0" index="0" speed="22.22" length="129.66" shape="1420.19,1308.86 1421.85,1329.35 1427.76,1352.26 1435.06,1378.96 1446.54,1402.72 1461.46,1430.32"/>
+ </edge>
+ <edge id="101272424#0" from="1168929542" to="1780219363" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272424#0_0" index="0" speed="22.22" length="8.77" shape="839.71,994.88 843.64,1002.72"/>
+ </edge>
+ <edge id="101272424#1" from="1780219363" to="267169591" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272424#1_0" index="0" speed="22.22" length="109.58" shape="848.58,1012.56 897.73,1110.51"/>
+ </edge>
+ <edge id="101272424#2" from="267169591" to="1780219362" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272424#2_0" index="0" speed="22.22" length="51.02" shape="900.58,1116.05 924.29,1161.23"/>
+ </edge>
+ <edge id="101272424#3" from="1780219362" to="443101913" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272424#3_0" index="0" speed="22.22" length="2.25" shape="928.71,1169.65 929.76,1171.64"/>
+ </edge>
+ <edge id="101272424#4" from="443101913" to="950640399" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272424#4_0" index="0" speed="22.22" length="0.48" shape="932.66,1177.25 932.88,1177.67"/>
+ </edge>
+ <edge id="101272424#5" from="950640399" to="13929775" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272424#5_0" index="0" speed="22.22" length="3.07" shape="934.40,1180.66 935.80,1183.39"/>
+ </edge>
+ <edge id="101272426#0" from="1168929367" to="443101920" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272426#0_0" index="0" speed="22.22" length="170.20" shape="1186.71,1028.10 1335.49,945.44"/>
+ </edge>
+ <edge id="101272426#1" from="443101920" to="443101921" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272426#1_0" index="0" speed="22.22" length="93.84" shape="1344.18,940.58 1426.02,894.68"/>
+ </edge>
+ <edge id="101272426#2" from="443101921" to="432548413" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272426#2_0" index="0" speed="22.22" length="75.27" shape="1434.39,889.95 1499.78,852.67"/>
+ </edge>
+ <edge id="101272429#0" from="1246731455" to="443101911" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272429#0_0" index="0" speed="22.22" length="70.28" shape="1150.62,1086.20 1089.77,1121.37"/>
+ </edge>
+ <edge id="101272429#1" from="443101911" to="452425502" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272429#1_0" index="0" speed="22.22" length="145.32" shape="1084.40,1124.45 958.11,1196.34"/>
+ </edge>
+ <edge id="101272429#2" from="452425502" to="443101912" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272429#2_0" index="0" speed="22.22" length="1.24" shape="949.73,1201.07 948.66,1201.67"/>
+ </edge>
+ <edge id="101272431" from="1168929382" to="1168929634" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1148.91,1034.59 1149.93,1033.73 1150.91,1032.97 1153.40,1031.30">
+ <lane id="101272431_0" index="0" speed="27.78" length="1.08" shape="1152.15,1032.14 1153.05,1031.54"/>
+ </edge>
+ <edge id="101272434" from="1168929661" to="566670951" priority="1" type="highway.cycleway" shape="1473.76,1584.23 1582.36,1529.08 1695.54,1470.89 1747.57,1444.12 1763.70,1432.92 1805.32,1410.87">
+ <lane id="101272434_0" index="0" allow="bicycle" speed="5.56" length="369.49" shape="1477.29,1580.59 1581.61,1527.61 1694.79,1469.42 1746.81,1442.65 1762.76,1431.56 1804.54,1409.41"/>
+ </edge>
+ <edge id="101272435#0" from="1168929459" to="267169964" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272435#0_0" index="0" speed="22.22" length="58.00" shape="1199.90,1072.31 1226.47,1123.87"/>
+ </edge>
+ <edge id="101272435#1" from="267169964" to="443089074" priority="5" type="highway.unclassified" spreadType="center" shape="1228.66,1128.12 1315.53,1292.64 1324.05,1308.82 1406.05,1464.41">
+ <lane id="101272435#1_0" index="0" speed="22.22" length="372.35" shape="1230.87,1132.30 1315.53,1292.64 1324.05,1308.82 1404.59,1461.64"/>
+ </edge>
+ <edge id="101272435#2" from="443089074" to="441266879" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272435#2_0" index="0" speed="22.22" length="9.59" shape="1407.48,1467.13 1411.95,1475.62"/>
+ </edge>
+ <edge id="101272435#3" from="441266879" to="1669480279" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272435#3_0" index="0" speed="22.22" length="84.34" shape="1414.84,1481.10 1454.16,1555.72"/>
+ </edge>
+ <edge id="101272435#4" from="1669480279" to="441266880" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272435#4_0" index="0" speed="22.22" length="10.82" shape="1458.30,1563.57 1463.34,1573.14"/>
+ </edge>
+ <edge id="101272435#5" from="441266880" to="1669480283" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272435#5_0" index="0" speed="22.22" length="6.13" shape="1467.78,1581.56 1470.63,1586.98"/>
+ </edge>
+ <edge id="101272435#6" from="1669480283" to="441266884" priority="5" type="highway.unclassified" spreadType="center" shape="1472.85,1591.19 1478.39,1601.70 1517.67,1676.25 1555.30,1747.66 1591.73,1816.80">
+ <lane id="101272435#6_0" index="0" speed="22.22" length="247.17" shape="1475.06,1595.39 1478.39,1601.70 1517.67,1676.25 1555.30,1747.66 1590.28,1814.06"/>
+ </edge>
+ <edge id="101272435#7" from="441266884" to="452389251" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="101272435#7_0" index="0" speed="22.22" length="14.47" shape="1593.18,1819.54 1599.92,1832.34"/>
+ </edge>
+ <edge id="103851602#0" from="1168929324" to="951739684" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="103851602#0_0" index="0" speed="27.78" length="12.83" shape="1195.60,1052.03 1184.32,1058.13"/>
+ </edge>
+ <edge id="103851602#1" from="951739684" to="951739718" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="103851602#1_0" index="0" speed="27.78" length="3.62" shape="1179.95,1060.50 1176.81,1062.29"/>
+ </edge>
+ <edge id="103851602#2" from="951739718" to="1726394725" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="103851602#2_0" index="0" speed="27.78" length="0.64" shape="1173.19,1064.34 1172.63,1064.65"/>
+ </edge>
+ <edge id="103851602#3" from="1726394725" to="951739776" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="103851602#3_0" index="0" speed="27.78" length="6.24" shape="1171.88,1065.08 1166.46,1068.17"/>
+ </edge>
+ <edge id="103851602#4" from="951739776" to="1168929523" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="103851602#4_0" index="0" speed="27.78" length="13.35" shape="1162.28,1070.52 1150.64,1077.04"/>
+ </edge>
+ <edge id="105251811#0" from="552842256" to="1212941056" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="105251811#0_0" index="0" speed="22.22" length="7.50" shape="722.07,1658.07 729.53,1657.28"/>
+ </edge>
+ <edge id="105251811#1" from="1212941056" to="733663076" priority="5" type="highway.unclassified" spreadType="center" shape="733.06,1656.91 739.59,1656.22 825.20,1666.93 848.02,1673.89">
+ <lane id="105251811#1_0" index="0" speed="22.22" length="93.51" shape="736.63,1656.53 739.59,1656.22 825.20,1666.93 829.26,1668.17"/>
+ </edge>
+ <edge id="105254616#0" from="1212960879" to="1719223329" priority="1" type="highway.footway" shape="828.53,1639.42 848.44,1632.84 869.53,1619.30 888.28,1610.18 908.33,1603.29 921.87,1598.37">
+ <lane id="105254616#0_0" index="0" allow="pedestrian" speed="8.33" length="95.24" shape="833.04,1636.19 847.73,1631.34 868.64,1617.92 887.56,1608.70 907.79,1601.73 919.52,1597.47"/>
+ </edge>
+ <edge id="105254616#1" from="1719223329" to="1719223322" priority="1" type="highway.footway" shape="921.87,1598.37 1010.12,1553.37 1025.87,1582.83 1068.38,1561.19 1073.63,1558.52">
+ <lane id="105254616#1_0" index="0" allow="pedestrian" speed="8.33" length="180.63" shape="923.19,1595.84 1010.82,1551.16 1026.57,1580.63 1067.63,1559.72 1070.11,1558.46"/>
+ </edge>
+ <edge id="105254618" from="1212960877" to="1634988377" priority="2" type="highway.service" shape="823.93,1630.44 867.02,1608.45 910.05,1587.09 924.37,1572.29 844.39,1427.33 798.22,1451.33 788.25,1452.79 772.23,1451.72 760.42,1449.07 748.19,1445.93">
+ <lane id="105254618_0" index="0" allow="delivery" speed="5.56" length="370.61" shape="827.41,1626.81 866.27,1606.98 909.06,1585.73 922.34,1572.02 843.73,1429.54 798.73,1452.92 788.31,1454.44 772.12,1453.37 760.06,1450.68 752.73,1448.80"/>
+ </edge>
+ <edge id="105283535#0" from="733663076" to="1213368991" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="105283535#0_0" index="0" speed="27.78" length="93.57" shape="828.47,1673.29 735.52,1662.53"/>
+ </edge>
+ <edge id="105283535#1" from="1213368991" to="552842256" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="105283535#1_0" index="0" speed="27.78" length="8.06" shape="729.20,1661.79 721.20,1660.83"/>
+ </edge>
+ <edge id="106366773" from="1224080675" to="1224080662" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="106366773_0" index="0" speed="22.22" length="27.19" shape="606.29,1238.66 630.37,1226.05"/>
+ </edge>
+ <edge id="106366774" from="1224080660" to="1224080676" priority="5" type="highway.unclassified" shape="662.05,1329.66 520.07,1058.29 508.14,1033.93">
+ <lane id="106366774_0" index="0" speed="22.22" length="330.23" shape="659.10,1327.59 518.61,1059.06 506.66,1034.66"/>
+ </edge>
+ <edge id="106367427#0" from="1224091971" to="1239243628" priority="5" type="highway.unclassified">
+ <lane id="106367427#0_0" index="0" speed="22.22" length="67.52" shape="623.80,1060.77 654.52,1120.90"/>
+ </edge>
+ <edge id="106367427#1" from="1239243628" to="1903640411" priority="5" type="highway.unclassified">
+ <lane id="106367427#1_0" index="0" speed="22.22" length="4.39" shape="659.02,1129.34 661.15,1133.17"/>
+ </edge>
+ <edge id="106836308#0" from="1228499918" to="1232169474" priority="4" type="highway.residential">
+ <lane id="106836308#0_0" index="0" speed="13.89" length="44.75" shape="713.57,2152.96 669.32,2159.67"/>
+ </edge>
+ <edge id="106836308#1" from="1232169474" to="1228499957" priority="4" type="highway.residential">
+ <lane id="106836308#1_0" index="0" speed="13.89" length="26.84" shape="659.94,2161.12 633.42,2165.27"/>
+ </edge>
+ <edge id="106836308#2" from="1228499957" to="1228499925" priority="4" type="highway.residential" shape="626.69,2164.66 577.70,2171.08 529.42,2178.37 460.15,2188.24 368.82,2201.27">
+ <lane id="106836308#2_0" index="0" speed="13.89" length="253.89" shape="620.41,2167.15 577.91,2172.72 529.66,2180.00 460.38,2189.88 369.05,2202.90"/>
+ </edge>
+ <edge id="106836317#0" from="1228499901" to="1228499992" priority="4" type="highway.residential" spreadType="center" shape="352.02,2118.23 436.04,2100.78 503.16,2085.77 568.86,2072.13">
+ <lane id="106836317#0_0" index="0" speed="13.89" length="216.11" shape="352.02,2118.23 436.04,2100.78 503.16,2085.77 563.39,2073.27"/>
+ </edge>
+ <edge id="106836317#1" from="1228499992" to="1239242544" priority="4" type="highway.residential" spreadType="center">
+ <lane id="106836317#1_0" index="0" speed="13.89" length="62.70" shape="574.31,2071.02 635.75,2058.49"/>
+ </edge>
+ <edge id="106836317#2" from="1239242544" to="1228499945" priority="4" type="highway.residential" spreadType="center">
+ <lane id="106836317#2_0" index="0" speed="13.89" length="53.81" shape="645.15,2056.56 697.84,2045.64"/>
+ </edge>
+ <edge id="106836317#3" from="1228499945" to="1231011197" priority="4" type="highway.residential" spreadType="center">
+ <lane id="106836317#3_0" index="0" speed="13.89" length="4.69" shape="704.08,2044.41 708.70,2043.55"/>
+ </edge>
+ <edge id="107028581#0" from="1233612841" to="728492353" priority="15" type="highway.unclassified|railway.tram" shape="267.14,1604.67 270.32,1605.03 287.32,1606.97 384.79,1618.30 479.06,1629.71 570.76,1640.81 629.00,1648.26">
+ <lane id="107028581#0_0" index="0" speed="27.78" length="359.78" shape="267.32,1603.03 270.50,1603.39 287.51,1605.33 384.98,1616.66 479.25,1628.07 570.96,1639.18 624.52,1646.02"/>
+ </edge>
+ <edge id="107028581#1" from="728492353" to="1239242543" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="107028581#1_0" index="0" speed="27.78" length="26.73" shape="633.90,1647.17 660.44,1650.28"/>
+ </edge>
+ <edge id="107028581#2" from="1239242543" to="552842257" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="107028581#2_0" index="0" speed="27.78" length="28.47" shape="669.98,1651.40 698.25,1654.71"/>
+ </edge>
+ <edge id="107028581#3" from="552842257" to="552842256" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="107028581#3_0" index="0" speed="27.78" length="2.92" shape="703.13,1655.30 706.03,1655.65"/>
+ </edge>
+ <edge id="107066313#0" from="950640617" to="477486719" priority="15" type="highway.unclassified|railway.tram" shape="278.01,1618.39 281.98,1624.56 334.49,1706.02 372.19,1764.52 393.25,1797.66 405.54,1816.27">
+ <lane id="107066313#0_0" index="0" speed="27.78" length="230.33" shape="279.39,1617.50 283.37,1623.66 335.87,1705.13 373.58,1763.63 394.64,1796.78 404.13,1811.13"/>
+ </edge>
+ <edge id="107066313#1" from="477486719" to="728492341" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="107066313#1_0" index="0" speed="27.78" length="55.69" shape="409.59,1819.53 439.55,1866.48"/>
+ </edge>
+ <edge id="107066313#2" from="728492341" to="477486717" priority="15" type="highway.unclassified|railway.tram" shape="440.65,1871.28 455.89,1895.16 499.22,1963.31 504.35,1971.39">
+ <lane id="107066313#2_0" index="0" speed="27.78" length="108.91" shape="444.66,1874.49 457.28,1894.27 500.61,1962.42 503.12,1966.37"/>
+ </edge>
+ <edge id="107066313#3" from="477486717" to="1228499992" priority="15" type="highway.unclassified|railway.tram" shape="504.35,1971.39 507.14,1975.73 545.68,2035.82 568.86,2072.13">
+ <lane id="107066313#3_0" index="0" speed="27.78" length="110.27" shape="508.40,1974.63 508.53,1974.84 547.07,2034.93 567.86,2067.50"/>
+ </edge>
+ <edge id="107066313#4" from="1228499992" to="1228499957" priority="15" type="highway.unclassified|railway.tram" shape="568.86,2072.13 621.68,2156.63 626.69,2164.66">
+ <lane id="107066313#4_0" index="0" speed="27.78" length="98.13" shape="572.60,2075.01 623.08,2155.75 624.62,2158.22"/>
+ </edge>
+ <edge id="107066313#5" from="1228499957" to="477486714" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="107066313#5_0" index="0" speed="27.78" length="61.75" shape="631.67,2169.22 665.62,2220.80"/>
+ </edge>
+ <edge id="107166846#0" from="728492353" to="728492372" priority="5" type="highway.unclassified">
+ <lane id="107166846#0_0" index="0" speed="22.22" length="37.49" shape="630.07,1653.16 625.59,1690.38"/>
+ </edge>
+ <edge id="107166846#1" from="728492372" to="728492360" priority="5" type="highway.unclassified">
+ <lane id="107166846#1_0" index="0" speed="22.22" length="64.92" shape="623.64,1705.97 615.27,1770.34"/>
+ </edge>
+ <edge id="107166846#2" from="728492360" to="728492361" priority="5" type="highway.unclassified">
+ <lane id="107166846#2_0" index="0" speed="22.22" length="54.48" shape="614.35,1782.02 611.76,1836.44"/>
+ </edge>
+ <edge id="107166846#3" from="728492361" to="728492366" priority="5" type="highway.unclassified" shape="609.90,1840.82 606.99,1904.28 606.61,1912.43">
+ <lane id="107166846#3_0" index="0" speed="22.22" length="56.81" shape="611.21,1848.32 608.64,1904.35 608.60,1905.07"/>
+ </edge>
+ <edge id="107166846#4" from="728492366" to="1239242544" priority="5" type="highway.unclassified" shape="606.61,1912.43 607.80,1917.51 640.45,2057.53">
+ <lane id="107166846#4_0" index="0" speed="22.22" length="139.93" shape="609.56,1917.78 641.34,2054.05"/>
+ </edge>
+ <edge id="107166846#5" from="1239242544" to="1232169474" priority="5" type="highway.unclassified">
+ <lane id="107166846#5_0" index="0" speed="22.22" length="95.82" shape="642.80,2060.26 665.08,2153.45"/>
+ </edge>
+ <edge id="107167209#0" from="1232172723" to="1239242543" priority="4" type="highway.residential">
+ <lane id="107167209#0_0" index="0" speed="13.89" length="17.14" shape="669.55,1630.95 667.29,1647.94"/>
+ </edge>
+ <edge id="107167209#1" from="1239242543" to="1232172714" priority="4" type="highway.residential">
+ <lane id="107167209#1_0" index="0" speed="13.89" length="17.85" shape="666.02,1657.46 663.67,1675.15"/>
+ </edge>
+ <edge id="108329425#0" from="733663076" to="1212960879" priority="5" type="highway.unclassified" shape="848.02,1673.89 844.12,1666.36 833.33,1648.80 828.53,1639.42">
+ <lane id="108329425#0_0" index="0" speed="22.22" length="27.43" shape="843.38,1668.51 842.66,1667.12 831.92,1649.66 829.47,1644.88"/>
+ </edge>
+ <edge id="108329425#1" from="1212960879" to="2016414185" priority="5" type="highway.unclassified">
+ <lane id="108329425#1_0" index="0" speed="22.22" length="3.16" shape="827.06,1640.17 825.62,1637.36"/>
+ </edge>
+ <edge id="108329425#2" from="2016414185" to="1212960877" priority="5" type="highway.unclassified">
+ <lane id="108329425#2_0" index="0" speed="22.22" length="2.10" shape="824.62,1635.42 823.67,1633.55"/>
+ </edge>
+ <edge id="108329425#3" from="1212960877" to="1323557968" priority="5" type="highway.unclassified">
+ <lane id="108329425#3_0" index="0" speed="22.22" length="52.28" shape="820.30,1626.97 796.46,1580.44"/>
+ </edge>
+ <edge id="108329425#4" from="1323557968" to="429179805" priority="5" type="highway.unclassified">
+ <lane id="108329425#4_0" index="0" speed="22.22" length="77.32" shape="793.63,1574.92 758.37,1506.10"/>
+ </edge>
+ <edge id="108329425#5" from="429179805" to="445506220" priority="5" type="highway.unclassified">
+ <lane id="108329425#5_0" index="0" speed="22.22" length="9.98" shape="753.80,1497.66 747.17,1490.20"/>
+ </edge>
+ <edge id="108329426#0" from="1243159116" to="427996792" priority="15" type="highway.unclassified|railway.tram" shape="1082.77,2097.34 1078.78,2096.74 1076.02,2096.26 1071.45,2094.86 1068.75,2092.94">
+ <lane id="108329426#0_0" index="0" speed="27.78" length="2.59" shape="1074.61,2097.54 1072.13,2096.79"/>
+ </edge>
+ <edge id="108329426#1" from="427996792" to="1257054208" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="108329426#1_0" index="0" speed="27.78" length="3.28" shape="1067.26,2093.63 1065.87,2090.66"/>
+ </edge>
+ <edge id="108329426#2" from="1257054208" to="445506216" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="108329426#2_0" index="0" speed="27.78" length="182.09" shape="1063.03,2085.21 976.84,1924.81"/>
+ </edge>
+ <edge id="108329427#0" from="427996792" to="1263725264" priority="15" type="highway.unclassified|railway.tram" shape="1068.75,2092.94 1073.22,2099.56 1074.67,2101.63">
+ <lane id="108329427#0_0" index="0" speed="27.78" length="8.49" shape="1071.61,2094.38 1074.59,2098.64 1072.75,2095.91"/>
+ </edge>
+ <edge id="108329427#1" from="1263725264" to="1263725266" priority="15" type="highway.unclassified|railway.tram" shape="1074.67,2101.63 1076.79,2104.66 1080.00,2107.03 1080.63,2107.23">
+ <lane id="108329427#1_0" index="0" speed="27.78" length="2.37" shape="1078.75,2104.90 1080.76,2105.54 1080.54,2105.38"/>
+ </edge>
+ <edge id="108329427#2" from="1263725266" to="1243159115" priority="15" type="highway.unclassified|railway.tram" shape="1080.63,2107.23 1083.82,2108.23 1087.06,2109.03 1090.69,2108.82">
+ <lane id="108329427#2_0" index="0" speed="27.78" length="9.34" shape="1080.46,2107.77 1087.21,2107.37 1084.70,2106.75"/>
+ </edge>
+ <edge id="108733421" from="1246731574" to="1246731541" priority="15" type="highway.secondary_link|railway.tram" shape="1182.97,1030.16 1185.19,1030.38 1189.07,1030.72 1193.93,1030.49 1198.37,1029.90">
+ <lane id="108733421_0" index="0" speed="27.78" length="17.79" shape="1178.33,1028.04 1185.35,1028.74 1189.22,1029.08 1193.85,1028.84 1196.04,1028.55"/>
+ </edge>
+ <edge id="108733422" from="1246731620" to="1246731544" priority="15" type="highway.secondary_link|railway.tram" shape="1153.47,1018.17 1155.47,1019.97 1158.89,1022.12 1162.28,1023.27 1166.74,1024.73 1171.58,1026.54 1175.93,1027.69">
+ <lane id="108733422_0" index="0" speed="27.78" length="10.44" shape="1166.43,1022.89 1167.25,1023.16 1172.15,1024.99 1176.35,1026.09"/>
+ </edge>
+ <edge id="108733424" from="1246731470" to="1246731525" priority="15" type="highway.secondary_link|railway.tram" shape="1204.48,1046.73 1202.48,1049.18 1200.51,1051.85 1199.13,1054.50 1199.81,1056.38">
+ <lane id="108733424_0" index="0" speed="27.78" length="9.85" shape="1204.37,1049.48 1203.75,1050.23 1201.84,1052.83 1200.93,1054.62 1199.69,1051.20"/>
+ </edge>
+ <edge id="108733425" from="1246731504" to="1246731466" priority="15" type="highway.secondary_link|railway.tram" shape="1142.53,1042.42 1143.01,1038.97 1143.67,1035.61 1144.25,1032.21 1144.19,1027.73 1143.83,1025.01">
+ <lane id="108733425_0" index="0" speed="27.78" length="4.24" shape="1142.60,1031.91 1142.53,1027.68"/>
+ </edge>
+ <edge id="108733428" from="1246731455" to="1246731576" priority="15" type="highway.secondary_link|railway.tram" shape="1154.20,1084.13 1149.60,1082.87 1146.02,1082.71 1142.61,1082.99 1138.83,1083.97">
+ <lane id="108733428_0" index="0" speed="27.78" length="15.22" shape="1149.66,1084.60 1149.34,1084.51 1145.94,1084.36 1142.74,1084.63 1134.75,1086.77"/>
+ </edge>
+ <edge id="108733429" from="1246731647" to="1246731460" priority="15" type="highway.secondary_link|railway.tram" shape="1182.25,1098.33 1180.40,1096.87 1177.24,1094.45 1172.44,1091.05 1169.23,1089.27 1166.50,1087.91">
+ <lane id="108733429_0" index="0" speed="27.78" length="6.33" shape="1179.15,1097.99 1176.24,1095.76 1174.07,1094.22"/>
+ </edge>
+ <edge id="108733430" from="1246731482" to="1246731457" priority="15" type="highway.secondary_link|railway.tram" shape="1193.00,1076.70 1192.05,1079.51 1191.57,1082.69 1191.38,1086.69 1191.33,1089.79">
+ <lane id="108733430_0" index="0" speed="27.78" length="16.47" shape="1196.65,1071.06 1193.66,1079.90 1193.20,1082.93 1193.03,1086.77 1193.02,1087.00"/>
+ </edge>
+ <edge id="108733431" from="1246731601" to="1246731627" priority="15" type="highway.secondary_link|railway.tram" shape="1130.65,1068.67 1132.77,1065.18 1134.30,1061.69 1136.19,1058.12 1138.62,1055.33">
+ <lane id="108733431_0" index="0" speed="27.78" length="7.53" shape="1133.49,1059.70 1134.82,1057.18 1137.90,1053.64"/>
+ </edge>
+ <edge id="109438141" from="950640428" to="1252775276" priority="15" type="railway.tram" spreadType="center" shape="686.05,2240.70 678.11,2241.94 667.75,2244.32 661.03,2246.86 651.51,2252.33 645.71,2255.79 634.90,2265.97">
+ <lane id="109438141_0" index="0" allow="cityrail" speed="27.78" length="51.53" shape="679.23,2241.77 678.11,2241.94 667.75,2244.32 661.03,2246.86 651.51,2252.33 645.71,2255.79 634.90,2265.97"/>
+ </edge>
+ <edge id="109438231#0" from="948350676" to="1479400627" priority="15" type="railway.tram" spreadType="center" shape="738.76,2256.54 744.01,2258.21 749.83,2259.37 755.97,2259.96 762.26,2260.17 768.35,2260.03">
+ <lane id="109438231#0_0" index="0" allow="cityrail" speed="27.78" length="21.94" shape="744.95,2258.40 749.83,2259.37 755.97,2259.96 762.26,2260.17 766.77,2260.07"/>
+ </edge>
+ <edge id="109438231#1" from="1479400627" to="1252777720" priority="15" type="railway.tram" spreadType="center" shape="768.35,2260.03 770.02,2259.99 776.84,2259.18">
+ <lane id="109438231#1_0" index="0" allow="cityrail" speed="27.78" length="4.95" shape="769.93,2259.99 774.85,2259.41"/>
+ </edge>
+ <edge id="109438232" from="948350705" to="1252777712" priority="15" type="railway.tram" spreadType="center" shape="777.15,2274.14 772.13,2276.43 767.15,2278.61 758.57,2282.86 752.96,2285.63 750.34,2286.68 747.97,2287.04 743.97,2287.26 740.05,2286.90 736.91,2285.48 733.76,2283.53 732.16,2282.19 729.90,2279.71 727.32,2275.78">
+ <lane id="109438232_0" index="0" allow="cityrail" speed="27.78" length="17.95" shape="748.30,2286.99 747.97,2287.04 743.97,2287.26 740.05,2286.90 736.91,2285.48 733.76,2283.53 732.16,2282.19 731.86,2281.87"/>
+ </edge>
+ <edge id="109912567#0" from="1257054077" to="1257054208" priority="1" type="highway.cycleway">
+ <lane id="109912567#0_0" index="0" allow="bicycle" speed="5.56" length="10.86" shape="1081.39,2083.20 1071.67,2088.04"/>
+ </edge>
+ <edge id="109912567#1" from="1257054208" to="1257054132" priority="1" type="highway.cycleway" shape="1066.75,2088.65 1047.70,2098.62 1024.08,2107.93 1013.62,2110.04 935.95,2150.15 914.76,2164.08 770.22,2237.43 759.16,2245.83">
+ <lane id="109912567#1_0" index="0" allow="bicycle" speed="5.56" length="336.02" shape="1063.17,2092.38 1048.47,2100.08 1024.55,2109.52 1014.18,2111.61 936.71,2151.62 915.66,2165.46 771.10,2238.84 764.23,2244.05"/>
+ </edge>
+ <edge id="109912568" from="1257054196" to="1257054162" priority="1" type="highway.cycleway" shape="600.71,2350.85 597.13,2341.44 596.91,2334.80 609.59,2329.64 616.12,2326.99 620.79,2325.34 628.32,2320.99 635.92,2315.00 639.17,2309.68 640.46,2297.74 642.72,2288.19 649.13,2279.25 661.61,2268.84 670.54,2266.62 682.54,2268.72 697.43,2272.03 701.22,2271.85 703.02,2269.30 706.60,2263.39 716.52,2257.84">
+ <lane id="109912568_0" index="0" allow="bicycle" speed="5.56" length="180.48" shape="599.17,2351.43 595.49,2341.77 595.22,2333.70 608.96,2328.11 615.50,2325.46 620.10,2323.84 627.49,2319.56 634.66,2313.89 637.57,2309.14 638.82,2297.56 641.19,2287.49 647.91,2278.12 660.84,2267.33 670.48,2264.94 682.83,2267.10 697.57,2270.37 700.34,2270.24 701.67,2268.34 705.42,2262.16 715.71,2256.40"/>
+ </edge>
+ <edge id="109912572#0" from="1257054178" to="1257054155" priority="1" type="highway.cycleway">
+ <lane id="109912572#0_0" index="0" allow="bicycle" speed="5.56" length="9.46" shape="1339.48,1929.05 1331.08,1933.39"/>
+ </edge>
+ <edge id="109912572#1" from="1257054155" to="1257054108" priority="1" type="highway.cycleway" shape="1327.55,1933.37 1316.46,1933.32 1307.17,1938.59">
+ <lane id="109912572#1_0" index="0" allow="bicycle" speed="5.56" length="11.05" shape="1322.57,1934.99 1316.90,1934.97 1312.22,1937.62"/>
+ </edge>
+ <edge id="109912572#2" from="1257054108" to="1257054092" priority="1" type="highway.cycleway">
+ <lane id="109912572#2_0" index="0" allow="bicycle" speed="5.56" length="2.98" shape="1303.55,1942.19 1300.86,1943.50"/>
+ </edge>
+ <edge id="109912572#3" from="1257054092" to="1257054165" priority="1" type="highway.cycleway">
+ <lane id="109912572#3_0" index="0" allow="bicycle" speed="5.56" length="9.82" shape="1292.35,1947.87 1283.71,1952.54"/>
+ </edge>
+ <edge id="109912572#4" from="1257054165" to="1257054077" priority="1" type="highway.cycleway" shape="1280.20,1952.56 1275.30,1955.19 1282.90,1969.75 1281.48,1974.95 1271.51,1979.78 1080.63,2081.74">
+ <lane id="109912572#4_0" index="0" allow="bicycle" speed="5.56" length="251.75" shape="1278.69,1955.24 1277.52,1955.87 1284.66,1969.56 1282.88,1976.11 1272.23,1981.27 1081.39,2083.20"/>
+ </edge>
+ <edge id="110514869#0" from="1261880295" to="252417189" priority="7" type="highway.secondary">
+ <lane id="110514869#0_0" index="0" speed="27.78" length="68.77" shape="1290.80,1663.02 1351.85,1631.13"/>
+ <lane id="110514869#0_1" index="1" speed="27.78" length="68.77" shape="1292.53,1665.84 1353.38,1634.06"/>
+ </edge>
+ <edge id="110514869#1" from="252417189" to="443089063" priority="7" type="highway.secondary">
+ <lane id="110514869#1_0" index="0" speed="27.78" length="73.34" shape="1357.40,1628.24 1422.41,1594.30"/>
+ <lane id="110514869#1_1" index="1" speed="27.78" length="73.34" shape="1358.92,1631.16 1423.93,1597.22"/>
+ </edge>
+ <edge id="110514869#2" from="443089063" to="1669480282" priority="7" type="highway.secondary">
+ <lane id="110514869#2_0" index="0" speed="27.78" length="7.73" shape="1428.12,1591.32 1434.97,1587.74"/>
+ <lane id="110514869#2_1" index="1" speed="27.78" length="7.73" shape="1429.64,1594.24 1436.50,1590.66"/>
+ </edge>
+ <edge id="111549913#0" from="950640539" to="950640371" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="370.49,1503.56 445.16,1461.04 471.64,1445.79 505.73,1426.18 670.40,1332.52">
+ <lane id="111549913#0_0" index="0" speed="27.78" length="340.47" shape="370.49,1503.56 445.16,1461.04 471.64,1445.79 505.73,1426.18 666.24,1334.89"/>
+ </edge>
+ <edge id="111549913#1" from="950640371" to="950640361" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="670.40,1332.52 731.08,1295.98 756.98,1281.55">
+ <lane id="111549913#1_0" index="0" speed="27.78" length="90.65" shape="674.54,1330.03 731.08,1295.98 752.62,1283.98"/>
+ </edge>
+ <edge id="111549913#2" from="950640361" to="950640411" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111549913#2_0" index="0" speed="27.78" length="6.85" shape="761.46,1278.59 767.18,1274.82"/>
+ </edge>
+ <edge id="111549913#3" from="950640411" to="950640399" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="773.09,1270.92 886.73,1208.48 934.34,1180.54">
+ <lane id="111549913#3_0" index="0" speed="27.78" length="175.05" shape="778.89,1267.73 886.73,1208.48 931.59,1182.16"/>
+ </edge>
+ <edge id="111549913#4" from="950640399" to="950640351" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111549913#4_0" index="0" speed="27.78" length="0.95" shape="937.10,1178.87 937.91,1178.38"/>
+ </edge>
+ <edge id="111549913#5" from="950640351" to="1246731601" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="942.06,1175.85 1124.07,1072.37 1130.65,1068.67">
+ <lane id="111549913#5_0" index="0" speed="27.78" length="216.28" shape="946.25,1173.47 1124.07,1072.37 1134.30,1066.62"/>
+ </edge>
+ <edge id="111549913#6" from="1246731601" to="1168929310" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111549913#6_0" index="0" speed="27.78" length="3.22" shape="1136.22,1065.79 1139.08,1064.31"/>
+ </edge>
+ <edge id="111863096#0" from="1168929310" to="951739443" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863096#0_0" index="0" speed="27.78" length="13.47" shape="1142.67,1062.18 1154.24,1055.27"/>
+ </edge>
+ <edge id="111863096#1" from="951739443" to="1726394723" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863096#1_0" index="0" speed="27.78" length="6.29" shape="1158.40,1052.79 1163.83,1049.62"/>
+ </edge>
+ <edge id="111863096#2" from="1726394723" to="951739557" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863096#2_0" index="0" speed="27.78" length="0.77" shape="1164.46,1049.25 1165.13,1048.87"/>
+ </edge>
+ <edge id="111863096#3" from="951739557" to="951739649" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863096#3_0" index="0" speed="27.78" length="3.45" shape="1168.63,1046.83 1171.65,1045.16"/>
+ </edge>
+ <edge id="111863096#4" from="951739649" to="1168929388" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863096#4_0" index="0" speed="27.78" length="12.00" shape="1175.79,1042.67 1186.08,1036.49"/>
+ </edge>
+ <edge id="111863125#0" from="1168929523" to="1246731576" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="1147.33,1078.90 1145.70,1080.08 1138.83,1083.97">
+ <lane id="111863125#0_0" index="0" speed="27.78" length="11.48" shape="1144.64,1080.68 1134.64,1086.34"/>
+ </edge>
+ <edge id="111863125#1" from="1246731576" to="950640531" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="1138.83,1083.97 957.75,1186.47 949.87,1190.93">
+ <lane id="111863125#1_0" index="0" speed="27.78" length="204.03" shape="1131.61,1088.05 957.75,1186.47 954.06,1188.56"/>
+ </edge>
+ <edge id="111863125#2" from="950640531" to="950640525" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863125#2_0" index="0" speed="27.78" length="1.22" shape="945.68,1193.28 944.61,1193.87"/>
+ </edge>
+ <edge id="111863125#3" from="950640525" to="950640558" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863125#3_0" index="0" speed="27.78" length="9.77" shape="939.09,1196.98 930.59,1201.79"/>
+ </edge>
+ <edge id="111863125#4" from="950640558" to="950640550" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863125#4_0" index="0" speed="27.78" length="3.01" shape="922.08,1206.63 919.47,1208.12"/>
+ </edge>
+ <edge id="111863125#5" from="950640550" to="950640413" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863125#5_0" index="0" speed="27.78" length="155.46" shape="911.18,1212.86 776.31,1290.18"/>
+ </edge>
+ <edge id="111863125#6" from="950640413" to="950640474" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863125#6_0" index="0" speed="27.78" length="9.19" shape="764.52,1297.12 756.64,1301.87"/>
+ </edge>
+ <edge id="111863125#7" from="950640474" to="950640393" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="752.22,1304.53 709.52,1328.54 537.37,1426.65 496.57,1449.90 476.57,1461.29 459.04,1471.28">
+ <lane id="111863125#7_0" index="0" speed="27.78" length="326.49" shape="747.86,1306.99 709.52,1328.54 537.37,1426.65 496.57,1449.90 476.57,1461.29 464.07,1468.42"/>
+ </edge>
+ <edge id="111863125#8" from="950640393" to="950640500" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="111863125#8_0" index="0" speed="27.78" length="79.87" shape="453.98,1474.14 384.42,1513.40"/>
+ </edge>
+ <edge id="117492209" from="1323557968" to="1323557956" priority="4" type="highway.residential" spreadType="center" shape="796.46,1576.81 757.39,1598.72 739.90,1613.73">
+ <lane id="117492209_0" index="0" speed="13.89" length="57.32" shape="792.26,1579.17 757.39,1598.72 744.24,1610.01"/>
+ </edge>
+ <edge id="122301994#0" from="538265865" to="1168929600" priority="7" type="highway.secondary" spreadType="center" shape="717.31,797.74 759.65,880.22 801.49,963.16">
+ <lane id="122301994#0_0" index="0" speed="27.78" length="182.04" shape="720.25,796.23 762.59,878.71 802.83,958.49"/>
+ <lane id="122301994#0_1" index="1" speed="27.78" length="182.04" shape="717.31,797.74 759.65,880.22 799.88,959.98"/>
+ <lane id="122301994#0_2" index="2" speed="27.78" length="182.04" shape="714.38,799.25 756.72,881.73 796.93,961.47"/>
+ </edge>
+ <edge id="122301994#1" from="1168929600" to="1168929349" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="122301994#1_0" index="0" speed="27.78" length="43.28" shape="806.90,966.19 827.65,1004.17"/>
+ <lane id="122301994#1_1" index="1" speed="27.78" length="43.28" shape="804.00,967.77 824.76,1005.76"/>
+ <lane id="122301994#1_2" index="2" speed="27.78" length="43.28" shape="801.11,969.36 821.86,1007.34"/>
+ </edge>
+ <edge id="122302027#0" from="1367622318" to="249404225" priority="15" type="railway.rail" spreadType="center">
+ <lane id="122302027#0_0" index="0" allow="rail_fast" speed="83.33" length="23.79" shape="1752.39,2840.10 1742.68,2818.37"/>
+ </edge>
+ <edge id="122302027#1" from="249404225" to="1366723470" priority="15" type="railway.rail" spreadType="center" shape="1742.60,2818.18 1554.02,2445.66 1471.35,2285.02 1326.57,2004.72 1291.99,1937.92 766.44,922.99">
+ <lane id="122302027#1_0" index="0" allow="rail_fast" speed="83.33" length="2132.04" shape="1742.69,2818.37 1554.02,2445.66 1471.35,2285.02 1326.57,2004.72 1291.99,1937.92 766.44,922.98"/>
+ </edge>
+ <edge id="122302030" from="1367622318" to="1367073439" priority="15" type="railway.rail" spreadType="center" shape="1752.44,2840.21 1730.18,2757.64 1567.82,2439.20 1485.96,2277.67 1341.66,1997.24 1307.46,1931.16 781.54,916.57">
+ <lane id="122302030_0" index="0" allow="rail_fast" speed="83.33" length="2155.00" shape="1752.41,2840.09 1730.18,2757.64 1567.82,2439.20 1485.96,2277.67 1341.66,1997.24 1307.46,1931.16 782.23,917.90"/>
+ </edge>
+ <edge id="122302035#0" from="1367073442" to="249404225" priority="15" type="railway.rail" spreadType="center" shape="778.01,918.11 1303.93,1932.70 1338.13,1998.77 1482.75,2279.28 1564.59,2440.71 1726.25,2760.00 1742.60,2818.18">
+ <lane id="122302035#0_0" index="0" allow="rail_fast" speed="83.33" length="2132.31" shape="778.01,918.11 1303.93,1932.70 1338.13,1998.77 1482.75,2279.28 1564.59,2440.71 1726.25,2760.00 1742.65,2818.38"/>
+ </edge>
+ <edge id="122302035#1" from="249404225" to="1367622316" priority="15" type="railway.rail" spreadType="center">
+ <lane id="122302035#1_0" index="0" allow="rail_fast" speed="83.33" length="24.45" shape="1742.65,2818.38 1749.26,2841.92"/>
+ </edge>
+ <edge id="122394833#0" from="1367855969" to="1367855932" priority="1" type="highway.footway" shape="1612.08,2617.74 1570.43,2537.57 1562.00,2521.34 1552.71,2503.46 1543.14,2485.02 1528.72,2457.27 1514.56,2430.00 1504.68,2410.99 1494.93,2392.23 1478.52,2360.64 1457.82,2320.79 1447.82,2301.53 1438.63,2283.86 1427.25,2261.94">
+ <lane id="122394833#0_0" index="0" allow="pedestrian" speed="8.33" length="397.85" shape="1610.61,2618.50 1568.96,2538.33 1560.54,2522.10 1551.25,2504.22 1541.67,2485.78 1527.26,2458.03 1513.09,2430.76 1503.21,2411.75 1493.47,2393.00 1477.06,2361.40 1456.35,2321.55 1446.35,2302.29 1437.16,2284.62 1427.21,2265.45"/>
+ </edge>
+ <edge id="122394833#1" from="1367855932" to="1367855931" priority="1" type="highway.footway">
+ <lane id="122394833#1_0" index="0" allow="pedestrian" speed="8.33" length="19.11" shape="1424.35,2259.94 1415.54,2242.98"/>
+ </edge>
+ <edge id="122394833#2" from="1367855931" to="1367855930" priority="1" type="highway.footway">
+ <lane id="122394833#2_0" index="0" allow="pedestrian" speed="8.33" length="17.91" shape="1413.67,2239.38 1405.41,2223.49"/>
+ </edge>
+ <edge id="122394833#3" from="1367855930" to="1367855929" priority="1" type="highway.footway">
+ <lane id="122394833#3_0" index="0" allow="pedestrian" speed="8.33" length="18.01" shape="1404.03,2220.83 1395.72,2204.85"/>
+ </edge>
+ <edge id="122394833#4" from="1367855929" to="1367855927" priority="1" type="highway.footway">
+ <lane id="122394833#4_0" index="0" allow="pedestrian" speed="8.33" length="18.52" shape="1393.41,2200.41 1384.88,2183.97"/>
+ </edge>
+ <edge id="122394833#5" from="1367855927" to="1367855925" priority="1" type="highway.footway">
+ <lane id="122394833#5_0" index="0" allow="pedestrian" speed="8.33" length="0.76" shape="1380.84,2176.20 1380.49,2175.53"/>
+ </edge>
+ <edge id="122394834" from="1367855907" to="1367855909" priority="1" type="highway.steps">
+ <lane id="122394834_0" index="0" allow="pedestrian" speed="1.39" length="11.20" shape="1402.57,2205.09 1407.73,2215.02"/>
+ </edge>
+ <edge id="122394841#0" from="1367855909" to="1369844772" priority="1" type="highway.footway">
+ <lane id="122394841#0_0" index="0" allow="pedestrian" speed="8.33" length="8.08" shape="1411.91,2216.34 1419.08,2212.61"/>
+ </edge>
+ <edge id="122394841#1" from="1369844772" to="1369844762" priority="1" type="highway.footway">
+ <lane id="122394841#1_0" index="0" allow="pedestrian" speed="8.33" length="5.93" shape="1427.65,2208.13 1432.91,2205.39"/>
+ </edge>
+ <edge id="122394841#2" from="1369844762" to="1369844757" priority="1" type="highway.footway">
+ <lane id="122394841#2_0" index="0" allow="pedestrian" speed="8.33" length="4.65" shape="1441.42,2201.02 1445.57,2198.92"/>
+ </edge>
+ <edge id="122394841#3" from="1369844757" to="2079750190" priority="1" type="highway.footway" shape="1450.57,2198.24 1451.23,2197.91 1477.48,2184.33">
+ <lane id="122394841#3_0" index="0" allow="pedestrian" speed="8.33" length="20.81" shape="1454.04,2194.60 1472.52,2185.04"/>
+ </edge>
+ <edge id="122394845" from="1367855930" to="1367855909" priority="1" type="highway.footway">
+ <lane id="122394845_0" index="0" allow="pedestrian" speed="8.33" length="0.34" shape="1406.31,2219.38 1406.60,2219.21"/>
+ </edge>
+ <edge id="122394853" from="1367855929" to="1367855907" priority="1" type="highway.footway">
+ <lane id="122394853_0" index="0" allow="pedestrian" speed="8.33" length="0.61" shape="1399.97,2202.73 1400.51,2203.01"/>
+ </edge>
+ <edge id="122394859" from="1367855931" to="1367855910" priority="1" type="highway.footway">
+ <lane id="122394859_0" index="0" allow="pedestrian" speed="8.33" length="0.71" shape="1414.60,2237.00 1414.71,2236.29"/>
+ </edge>
+ <edge id="122394860" from="1367855910" to="1367855909" priority="1" type="highway.steps">
+ <lane id="122394860_0" index="0" allow="pedestrian" speed="1.39" length="11.65" shape="1414.55,2235.32 1409.18,2224.98"/>
+ </edge>
+ <edge id="122394864#0" from="1367855927" to="1367855926" priority="1" type="highway.footway">
+ <lane id="122394864#0_0" index="0" allow="pedestrian" speed="8.33" length="0.58" shape="1387.14,2175.51 1387.64,2175.21"/>
+ </edge>
+ <edge id="122394864#1" from="1367855926" to="314636763" priority="1" type="highway.footway">
+ <lane id="122394864#1_0" index="0" allow="pedestrian" speed="8.33" length="2.01" shape="1391.07,2173.26 1392.87,2172.36"/>
+ </edge>
+ <edge id="122394864#2" from="314636763" to="1367855923" priority="1" type="highway.footway">
+ <lane id="122394864#2_0" index="0" allow="pedestrian" speed="8.33" length="5.34" shape="1399.47,2168.95 1404.21,2166.48"/>
+ </edge>
+ <edge id="122641556#0" from="1369844758" to="1369844762" priority="1" type="highway.steps">
+ <lane id="122641556#0_0" index="0" allow="pedestrian" speed="1.39" length="4.15" shape="1440.52,2213.33 1438.62,2209.64"/>
+ </edge>
+ <edge id="122641556#1" from="1369844762" to="1369844770" priority="1" type="highway.steps">
+ <lane id="122641556#1_0" index="0" allow="pedestrian" speed="1.39" length="4.82" shape="1434.26,2201.19 1432.04,2196.92"/>
+ </edge>
+ <edge id="122641557" from="1369844780" to="1369844786" priority="1" type="highway.steps" shape="1476.61,2280.66 1478.92,2285.27 1481.20,2289.82">
+ <lane id="122641557_0" index="0" allow="pedestrian" speed="1.39" length="10.25" shape="1478.09,2279.92 1480.40,2284.53 1482.68,2289.08"/>
+ </edge>
+ <edge id="122641559#0" from="1369844756" to="1369844757" priority="1" type="highway.steps">
+ <lane id="122641559#0_0" index="0" allow="pedestrian" speed="1.39" length="4.35" shape="1453.17,2207.13 1451.23,2203.24"/>
+ </edge>
+ <edge id="122641559#1" from="1369844757" to="1369844760" priority="1" type="highway.steps">
+ <lane id="122641559#1_0" index="0" allow="pedestrian" speed="1.39" length="5.07" shape="1446.93,2194.75 1444.62,2190.23"/>
+ </edge>
+ <edge id="122641560#0" from="1369844763" to="1369844772" priority="1" type="highway.steps">
+ <lane id="122641560#0_0" index="0" allow="pedestrian" speed="1.39" length="3.85" shape="1426.51,2220.31 1424.78,2216.88"/>
+ </edge>
+ <edge id="122641560#1" from="1369844772" to="1369844774" priority="1" type="highway.steps">
+ <lane id="122641560#1_0" index="0" allow="pedestrian" speed="1.39" length="4.28" shape="1420.51,2208.15 1418.68,2204.28"/>
+ </edge>
+ <edge id="123339612" from="1366723470" to="1375799451" priority="15" type="railway.rail" spreadType="center" shape="766.44,922.99 687.34,765.58 662.82,697.49 648.51,628.53 634.60,535.37 633.15,439.62 636.95,390.22 646.12,341.49 684.53,251.70 732.54,177.25 778.30,130.15 831.74,81.53 864.20,59.43 893.95,42.35 927.08,27.68 940.14,21.91 978.46,7.90 989.03,4.24">
+ <lane id="123339612_0" index="0" allow="rail_fast" speed="83.33" length="1108.28" shape="766.44,922.99 687.34,765.58 662.82,697.49 648.51,628.53 634.60,535.37 633.15,439.62 636.95,390.22 646.12,341.49 684.53,251.70 732.54,177.25 778.30,130.15 831.74,81.53 864.20,59.43 893.95,42.35 927.08,27.68 940.14,21.91 978.46,7.90 989.03,4.24"/>
+ </edge>
+ <edge id="123339613" from="1375799449" to="256633248" priority="15" type="railway.rail" spreadType="center" shape="987.55,0.00 976.92,3.68 938.39,17.77 891.90,38.34 861.82,54.57 828.95,77.98 775.15,126.93 729.17,174.65 680.47,249.70 641.77,340.26 632.48,389.64 628.64,439.49 630.10,535.74 644.07,629.31 658.47,698.72 683.14,767.20 763.20,924.92">
+ <lane id="123339613_0" index="0" allow="rail_fast" speed="83.33" length="1116.26" shape="987.55,0.00 976.92,3.68 938.39,17.77 891.90,38.34 861.82,54.57 828.95,77.98 775.15,126.93 729.17,174.65 680.47,249.70 641.77,340.26 632.48,389.64 628.64,439.49 630.10,535.74 644.07,629.31 658.47,698.72 683.14,767.20 763.20,924.92"/>
+ </edge>
+ <edge id="123339618" from="1367073433" to="1367073439" priority="15" type="railway.rail" spreadType="center">
+ <lane id="123339618_0" index="0" allow="rail_fast" speed="83.33" length="147.14" shape="713.63,784.35 780.86,915.24"/>
+ </edge>
+ <edge id="123339619" from="1367073436" to="1367073442" priority="15" type="railway.rail" spreadType="center">
+ <lane id="123339619_0" index="0" allow="rail_fast" speed="83.33" length="148.80" shape="709.93,785.79 778.01,918.11"/>
+ </edge>
+ <edge id="129780019#0" from="450564005" to="450564006" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780019#0_0" index="0" speed="22.22" length="2.20" shape="1400.22,2152.83 1401.26,2154.77"/>
+ </edge>
+ <edge id="129780019#1" from="450564006" to="1367855923" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780019#1_0" index="0" speed="22.22" length="0.86" shape="1405.43,2162.27 1405.86,2163.02"/>
+ </edge>
+ <edge id="129780019#2" from="1367855923" to="320879175" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780019#2_0" index="0" speed="22.22" length="309.17" shape="1410.03,2170.68 1551.35,2445.66"/>
+ </edge>
+ <edge id="129780020" from="320879142" to="950094380" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780020_0" index="0" speed="22.22" length="2.53" shape="1313.03,1997.59 1310.50,1997.66"/>
+ </edge>
+ <edge id="129780022#0" from="248913124" to="1257054205" priority="9" type="highway.primary">
+ <lane id="129780022#0_0" index="0" speed="27.78" length="60.58" shape="1414.94,1930.92 1361.35,1959.15"/>
+ </edge>
+ <edge id="129780022#1" from="1257054205" to="13929747" priority="9" type="highway.primary">
+ <lane id="129780022#1_0" index="0" speed="27.78" length="4.67" shape="1352.86,1963.63 1348.72,1965.81"/>
+ </edge>
+ <edge id="129780022#2" from="13929747" to="435668534" priority="9" type="highway.primary" shape="1345.18,1965.82 1321.80,1978.44 1297.62,1991.64">
+ <lane id="129780022#2_0" index="0" speed="27.78" length="47.74" shape="1343.24,1968.74 1322.58,1979.89 1301.28,1991.52"/>
+ </edge>
+ <edge id="129780022#3" from="435668534" to="1263725266" priority="9" type="highway.primary">
+ <lane id="129780022#3_0" index="0" speed="27.78" length="238.99" shape="1295.67,1994.55 1084.74,2106.91"/>
+ </edge>
+ <edge id="129780022#4" from="1263725266" to="427996791" priority="9" type="highway.primary">
+ <lane id="129780022#4_0" index="0" speed="27.78" length="2.84" shape="1081.39,2108.69 1078.87,2110.00"/>
+ </edge>
+ <edge id="129780022#5" from="427996791" to="435668539" priority="9" type="highway.primary">
+ <lane id="129780022#5_0" index="0" speed="27.78" length="345.41" shape="1072.85,2113.16 767.16,2273.98"/>
+ </edge>
+ <edge id="129780026#0" from="435668513" to="950094458" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780026#0_0" index="0" speed="22.22" length="1.22" shape="1410.23,1915.19 1410.79,1916.27"/>
+ </edge>
+ <edge id="129780026#1" from="950094458" to="248913124" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780026#1_0" index="0" speed="22.22" length="3.07" shape="1414.72,1923.80 1416.15,1926.52"/>
+ </edge>
+ <edge id="129780026#2" from="248913124" to="950094434" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780026#2_0" index="0" speed="22.22" length="3.89" shape="1417.32,1928.78 1419.13,1932.23"/>
+ </edge>
+ <edge id="129780026#3" from="950094434" to="945146413" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780026#3_0" index="0" speed="22.22" length="2.61" shape="1421.74,1937.25 1422.95,1939.56"/>
+ </edge>
+ <edge id="129780028" from="945146437" to="252418151" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="129780028_0" index="0" speed="22.22" length="12.01" shape="1470.39,2037.23 1459.86,2043.01"/>
+ </edge>
+ <edge id="130443629#0" from="250685721" to="243489891" priority="6" type="highway.tertiary" shape="773.69,2484.93 758.26,2368.80 746.13,2290.28">
+ <lane id="130443629#0_0" index="0" speed="22.22" length="179.01" shape="770.97,2477.00 756.62,2369.01 745.92,2299.76"/>
+ </edge>
+ <edge id="130443629#1" from="243489891" to="948350640" priority="6" type="highway.tertiary">
+ <lane id="130443629#1_0" index="0" speed="22.22" length="11.79" shape="744.48,2290.44 743.32,2278.71"/>
+ </edge>
+ <edge id="130443629#2" from="948350640" to="435668511" priority="6" type="highway.tertiary">
+ <lane id="130443629#2_0" index="0" speed="22.22" length="0.70" shape="743.03,2276.60 742.93,2275.91"/>
+ </edge>
+ <edge id="130443629#3" from="435668511" to="948350615" priority="6" type="highway.tertiary">
+ <lane id="130443629#3_0" index="0" speed="22.22" length="4.48" shape="742.07,2267.26 741.66,2262.80"/>
+ </edge>
+ <edge id="130443629#4" from="948350615" to="428303370" priority="6" type="highway.tertiary">
+ <lane id="130443629#4_0" index="0" speed="22.22" length="10.60" shape="741.21,2257.83 740.24,2247.28"/>
+ </edge>
+ <edge id="130443629#5" from="428303370" to="445506221" priority="6" type="highway.tertiary">
+ <lane id="130443629#5_0" index="0" speed="22.22" length="166.99" shape="738.11,2228.33 714.57,2063.01"/>
+ </edge>
+ <edge id="130443629#6" from="445506221" to="1231011197" priority="6" type="highway.tertiary">
+ <lane id="130443629#6_0" index="0" speed="22.22" length="10.65" shape="713.69,2056.67 712.25,2046.12"/>
+ </edge>
+ <edge id="130443629#7" from="1231011197" to="1457695393" priority="6" type="highway.tertiary">
+ <lane id="130443629#7_0" index="0" speed="22.22" length="163.62" shape="711.42,2039.98 689.48,1877.84"/>
+ </edge>
+ <edge id="130443629#8" from="1457695393" to="30406565" priority="6" type="highway.tertiary">
+ <lane id="130443629#8_0" index="0" speed="22.22" length="9.14" shape="688.15,1867.46 687.04,1858.39"/>
+ </edge>
+ <edge id="130443630#0" from="552842256" to="445506220" priority="6" type="highway.tertiary">
+ <lane id="130443630#0_0" index="0" speed="22.22" length="162.41" shape="716.13,1651.57 739.91,1490.90"/>
+ </edge>
+ <edge id="130443630#1" from="445506220" to="966097869" priority="6" type="highway.tertiary">
+ <lane id="130443630#1_0" index="0" speed="22.22" length="18.91" shape="741.59,1479.55 744.33,1460.84"/>
+ </edge>
+ <edge id="130443630#10" from="1780219345" to="1780219355" priority="6" type="highway.tertiary">
+ <lane id="130443630#10_0" index="0" speed="22.22" length="18.14" shape="786.05,1171.70 788.75,1153.75"/>
+ </edge>
+ <edge id="130443630#11" from="1780219355" to="444026889" priority="6" type="highway.tertiary">
+ <lane id="130443630#11_0" index="0" speed="22.22" length="58.19" shape="790.27,1143.68 798.93,1086.14"/>
+ </edge>
+ <edge id="130443630#2" from="966097869" to="1634988377" priority="6" type="highway.tertiary">
+ <lane id="130443630#2_0" index="0" speed="22.22" length="0.70" shape="745.71,1451.44 745.81,1450.75"/>
+ </edge>
+ <edge id="130443630#3" from="1634988377" to="1726380194" priority="6" type="highway.tertiary">
+ <lane id="130443630#3_0" index="0" speed="22.22" length="10.67" shape="747.20,1441.31 748.76,1430.76"/>
+ </edge>
+ <edge id="130443630#4" from="1726380194" to="446017744" priority="6" type="highway.tertiary">
+ <lane id="130443630#4_0" index="0" speed="22.22" length="117.08" shape="749.66,1424.59 766.67,1308.75"/>
+ </edge>
+ <edge id="130443630#5" from="446017744" to="950640413" priority="6" type="highway.tertiary">
+ <lane id="130443630#5_0" index="0" speed="22.22" length="2.70" shape="768.01,1299.42 768.38,1296.74"/>
+ </edge>
+ <edge id="130443630#6" from="950640413" to="30406599" priority="6" type="highway.tertiary">
+ <lane id="130443630#6_0" index="0" speed="22.22" length="5.89" shape="768.85,1293.34 769.52,1287.49"/>
+ </edge>
+ <edge id="130443630#7" from="30406599" to="950640411" priority="6" type="highway.tertiary">
+ <lane id="130443630#7_0" index="0" speed="22.22" length="12.00" shape="770.08,1282.66 771.45,1270.74"/>
+ </edge>
+ <edge id="130443630#8" from="950640411" to="446017741" priority="6" type="highway.tertiary">
+ <lane id="130443630#8_0" index="0" speed="22.22" length="2.91" shape="771.78,1267.89 772.11,1265.00"/>
+ </edge>
+ <edge id="130443630#9" from="446017741" to="1780219345" priority="6" type="highway.tertiary">
+ <lane id="130443630#9_0" index="0" speed="22.22" length="74.25" shape="773.36,1256.03 784.41,1182.60"/>
+ </edge>
+ <edge id="130443635#0" from="250682807" to="250683337" priority="5" type="highway.unclassified" spreadType="center" shape="1536.49,2453.11 1486.22,2356.51 1434.38,2258.21">
+ <lane id="130443635#0_0" index="0" speed="22.22" length="216.93" shape="1536.49,2453.11 1486.22,2356.51 1435.82,2260.95"/>
+ </edge>
+ <edge id="130443635#1" from="250683337" to="1367855926" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="130443635#1_0" index="0" speed="22.22" length="85.77" shape="1432.93,2255.47 1393.05,2179.53"/>
+ </edge>
+ <edge id="130443635#2" from="1367855926" to="250685829" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="130443635#2_0" index="0" speed="22.22" length="4.73" shape="1390.80,2175.25 1388.60,2171.07"/>
+ </edge>
+ <edge id="132323955" from="320879142" to="2006433692" priority="5" type="highway.unclassified">
+ <lane id="132323955_0" index="0" speed="22.22" length="38.31" shape="1321.88,1999.40 1339.62,2033.36"/>
+ </edge>
+ <edge id="133868186" from="948350707" to="435668539" priority="9" type="highway.primary" spreadType="center">
+ <lane id="133868186_0" index="0" speed="27.78" length="3.31" shape="757.15,2269.37 761.17,2269.60"/>
+ <lane id="133868186_1" index="1" speed="27.78" length="3.31" shape="756.96,2272.66 760.98,2272.90"/>
+ <lane id="133868186_2" index="2" speed="27.78" length="3.31" shape="756.76,2275.96 760.79,2276.19"/>
+ <lane id="133868186_3" index="3" speed="27.78" length="3.31" shape="756.57,2279.25 757.72,2279.32"/>
+ </edge>
+ <edge id="133868188" from="948350607" to="243489891" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="133868188_0" index="0" speed="22.22" length="0.69" shape="758.33,2286.90 757.66,2287.09"/>
+ </edge>
+ <edge id="133868191#0" from="243489891" to="948350597" priority="9" type="highway.primary" spreadType="center">
+ <lane id="133868191#0_0" index="0" speed="27.78" length="2.75" shape="742.07,2297.74 739.18,2299.13"/>
+ <lane id="133868191#0_1" index="1" speed="27.78" length="2.75" shape="740.63,2294.77 737.54,2296.26"/>
+ <lane id="133868191#0_2" index="2" speed="27.78" length="2.75" shape="739.20,2291.79 735.91,2293.38"/>
+ <lane id="133868191#0_3" index="3" speed="27.78" length="2.75" shape="737.76,2288.82 737.12,2289.13"/>
+ </edge>
+ <edge id="133868191#1" from="948350597" to="948350673" priority="9" type="highway.primary" spreadType="center">
+ <lane id="133868191#1_0" index="0" speed="27.78" length="2.47" shape="737.72,2299.84 732.94,2302.56"/>
+ <lane id="133868191#1_1" index="1" speed="27.78" length="2.47" shape="737.19,2296.35 736.09,2296.98"/>
+ <lane id="133868191#1_2" index="2" speed="27.78" length="2.47" shape="735.75,2293.37 734.46,2294.11"/>
+ <lane id="133868191#1_3" index="3" speed="27.78" length="2.47" shape="734.23,2290.44 732.83,2291.24"/>
+ </edge>
+ <edge id="133868191#2" from="948350673" to="435668557" priority="9" type="highway.primary" spreadType="center">
+ <lane id="133868191#2_0" index="0" speed="27.78" length="119.48" shape="727.51,2305.54 622.74,2362.99"/>
+ <lane id="133868191#2_1" index="1" speed="27.78" length="119.48" shape="725.92,2302.65 621.15,2360.10"/>
+ <lane id="133868191#2_2" index="2" speed="27.78" length="119.48" shape="724.33,2299.76 619.57,2357.21"/>
+ <lane id="133868191#2_3" index="3" speed="27.78" length="119.48" shape="722.75,2296.86 617.98,2354.31"/>
+ </edge>
+ <edge id="133868229#0" from="948350707" to="948350588" priority="15" type="highway.primary|railway.tram">
+ <lane id="133868229#0_0" index="0" speed="27.78" length="7.14" shape="750.00,2268.95 758.93,2263.73"/>
+ <lane id="133868229#0_1" index="1" speed="27.78" length="7.14" shape="757.19,2268.57 760.60,2266.58"/>
+ </edge>
+ <edge id="133868229#1" from="948350588" to="948350630" priority="15" type="highway.primary|railway.tram">
+ <lane id="133868229#1_0" index="0" speed="27.78" length="4.14" shape="764.56,2260.42 768.45,2258.13"/>
+ <lane id="133868229#1_1" index="1" speed="27.78" length="4.14" shape="766.23,2263.27 769.47,2261.36"/>
+ </edge>
+ <edge id="133868231#0" from="948350607" to="948350595" priority="15" type="highway.tertiary|railway.tram" spreadType="center">
+ <lane id="133868231#0_0" index="0" speed="27.78" length="3.70" shape="761.87,2287.57 759.86,2290.68"/>
+ </edge>
+ <edge id="133868231#1" from="948350595" to="948350636" priority="15" type="highway.tertiary|railway.tram" spreadType="center" shape="759.57,2291.12 758.23,2293.79 757.24,2298.59 756.63,2306.21">
+ <lane id="133868231#1_0" index="0" speed="27.78" length="11.45" shape="758.04,2294.71 757.24,2298.59 756.64,2306.06"/>
+ </edge>
+ <edge id="133960538#0" from="438042386" to="438042385" priority="7" type="highway.secondary" spreadType="center" shape="1175.97,1687.44 1182.97,1693.09 1188.23,1699.30 1193.97,1705.98 1198.65,1713.35 1204.78,1726.31 1208.71,1740.46 1211.11,1748.62">
+ <lane id="133960538#0_0" index="0" speed="27.78" length="62.76" shape="1180.71,1689.15 1184.13,1691.91 1189.48,1698.23 1195.22,1704.91 1200.04,1712.46 1206.28,1725.61 1210.30,1740.02 1211.38,1743.67"/>
+ <lane id="133960538#0_1" index="1" speed="27.78" length="62.76" shape="1178.64,1691.72 1181.81,1694.28 1186.97,1700.36 1192.71,1707.06 1197.26,1714.23 1203.29,1727.02 1207.12,1740.90 1208.21,1744.60"/>
+ </edge>
+ <edge id="133960538#1" from="438042385" to="1257054108" priority="7" type="highway.secondary" spreadType="center" shape="1211.11,1748.62 1214.55,1757.78 1218.09,1766.84 1307.17,1938.59">
+ <lane id="133960538#1_0" index="0" speed="27.78" length="203.68" shape="1214.21,1752.19 1216.09,1757.20 1219.62,1766.24 1306.39,1933.51"/>
+ <lane id="133960538#1_1" index="1" speed="27.78" length="203.68" shape="1211.12,1753.35 1213.00,1758.36 1216.55,1767.44 1303.46,1935.02"/>
+ </edge>
+ <edge id="133960538#2" from="1257054108" to="452446345" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="133960538#2_0" index="0" speed="27.78" length="5.85" shape="1311.00,1941.90 1313.95,1946.95"/>
+ <lane id="133960538#2_1" index="1" speed="27.78" length="5.85" shape="1308.15,1943.56 1311.10,1948.61"/>
+ </edge>
+ <edge id="133960539#0" from="438042381" to="951739771" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="133960539#0_0" index="0" speed="27.78" length="30.10" shape="1163.66,1692.72 1149.39,1666.22"/>
+ <lane id="133960539#0_1" index="1" speed="27.78" length="30.10" shape="1166.57,1691.16 1152.29,1664.65"/>
+ </edge>
+ <edge id="133960539#1" from="951739771" to="1780219359" priority="7" type="highway.secondary" spreadType="center" shape="1150.68,1665.14 1058.37,1487.74 1044.26,1474.36 1030.84,1459.74 1023.96,1449.81 1018.20,1439.28 1014.03,1430.53 1011.10,1421.83 1007.43,1407.23 1005.92,1393.82 1003.94,1383.86 1000.37,1374.72 940.72,1260.39 924.37,1227.56">
+ <lane id="133960539#1_0" index="0" speed="27.78" length="484.25" shape="1145.87,1659.47 1057.04,1488.75 1043.12,1475.56 1029.63,1460.86 1022.60,1450.75 1016.76,1440.07 1012.54,1431.24 1009.54,1422.36 1005.83,1407.63 1004.28,1394.00 1002.35,1384.32 998.83,1375.32 939.26,1261.15 925.06,1232.66"/>
+ <lane id="133960539#1_1" index="1" speed="27.78" length="484.25" shape="1148.80,1657.95 1059.71,1486.74 1045.40,1473.17 1032.06,1458.63 1025.32,1448.87 1019.65,1438.49 1015.52,1429.82 1012.67,1421.31 1009.03,1406.82 1007.56,1393.63 1005.53,1383.39 1001.90,1374.12 942.19,1259.62 928.02,1231.19"/>
+ </edge>
+ <edge id="133960539#2" from="1780219359" to="446017746" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="133960539#2_0" index="0" speed="27.78" length="2.58" shape="920.72,1223.95 919.57,1221.63"/>
+ <lane id="133960539#2_1" index="1" speed="27.78" length="2.58" shape="923.68,1222.47 922.52,1220.16"/>
+ </edge>
+ <edge id="133960539#3" from="446017746" to="950640550" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="133960539#3_0" index="0" speed="27.78" length="2.40" shape="916.63,1216.08 915.45,1214.00"/>
+ <lane id="133960539#3_1" index="1" speed="27.78" length="2.40" shape="919.50,1214.46 918.32,1212.38"/>
+ </edge>
+ <edge id="133960539#4" from="950640550" to="438042367" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="133960539#4_0" index="0" speed="27.78" length="3.02" shape="913.85,1211.18 912.26,1208.61"/>
+ <lane id="133960539#4_1" index="1" speed="27.78" length="3.02" shape="916.66,1209.45 915.07,1206.88"/>
+ </edge>
+ <edge id="134572336#0" from="267584629" to="477486714" priority="5" type="highway.unclassified" spreadType="center" shape="607.00,2300.19 612.11,2279.76 622.67,2260.14 623.92,2258.77 640.20,2240.84 666.99,2225.88">
+ <lane id="134572336#0_0" index="0" speed="22.22" length="95.11" shape="605.40,2299.79 610.56,2279.16 621.31,2259.18 622.70,2257.65 639.16,2239.53 661.83,2226.87"/>
+ <lane id="134572336#0_1" index="1" speed="22.22" length="95.11" shape="608.60,2300.59 613.66,2280.36 624.02,2261.10 625.14,2259.88 641.24,2242.15 663.44,2229.76"/>
+ </edge>
+ <edge id="134572336#1" from="477486714" to="446017735" priority="5" type="highway.unclassified" spreadType="center" shape="666.99,2225.88 693.99,2224.04 727.78,2228.85">
+ <lane id="134572336#1_0" index="0" speed="22.22" length="48.49" shape="675.43,2223.65 694.06,2222.38 723.93,2226.63"/>
+ <lane id="134572336#1_1" index="1" speed="22.22" length="48.49" shape="675.66,2226.94 693.93,2225.70 723.46,2229.90"/>
+ </edge>
+ <edge id="134572336#2" from="446017735" to="428303370" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="134572336#2_0" index="0" speed="22.22" length="4.85" shape="730.40,2228.40 734.65,2230.73"/>
+ <lane id="134572336#2_1" index="1" speed="22.22" length="4.85" shape="728.82,2231.30 733.07,2233.62"/>
+ </edge>
+ <edge id="134572336#3" from="428303370" to="445506215" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="134572336#3_0" index="0" speed="22.22" length="9.28" shape="749.62,2243.15 755.87,2250.00"/>
+ <lane id="134572336#3_1" index="1" speed="22.22" length="9.28" shape="747.18,2245.37 753.43,2252.23"/>
+ </edge>
+ <edge id="134572340#0" from="445506215" to="1479400627" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="134572340#0_0" index="0" speed="22.22" length="1.39" shape="767.40,2258.01 768.73,2258.42"/>
+ <lane id="134572340#0_1" index="1" speed="22.22" length="1.39" shape="766.43,2261.17 767.76,2261.58"/>
+ </edge>
+ <edge id="134572340#1" from="1479400627" to="948350630" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="134572340#1_0" index="0" speed="22.22" length="1.00" shape="770.27,2258.90 771.75,2259.35"/>
+ <lane id="134572340#1_1" index="1" speed="22.22" length="1.00" shape="769.30,2262.05 769.73,2262.18"/>
+ </edge>
+ <edge id="134872478" from="1482088973" to="1482088987" priority="1" type="highway.pedestrian">
+ <lane id="134872478_0" index="0" allow="pedestrian" speed="8.33" length="80.18" shape="725.65,1767.74 762.25,1839.08"/>
+ </edge>
+ <edge id="139118802#0" from="452446338" to="443101938" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118802#0_0" index="0" speed="22.22" length="22.34" shape="1588.22,1856.27 1568.44,1866.64"/>
+ </edge>
+ <edge id="139118802#1" from="443101938" to="945146413" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118802#1_0" index="0" speed="22.22" length="159.61" shape="1568.44,1866.64 1427.14,1940.88"/>
+ </edge>
+ <edge id="139118802#2" from="945146413" to="252418152" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118802#2_0" index="0" speed="22.22" length="11.45" shape="1421.62,1943.74 1411.43,1948.97"/>
+ </edge>
+ <edge id="139118804#0" from="320879142" to="452446339" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118804#0_0" index="0" speed="22.22" length="8.24" shape="1311.45,2001.33 1304.14,2005.12"/>
+ </edge>
+ <edge id="139118804#1" from="452446339" to="1545672787" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118804#1_0" index="0" speed="22.22" length="124.25" shape="1304.14,2005.12 1194.46,2063.51"/>
+ </edge>
+ <edge id="139118804#2" from="1545672787" to="252418937" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118804#2_0" index="0" speed="22.22" length="110.50" shape="1184.57,2068.78 1087.03,2120.70"/>
+ </edge>
+ <edge id="139118804#3" from="252418937" to="975934874" priority="5" type="highway.unclassified" spreadType="center" shape="1082.75,2122.97 1027.79,2152.14 829.27,2256.89 771.01,2287.62">
+ <lane id="139118804#3_0" index="0" speed="22.22" length="345.15" shape="1078.53,2125.22 1027.79,2152.14 829.27,2256.89 773.32,2286.40"/>
+ </edge>
+ <edge id="139118804#4" from="975934874" to="445823604" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118804#4_0" index="0" speed="22.22" length="0.56" shape="767.65,2289.36 767.16,2289.61"/>
+ </edge>
+ <edge id="139118805#0" from="950094494" to="974693391" priority="15" type="highway.primary|railway.tram">
+ <lane id="139118805#0_0" index="0" speed="27.78" length="46.24" shape="1296.04,1979.28 1336.83,1957.51"/>
+ <lane id="139118805#0_1" index="1" speed="27.78" length="46.24" shape="1297.59,1982.19 1338.39,1960.42"/>
+ </edge>
+ <edge id="139118805#1" from="974693391" to="1257054172" priority="15" type="highway.primary|railway.tram">
+ <lane id="139118805#1_0" index="0" speed="27.78" length="5.34" shape="1342.31,1954.59 1347.03,1952.09"/>
+ <lane id="139118805#1_1" index="1" speed="27.78" length="5.34" shape="1343.86,1957.51 1348.57,1955.01"/>
+ </edge>
+ <edge id="139118805#2" from="1257054172" to="950094458" priority="15" type="highway.primary|railway.tram">
+ <lane id="139118805#2_0" index="0" speed="27.78" length="60.52" shape="1355.42,1947.65 1408.93,1919.37"/>
+ <lane id="139118805#2_1" index="1" speed="27.78" length="60.52" shape="1356.96,1950.56 1410.47,1922.29"/>
+ </edge>
+ <edge id="139118806" from="450564004" to="450564005" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="139118806_0" index="0" speed="22.22" length="10.95" shape="1384.73,2157.21 1394.51,2152.29"/>
+ </edge>
+ <edge id="139118808" from="950094494" to="13929737" priority="5" type="highway.unclassified" spreadType="center" shape="1294.72,1985.59 1292.56,1979.87 1291.53,1973.90">
+ <lane id="139118808_0" index="0" speed="22.22" length="0.11" shape="1292.18,1977.66 1292.16,1977.56"/>
+ </edge>
+ <edge id="141190463" from="1545661417" to="250685816" priority="4" type="highway.residential" spreadType="center">
+ <lane id="141190463_0" index="0" speed="13.89" length="1.80" shape="1275.54,2219.28 1276.39,2220.86"/>
+ </edge>
+ <edge id="141190464" from="1545661417" to="450564004" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="141190464_0" index="0" speed="22.22" length="116.22" shape="1276.81,2215.08 1379.19,2160.09"/>
+ </edge>
+ <edge id="141190466#0" from="250685816" to="250686694" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="141190466#0_0" index="0" speed="22.22" length="57.40" shape="1275.85,2226.52 1225.09,2253.31"/>
+ </edge>
+ <edge id="141190466#1" from="250686694" to="250685766" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="141190466#1_0" index="0" speed="22.22" length="57.48" shape="1219.60,2256.21 1168.84,2283.16"/>
+ </edge>
+ <edge id="141190466#2" from="250685766" to="426879846" priority="5" type="highway.unclassified" spreadType="center" shape="1164.64,2285.38 1063.13,2338.26 960.30,2390.40 852.14,2448.74">
+ <lane id="141190466#2_0" index="0" speed="22.22" length="347.88" shape="1160.42,2287.58 1063.13,2338.26 960.30,2390.40 852.14,2448.74"/>
+ </edge>
+ <edge id="141191247#0" from="1545672819" to="1545672806" priority="1" type="highway.footway">
+ <lane id="141191247#0_0" index="0" allow="pedestrian" speed="8.33" length="2.20" shape="1174.09,2092.36 1172.49,2090.85"/>
+ </edge>
+ <edge id="141191247#1" from="1545672806" to="1545673105" priority="1" type="highway.footway" shape="1172.90,2088.98 1168.13,2085.06 1092.59,2124.91 1110.81,2160.62">
+ <lane id="141191247#1_0" index="0" allow="pedestrian" speed="8.33" length="118.13" shape="1169.36,2088.20 1167.93,2087.03 1094.80,2125.61 1110.07,2155.54"/>
+ </edge>
+ <edge id="141191247#2" from="1545673105" to="1545673345" priority="1" type="highway.footway">
+ <lane id="141191247#2_0" index="0" allow="pedestrian" speed="8.33" length="58.61" shape="1114.49,2164.21 1141.14,2216.42"/>
+ </edge>
+ <edge id="141191247#3" from="1545673345" to="1545673319" priority="1" type="highway.footway" shape="1141.83,2221.41 1165.58,2267.95 1259.47,2219.72 1259.48,2214.22">
+ <lane id="141191247#3_0" index="0" allow="pedestrian" speed="8.33" length="150.08" shape="1145.47,2224.91 1166.30,2265.72 1257.83,2218.71 1257.83,2217.34"/>
+ </edge>
+ <edge id="141191247#4" from="1545673319" to="1545673304" priority="1" type="highway.footway">
+ <lane id="141191247#4_0" index="0" allow="pedestrian" speed="8.33" length="2.18" shape="1257.82,2213.30 1257.80,2211.12"/>
+ </edge>
+ <edge id="141191248#0" from="1545672864" to="1545672843" priority="1" type="highway.footway" shape="1197.19,2109.26 1191.53,2099.68 1191.03,2098.99">
+ <lane id="141191248#0_0" index="0" allow="pedestrian" speed="8.33" length="4.04" shape="1193.28,2105.88 1191.22,2102.41"/>
+ </edge>
+ <edge id="141191248#1" from="1545672843" to="1545672797" priority="1" type="highway.footway" shape="1191.03,2098.99 1189.88,2097.39 1188.45,2093.93 1187.04,2088.22 1187.61,2083.58 1188.51,2080.15">
+ <lane id="141191248#1_0" index="0" allow="pedestrian" speed="8.33" length="1.29" shape="1186.56,2093.09 1186.24,2091.84"/>
+ </edge>
+ <edge id="141191248#2" from="1545672797" to="1545672785" priority="1" type="highway.footway" shape="1188.51,2080.15 1192.21,2075.01 1247.38,2046.15">
+ <lane id="141191248#2_0" index="0" allow="pedestrian" speed="8.33" length="67.28" shape="1188.40,2077.48 1191.09,2073.73 1246.62,2044.69"/>
+ </edge>
+ <edge id="141191249#0" from="1545673349" to="1545673345" priority="1" type="highway.footway">
+ <lane id="141191249#0_0" index="0" allow="pedestrian" speed="8.33" length="0.93" shape="1136.84,2222.14 1137.67,2221.71"/>
+ </edge>
+ <edge id="141191249#1" from="1545673345" to="1545673333" priority="1" type="highway.footway">
+ <lane id="141191249#1_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1145.31,2217.76 1147.88,2216.43"/>
+ </edge>
+ <edge id="141191249#2" from="1545673333" to="1545673280" priority="1" type="highway.footway" shape="1151.68,2216.33 1154.67,2216.86 1157.37,2217.24 1160.41,2216.54 1162.72,2215.20 1190.28,2200.75">
+ <lane id="141191249#2_0" index="0" allow="pedestrian" speed="8.33" length="31.54" shape="1156.30,2215.42 1157.30,2215.57 1159.80,2214.99 1161.89,2213.77 1184.51,2201.92"/>
+ </edge>
+ <edge id="141191249#3" from="1545673280" to="1545673191" priority="1" type="highway.footway">
+ <lane id="141191249#3_0" index="0" allow="pedestrian" speed="8.33" length="25.71" shape="1193.12,2197.40 1215.89,2185.47"/>
+ </edge>
+ <edge id="141191249#4" from="1545673191" to="1545673135" priority="1" type="highway.footway">
+ <lane id="141191249#4_0" index="0" allow="pedestrian" speed="8.33" length="30.31" shape="1224.29,2181.05 1251.11,2166.93"/>
+ </edge>
+ <edge id="141191249#5" from="1545673135" to="1545673031" priority="1" type="highway.footway">
+ <lane id="141191249#5_0" index="0" allow="pedestrian" speed="8.33" length="41.17" shape="1259.51,2162.50 1295.94,2143.32"/>
+ </edge>
+ <edge id="141191250#0" from="1545673118" to="1545673105" priority="1" type="highway.footway">
+ <lane id="141191250#0_0" index="0" allow="pedestrian" speed="8.33" length="1.58" shape="1105.75,2161.55 1107.13,2160.78"/>
+ </edge>
+ <edge id="141191250#1" from="1545673105" to="1545673065" priority="1" type="highway.footway" shape="1110.81,2160.62 1121.27,2154.80 1122.59,2153.96">
+ <lane id="141191250#1_0" index="0" allow="pedestrian" speed="8.33" length="4.57" shape="1114.26,2156.81 1118.26,2154.59"/>
+ </edge>
+ <edge id="141191250#2" from="1545673065" to="1545672874" priority="1" type="highway.footway" shape="1122.59,2153.96 1123.07,2151.90 1124.05,2149.21 1125.37,2147.86 1127.20,2146.49 1186.40,2115.00">
+ <lane id="141191250#2_0" index="0" allow="pedestrian" speed="8.33" length="69.09" shape="1121.90,2150.32 1122.63,2148.32 1124.19,2146.71 1126.21,2145.17 1181.10,2115.96"/>
+ </edge>
+ <edge id="141191250#3" from="1545672874" to="1545672864" priority="1" type="highway.footway">
+ <lane id="141191250#3_0" index="0" allow="pedestrian" speed="8.33" length="2.89" shape="1189.53,2111.46 1192.09,2110.10"/>
+ </edge>
+ <edge id="141191250#4" from="1545672864" to="1545672804" priority="1" type="highway.footway">
+ <lane id="141191250#4_0" index="0" allow="pedestrian" speed="8.33" length="44.67" shape="1200.48,2105.64 1239.92,2084.65"/>
+ </edge>
+ <edge id="141191250#5" from="1545672804" to="1545672788" priority="1" type="highway.footway">
+ <lane id="141191250#5_0" index="0" allow="pedestrian" speed="8.33" length="21.07" shape="1248.31,2080.19 1266.91,2070.30"/>
+ </edge>
+ <edge id="141191251#0" from="1545673280" to="1545673218" priority="1" type="highway.footway" shape="1190.28,2200.75 1187.95,2198.06 1185.36,2195.49 1182.92,2193.29 1179.76,2191.53 1176.54,2190.64">
+ <lane id="141191251#0_0" index="0" allow="pedestrian" speed="8.33" length="7.41" shape="1185.24,2197.70 1184.20,2196.66 1181.95,2194.64 1179.41,2193.22"/>
+ </edge>
+ <edge id="141191251#1" from="1545673218" to="1545673223" priority="1" type="highway.footway" shape="1176.54,2190.64 1172.68,2190.04 1169.70,2190.24 1166.94,2190.65 1164.77,2191.70">
+ <lane id="141191251#1_0" index="0" allow="pedestrian" speed="8.33" length="1.52" shape="1170.32,2191.85 1169.81,2191.89 1168.81,2192.04"/>
+ </edge>
+ <edge id="141191251#2" from="1545673223" to="1545673333" priority="1" type="highway.footway" shape="1164.77,2191.70 1162.33,2193.63 1160.13,2196.79 1155.94,2203.01 1154.02,2206.17 1152.64,2210.11 1151.74,2213.60 1151.68,2216.33">
+ <lane id="141191251#2_0" index="0" allow="pedestrian" speed="8.33" length="17.37" shape="1162.01,2196.97 1161.48,2197.73 1157.31,2203.93 1155.52,2206.88 1154.19,2210.66 1153.82,2212.13"/>
+ </edge>
+ <edge id="141191252" from="1545672804" to="1545672824" priority="1" type="highway.footway">
+ <lane id="141191252_0" index="0" allow="pedestrian" speed="8.33" length="3.17" shape="1248.61,2087.53 1249.97,2090.40"/>
+ </edge>
+ <edge id="141191253#0" from="1545673150" to="1545673240" priority="1" type="highway.footway" shape="1309.98,2169.16 1303.54,2169.23 1297.68,2169.54 1292.34,2170.03 1287.21,2171.56 1280.78,2174.63 1275.18,2178.02 1269.08,2182.53 1264.52,2186.60 1260.35,2189.95 1256.69,2192.89">
+ <lane id="141191253#0_0" index="0" allow="pedestrian" speed="8.33" length="52.09" shape="1305.27,2170.87 1303.56,2170.88 1297.77,2171.19 1292.65,2171.66 1287.68,2173.14 1281.49,2176.12 1276.03,2179.43 1270.06,2183.85 1265.62,2187.83 1261.38,2191.24 1259.69,2192.60"/>
+ </edge>
+ <edge id="141191253#1" from="1545673240" to="1545673191" priority="1" type="highway.footway" shape="1256.69,2192.89 1252.92,2195.00 1249.55,2196.50 1245.44,2197.18 1240.82,2197.86 1236.40,2198.15 1232.90,2198.10 1230.11,2197.43 1227.83,2196.44 1226.11,2194.93 1224.47,2192.09 1221.00,2184.66">
+ <lane id="141191253#1_0" index="0" allow="pedestrian" speed="8.33" length="32.84" shape="1249.51,2198.17 1245.71,2198.80 1241.06,2199.49 1236.51,2199.79 1232.70,2199.75 1229.72,2199.03 1226.93,2197.86 1224.82,2195.99 1223.04,2192.92 1221.58,2189.80"/>
+ </edge>
+ <edge id="141191254#0" from="1545673135" to="1545673067" priority="1" type="highway.footway" shape="1256.14,2166.14 1254.25,2162.73 1252.27,2158.13 1249.98,2155.33 1248.13,2153.76 1245.45,2152.18">
+ <lane id="141191254#0_0" index="0" allow="pedestrian" speed="8.33" length="10.65" shape="1252.44,2162.68 1250.85,2158.99 1248.79,2156.49 1247.06,2155.02 1246.10,2154.46"/>
+ </edge>
+ <edge id="141191254#1" from="1545673067" to="1545673123" priority="1" type="highway.footway" shape="1245.45,2152.18 1240.89,2151.35 1233.90,2151.24 1228.66,2151.40 1221.17,2151.96 1213.04,2153.19 1205.65,2155.34 1197.18,2157.95 1187.19,2161.01 1183.08,2162.82 1182.08,2163.41">
+ <lane id="141191254#1_0" index="0" allow="pedestrian" speed="8.33" length="60.57" shape="1244.39,2153.67 1240.59,2152.97 1233.87,2152.89 1228.71,2153.05 1221.29,2153.61 1213.29,2154.82 1206.11,2156.93 1197.67,2159.53 1187.67,2162.59 1185.37,2163.61"/>
+ </edge>
+ <edge id="141191254#2" from="1545673123" to="1545673218" priority="1" type="highway.footway" shape="1182.08,2163.41 1181.06,2164.02 1179.20,2166.00 1177.80,2169.58 1176.22,2175.55 1175.65,2180.35 1175.71,2184.19 1175.84,2187.38 1176.54,2190.64">
+ <lane id="141191254#2_0" index="0" allow="pedestrian" speed="8.33" length="12.64" shape="1178.92,2171.78 1177.82,2175.97 1177.29,2180.55 1177.37,2184.25"/>
+ </edge>
+ <edge id="141191255#0" from="1545672923" to="1545672999" priority="1" type="highway.footway" shape="1274.93,2125.18 1275.85,2123.17 1276.18,2120.33 1275.34,2117.09 1273.41,2114.58 1270.31,2112.84 1266.90,2112.53 1263.27,2113.84 1261.13,2115.88 1259.82,2118.57 1259.59,2121.77 1260.36,2124.39 1260.99,2125.47 1258.56,2129.03 1257.87,2132.60 1258.32,2135.75 1260.00,2138.97 1262.94,2141.55 1266.15,2142.75 1269.74,2142.80 1272.78,2141.82 1275.37,2139.92 1276.17,2138.79">
+ <lane id="141191255#0_0" index="0" allow="pedestrian" speed="8.33" length="52.15" shape="1274.25,2122.65 1274.51,2120.44 1273.82,2117.83 1272.31,2115.86 1269.81,2114.45 1267.11,2114.20 1264.15,2115.27 1262.48,2116.87 1261.45,2119.00 1261.25,2121.59 1261.89,2123.73 1262.93,2125.54 1260.12,2129.68 1259.54,2132.64 1259.91,2135.23 1261.32,2137.94 1263.80,2140.11 1266.46,2141.11 1269.50,2141.15 1270.98,2140.67"/>
+ </edge>
+ <edge id="141191255#1" from="1545672999" to="1545672923" priority="1" type="highway.footway" shape="1276.17,2138.79 1277.36,2137.10 1278.32,2133.43 1278.13,2130.65 1277.03,2127.73 1274.93,2125.18">
+ <lane id="141191255#1_0" index="0" allow="pedestrian" speed="8.33" length="6.26" shape="1276.56,2133.65 1276.66,2133.27 1276.50,2131.01 1275.58,2128.57 1274.95,2127.80"/>
+ </edge>
+ <edge id="141191256#0" from="1545673223" to="1545673092" priority="1" type="highway.footway" shape="1164.77,2191.70 1161.61,2189.14 1158.42,2185.78 1155.80,2181.62 1153.93,2178.10 1152.64,2175.00 1152.15,2171.89 1152.01,2168.12 1152.52,2163.32 1152.72,2157.95">
+ <lane id="141191256#0_0" index="0" allow="pedestrian" speed="8.33" length="29.00" shape="1159.63,2189.44 1157.11,2186.80 1154.41,2182.50 1152.47,2178.87 1151.04,2175.45 1150.52,2172.15 1150.36,2168.18 1150.88,2163.07"/>
+ </edge>
+ <edge id="141191256#1" from="1545673092" to="1545672919" priority="1" type="highway.footway" shape="1152.72,2157.95 1153.16,2154.10 1154.64,2150.67 1156.68,2146.51 1159.58,2141.81 1163.36,2137.40 1166.88,2134.51 1169.03,2132.51 1173.81,2130.48 1179.08,2128.65 1183.65,2127.41 1188.43,2126.47 1189.89,2126.22">
+ <lane id="141191256#1_0" index="0" allow="pedestrian" speed="8.33" length="45.46" shape="1151.74,2153.21 1153.12,2150.02 1155.20,2145.78 1158.17,2140.95 1162.21,2136.21 1165.84,2133.24 1168.12,2131.11 1173.16,2128.96 1178.54,2127.09 1183.22,2125.82 1184.72,2125.52"/>
+ </edge>
+ <edge id="141191256#2" from="1545672919" to="1545672910" priority="1" type="highway.footway" shape="1189.89,2126.22 1196.89,2126.62 1203.07,2127.03 1208.17,2127.01 1213.69,2126.41 1218.41,2125.75 1222.77,2125.02 1227.08,2124.27">
+ <lane id="141191256#2_0" index="0" allow="pedestrian" speed="8.33" length="26.82" shape="1195.28,2124.87 1196.98,2124.97 1203.18,2125.38 1208.16,2125.36 1213.51,2124.77 1218.18,2124.12 1221.95,2123.49"/>
+ </edge>
+ <edge id="141191257" from="1545673030" to="1545672999" priority="1" type="highway.footway" shape="1281.00,2142.63 1278.81,2140.81 1276.17,2138.79">
+ <lane id="141191257_0" index="0" allow="pedestrian" speed="8.33" length="3.47" shape="1278.66,2142.77 1275.90,2140.66"/>
+ </edge>
+ <edge id="141191258#0" from="1545672954" to="1545673031" priority="1" type="highway.footway" shape="1286.23,2130.45 1287.14,2130.58 1292.28,2133.33 1296.25,2135.95 1299.06,2138.73 1300.95,2142.54">
+ <lane id="141191258#0_0" index="0" allow="pedestrian" speed="8.33" length="11.94" shape="1290.76,2130.65 1293.06,2131.87 1297.30,2134.67 1300.33,2137.66"/>
+ </edge>
+ <edge id="141191258#1" from="1545673031" to="1545673150" priority="1" type="highway.footway" shape="1300.95,2142.54 1309.82,2159.95 1310.52,2162.55 1310.15,2166.11 1309.98,2169.16">
+ <lane id="141191258#1_0" index="0" allow="pedestrian" speed="8.33" length="20.42" shape="1304.59,2146.06 1311.37,2159.36 1312.19,2162.42 1311.95,2164.73"/>
+ </edge>
+ <edge id="141191258#2" from="1545673150" to="1545673304" priority="1" type="highway.footway" shape="1309.98,2169.16 1310.06,2174.09 1309.63,2179.02 1308.88,2181.73 1306.95,2184.00 1303.49,2186.60 1294.03,2190.57 1288.68,2192.55 1283.76,2194.95 1280.60,2196.88 1277.74,2200.13 1277.05,2202.75 1276.09,2205.81 1274.95,2207.57 1270.90,2208.66 1259.42,2208.43">
+ <lane id="141191258#2_0" index="0" allow="pedestrian" speed="8.33" length="66.28" shape="1311.70,2173.87 1311.71,2174.07 1311.26,2179.32 1310.37,2182.52 1308.09,2185.21 1304.32,2188.05 1294.67,2192.09 1289.25,2194.10 1284.49,2196.43 1281.67,2198.16 1279.24,2200.93 1278.65,2203.17 1277.59,2206.52 1275.99,2208.99 1271.10,2210.31 1264.24,2210.18"/>
+ </edge>
+ <edge id="141191258#3" from="1545673304" to="1545673240" priority="1" type="highway.footway" shape="1259.42,2208.43 1257.67,2208.05 1256.10,2206.53 1255.02,2203.99 1254.66,2200.81 1255.42,2197.21 1256.69,2192.89">
+ <lane id="141191258#3_0" index="0" allow="pedestrian" speed="8.33" length="8.15" shape="1255.71,2208.45 1254.71,2207.48 1253.41,2204.42 1253.03,2201.01"/>
+ </edge>
+ <edge id="141191259#0" from="1545672852" to="1545672824" priority="1" type="highway.footway" shape="1277.60,2103.24 1273.29,2099.82 1267.71,2096.97 1262.17,2095.42 1256.60,2094.96 1250.63,2095.64">
+ <lane id="141191259#0_0" index="0" allow="pedestrian" speed="8.33" length="23.70" shape="1276.34,2104.34 1272.39,2101.21 1267.11,2098.51 1261.87,2097.06 1256.62,2096.62 1254.61,2096.85"/>
+ </edge>
+ <edge id="141191259#1" from="1545672824" to="1545672910" priority="1" type="highway.footway" shape="1250.63,2095.64 1242.13,2098.88 1235.83,2103.67 1231.91,2108.49 1229.22,2113.66 1227.81,2118.19 1227.08,2124.27">
+ <lane id="141191259#1_0" index="0" allow="pedestrian" speed="8.33" length="29.18" shape="1246.53,2098.97 1242.94,2100.34 1236.99,2104.87 1233.30,2109.40 1230.75,2114.29 1229.43,2118.54 1229.19,2120.58"/>
+ </edge>
+ <edge id="141191259#2" from="1545672910" to="1545673067" priority="1" type="highway.footway" shape="1227.08,2124.27 1228.04,2132.21 1229.55,2136.54 1232.44,2141.72 1236.03,2145.96 1240.58,2149.61 1245.45,2152.18">
+ <lane id="141191259#2_0" index="0" allow="pedestrian" speed="8.33" length="27.57" shape="1229.31,2128.96 1229.66,2131.84 1231.06,2135.87 1233.81,2140.77 1237.19,2144.77 1241.49,2148.22 1245.06,2150.11"/>
+ </edge>
+ <edge id="141191259#3" from="1545673067" to="1545673030" priority="1" type="highway.footway" shape="1245.45,2152.18 1251.00,2153.87 1256.24,2154.46 1264.52,2153.49 1269.94,2151.50 1274.20,2148.99 1278.13,2145.66 1281.00,2142.63">
+ <lane id="141191259#3_0" index="0" allow="pedestrian" speed="8.33" length="31.33" shape="1247.17,2150.98 1251.33,2152.25 1256.24,2152.80 1264.13,2151.87 1269.23,2150.00 1273.36,2147.56 1276.31,2145.05"/>
+ </edge>
+ <edge id="141191259#4" from="1545673030" to="1545672954" priority="1" type="highway.footway" shape="1281.00,2142.63 1283.09,2139.36 1284.55,2136.01 1286.23,2130.45">
+ <lane id="141191259#4_0" index="0" allow="pedestrian" speed="8.33" length="2.59" shape="1282.20,2137.30 1283.04,2135.35 1283.18,2134.90"/>
+ </edge>
+ <edge id="141191259#5" from="1545672954" to="1545672852" priority="1" type="highway.footway" shape="1286.23,2130.45 1286.79,2124.40 1286.37,2119.72 1284.31,2112.85 1281.30,2107.52 1277.60,2103.24">
+ <lane id="141191259#5_0" index="0" allow="pedestrian" speed="8.33" length="24.10" shape="1284.95,2126.32 1285.13,2124.40 1284.74,2120.03 1282.79,2113.50 1279.95,2108.47 1276.56,2104.55"/>
+ </edge>
+ <edge id="141191260#0" from="1545672787" to="1545672806" priority="2" type="highway.service" spreadType="center">
+ <lane id="141191260#0_0" index="0" allow="delivery" speed="5.56" length="17.53" shape="1186.94,2071.66 1175.90,2085.28"/>
+ </edge>
+ <edge id="141191260#1" from="1545672806" to="249235163" priority="2" type="highway.service" spreadType="center" shape="1172.90,2088.98 1169.27,2093.04 1119.78,2118.58">
+ <lane id="141191260#1_0" index="0" allow="delivery" speed="5.56" length="56.32" shape="1169.69,2092.57 1169.27,2093.04 1119.78,2118.58"/>
+ </edge>
+ <edge id="141191261#0" from="1545673352" to="1545673319" priority="2" type="highway.service" spreadType="center" shape="1182.30,2237.30 1219.52,2217.11 1223.47,2215.43 1230.45,2214.39 1259.48,2214.22">
+ <lane id="141191261#0_0" index="0" allow="delivery" speed="5.56" length="77.97" shape="1182.30,2237.30 1219.52,2217.11 1223.47,2215.43 1230.45,2214.39 1254.72,2214.25"/>
+ </edge>
+ <edge id="141191261#1" from="1545673319" to="1545661417" priority="2" type="highway.service" spreadType="center" shape="1259.48,2214.22 1268.94,2214.17 1274.08,2216.55">
+ <lane id="141191261#1_0" index="0" allow="delivery" speed="5.56" length="5.66" shape="1264.23,2214.19 1268.94,2214.17 1269.80,2214.56"/>
+ </edge>
+ <edge id="141191262#0" from="1545672874" to="1545672919" priority="1" type="highway.footway" shape="1186.40,2115.00 1187.37,2117.35 1188.37,2120.10 1189.29,2123.34 1189.89,2126.22">
+ <lane id="141191262#0_0" index="0" allow="pedestrian" speed="8.33" length="2.17" shape="1189.77,2119.12 1189.92,2119.54 1190.39,2121.20"/>
+ </edge>
+ <edge id="141191262#1" from="1545672919" to="1545672971" priority="1" type="highway.footway" shape="1189.89,2126.22 1190.19,2129.24 1190.71,2134.12">
+ <lane id="141191262#1_0" index="0" allow="pedestrian" speed="8.33" length="2.63" shape="1192.07,2131.33 1192.35,2133.94"/>
+ </edge>
+ <edge id="141191263#0" from="1545672843" to="1545672819" priority="1" type="highway.footway" shape="1191.03,2098.99 1187.94,2098.65 1184.81,2098.78 1181.89,2098.03 1179.32,2096.55 1177.15,2092.96">
+ <lane id="141191263#0_0" index="0" allow="pedestrian" speed="8.33" length="6.75" shape="1183.58,2100.17 1181.26,2099.57 1178.13,2097.77 1177.74,2097.14"/>
+ </edge>
+ <edge id="141191263#1" from="1545672819" to="1545672797" priority="1" type="highway.footway">
+ <lane id="141191263#1_0" index="0" allow="pedestrian" speed="8.33" length="0.52" shape="1179.13,2088.25 1179.47,2087.86"/>
+ </edge>
+ <edge id="141191264#0" from="1545673065" to="1545673092" priority="1" type="highway.footway" shape="1122.59,2153.96 1125.36,2156.49 1127.34,2157.84 1129.91,2159.25 1133.85,2159.62 1152.72,2157.95">
+ <lane id="141191264#0_0" index="0" allow="pedestrian" speed="8.33" length="21.48" shape="1126.63,2155.38 1128.27,2156.47 1130.41,2157.64 1133.85,2157.96 1147.41,2156.76"/>
+ </edge>
+ <edge id="141191264#1" from="1545673092" to="1545673123" priority="1" type="highway.footway" shape="1152.72,2157.95 1155.15,2158.32 1161.36,2159.39 1182.08,2163.41">
+ <lane id="141191264#1_0" index="0" allow="pedestrian" speed="8.33" length="17.62" shape="1158.05,2157.14 1161.64,2157.76 1175.36,2160.42"/>
+ </edge>
+ <edge id="144874008#0" from="252418152" to="1257054127" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="144874008#0_0" index="0" speed="22.22" length="43.12" shape="1405.91,1951.81 1367.64,1971.67"/>
+ </edge>
+ <edge id="144874008#1" from="1257054127" to="428097664" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="144874008#1_0" index="0" speed="22.22" length="4.43" shape="1359.17,1976.01 1355.22,1978.02"/>
+ </edge>
+ <edge id="144874010#0" from="950094380" to="1243159115" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1301.00,1997.93 1257.03,2021.12 1099.38,2104.24 1090.69,2108.82">
+ <lane id="144874010#0_0" index="0" speed="27.78" length="232.42" shape="1299.00,2000.85 1257.80,2022.57 1100.15,2105.70 1093.41,2109.25"/>
+ <lane id="144874010#0_1" index="1" speed="27.78" length="232.42" shape="1297.46,1997.93 1256.26,2019.66 1098.61,2102.78 1091.87,2106.33"/>
+ </edge>
+ <edge id="144874010#1" from="1243159115" to="950094412" priority="15" type="highway.primary|railway.tram" spreadType="center">
+ <lane id="144874010#1_0" index="0" speed="27.78" length="3.18" shape="1084.10,2114.11 1081.28,2115.58"/>
+ <lane id="144874010#1_1" index="1" speed="27.78" length="3.18" shape="1082.57,2111.19 1079.75,2112.66"/>
+ </edge>
+ <edge id="144874010#2" from="950094412" to="948350705" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1079.00,2114.91 784.51,2270.26 777.15,2274.14">
+ <lane id="144874010#2_0" index="0" speed="27.78" length="364.85" shape="1075.42,2118.67 785.28,2271.72 752.71,2288.88"/>
+ <lane id="144874010#2_1" index="1" speed="27.78" length="364.85" shape="1073.88,2115.75 783.74,2268.80 751.17,2285.96"/>
+ </edge>
+ <edge id="144874012#0" from="950094380" to="435668534" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="144874012#0_0" index="0" speed="22.22" length="2.37" shape="1299.86,1995.82 1298.74,1993.74"/>
+ </edge>
+ <edge id="144874012#1" from="435668534" to="950094494" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="144874012#1_0" index="0" speed="22.22" length="4.84" shape="1297.62,1991.64 1295.53,1987.28"/>
+ </edge>
+ <edge id="149408824#0" from="950094458" to="1726394729" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1413.95,1922.32 1528.79,1861.93 1572.53,1838.99 1577.27,1836.52">
+ <lane id="149408824#0_0" index="0" speed="27.78" length="173.40" shape="1415.93,1919.41 1528.02,1860.47 1569.44,1838.75"/>
+ <lane id="149408824#0_1" index="1" speed="27.78" length="173.40" shape="1417.47,1922.33 1529.56,1863.39 1570.97,1841.67"/>
+ </edge>
+ <edge id="149408824#1" from="1726394729" to="950094255" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1577.27,1836.52 1584.32,1832.81 1598.52,1825.73 1854.05,1690.97 1867.69,1683.54 1874.29,1679.23">
+ <lane id="149408824#1_0" index="0" speed="27.78" length="327.83" shape="1583.86,1831.20 1597.79,1824.25 1853.28,1689.51 1866.90,1682.09 1873.38,1677.85"/>
+ <lane id="149408824#1_1" index="1" speed="27.78" length="327.83" shape="1585.39,1834.12 1599.26,1827.21 1854.81,1692.43 1868.48,1684.99 1875.19,1680.61"/>
+ </edge>
+ <edge id="149419435#0" from="1624003172" to="1719213668" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="149419435#0_0" index="0" speed="22.22" length="1.62" shape="783.67,884.35 785.08,883.56"/>
+ </edge>
+ <edge id="149419435#1" from="1719213668" to="1624003193" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="149419435#1_0" index="0" speed="22.22" length="68.18" shape="793.46,878.86 852.94,845.53"/>
+ </edge>
+ <edge id="149419435#2" from="1624003193" to="1624003168" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="149419435#2_0" index="0" speed="22.22" length="70.92" shape="858.44,842.45 920.31,807.78"/>
+ </edge>
+ <edge id="149419435#3" from="1624003168" to="1624003199" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="149419435#3_0" index="0" speed="22.22" length="72.53" shape="925.81,804.70 989.08,769.23"/>
+ </edge>
+ <edge id="149420179" from="1624020484" to="1624020482" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="149420179_0" index="0" speed="22.22" length="71.22" shape="1002.31,964.85 940.90,1000.92"/>
+ </edge>
+ <edge id="149422193#0" from="443101921" to="2265767389" priority="5" type="highway.unclassified">
+ <lane id="149422193#0_0" index="0" speed="22.22" length="1.75" shape="1432.35,892.86 1433.15,894.41"/>
+ </edge>
+ <edge id="149422193#1" from="2265767389" to="255227483" priority="5" type="highway.unclassified">
+ <lane id="149422193#1_0" index="0" speed="22.22" length="4.12" shape="1434.93,897.82 1436.83,901.48"/>
+ </edge>
+ <edge id="149422199#0" from="255227475" to="255227480" priority="4" type="highway.residential">
+ <lane id="149422199#0_0" index="0" speed="13.89" length="44.04" shape="1310.38,873.54 1348.02,850.66"/>
+ </edge>
+ <edge id="149422199#1" from="255227480" to="255227482" priority="4" type="highway.residential">
+ <lane id="149422199#1_0" index="0" speed="13.89" length="34.50" shape="1360.18,843.25 1389.64,825.29"/>
+ </edge>
+ <edge id="149422199#2" from="255227482" to="432548414" priority="4" type="highway.residential">
+ <lane id="149422199#2_0" index="0" speed="13.89" length="99.23" shape="1397.78,820.33 1482.63,768.89"/>
+ </edge>
+ <edge id="149422210#0" from="255227482" to="1624060630" priority="4" type="highway.residential">
+ <lane id="149422210#0_0" index="0" speed="13.89" length="42.24" shape="1398.51,827.76 1417.99,865.24"/>
+ </edge>
+ <edge id="149422210#1" from="1624060630" to="443101921" priority="4" type="highway.residential">
+ <lane id="149422210#1_0" index="0" speed="13.89" length="13.59" shape="1423.92,876.65 1430.19,888.71"/>
+ </edge>
+ <edge id="149819220" from="1224074532" to="1224074535" priority="2" type="highway.service">
+ <lane id="149819220_0" index="0" allow="delivery" speed="5.56" length="55.78" shape="683.49,1105.96 657.47,1056.62"/>
+ </edge>
+ <edge id="149819222" from="1627657783" to="1627657715" priority="2" type="highway.service">
+ <lane id="149819222_0" index="0" allow="delivery" speed="5.56" length="55.07" shape="677.05,1048.98 702.00,1098.07"/>
+ </edge>
+ <edge id="149819224" from="1627657822" to="1627657825" priority="2" type="highway.service">
+ <lane id="149819224_0" index="0" allow="delivery" speed="5.56" length="61.71" shape="642.00,1057.93 670.26,1112.80"/>
+ </edge>
+ <edge id="149819227#0" from="1224074527" to="1239243628" priority="5" type="highway.unclassified">
+ <lane id="149819227#0_0" index="0" speed="22.22" length="49.85" shape="605.79,1149.17 650.23,1126.58"/>
+ </edge>
+ <edge id="149819227#1" from="1239243628" to="1627657825" priority="5" type="highway.unclassified">
+ <lane id="149819227#1_0" index="0" speed="22.22" length="8.12" shape="658.78,1122.20 665.99,1118.49"/>
+ </edge>
+ <edge id="149819227#2" from="1627657825" to="1224074532" priority="5" type="highway.unclassified">
+ <lane id="149819227#2_0" index="0" speed="22.22" length="8.71" shape="674.43,1114.13 682.17,1110.14"/>
+ </edge>
+ <edge id="149819227#3" from="1224074532" to="1627657715" priority="5" type="highway.unclassified">
+ <lane id="149819227#3_0" index="0" speed="22.22" length="7.31" shape="690.68,1106.29 697.49,1103.66"/>
+ </edge>
+ <edge id="149819232#0" from="1627657783" to="1224074535" priority="5" type="highway.unclassified">
+ <lane id="149819232#0_0" index="0" speed="22.22" length="10.22" shape="672.44,1049.62 662.34,1051.19"/>
+ </edge>
+ <edge id="149819232#1" from="1224074535" to="1627657822" priority="5" type="highway.unclassified">
+ <lane id="149819232#1_0" index="0" speed="22.22" length="8.71" shape="652.59,1052.71 643.98,1054.05"/>
+ </edge>
+ <edge id="149819232#2" from="1627657822" to="1224091971" priority="5" type="highway.unclassified">
+ <lane id="149819232#2_0" index="0" speed="22.22" length="8.57" shape="634.24,1055.57 625.77,1056.90"/>
+ </edge>
+ <edge id="149819232#3" from="1224091971" to="1224074526" priority="5" type="highway.unclassified" shape="619.60,1056.19 600.63,1059.15 581.95,1062.06 562.74,1065.06">
+ <lane id="149819232#3_0" index="0" speed="22.22" length="53.70" shape="616.05,1058.42 600.89,1060.78 582.21,1063.69 562.99,1066.69"/>
+ </edge>
+ <edge id="149868584#0" from="13990620" to="255227483" priority="7" type="highway.secondary" shape="1765.26,719.21 1756.16,726.92 1751.39,729.54 1735.40,738.79 1652.76,784.92 1573.50,828.93 1538.48,848.32 1504.88,867.61 1437.23,905.83">
+ <lane id="149868584#0_0" index="0" speed="27.78" length="373.26" shape="1768.46,722.99 1758.98,731.01 1753.78,733.88 1737.88,743.08 1655.18,789.25 1575.90,833.26 1540.88,852.65 1507.35,871.90 1444.00,907.69"/>
+ <lane id="149868584#0_1" index="1" speed="27.78" length="373.26" shape="1766.33,720.47 1757.10,728.28 1752.19,730.99 1736.23,740.22 1653.57,786.36 1574.30,830.37 1539.28,849.76 1505.70,869.04 1442.38,904.82"/>
+ </edge>
+ <edge id="149868584#1" from="255227483" to="255227471" priority="7" type="highway.secondary">
+ <lane id="149868584#1_0" index="0" speed="27.78" length="95.24" shape="1435.56,912.47 1352.72,959.48"/>
+ <lane id="149868584#1_1" index="1" speed="27.78" length="95.24" shape="1433.93,909.60 1351.10,956.61"/>
+ </edge>
+ <edge id="149868584#2" from="255227471" to="1168929657" priority="7" type="highway.secondary">
+ <lane id="149868584#2_0" index="0" speed="27.78" length="162.54" shape="1342.03,965.50 1200.15,1044.81"/>
+ <lane id="149868584#2_1" index="1" speed="27.78" length="162.54" shape="1340.42,962.62 1198.54,1041.93"/>
+ </edge>
+ <edge id="149868584#3" from="1168929657" to="1726394724" priority="7" type="highway.secondary">
+ <lane id="149868584#3_0" index="0" speed="27.78" length="19.18" shape="1194.24,1048.14 1177.55,1057.58"/>
+ <lane id="149868584#3_1" index="1" speed="27.78" length="19.18" shape="1192.62,1045.27 1175.93,1054.71"/>
+ </edge>
+ <edge id="149868584#4" from="1726394724" to="1168929383" priority="7" type="highway.secondary">
+ <lane id="149868584#4_0" index="0" speed="27.78" length="17.23" shape="1163.13,1065.73 1148.13,1074.22"/>
+ <lane id="149868584#4_1" index="1" speed="27.78" length="17.23" shape="1161.51,1062.86 1146.51,1071.35"/>
+ </edge>
+ <edge id="149868584#5" from="1168929383" to="767282288" priority="7" type="highway.secondary">
+ <lane id="149868584#5_0" index="0" speed="27.78" length="218.15" shape="1142.44,1077.45 952.78,1185.24"/>
+ <lane id="149868584#5_1" index="1" speed="27.78" length="218.15" shape="1140.81,1074.58 951.15,1182.37"/>
+ </edge>
+ <edge id="149868584#6" from="767282288" to="13929775" priority="7" type="highway.secondary">
+ <lane id="149868584#6_0" index="0" speed="27.78" length="0.64" shape="944.07,1190.20 943.51,1190.51"/>
+ <lane id="149868584#6_1" index="1" speed="27.78" length="0.64" shape="942.43,1187.33 941.88,1187.65"/>
+ </edge>
+ <edge id="149868584#7" from="13929775" to="438042369" priority="7" type="highway.secondary">
+ <lane id="149868584#7_0" index="0" speed="27.78" length="7.13" shape="937.53,1193.92 931.33,1197.45"/>
+ <lane id="149868584#7_1" index="1" speed="27.78" length="7.13" shape="935.90,1191.06 929.70,1194.59"/>
+ </edge>
+ <edge id="149868584#8" from="438042369" to="438042367" priority="7" type="highway.secondary">
+ <lane id="149868584#8_0" index="0" speed="27.78" length="1.62" shape="920.18,1203.80 918.78,1204.61"/>
+ <lane id="149868584#8_1" index="1" speed="27.78" length="1.62" shape="918.55,1200.94 917.14,1201.74"/>
+ </edge>
+ <edge id="151164683" from="1639892546" to="1718241040" priority="1" type="highway.footway" shape="1136.82,1024.60 1125.03,1000.52 1055.17,864.46 941.95,654.06 827.26,437.09 765.84,314.28 755.09,305.48">
+ <lane id="151164683_0" index="0" allow="pedestrian" speed="8.33" length="809.74" shape="1133.20,1020.96 1123.54,1001.24 1053.70,865.22 940.50,654.84 825.80,437.86 764.52,315.33 754.04,306.75"/>
+ </edge>
+ <edge id="151167658#0" from="438042377" to="1719213140" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="151167658#0_0" index="0" speed="22.22" length="3.23" shape="1237.70,1686.74 1240.57,1685.24"/>
+ </edge>
+ <edge id="151167658#1" from="1719213140" to="438042376" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="151167658#1_0" index="0" speed="22.22" length="32.25" shape="1249.01,1680.82 1277.58,1665.88"/>
+ </edge>
+ <edge id="151167658#2" from="438042376" to="1261880295" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="151167658#2_0" index="0" speed="22.22" length="3.07" shape="1284.28,1664.19 1287.34,1663.99"/>
+ </edge>
+ <edge id="154409616#0" from="538902966" to="252418151" priority="6" type="highway.tertiary" spreadType="center">
+ <lane id="154409616#0_0" index="0" speed="22.22" length="64.19" shape="1487.88,2104.32 1458.51,2047.24"/>
+ </edge>
+ <edge id="154409616#1" from="252418151" to="252418152" priority="6" type="highway.tertiary" spreadType="center">
+ <lane id="154409616#1_0" index="0" speed="22.22" length="99.62" shape="1455.67,2041.73 1410.09,1953.14"/>
+ </edge>
+ <edge id="154409621" from="566579340" to="248913124" priority="9" type="highway.primary">
+ <lane id="154409621_0" index="0" speed="27.78" length="156.37" shape="1558.93,1855.41 1420.44,1928.03"/>
+ </edge>
+ <edge id="154489992#0" from="1670156969" to="950094434" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="1583.27,1846.87 1582.11,1847.48 1578.07,1849.59 1527.22,1876.28 1419.53,1932.99">
+ <lane id="154489992#0_0" index="0" speed="27.78" length="181.90" shape="1584.04,1848.34 1582.87,1848.94 1578.84,1851.05 1527.98,1877.74 1423.05,1933.00"/>
+ <lane id="154489992#0_1" index="1" speed="27.78" length="181.90" shape="1582.51,1845.41 1581.34,1846.02 1577.31,1848.13 1526.45,1874.82 1421.51,1930.08"/>
+ </edge>
+ <edge id="154489992#1" from="950094434" to="1257054074" priority="15" type="highway.primary|railway.tram" spreadType="center">
+ <lane id="154489992#1_0" index="0" speed="27.78" length="60.51" shape="1417.54,1935.99 1364.72,1965.50"/>
+ <lane id="154489992#1_1" index="1" speed="27.78" length="60.51" shape="1415.93,1933.11 1363.11,1962.62"/>
+ </edge>
+ <edge id="154489992#2" from="1257054074" to="950094314" priority="15" type="highway.primary|railway.tram" spreadType="center">
+ <lane id="154489992#2_0" index="0" speed="27.78" length="4.41" shape="1356.21,1970.26 1352.36,1972.41"/>
+ <lane id="154489992#2_1" index="1" speed="27.78" length="4.41" shape="1354.60,1967.38 1350.75,1969.53"/>
+ </edge>
+ <edge id="154500693#0" from="1168929349" to="1780219342" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="154500693#0_0" index="0" speed="27.78" length="2.61" shape="831.94,1012.19 833.14,1014.51"/>
+ <lane id="154500693#0_1" index="1" speed="27.78" length="2.61" shape="829.01,1013.71 830.21,1016.03"/>
+ <lane id="154500693#0_2" index="2" speed="27.78" length="2.61" shape="826.08,1015.23 827.28,1017.54"/>
+ </edge>
+ <edge id="154500693#1" from="1780219342" to="1780219352" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="154500693#1_0" index="0" speed="27.78" length="158.91" shape="839.26,1026.35 912.24,1167.51"/>
+ <lane id="154500693#1_1" index="1" speed="27.78" length="158.91" shape="836.33,1027.87 909.31,1169.03"/>
+ <lane id="154500693#1_2" index="2" speed="27.78" length="158.91" shape="833.40,1029.38 906.38,1170.54"/>
+ </edge>
+ <edge id="154500693#2" from="1780219352" to="446017743" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="154500693#2_0" index="0" speed="27.78" length="2.66" shape="916.62,1175.98 917.84,1178.34"/>
+ <lane id="154500693#2_1" index="1" speed="27.78" length="2.66" shape="913.69,1177.50 914.91,1179.85"/>
+ <lane id="154500693#2_2" index="2" speed="27.78" length="2.66" shape="910.76,1179.01 911.98,1181.37"/>
+ </edge>
+ <edge id="154500693#3" from="446017743" to="438042369" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="154500693#3_0" index="0" speed="27.78" length="3.26" shape="920.88,1184.55 922.25,1187.51"/>
+ <lane id="154500693#3_1" index="1" speed="27.78" length="3.26" shape="917.89,1185.94 919.26,1188.90"/>
+ <lane id="154500693#3_2" index="2" speed="27.78" length="3.26" shape="914.89,1187.32 916.26,1190.28"/>
+ </edge>
+ <edge id="154500695" from="438042377" to="438042373" priority="6" type="highway.secondary_link" spreadType="center" shape="1234.66,1688.33 1239.50,1694.45 1242.56,1701.83">
+ <lane id="154500695_0" index="0" speed="22.22" length="9.10" shape="1236.79,1691.02 1239.50,1694.45 1241.31,1698.82"/>
+ </edge>
+ <edge id="154500698" from="438042381" to="438042386" priority="6" type="highway.secondary_link" spreadType="center" shape="1167.26,1695.93 1171.13,1691.28 1175.97,1687.44">
+ <lane id="154500698_0" index="0" speed="22.22" length="2.08" shape="1170.87,1691.59 1171.13,1691.28 1172.45,1690.24"/>
+ </edge>
+ <edge id="154500699#0" from="438042386" to="438042378" priority="6" type="highway.secondary_link" spreadType="center" shape="1175.97,1687.44 1182.73,1684.10 1189.97,1681.91 1201.45,1681.53">
+ <lane id="154500699#0_0" index="0" speed="22.22" length="16.05" shape="1181.19,1684.86 1182.73,1684.10 1189.97,1681.91 1196.73,1681.69"/>
+ </edge>
+ <edge id="154500699#1" from="438042378" to="438042377" priority="6" type="highway.secondary_link" spreadType="center" shape="1201.45,1681.53 1226.36,1686.70 1234.66,1688.33">
+ <lane id="154500699#1_0" index="0" speed="22.22" length="30.26" shape="1203.48,1681.95 1226.36,1686.70 1233.12,1688.03"/>
+ </edge>
+ <edge id="154500706#0" from="1168929308" to="441236060" priority="5" type="highway.unclassified" spreadType="center" shape="781.15,985.59 783.46,978.13 788.69,970.63">
+ <lane id="154500706#0_0" index="0" speed="22.22" length="5.02" shape="782.29,981.90 783.46,978.13 784.08,977.25"/>
+ </edge>
+ <edge id="154500706#1" from="441236060" to="1168929600" priority="5" type="highway.unclassified" spreadType="center" shape="788.69,970.63 795.56,965.49 801.49,963.16">
+ <lane id="154500706#1_0" index="0" speed="22.22" length="1.66" shape="794.07,966.61 795.39,965.61"/>
+ </edge>
+ <edge id="154500706#2" from="1168929600" to="1168929298" priority="5" type="highway.unclassified" spreadType="center" shape="801.49,963.16 802.48,962.93 810.17,962.29 818.08,963.90 822.13,965.73">
+ <lane id="154500706#2_0" index="0" speed="22.22" length="8.74" shape="808.70,962.41 810.17,962.29 817.29,963.74"/>
+ </edge>
+ <edge id="154500706#3" from="1168929298" to="1096401733" priority="5" type="highway.unclassified" spreadType="center" shape="822.13,965.73 825.35,967.81 832.01,974.96">
+ <lane id="154500706#3_0" index="0" speed="22.22" length="8.90" shape="823.89,966.87 825.35,967.81 830.23,973.05"/>
+ </edge>
+ <edge id="154844461#0" from="1168929562" to="1246731460" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1176.41,1087.16 1168.74,1088.02 1166.50,1087.91">
+ <lane id="154844461#0_0" index="0" speed="27.78" length="9.87" shape="1176.50,1088.39 1168.74,1088.02 1170.83,1087.79"/>
+ </edge>
+ <edge id="154844461#1" from="1246731460" to="1168929295" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1166.50,1087.91 1159.48,1086.45 1157.89,1085.88">
+ <lane id="154844461#1_0" index="0" speed="27.78" length="8.08" shape="1171.03,1088.85 1163.12,1087.21"/>
+ </edge>
+ <edge id="154844461#2" from="1168929295" to="1246731455" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1157.89,1085.88 1154.76,1084.43 1154.20,1084.13">
+ <lane id="154844461#2_0" index="0" speed="27.78" length="1.95" shape="1158.14,1085.99 1156.37,1085.17"/>
+ </edge>
+ <edge id="154844461#3" from="1246731455" to="1168929523" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1154.20,1084.13 1151.19,1082.21 1147.33,1078.90">
+ <lane id="154844461#3_0" index="0" speed="27.78" length="2.28" shape="1150.20,1081.37 1148.48,1079.88"/>
+ </edge>
+ <edge id="154844462" from="1168929324" to="1246731525" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844462_0" index="0" speed="27.78" length="3.34" shape="1199.09,1051.22 1199.55,1054.52"/>
+ </edge>
+ <edge id="154844463" from="1168929585" to="1246731544" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844463_0" index="0" speed="27.78" length="0.93" shape="1175.02,1027.50 1175.93,1027.69"/>
+ </edge>
+ <edge id="154844465#0" from="1168929310" to="1168929613" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844465#0_0" index="0" speed="27.78" length="1.99" shape="1139.04,1062.27 1138.79,1060.29"/>
+ </edge>
+ <edge id="154844465#1" from="1168929613" to="1246731627" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844465#1_0" index="0" speed="27.78" length="0.87" shape="1138.59,1056.89 1138.61,1056.03"/>
+ </edge>
+ <edge id="154844465#2" from="1246731627" to="1168929272" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844465#2_0" index="0" speed="27.78" length="0.86" shape="1139.51,1050.26 1139.65,1049.41"/>
+ </edge>
+ <edge id="154844465#3" from="1168929272" to="1246731504" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844465#3_0" index="0" speed="27.78" length="7.98" shape="1141.54,1044.78 1144.61,1037.41"/>
+ </edge>
+ <edge id="154844465#4" from="1246731504" to="1168929382" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1142.53,1042.42 1143.58,1040.71 1148.91,1034.59">
+ <lane id="154844465#4_0" index="0" speed="27.78" length="10.12" shape="1142.53,1042.42 1143.58,1040.71 1148.91,1034.59"/>
+ </edge>
+ <edge id="154844467" from="1246731574" to="1168929367" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844467_0" index="0" speed="27.78" length="0.04" shape="1182.97,1030.16 1182.95,1030.19"/>
+ </edge>
+ <edge id="154844470#0" from="1168929523" to="1168929383" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1147.33,1078.90 1144.59,1075.71 1142.17,1071.90">
+ <lane id="154844470#0_0" index="0" speed="27.78" length="4.60" shape="1146.54,1078.78 1144.59,1075.71 1145.22,1076.44"/>
+ </edge>
+ <edge id="154844470#1" from="1168929383" to="1168929310" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1142.17,1071.90 1140.25,1067.55 1139.29,1064.21">
+ <lane id="154844470#1_0" index="0" speed="27.78" length="8.24" shape="1142.17,1071.90 1140.25,1067.55 1139.29,1064.21"/>
+ </edge>
+ <edge id="154844473" from="1168929367" to="1168929388" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1182.95,1030.19 1186.36,1032.19 1189.37,1034.51">
+ <lane id="154844473_0" index="0" speed="27.78" length="0.39" shape="1186.33,1032.16 1186.64,1032.40"/>
+ </edge>
+ <edge id="154844474#0" from="1669480281" to="1669480284" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844474#0_0" index="0" speed="27.78" length="2.80" shape="1457.35,1590.68 1458.66,1593.15"/>
+ <lane id="154844474#0_1" index="1" speed="27.78" length="2.80" shape="1454.43,1592.23 1455.75,1594.70"/>
+ </edge>
+ <edge id="154844474#1" from="1669480284" to="950094408" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844474#1_0" index="0" speed="27.78" length="244.24" shape="1463.16,1601.60 1577.96,1817.19"/>
+ <lane id="154844474#1_1" index="1" speed="27.78" length="244.24" shape="1460.25,1603.15 1575.05,1818.74"/>
+ </edge>
+ <edge id="154844477" from="1168929549" to="1168929459" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1199.80,1058.66 1198.24,1067.16 1197.84,1068.30">
+ <lane id="154844477_0" index="0" speed="27.78" length="5.42" shape="1199.40,1060.87 1198.42,1066.20"/>
+ </edge>
+ <edge id="154844478" from="1168929634" to="1168929385" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1153.40,1031.30 1158.23,1028.96 1159.04,1028.67">
+ <lane id="154844478_0" index="0" speed="27.78" length="7.97" shape="1154.75,1030.65 1158.23,1028.96 1154.36,1030.34"/>
+ </edge>
+ <edge id="154844479" from="1246731544" to="1246731574" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1175.93,1027.69 1177.41,1028.06 1182.97,1030.16">
+ <lane id="154844479_0" index="0" speed="27.78" length="7.47" shape="1175.93,1027.69 1177.41,1028.06 1182.97,1030.16"/>
+ </edge>
+ <edge id="154844481" from="1246731525" to="1168929549" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1199.81,1056.38 1199.83,1057.47 1199.80,1058.66">
+ <lane id="154844481_0" index="0" speed="27.78" length="5.83" shape="1199.68,1051.20 1199.82,1057.03"/>
+ </edge>
+ <edge id="154844482" from="1168929269" to="1168929558" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1187.31,1082.11 1186.74,1082.51 1182.30,1085.09">
+ <lane id="154844482_0" index="0" speed="27.78" length="0.64" shape="1183.60,1084.33 1183.05,1084.65"/>
+ </edge>
+ <edge id="154844483#0" from="1168929385" to="951739557" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844483#0_0" index="0" speed="27.78" length="14.47" shape="1161.85,1030.46 1168.61,1043.26"/>
+ <lane id="154844483#0_1" index="1" speed="27.78" length="14.47" shape="1158.94,1032.00 1165.69,1044.80"/>
+ </edge>
+ <edge id="154844483#1" from="951739557" to="951739718" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844483#1_0" index="0" speed="27.78" length="11.06" shape="1171.60,1048.92 1176.77,1058.69"/>
+ <lane id="154844483#1_1" index="1" speed="27.78" length="11.06" shape="1168.68,1050.46 1173.85,1060.23"/>
+ </edge>
+ <edge id="154844483#2" from="951739718" to="1168929269" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844483#2_0" index="0" speed="27.78" length="15.26" shape="1179.76,1064.34 1186.90,1077.82"/>
+ <lane id="154844483#2_1" index="1" speed="27.78" length="15.26" shape="1176.84,1065.88 1183.98,1079.36"/>
+ </edge>
+ <edge id="154844484#0" from="1168929385" to="1168929546" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844484#0_0" index="0" speed="27.78" length="3.45" shape="1159.04,1028.67 1162.36,1027.71"/>
+ </edge>
+ <edge id="154844484#1" from="1168929546" to="1168929585" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1162.36,1027.71 1167.70,1026.98 1175.02,1027.50">
+ <lane id="154844484#1_0" index="0" speed="27.78" length="2.83" shape="1167.86,1026.99 1170.68,1027.19"/>
+ </edge>
+ <edge id="154844485#0" from="1669480282" to="1246731647" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1441.50,1589.92 1303.36,1328.27 1191.81,1116.45 1182.25,1098.33">
+ <lane id="154844485#0_0" index="0" speed="27.78" length="545.51" shape="1436.28,1583.55 1301.90,1329.04 1190.35,1117.22 1181.81,1101.03"/>
+ <lane id="154844485#0_1" index="1" speed="27.78" length="545.51" shape="1439.20,1582.01 1304.82,1327.50 1193.27,1115.68 1184.72,1099.49"/>
+ </edge>
+ <edge id="154844485#1" from="1246731647" to="1168929562" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844485#1_0" index="0" speed="27.78" length="6.28" shape="1179.83,1097.28 1176.66,1091.21"/>
+ <lane id="154844485#1_1" index="1" speed="27.78" length="6.28" shape="1182.24,1094.75 1179.59,1089.69"/>
+ </edge>
+ <edge id="154844486" from="1168929558" to="1168929562" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1182.30,1085.09 1180.95,1085.69 1178.13,1086.70 1176.41,1087.16">
+ <lane id="154844486_0" index="0" speed="27.78" length="6.34" shape="1181.38,1085.83 1178.13,1086.70 1180.93,1085.69"/>
+ </edge>
+ <edge id="154844487#0" from="1168929388" to="1168929657" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1189.37,1034.51 1193.56,1038.97 1195.46,1041.76">
+ <lane id="154844487#0_0" index="0" speed="27.78" length="7.36" shape="1190.83,1034.95 1193.56,1038.97 1191.86,1037.15"/>
+ </edge>
+ <edge id="154844487#1" from="1168929657" to="1168929324" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1195.46,1041.76 1198.22,1047.72 1198.95,1050.22">
+ <lane id="154844487#1_0" index="0" speed="27.78" length="4.32" shape="1197.48,1045.15 1198.68,1049.30"/>
+ </edge>
+ <edge id="154844489#0" from="1168929459" to="1246731482" priority="15" type="highway.secondary_link|railway.tram" spreadType="center" shape="1197.84,1068.30 1193.70,1075.81 1193.00,1076.70">
+ <lane id="154844489#0_0" index="0" speed="27.78" length="5.08" shape="1195.66,1072.25 1193.70,1075.81 1193.07,1076.60"/>
+ </edge>
+ <edge id="154844489#1" from="1246731482" to="1168929659" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844489#1_0" index="0" speed="27.78" length="1.30" shape="1193.00,1076.70 1192.17,1077.69"/>
+ </edge>
+ <edge id="154844489#2" from="1168929659" to="1168929269" priority="15" type="highway.secondary_link|railway.tram" spreadType="center">
+ <lane id="154844489#2_0" index="0" speed="27.78" length="3.70" shape="1191.20,1078.57 1188.47,1081.06"/>
+ </edge>
+ <edge id="154844491#0" from="1168929269" to="1246731457" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="154844491#0_0" index="0" speed="27.78" length="2.51" shape="1190.30,1084.27 1191.79,1087.10"/>
+ <lane id="154844491#0_1" index="1" speed="27.78" length="2.51" shape="1187.38,1085.80 1188.22,1087.41"/>
+ </edge>
+ <edge id="154844491#1" from="1246731457" to="1669480281" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1191.33,1089.79 1324.21,1342.00 1430.92,1544.57 1452.12,1584.37">
+ <lane id="154844491#1_0" index="0" speed="27.78" length="548.72" shape="1193.88,1091.08 1325.67,1341.23 1432.38,1543.80 1449.78,1576.47"/>
+ <lane id="154844491#1_1" index="1" speed="27.78" length="548.72" shape="1190.96,1092.62 1322.75,1342.77 1429.46,1545.33 1446.87,1578.02"/>
+ </edge>
+ <edge id="154844500#0" from="1669480281" to="441266880" priority="7" type="highway.secondary">
+ <lane id="154844500#0_0" index="0" speed="27.78" length="7.28" shape="1455.59,1580.70 1462.04,1577.33"/>
+ </edge>
+ <edge id="154844500#1" from="441266880" to="1669480280" priority="7" type="highway.secondary">
+ <lane id="154844500#1_0" index="0" speed="27.78" length="3.11" shape="1464.79,1575.89 1467.55,1574.45"/>
+ </edge>
+ <edge id="154844500#2" from="1669480280" to="441266854" priority="7" type="highway.secondary" shape="1469.16,1575.47 1577.25,1519.04 1690.06,1460.13 1800.95,1402.27">
+ <lane id="154844500#2_0" index="0" speed="27.78" length="369.52" shape="1472.61,1571.80 1576.48,1517.58 1689.30,1458.67 1800.18,1400.81"/>
+ </edge>
+ <edge id="154844500#3" from="441266854" to="248913154" priority="7" type="highway.secondary">
+ <lane id="154844500#3_0" index="0" speed="27.78" length="17.26" shape="1800.18,1400.81 1815.47,1392.80"/>
+ </edge>
+ <edge id="154844503" from="1669480282" to="1726394726" priority="7" type="highway.secondary">
+ <lane id="154844503_0" index="0" speed="27.78" length="3.52" shape="1441.79,1584.18 1443.45,1583.32"/>
+ <lane id="154844503_1" index="1" speed="27.78" length="3.52" shape="1440.40,1588.63 1444.98,1586.24"/>
+ </edge>
+ <edge id="160584980" from="1726380195" to="1726380187" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="160584980_0" index="0" speed="22.22" length="28.06" shape="729.07,1443.07 715.88,1418.30"/>
+ </edge>
+ <edge id="160584981" from="1726380187" to="1726380184" priority="5" type="highway.unclassified" shape="712.82,1412.54 683.52,1357.65 681.18,1353.27">
+ <lane id="160584981_0" index="0" speed="22.22" length="64.32" shape="711.52,1413.60 682.07,1358.43 681.23,1356.86"/>
+ </edge>
+ <edge id="160584982#0" from="1726380187" to="1726380193" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="160584982#0_0" index="0" speed="22.22" length="14.88" shape="718.65,1415.47 731.95,1422.15"/>
+ </edge>
+ <edge id="160584982#1" from="1726380193" to="1726380194" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="160584982#1_0" index="0" speed="22.22" length="7.75" shape="738.53,1424.78 745.97,1426.96"/>
+ </edge>
+ <edge id="160584984" from="446017738" to="1224080669" priority="5" type="highway.unclassified" shape="667.27,1326.71 668.61,1317.24 621.99,1227.58 521.64,1031.63">
+ <lane id="160584984_0" index="0" speed="22.22" length="317.61" shape="666.51,1320.30 666.90,1317.53 620.52,1228.34 522.85,1037.62"/>
+ </edge>
+ <edge id="160587537#0" from="1726394726" to="1726394727" priority="7" type="highway.secondary">
+ <lane id="160587537#0_0" index="0" speed="27.78" length="8.17" shape="1452.65,1587.68 1457.36,1596.96"/>
+ <lane id="160587537#0_1" index="1" speed="27.78" length="8.17" shape="1451.21,1592.15 1453.90,1597.43"/>
+ </edge>
+ <edge id="160587537#1" from="1726394727" to="1726394728" priority="7" type="highway.secondary">
+ <lane id="160587537#1_0" index="0" speed="27.78" length="249.41" shape="1459.21,1600.55 1575.48,1821.85"/>
+ <lane id="160587537#1_1" index="1" speed="27.78" length="249.41" shape="1456.83,1603.10 1572.56,1823.39"/>
+ </edge>
+ <edge id="160587537#2" from="1726394728" to="1726394729" priority="7" type="highway.secondary">
+ <lane id="160587537#2_0" index="0" speed="27.78" length="2.43" shape="1578.46,1827.73 1579.54,1829.91"/>
+ <lane id="160587537#2_1" index="1" speed="27.78" length="2.43" shape="1575.50,1829.18 1576.57,1831.37"/>
+ </edge>
+ <edge id="160587537#3" from="1726394729" to="13929752" priority="7" type="highway.secondary">
+ <lane id="160587537#3_0" index="0" speed="27.78" length="1.40" shape="1584.24,1838.35 1584.98,1839.54"/>
+ <lane id="160587537#3_1" index="1" speed="27.78" length="1.40" shape="1581.44,1840.09 1582.18,1841.29"/>
+ </edge>
+ <edge id="160587538#0" from="1726394722" to="2081499950" priority="7" type="highway.secondary">
+ <lane id="160587538#0_0" index="0" speed="27.78" length="186.56" shape="1064.32,848.96 1150.54,1015.06"/>
+ <lane id="160587538#0_1" index="1" speed="27.78" length="186.56" shape="1061.39,850.48 1147.08,1015.56"/>
+ </edge>
+ <edge id="160587538#1" from="2081499950" to="1168929634" priority="7" type="highway.secondary">
+ <lane id="160587538#1_0" index="0" speed="27.78" length="9.52" shape="1152.43,1018.70 1157.09,1027.67"/>
+ <lane id="160587538#1_1" index="1" speed="27.78" length="9.52" shape="1150.03,1021.24 1154.15,1029.16"/>
+ </edge>
+ <edge id="160587538#2" from="1168929634" to="1726394723" priority="7" type="highway.secondary">
+ <lane id="160587538#2_0" index="0" speed="27.78" length="17.88" shape="1158.47,1030.21 1167.37,1045.84"/>
+ <lane id="160587538#2_1" index="1" speed="27.78" length="17.88" shape="1155.67,1031.95 1164.47,1047.41"/>
+ </edge>
+ <edge id="160587538#3" from="1726394723" to="1726394724" priority="7" type="highway.secondary">
+ <lane id="160587538#3_0" index="0" speed="27.78" length="0.94" shape="1168.46,1047.77 1168.90,1048.57"/>
+ <lane id="160587538#3_1" index="1" speed="27.78" length="0.94" shape="1165.57,1049.35 1166.03,1050.20"/>
+ </edge>
+ <edge id="160587538#4" from="1726394724" to="1726394725" priority="7" type="highway.secondary">
+ <lane id="160587538#4_0" index="0" speed="27.78" length="1.35" shape="1175.63,1061.49 1176.20,1062.65"/>
+ <lane id="160587538#4_1" index="1" speed="27.78" length="1.35" shape="1172.62,1062.85 1173.24,1064.11"/>
+ </edge>
+ <edge id="160587538#5" from="1726394725" to="1168929558" priority="7" type="highway.secondary">
+ <lane id="160587538#5_0" index="0" speed="27.78" length="19.42" shape="1176.97,1064.14 1185.98,1081.42"/>
+ <lane id="160587538#5_1" index="1" speed="27.78" length="19.42" shape="1174.06,1065.69 1183.00,1082.85"/>
+ </edge>
+ <edge id="160587538#6" from="1168929558" to="1913728534" priority="7" type="highway.secondary">
+ <lane id="160587538#6_0" index="0" speed="27.78" length="242.41" shape="1187.39,1084.12 1300.35,1298.60"/>
+ <lane id="160587538#6_1" index="1" speed="27.78" length="242.41" shape="1184.48,1085.68 1297.43,1300.14"/>
+ </edge>
+ <edge id="160587538#7" from="1913728534" to="1726394726" priority="7" type="highway.secondary" shape="1295.97,1300.91 1305.20,1318.43 1446.82,1587.14">
+ <lane id="160587538#7_0" index="0" speed="27.78" length="318.78" shape="1300.35,1298.60 1309.58,1316.12 1449.75,1582.08"/>
+ <lane id="160587538#7_1" index="1" speed="27.78" length="318.78" shape="1297.43,1300.14 1306.66,1317.66 1445.29,1580.69"/>
+ </edge>
+ <edge id="160587542" from="1726394726" to="1669480281" priority="7" type="highway.secondary">
+ <lane id="160587542_0" index="0" speed="27.78" length="1.13" shape="1445.57,1582.21 1447.29,1581.31"/>
+ <lane id="160587542_1" index="1" speed="27.78" length="1.13" shape="1447.10,1585.13 1447.39,1584.98"/>
+ </edge>
+ <edge id="160587552#0" from="1096401733" to="1168929542" priority="5" type="highway.unclassified" spreadType="center" shape="832.01,974.96 835.65,983.41 836.39,988.26">
+ <lane id="160587552#0_0" index="0" speed="22.22" length="9.24" shape="833.25,977.83 835.65,983.41 836.13,986.53"/>
+ </edge>
+ <edge id="160587552#1" from="1168929542" to="1168929349" priority="5" type="highway.unclassified" spreadType="center" shape="836.39,988.26 836.25,993.19 833.73,1001.89 828.36,1009.51 827.34,1010.48">
+ <lane id="160587552#1_0" index="0" speed="22.22" length="9.90" shape="835.54,995.65 833.73,1001.89 831.77,1004.67"/>
+ </edge>
+ <edge id="160587557" from="256633248" to="512548961" priority="15" type="railway.rail" spreadType="center" shape="763.20,924.92 1288.23,1939.17 1322.99,2006.34 1468.00,2286.70 1549.27,2447.89 1739.75,2821.51">
+ <lane id="160587557_0" index="0" allow="rail_fast" speed="83.33" length="2133.25" shape="763.20,924.92 1288.23,1939.17 1322.99,2006.34 1468.00,2286.70 1549.27,2447.89 1739.75,2821.51"/>
+ </edge>
+ <edge id="166576459" from="1780219355" to="1780219374" priority="1" type="highway.footway">
+ <lane id="166576459_0" index="0" allow="pedestrian" speed="8.33" length="16.42" shape="797.79,1149.76 811.44,1158.91"/>
+ </edge>
+ <edge id="166576461#0" from="1224074534" to="1780219366" priority="1" type="highway.footway">
+ <lane id="166576461#0_0" index="0" allow="pedestrian" speed="8.33" length="43.72" shape="779.01,1081.87 785.99,1038.71"/>
+ </edge>
+ <edge id="166576461#1" from="1780219366" to="1168929652" priority="1" type="highway.footway" shape="788.36,1034.38 770.39,994.53 765.18,988.02">
+ <lane id="166576461#1_0" index="0" allow="pedestrian" speed="8.33" length="41.18" shape="785.49,1032.04 768.97,995.40 768.35,994.62"/>
+ </edge>
+ <edge id="166576462#0" from="1780219365" to="1780219377" priority="1" type="highway.footway">
+ <lane id="166576462#0_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="955.81,1212.41 954.82,1213.01"/>
+ </edge>
+ <edge id="166576462#1" from="1780219377" to="1780219361" priority="1" type="highway.footway">
+ <lane id="166576462#1_0" index="0" allow="pedestrian" speed="8.33" length="10.38" shape="949.20,1216.23 940.01,1221.06"/>
+ </edge>
+ <edge id="166576462#2" from="1780219361" to="1780219359" priority="1" type="highway.footway">
+ <lane id="166576462#2_0" index="0" allow="pedestrian" speed="8.33" length="2.44" shape="931.57,1225.54 929.42,1226.70"/>
+ </edge>
+ <edge id="166576462#3" from="1780219359" to="1780219341" priority="1" type="highway.footway" shape="924.37,1227.56 912.89,1233.84 909.11,1223.86">
+ <lane id="166576462#3_0" index="0" allow="pedestrian" speed="8.33" length="19.05" shape="920.88,1231.35 912.02,1236.19 908.85,1227.82"/>
+ </edge>
+ <edge id="166576462#4" from="1780219341" to="1780219353" priority="1" type="highway.footway">
+ <lane id="166576462#4_0" index="0" allow="pedestrian" speed="8.33" length="5.50" shape="906.17,1221.77 903.64,1216.89"/>
+ </edge>
+ <edge id="166576462#5" from="1780219353" to="1780219360" priority="1" type="highway.footway">
+ <lane id="166576462#5_0" index="0" allow="pedestrian" speed="8.33" length="4.03" shape="896.07,1202.40 894.19,1198.84"/>
+ </edge>
+ <edge id="166576462#6" from="1780219360" to="1780219369" priority="1" type="highway.footway">
+ <lane id="166576462#6_0" index="0" allow="pedestrian" speed="8.33" length="2.61" shape="890.60,1193.42 888.98,1191.38"/>
+ </edge>
+ <edge id="166576462#7" from="1780219369" to="1780219335" priority="1" type="highway.footway" shape="886.89,1186.10 879.47,1175.79 860.88,1140.91">
+ <lane id="166576462#7_0" index="0" allow="pedestrian" speed="8.33" length="43.42" shape="883.03,1183.56 878.13,1176.75 861.64,1145.84"/>
+ </edge>
+ <edge id="166576462#8" from="1780219335" to="1780219348" priority="1" type="highway.footway">
+ <lane id="166576462#8_0" index="0" allow="pedestrian" speed="8.33" length="15.91" shape="857.20,1137.45 849.81,1123.37"/>
+ </edge>
+ <edge id="166576462#9" from="1780219348" to="1780219373" priority="1" type="highway.footway" shape="843.27,1107.37 814.19,1050.57 814.82,1037.83">
+ <lane id="166576462#9_0" index="0" allow="pedestrian" speed="8.33" length="85.16" shape="847.37,1118.98 812.52,1050.93 812.95,1042.24"/>
+ </edge>
+ <edge id="166576463" from="1780219344" to="1780219348" priority="1" type="highway.footway">
+ <lane id="166576463_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="844.24,1142.13 842.92,1124.65"/>
+ </edge>
+ <edge id="166576464#0" from="1780219366" to="1780219373" priority="1" type="highway.footway">
+ <lane id="166576464#0_0" index="0" allow="pedestrian" speed="8.33" length="17.54" shape="793.18,1033.34 810.57,1035.61"/>
+ </edge>
+ <edge id="166576464#1" from="1780219373" to="1780219331" priority="1" type="highway.footway">
+ <lane id="166576464#1_0" index="0" allow="pedestrian" speed="8.33" length="3.32" shape="814.03,1036.38 816.93,1034.78"/>
+ </edge>
+ <edge id="166576464#2" from="1780219331" to="1780219342" priority="1" type="highway.footway">
+ <lane id="166576464#2_0" index="0" allow="pedestrian" speed="8.33" length="3.32" shape="824.42,1028.56 826.83,1026.27"/>
+ </edge>
+ <edge id="166576464#3" from="1780219342" to="1780219363" priority="1" type="highway.footway">
+ <lane id="166576464#3_0" index="0" allow="pedestrian" speed="8.33" length="6.68" shape="837.44,1015.00 841.77,1009.91"/>
+ </edge>
+ <edge id="166576464#4" from="1780219363" to="1780219371" priority="1" type="highway.footway">
+ <lane id="166576464#4_0" index="0" allow="pedestrian" speed="8.33" length="1.70" shape="846.66,1004.68 847.93,1003.54"/>
+ </edge>
+ <edge id="166576466#0" from="1780219335" to="1780219344" priority="1" type="highway.footway">
+ <lane id="166576466#0_0" index="0" allow="pedestrian" speed="8.33" length="5.15" shape="857.39,1144.57 852.81,1146.93"/>
+ </edge>
+ <edge id="166576466#1" from="1780219344" to="1780219374" priority="1" type="highway.footway">
+ <lane id="166576466#1_0" index="0" allow="pedestrian" speed="8.33" length="26.87" shape="843.91,1151.55 820.11,1164.02"/>
+ </edge>
+ <edge id="166576466#2" from="1780219374" to="1780219345" priority="1" type="highway.footway" shape="816.31,1164.16 795.03,1175.31 786.51,1179.73">
+ <lane id="166576466#2_0" index="0" allow="pedestrian" speed="8.33" length="18.79" shape="810.90,1168.85 795.80,1176.77 794.26,1177.57"/>
+ </edge>
+ <edge id="166576468#0" from="1780219369" to="1780219343" priority="1" type="highway.footway">
+ <lane id="166576468#0_0" index="0" allow="pedestrian" speed="8.33" length="0.29" shape="890.95,1182.12 891.21,1181.98"/>
+ </edge>
+ <edge id="166576468#1" from="1780219343" to="1780219352" priority="1" type="highway.footway">
+ <lane id="166576468#1_0" index="0" allow="pedestrian" speed="8.33" length="2.76" shape="902.61,1176.04 905.06,1174.76"/>
+ </edge>
+ <edge id="166576468#2" from="1780219352" to="1780219362" priority="1" type="highway.footway">
+ <lane id="166576468#2_0" index="0" allow="pedestrian" speed="8.33" length="7.40" shape="916.43,1168.84 922.98,1165.41"/>
+ </edge>
+ <edge id="166576468#3" from="1780219362" to="1780219332" priority="1" type="highway.footway">
+ <lane id="166576468#3_0" index="0" allow="pedestrian" speed="8.33" length="1.16" shape="928.49,1162.54 929.52,1162.00"/>
+ </edge>
+ <edge id="166602674#0" from="1168929382" to="1246731466" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="166602674#0_0" index="0" speed="27.78" length="4.74" shape="1145.73,1032.11 1143.29,1027.51"/>
+ <lane id="166602674#0_1" index="1" speed="27.78" length="4.74" shape="1148.64,1030.57 1146.64,1026.79"/>
+ </edge>
+ <edge id="166602674#1" from="1246731466" to="2081499951" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="166602674#1_0" index="0" speed="27.78" length="3.49" shape="1142.36,1025.77 1140.76,1022.67"/>
+ <lane id="166602674#1_1" index="1" speed="27.78" length="3.49" shape="1145.29,1024.25 1143.68,1021.15"/>
+ </edge>
+ <edge id="166602674#2" from="2081499951" to="1843239244" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1142.14,1021.77 1012.81,773.36 947.95,650.66">
+ <lane id="166602674#2_0" index="0" speed="27.78" length="414.09" shape="1138.48,1018.30 1011.35,774.12 946.49,651.43"/>
+ <lane id="166602674#2_1" index="1" speed="27.78" length="414.09" shape="1141.41,1016.78 1014.27,772.60 949.41,649.89"/>
+ </edge>
+ <edge id="166603397#0" from="1168929562" to="951739776" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="166603397#0_0" index="0" speed="27.78" length="13.77" shape="1172.87,1083.96 1166.48,1071.76"/>
+ <lane id="166603397#0_1" index="1" speed="27.78" length="13.77" shape="1175.79,1082.43 1169.40,1070.23"/>
+ </edge>
+ <edge id="166603397#1" from="951739776" to="951739443" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="166603397#1_0" index="0" speed="27.78" length="10.86" shape="1163.51,1066.09 1158.46,1056.46"/>
+ <lane id="166603397#1_1" index="1" speed="27.78" length="10.86" shape="1166.43,1064.55 1161.39,1054.93"/>
+ </edge>
+ <edge id="166603397#2" from="951739443" to="1168929382" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="166603397#2_0" index="0" speed="27.78" length="12.78" shape="1155.43,1050.67 1149.52,1039.34"/>
+ <lane id="166603397#2_1" index="1" speed="27.78" length="12.78" shape="1158.36,1049.14 1152.45,1037.81"/>
+ </edge>
+ <edge id="166625256#0" from="1244292219" to="1244292210" priority="1" type="highway.pedestrian" shape="1081.72,1786.85 1064.23,1752.83 1149.19,1709.42 1166.69,1743.45">
+ <lane id="166625256#0_0" index="0" allow="pedestrian" speed="8.33" length="172.03" shape="1078.77,1784.73 1062.00,1752.11 1149.91,1707.20 1166.66,1739.79"/>
+ </edge>
+ <edge id="166625256#1" from="1244292210" to="1244292219" priority="1" type="highway.pedestrian">
+ <lane id="166625256#1_0" index="0" allow="pedestrian" speed="8.33" length="88.91" shape="1164.54,1746.40 1085.36,1786.85"/>
+ </edge>
+ <edge id="166625259" from="438042379" to="1780623649" priority="2" type="highway.service" shape="1125.23,1656.38 1111.17,1662.53 943.97,1747.10">
+ <lane id="166625259_0" index="0" allow="delivery" speed="5.56" length="199.29" shape="1122.83,1659.23 1111.83,1664.04 944.71,1748.57"/>
+ </edge>
+ <edge id="166728377#0" from="255227480" to="255227482" priority="1" type="highway.pedestrian">
+ <lane id="166728377#0_0" index="0" allow="pedestrian" speed="8.33" length="34.50" shape="1360.18,843.25 1389.64,825.29"/>
+ </edge>
+ <edge id="166728377#1" from="255227482" to="1624060630" priority="1" type="highway.pedestrian">
+ <lane id="166728377#1_0" index="0" allow="pedestrian" speed="8.33" length="42.24" shape="1398.51,827.76 1417.99,865.24"/>
+ </edge>
+ <edge id="166728377#2" from="1624060630" to="255227480" priority="1" type="highway.pedestrian">
+ <lane id="166728377#2_0" index="0" allow="pedestrian" speed="8.33" length="53.75" shape="1411.16,872.85 1361.07,853.33"/>
+ </edge>
+ <edge id="170088033" from="1812395450" to="1726380204" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="170088033_0" index="0" speed="22.22" length="80.97" shape="624.39,1523.01 646.39,1600.93"/>
+ </edge>
+ <edge id="170590352" from="1246731620" to="1168929385" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="170590352_0" index="0" speed="27.78" length="6.43" shape="1154.92,1017.39 1160.50,1027.89"/>
+ <lane id="170590352_1" index="1" speed="27.78" length="6.43" shape="1155.57,1025.65 1156.03,1026.52"/>
+ </edge>
+ <edge id="170590354#0" from="1246731541" to="2265767394" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="170590354#0_0" index="0" speed="27.78" length="157.17" shape="1199.41,1027.42 1336.41,950.40"/>
+ <lane id="170590354#0_1" index="1" speed="27.78" length="157.17" shape="1201.03,1030.30 1338.03,953.28"/>
+ </edge>
+ <edge id="170590354#1" from="2265767394" to="2265767389" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="170590354#1_0" index="0" speed="27.78" length="94.23" shape="1345.94,945.04 1428.08,898.87"/>
+ <lane id="170590354#1_1" index="1" speed="27.78" length="94.23" shape="1347.56,947.92 1429.70,901.75"/>
+ </edge>
+ <edge id="170590354#2" from="2265767389" to="1817657657" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1433.12,897.93 1487.87,867.15 1501.36,859.76 1534.95,841.27">
+ <lane id="170590354#2_0" index="0" speed="27.78" length="111.67" shape="1436.55,894.11 1487.06,865.71 1500.57,858.31 1534.15,839.82"/>
+ <lane id="170590354#2_1" index="1" speed="27.78" length="111.67" shape="1438.17,896.99 1488.68,868.58 1502.15,861.20 1535.75,842.71"/>
+ </edge>
+ <edge id="170594822#0" from="1817657658" to="2265767392" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1542.68,855.81 1509.92,874.39 1441.34,913.04">
+ <lane id="170594822#0_0" index="0" speed="27.78" length="111.61" shape="1543.49,857.24 1510.74,875.83 1446.31,912.14"/>
+ <lane id="170594822#0_1" index="1" speed="27.78" length="111.61" shape="1541.87,854.37 1509.11,872.96 1444.69,909.26"/>
+ </edge>
+ <edge id="170594822#1" from="2265767392" to="2265767395" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1441.34,913.04 1384.29,945.18 1347.48,965.97">
+ <lane id="170594822#1_0" index="0" speed="27.78" length="97.53" shape="1438.00,916.82 1385.10,946.62 1353.05,964.72"/>
+ <lane id="170594822#1_1" index="1" speed="27.78" length="97.53" shape="1436.38,913.94 1383.48,943.74 1351.42,961.85"/>
+ </edge>
+ <edge id="170594822#2" from="2265767395" to="1246731470" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1347.48,965.97 1214.20,1041.23 1204.48,1046.73">
+ <lane id="170594822#2_0" index="0" speed="27.78" length="159.01" shape="1343.54,970.09 1215.02,1042.67 1205.09,1048.28"/>
+ <lane id="170594822#2_1" index="1" speed="27.78" length="159.01" shape="1341.92,967.22 1213.39,1039.80 1203.46,1045.41"/>
+ </edge>
+ <edge id="170594822#3" from="1246731470" to="1168929324" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="170594822#3_0" index="0" speed="27.78" length="1.08" shape="1204.05,1048.95 1203.15,1049.52"/>
+ <lane id="170594822#3_1" index="1" speed="27.78" length="1.08" shape="1202.32,1046.14 1201.39,1046.73"/>
+ </edge>
+ <edge id="172498367" from="950094314" to="428097664" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="172498367_0" index="0" speed="22.22" length="7.82" shape="1348.81,1972.51 1352.49,1979.41"/>
+ </edge>
+ <edge id="172498380#0" from="13929737" to="452446340" priority="5" type="highway.unclassified" spreadType="center" shape="1291.53,1973.90 1292.95,1969.18 1295.20,1964.75 1298.23,1960.35 1302.36,1956.94">
+ <lane id="172498380#0_0" index="0" speed="22.22" length="10.74" shape="1293.16,1968.78 1295.20,1964.75 1298.23,1960.35 1298.91,1959.79"/>
+ </edge>
+ <edge id="172498380#1" from="452446340" to="452446345" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="172498380#1_0" index="0" speed="22.22" length="3.81" shape="1306.57,1954.65 1309.92,1952.83"/>
+ </edge>
+ <edge id="172498380#2" from="452446345" to="435668516" priority="5" type="highway.unclassified" spreadType="center" shape="1314.14,1950.54 1320.39,1949.49 1326.19,1949.56 1331.81,1950.65 1337.66,1952.73">
+ <lane id="172498380#2_0" index="0" speed="22.22" length="14.13" shape="1318.44,1949.81 1320.39,1949.49 1326.19,1949.56 1331.81,1950.65 1332.41,1950.87"/>
+ </edge>
+ <edge id="172498387#0" from="435668513" to="435668521" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="172498387#0_0" index="0" speed="22.22" length="75.56" shape="1412.11,1912.06 1479.04,1876.99"/>
+ </edge>
+ <edge id="172498387#1" from="435668521" to="443089060" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="172498387#1_0" index="0" speed="22.22" length="74.48" shape="1484.53,1874.08 1550.17,1838.89"/>
+ </edge>
+ <edge id="172498387#2" from="443089060" to="1726394728" priority="5" type="highway.unclassified" spreadType="center" shape="1552.91,1837.42 1567.58,1829.59 1572.50,1826.82">
+ <lane id="172498387#2_0" index="0" speed="22.22" length="10.97" shape="1555.69,1835.93 1565.37,1830.76"/>
+ </edge>
+ <edge id="172498387#3" from="1726394728" to="1669480292" priority="5" type="highway.unclassified" spreadType="center" shape="1572.50,1826.82 1579.34,1823.35 1587.31,1819.14">
+ <lane id="172498387#3_0" index="0" speed="22.22" length="3.90" shape="1579.66,1823.18 1583.10,1821.36"/>
+ </edge>
+ <edge id="172498387#4" from="1669480292" to="441266884" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="172498387#4_0" index="0" speed="22.22" length="2.86" shape="1588.99,1818.25 1591.52,1816.91"/>
+ </edge>
+ <edge id="172498387#5" from="441266884" to="429418283" priority="5" type="highway.unclassified" spreadType="center" shape="1591.73,1816.80 1699.90,1760.07 1812.71,1700.74 1886.93,1659.64">
+ <lane id="172498387#5_0" index="0" speed="22.22" length="331.34" shape="1594.48,1815.36 1699.90,1760.07 1812.71,1700.74 1886.93,1659.64"/>
+ </edge>
+ <edge id="172498388" from="950094314" to="950094380" priority="15" type="highway.primary|railway.tram" spreadType="center">
+ <lane id="172498388_0" index="0" speed="27.78" length="39.37" shape="1346.82,1975.43 1312.06,1993.92"/>
+ <lane id="172498388_1" index="1" speed="27.78" length="39.37" shape="1345.27,1972.52 1310.51,1991.00"/>
+ </edge>
+ <edge id="179692877#0" from="444026889" to="1168929398" priority="6" type="highway.tertiary">
+ <lane id="179692877#0_0" index="0" speed="22.22" length="44.11" shape="799.88,1079.45 804.84,1035.62"/>
+ </edge>
+ <edge id="179692877#1" from="1168929398" to="441236049" priority="6" type="highway.tertiary" shape="806.50,1035.63 808.39,1027.28 810.99,1017.83">
+ <lane id="179692877#1_0" index="0" speed="22.22" length="6.19" shape="804.93,1035.09 806.30,1029.05"/>
+ </edge>
+ <edge id="179917801" from="1224080662" to="1903640411" priority="5" type="highway.unclassified" spreadType="center" shape="630.37,1226.05 691.93,1191.92 660.44,1135.29">
+ <lane id="179917801_0" index="0" speed="22.22" length="133.70" shape="630.36,1226.06 691.93,1191.92 661.17,1136.60"/>
+ </edge>
+ <edge id="179917803#0" from="1627657715" to="1224074534" priority="5" type="highway.unclassified" shape="702.84,1103.36 707.93,1101.38 779.72,1087.83">
+ <lane id="179917803#0_0" index="0" speed="22.22" length="70.59" shape="706.39,1100.21 707.47,1099.79 775.70,1086.91"/>
+ </edge>
+ <edge id="179917803#1" from="1224074534" to="1224074533" priority="5" type="highway.unclassified">
+ <lane id="179917803#1_0" index="0" speed="22.22" length="3.88" shape="781.43,1085.98 785.28,1085.55"/>
+ </edge>
+ <edge id="190048063" from="250685829" to="450564004" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="190048063_0" index="0" speed="22.22" length="2.35" shape="1384.54,2163.46 1383.42,2161.40"/>
+ </edge>
+ <edge id="190048065" from="2006433692" to="450564005" priority="5" type="highway.unclassified">
+ <lane id="190048065_0" index="0" speed="22.22" length="127.75" shape="1339.62,2033.36 1398.78,2146.58"/>
+ </edge>
+ <edge id="191056427#0" from="2016414185" to="2016414184" priority="2" type="highway.service">
+ <lane id="191056427#0_0" index="0" allow="delivery" speed="5.56" length="10.89" shape="830.64,1633.71 840.98,1630.32"/>
+ </edge>
+ <edge id="191056427#1" from="2016414184" to="1719223329" priority="2" type="highway.service" shape="836.73,1633.45 847.03,1630.06 871.10,1615.22 911.34,1598.13 921.87,1598.37">
+ <lane id="191056427#1_0" index="0" allow="delivery" speed="5.56" length="81.54" shape="845.73,1628.75 846.33,1628.55 870.23,1613.82 911.03,1596.47 919.53,1596.67"/>
+ </edge>
+ <edge id="191056428" from="2016414174" to="2016414184" priority="2" type="highway.service" spreadType="center" shape="922.23,1589.47 910.41,1590.07 874.98,1609.34 850.34,1621.39 844.31,1624.67 836.73,1633.45">
+ <lane id="191056428_0" index="0" allow="delivery" speed="5.56" length="87.58" shape="922.23,1589.47 910.41,1590.07 874.98,1609.34 850.34,1621.39 844.31,1624.67 843.57,1625.52"/>
+ </edge>
+ <edge id="191176261" from="2017759592" to="2017759586" priority="1" type="highway.footway">
+ <lane id="191176261_0" index="0" allow="pedestrian" speed="8.33" length="6.41" shape="862.04,1732.46 858.91,1726.86"/>
+ </edge>
+ <edge id="191176262" from="2017759586" to="1474873139" priority="1" type="highway.footway">
+ <lane id="191176262_0" index="0" allow="pedestrian" speed="8.33" length="64.64" shape="856.79,1726.22 799.16,1755.48"/>
+ </edge>
+ <edge id="191176263" from="2017759594" to="2017759596" priority="1" type="highway.footway">
+ <lane id="191176263_0" index="0" allow="pedestrian" speed="8.33" length="5.87" shape="870.03,1738.43 872.37,1743.82"/>
+ </edge>
+ <edge id="191176264" from="2017759594" to="2017759592" priority="1" type="highway.footway">
+ <lane id="191176264_0" index="0" allow="pedestrian" speed="8.33" length="7.10" shape="866.34,1738.70 862.29,1732.86"/>
+ </edge>
+ <edge id="191176265" from="1474873137" to="2017759594" priority="1" type="highway.footway">
+ <lane id="191176265_0" index="0" allow="pedestrian" speed="8.33" length="5.58" shape="871.19,1744.71 867.62,1740.41"/>
+ </edge>
+ <edge id="191176266" from="1474873133" to="2017759594" priority="1" type="highway.footway">
+ <lane id="191176266_0" index="0" allow="pedestrian" speed="8.33" length="6.53" shape="867.32,1730.42 869.39,1736.61"/>
+ </edge>
+ <edge id="191176267" from="2017759596" to="2017759615" priority="1" type="highway.footway" shape="870.93,1744.65 876.21,1753.74 858.28,1762.79">
+ <lane id="191176267_0" index="0" allow="pedestrian" speed="8.33" length="33.90" shape="872.45,1743.98 878.51,1754.42 859.03,1764.26"/>
+ </edge>
+ <edge id="191176268" from="2017759588" to="1474873133" priority="1" type="highway.footway" shape="875.15,1726.33 864.67,1728.78 865.67,1730.70">
+ <lane id="191176268_0" index="0" allow="pedestrian" speed="8.33" length="2.96" shape="870.00,1729.23 867.12,1729.90"/>
+ </edge>
+ <edge id="197781817" from="1625774769" to="2079750190" priority="1" type="highway.footway" shape="1638.79,2492.24 1576.84,2373.05 1519.37,2263.89 1477.48,2184.33">
+ <lane id="197781817_0" index="0" allow="pedestrian" speed="8.33" length="342.82" shape="1637.32,2493.00 1575.38,2373.81 1517.91,2264.66 1478.24,2189.32"/>
+ </edge>
+ <edge id="197794762" from="2079750190" to="1431113444" priority="1" type="highway.footway">
+ <lane id="197794762_0" index="0" allow="pedestrian" speed="8.33" length="21.71" shape="1480.96,2180.67 1500.24,2170.70"/>
+ </edge>
+ <edge id="197955309#0" from="2081499952" to="1639892546" priority="1" type="highway.footway">
+ <lane id="197955309#0_0" index="0" allow="pedestrian" speed="8.33" length="1.67" shape="1130.53,1026.17 1131.99,1025.37"/>
+ </edge>
+ <edge id="197955309#1" from="1639892546" to="2081499951" priority="1" type="highway.footway">
+ <lane id="197955309#1_0" index="0" allow="pedestrian" speed="8.33" length="3.61" shape="1137.15,1022.56 1140.34,1020.86"/>
+ </edge>
+ <edge id="197955309#2" from="2081499951" to="2081499950" priority="1" type="highway.footway">
+ <lane id="197955309#2_0" index="0" allow="pedestrian" speed="8.33" length="5.38" shape="1140.83,1020.59 1145.59,1018.09"/>
+ </edge>
+ <edge id="197955309#3" from="2081499950" to="2081499949" priority="1" type="highway.footway">
+ <lane id="197955309#3_0" index="0" allow="pedestrian" speed="8.33" length="4.63" shape="1147.51,1017.07 1151.61,1014.90"/>
+ </edge>
+ <edge id="197955309#4" from="2081499949" to="2081499948" priority="1" type="highway.footway">
+ <lane id="197955309#4_0" index="0" allow="pedestrian" speed="8.33" length="3.50" shape="1151.66,1014.87 1154.71,1013.14"/>
+ </edge>
+ <edge id="197955309#5" from="2081499948" to="2081499947" priority="1" type="highway.footway">
+ <lane id="197955309#5_0" index="0" allow="pedestrian" speed="8.33" length="3.49" shape="1158.97,1010.87 1162.05,1009.24"/>
+ </edge>
+ <edge id="23066443#0" from="252417165" to="443089071" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#0_0" index="0" speed="13.89" length="5.76" shape="1229.13,1565.60 1231.78,1570.72"/>
+ </edge>
+ <edge id="23066443#1" from="443089071" to="438042376" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#1_0" index="0" speed="13.89" length="96.24" shape="1234.64,1576.23 1278.91,1661.69"/>
+ </edge>
+ <edge id="23066443#2" from="438042376" to="438042372" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#2_0" index="0" speed="13.89" length="7.60" shape="1282.15,1667.95 1285.65,1674.69"/>
+ </edge>
+ <edge id="23066443#3" from="438042372" to="452425491" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#3_0" index="0" speed="13.89" length="2.02" shape="1288.81,1680.80 1289.74,1682.59"/>
+ </edge>
+ <edge id="23066443#4" from="452425491" to="733663121" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#4_0" index="0" speed="13.89" length="2.06" shape="1294.14,1691.08 1295.08,1692.91"/>
+ </edge>
+ <edge id="23066443#5" from="733663121" to="248913131" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#5_0" index="0" speed="13.89" length="73.41" shape="1299.48,1701.39 1333.24,1766.57"/>
+ </edge>
+ <edge id="23066443#6" from="248913131" to="248913144" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#6_0" index="0" speed="13.89" length="70.81" shape="1337.63,1775.03 1370.21,1837.89"/>
+ </edge>
+ <edge id="23066443#7" from="248913144" to="435668513" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23066443#7_0" index="0" speed="13.89" length="72.49" shape="1374.60,1846.37 1407.93,1910.74"/>
+ </edge>
+ <edge id="23066446#0" from="248913130" to="452425488" priority="4" type="highway.residential">
+ <lane id="23066446#0_0" index="0" speed="13.89" length="9.95" shape="1265.19,1806.01 1274.04,1801.45"/>
+ </edge>
+ <edge id="23066446#1" from="452425488" to="248913131" priority="4" type="highway.residential">
+ <lane id="23066446#1_0" index="0" speed="13.89" length="55.95" shape="1282.47,1797.04 1331.89,1770.81"/>
+ </edge>
+ <edge id="23066446#2" from="248913131" to="248913133" priority="4" type="highway.residential">
+ <lane id="23066446#2_0" index="0" speed="13.89" length="75.62" shape="1337.43,1767.88 1404.22,1732.43"/>
+ </edge>
+ <edge id="23066446#3" from="248913133" to="443089062" priority="4" type="highway.residential">
+ <lane id="23066446#3_0" index="0" speed="13.89" length="75.68" shape="1409.76,1729.51 1476.84,1694.46"/>
+ </edge>
+ <edge id="23066462#0" from="248913200" to="250689186" priority="1" type="highway.pedestrian" shape="1290.84,1231.35 1306.94,1224.00 1321.70,1219.55 1335.59,1219.93 1348.78,1223.51">
+ <lane id="23066462#0_0" index="0" allow="pedestrian" speed="8.33" length="54.29" shape="1293.28,1228.42 1306.26,1222.50 1321.48,1217.89 1335.83,1218.28 1345.26,1220.84"/>
+ </edge>
+ <edge id="23066462#1" from="250689186" to="441266870" priority="1" type="highway.pedestrian" shape="1348.78,1223.51 1358.96,1229.91 1370.27,1239.60">
+ <lane id="23066462#1_0" index="0" allow="pedestrian" speed="8.33" length="18.88" shape="1353.49,1224.52 1359.84,1228.51 1368.49,1235.91"/>
+ </edge>
+ <edge id="23066462#2" from="441266870" to="250689131" priority="1" type="highway.pedestrian" shape="1370.27,1239.60 1379.18,1251.74 1383.02,1266.41">
+ <lane id="23066462#2_0" index="0" allow="pedestrian" speed="8.33" length="20.01" shape="1374.67,1242.81 1380.70,1251.02 1383.19,1260.53"/>
+ </edge>
+ <edge id="23066462#3" from="250689131" to="250689201" priority="1" type="highway.pedestrian" shape="1383.02,1266.41 1384.59,1277.96 1384.40,1289.75">
+ <lane id="23066462#3_0" index="0" allow="pedestrian" speed="8.33" length="15.19" shape="1385.16,1269.90 1386.23,1277.73 1386.12,1285.02"/>
+ </edge>
+ <edge id="23066462#4" from="250689201" to="248913200" priority="1" type="highway.pedestrian" shape="1384.40,1289.75 1378.26,1306.06 1363.65,1322.46 1345.01,1334.36 1290.84,1231.35">
+ <lane id="23066462#4_0" index="0" allow="pedestrian" speed="8.33" length="175.33" shape="1384.61,1293.87 1379.70,1306.93 1364.73,1323.73 1344.39,1336.71 1290.98,1235.15"/>
+ </edge>
+ <edge id="23182340#0" from="250686490" to="250683362" priority="4" type="highway.residential" spreadType="center" shape="1552.96,2840.11 1555.33,2758.23 1511.80,2670.51 1469.87,2590.05 1426.08,2510.02 1376.26,2415.24 1323.71,2315.58">
+ <lane id="23182340#0_0" index="0" speed="13.89" length="578.43" shape="1552.96,2840.11 1555.33,2758.23 1511.80,2670.51 1469.87,2590.05 1426.08,2510.02 1376.26,2415.24 1325.16,2318.33"/>
+ </edge>
+ <edge id="23182340#1" from="250683362" to="250685816" priority="4" type="highway.residential" spreadType="center">
+ <lane id="23182340#1_0" index="0" speed="13.89" length="93.30" shape="1322.32,2312.78 1280.72,2229.27"/>
+ </edge>
+ <edge id="23182358#0" from="250685766" to="250683336" priority="5" type="highway.unclassified">
+ <lane id="23182358#0_0" index="0" speed="22.22" length="93.53" shape="1167.53,2287.37 1210.79,2370.29"/>
+ </edge>
+ <edge id="23182358#1" from="250683336" to="250684983" priority="5" type="highway.unclassified" shape="1210.76,2373.81 1264.20,2474.18 1313.08,2568.15">
+ <lane id="23182358#1_0" index="0" speed="22.22" length="216.48" shape="1213.71,2375.83 1265.66,2473.41 1314.55,2567.39"/>
+ </edge>
+ <edge id="23182358#2" from="250684983" to="2004733211" priority="5" type="highway.unclassified" shape="1313.08,2568.15 1355.30,2649.19 1396.85,2729.13 1452.46,2835.71 1459.79,2849.82 1462.78,2857.50 1465.13,2867.89">
+ <lane id="23182358#2_0" index="0" speed="22.22" length="336.91" shape="1314.55,2567.39 1356.76,2648.43 1398.31,2728.37 1453.92,2834.95 1461.26,2849.06 1464.32,2856.90 1466.74,2867.53"/>
+ </edge>
+ <edge id="23182387#0" from="503954409" to="250683336" priority="5" type="highway.unclassified" spreadType="center" shape="803.00,2587.20 899.68,2536.52 1009.71,2480.15 1111.90,2425.19 1210.76,2373.81">
+ <lane id="23182387#0_0" index="0" speed="22.22" length="451.68" shape="806.37,2585.44 899.68,2536.52 1009.71,2480.15 1111.90,2425.19 1206.55,2376.00"/>
+ </edge>
+ <edge id="23182387#1" from="250683336" to="250683402" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182387#1_0" index="0" speed="22.22" length="55.90" shape="1215.04,2371.65 1264.96,2346.50"/>
+ </edge>
+ <edge id="23182387#2" from="250683402" to="250683362" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182387#2_0" index="0" speed="22.22" length="57.06" shape="1270.50,2343.64 1320.97,2317.02"/>
+ </edge>
+ <edge id="23182387#3" from="250683362" to="1367855932" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182387#3_0" index="0" speed="22.22" length="108.73" shape="1326.49,2314.14 1423.03,2264.13"/>
+ </edge>
+ <edge id="23182387#4" from="1367855932" to="250683337" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182387#4_0" index="0" speed="22.22" length="0.19" shape="1431.46,2259.74 1431.63,2259.65"/>
+ </edge>
+ <edge id="23182391" from="250686694" to="250683402" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182391_0" index="0" speed="22.22" length="94.84" shape="1223.78,2257.54 1266.32,2342.31"/>
+ </edge>
+ <edge id="23182484#0" from="450564006" to="250685829" priority="5" type="highway.unclassified">
+ <lane id="23182484#0_0" index="0" speed="22.22" length="8.03" shape="1401.49,2161.89 1394.36,2165.59"/>
+ </edge>
+ <edge id="23182484#1" from="250685829" to="1367855925" priority="5" type="highway.unclassified">
+ <lane id="23182484#1_0" index="0" speed="22.22" length="0.26" shape="1385.05,2170.45 1384.82,2170.57"/>
+ </edge>
+ <edge id="23182484#2" from="1367855925" to="250685816" priority="5" type="highway.unclassified">
+ <lane id="23182484#2_0" index="0" speed="22.22" length="107.01" shape="1376.66,2174.90 1282.13,2225.06"/>
+ </edge>
+ <edge id="23182517#0" from="250685766" to="450564003" priority="5" type="highway.unclassified">
+ <lane id="23182517#0_0" index="0" speed="22.22" length="3.26" shape="1161.72,2283.40 1160.20,2280.52"/>
+ </edge>
+ <edge id="23182517#1" from="450564003" to="975934878" priority="5" type="highway.unclassified">
+ <lane id="23182517#1_0" index="0" speed="22.22" length="2.26" shape="1157.31,2274.98 1156.27,2272.97"/>
+ </edge>
+ <edge id="23182517#2" from="975934878" to="1545673349" priority="5" type="highway.unclassified">
+ <lane id="23182517#2_0" index="0" speed="22.22" length="41.56" shape="1153.46,2267.47 1134.81,2230.32"/>
+ </edge>
+ <edge id="23182517#3" from="1545673349" to="1545673118" priority="5" type="highway.unclassified">
+ <lane id="23182517#3_0" index="0" speed="22.22" length="58.59" shape="1130.55,2221.83 1104.26,2169.47"/>
+ </edge>
+ <edge id="23182517#4" from="1545673118" to="252418937" priority="5" type="highway.unclassified">
+ <lane id="23182517#4_0" index="0" speed="22.22" length="38.52" shape="1099.99,2160.98 1082.70,2126.55"/>
+ </edge>
+ <edge id="23182589#0" from="443101911" to="250688540" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182589#0_0" index="0" speed="22.22" length="69.70" shape="1088.61,1125.70 1120.58,1187.63"/>
+ </edge>
+ <edge id="23182589#1" from="250688540" to="250688445" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23182589#1_0" index="0" speed="22.22" length="72.68" shape="1123.47,1193.15 1157.65,1257.29"/>
+ </edge>
+ <edge id="23182640" from="252417585" to="441266879" priority="5" type="highway.unclassified" spreadType="center" shape="1763.69,1292.21 1748.55,1299.07 1638.48,1357.69 1525.73,1418.03 1418.86,1475.44 1413.40,1478.37">
+ <lane id="23182640_0" index="0" speed="22.22" length="393.61" shape="1763.69,1292.21 1748.55,1299.07 1638.48,1357.69 1525.73,1418.03 1418.86,1475.44 1416.14,1476.90"/>
+ </edge>
+ <edge id="23262356#0" from="255227471" to="2265767394" priority="5" type="highway.unclassified">
+ <lane id="23262356#0_0" index="0" speed="22.22" length="4.80" shape="1342.10,954.87 1340.62,950.31"/>
+ </edge>
+ <edge id="23262356#1" from="2265767394" to="443101920" priority="5" type="highway.unclassified">
+ <lane id="23262356#1_0" index="0" speed="22.22" length="2.70" shape="1339.56,947.04 1338.73,944.47"/>
+ </edge>
+ <edge id="23262356#2" from="443101920" to="255227475" priority="5" type="highway.unclassified">
+ <lane id="23262356#2_0" index="0" speed="22.22" length="65.53" shape="1337.03,940.77 1307.71,882.17"/>
+ </edge>
+ <edge id="23262356#3" from="255227475" to="255227472" priority="5" type="highway.unclassified">
+ <lane id="23262356#3_0" index="0" speed="22.22" length="64.98" shape="1303.30,874.21 1269.63,818.64"/>
+ </edge>
+ <edge id="23315111#0" from="252418937" to="950094412" priority="5" type="highway.unclassified">
+ <lane id="23315111#0_0" index="0" speed="22.22" length="0.70" shape="1079.87,2120.70 1079.58,2120.06"/>
+ </edge>
+ <edge id="23315111#1" from="950094412" to="427996791" priority="5" type="highway.unclassified">
+ <lane id="23315111#1_0" index="0" speed="22.22" length="3.73" shape="1077.01,2114.55 1075.43,2111.18"/>
+ </edge>
+ <edge id="23315111#2" from="427996791" to="950094425" priority="5" type="highway.unclassified">
+ <lane id="23315111#2_0" index="0" speed="22.22" length="4.89" shape="1074.93,2110.11 1072.87,2105.68"/>
+ </edge>
+ <edge id="23315111#3" from="950094425" to="427996792" priority="5" type="highway.unclassified">
+ <lane id="23315111#3_0" index="0" speed="22.22" length="0.95" shape="1068.72,2096.79 1068.32,2095.93"/>
+ </edge>
+ <edge id="23566901#0" from="255227478" to="255227480" priority="4" type="highway.residential" shape="1257.12,791.07 1271.43,783.65 1354.16,848.86">
+ <lane id="23566901#0_0" index="0" speed="13.89" length="117.41" shape="1256.36,789.61 1271.62,781.69 1350.32,843.74"/>
+ </edge>
+ <edge id="23566901#1" from="255227480" to="1624060630" priority="4" type="highway.residential">
+ <lane id="23566901#1_0" index="0" speed="13.89" length="53.75" shape="1362.27,850.25 1412.35,869.77"/>
+ </edge>
+ <edge id="23566902" from="255227472" to="566579339" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="23566902_0" index="0" speed="22.22" length="174.07" shape="1265.39,817.52 1113.48,902.52"/>
+ </edge>
+ <edge id="24319547" from="250688445" to="443089065" priority="5" type="highway.unclassified" spreadType="center" shape="1158.40,1258.68 1223.82,1224.80 1230.62,1221.27">
+ <lane id="24319547_0" index="0" speed="22.22" length="76.64" shape="1159.80,1257.95 1223.82,1224.80 1227.86,1222.71"/>
+ </edge>
+ <edge id="24319558" from="250688540" to="443089066" priority="5" type="highway.unclassified" spreadType="center" shape="1122.03,1190.45 1133.50,1183.96 1187.22,1153.55 1192.98,1150.29">
+ <lane id="24319558_0" index="0" speed="22.22" length="75.22" shape="1124.78,1188.89 1133.50,1183.96 1187.22,1153.55 1190.24,1151.84"/>
+ </edge>
+ <edge id="24573897#0" from="1536917218" to="1624003168" priority="5" type="highway.unclassified" spreadType="center" shape="683.21,346.28 702.42,382.80 751.25,476.40 806.08,581.49 865.32,695.50 923.06,806.24">
+ <lane id="24573897#0_0" index="0" speed="22.22" length="515.58" shape="683.21,346.28 702.42,382.80 751.25,476.40 806.08,581.49 865.32,695.50 921.60,803.44"/>
+ </edge>
+ <edge id="24573897#1" from="1624003168" to="538810726" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573897#1_0" index="0" speed="22.22" length="97.20" shape="924.52,809.03 969.51,895.18"/>
+ </edge>
+ <edge id="24573897#2" from="538810726" to="1624020484" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573897#2_0" index="0" speed="22.22" length="67.44" shape="972.43,900.78 1003.63,960.58"/>
+ </edge>
+ <edge id="24573897#3" from="1624020484" to="267169554" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573897#3_0" index="0" speed="22.22" length="71.84" shape="1006.54,966.01 1041.24,1028.91"/>
+ </edge>
+ <edge id="24573897#4" from="267169554" to="443101915" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573897#4_0" index="0" speed="22.22" length="63.22" shape="1044.21,1034.45 1073.46,1090.50"/>
+ </edge>
+ <edge id="24573905#0" from="443089068" to="267169554" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573905#0_0" index="0" speed="22.22" length="70.19" shape="1106.42,995.30 1045.46,1030.10"/>
+ </edge>
+ <edge id="24573905#1" from="267169554" to="267169592" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573905#1_0" index="0" speed="22.22" length="73.10" shape="1040.00,1033.21 976.45,1069.33"/>
+ </edge>
+ <edge id="24573905#2" from="267169592" to="719463795" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573905#2_0" index="0" speed="22.22" length="68.47" shape="970.96,1072.46 911.46,1106.35"/>
+ </edge>
+ <edge id="24573905#3" from="719463795" to="267169591" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573905#3_0" index="0" speed="22.22" length="1.34" shape="903.09,1111.12 901.93,1111.78"/>
+ </edge>
+ <edge id="24573930#0" from="443101914" to="267169592" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573930#0_0" index="0" speed="22.22" length="63.06" shape="1004.27,1129.64 975.17,1073.70"/>
+ </edge>
+ <edge id="24573930#1" from="267169592" to="1624020482" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573930#1_0" index="0" speed="22.22" length="70.87" shape="972.25,1068.09 939.55,1005.21"/>
+ </edge>
+ <edge id="24573930#2" from="1624020482" to="538810724" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573930#2_0" index="0" speed="22.22" length="68.35" shape="936.69,999.71 905.15,939.07"/>
+ </edge>
+ <edge id="24573930#3" from="538810724" to="1624003193" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="24573930#3_0" index="0" speed="22.22" length="97.71" shape="902.24,933.47 857.15,846.78"/>
+ </edge>
+ <edge id="24573930#4" from="1624003193" to="538810716" priority="5" type="highway.unclassified" spreadType="center" shape="855.69,843.99 798.35,733.73 739.51,620.34 683.02,512.58">
+ <lane id="24573930#4_0" index="0" speed="22.22" length="370.55" shape="854.24,841.19 798.35,733.73 739.51,620.34 683.02,512.58"/>
+ </edge>
+ <edge id="24573937" from="267169964" to="966193808" priority="5" type="highway.unclassified">
+ <lane id="24573937_0" index="0" speed="22.22" length="77.77" shape="1230.66,1125.15 1298.95,1087.96"/>
+ </edge>
+ <edge id="24573939#0" from="267169690" to="267169686" priority="1" type="highway.pedestrian">
+ <lane id="24573939#0_0" index="0" allow="pedestrian" speed="8.33" length="50.18" shape="1390.10,1043.51 1414.87,1087.14"/>
+ </edge>
+ <edge id="24573939#1" from="267169686" to="267169715" priority="1" type="highway.pedestrian">
+ <lane id="24573939#1_0" index="0" allow="pedestrian" speed="8.33" length="6.51" shape="1422.10,1100.95 1424.93,1106.81"/>
+ </edge>
+ <edge id="24573939#2" from="267169715" to="441266874" priority="1" type="highway.pedestrian">
+ <lane id="24573939#2_0" index="0" allow="pedestrian" speed="8.33" length="63.11" shape="1429.03,1115.37 1456.09,1172.38"/>
+ </edge>
+ <edge id="24573947#0" from="255227483" to="2265767392" priority="5" type="highway.unclassified">
+ <lane id="24573947#0_0" index="0" speed="22.22" length="4.53" shape="1440.41,908.08 1442.66,912.01"/>
+ </edge>
+ <edge id="24573947#1" from="2265767392" to="443101905" priority="5" type="highway.unclassified">
+ <lane id="24573947#1_0" index="0" speed="22.22" length="0.89" shape="1445.14,916.36 1445.58,917.13"/>
+ </edge>
+ <edge id="24573947#2" from="443101905" to="267169634" priority="5" type="highway.unclassified">
+ <lane id="24573947#2_0" index="0" speed="22.22" length="58.20" shape="1448.63,922.82 1474.79,974.81"/>
+ </edge>
+ <edge id="24573947#3" from="267169634" to="267169714" priority="5" type="highway.unclassified">
+ <lane id="24573947#3_0" index="0" speed="22.22" length="81.21" shape="1480.35,985.63 1517.77,1057.70"/>
+ </edge>
+ <edge id="24573947#4" from="267169714" to="267169795" priority="5" type="highway.unclassified" shape="1518.53,1062.74 1557.82,1139.13 1576.94,1162.84">
+ <lane id="24573947#4_0" index="0" speed="22.22" length="111.24" shape="1522.18,1066.25 1559.21,1138.23 1578.23,1161.81"/>
+ </edge>
+ <edge id="34962531#0" from="410296508" to="950640371" priority="5" type="highway.unclassified">
+ <lane id="34962531#0_0" index="0" speed="22.22" length="8.21" shape="672.84,1340.53 668.95,1333.31"/>
+ </edge>
+ <edge id="34962531#1" from="950640371" to="446017738" priority="5" type="highway.unclassified">
+ <lane id="34962531#1_0" index="0" speed="22.22" length="0.18" shape="667.40,1330.44 667.32,1330.28"/>
+ </edge>
+ <edge id="37351086#0" from="435668511" to="948350693" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37351086#0_0" index="0" speed="22.22" length="6.08" shape="744.37,2274.32 748.62,2269.96"/>
+ </edge>
+ <edge id="37351086#1" from="948350693" to="445506215" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37351086#1_0" index="0" speed="22.22" length="8.58" shape="751.20,2267.31 757.19,2261.16"/>
+ </edge>
+ <edge id="37351089#0" from="435668539" to="948350621" priority="9" type="highway.primary" spreadType="center">
+ <lane id="37351089#0_0" index="0" speed="27.78" length="2.73" shape="759.28,2284.04 757.58,2285.56"/>
+ <lane id="37351089#0_1" index="1" speed="27.78" length="2.73" shape="757.08,2281.58 755.19,2283.27"/>
+ <lane id="37351089#0_2" index="2" speed="27.78" length="2.73" shape="754.89,2279.12 752.80,2280.98"/>
+ <lane id="37351089#0_3" index="3" speed="27.78" length="2.73" shape="755.14,2274.46 752.69,2276.65"/>
+ </edge>
+ <edge id="37351089#1" from="948350621" to="243489891" priority="9" type="highway.primary" spreadType="center">
+ <lane id="37351089#1_0" index="0" speed="27.78" length="0.28" shape="757.55,2285.54 757.36,2285.74"/>
+ <lane id="37351089#1_1" index="1" speed="27.78" length="0.28" shape="755.17,2283.25 754.98,2283.45"/>
+ <lane id="37351089#1_2" index="2" speed="27.78" length="0.28" shape="752.79,2280.96 752.60,2281.16"/>
+ <lane id="37351089#1_3" index="3" speed="27.78" length="0.28" shape="750.41,2278.68 750.22,2278.88"/>
+ </edge>
+ <edge id="37369047#0" from="450623549" to="724002953" priority="9" type="highway.primary" spreadType="center" shape="592.39,2365.36 613.17,2344.66 728.03,2283.05">
+ <lane id="37369047#0_0" index="0" speed="27.78" length="154.09" shape="588.89,2361.86 610.20,2340.64 720.76,2281.33"/>
+ <lane id="37369047#0_1" index="1" speed="27.78" length="154.09" shape="591.22,2364.20 612.18,2343.32 722.32,2284.24"/>
+ <lane id="37369047#0_2" index="2" speed="27.78" length="154.09" shape="593.55,2366.53 614.17,2346.00 723.88,2287.14"/>
+ <lane id="37369047#0_3" index="3" speed="27.78" length="154.09" shape="595.88,2368.87 616.15,2348.68 725.44,2290.05"/>
+ </edge>
+ <edge id="37369047#1" from="724002953" to="435668511" priority="9" type="highway.primary" spreadType="center">
+ <lane id="37369047#1_0" index="0" speed="27.78" length="15.44" shape="726.43,2278.29 740.04,2271.02"/>
+ <lane id="37369047#1_1" index="1" speed="27.78" length="15.44" shape="727.98,2281.20 741.60,2273.93"/>
+ <lane id="37369047#1_2" index="2" speed="27.78" length="15.44" shape="729.54,2284.11 743.15,2276.84"/>
+ <lane id="37369047#1_3" index="3" speed="27.78" length="15.44" shape="731.09,2287.02 744.71,2279.75"/>
+ </edge>
+ <edge id="37369047#2" from="435668511" to="948350707" priority="9" type="highway.primary" spreadType="center">
+ <lane id="37369047#2_0" index="0" speed="27.78" length="2.31" shape="747.83,2269.19 749.29,2269.12"/>
+ <lane id="37369047#2_1" index="1" speed="27.78" length="2.31" shape="745.79,2272.60 749.10,2272.44"/>
+ <lane id="37369047#2_2" index="2" speed="27.78" length="2.31" shape="747.67,2275.81 749.78,2275.71"/>
+ <lane id="37369047#2_3" index="3" speed="27.78" length="2.31" shape="746.67,2279.16 749.04,2279.05"/>
+ </edge>
+ <edge id="37449245#0" from="13929737" to="1257054165" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449245#0_0" index="0" speed="22.22" length="14.02" shape="1289.00,1969.14 1282.43,1956.76"/>
+ </edge>
+ <edge id="37449245#1" from="1257054165" to="438042380" priority="5" type="highway.unclassified" spreadType="center" shape="1280.20,1952.56 1203.24,1809.78 1201.94,1805.41 1202.40,1800.68 1205.52,1789.74 1206.78,1783.92 1205.90,1773.17">
+ <lane id="37449245#1_0" index="0" speed="22.22" length="181.72" shape="1277.94,1948.38 1203.24,1809.78 1201.94,1805.41 1202.40,1800.68 1205.52,1789.74 1206.28,1786.24"/>
+ </edge>
+ <edge id="37449249#0" from="438042373" to="438042374" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="37449249#0_0" index="0" speed="22.22" length="26.66" shape="1241.94,1703.46 1232.54,1728.41"/>
+ </edge>
+ <edge id="37449249#1" from="438042374" to="438042385" priority="6" type="highway.secondary_link" spreadType="center" shape="1231.88,1730.17 1220.57,1740.64 1211.11,1748.62">
+ <lane id="37449249#1_0" index="0" speed="22.22" length="16.48" shape="1227.80,1733.94 1220.57,1740.64 1215.51,1744.91"/>
+ </edge>
+ <edge id="37449249#2" from="438042385" to="438042387" priority="6" type="highway.secondary_link" spreadType="center" shape="1211.11,1748.62 1208.00,1751.34 1203.76,1753.91 1198.12,1755.72">
+ <lane id="37449249#2_0" index="0" speed="22.22" length="4.50" shape="1206.77,1752.09 1203.76,1753.91 1202.83,1754.21"/>
+ </edge>
+ <edge id="37449249#3" from="438042387" to="438042381" priority="6" type="highway.secondary_link" spreadType="center" shape="1198.12,1755.72 1192.34,1751.70 1187.26,1747.35 1180.28,1738.16 1174.60,1728.87 1170.46,1719.65 1167.53,1710.47 1166.29,1702.69 1166.37,1698.88 1167.26,1695.93">
+ <lane id="37449249#3_0" index="0" speed="22.22" length="61.04" shape="1193.90,1752.78 1192.34,1751.70 1187.26,1747.35 1180.28,1738.16 1174.60,1728.87 1170.46,1719.65 1167.53,1710.47 1166.29,1702.69 1166.34,1700.30"/>
+ </edge>
+ <edge id="37449253#0" from="438042374" to="733663089" priority="5" type="highway.unclassified" spreadType="center" shape="1231.88,1730.17 1230.87,1744.09 1237.89,1761.89">
+ <lane id="37449253#0_0" index="0" speed="22.22" length="22.56" shape="1231.48,1735.71 1230.87,1744.09 1236.06,1757.26"/>
+ </edge>
+ <edge id="37449253#1" from="733663089" to="248913130" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#1_0" index="0" speed="22.22" length="43.93" shape="1240.13,1766.06 1260.94,1804.75"/>
+ </edge>
+ <edge id="37449253#2" from="248913130" to="248913145" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#2_0" index="0" speed="22.22" length="71.28" shape="1265.38,1813.13 1298.44,1876.29"/>
+ </edge>
+ <edge id="37449253#3" from="248913145" to="1257054155" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#3_0" index="0" speed="22.22" length="48.62" shape="1302.79,1884.71 1324.84,1928.04"/>
+ </edge>
+ <edge id="37449253#4" from="1257054155" to="435668516" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#4_0" index="0" speed="22.22" length="11.52" shape="1329.75,1937.58 1335.08,1947.79"/>
+ </edge>
+ <edge id="37449253#5" from="435668516" to="974693391" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#5_0" index="0" speed="22.22" length="2.46" shape="1337.99,1953.28 1339.27,1955.38"/>
+ </edge>
+ <edge id="37449253#6" from="974693391" to="13929747" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#6_0" index="0" speed="22.22" length="6.31" shape="1342.23,1960.24 1345.18,1965.82"/>
+ </edge>
+ <edge id="37449253#7" from="13929747" to="950094314" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37449253#7_0" index="0" speed="22.22" length="1.93" shape="1346.53,1968.32 1347.46,1970.01"/>
+ </edge>
+ <edge id="37638426#0" from="1168929349" to="441236049" priority="5" type="highway.unclassified" spreadType="center" shape="827.34,1010.48 820.36,1015.10 810.99,1017.83">
+ <lane id="37638426#0_0" index="0" speed="22.22" length="4.68" shape="821.83,1014.12 820.36,1015.10 817.56,1015.92"/>
+ </edge>
+ <edge id="37638426#1" from="441236049" to="1168929308" priority="5" type="highway.unclassified" spreadType="center" shape="810.99,1017.83 807.51,1017.68 802.79,1017.08 795.23,1014.27 789.24,1009.86 784.12,1003.12 781.29,995.18 780.94,987.21 781.15,985.59">
+ <lane id="37638426#1_0" index="0" speed="22.22" length="36.95" shape="803.01,1017.11 802.79,1017.08 795.23,1014.27 789.24,1009.86 784.12,1003.12 781.29,995.18 781.10,990.85"/>
+ </edge>
+ <edge id="37638470#0" from="1168929308" to="1168929652" priority="5" type="highway.unclassified">
+ <lane id="37638470#0_0" index="0" speed="22.22" length="2.42" shape="774.87,988.22 772.48,988.58"/>
+ </edge>
+ <edge id="37638470#1" from="1168929652" to="1224080669" priority="5" type="highway.unclassified" shape="765.18,988.02 543.93,1027.58 521.64,1031.63">
+ <lane id="37638470#1_0" index="0" speed="22.22" length="238.09" shape="762.09,990.25 544.22,1029.21 527.72,1032.20"/>
+ </edge>
+ <edge id="37638470#2" from="1224080669" to="484282961" priority="5" type="highway.unclassified">
+ <lane id="37638470#2_0" index="0" speed="22.22" length="3.92" shape="518.09,1033.95 514.23,1034.65"/>
+ </edge>
+ <edge id="37640549#0" from="441266865" to="267169714" priority="5" type="highway.unclassified">
+ <lane id="37640549#0_0" index="0" speed="22.22" length="93.33" shape="1605.46,1017.13 1523.55,1061.88"/>
+ </edge>
+ <edge id="37640549#1" from="267169714" to="267169715" priority="5" type="highway.unclassified">
+ <lane id="37640549#1_0" index="0" speed="22.22" length="95.51" shape="1515.07,1066.44 1430.64,1111.09"/>
+ </edge>
+ <edge id="37640550#0" from="566579334" to="566579336" priority="5" type="highway.unclassified" spreadType="center" shape="857.57,419.88 909.63,520.55 970.87,637.71">
+ <lane id="37640550#0_0" index="0" speed="22.22" length="245.53" shape="857.57,419.88 909.63,520.55 970.87,637.71"/>
+ </edge>
+ <edge id="37640550#1" from="566579336" to="566579338" priority="5" type="highway.unclassified" spreadType="center" shape="970.87,637.71 1005.44,700.14 1028.08,744.00 1076.57,837.91">
+ <lane id="37640550#1_0" index="0" speed="22.22" length="226.42" shape="970.87,637.70 1005.44,700.14 1028.08,744.00 1076.57,837.91"/>
+ </edge>
+ <edge id="37640550#2" from="566579338" to="566579339" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37640550#2_0" index="0" speed="22.22" length="71.29" shape="1076.57,837.91 1109.28,901.25"/>
+ </edge>
+ <edge id="37640550#3" from="566579339" to="441266876" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37640550#3_0" index="0" speed="22.22" length="66.30" shape="1112.15,906.76 1142.99,965.46"/>
+ </edge>
+ <edge id="37640550#4" from="441266876" to="2081499947" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37640550#4_0" index="0" speed="22.22" length="38.35" shape="1145.85,970.95 1163.43,1005.03"/>
+ </edge>
+ <edge id="37640550#5" from="2081499947" to="1168929585" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37640550#5_0" index="0" speed="22.22" length="11.44" shape="1167.78,1013.47 1173.02,1023.64"/>
+ </edge>
+ <edge id="37771900#0" from="566579340" to="443089060" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#0_0" index="0" speed="22.22" length="9.21" shape="1558.69,1848.30 1554.37,1840.16"/>
+ </edge>
+ <edge id="37771900#1" from="443089060" to="443089061" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#1_0" index="0" speed="22.22" length="73.04" shape="1551.52,1834.58 1519.35,1769.01"/>
+ </edge>
+ <edge id="37771900#2" from="443089061" to="443089062" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#2_0" index="0" speed="22.22" length="69.82" shape="1515.03,1760.49 1482.57,1698.68"/>
+ </edge>
+ <edge id="37771900#3" from="443089062" to="733663131" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#3_0" index="0" speed="22.22" length="73.16" shape="1478.14,1690.28 1443.87,1625.63"/>
+ </edge>
+ <edge id="37771900#4" from="733663131" to="1669480287" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#4_0" index="0" speed="22.22" length="2.84" shape="1439.18,1617.28 1437.73,1614.83"/>
+ </edge>
+ <edge id="37771900#5" from="1669480287" to="443089063" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#5_0" index="0" speed="22.22" length="2.54" shape="1432.79,1606.50 1431.50,1604.31"/>
+ </edge>
+ <edge id="37771900#6" from="443089063" to="443089064" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#6_0" index="0" speed="22.22" length="99.40" shape="1423.73,1590.08 1379.33,1501.14"/>
+ </edge>
+ <edge id="37771900#7" from="443089064" to="443089070" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771900#7_0" index="0" speed="22.22" length="7.40" shape="1376.42,1495.59 1372.85,1489.12"/>
+ </edge>
+ <edge id="37771902#0" from="443089069" to="452425501" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771902#0_0" index="0" speed="22.22" length="9.90" shape="1156.95,1598.12 1165.81,1593.70"/>
+ </edge>
+ <edge id="37771902#1" from="452425501" to="966132112" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771902#1_0" index="0" speed="22.22" length="29.26" shape="1174.35,1589.42 1200.45,1576.20"/>
+ </edge>
+ <edge id="37771902#2" from="966132112" to="252417165" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771902#2_0" index="0" speed="22.22" length="21.11" shape="1205.98,1573.45 1224.95,1564.19"/>
+ </edge>
+ <edge id="37771902#3" from="252417165" to="252417190" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37771902#3_0" index="0" speed="22.22" length="75.86" shape="1230.47,1561.43 1297.99,1526.85"/>
+ </edge>
+ <edge id="37771903" from="443089064" to="443089072" priority="5" type="highway.unclassified" spreadType="center" shape="1377.93,1498.33 1369.91,1502.61 1306.46,1536.50">
+ <lane id="37771903_0" index="0" speed="22.22" length="74.76" shape="1375.16,1499.81 1369.91,1502.61 1309.21,1535.03"/>
+ </edge>
+ <edge id="37771904#0" from="443089074" to="966193857" priority="5" type="highway.unclassified" spreadType="center" shape="1406.05,1464.41 1411.61,1461.34 1461.49,1433.85">
+ <lane id="37771904#0_0" index="0" speed="22.22" length="55.44" shape="1408.79,1462.90 1411.61,1461.34 1457.34,1436.14"/>
+ </edge>
+ <edge id="37771904#1" from="966193857" to="441266862" priority="5" type="highway.unclassified" spreadType="center" shape="1461.49,1433.85 1518.22,1402.76 1631.16,1342.97 1742.60,1287.33">
+ <lane id="37771904#1_0" index="0" speed="22.22" length="312.28" shape="1465.66,1431.57 1518.22,1402.76 1631.16,1342.97 1742.60,1287.33"/>
+ </edge>
+ <edge id="37772595#0" from="257907791" to="443101905" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772595#0_0" index="0" speed="22.22" length="77.40" shape="1517.46,880.71 1449.83,918.36"/>
+ </edge>
+ <edge id="37772595#1" from="443101905" to="443101906" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772595#1_0" index="0" speed="22.22" length="99.52" shape="1441.49,923.02 1354.61,971.57"/>
+ </edge>
+ <edge id="37772595#2" from="443101906" to="966193796" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772595#2_0" index="0" speed="22.22" length="82.85" shape="1345.98,976.40 1273.67,1016.82"/>
+ </edge>
+ <edge id="37772595#3" from="966193796" to="1168929549" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772595#3_0" index="0" speed="22.22" length="73.13" shape="1265.38,1021.49 1201.76,1057.55"/>
+ </edge>
+ <edge id="37772596#0" from="443101913" to="719463587" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772596#0_0" index="0" speed="22.22" length="1.03" shape="933.96,1172.88 934.86,1172.38"/>
+ </edge>
+ <edge id="37772596#1" from="719463587" to="443101914" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772596#1_0" index="0" speed="22.22" length="68.69" shape="943.23,1167.66 1003.08,1133.94"/>
+ </edge>
+ <edge id="37772596#2" from="443101914" to="443101915" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772596#2_0" index="0" speed="22.22" length="73.29" shape="1008.48,1130.89 1072.26,1094.78"/>
+ </edge>
+ <edge id="37772596#3" from="443101915" to="1168929613" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37772596#3_0" index="0" speed="22.22" length="65.57" shape="1077.65,1091.77 1135.18,1060.30"/>
+ </edge>
+ <edge id="37772597#0" from="255227471" to="2265767395" priority="5" type="highway.unclassified">
+ <lane id="37772597#0_0" index="0" speed="22.22" length="8.17" shape="1346.50,957.69 1349.05,965.45"/>
+ </edge>
+ <edge id="37772597#1" from="2265767395" to="443101906" priority="5" type="highway.unclassified">
+ <lane id="37772597#1_0" index="0" speed="22.22" length="0.70" shape="1350.54,969.98 1350.75,970.64"/>
+ </edge>
+ <edge id="37772597#2" from="443101906" to="267169690" priority="5" type="highway.unclassified">
+ <lane id="37772597#2_0" index="0" speed="22.22" length="67.15" shape="1353.09,976.02 1385.32,1034.93"/>
+ </edge>
+ <edge id="37942667#0" from="429179805" to="1323557956" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942667#0_0" index="0" speed="22.22" length="102.25" shape="754.48,1506.76 740.67,1608.07"/>
+ </edge>
+ <edge id="37942667#1" from="1323557956" to="1212941056" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942667#1_0" index="0" speed="22.22" length="40.84" shape="740.01,1613.03 733.62,1653.37"/>
+ </edge>
+ <edge id="37942667#2" from="1212941056" to="1213368991" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942667#2_0" index="0" speed="22.22" length="3.55" shape="733.06,1656.91 732.56,1660.42"/>
+ </edge>
+ <edge id="37942667#3" from="1213368991" to="1212941077" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942667#3_0" index="0" speed="22.22" length="3.34" shape="732.34,1661.96 731.88,1665.26"/>
+ </edge>
+ <edge id="37942667#4" from="1212941077" to="733663070" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942667#4_0" index="0" speed="22.22" length="95.83" shape="731.32,1669.18 717.82,1764.06"/>
+ </edge>
+ <edge id="37942667#5" from="733663070" to="445506213" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942667#5_0" index="0" speed="22.22" length="87.03" shape="716.82,1770.92 703.62,1856.95"/>
+ </edge>
+ <edge id="37942668#0" from="445506216" to="560472378" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942668#0_0" index="0" speed="22.22" length="147.36" shape="972.64,1923.55 843.00,1993.60"/>
+ </edge>
+ <edge id="37942668#1" from="560472378" to="445506217" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942668#1_0" index="0" speed="22.22" length="113.98" shape="834.61,1998.10 734.00,2051.66"/>
+ </edge>
+ <edge id="37942668#2" from="445506217" to="445506221" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37942668#2_0" index="0" speed="22.22" length="7.23" shape="727.29,2055.09 720.80,2058.27"/>
+ </edge>
+ <edge id="37973565#0" from="445506213" to="733663082" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#0_0" index="0" speed="22.22" length="10.12" shape="703.63,1857.47 705.40,1867.44"/>
+ </edge>
+ <edge id="37973565#1" from="733663082" to="560472379" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#1_0" index="0" speed="22.22" length="154.45" shape="706.96,1877.23 727.84,2030.26"/>
+ </edge>
+ <edge id="37973565#10" from="450564002" to="503954409" priority="5" type="highway.unclassified" spreadType="center" shape="788.17,2469.73 789.69,2481.38 803.00,2587.20">
+ <lane id="37973565#10_0" index="0" speed="22.22" length="110.42" shape="788.71,2473.87 789.69,2481.38 802.53,2583.43"/>
+ </edge>
+ <edge id="37973565#11" from="503954409" to="450564007" priority="5" type="highway.unclassified" spreadType="center" shape="803.00,2587.20 810.58,2647.47 817.57,2705.92 820.65,2730.16 818.15,2739.87 821.48,2760.41">
+ <lane id="37973565#11_0" index="0" speed="22.22" length="172.27" shape="803.33,2589.79 810.58,2647.47 817.57,2705.92 820.65,2730.16 818.15,2739.87 821.48,2760.41"/>
+ </edge>
+ <edge id="37973565#2" from="560472379" to="445506217" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#2_0" index="0" speed="22.22" length="13.13" shape="728.65,2036.60 730.16,2049.64"/>
+ </edge>
+ <edge id="37973565#3" from="445506217" to="1257054132" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#3_0" index="0" speed="22.22" length="184.70" shape="731.14,2057.12 758.27,2239.81"/>
+ </edge>
+ <edge id="37973565#4" from="1257054132" to="445506215" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#4_0" index="0" speed="22.22" length="1.79" shape="759.47,2248.35 759.69,2250.12"/>
+ </edge>
+ <edge id="37973565#5" from="445506215" to="948350588" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#5_0" index="0" speed="22.22" length="4.88" shape="760.70,2258.48 761.22,2263.34"/>
+ </edge>
+ <edge id="37973565#6" from="948350588" to="435668539" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#6_0" index="0" speed="22.22" length="0.44" shape="761.77,2268.58 761.81,2269.02"/>
+ </edge>
+ <edge id="37973565#7" from="435668539" to="948350607" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#7_0" index="0" speed="22.22" length="10.96" shape="762.39,2274.63 763.17,2285.56"/>
+ </edge>
+ <edge id="37973565#8" from="948350607" to="445823604" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#8_0" index="0" speed="22.22" length="5.85" shape="763.17,2285.56 763.73,2291.39"/>
+ </edge>
+ <edge id="37973565#9" from="445823604" to="450564002" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973565#9_0" index="0" speed="22.22" length="173.43" shape="764.11,2294.17 787.66,2466.00"/>
+ </edge>
+ <edge id="37973566" from="30406565" to="552842256" priority="6" type="highway.tertiary">
+ <lane id="37973566_0" index="0" speed="22.22" length="195.87" shape="687.05,1857.10 714.44,1663.16"/>
+ </edge>
+ <edge id="37973568#0" from="356693793" to="1224080660" priority="5" type="highway.unclassified" spreadType="center" shape="262.42,1552.22 362.60,1497.48 438.14,1456.11 469.28,1438.52 531.95,1403.13 662.05,1329.66">
+ <lane id="37973568#0_0" index="0" speed="22.22" length="452.73" shape="262.42,1552.22 362.60,1497.48 438.14,1456.11 469.28,1438.52 531.95,1403.13 657.95,1331.97"/>
+ </edge>
+ <edge id="37973568#1" from="1224080660" to="446017738" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#1_0" index="0" speed="22.22" length="3.58" shape="663.11,1329.06 666.23,1327.30"/>
+ </edge>
+ <edge id="37973568#2" from="446017738" to="446017739" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#2_0" index="0" speed="22.22" length="95.43" shape="673.27,1323.06 754.78,1273.45"/>
+ </edge>
+ <edge id="37973568#3" from="446017739" to="446017741" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#3_0" index="0" speed="22.22" length="5.68" shape="763.33,1268.39 768.26,1265.58"/>
+ </edge>
+ <edge id="37973568#4" from="446017741" to="1780219360" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#4_0" index="0" speed="22.22" length="125.60" shape="780.07,1258.91 889.76,1197.72"/>
+ </edge>
+ <edge id="37973568#5" from="1780219360" to="446017742" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#5_0" index="0" speed="22.22" length="1.05" shape="897.37,1193.47 898.29,1192.96"/>
+ </edge>
+ <edge id="37973568#6" from="446017742" to="446017743" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#6_0" index="0" speed="22.22" length="2.47" shape="908.57,1187.19 910.72,1185.98"/>
+ </edge>
+ <edge id="37973568#7" from="446017743" to="443101913" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973568#7_0" index="0" speed="22.22" length="7.36" shape="922.05,1179.59 928.46,1175.98"/>
+ </edge>
+ <edge id="37973569#0" from="443101912" to="446017747" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#0_0" index="0" speed="22.22" length="10.19" shape="943.15,1204.76 934.27,1209.75"/>
+ </edge>
+ <edge id="37973569#1" from="446017747" to="446017746" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#1_0" index="0" speed="22.22" length="2.39" shape="925.82,1214.49 923.73,1215.66"/>
+ </edge>
+ <edge id="37973569#2" from="446017746" to="1780219341" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#2_0" index="0" speed="22.22" length="2.38" shape="915.38,1220.35 913.30,1221.51"/>
+ </edge>
+ <edge id="37973569#3" from="1780219341" to="538265870" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#3_0" index="0" speed="22.22" length="1.90" shape="906.39,1225.39 904.73,1226.32"/>
+ </edge>
+ <edge id="37973569#4" from="538265870" to="951739693" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#4_0" index="0" speed="22.22" length="90.50" shape="900.97,1228.45 822.17,1272.97"/>
+ </edge>
+ <edge id="37973569#5" from="951739693" to="446017744" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#5_0" index="0" speed="22.22" length="44.54" shape="813.90,1277.64 775.12,1299.55"/>
+ </edge>
+ <edge id="37973569#6" from="446017744" to="446017740" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973569#6_0" index="0" speed="22.22" length="9.88" shape="763.20,1306.41 754.67,1311.39"/>
+ </edge>
+ <edge id="37973569#7" from="446017740" to="1726380184" priority="5" type="highway.unclassified" spreadType="center" shape="750.28,1313.96 713.24,1335.01 681.18,1353.27">
+ <lane id="37973569#7_0" index="0" speed="22.22" length="70.05" shape="746.16,1316.30 713.24,1335.01 685.27,1350.94"/>
+ </edge>
+ <edge id="37973569#8" from="1726380184" to="552842255" priority="5" type="highway.unclassified" spreadType="center" shape="681.18,1353.27 588.70,1405.91 539.82,1433.75 478.82,1468.50 465.58,1476.04">
+ <lane id="37973569#8_0" index="0" speed="22.22" length="237.53" shape="677.01,1355.64 588.70,1405.91 539.82,1433.75 478.82,1468.50 470.60,1473.18"/>
+ </edge>
+ <edge id="37973569#9" from="552842255" to="728444397" priority="5" type="highway.unclassified" spreadType="center" shape="465.58,1476.04 405.53,1510.51 391.92,1518.86 380.10,1526.11 276.97,1583.37">
+ <lane id="37973569#9_0" index="0" speed="22.22" length="211.26" shape="460.57,1478.92 405.53,1510.51 391.92,1518.86 380.10,1526.11 276.97,1583.37"/>
+ </edge>
+ <edge id="37973571#0" from="444026886" to="1224074533" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973571#0_0" index="0" speed="22.22" length="3.53" shape="783.38,1095.97 784.50,1092.62"/>
+ </edge>
+ <edge id="37973571#1" from="1224074533" to="444026889" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="37973571#1_0" index="0" speed="22.22" length="1.84" shape="793.88,1084.14 795.59,1083.47"/>
+ </edge>
+ <edge id="37973572#0" from="438042367" to="1780219353" priority="7" type="highway.secondary">
+ <lane id="37973572#0_0" index="0" speed="27.78" length="0.52" shape="908.11,1210.69 907.66,1210.95"/>
+ <lane id="37973572#0_1" index="1" speed="27.78" length="0.52" shape="906.47,1207.83 906.02,1208.08"/>
+ </edge>
+ <edge id="37973572#1" from="1780219353" to="30406599" priority="7" type="highway.secondary">
+ <lane id="37973572#1_0" index="0" speed="27.78" length="133.89" shape="899.43,1215.65 783.15,1282.02"/>
+ <lane id="37973572#1_1" index="1" speed="27.78" length="133.89" shape="897.80,1212.78 781.51,1279.16"/>
+ </edge>
+ <edge id="37973572#2" from="30406599" to="444026884" priority="7" type="highway.secondary">
+ <lane id="37973572#2_0" index="0" speed="27.78" length="0.28" shape="765.40,1292.30 765.16,1292.44"/>
+ <lane id="37973572#2_1" index="1" speed="27.78" length="0.28" shape="763.73,1289.46 763.49,1289.60"/>
+ </edge>
+ <edge id="37973572#3" from="444026884" to="410296508" priority="7" type="highway.secondary">
+ <lane id="37973572#3_0" index="0" speed="27.78" length="78.49" shape="748.89,1301.97 681.08,1341.52"/>
+ <lane id="37973572#3_1" index="1" speed="27.78" length="78.49" shape="747.23,1299.12 679.42,1338.67"/>
+ </edge>
+ <edge id="37973572#4" from="410296508" to="552842254" priority="7" type="highway.secondary" shape="674.29,1339.75 534.54,1418.69 474.12,1453.45 452.00,1466.18">
+ <lane id="37973572#4_0" index="0" speed="27.78" length="243.09" shape="672.71,1346.33 536.98,1423.00 476.59,1457.74 461.40,1466.48"/>
+ <lane id="37973572#4_1" index="1" speed="27.78" length="243.09" shape="671.08,1343.46 535.35,1420.13 474.94,1454.88 459.75,1463.62"/>
+ </edge>
+ <edge id="37973572#5" from="552842254" to="356693794" priority="7" type="highway.secondary" shape="452.00,1466.18 377.57,1508.39 273.02,1566.65">
+ <lane id="37973572#5_0" index="0" speed="27.78" length="203.19" shape="452.62,1471.51 380.01,1512.70 275.43,1570.97"/>
+ <lane id="37973572#5_1" index="1" speed="27.78" length="203.19" shape="451.00,1468.64 378.38,1509.82 273.82,1568.09"/>
+ </edge>
+ <edge id="38027102#0" from="446766148" to="477486717" priority="5" type="highway.unclassified" shape="58.25,2228.62 68.43,2222.75 120.25,2192.87 169.69,2164.36 217.58,2136.74 225.76,2132.02 231.01,2129.00 282.69,2099.19 326.97,2073.66 342.28,2064.84 353.73,2058.24 416.23,2022.19 477.57,1986.83 493.65,1977.56 504.35,1971.39">
+ <lane id="38027102#0_0" index="0" speed="22.22" length="510.06" shape="57.43,2227.19 67.60,2221.32 119.43,2191.44 168.87,2162.93 216.76,2135.31 224.94,2130.59 230.19,2127.57 281.87,2097.76 326.14,2072.24 341.45,2063.41 352.91,2056.81 415.40,2020.77 476.75,1985.40 492.83,1976.13 499.29,1972.40"/>
+ </edge>
+ <edge id="38027102#1" from="477486717" to="728492366" priority="5" type="highway.unclassified" shape="504.35,1971.39 513.18,1966.30 551.77,1944.04 601.56,1915.35 606.61,1912.43">
+ <lane id="38027102#1_0" index="0" speed="22.22" length="107.25" shape="507.78,1967.51 512.36,1964.87 550.95,1942.61 600.70,1913.94"/>
+ </edge>
+ <edge id="38027102#2" from="728492366" to="446766149" priority="5" type="highway.unclassified" shape="606.61,1912.43 611.61,1909.54 675.84,1872.51">
+ <lane id="38027102#2_0" index="0" speed="22.22" length="67.96" shape="612.23,1907.28 671.11,1873.33"/>
+ </edge>
+ <edge id="38027665#0" from="446770956" to="477486719" priority="5" type="highway.unclassified" shape="0.00,2037.67 5.12,2034.88 130.26,1966.62 186.61,1935.87 242.04,1905.02 302.24,1871.38 405.54,1816.27">
+ <lane id="38027665#0_0" index="0" speed="22.22" length="457.00" shape="-0.79,2036.22 4.33,2033.43 129.47,1965.17 185.82,1934.43 241.24,1903.58 301.44,1869.94 400.29,1817.20"/>
+ </edge>
+ <edge id="38027665#1" from="477486719" to="728492372" priority="5" type="highway.unclassified" shape="405.54,1816.27 509.20,1757.58 623.00,1698.07">
+ <lane id="38027665#1_0" index="0" speed="22.22" length="234.92" shape="409.02,1812.41 508.39,1756.15 615.37,1700.20"/>
+ </edge>
+ <edge id="38027665#2" from="728492372" to="1232172714" priority="5" type="highway.unclassified" shape="623.00,1698.07 656.56,1678.98 661.41,1679.69">
+ <lane id="38027665#2_0" index="0" speed="22.22" length="31.95" shape="629.09,1692.71 656.24,1677.26 656.95,1677.37"/>
+ </edge>
+ <edge id="38027665#3" from="1232172714" to="446770959" priority="5" type="highway.unclassified">
+ <lane id="38027665#3_0" index="0" speed="22.22" length="28.31" shape="666.31,1678.74 694.32,1682.82"/>
+ </edge>
+ <edge id="38230510#0" from="250685721" to="450564002" priority="5" type="highway.unclassified" spreadType="center" shape="773.69,2484.93 778.63,2476.59 788.17,2469.73">
+ <lane id="38230510#0_0" index="0" speed="22.22" length="8.48" shape="778.17,2477.37 778.63,2476.59 784.78,2472.17"/>
+ </edge>
+ <edge id="38230510#1" from="450564002" to="450564003" priority="5" type="highway.unclassified" spreadType="center" shape="788.17,2469.73 832.75,2446.63 915.66,2403.69 1075.99,2320.63 1160.22,2277.01">
+ <lane id="38230510#1_0" index="0" speed="22.22" length="410.48" shape="791.52,2468.00 832.75,2446.63 915.66,2403.69 1075.99,2320.63 1156.00,2279.20"/>
+ </edge>
+ <edge id="38230510#2" from="450564003" to="1545661417" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="38230510#2_0" index="0" speed="22.22" length="119.43" shape="1164.43,2274.78 1269.91,2218.76"/>
+ </edge>
+ <edge id="38318373#0" from="1373642446" to="314636763" priority="1" type="highway.cycleway" shape="1632.17,2615.09 1619.47,2601.21 1540.45,2451.07 1396.03,2172.61">
+ <lane id="38318373#0_0" index="0" allow="bicycle" speed="5.56" length="497.85" shape="1630.95,2616.20 1618.11,2602.16 1538.99,2451.83 1396.75,2177.58"/>
+ </edge>
+ <edge id="38318373#1" from="314636763" to="250685829" priority="1" type="highway.cycleway">
+ <lane id="38318373#1_0" index="0" allow="bicycle" speed="5.56" length="1.93" shape="1394.11,2173.45 1392.41,2172.53"/>
+ </edge>
+ <edge id="38319546#0" from="1257054127" to="1257054074" priority="1" type="highway.cycleway">
+ <lane id="38319546#0_0" index="0" allow="bicycle" speed="5.56" length="0.25" shape="1360.51,1971.78 1360.40,1971.55"/>
+ </edge>
+ <edge id="38319546#1" from="1257054074" to="1257054205" priority="1" type="highway.cycleway">
+ <lane id="38319546#1_0" index="0" allow="bicycle" speed="5.56" length="2.29" shape="1357.04,1964.93 1355.98,1962.90"/>
+ </edge>
+ <edge id="38319546#2" from="1257054205" to="1257054172" priority="1" type="highway.cycleway">
+ <lane id="38319546#2_0" index="0" allow="bicycle" speed="5.56" length="6.34" shape="1354.81,1960.68 1352.02,1954.99"/>
+ </edge>
+ <edge id="38319546#3" from="1257054172" to="452425486" priority="1" type="highway.cycleway">
+ <lane id="38319546#3_0" index="0" allow="bicycle" speed="5.56" length="1.79" shape="1349.13,1949.45 1348.31,1947.87"/>
+ </edge>
+ <edge id="38319546#4" from="452425486" to="1257054178" priority="1" type="highway.cycleway" shape="1349.06,1945.73 1346.02,1939.01 1347.29,1934.31 1343.04,1925.34">
+ <lane id="38319546#4_0" index="0" allow="bicycle" speed="5.56" length="13.94" shape="1346.19,1943.38 1344.28,1939.15 1345.54,1934.46 1343.64,1930.45"/>
+ </edge>
+ <edge id="38319546#5" from="1257054178" to="452425487" priority="1" type="highway.cycleway">
+ <lane id="38319546#5_0" index="0" allow="bicycle" speed="5.56" length="50.00" shape="1339.42,1921.88 1316.67,1877.36"/>
+ </edge>
+ <edge id="38319546#6" from="452425487" to="452425488" priority="1" type="highway.cycleway">
+ <lane id="38319546#6_0" index="0" allow="bicycle" speed="5.56" length="71.00" shape="1312.29,1868.81 1279.75,1805.70"/>
+ </edge>
+ <edge id="38319546#7" from="452425488" to="733663096" priority="1" type="highway.cycleway">
+ <lane id="38319546#7_0" index="0" allow="bicycle" speed="5.56" length="44.26" shape="1275.35,1797.27 1254.67,1758.14"/>
+ </edge>
+ <edge id="38319546#8" from="733663096" to="452425489" priority="1" type="highway.cycleway">
+ <lane id="38319546#8_0" index="0" allow="bicycle" speed="5.56" length="7.02" shape="1248.87,1745.98 1245.99,1739.57"/>
+ </edge>
+ <edge id="38319547" from="452425489" to="452425490" priority="1" type="highway.cycleway">
+ <lane id="38319547_0" index="0" allow="bicycle" speed="5.56" length="31.97" shape="1245.77,1736.13 1255.14,1705.57"/>
+ </edge>
+ <edge id="38319548#0" from="452425490" to="452425491" priority="1" type="highway.cycleway">
+ <lane id="38319548#0_0" index="0" allow="bicycle" speed="5.56" length="32.02" shape="1260.21,1702.12 1288.38,1686.89"/>
+ </edge>
+ <edge id="38319548#1" from="452425491" to="452425493" priority="1" type="highway.cycleway">
+ <lane id="38319548#1_0" index="0" allow="bicycle" speed="5.56" length="75.63" shape="1293.93,1683.87 1360.34,1647.67"/>
+ </edge>
+ <edge id="38319548#10" from="1669480280" to="1669480279" priority="1" type="highway.cycleway" shape="1469.16,1575.47 1460.35,1558.69 1456.23,1559.65">
+ <lane id="38319548#10_0" index="0" allow="bicycle" speed="5.56" length="13.88" shape="1465.49,1572.03 1459.48,1560.59 1458.55,1560.80"/>
+ </edge>
+ <edge id="38319548#11" from="1669480279" to="1168929659" priority="1" type="highway.cycleway" shape="1456.23,1559.65 1452.33,1560.55 1196.81,1084.49 1192.17,1077.69">
+ <lane id="38319548#11_0" index="0" allow="bicycle" speed="5.56" length="549.13" shape="1454.48,1561.74 1451.47,1562.44 1195.35,1085.27 1192.82,1081.57"/>
+ </edge>
+ <edge id="38319548#12" from="1168929659" to="951739684" priority="1" type="highway.cycleway">
+ <lane id="38319548#12_0" index="0" allow="bicycle" speed="5.56" length="14.86" shape="1189.25,1076.43 1180.64,1064.32"/>
+ </edge>
+ <edge id="38319548#13" from="951739684" to="951739649" priority="1" type="highway.cycleway">
+ <lane id="38319548#13_0" index="0" allow="bicycle" speed="5.56" length="11.21" shape="1177.02,1058.56 1171.69,1048.70"/>
+ </edge>
+ <edge id="38319548#14" from="951739649" to="1168929546" priority="1" type="highway.cycleway">
+ <lane id="38319548#14_0" index="0" allow="bicycle" speed="5.56" length="12.09" shape="1168.65,1043.05 1162.97,1032.37"/>
+ </edge>
+ <edge id="38319548#15" from="1168929546" to="2081499948" priority="1" type="highway.cycleway">
+ <lane id="38319548#15_0" index="0" allow="bicycle" speed="5.56" length="7.89" shape="1159.95,1026.66 1156.31,1019.66"/>
+ </edge>
+ <edge id="38319548#16" from="2081499948" to="1780381201" priority="1" type="highway.cycleway" shape="1155.52,1014.57 848.91,424.48 845.42,406.05 837.59,390.48 822.77,361.38 814.44,346.36 802.31,326.56 794.70,308.53 781.87,286.40">
+ <lane id="38319548#16_0" index="0" allow="bicycle" speed="5.56" length="814.53" shape="1151.86,1011.09 847.34,425.03 843.84,406.59 836.12,391.22 821.30,362.13 812.99,347.16 800.90,327.42 793.18,309.17 780.44,287.22"/>
+ </edge>
+ <edge id="38319548#2" from="452425493" to="1669480287" priority="1" type="highway.cycleway">
+ <lane id="38319548#2_0" index="0" allow="bicycle" speed="5.56" length="73.95" shape="1365.91,1644.71 1431.58,1610.71"/>
+ </edge>
+ <edge id="38319548#3" from="1669480287" to="1669480286" priority="1" type="highway.cycleway">
+ <lane id="38319548#3_0" index="0" allow="bicycle" speed="5.56" length="7.14" shape="1437.43,1607.69 1443.77,1604.40"/>
+ </edge>
+ <edge id="38319548#4" from="1669480286" to="1726394727" priority="1" type="highway.cycleway">
+ <lane id="38319548#4_0" index="0" allow="bicycle" speed="5.56" length="5.26" shape="1447.58,1602.43 1452.26,1600.01"/>
+ </edge>
+ <edge id="38319548#5" from="1726394727" to="1669480284" priority="1" type="highway.cycleway">
+ <lane id="38319548#5_0" index="0" allow="bicycle" speed="5.56" length="4.52" shape="1454.44,1598.89 1458.46,1596.81"/>
+ </edge>
+ <edge id="38319548#6" from="1669480284" to="452425497" priority="1" type="highway.cycleway">
+ <lane id="38319548#6_0" index="0" allow="bicycle" speed="5.56" length="1.38" shape="1462.94,1594.49 1464.17,1593.85"/>
+ </edge>
+ <edge id="38319548#7" from="452425497" to="1669480283" priority="1" type="highway.cycleway">
+ <lane id="38319548#7_0" index="0" allow="bicycle" speed="5.56" length="4.20" shape="1468.37,1591.68 1472.08,1589.73"/>
+ </edge>
+ <edge id="38319548#8" from="1669480283" to="1168929661" priority="1" type="highway.cycleway" shape="1472.85,1591.19 1476.43,1589.31 1473.76,1584.23">
+ <lane id="38319548#8_0" index="0" allow="bicycle" speed="5.56" length="1.41" shape="1473.69,1588.88 1474.20,1588.61 1473.81,1587.87"/>
+ </edge>
+ <edge id="38319548#9" from="1168929661" to="1669480280" priority="1" type="highway.cycleway">
+ <lane id="38319548#9_0" index="0" allow="bicycle" speed="5.56" length="0.43" shape="1470.11,1580.83 1469.91,1580.45"/>
+ </edge>
+ <edge id="38319549#0" from="452425490" to="1719213141" priority="1" type="highway.cycleway">
+ <lane id="38319549#0_0" index="0" allow="bicycle" speed="5.56" length="2.32" shape="1253.09,1702.38 1252.02,1700.32"/>
+ </edge>
+ <edge id="38319549#1" from="1719213141" to="1719213140" priority="1" type="highway.cycleway">
+ <lane id="38319549#1_0" index="0" allow="bicycle" speed="5.56" length="9.34" shape="1249.12,1694.81 1244.78,1686.54"/>
+ </edge>
+ <edge id="38319549#2" from="1719213140" to="452425499" priority="1" type="highway.cycleway" shape="1244.80,1683.03 1239.65,1673.53 1206.87,1665.88">
+ <lane id="38319549#2_0" index="0" allow="bicycle" speed="5.56" length="38.28" shape="1241.84,1681.05 1238.55,1674.97 1208.00,1667.83"/>
+ </edge>
+ <edge id="38319550#0" from="452425499" to="452425500" priority="1" type="highway.cycleway">
+ <lane id="38319550#0_0" index="0" allow="bicycle" speed="5.56" length="65.03" shape="1204.71,1665.21 1176.17,1606.78"/>
+ </edge>
+ <edge id="38319550#1" from="452425500" to="452425501" priority="1" type="highway.cycleway">
+ <lane id="38319550#1_0" index="0" allow="bicycle" speed="5.56" length="6.85" shape="1173.33,1601.20 1170.11,1595.15"/>
+ </edge>
+ <edge id="38319550#10" from="719463795" to="1780219371" priority="1" type="highway.cycleway">
+ <lane id="38319550#10_0" index="0" allow="bicycle" speed="5.56" length="111.17" shape="904.32,1106.62 853.15,1007.93"/>
+ </edge>
+ <edge id="38319550#11" from="1780219371" to="1719213509" priority="1" type="highway.cycleway" shape="852.00,1002.12 845.76,990.08 845.12,983.10 843.32,976.39 840.35,971.51">
+ <lane id="38319550#11_0" index="0" allow="bicycle" speed="5.56" length="25.87" shape="848.69,999.31 844.15,990.55 843.48,983.25 841.79,977.05 840.62,975.12"/>
+ </edge>
+ <edge id="38319550#12" from="1719213509" to="1719213668" priority="1" type="highway.cycleway" shape="840.35,971.51 838.03,967.15 834.19,963.07 830.05,959.77 789.27,881.21">
+ <lane id="38319550#12_0" index="0" allow="bicycle" speed="5.56" length="97.75" shape="837.29,969.26 836.68,968.12 832.99,964.20 828.75,960.84 789.29,884.81"/>
+ </edge>
+ <edge id="38319550#13" from="1719213668" to="719464017" priority="1" type="highway.cycleway" shape="789.27,881.21 732.62,772.05 728.49,766.77 725.19,766.66 692.38,700.17 688.67,677.73 689.20,660.83 692.98,650.11 691.89,648.12 686.64,638.49 681.96,641.40 672.27,647.45 660.80,654.60 652.67,658.18 631.56,539.77 629.59,461.09 633.99,420.60 640.93,380.90 652.35,318.90">
+ <lane id="38319550#13_0" index="0" allow="bicycle" speed="5.56" length="652.08" shape="786.33,879.12 731.23,772.95 727.66,768.40 724.15,768.28 690.79,700.68 687.01,677.84 687.56,660.52 691.18,650.26 690.44,648.91 686.03,640.82 682.83,642.80 673.14,648.85 661.67,656.00 651.42,660.54 629.93,540.06 627.95,461.14 632.35,420.42 639.31,380.62 650.73,318.60"/>
+ </edge>
+ <edge id="38319550#14" from="719464017" to="650318340" priority="1" type="highway.cycleway">
+ <lane id="38319550#14_0" index="0" allow="bicycle" speed="5.56" length="11.44" shape="650.72,318.64 652.51,307.34"/>
+ </edge>
+ <edge id="38319550#2" from="452425501" to="1780219365" priority="1" type="highway.cycleway" shape="1170.08,1591.58 1024.09,1306.64 973.33,1210.62 971.66,1209.51 969.63,1209.47 964.06,1212.25 961.74,1211.99 960.03,1210.51 959.00,1208.51">
+ <lane id="38319550#2_0" index="0" allow="bicycle" speed="5.56" length="438.16" shape="1167.18,1589.54 1022.62,1307.39 972.07,1211.76 971.14,1211.15 970.00,1211.13 964.36,1213.95 961.04,1213.57 960.24,1212.87"/>
+ </edge>
+ <edge id="38319550#3" from="1780219365" to="452425502" priority="1" type="highway.cycleway">
+ <lane id="38319550#3_0" index="0" allow="bicycle" speed="5.56" length="3.30" shape="955.45,1205.26 953.93,1202.33"/>
+ </edge>
+ <edge id="38319550#4" from="452425502" to="950640531" priority="1" type="highway.cycleway">
+ <lane id="38319550#4_0" index="0" allow="bicycle" speed="5.56" length="2.36" shape="950.97,1196.62 949.88,1194.53"/>
+ </edge>
+ <edge id="38319550#5" from="950640531" to="767282288" priority="1" type="highway.cycleway">
+ <lane id="38319550#5_0" index="0" allow="bicycle" speed="5.56" length="2.95" shape="948.27,1191.44 946.92,1188.82"/>
+ </edge>
+ <edge id="38319550#6" from="767282288" to="950640351" priority="1" type="highway.cycleway">
+ <lane id="38319550#6_0" index="0" allow="bicycle" speed="5.56" length="2.99" shape="942.13,1179.56 940.75,1176.91"/>
+ </edge>
+ <edge id="38319550#7" from="950640351" to="719463587" priority="1" type="highway.cycleway">
+ <lane id="38319550#7_0" index="0" allow="bicycle" speed="5.56" length="0.12" shape="939.11,1173.74 939.06,1173.63"/>
+ </edge>
+ <edge id="38319550#8" from="719463587" to="1780219332" priority="1" type="highway.cycleway">
+ <lane id="38319550#8_0" index="0" allow="bicycle" speed="5.56" length="1.89" shape="936.10,1167.92 935.23,1166.25"/>
+ </edge>
+ <edge id="38319550#9" from="1780219332" to="719463795" priority="1" type="highway.cycleway">
+ <lane id="38319550#9_0" index="0" allow="bicycle" speed="5.56" length="51.20" shape="930.86,1157.81 907.30,1112.36"/>
+ </edge>
+ <edge id="40196943" from="484282953" to="484282955" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="40196943_0" index="0" speed="22.22" length="92.38" shape="619.99,844.83 662.88,926.64"/>
+ </edge>
+ <edge id="40196944#0" from="484282948" to="484282955" priority="5" type="highway.unclassified">
+ <lane id="40196944#0_0" index="0" speed="22.22" length="86.23" shape="575.96,945.09 660.95,930.54"/>
+ </edge>
+ <edge id="40196944#1" from="484282955" to="538265864" priority="5" type="highway.unclassified">
+ <lane id="40196944#1_0" index="0" speed="22.22" length="71.30" shape="667.25,929.42 737.26,915.95"/>
+ </edge>
+ <edge id="42976405#0" from="438042369" to="950640558" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976405#0_0" index="0" speed="27.78" length="8.37" shape="924.32,1195.91 927.83,1203.51"/>
+ <lane id="42976405#0_1" index="1" speed="27.78" length="8.37" shape="921.32,1197.29 924.84,1204.89"/>
+ </edge>
+ <edge id="42976405#1" from="950640558" to="446017747" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976405#1_0" index="0" speed="27.78" length="2.01" shape="929.25,1206.58 930.10,1208.40"/>
+ <lane id="42976405#1_1" index="1" speed="27.78" length="2.01" shape="926.26,1207.96 927.10,1209.78"/>
+ </edge>
+ <edge id="42976405#2" from="446017747" to="1780219361" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976405#2_0" index="0" speed="27.78" length="2.92" shape="932.95,1214.23 934.29,1216.82"/>
+ <lane id="42976405#2_1" index="1" speed="27.78" length="2.92" shape="930.02,1215.75 931.36,1218.34"/>
+ </edge>
+ <edge id="42976405#3" from="1780219361" to="438042386" priority="7" type="highway.secondary" spreadType="center" shape="935.02,1221.81 1013.09,1372.58 1018.47,1379.53 1025.01,1386.84 1032.79,1393.70 1039.86,1401.88 1047.05,1410.79 1053.52,1421.48 1059.36,1433.42 1063.65,1446.04 1066.94,1461.18 1069.18,1479.84 1175.97,1687.44">
+ <lane id="42976405#3_0" index="0" speed="27.78" length="520.02" shape="938.70,1225.32 1014.49,1371.69 1019.78,1378.52 1026.24,1385.74 1033.88,1392.47 1041.11,1400.80 1048.33,1409.76 1054.93,1420.63 1060.85,1432.70 1065.21,1445.51 1068.55,1460.83 1070.78,1479.35 1176.05,1683.98"/>
+ <lane id="42976405#3_1" index="1" speed="27.78" length="520.02" shape="935.76,1226.84 1011.69,1373.48 1017.17,1380.54 1023.78,1387.94 1031.70,1394.94 1038.61,1402.96 1045.77,1411.83 1052.11,1422.34 1057.88,1434.15 1062.09,1446.57 1065.33,1461.53 1067.58,1480.33 1173.11,1685.49"/>
+ </edge>
+ <edge id="42976406#0" from="438042367" to="446017742" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976406#0_0" index="0" speed="27.78" length="3.76" shape="903.83,1198.10 901.86,1194.90"/>
+ <lane id="42976406#0_1" index="1" speed="27.78" length="3.76" shape="906.64,1196.37 904.67,1193.17"/>
+ <lane id="42976406#0_2" index="2" speed="27.78" length="3.76" shape="909.45,1194.63 907.47,1191.43"/>
+ </edge>
+ <edge id="42976406#1" from="446017742" to="1780219343" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976406#1_0" index="0" speed="27.78" length="3.19" shape="898.51,1189.07 897.01,1186.26"/>
+ <lane id="42976406#1_1" index="1" speed="27.78" length="3.19" shape="901.42,1187.52 899.92,1184.70"/>
+ <lane id="42976406#1_2" index="2" speed="27.78" length="3.19" shape="904.34,1185.97 902.83,1183.15"/>
+ </edge>
+ <edge id="42976406#2" from="1780219343" to="1780219331" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976406#2_0" index="0" speed="27.78" length="155.32" shape="892.50,1177.79 819.49,1040.71"/>
+ <lane id="42976406#2_1" index="1" speed="27.78" length="155.32" shape="895.42,1176.24 822.40,1039.15"/>
+ <lane id="42976406#2_2" index="2" speed="27.78" length="155.32" shape="898.33,1174.69 825.31,1037.60"/>
+ </edge>
+ <edge id="42976406#3" from="1780219331" to="441236049" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976406#3_0" index="0" speed="27.78" length="1.72" shape="814.29,1030.98 813.48,1029.46"/>
+ <lane id="42976406#3_1" index="1" speed="27.78" length="1.72" shape="817.20,1029.42 816.39,1027.90"/>
+ <lane id="42976406#3_2" index="2" speed="27.78" length="1.72" shape="820.11,1027.86 819.30,1026.34"/>
+ </edge>
+ <edge id="42976406#4" from="441236049" to="441236060" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976406#4_0" index="0" speed="27.78" length="39.87" shape="805.37,1013.65 788.33,977.61"/>
+ <lane id="42976406#4_1" index="1" speed="27.78" length="39.87" shape="808.35,1012.24 791.32,976.20"/>
+ <lane id="42976406#4_2" index="2" speed="27.78" length="39.87" shape="811.34,1010.83 794.30,974.79"/>
+ </edge>
+ <edge id="42976406#5" from="441236060" to="444026895" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="42976406#5_0" index="0" speed="27.78" length="182.17" shape="783.95,968.71 699.29,807.40"/>
+ <lane id="42976406#5_1" index="1" speed="27.78" length="182.17" shape="786.87,967.17 702.21,805.87"/>
+ <lane id="42976406#5_2" index="2" speed="27.78" length="182.17" shape="789.79,965.64 705.13,804.33"/>
+ </edge>
+ <edge id="42976407#0" from="1096401708" to="538265860" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976407#0_0" index="0" speed="22.22" length="8.48" shape="717.57,773.34 724.40,778.36"/>
+ </edge>
+ <edge id="42976407#1" from="538265860" to="1624003172" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976407#1_0" index="0" speed="22.22" length="117.63" shape="724.87,778.91 779.46,883.10"/>
+ </edge>
+ <edge id="42976407#2" from="1624003172" to="1168929298" priority="5" type="highway.unclassified" spreadType="center" shape="780.92,885.89 821.31,962.97 822.13,965.73">
+ <lane id="42976407#2_0" index="0" speed="22.22" length="81.66" shape="782.34,888.60 820.24,960.93"/>
+ </edge>
+ <edge id="42976408#0" from="1168929308" to="538265864" priority="5" type="highway.unclassified" spreadType="center" shape="781.15,985.59 774.80,980.42 741.65,916.79">
+ <lane id="42976408#0_0" index="0" speed="22.22" length="68.19" shape="775.46,980.96 774.80,980.42 743.69,920.70"/>
+ </edge>
+ <edge id="42976408#1" from="538265864" to="538265866" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976408#1_0" index="0" speed="22.22" length="110.99" shape="739.15,912.03 687.64,813.72"/>
+ </edge>
+ <edge id="42976408#2" from="538265866" to="1096401706" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976408#2_0" index="0" speed="22.22" length="22.56" shape="687.48,813.26 683.42,791.07"/>
+ </edge>
+ <edge id="42976410#0" from="13929775" to="950640525" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976410#0_0" index="0" speed="22.22" length="2.93" shape="940.42,1192.58 941.72,1195.20"/>
+ </edge>
+ <edge id="42976410#1" from="950640525" to="443101912" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976410#1_0" index="0" speed="22.22" length="2.48" shape="943.30,1198.22 944.45,1200.42"/>
+ </edge>
+ <edge id="42976410#2" from="443101912" to="1780219377" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976410#2_0" index="0" speed="22.22" length="3.35" shape="947.35,1206.03 948.87,1209.01"/>
+ </edge>
+ <edge id="42976410#3" from="1780219377" to="443089069" priority="5" type="highway.unclassified" spreadType="center" shape="951.10,1213.37 952.15,1215.44 964.69,1232.74 999.28,1301.37 1023.38,1324.28 1042.35,1360.43 1046.10,1377.78 1050.87,1388.97 1083.48,1451.50 1090.94,1461.32 1098.55,1469.82 1111.16,1491.59 1116.16,1503.48 1118.52,1509.84 1121.74,1540.11 1154.02,1599.58">
+ <lane id="42976410#3_0" index="0" speed="22.22" length="433.93" shape="953.59,1217.42 964.69,1232.74 999.28,1301.37 1023.38,1324.28 1042.35,1360.43 1046.10,1377.78 1050.87,1388.97 1083.48,1451.50 1090.94,1461.32 1098.55,1469.82 1111.16,1491.59 1116.16,1503.48 1118.52,1509.84 1121.74,1540.11 1152.57,1596.90"/>
+ </edge>
+ <edge id="42976410#4" from="443089069" to="250689290" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="42976410#4_0" index="0" speed="22.22" length="7.52" shape="1155.77,1602.34 1159.79,1608.70"/>
+ </edge>
+ <edge id="42976410#5" from="250689290" to="438042378" priority="5" type="highway.unclassified" spreadType="center" shape="1161.39,1611.23 1188.65,1665.77 1201.45,1681.53">
+ <lane id="42976410#5_0" index="0" speed="22.22" length="73.51" shape="1162.75,1613.96 1188.65,1665.77 1198.48,1677.87"/>
+ </edge>
+ <edge id="43684741#0" from="552842256" to="561204538" priority="5" type="highway.unclassified">
+ <lane id="43684741#0_0" index="0" speed="22.22" length="2.92" shape="706.91,1653.45 704.56,1651.71"/>
+ </edge>
+ <edge id="43684741#1" from="561204538" to="1232172723" priority="5" type="highway.unclassified">
+ <lane id="43684741#1_0" index="0" speed="22.22" length="32.77" shape="700.04,1648.44 673.48,1629.25"/>
+ </edge>
+ <edge id="43684741#2" from="1232172723" to="1726380204" priority="5" type="highway.unclassified">
+ <lane id="43684741#2_0" index="0" speed="22.22" length="21.33" shape="665.07,1623.17 647.79,1610.68"/>
+ </edge>
+ <edge id="43684741#3" from="1726380204" to="552842255" priority="5" type="highway.unclassified" shape="648.77,1609.36 582.08,1561.17 577.63,1557.95 465.58,1476.04">
+ <lane id="43684741#3_0" index="0" speed="22.22" length="213.68" shape="641.18,1605.90 581.12,1562.50 576.66,1559.29 468.41,1480.15"/>
+ </edge>
+ <edge id="43684741#4" from="552842255" to="950640393" priority="5" type="highway.unclassified">
+ <lane id="43684741#4_0" index="0" speed="22.22" length="1.34" shape="461.89,1475.40 460.80,1474.61"/>
+ </edge>
+ <edge id="43684741#5" from="950640393" to="552842254" priority="5" type="highway.unclassified">
+ <lane id="43684741#5_0" index="0" speed="22.22" length="4.75" shape="458.07,1472.62 454.23,1469.83"/>
+ </edge>
+ <edge id="44104490" from="560472379" to="560472377" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="44104490_0" index="0" speed="22.22" length="107.33" shape="731.71,2032.24 826.42,1981.75"/>
+ </edge>
+ <edge id="44104491#0" from="956116503" to="560472377" priority="5" type="highway.unclassified">
+ <lane id="44104491#0_0" index="0" speed="22.22" length="143.51" shape="762.65,1849.58 830.64,1975.96"/>
+ </edge>
+ <edge id="44104491#1" from="560472377" to="560472378" priority="5" type="highway.unclassified">
+ <lane id="44104491#1_0" index="0" speed="22.22" length="11.88" shape="833.56,1981.62 838.82,1992.27"/>
+ </edge>
+ <edge id="44641744#0" from="445506215" to="427996792" priority="5" type="highway.unclassified" spreadType="center" shape="760.62,2257.65 777.52,2250.73 927.62,2171.67 952.40,2158.62 977.17,2145.57 1001.94,2132.52 1044.81,2109.95 1068.75,2092.94">
+ <lane id="44641744#0_0" index="0" speed="22.22" length="336.06" shape="768.55,2254.40 777.52,2250.73 927.62,2171.67 952.40,2158.62 977.17,2145.57 1001.94,2132.52 1044.81,2109.95 1064.60,2095.89"/>
+ </edge>
+ <edge id="44641744#1" from="427996792" to="13929737" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="44641744#1_0" index="0" speed="22.22" length="242.67" shape="1074.22,2090.02 1288.25,1975.65"/>
+ </edge>
+ <edge id="44641745#0" from="445823604" to="948350595" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="44641745#0_0" index="0" speed="22.22" length="3.38" shape="763.73,2291.39 760.36,2291.17"/>
+ </edge>
+ <edge id="44641745#1" from="948350595" to="948350715" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="44641745#1_0" index="0" speed="22.22" length="2.73" shape="758.37,2291.05 755.65,2290.89"/>
+ </edge>
+ <edge id="44641745#2" from="948350715" to="243489891" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="44641745#2_0" index="0" speed="22.22" length="0.23" shape="751.53,2290.62 751.30,2290.61"/>
+ </edge>
+ <edge id="44738605#0" from="1261880295" to="438042372" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="44738605#0_0" index="0" speed="22.22" length="6.82" shape="1294.61,1670.31 1289.95,1675.29"/>
+ </edge>
+ <edge id="44738605#1" from="438042372" to="1719213141" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="44738605#1_0" index="0" speed="22.22" length="32.15" shape="1284.63,1679.49 1256.23,1694.57"/>
+ </edge>
+ <edge id="44738605#2" from="1719213141" to="438042373" priority="6" type="highway.secondary_link" spreadType="center">
+ <lane id="44738605#2_0" index="0" speed="22.22" length="2.71" shape="1247.83,1699.03 1245.44,1700.30"/>
+ </edge>
+ <edge id="58770723#0" from="443089072" to="443089071" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="58770723#0_0" index="0" speed="22.22" length="75.82" shape="1303.68,1537.90 1235.99,1572.06"/>
+ </edge>
+ <edge id="58770723#1" from="443089071" to="452425500" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="58770723#1_0" index="0" speed="22.22" length="56.40" shape="1230.45,1574.90 1180.43,1600.95"/>
+ </edge>
+ <edge id="58770723#2" from="452425500" to="250689290" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="58770723#2_0" index="0" speed="22.22" length="9.03" shape="1171.99,1605.45 1164.06,1609.78"/>
+ </edge>
+ <edge id="58770724" from="252417190" to="443089070" priority="5" type="highway.unclassified" spreadType="center" shape="1300.74,1525.44 1363.56,1490.71 1371.35,1486.40">
+ <lane id="58770724_0" index="0" speed="22.22" length="74.53" shape="1303.41,1523.96 1363.56,1490.71 1368.64,1487.90"/>
+ </edge>
+ <edge id="58770725#0" from="435668521" to="248913142" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#0_0" index="0" speed="13.89" length="73.16" shape="1480.34,1872.78 1446.76,1807.79"/>
+ </edge>
+ <edge id="58770725#1" from="248913142" to="248913133" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#1_0" index="0" speed="13.89" length="70.55" shape="1442.37,1799.31 1409.96,1736.65"/>
+ </edge>
+ <edge id="58770725#2" from="248913133" to="733663093" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#2_0" index="0" speed="13.89" length="72.71" shape="1405.58,1728.19 1372.18,1663.60"/>
+ </edge>
+ <edge id="58770725#3" from="733663093" to="452425493" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#3_0" index="0" speed="13.89" length="3.70" shape="1367.81,1655.14 1366.11,1651.85"/>
+ </edge>
+ <edge id="58770725#4" from="452425493" to="252417189" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#4_0" index="0" speed="13.89" length="2.42" shape="1361.73,1643.38 1360.62,1641.23"/>
+ </edge>
+ <edge id="58770725#5" from="252417189" to="443089072" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#5_0" index="0" speed="13.89" length="98.71" shape="1353.22,1626.91 1307.88,1539.24"/>
+ </edge>
+ <edge id="58770725#6" from="443089072" to="252417190" priority="4" type="highway.residential" spreadType="center">
+ <lane id="58770725#6_0" index="0" speed="13.89" length="6.24" shape="1305.02,1533.72 1302.16,1528.18"/>
+ </edge>
+ <edge id="58770833" from="443089066" to="1168929295" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="58770833_0" index="0" speed="22.22" length="65.01" shape="1191.51,1147.59 1160.41,1090.51"/>
+ </edge>
+ <edge id="58770836" from="443089065" to="443089066" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="58770836_0" index="0" speed="22.22" length="74.09" shape="1229.16,1218.52 1194.45,1153.07"/>
+ </edge>
+ <edge id="58770837#0" from="443089070" to="966132131" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="58770837#0_0" index="0" speed="22.22" length="107.72" shape="1369.89,1483.69 1318.70,1388.90"/>
+ </edge>
+ <edge id="58770837#1" from="966132131" to="443089065" priority="5" type="highway.unclassified" spreadType="center" shape="1317.22,1386.16 1286.75,1328.13 1263.53,1283.92 1230.62,1221.27">
+ <lane id="58770837#1_0" index="0" speed="22.22" length="180.08" shape="1315.79,1383.44 1286.75,1328.13 1263.53,1283.92 1232.06,1224.01"/>
+ </edge>
+ <edge id="58779718#0" from="728492341" to="728492360" priority="5" type="highway.unclassified" shape="440.65,1871.28 523.68,1822.29 613.04,1774.73">
+ <lane id="58779718#0_0" index="0" speed="22.22" length="185.62" shape="444.00,1867.38 522.85,1820.87 605.90,1776.67"/>
+ </edge>
+ <edge id="58779718#1" from="728492360" to="728492364" priority="5" type="highway.unclassified">
+ <lane id="58779718#1_0" index="0" speed="22.22" length="62.11" shape="618.39,1773.94 679.68,1784.01"/>
+ </edge>
+ <edge id="58779719#0" from="728492348" to="728492361" priority="5" type="highway.unclassified">
+ <lane id="58779719#0_0" index="0" speed="22.22" length="75.93" shape="536.85,1881.01 602.64,1843.10"/>
+ </edge>
+ <edge id="58779719#1" from="728492361" to="728492371" priority="5" type="highway.unclassified">
+ <lane id="58779719#1_0" index="0" speed="22.22" length="55.92" shape="615.15,1839.89 670.53,1847.62"/>
+ </edge>
+ <edge id="59159259#0" from="733663076" to="1212941077" priority="5" type="highway.unclassified" spreadType="center" shape="848.02,1673.89 823.72,1677.57 737.87,1668.35 731.83,1665.57">
+ <lane id="59159259#0_0" index="0" speed="22.22" length="94.15" shape="828.48,1676.85 823.72,1677.57 737.87,1668.35 735.15,1667.10"/>
+ </edge>
+ <edge id="59159259#1" from="1212941077" to="552842256" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="59159259#1_0" index="0" speed="22.22" length="8.04" shape="728.52,1664.05 721.22,1660.69"/>
+ </edge>
+ <edge id="59159260#0" from="733663131" to="733663093" priority="4" type="highway.residential">
+ <lane id="59159260#0_0" index="0" speed="13.89" length="74.68" shape="1439.54,1624.42 1373.54,1659.37"/>
+ </edge>
+ <edge id="59159260#1" from="733663093" to="733663121" priority="4" type="highway.residential">
+ <lane id="59159260#1_0" index="0" speed="13.89" length="75.73" shape="1368.00,1662.27 1300.78,1697.16"/>
+ </edge>
+ <edge id="59159260#2" from="733663121" to="733663096" priority="4" type="highway.residential" shape="1297.27,1697.13 1266.82,1714.10 1258.93,1742.39 1253.88,1753.13">
+ <lane id="59159260#2_0" index="0" speed="13.89" length="63.22" shape="1295.28,1700.13 1268.22,1715.20 1260.52,1742.83 1259.01,1746.06"/>
+ </edge>
+ <edge id="59159260#3" from="733663096" to="733663089" priority="4" type="highway.residential">
+ <lane id="59159260#3_0" index="0" speed="13.89" length="9.92" shape="1250.47,1756.88 1241.77,1761.65"/>
+ </edge>
+ <edge id="59159262#0" from="446766149" to="1457695393" priority="5" type="highway.unclassified">
+ <lane id="59159262#0_0" index="0" speed="22.22" length="5.88" shape="679.38,1870.82 685.26,1870.76"/>
+ </edge>
+ <edge id="59159262#1" from="1457695393" to="733663082" priority="5" type="highway.unclassified">
+ <lane id="59159262#1_0" index="0" speed="22.22" length="6.84" shape="695.76,1870.83 702.59,1870.99"/>
+ </edge>
+ <edge id="59159262#2" from="733663082" to="956116503" priority="5" type="highway.unclassified">
+ <lane id="59159262#2_0" index="0" speed="22.22" length="50.11" shape="709.30,1869.39 754.01,1846.76"/>
+ </edge>
+ <edge id="59159262#3" from="956116503" to="1482088987" priority="5" type="highway.unclassified">
+ <lane id="59159262#3_0" index="0" speed="22.22" length="4.53" shape="758.17,1844.66 762.20,1842.59"/>
+ </edge>
+ <edge id="59159262#4" from="1482088987" to="733663136" priority="5" type="highway.unclassified">
+ <lane id="59159262#4_0" index="0" speed="22.22" length="144.23" shape="766.42,1840.42 894.77,1774.64"/>
+ </edge>
+ <edge id="59159266#0" from="733663116" to="1482088973" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="59159266#0_0" index="0" speed="22.22" length="143.96" shape="854.28,1696.35 726.93,1763.49"/>
+ </edge>
+ <edge id="59159266#1" from="1482088973" to="733663070" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="59159266#1_0" index="0" speed="22.22" length="3.09" shape="721.27,1766.48 718.53,1767.92"/>
+ </edge>
+ <edge id="69931595#0" from="445506216" to="733663136" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="69931595#0_0" index="0" speed="27.78" length="158.51" shape="973.95,1919.35 900.49,1778.89"/>
+ </edge>
+ <edge id="69931595#1" from="733663136" to="2017759588" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="69931595#1_0" index="0" speed="27.78" length="44.80" shape="896.11,1770.46 875.53,1730.67"/>
+ </edge>
+ <edge id="69931595#2" from="2017759588" to="733663116" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="69931595#2_0" index="0" speed="27.78" length="27.46" shape="871.07,1722.05 858.46,1697.66"/>
+ </edge>
+ <edge id="69931595#3" from="733663116" to="733663076" priority="15" type="highway.unclassified|railway.tram">
+ <lane id="69931595#3_0" index="0" speed="27.78" length="17.63" shape="855.61,1692.15 847.51,1676.50"/>
+ </edge>
+ <edge id="75656628#0" from="254594415" to="543360161" priority="15" type="railway.subway" spreadType="center" shape="2575.84,1321.27 2198.20,1521.44 1596.40,1836.52">
+ <lane id="75656628#0_0" index="0" allow="cityrail" speed="27.78" length="1101.96" shape="2575.84,1321.27 2198.20,1521.44 1600.61,1834.32"/>
+ </edge>
+ <edge id="75656628#1" from="543360161" to="946534458" priority="15" type="railway.subway" spreadType="center" shape="1596.40,1836.52 1538.28,1867.85 1510.47,1893.93 1493.32,1917.25 1480.36,1942.70 1474.75,1961.96 1465.38,1991.72 1460.65,2012.30 1458.71,2037.09 1457.12,2059.14 1458.82,2080.21 1465.85,2112.46 1476.44,2141.60 1514.47,2216.62 1569.81,2326.01 1596.25,2371.80 1624.53,2409.04 1652.38,2440.59 1687.76,2480.73 1714.80,2516.02 1737.28,2559.39 1750.26,2609.02 1752.24,2641.69">
+ <lane id="75656628#1_0" index="0" allow="cityrail" speed="27.78" length="940.65" shape="1592.20,1838.79 1538.28,1867.85 1510.47,1893.93 1493.32,1917.25 1480.36,1942.70 1474.75,1961.96 1465.38,1991.72 1460.65,2012.30 1458.71,2037.09 1457.12,2059.14 1458.82,2080.21 1465.85,2112.46 1476.44,2141.60 1514.47,2216.62 1569.81,2326.01 1596.25,2371.80 1624.53,2409.04 1652.38,2440.59 1687.76,2480.73 1714.80,2516.02 1737.28,2559.39 1750.26,2609.02 1752.24,2641.69"/>
+ </edge>
+ <edge id="81096816#0" from="1168929272" to="2081499952" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81096816#0_0" index="0" speed="22.22" length="13.39" shape="1137.36,1045.01 1130.90,1033.28"/>
+ </edge>
+ <edge id="81096816#1" from="2081499952" to="443089068" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81096816#1_0" index="0" speed="22.22" length="32.50" shape="1126.32,1024.95 1110.64,996.49"/>
+ </edge>
+ <edge id="81096816#2" from="443089068" to="444026917" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81096816#2_0" index="0" speed="22.22" length="145.46" shape="1107.74,991.06 1040.99,861.82"/>
+ </edge>
+ <edge id="81096816#3" from="444026917" to="1624003199" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81096816#3_0" index="0" speed="22.22" length="96.72" shape="1038.07,856.21 993.28,770.48"/>
+ </edge>
+ <edge id="81096816#4" from="1624003199" to="538810722" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81096816#4_0" index="0" speed="22.22" length="120.49" shape="990.41,764.99 934.86,658.06"/>
+ </edge>
+ <edge id="81096816#5" from="538810722" to="1726380179" priority="5" type="highway.unclassified" spreadType="center" shape="934.86,658.06 873.23,542.32 820.60,440.63">
+ <lane id="81096816#5_0" index="0" speed="22.22" length="245.63" shape="934.86,658.06 873.23,542.32 820.60,440.63"/>
+ </edge>
+ <edge id="81096816#6" from="1726380179" to="444026921" priority="5" type="highway.unclassified" spreadType="center" shape="820.60,440.63 770.84,344.78 750.94,307.38 741.26,288.18">
+ <lane id="81096816#6_0" index="0" speed="22.22" length="171.86" shape="820.60,440.63 770.84,344.78 750.94,307.38 741.26,288.18"/>
+ </edge>
+ <edge id="81096822#0" from="452425497" to="1669480292" priority="1" type="highway.cycleway">
+ <lane id="81096822#0_0" index="0" allow="bicycle" speed="5.56" length="247.17" shape="1472.79,1596.58 1587.33,1815.61"/>
+ </edge>
+ <edge id="81096822#1" from="1669480292" to="543360161" priority="1" type="highway.cycleway" shape="1587.31,1819.14 1590.94,1826.09 1592.52,1829.10 1595.43,1834.67 1596.40,1836.52">
+ <lane id="81096822#1_0" index="0" allow="bicycle" speed="5.56" length="13.40" shape="1590.22,1821.13 1592.41,1825.33 1593.98,1828.33 1596.43,1833.01"/>
+ </edge>
+ <edge id="81096822#2" from="543360161" to="1268463825" priority="1" type="highway.cycleway" shape="1596.40,1836.52 1602.73,1848.68 1676.03,1992.80">
+ <lane id="81096822#2_0" index="0" allow="bicycle" speed="5.56" length="172.26" shape="1599.32,1838.55 1604.19,1847.91 1677.50,1992.05"/>
+ </edge>
+ <edge id="81096844#0" from="443089061" to="248913142" priority="4" type="highway.residential">
+ <lane id="81096844#0_0" index="0" speed="13.89" length="76.05" shape="1515.18,1767.66 1448.12,1803.52"/>
+ </edge>
+ <edge id="81096844#1" from="248913142" to="248913144" priority="4" type="highway.residential">
+ <lane id="81096844#1_0" index="0" speed="13.89" length="75.53" shape="1442.57,1806.49 1375.96,1842.10"/>
+ </edge>
+ <edge id="81096844#2" from="248913144" to="452425487" priority="4" type="highway.residential">
+ <lane id="81096844#2_0" index="0" speed="13.89" length="56.08" shape="1370.42,1845.07 1320.96,1871.51"/>
+ </edge>
+ <edge id="81096844#3" from="452425487" to="248913145" priority="4" type="highway.residential">
+ <lane id="81096844#3_0" index="0" speed="13.89" length="9.42" shape="1312.49,1876.04 1304.18,1880.49"/>
+ </edge>
+ <edge id="81096855#0" from="945146413" to="945146437" priority="6" type="highway.tertiary" spreadType="center">
+ <lane id="81096855#0_0" index="0" speed="22.22" length="99.17" shape="1425.82,1945.07 1471.70,2032.98"/>
+ </edge>
+ <edge id="81096855#1" from="945146437" to="2006433732" priority="6" type="highway.tertiary" spreadType="center" shape="1473.14,2035.72 1504.54,2095.89 1516.26,2119.06 1521.43,2129.12 1542.86,2170.96 1572.98,2228.34 1575.30,2232.76 1603.87,2287.18 1612.55,2303.71 1634.53,2345.59 1691.14,2453.43">
+ <lane id="81096855#1_0" index="0" speed="22.22" length="468.04" shape="1474.59,2038.50 1504.54,2095.89 1516.26,2119.06 1521.43,2129.12 1542.86,2170.96 1572.98,2228.34 1575.30,2232.76 1603.87,2287.18 1612.55,2303.71 1634.53,2345.59 1691.14,2453.43"/>
+ </edge>
+ <edge id="81096860" from="443101936" to="945146437" priority="4" type="highway.residential" spreadType="center">
+ <lane id="81096860_0" index="0" speed="13.89" length="163.03" shape="1620.61,1959.22 1475.89,2034.30"/>
+ </edge>
+ <edge id="81124939#0" from="945146612" to="1669480286" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="1566.19,1826.94 1454.09,1613.77 1448.77,1603.67">
+ <lane id="81124939#0_0" index="0" speed="27.78" length="247.48" shape="1564.73,1827.71 1452.63,1614.53 1449.54,1608.67"/>
+ <lane id="81124939#0_1" index="1" speed="27.78" length="247.48" shape="1567.65,1826.17 1455.56,1613.00 1452.46,1607.13"/>
+ </edge>
+ <edge id="81124939#1" from="1669480286" to="1669480282" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="81124939#1_0" index="0" speed="27.78" length="2.72" shape="1445.08,1600.22 1443.81,1597.82"/>
+ <lane id="81124939#1_1" index="1" speed="27.78" length="2.72" shape="1448.00,1598.68 1446.73,1596.28"/>
+ </edge>
+ <edge id="81124943#0" from="1185414550" to="2081499949" priority="15" type="highway.secondary|railway.tram" spreadType="center" shape="776.92,288.67 797.32,329.27 808.79,360.92 828.32,399.75 840.10,423.16 842.92,428.48 1011.80,746.99 1144.97,1002.12 1152.48,1016.31">
+ <lane id="81124943#0_0" index="0" speed="27.78" length="814.30" shape="778.40,287.93 798.79,328.53 810.34,360.36 829.79,399.00 841.58,422.42 844.38,427.71 1013.26,746.22 1146.43,1001.36 1151.67,1011.24"/>
+ <lane id="81124943#0_1" index="1" speed="27.78" length="814.30" shape="775.45,289.41 795.85,330.01 807.23,361.48 826.84,400.49 838.63,423.90 841.47,429.26 1010.34,747.77 1143.51,1002.88 1148.75,1012.79"/>
+ </edge>
+ <edge id="81124943#1" from="2081499949" to="1246731620" priority="15" type="highway.secondary|railway.tram" spreadType="center">
+ <lane id="81124943#1_0" index="0" speed="27.78" length="8.20" shape="1154.64,1016.86 1158.47,1024.11"/>
+ <lane id="81124943#1_1" index="1" speed="27.78" length="8.20" shape="1151.72,1018.40 1155.56,1025.66"/>
+ </edge>
+ <edge id="81124945" from="441266876" to="255227475" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81124945_0" index="0" speed="22.22" length="178.39" shape="1147.19,966.71 1302.96,879.77"/>
+ </edge>
+ <edge id="81394162#0" from="452446340" to="1257054092" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="81394162#0_0" index="0" speed="27.78" length="6.38" shape="1299.44,1954.85 1296.54,1949.17"/>
+ <lane id="81394162#0_1" index="1" speed="27.78" length="6.38" shape="1302.38,1953.35 1299.48,1947.67"/>
+ </edge>
+ <edge id="81394162#1" from="1257054092" to="438042380" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="81394162#1_0" index="0" speed="27.78" length="175.69" shape="1292.16,1940.72 1210.38,1785.23"/>
+ <lane id="81394162#1_1" index="1" speed="27.78" length="175.69" shape="1295.08,1939.18 1213.30,1783.69"/>
+ </edge>
+ <edge id="81394162#2" from="438042380" to="438042387" priority="7" type="highway.secondary" spreadType="center">
+ <lane id="81394162#2_0" index="0" speed="27.78" length="23.40" shape="1207.55,1780.93 1198.02,1759.55"/>
+ <lane id="81394162#2_1" index="1" speed="27.78" length="23.40" shape="1210.56,1779.58 1201.04,1758.21"/>
+ </edge>
+ <edge id="81394169#0" from="477486714" to="948350676" priority="15" type="railway.tram" spreadType="center" shape="666.99,2225.88 676.02,2231.66 684.67,2233.95 707.15,2236.98 723.18,2244.00 732.19,2250.82 738.76,2256.54">
+ <lane id="81394169#0_0" index="0" allow="cityrail" speed="27.78" length="71.78" shape="675.04,2231.04 676.02,2231.66 684.67,2233.95 707.15,2236.98 723.18,2244.00 732.19,2250.82 739.87,2257.51"/>
+ </edge>
+ <edge id="81394169#1" from="948350676" to="948350615" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394169#1_0" index="0" allow="cityrail" speed="27.78" length="0.26" shape="742.63,2261.73 742.78,2261.94"/>
+ </edge>
+ <edge id="81394169#2" from="948350615" to="948350693" priority="15" type="railway.tram" spreadType="center" shape="743.31,2262.65 746.65,2266.20 748.62,2269.96">
+ <lane id="81394169#2_0" index="0" allow="cityrail" speed="27.78" length="0.69" shape="746.54,2266.09 746.65,2266.20 746.90,2266.68"/>
+ </edge>
+ <edge id="81394169#3" from="948350693" to="948350707" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394169#3_0" index="0" allow="cityrail" speed="27.78" length="2.45" shape="749.19,2270.85 750.51,2272.92"/>
+ </edge>
+ <edge id="81394169#4" from="948350707" to="948350621" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394169#4_0" index="0" allow="cityrail" speed="27.78" length="8.72" shape="751.19,2273.98 753.79,2282.31"/>
+ </edge>
+ <edge id="81394169#5" from="948350621" to="948350715" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394169#5_0" index="0" allow="cityrail" speed="27.78" length="3.15" shape="754.51,2287.42 754.94,2290.54"/>
+ </edge>
+ <edge id="81394169#6" from="948350715" to="948350636" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394169#6_0" index="0" allow="cityrail" speed="27.78" length="11.91" shape="755.35,2294.22 756.61,2306.06"/>
+ </edge>
+ <edge id="81394188#0" from="948350565" to="948350673" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394188#0_0" index="0" allow="cityrail" speed="27.78" length="14.71" shape="733.16,2322.12 731.36,2307.52"/>
+ </edge>
+ <edge id="81394188#1" from="948350673" to="724002953" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394188#1_0" index="0" allow="cityrail" speed="27.78" length="2.71" shape="729.32,2292.01 728.93,2289.33"/>
+ </edge>
+ <edge id="81394188#2" from="724002953" to="1252777712" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81394188#2_0" index="0" allow="cityrail" speed="27.78" length="7.30" shape="728.03,2283.05 727.32,2275.78"/>
+ </edge>
+ <edge id="81394188#3" from="1252777712" to="950640428" priority="15" type="railway.tram" spreadType="center" shape="727.32,2275.78 726.60,2268.39 724.49,2259.86 720.65,2250.49 714.85,2245.90 708.24,2243.30 696.57,2241.33 686.05,2240.70">
+ <lane id="81394188#3_0" index="0" allow="cityrail" speed="27.78" length="63.97" shape="727.57,2278.32 726.60,2268.39 724.49,2259.86 720.65,2250.49 714.85,2245.90 708.24,2243.30 696.57,2241.33 687.84,2240.81"/>
+ </edge>
+ <edge id="81394188#4" from="950640428" to="477486714" priority="15" type="railway.tram" spreadType="center" shape="686.05,2240.70 673.37,2235.03 666.99,2225.88">
+ <lane id="81394188#4_0" index="0" allow="cityrail" speed="27.78" length="8.58" shape="679.75,2237.88 673.37,2235.03 672.46,2233.72"/>
+ </edge>
+ <edge id="81394192#0" from="446017735" to="1228499918" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#0_0" index="0" speed="22.22" length="68.69" shape="727.00,2223.55 717.09,2155.57"/>
+ </edge>
+ <edge id="81394192#1" from="1228499918" to="1228499945" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#1_0" index="0" speed="22.22" length="99.05" shape="715.72,2146.17 701.43,2048.16"/>
+ </edge>
+ <edge id="81394192#10" from="1726380193" to="446017740" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#10_0" index="0" speed="22.22" length="102.41" shape="735.80,1420.13 749.64,1318.65"/>
+ </edge>
+ <edge id="81394192#11" from="446017740" to="950640474" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#11_0" index="0" speed="22.22" length="0.47" shape="751.21,1309.44 751.31,1308.98"/>
+ </edge>
+ <edge id="81394192#12" from="950640474" to="444026884" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#12_0" index="0" speed="22.22" length="5.02" shape="752.25,1304.39 753.27,1299.48"/>
+ </edge>
+ <edge id="81394192#13" from="444026884" to="950640361" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#13_0" index="0" speed="22.22" length="11.58" shape="754.64,1292.89 756.98,1281.55"/>
+ </edge>
+ <edge id="81394192#14" from="950640361" to="446017739" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#14_0" index="0" speed="22.22" length="0.47" shape="758.06,1276.29 758.16,1275.83"/>
+ </edge>
+ <edge id="81394192#15" from="446017739" to="444026886" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#15_0" index="0" speed="22.22" length="171.40" shape="759.86,1266.05 783.32,1096.26"/>
+ </edge>
+ <edge id="81394192#2" from="1228499945" to="446766149" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#2_0" index="0" speed="22.22" length="165.51" shape="700.52,2041.86 676.66,1878.08"/>
+ </edge>
+ <edge id="81394192#3" from="446766149" to="728492371" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#3_0" index="0" speed="22.22" length="13.90" shape="675.34,1867.92 673.84,1854.10"/>
+ </edge>
+ <edge id="81394192#4" from="728492371" to="728492364" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#4_0" index="0" speed="22.22" length="54.72" shape="674.04,1844.99 681.86,1790.83"/>
+ </edge>
+ <edge id="81394192#5" from="728492364" to="446770959" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#5_0" index="0" speed="22.22" length="92.77" shape="683.22,1781.42 696.47,1689.60"/>
+ </edge>
+ <edge id="81394192#6" from="446770959" to="552842257" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#6_0" index="0" speed="22.22" length="18.93" shape="697.83,1680.20 700.54,1661.47"/>
+ </edge>
+ <edge id="81394192#7" from="552842257" to="561204538" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#7_0" index="0" speed="22.22" length="2.96" shape="702.62,1654.34 704.11,1651.78"/>
+ </edge>
+ <edge id="81394192#8" from="561204538" to="1726380195" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#8_0" index="0" speed="22.22" length="198.53" shape="705.91,1644.08 732.35,1447.32"/>
+ </edge>
+ <edge id="81394192#9" from="1726380195" to="1726380193" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81394192#9_0" index="0" speed="22.22" length="15.29" shape="732.96,1442.36 734.87,1427.18"/>
+ </edge>
+ <edge id="81394200#0" from="948350565" to="948350597" priority="15" type="highway.tertiary|railway.tram" shape="733.19,2322.32 734.35,2303.49 735.25,2298.36 735.50,2295.41">
+ <lane id="81394200#0_0" index="0" speed="27.78" length="19.71" shape="731.54,2322.22 732.70,2303.39 732.85,2302.55"/>
+ </edge>
+ <edge id="81394200#1" from="948350597" to="948350640" priority="15" type="highway.tertiary|railway.tram" shape="735.50,2295.41 738.24,2288.29 740.54,2284.12 744.96,2278.54">
+ <lane id="81394200#1_0" index="0" speed="27.78" length="2.38" shape="736.81,2287.49 737.95,2285.40"/>
+ </edge>
+ <edge id="81394200#2" from="948350640" to="948350707" priority="15" type="highway.tertiary|railway.tram">
+ <lane id="81394200#2_0" index="0" speed="27.78" length="2.28" shape="747.20,2274.86 749.04,2273.51"/>
+ </edge>
+ <edge id="81523316" from="948350705" to="948350607" priority="15" type="highway.primary|railway.tram" spreadType="center" shape="777.15,2274.14 767.32,2281.35 763.17,2285.56">
+ <lane id="81523316_0" index="0" speed="27.78" length="8.39" shape="778.13,2275.47 768.96,2282.19"/>
+ <lane id="81523316_1" index="1" speed="27.78" length="8.39" shape="757.50,2286.50 753.14,2289.70"/>
+ </edge>
+ <edge id="81523330#0" from="948350630" to="1252777720" priority="15" type="highway.primary|railway.tram">
+ <lane id="81523330#0_0" index="0" speed="27.78" length="1.33" shape="771.84,2256.22 773.11,2255.55"/>
+ <lane id="81523330#0_1" index="1" speed="27.78" length="1.33" shape="773.39,2259.14 774.47,2258.57"/>
+ </edge>
+ <edge id="81523330#1" from="1252777720" to="950094425" priority="15" type="highway.primary|railway.tram" shape="776.84,2259.18 801.79,2245.97 1073.15,2102.39">
+ <lane id="81523330#1_0" index="0" speed="27.78" length="328.65" shape="775.85,2254.10 799.48,2241.60 1066.34,2100.39"/>
+ <lane id="81523330#1_1" index="1" speed="27.78" length="328.65" shape="777.39,2257.02 801.02,2244.52 1067.89,2103.31"/>
+ </edge>
+ <edge id="81523330#2" from="950094425" to="1263725264" priority="15" type="highway.primary|railway.tram">
+ <lane id="81523330#2_0" index="0" speed="27.78" length="1.50" shape="1070.94,2097.96 1072.28,2097.29"/>
+ <lane id="81523330#2_1" index="1" speed="27.78" length="1.50" shape="1072.41,2100.91 1073.75,2100.24"/>
+ </edge>
+ <edge id="81523330#3" from="1263725264" to="1243159116" priority="15" type="highway.primary|railway.tram">
+ <lane id="81523330#3_0" index="0" speed="27.78" length="2.20" shape="1075.91,2095.37 1076.85,2094.87"/>
+ <lane id="81523330#3_1" index="1" speed="27.78" length="2.20" shape="1077.45,2098.29 1080.40,2096.73"/>
+ </edge>
+ <edge id="81523330#4" from="1243159116" to="950094494" priority="15" type="highway.primary|railway.tram" shape="1082.77,2097.34 1111.32,2082.24 1273.52,1996.44 1294.72,1985.59">
+ <lane id="81523330#4_0" index="0" speed="27.78" length="237.88" shape="1079.13,2093.67 1109.01,2077.87 1271.21,1992.07 1289.55,1982.68"/>
+ <lane id="81523330#4_1" index="1" speed="27.78" length="237.88" shape="1080.67,2096.58 1110.55,2080.78 1272.75,1994.98 1291.05,1985.61"/>
+ </edge>
+ <edge id="81523332#0" from="435668516" to="452425486" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81523332#0_0" index="0" speed="22.22" length="5.29" shape="1340.40,1951.05 1344.91,1948.28"/>
+ </edge>
+ <edge id="81523332#1" from="452425486" to="435668513" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81523332#1_0" index="0" speed="22.22" length="60.39" shape="1353.35,1943.44 1406.61,1914.97"/>
+ </edge>
+ <edge id="81523343" from="428097664" to="320879142" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81523343_0" index="0" speed="22.22" length="30.21" shape="1349.76,1980.88 1323.16,1995.18"/>
+ </edge>
+ <edge id="81547611" from="1168929388" to="1246731541" priority="15" type="railway.tram" spreadType="center">
+ <lane id="81547611_0" index="0" allow="cityrail" speed="27.78" length="4.22" shape="1192.60,1032.86 1196.36,1030.93"/>
+ </edge>
+ <edge id="81672207#0" from="951739771" to="438042379" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81672207#0_0" index="0" speed="22.22" length="16.87" shape="1143.21,1662.57 1127.25,1657.08"/>
+ </edge>
+ <edge id="81672207#1" from="438042379" to="1719223322" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="81672207#1_0" index="0" speed="22.22" length="101.03" shape="1122.96,1652.07 1075.84,1562.70"/>
+ </edge>
+ <edge id="81672207#2" from="1719223322" to="538265870" priority="5" type="highway.unclassified" spreadType="center" shape="1073.63,1558.52 1027.08,1468.30 1018.84,1457.01 1008.66,1439.13 1001.11,1419.10 914.26,1251.43 903.83,1226.83">
+ <lane id="81672207#2_0" index="0" speed="22.22" length="364.97" shape="1071.45,1554.29 1027.08,1468.30 1018.84,1457.01 1008.66,1439.13 1001.11,1419.10 914.26,1251.43 905.12,1229.86"/>
+ </edge>
+ <edge id="81672209" from="951739458" to="1457699222" priority="2" type="highway.service">
+ <lane id="81672209_0" index="0" allow="delivery" speed="5.56" length="51.26" shape="849.45,1323.71 894.94,1300.07"/>
+ </edge>
+ <edge id="81672213" from="951739420" to="951739568" priority="2" type="highway.service">
+ <lane id="81672213_0" index="0" allow="delivery" speed="5.56" length="45.55" shape="841.17,1308.35 881.19,1286.59"/>
+ </edge>
+ <edge id="81672214" from="951739766" to="951739549" priority="2" type="highway.service">
+ <lane id="81672214_0" index="0" allow="delivery" speed="5.56" length="39.70" shape="833.42,1293.89 868.28,1274.90"/>
+ </edge>
+ <edge id="81672216#0" from="951739693" to="1457699220" priority="2" type="highway.service" shape="818.06,1275.29 820.39,1279.62 821.49,1281.69 823.20,1284.88">
+ <lane id="81672216#0_0" index="0" allow="delivery" speed="5.56" length="2.91" shape="821.02,1277.30 821.84,1278.84 822.39,1279.87"/>
+ </edge>
+ <edge id="81672216#1" from="1457699220" to="951739766" priority="2" type="highway.service">
+ <lane id="81672216#1_0" index="0" allow="delivery" speed="5.56" length="4.98" shape="826.87,1288.25 829.22,1292.64"/>
+ </edge>
+ <edge id="81672216#2" from="951739766" to="951739420" priority="2" type="highway.service">
+ <lane id="81672216#2_0" index="0" allow="delivery" speed="5.56" length="6.90" shape="833.71,1301.01 836.96,1307.09"/>
+ </edge>
+ <edge id="81672216#3" from="951739420" to="951739458" priority="2" type="highway.service">
+ <lane id="81672216#3_0" index="0" allow="delivery" speed="5.56" length="7.93" shape="841.45,1315.47 845.19,1322.45"/>
+ </edge>
+ <edge id="81672216#4" from="951739458" to="951739511" priority="2" type="highway.service">
+ <lane id="81672216#4_0" index="0" allow="delivery" speed="5.56" length="7.35" shape="849.68,1330.83 853.15,1337.31"/>
+ </edge>
+ <edge id="81672216#5" from="951739511" to="1457699223" priority="2" type="highway.service" shape="853.92,1342.24 861.87,1357.10 915.18,1328.32 907.70,1314.17">
+ <lane id="81672216#5_0" index="0" allow="delivery" speed="5.56" length="77.34" shape="857.63,1345.68 862.54,1354.86 912.95,1327.64 908.45,1319.13"/>
+ </edge>
+ <edge id="81672216#6" from="1457699223" to="1457699222" priority="2" type="highway.service">
+ <lane id="81672216#6_0" index="0" allow="delivery" speed="5.56" length="7.25" shape="904.06,1310.72 900.73,1304.28"/>
+ </edge>
+ <edge id="81672216#7" from="1457699222" to="951739568" priority="2" type="highway.service" shape="900.01,1299.30 896.33,1292.74 887.31,1285.14">
+ <lane id="81672216#7_0" index="0" allow="delivery" speed="5.56" length="10.14" shape="896.20,1295.87 895.04,1293.81 889.09,1288.80"/>
+ </edge>
+ <edge id="81672216#8" from="951739568" to="951739549" priority="2" type="highway.service">
+ <lane id="81672216#8_0" index="0" allow="delivery" speed="5.56" length="7.53" shape="881.71,1282.28 876.14,1277.21"/>
+ </edge>
+ <edge id="81672216#9" from="951739549" to="1457699220" priority="2" type="highway.service" shape="874.43,1273.42 862.74,1262.97 823.20,1284.88">
+ <lane id="81672216#9_0" index="0" allow="delivery" speed="5.56" length="47.64" shape="868.78,1270.58 862.51,1264.98 828.20,1284.00"/>
+ </edge>
+ <edge id="81672218" from="951739511" to="1457699223" priority="2" type="highway.service">
+ <lane id="81672218_0" index="0" allow="delivery" speed="5.56" length="51.14" shape="857.40,1338.57 902.73,1314.90"/>
+ </edge>
+ <edge id="8272412#0" from="1096401733" to="1719213509" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="8272412#0_0" index="0" speed="22.22" length="0.98" shape="834.90,973.76 835.80,973.39"/>
+ </edge>
+ <edge id="8272412#1" from="1719213509" to="538810724" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="8272412#1_0" index="0" speed="22.22" length="64.53" shape="844.56,969.17 900.95,937.81"/>
+ </edge>
+ <edge id="8272412#2" from="538810724" to="538810726" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="8272412#2_0" index="0" speed="22.22" length="71.08" shape="906.45,934.71 968.22,899.55"/>
+ </edge>
+ <edge id="8272412#3" from="538810726" to="444026917" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="8272412#3_0" index="0" speed="22.22" length="72.54" shape="973.71,896.42 1036.78,860.57"/>
+ </edge>
+ <edge id="8272412#4" from="444026917" to="1726394722" priority="5" type="highway.unclassified" spreadType="center">
+ <lane id="8272412#4_0" index="0" speed="22.22" length="10.42" shape="1042.28,857.45 1051.33,852.28"/>
+ </edge>
+ <edge id="83038920" from="966097837" to="966097830" priority="2" type="highway.service" shape="813.60,1466.57 874.94,1585.38 887.22,1579.00 828.22,1459.05">
+ <lane id="83038920_0" index="0" allow="delivery" speed="5.56" length="266.63" shape="817.25,1470.03 875.65,1583.15 885.03,1578.28 828.20,1462.74"/>
+ </edge>
+ <edge id="83038923#0" from="966097869" to="966097837" priority="2" type="highway.service" shape="746.66,1456.35 758.84,1458.25 771.08,1461.26 791.14,1469.22 799.68,1469.66 813.60,1466.57">
+ <lane id="83038923#0_0" index="0" allow="delivery" speed="5.56" length="59.92" shape="751.63,1455.46 759.10,1456.62 771.48,1459.66 791.49,1467.58 799.54,1468.00 809.33,1465.83"/>
+ </edge>
+ <edge id="83038923#1" from="966097837" to="966097830" priority="2" type="highway.service">
+ <lane id="83038923#1_0" index="0" allow="delivery" speed="5.56" length="8.37" shape="817.07,1462.92 824.52,1459.09"/>
+ </edge>
+ <edge id="83042949" from="966132131" to="966132112" priority="2" type="highway.service" spreadType="center" shape="1317.22,1386.16 1311.01,1389.57 1308.57,1391.02 1215.18,1439.28 1258.65,1527.64 1195.98,1560.66 1198.97,1566.84 1203.25,1574.78">
+ <lane id="83042949_0" index="0" allow="delivery" speed="5.56" length="293.99" shape="1314.49,1387.66 1311.01,1389.57 1308.57,1391.02 1215.18,1439.28 1258.65,1527.64 1195.98,1560.66 1198.97,1566.84 1201.76,1572.02"/>
+ </edge>
+ <edge id="83051417" from="966193812" to="966193808" priority="1" type="highway.pedestrian" shape="1382.82,1159.31 1354.64,1143.84 1319.30,1110.02 1303.82,1087.19">
+ <lane id="83051417_0" index="0" allow="pedestrian" speed="8.33" length="99.62" shape="1377.82,1158.45 1353.66,1145.18 1318.03,1111.09 1305.27,1092.26"/>
+ </edge>
+ <edge id="83051420" from="966193808" to="966193796" priority="5" type="highway.unclassified">
+ <lane id="83051420_0" index="0" speed="22.22" length="68.02" shape="1300.14,1083.53 1269.57,1022.76"/>
+ </edge>
+ <edge id="83051421#0" from="267169634" to="267169686" priority="1" type="highway.pedestrian">
+ <lane id="83051421#0_0" index="0" allow="pedestrian" speed="8.33" length="107.26" shape="1470.38,992.78 1422.05,1088.53"/>
+ </edge>
+ <edge id="83051421#1" from="267169686" to="966193812" priority="1" type="highway.pedestrian">
+ <lane id="83051421#1_0" index="0" allow="pedestrian" speed="8.33" length="60.60" shape="1414.92,1102.30 1386.53,1155.84"/>
+ </edge>
+ <edge id="83051421#2" from="966193812" to="250689186" priority="1" type="highway.pedestrian">
+ <lane id="83051421#2_0" index="0" allow="pedestrian" speed="8.33" length="63.44" shape="1382.08,1164.24 1352.36,1220.29"/>
+ </edge>
+ <edge id="83051424" from="966193814" to="966193793" priority="1" type="highway.pedestrian">
+ <lane id="83051424_0" index="0" allow="pedestrian" speed="8.33" length="13.70" shape="1416.88,1308.73 1416.89,1295.03"/>
+ </edge>
+ <edge id="83051426" from="733663071" to="250689131" priority="1" type="highway.pedestrian">
+ <lane id="83051426_0" index="0" allow="pedestrian" speed="8.33" length="71.54" shape="1451.60,1230.95 1388.78,1265.16"/>
+ </edge>
+ <edge id="83051436#0" from="966193808" to="267169690" priority="1" type="highway.pedestrian">
+ <lane id="83051436#0_0" index="0" allow="pedestrian" speed="8.33" length="85.17" shape="1307.36,1083.27 1381.36,1041.11"/>
+ </edge>
+ <edge id="83051436#1" from="267169690" to="267169634" priority="1" type="highway.pedestrian">
+ <lane id="83051436#1_0" index="0" allow="pedestrian" speed="8.33" length="88.52" shape="1389.58,1035.96 1462.68,986.03"/>
+ </edge>
+ <edge id="83051442#0" from="733663071" to="733663078" priority="1" type="highway.pedestrian" shape="1456.20,1226.57 1445.69,1217.27 1440.94,1200.45">
+ <lane id="83051442#0_0" index="0" allow="pedestrian" speed="8.33" length="20.74" shape="1450.52,1223.74 1444.24,1218.18 1440.88,1206.29"/>
+ </edge>
+ <edge id="83051442#1" from="733663078" to="441266874" priority="1" type="highway.pedestrian" shape="1440.94,1200.45 1445.67,1186.05 1456.29,1176.65">
+ <lane id="83051442#1_0" index="0" allow="pedestrian" speed="8.33" length="23.51" shape="1440.24,1197.30 1444.24,1185.11 1452.24,1178.03"/>
+ </edge>
+ <edge id="83051442#2" from="441266874" to="733663071" priority="1" type="highway.pedestrian" shape="1456.29,1176.65 1473.69,1173.99 1486.47,1179.63 1494.97,1190.78 1497.01,1204.51 1493.98,1214.58 1483.49,1225.68 1471.45,1229.56 1456.20,1226.57">
+ <lane id="83051442#2_0" index="0" allow="pedestrian" speed="8.33" length="112.74" shape="1459.91,1174.43 1473.92,1172.29 1487.52,1178.30 1496.54,1190.12 1498.70,1204.63 1495.45,1215.43 1484.40,1227.12 1471.55,1231.26 1458.51,1228.70"/>
+ </edge>
+ <edge id="83051455" from="733663078" to="441266870" priority="1" type="highway.pedestrian">
+ <lane id="83051455_0" index="0" allow="pedestrian" speed="8.33" length="70.00" shape="1436.84,1204.61 1375.61,1238.53"/>
+ </edge>
+ <edge id="83051480#0" from="257907508" to="966193793" priority="1" type="highway.pedestrian" shape="1601.46,1287.40 1478.82,1291.11 1418.55,1290.24">
+ <lane id="83051480#0_0" index="0" allow="pedestrian" speed="8.33" length="178.25" shape="1601.51,1289.05 1478.87,1292.76 1423.32,1291.96"/>
+ </edge>
+ <edge id="83051480#1" from="966193793" to="250689201" priority="1" type="highway.pedestrian">
+ <lane id="83051480#1_0" index="0" allow="pedestrian" speed="8.33" length="24.69" shape="1413.82,1291.82 1389.13,1291.47"/>
+ </edge>
+ <edge id="83051483" from="966193857" to="966193814" priority="5" type="highway.unclassified" shape="1461.49,1433.85 1445.06,1403.43 1433.51,1379.54 1426.16,1352.67 1420.20,1329.48 1418.53,1308.86">
+ <lane id="83051483_0" index="0" speed="22.22" length="131.03" shape="1458.55,1431.89 1443.60,1404.22 1431.96,1380.13 1424.57,1353.11 1418.60,1329.89 1416.90,1309.13"/>
+ </edge>
+ <edge id="83827202" from="975934874" to="975934878" priority="2" type="highway.service" spreadType="center" shape="771.01,2287.62 791.92,2446.83 794.27,2451.65 798.14,2454.02 803.73,2453.92 829.66,2440.37 912.37,2397.13 1072.47,2313.44 1156.30,2269.44">
+ <lane id="83827202_0" index="0" allow="delivery" speed="5.56" length="565.44" shape="771.50,2291.37 791.92,2446.83 794.27,2451.65 798.14,2454.02 803.73,2453.92 829.66,2440.37 912.37,2397.13 1072.47,2313.44 1152.09,2271.66"/>
+ </edge>
+
+ <tlLogic id="1168929295" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="9" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="9" state="ry"/>
+ </tlLogic>
+ <tlLogic id="1168929298" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="7" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="7" state="ry"/>
+ </tlLogic>
+ <tlLogic id="1168929308" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgGrr"/>
+ <phase duration="7" state="yyyyrr"/>
+ <phase duration="31" state="rrrGGG"/>
+ <phase duration="7" state="rrryyy"/>
+ </tlLogic>
+ <tlLogic id="1168929383" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrGggGGg"/>
+ <phase duration="9" state="rrryggyyg"/>
+ <phase duration="6" state="rrrrGGrrG"/>
+ <phase duration="9" state="rrrryyrry"/>
+ <phase duration="31" state="GGGrrrrrr"/>
+ <phase duration="9" state="yyyrrrrrr"/>
+ </tlLogic>
+ <tlLogic id="1168929398" type="static" programID="0" offset="0">
+ <phase duration="31" state="GgGr"/>
+ <phase duration="7" state="yyyr"/>
+ <phase duration="31" state="GrGg"/>
+ <phase duration="7" state="yryy"/>
+ </tlLogic>
+ <tlLogic id="1168929549" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="9" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="9" state="ry"/>
+ </tlLogic>
+ <tlLogic id="1168929558" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="9" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="9" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="9" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="1168929600" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGGrrr"/>
+ <phase duration="9" state="yyyyrrr"/>
+ <phase duration="31" state="rrrrGGG"/>
+ <phase duration="9" state="rrrryyy"/>
+ </tlLogic>
+ <tlLogic id="1168929613" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="9" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="9" state="ry"/>
+ </tlLogic>
+ <tlLogic id="1168929634" type="static" programID="0" offset="0">
+ <phase duration="31" state="GggGGgrrr"/>
+ <phase duration="9" state="yggyygrrr"/>
+ <phase duration="6" state="rGGrrGrrr"/>
+ <phase duration="9" state="ryyrryrrr"/>
+ <phase duration="31" state="rrrrrrGGG"/>
+ <phase duration="9" state="rrrrrryyy"/>
+ </tlLogic>
+ <tlLogic id="1168929657" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="9" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="9" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="9" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="1246731544" type="static" programID="0" offset="0">
+ <phase duration="31" state="GgGr"/>
+ <phase duration="9" state="yyyr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="9" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="13929752" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="9" state="y"/>
+ </tlLogic>
+ <tlLogic id="13929775" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGgrrrGGgg"/>
+ <phase duration="9" state="yyygrrryygg"/>
+ <phase duration="6" state="rrrGrrrrrGG"/>
+ <phase duration="9" state="rrryrrrrryy"/>
+ <phase duration="31" state="rrrrGGGrrrr"/>
+ <phase duration="9" state="rrrryyyrrrr"/>
+ </tlLogic>
+ <tlLogic id="1726380179" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="1726394722" type="static" programID="0" offset="0">
+ <phase duration="31" state="gGG"/>
+ <phase duration="9" state="yyy"/>
+ <phase duration="31" state="rGG"/>
+ <phase duration="9" state="ryy"/>
+ </tlLogic>
+ <tlLogic id="1726394724" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrrGGGggrrrrGGGgg"/>
+ <phase duration="9" state="rrrryyyggrrrryyygg"/>
+ <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
+ <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
+ <phase duration="31" state="GGggrrrrrGGggrrrrr"/>
+ <phase duration="9" state="yyggrrrrryyggrrrrr"/>
+ <phase duration="6" state="rrGGrrrrrrrGGrrrrr"/>
+ <phase duration="9" state="rryyrrrrrrryyrrrrr"/>
+ </tlLogic>
+ <tlLogic id="1726394726" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrrGGGggrrrrGGGgg"/>
+ <phase duration="9" state="rrrryyyggrrrryyygg"/>
+ <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
+ <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
+ <phase duration="31" state="GGggrrrrrGGggrrrrr"/>
+ <phase duration="9" state="yyggrrrrryyggrrrrr"/>
+ <phase duration="6" state="rrGGrrrrrrrGGrrrrr"/>
+ <phase duration="9" state="rryyrrrrrrryyrrrrr"/>
+ </tlLogic>
+ <tlLogic id="1913728534" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgGGr"/>
+ <phase duration="9" state="yyyyyr"/>
+ <phase duration="31" state="GGrGGg"/>
+ <phase duration="9" state="yyryyy"/>
+ </tlLogic>
+ <tlLogic id="248913154" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="9" state="y"/>
+ </tlLogic>
+ <tlLogic id="250684983" type="static" programID="0" offset="0">
+ <phase duration="31" state="GgGr"/>
+ <phase duration="7" state="yyyr"/>
+ <phase duration="31" state="GrGg"/>
+ <phase duration="7" state="yryy"/>
+ </tlLogic>
+ <tlLogic id="250685766" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="7" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="7" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="7" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="252418937" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="7" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="7" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="7" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="30406599" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGggrrrrGGGggrrrr"/>
+ <phase duration="9" state="yyyggrrrryyyggrrrr"/>
+ <phase duration="6" state="rrrGGrrrrrrrGGrrrr"/>
+ <phase duration="9" state="rrryyrrrrrrryyrrrr"/>
+ <phase duration="31" state="rrrrrGGggrrrrrGGgg"/>
+ <phase duration="9" state="rrrrryyggrrrrryygg"/>
+ <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
+ <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
+ </tlLogic>
+ <tlLogic id="427996791" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGggrrrrGGggrrrr"/>
+ <phase duration="9" state="yyggrrrryyggrrrr"/>
+ <phase duration="6" state="rrGGrrrrrrGGrrrr"/>
+ <phase duration="9" state="rryyrrrrrryyrrrr"/>
+ <phase duration="31" state="rrrrGGggrrrrGGgg"/>
+ <phase duration="9" state="rrrryyggrrrryygg"/>
+ <phase duration="6" state="rrrrrrGGrrrrrrGG"/>
+ <phase duration="9" state="rrrrrryyrrrrrryy"/>
+ </tlLogic>
+ <tlLogic id="427996792" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrrrGggGgrrrrrGGGggrrrrr"/>
+ <phase duration="9" state="rrrrryggygrrrrryyyggrrrrr"/>
+ <phase duration="6" state="rrrrrrGGrGrrrrrrrrGGrrrrr"/>
+ <phase duration="9" state="rrrrrryyryrrrrrrrryyrrrrr"/>
+ <phase duration="31" state="rrrrrrrrrrGGgggrrrrrGGGgg"/>
+ <phase duration="9" state="rrrrrrrrrryygggrrrrryyygg"/>
+ <phase duration="6" state="rrrrrrrrrrrrGGGrrrrrrrrGG"/>
+ <phase duration="9" state="rrrrrrrrrrrryyyrrrrrrrryy"/>
+ <phase duration="31" state="GGGGgrrrGrrrrrrrrrrrrrrrr"/>
+ <phase duration="9" state="yyyyyrrryrrrrrrrrrrrrrrrr"/>
+ </tlLogic>
+ <tlLogic id="438042367" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrrGggGGGg"/>
+ <phase duration="9" state="rrrryggyyyg"/>
+ <phase duration="6" state="rrrrrGGrrrG"/>
+ <phase duration="9" state="rrrrryyrrry"/>
+ <phase duration="31" state="GGGGrrrrrrr"/>
+ <phase duration="9" state="yyyyrrrrrrr"/>
+ </tlLogic>
+ <tlLogic id="438042369" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGgrrrrGgg"/>
+ <phase duration="9" state="yyygrrrrygg"/>
+ <phase duration="6" state="rrrGrrrrrGG"/>
+ <phase duration="9" state="rrryrrrrryy"/>
+ <phase duration="31" state="rrrrGGGGrrr"/>
+ <phase duration="9" state="rrrryyyyrrr"/>
+ </tlLogic>
+ <tlLogic id="438042373" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="7" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="7" state="ry"/>
+ </tlLogic>
+ <tlLogic id="438042377" type="static" programID="0" offset="0">
+ <phase duration="31" state="GG"/>
+ <phase duration="7" state="yy"/>
+ </tlLogic>
+ <tlLogic id="438042378" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="7" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="7" state="ry"/>
+ </tlLogic>
+ <tlLogic id="438042381" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGG"/>
+ <phase duration="7" state="yyy"/>
+ </tlLogic>
+ <tlLogic id="438042385" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrrr"/>
+ <phase duration="9" state="yyrrr"/>
+ <phase duration="31" state="rrGGG"/>
+ <phase duration="9" state="rryyy"/>
+ </tlLogic>
+ <tlLogic id="438042386" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGrr"/>
+ <phase duration="9" state="yyyrr"/>
+ <phase duration="31" state="rrrGG"/>
+ <phase duration="9" state="rrryy"/>
+ </tlLogic>
+ <tlLogic id="438042387" type="static" programID="0" offset="0">
+ <phase duration="31" state="Gr"/>
+ <phase duration="9" state="yr"/>
+ <phase duration="31" state="rG"/>
+ <phase duration="9" state="ry"/>
+ </tlLogic>
+ <tlLogic id="441266854" type="static" programID="0" offset="0">
+ <phase duration="31" state="GgGr"/>
+ <phase duration="9" state="yyyr"/>
+ <phase duration="31" state="GrGg"/>
+ <phase duration="9" state="yryy"/>
+ </tlLogic>
+ <tlLogic id="441266880" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="9" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="9" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="9" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="441266884" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="443089060" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="443089063" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrGGggGGGg"/>
+ <phase duration="9" state="rrryyggyyyg"/>
+ <phase duration="6" state="rrrrrGGrrrG"/>
+ <phase duration="9" state="rrrrryyrrry"/>
+ <phase duration="31" state="GGGrrrrrrrr"/>
+ <phase duration="9" state="yyyrrrrrrrr"/>
+ </tlLogic>
+ <tlLogic id="443101912" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="443101913" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="443101938" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="444026884" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGggGGGgrrr"/>
+ <phase duration="9" state="yyggyyygrrr"/>
+ <phase duration="6" state="rrGGrrrGrrr"/>
+ <phase duration="9" state="rryyrrryrrr"/>
+ <phase duration="31" state="rrrrrrrrGGG"/>
+ <phase duration="9" state="rrrrrrrryyy"/>
+ </tlLogic>
+ <tlLogic id="444026917" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="446017739" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="446017740" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrr"/>
+ <phase duration="7" state="yyrr"/>
+ <phase duration="31" state="rrGG"/>
+ <phase duration="7" state="rryy"/>
+ </tlLogic>
+ <tlLogic id="446017741" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="7" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="7" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="7" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="446017742" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGGrr"/>
+ <phase duration="9" state="yyyyrr"/>
+ <phase duration="31" state="rrrrGG"/>
+ <phase duration="9" state="rrrryy"/>
+ </tlLogic>
+ <tlLogic id="446017743" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGGrrr"/>
+ <phase duration="9" state="yyyyrrr"/>
+ <phase duration="31" state="rrrrGGG"/>
+ <phase duration="9" state="rrrryyy"/>
+ </tlLogic>
+ <tlLogic id="446017744" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrGggGGg"/>
+ <phase duration="7" state="rrryggyyg"/>
+ <phase duration="6" state="rrrrGGrrG"/>
+ <phase duration="7" state="rrrryyrry"/>
+ <phase duration="31" state="GGGrrrrrr"/>
+ <phase duration="7" state="yyyrrrrrr"/>
+ </tlLogic>
+ <tlLogic id="446017746" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGGrr"/>
+ <phase duration="9" state="yyyrr"/>
+ <phase duration="31" state="rrrGG"/>
+ <phase duration="9" state="rrryy"/>
+ </tlLogic>
+ <tlLogic id="446017747" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGrrr"/>
+ <phase duration="9" state="yyrrr"/>
+ <phase duration="31" state="rrGGG"/>
+ <phase duration="9" state="rryyy"/>
+ </tlLogic>
+ <tlLogic id="450564003" type="static" programID="0" offset="0">
+ <phase duration="31" state="GggGGgrrr"/>
+ <phase duration="7" state="yggyygrrr"/>
+ <phase duration="6" state="rGGrrGrrr"/>
+ <phase duration="7" state="ryyrryrrr"/>
+ <phase duration="31" state="rrrrrrGGG"/>
+ <phase duration="7" state="rrrrrryyy"/>
+ </tlLogic>
+ <tlLogic id="452425502" type="static" programID="0" offset="0">
+ <phase duration="31" state="GGgrrrGgg"/>
+ <phase duration="7" state="yygrrrygg"/>
+ <phase duration="6" state="rrGrrrrGG"/>
+ <phase duration="7" state="rryrrrryy"/>
+ <phase duration="31" state="rrrGGGrrr"/>
+ <phase duration="7" state="rrryyyrrr"/>
+ </tlLogic>
+ <tlLogic id="538265860" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="538265866" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="538810722" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="566579336" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="566579338" type="static" programID="0" offset="0">
+ <phase duration="31" state="G"/>
+ <phase duration="7" state="y"/>
+ </tlLogic>
+ <tlLogic id="719463587" type="static" programID="0" offset="0">
+ <phase duration="31" state="GggGGgrrr"/>
+ <phase duration="7" state="yggyygrrr"/>
+ <phase duration="6" state="rGGrrGrrr"/>
+ <phase duration="7" state="ryyrryrrr"/>
+ <phase duration="31" state="rrrrrrGGG"/>
+ <phase duration="7" state="rrrrrryyy"/>
+ </tlLogic>
+ <tlLogic id="719464017" type="static" programID="0" offset="0">
+ <phase duration="31" state="GgGr"/>
+ <phase duration="1" state="yyyr"/>
+ <phase duration="31" state="GrGg"/>
+ <phase duration="1" state="yryy"/>
+ </tlLogic>
+ <tlLogic id="767282288" type="static" programID="0" offset="0">
+ <phase duration="31" state="rrrrGGGggrrrrGGGgg"/>
+ <phase duration="9" state="rrrryyyggrrrryyygg"/>
+ <phase duration="6" state="rrrrrrrGGrrrrrrrGG"/>
+ <phase duration="9" state="rrrrrrryyrrrrrrryy"/>
+ <phase duration="31" state="GGggrrrrrGGggrrrrr"/>
+ <phase duration="9" state="yyggrrrrryyggrrrrr"/>
+ <phase duration="6" state="rrGGrrrrrrrGGrrrrr"/>
+ <phase duration="9" state="rryyrrrrrrryyrrrrr"/>
+ </tlLogic>
+
+ <junction id="1096401706" type="unregulated" x="683.42" y="791.07" incLanes="42976408#2_0" intLanes="" shape="681.85,791.36 685.00,790.78">
+ </junction>
+ <junction id="1096401708" type="unregulated" x="717.57" y="773.34" incLanes="" intLanes="" shape="716.62,774.63 718.52,772.05">
+ </junction>
+ <junction id="1096401733" type="priority" x="832.01" y="974.96" incLanes="154500706#3_0" intLanes=":1096401733_0_0 :1096401733_1_0" shape="831.78,978.46 834.71,977.19 835.51,975.24 834.28,972.29 831.40,971.96 829.06,974.14">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1168929269" type="priority" x="1187.31" y="1082.11" incLanes="154844489#2_0 154844483#2_0 154844483#2_1" intLanes=":1168929269_0_0 :1168929269_1_0 :1168929269_2_0 :1168929269_3_0 :1168929269_4_0" shape="1185.96,1086.54 1191.72,1083.53 1192.28,1079.75 1190.12,1077.38 1188.31,1077.07 1182.57,1080.11 1182.12,1083.34 1183.97,1085.97">
+ <request index="0" response="01100" foes="01100" cont="0"/>
+ <request index="1" response="11100" foes="11100" cont="0"/>
+ <request index="2" response="00000" foes="00011" cont="0"/>
+ <request index="3" response="00000" foes="00011" cont="0"/>
+ <request index="4" response="00000" foes="00010" cont="0"/>
+ </junction>
+ <junction id="1168929272" type="priority" x="1139.69" y="1049.23" incLanes="154844465#2_0" intLanes=":1168929272_0_0 :1168929272_1_0" shape="1143.02,1045.40 1140.06,1044.17 1138.76,1044.24 1135.96,1045.78 1138.08,1049.13 1141.23,1049.68">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1168929295" type="traffic_light" x="1157.89" y="1085.88" incLanes="58770833_0 154844461#1_0" intLanes=":1168929295_0_0 :1168929295_1_0" shape="1159.01,1091.27 1161.82,1089.74 1162.57,1088.73 1163.67,1085.69 1158.81,1084.54 1157.47,1087.44">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="1168929298" type="traffic_light" x="822.13" y="965.73" incLanes="42976407#2_0 154500706#2_0" intLanes=":1168929298_0_0 :1168929298_1_0" shape="823.02,968.21 824.76,965.52 821.80,960.46 818.68,961.40 817.96,962.24 816.62,965.23">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="1168929308" type="traffic_light" x="781.15" y="985.59" incLanes="-37638470#0_0 37638426#1_0" intLanes=":1168929308_0_0 :1168929308_1_0 :1168929308_6_0 :1168929308_3_0 :1168929308_4_0 :1168929308_5_0" shape="783.82,982.37 780.77,981.42 776.47,979.72 774.45,982.20 774.13,983.37 775.11,989.80 779.49,990.64 782.71,991.05">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="0"/>
+ <request index="5" response="000010" foes="000010" cont="0"/>
+ </junction>
+ <junction id="1168929310" type="priority" x="1139.29" y="1064.21" incLanes="154844470#1_0 111549913#6_0" intLanes=":1168929310_0_0 :1168929310_1_0 :1168929310_2_0 :1168929310_3_0" shape="1138.70,1067.97 1141.79,1067.08 1143.49,1063.56 1141.85,1060.81 1140.38,1060.09 1137.20,1060.50 1135.49,1064.37 1136.96,1067.21">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="1168929324" type="priority" x="1198.95" y="1050.22" incLanes="170594822#3_0 170594822#3_1 154844487#1_0" intLanes=":1168929324_0_0 :1168929324_1_0 :1168929324_2_0 :1168929324_3_0" shape="1197.96,1054.74 1201.13,1054.30 1204.01,1050.87 1200.54,1045.37 1198.64,1044.81 1195.53,1045.72 1194.84,1050.62 1196.36,1053.44">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1168929349" type="priority" x="827.34" y="1010.48" incLanes="160587552#1_0 122301994#1_0 122301994#1_1 122301994#1_2" intLanes=":1168929349_0_0 :1168929349_1_0 :1168929349_2_0 :1168929349_3_0 :1168929349_4_0 :1168929349_5_0" shape="824.66,1015.96 833.36,1011.46 832.90,1005.85 830.64,1003.50 829.06,1003.41 820.46,1008.10 820.95,1012.79 822.72,1015.46">
+ <request index="0" response="011100" foes="011100" cont="0"/>
+ <request index="1" response="111100" foes="111100" cont="0"/>
+ <request index="2" response="000000" foes="000011" cont="0"/>
+ <request index="3" response="000000" foes="000011" cont="0"/>
+ <request index="4" response="000000" foes="000011" cont="0"/>
+ <request index="5" response="000000" foes="000010" cont="0"/>
+ </junction>
+ <junction id="1168929367" type="priority" x="1182.95" y="1030.19" incLanes="154844467_0" intLanes=":1168929367_0_0 :1168929367_1_0" shape="1185.82,1033.80 1187.45,1031.01 1187.49,1029.50 1185.93,1026.70 1184.14,1031.28 1181.50,1029.47">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1168929382" type="priority" x="1148.91" y="1034.59" incLanes="166603397#2_0 166603397#2_1 154844465#4_0" intLanes=":1168929382_0_0 :1168929382_1_0 :1168929382_2_0 :1168929382_3_0 :1168929382_4_0" shape="1148.10,1040.08 1153.87,1037.07 1154.09,1032.77 1152.01,1030.31 1150.06,1029.82 1144.32,1032.86 1144.01,1037.77 1146.43,1039.88">
+ <request index="0" response="00000" foes="11000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="10000" cont="0"/>
+ <request index="3" response="00011" foes="00011" cont="0"/>
+ <request index="4" response="00111" foes="00111" cont="0"/>
+ </junction>
+ <junction id="1168929383" type="traffic_light" x="1142.17" y="1071.90" incLanes="154844470#0_0 149868584#4_0 149868584#4_1 -149868584#5_0 -149868584#5_1" intLanes=":1168929383_0_0 :1168929383_1_0 :1168929383_9_0 :1168929383_3_0 :1168929383_4_0 :1168929383_10_0 :1168929383_6_0 :1168929383_7_0 :1168929383_11_0" shape="1145.62,1079.36 1148.35,1077.62 1148.92,1075.61 1142.47,1064.21 1140.82,1063.76 1137.80,1064.81 1136.76,1067.45 1143.23,1078.84">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="000000000" foes="011011000" cont="0"/>
+ <request index="2" response="000000000" foes="010111000" cont="1"/>
+ <request index="3" response="000000111" foes="100000111" cont="0"/>
+ <request index="4" response="011000110" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000010" foes="000010010" cont="0"/>
+ <request index="7" response="000000110" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="1168929385" type="priority" x="1159.04" y="1028.67" incLanes="170590352_0 170590352_1 154844478_0" intLanes=":1168929385_0_0 :1168929385_1_0 :1168929385_2_0 :1168929385_3_0 :1168929385_4_0" shape="1157.52,1032.75 1163.27,1029.71 1162.80,1029.25 1161.91,1026.17 1160.36,1024.22 1154.62,1027.27 1153.97,1029.25 1155.06,1032.28">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="1168929388" type="priority" x="1189.37" y="1034.51" incLanes="154844473_0 111863096#4_0" intLanes=":1168929388_0_0 :1168929388_1_0 :1168929388_2_0 :1168929388_3_0" shape="1190.69,1038.25 1193.02,1036.06 1193.33,1034.28 1191.87,1031.43 1187.30,1030.89 1185.34,1033.45 1185.25,1035.12 1186.90,1037.86">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1168929398" type="traffic_light" x="806.50" y="1035.63" incLanes="-179692877#1_0 179692877#0_0" intLanes=":1168929398_0_0 :1168929398_4_0 :1168929398_2_0 :1168929398_5_0" shape="809.71,1036.17 803.37,1034.74 803.25,1035.44 809.71,1036.17">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1168929459" type="priority" x="1197.84" y="1068.30" incLanes="154844477_0" intLanes=":1168929459_0_0 :1168929459_1_0" shape="1198.48,1073.04 1201.32,1071.57 1199.95,1066.74 1196.89,1065.65 1194.26,1071.47 1197.07,1073.02">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1168929523" type="priority" x="1147.33" y="1078.90" incLanes="154844461#3_0 103851602#4_0" intLanes=":1168929523_0_0 :1168929523_1_0 :1168929523_2_0 :1168929523_3_0" shape="1149.16,1082.58 1151.25,1080.15 1151.42,1078.44 1149.85,1075.65 1146.43,1075.40 1144.01,1077.48 1143.69,1079.38 1145.58,1081.99">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1168929542" type="priority" x="836.39" y="988.26" incLanes="160587552#0_0" intLanes=":1168929542_0_0 :1168929542_1_0" shape="838.28,995.60 841.14,994.17 837.71,986.29 834.54,986.77 833.89,995.60 837.19,995.70">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1168929546" type="priority" x="1162.36" y="1027.71" incLanes="38319548#14_0 -38319548#15_0 154844484#0_0" intLanes=":1168929546_0_0 :1168929546_1_0 :1168929546_2_0 :1168929546_3_0 :1168929546_4_0 :1168929546_5_0 :1168929546_6_0 :1168929546_7_0 :1168929546_8_0" shape="1161.56,1033.12 1167.29,1030.07 1168.08,1028.61 1167.64,1025.37 1164.30,1024.40 1158.53,1027.40 1158.60,1027.13 1159.48,1030.20">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1168929549" type="traffic_light" x="1199.80" y="1058.66" incLanes="37772595#3_0 154844481_0" intLanes=":1168929549_0_0 :1168929549_1_0" shape="1202.55,1058.94 1200.97,1056.16 1201.42,1057.07 1198.22,1057.00 1197.83,1060.58 1200.97,1061.16">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="1168929558" type="traffic_light" x="1182.30" y="1085.09" incLanes="-160587538#6_0 -160587538#6_1 154844482_0 160587538#5_0 160587538#5_1" intLanes=":1168929558_0_0 :1168929558_1_0 :1168929558_9_0 :1168929558_3_0 :1168929558_4_0 :1168929558_5_0 :1168929558_6_0 :1168929558_7_0 :1168929558_10_0" shape="1177.21,1089.46 1188.80,1083.36 1184.40,1085.72 1182.80,1082.95 1187.42,1080.73 1175.80,1086.78 1180.28,1084.23 1181.58,1087.16">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="1168929562" type="priority" x="1176.41" y="1087.16" incLanes="154844485#1_0 154844485#1_1 154844486_0" intLanes=":1168929562_0_0 :1168929562_1_0 :1168929562_2_0 :1168929562_3_0 :1168929562_4_0" shape="1175.25,1091.96 1181.01,1088.94 1181.72,1087.09 1180.88,1083.97 1177.21,1081.68 1171.45,1084.70 1170.65,1086.20 1171.01,1089.38">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="1168929585" type="priority" x="1175.02" y="1027.50" incLanes="37640550#5_0 154844484#1_0" intLanes=":1168929585_0_0 :1168929585_1_0" shape="1175.61,1029.25 1176.25,1026.12 1174.45,1022.90 1171.60,1024.37 1170.79,1025.60 1170.56,1028.79">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="1168929600" type="traffic_light" x="801.49" y="963.16" incLanes="122301994#0_0 122301994#0_1 122301994#0_2 154500706#1_0" intLanes=":1168929600_0_0 :1168929600_1_0 :1168929600_2_0 :1168929600_3_0 :1168929600_4_0 :1168929600_7_0 :1168929600_6_0" shape="799.70,970.12 808.30,965.42 809.08,963.98 808.33,960.83 804.25,957.77 795.50,962.19 794.78,964.07 796.01,967.15">
+ <request index="0" response="0000000" foes="0010000" cont="0"/>
+ <request index="1" response="0000000" foes="1110000" cont="0"/>
+ <request index="2" response="0000000" foes="1110000" cont="0"/>
+ <request index="3" response="0000000" foes="1110000" cont="0"/>
+ <request index="4" response="0001111" foes="0001111" cont="0"/>
+ <request index="5" response="0001110" foes="0001110" cont="1"/>
+ <request index="6" response="0001110" foes="0001110" cont="0"/>
+ </junction>
+ <junction id="1168929613" type="traffic_light" x="1138.55" y="1058.45" incLanes="154844465#0_0 37772596#3_0" intLanes=":1168929613_0_0 :1168929613_1_0" shape="1137.45,1062.47 1140.63,1062.06 1140.21,1056.06 1137.01,1055.99 1134.41,1058.89 1135.95,1061.70">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="1168929634" type="traffic_light" x="1153.40" y="1031.30" incLanes="-160587538#2_0 -160587538#2_1 160587538#1_0 160587538#1_1 101272431_0" intLanes=":1168929634_0_0 :1168929634_1_0 :1168929634_9_0 :1168929634_3_0 :1168929634_4_0 :1168929634_10_0 :1168929634_6_0 :1168929634_7_0 :1168929634_8_0" shape="1148.45,1035.85 1159.83,1029.37 1155.45,1032.09 1154.05,1029.21 1158.52,1026.95 1146.89,1032.99 1151.26,1030.81 1153.04,1033.47">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1168929652" type="priority" x="765.18" y="988.02" incLanes="166576461#1_0 37638470#0_0 -37638470#1_0" intLanes=":1168929652_0_0 :1168929652_1_0 :1168929652_2_0 :1168929652_3_0 :1168929652_4_0 :1168929652_9_0 :1168929652_6_0 :1168929652_10_0 :1168929652_11_0" shape="767.10,995.62 772.17,991.56 772.72,990.16 771.74,983.74 761.23,985.43 762.37,991.83">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1168929657" type="traffic_light" x="1195.46" y="1041.76" incLanes="149868584#2_0 149868584#2_1 154844487#0_0 -149868584#3_0 -149868584#3_1" intLanes=":1168929657_0_0 :1168929657_1_0 :1168929657_9_0 :1168929657_3_0 :1168929657_4_0 :1168929657_10_0 :1168929657_6_0 :1168929657_11_0 :1168929657_12_0" shape="1197.21,1049.98 1200.15,1048.62 1200.93,1046.21 1194.54,1034.77 1191.54,1034.48 1188.86,1036.30 1188.58,1038.13 1195.03,1049.53">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="1"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="1168929659" type="priority" x="1192.17" y="1077.69" incLanes="38319548#11_0 154844489#1_0 -38319548#12_0" intLanes=":1168929659_0_0 :1168929659_1_0 :1168929659_2_0 :1168929659_3_0 :1168929659_4_0 :1168929659_5_0 :1168929659_6_0 :1168929659_7_0 :1168929659_8_0" shape="1191.50,1082.47 1196.86,1078.81 1194.22,1077.73 1191.78,1075.67 1193.24,1073.59 1187.94,1077.36 1187.39,1079.88 1189.54,1082.24">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1168929661" type="right_before_left" x="1473.76" y="1584.23" incLanes="38319548#8_0 -101272434_0 -38319548#9_0" intLanes=":1168929661_0_0 :1168929661_1_0 :1168929661_2_0 :1168929661_3_0 :1168929661_4_0 :1168929661_5_0 :1168929661_6_0 :1168929661_7_0 :1168929661_8_0" shape="1471.34,1588.31 1478.87,1586.96 1479.51,1584.95 1476.56,1579.16 1474.45,1578.55 1468.69,1581.57">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1185414550" type="unregulated" x="776.92" y="288.67" incLanes="" intLanes="" shape="774.02,290.13 779.83,287.21">
+ </junction>
+ <junction id="1212941056" type="priority" x="733.06" y="1656.91" incLanes="37942667#1_0 105251811#0_0" intLanes=":1212941056_0_0 :1212941056_1_0 :1212941056_2_0 :1212941056_3_0" shape="736.79,1658.12 736.46,1654.94 735.20,1653.62 732.04,1653.11 729.36,1655.69 729.69,1658.87 730.98,1660.20 734.14,1660.65">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1212941077" type="priority" x="731.83" y="1665.57" incLanes="59159259#0_0 37942667#3_0" intLanes=":1212941077_0_0 :1212941077_1_0 :1212941077_2_0 :1212941077_3_0" shape="734.48,1668.55 735.81,1665.64 733.93,1662.18 730.76,1661.73 729.19,1662.59 727.85,1665.50 729.74,1668.96 732.90,1669.41">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1212960877" type="priority" x="823.93" y="1630.44" incLanes="108329425#2_0 -105254618_0 -108329425#3_0" intLanes=":1212960877_0_0 :1212960877_9_0 :1212960877_10_0 :1212960877_3_0 :1212960877_4_0 :1212960877_5_0 :1212960877_6_0 :1212960877_7_0 :1212960877_11_0" shape="823.20,1636.15 828.99,1633.19 829.64,1631.17 826.68,1625.38 824.66,1624.73 818.87,1627.70">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="001000011" foes="101000011" cont="0"/>
+ <request index="5" response="010000010" foes="010000010" cont="0"/>
+ <request index="6" response="000000000" foes="000011110" cont="0"/>
+ <request index="7" response="000000000" foes="000100010" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1212960879" type="priority" x="828.53" y="1639.42" incLanes="108329425#0_0 -105254616#0_0 -108329425#1_0" intLanes=":1212960879_0_0 :1212960879_9_0 :1212960879_10_0 :1212960879_3_0 :1212960879_4_0 :1212960879_5_0 :1212960879_6_0 :1212960879_7_0 :1212960879_11_0" shape="828.05,1645.61 833.83,1642.65 834.57,1640.85 832.53,1634.67 829.98,1635.13 824.19,1638.09">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1213368991" type="priority" x="732.54" y="1660.53" incLanes="105283535#0_0 37942667#2_0 -105283535#1_0" intLanes=":1213368991_0_0 :1213368991_1_0 :1213368991_9_0 :1213368991_3_0 :1213368991_4_0 :1213368991_5_0 :1213368991_6_0 :1213368991_7_0 :1213368991_10_0" shape="735.34,1664.12 736.08,1657.66 734.64,1657.13 731.48,1656.68 729.79,1656.92 729.01,1663.38 730.29,1665.04 733.46,1665.49">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="1224074526" type="priority" x="562.74" y="1065.06" incLanes="149819232#3_0" intLanes=":1224074526_0_0" shape="562.73,1065.01 562.24,1061.85 563.24,1068.27 562.75,1065.11">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1224074527" type="priority" x="606.54" y="1150.64" incLanes="-149819227#0_0" intLanes=":1224074527_0_0" shape="606.52,1150.59 605.07,1147.74 608.01,1153.54 606.56,1150.68">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1224074532" type="priority" x="687.18" y="1109.42" incLanes="-149819227#3_0 -149819220_0 149819227#2_0" intLanes=":1224074532_0_0 :1224074532_9_0 :1224074532_10_0 :1224074532_3_0 :1224074532_4_0 :1224074532_5_0 :1224074532_6_0 :1224074532_7_0 :1224074532_11_0" shape="692.45,1110.86 690.10,1104.80 687.82,1103.67 682.07,1106.71 681.44,1108.72 684.42,1114.50">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1224074533" type="priority" x="786.35" y="1087.09" incLanes="179917803#1_0 37973571#0_0" intLanes=":1224074533_0_0 :1224074533_4_0 :1224074533_2_0 :1224074533_3_0" shape="794.46,1085.63 793.30,1082.65 781.25,1084.39 781.97,1090.85 782.99,1092.11 786.02,1093.12">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1224074534" type="priority" x="779.72" y="1087.83" incLanes="-179917803#1_0 -166576461#0_0 179917803#0_0" intLanes=":1224074534_0_0 :1224074534_9_0 :1224074534_10_0 :1224074534_3_0 :1224074534_4_0 :1224074534_5_0 :1224074534_6_0 :1224074534_7_0 :1224074534_11_0" shape="785.82,1090.42 785.10,1083.96 783.85,1082.65 777.43,1081.61 775.40,1085.34 776.60,1091.73">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1224074535" type="priority" x="656.11" y="1050.50" incLanes="149819220_0 149819232#0_0 -149819232#1_0" intLanes=":1224074535_0_0 :1224074535_1_0 :1224074535_2_0 :1224074535_3_0 :1224074535_4_0 :1224074535_9_0 :1224074535_6_0 :1224074535_10_0 :1224074535_11_0" shape="656.05,1057.36 661.80,1054.33 662.59,1052.77 661.58,1046.35 651.83,1047.87 652.83,1054.30">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1224080660" type="priority" x="662.05" y="1329.66" incLanes="-106366774_0 37973568#0_0" intLanes=":1224080660_0_0 :1224080660_4_0 :1224080660_2_0 :1224080660_3_0" shape="667.02,1328.69 665.44,1325.91 663.44,1325.32 657.68,1328.33 657.17,1330.58 658.74,1333.37">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1224080662" type="priority" x="630.37" y="1226.05" incLanes="106366773_0" intLanes=":1224080662_0_0" shape="631.14,1227.45 629.59,1224.66 631.13,1227.46">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1224080669" type="priority" x="521.64" y="1031.63" incLanes="160584984_0 37638470#1_0 -37638470#2_0" intLanes=":1224080669_0_0 :1224080669_1_0 :1224080669_2_0 :1224080669_3_0 :1224080669_4_0 :1224080669_9_0 :1224080669_6_0 :1224080669_10_0 :1224080669_11_0" shape="521.43,1038.35 527.21,1035.38 528.01,1033.78 526.84,1027.38 517.21,1029.13 518.37,1035.53">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1224080675" type="unregulated" x="606.29" y="1238.66" incLanes="" intLanes="" shape="607.03,1240.08 605.55,1237.24">
+ </junction>
+ <junction id="1224080676" type="priority" x="508.14" y="1033.93" incLanes="106366774_0" intLanes=":1224080676_0_0" shape="508.19,1033.91 511.06,1032.51 505.22,1035.36 508.10,1033.96">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1224091971" type="priority" x="619.60" y="1056.19" incLanes="-106367427#0_0 149819232#2_0 -149819232#3_0" intLanes=":1224091971_0_0 :1224091971_1_0 :1224091971_2_0 :1224091971_3_0 :1224091971_4_0 :1224091971_9_0 :1224091971_6_0 :1224091971_10_0 :1224091971_11_0" shape="619.43,1063.00 625.22,1060.05 626.02,1058.48 625.02,1052.06 615.30,1053.58 616.30,1060.00">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1228499901" type="unregulated" x="352.02" y="2118.23" incLanes="" intLanes="" shape="352.34,2119.79 351.69,2116.66">
+ </junction>
+ <junction id="1228499918" type="priority" x="716.41" y="2150.86" incLanes="81394192#0_0 -106836308#0_0" intLanes=":1228499918_0_0 :1228499918_1_0 :1228499918_2_0 :1228499918_3_0" shape="715.51,2155.80 718.68,2155.34 717.31,2145.94 714.14,2146.40 712.84,2148.12 713.81,2154.54">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0000" foes="0100" cont="0"/>
+ <request index="2" response="0010" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1228499925" type="priority" x="368.82" y="2201.27" incLanes="106836308#2_0" intLanes=":1228499925_0_0" shape="368.81,2201.22 368.36,2198.05 369.28,2204.48 368.83,2201.31">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1228499945" type="priority" x="700.97" y="2044.99" incLanes="81394192#1_0 106836317#2_0" intLanes=":1228499945_0_0 :1228499945_1_0 :1228499945_2_0 :1228499945_3_0" shape="699.85,2048.39 703.02,2047.92 704.37,2045.99 703.79,2042.84 702.10,2041.63 698.93,2042.09 697.51,2044.07 698.16,2047.21">
+ <request index="0" response="0000" foes="1100" cont="0"/>
+ <request index="1" response="0000" foes="1000" cont="0"/>
+ <request index="2" response="0001" foes="0001" cont="0"/>
+ <request index="3" response="0011" foes="0011" cont="0"/>
+ </junction>
+ <junction id="1228499957" type="priority" x="626.69" y="2164.66" incLanes="-107066313#5_0 106836308#1_0 107066313#4_0 -106836308#2_0" intLanes=":1228499957_0_0 :1228499957_1_0 :1228499957_16_0 :1228499957_17_0 :1228499957_4_0 :1228499957_5_0 :1228499957_6_0 :1228499957_7_0 :1228499957_8_0 :1228499957_9_0 :1228499957_18_0 :1228499957_19_0 :1228499957_12_0 :1228499957_13_0 :1228499957_14_0 :1228499957_15_0" shape="627.58,2171.91 633.01,2168.34 633.66,2166.85 632.66,2160.43 625.98,2157. [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1228499992" type="priority" x="568.86" y="2072.13" incLanes="-107066313#4_0 107066313#3_0 106836317#0_0" intLanes=":1228499992_0_0 :1228499992_9_0 :1228499992_10_0 :1228499992_3_0 :1228499992_4_0 :1228499992_11_0 :1228499992_6_0 :1228499992_7_0 :1228499992_8_0" shape="568.45,2077.61 573.96,2074.16 574.63,2072.59 573.99,2069.45 569.21,2066.64 563.73,2070.13 563.07,2071.70 563.72,2074.84">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1231011197" type="priority" x="713.44" y="2042.67" incLanes="130443629#6_0 -130443629#7_0 106836317#3_0" intLanes=":1231011197_0_0 :1231011197_6_0 :1231011197_2_0 :1231011197_7_0 :1231011197_4_0 :1231011197_5_0" shape="710.67,2046.34 717.11,2045.46 716.27,2039.32 709.83,2040.19 708.40,2041.98 708.99,2045.13">
+ <request index="0" response="000000" foes="111000" cont="0"/>
+ <request index="1" response="100100" foes="100100" cont="1"/>
+ <request index="2" response="000000" foes="100010" cont="0"/>
+ <request index="3" response="010001" foes="010001" cont="1"/>
+ <request index="4" response="000001" foes="001001" cont="0"/>
+ <request index="5" response="000101" foes="000111" cont="0"/>
+ </junction>
+ <junction id="1232169474" type="priority" x="664.64" y="2158.71" incLanes="106836308#0_0 107166846#5_0 -106836308#1_0" intLanes=":1232169474_0_0 :1232169474_1_0 :1232169474_2_0 :1232169474_3_0 :1232169474_4_0 :1232169474_5_0 :1232169474_6_0 :1232169474_7_0 :1232169474_8_0" shape="669.56,2161.25 668.59,2154.83 666.63,2153.08 660.31,2154.59 659.18,2156.28 660.19,2162.70">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1232172714" type="priority" x="661.41" y="1679.69" incLanes="-38027665#3_0 107167209#1_0 38027665#2_0" intLanes=":1232172714_0_0 :1232172714_9_0 :1232172714_10_0 :1232172714_3_0 :1232172714_4_0 :1232172714_5_0 :1232172714_6_0 :1232172714_7_0 :1232172714_11_0" shape="665.60,1683.58 666.54,1677.15 665.26,1675.36 658.82,1674.51 657.14,1675.78 656.32,1682.86">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1232172723" type="priority" x="668.83" y="1623.85" incLanes="43684741#1_0 -43684741#2_0 -107167209#0_0" intLanes=":1232172723_0_0 :1232172723_1_0 :1232172723_9_0 :1232172723_3_0 :1232172723_10_0 :1232172723_11_0 :1232172723_6_0 :1232172723_7_0 :1232172723_8_0" shape="672.55,1630.55 676.35,1625.28 667.94,1619.20 664.13,1624.47 664.69,1630.30 671.13,1631.16">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="000000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="1"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000010" foes="000100010" cont="0"/>
+ <request index="7" response="000011010" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1233612841" type="priority" x="267.14" y="1604.67" incLanes="-107028581#0_0" intLanes=":1233612841_0_0" shape="267.14,1604.62 267.50,1601.44 266.77,1607.90 267.13,1604.72">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1239242543" type="priority" x="665.02" y="1652.48" incLanes="-107028581#2_0 107167209#0_0 107028581#1_0 -107167209#1_0" intLanes=":1239242543_0_0 :1239242543_1_0 :1239242543_16_0 :1239242543_17_0 :1239242543_4_0 :1239242543_5_0 :1239242543_6_0 :1239242543_7_0 :1239242543_8_0 :1239242543_9_0 :1239242543_18_0 :1239242543_19_0 :1239242543_12_0 :1239242543_13_0 :1239242543_14_0 :1239242543_15_0" shape="669.41,1656.27 670.17,1649.81 668.87,1648.15 662.43,1647.29 660.63,1648. [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1239242544" type="priority" x="640.45" y="2057.53" incLanes="-107166846#5_0 107166846#4_0 106836317#1_0" intLanes=":1239242544_0_0 :1239242544_9_0 :1239242544_10_0 :1239242544_3_0 :1239242544_4_0 :1239242544_11_0 :1239242544_6_0 :1239242544_7_0 :1239242544_8_0" shape="638.04,2061.40 644.36,2059.89 645.48,2058.12 644.83,2054.99 642.89,2053.68 636.56,2055.16 635.43,2056.92 636.07,2060.06">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1239243628" type="priority" x="655.22" y="1125.89" incLanes="-106367427#1_0 -149819227#1_0 106367427#0_0 149819227#0_0" intLanes=":1239243628_0_0 :1239243628_1_0 :1239243628_2_0 :1239243628_3_0 :1239243628_4_0 :1239243628_5_0 :1239243628_16_0 :1239243628_17_0 :1239243628_8_0 :1239243628_9_0 :1239243628_10_0 :1239243628_11_0 :1239243628_12_0 :1239243628_13_0 :1239243628_18_0 :1239243628_19_0" shape="654.73,1131.72 660.42,1128.56 661.02,1126.56 658.04,1120.78 655.94,1120. [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1243159115" type="priority" x="1090.69" y="2108.82" incLanes="144874010#0_0 144874010#0_1 108329427#2_0" intLanes=":1243159115_0_0 :1243159115_1_0 :1243159115_2_0 :1243159115_3_0 :1243159115_5_0" shape="1094.16,2110.67 1091.13,2104.92 1081.61,2104.13 1079.66,2110.33 1079.02,2111.24 1082.02,2117.00">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="01000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00100" foes="00100" cont="1"/>
+ </junction>
+ <junction id="1243159116" type="priority" x="1082.77" y="2097.34" incLanes="-81523330#4_0 -81523330#4_1 -108329426#0_0 81523330#3_0 81523330#3_1" intLanes=":1243159116_0_0 :1243159116_1_0 :1243159116_2_0 :1243159116_11_0 :1243159116_4_0 :1243159116_5_0 :1243159116_6_0 :1243159116_7_0 :1243159116_8_0 :1243159116_9_0 :1243159116_12_0" shape="1084.23,2103.97 1078.11,2092.39 1075.35,2092.65 1074.37,2099.14 1078.38,2092.25 1084.51,2103.83">
+ <request index="0" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="2" response="01110000000" foes="01111100000" cont="0"/>
+ <request index="3" response="01100010000" foes="01100010000" cont="1"/>
+ <request index="4" response="01100000000" foes="01100001000" cont="0"/>
+ <request index="5" response="01100000111" foes="11100000111" cont="0"/>
+ <request index="6" response="00010000100" foes="00010000100" cont="0"/>
+ <request index="7" response="00000000000" foes="00001000100" cont="0"/>
+ <request index="8" response="00000000000" foes="00000111100" cont="0"/>
+ <request index="9" response="00000000000" foes="00000111100" cont="0"/>
+ <request index="10" response="00000100011" foes="00000100011" cont="1"/>
+ </junction>
+ <junction id="1244292210" type="priority" x="1166.69" y="1743.45" incLanes="166625256#0_0 -166625256#1_0" intLanes=":1244292210_0_0 :1244292210_4_0 :1244292210_2_0 :1244292210_5_0" shape="1168.09,1739.06 1162.31,1742.03 1165.26,1747.82">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1244292219" type="priority" x="1081.72" y="1786.85" incLanes="166625256#1_0 -166625256#0_0" intLanes=":1244292219_0_0 :1244292219_4_0 :1244292219_2_0 :1244292219_5_0" shape="1086.09,1788.27 1083.13,1782.49 1077.35,1785.46">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1246731455" type="priority" x="1154.20" y="1084.13" incLanes="154844461#2_0 -108733428_0" intLanes=":1246731455_0_0 :1246731455_1_0 :1246731455_2_0 :1246731455_3_0 :1246731455_6_0 :1246731455_7_0" shape="1155.60,1086.58 1157.13,1083.76 1147.72,1079.54 1146.56,1080.34 1149.82,1084.81 1151.42,1087.58">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="0"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="1"/>
+ <request index="5" response="000010" foes="000010" cont="1"/>
+ </junction>
+ <junction id="1246731457" type="priority" x="1191.33" y="1089.79" incLanes="108733430_0 154844491#0_0 154844491#0_1" intLanes=":1246731457_0_0 :1246731457_1_0 :1246731457_2_0 :1246731457_3_0 :1246731457_4_0" shape="1189.54,1093.37 1195.29,1090.34 1194.62,1087.51 1188.12,1087.42 1193.52,1086.96 1187.76,1089.98">
+ <request index="0" response="11000" foes="11000" cont="0"/>
+ <request index="1" response="00100" foes="00100" cont="0"/>
+ <request index="2" response="00000" foes="00010" cont="0"/>
+ <request index="3" response="00000" foes="00001" cont="0"/>
+ <request index="4" response="00000" foes="00001" cont="0"/>
+ </junction>
+ <junction id="1246731460" type="priority" x="1166.50" y="1087.91" incLanes="108733429_0 154844461#0_0" intLanes=":1246731460_0_0 :1246731460_4_0 :1246731460_2_0 :1246731460_3_0" shape="1173.35,1095.67 1176.27,1089.79 1176.54,1088.76 1176.23,1085.57 1171.35,1087.29 1170.70,1090.42">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1246731466" type="priority" x="1143.83" y="1025.01" incLanes="108733425_0 166602674#0_0 166602674#0_1" intLanes=":1246731466_0_0 :1246731466_1_0 :1246731466_2_0 :1246731466_3_0 :1246731466_4_0" shape="1140.89,1027.49 1147.32,1026.64 1141.67,1027.87 1147.41,1024.82 1145.10,1020.41 1139.34,1023.41">
+ <request index="0" response="11000" foes="11000" cont="0"/>
+ <request index="1" response="00100" foes="00100" cont="0"/>
+ <request index="2" response="00000" foes="00010" cont="0"/>
+ <request index="3" response="00000" foes="00001" cont="0"/>
+ <request index="4" response="00000" foes="00001" cont="0"/>
+ </junction>
+ <junction id="1246731470" type="priority" x="1204.48" y="1046.73" incLanes="170594822#2_0 170594822#2_1 -108733424_0" intLanes=":1246731470_0_0 :1246731470_1_0 :1246731470_2_0 :1246731470_3_0 :1246731470_5_0" shape="1205.87,1049.67 1202.67,1044.02 1201.65,1045.05 1204.88,1050.32">
+ <request index="0" response="00000" foes="10000" cont="0"/>
+ <request index="1" response="01000" foes="01000" cont="0"/>
+ <request index="2" response="01000" foes="01000" cont="0"/>
+ <request index="3" response="00000" foes="00110" cont="0"/>
+ <request index="4" response="00001" foes="00001" cont="1"/>
+ </junction>
+ <junction id="1246731482" type="priority" x="1193.00" y="1076.70" incLanes="154844489#0_0 -108733430_0" intLanes=":1246731482_0_0 :1246731482_1_0 :1246731482_2_0 :1246731482_4_0" shape="1199.24,1069.08 1196.44,1067.53 1190.94,1076.66 1193.39,1078.72 1192.01,1069.49 1198.17,1071.57">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1246731504" type="priority" x="1142.53" y="1042.42" incLanes="-108733425_0 154844465#3_0" intLanes=":1246731504_0_0 :1246731504_4_0 :1246731504_2_0 :1246731504_3_0" shape="1150.12,1035.64 1147.70,1033.54 1147.49,1032.60 1141.00,1031.69 1143.13,1036.80 1146.09,1038.03">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1246731525" type="priority" x="1199.81" y="1056.38" incLanes="154844462_0 108733424_0" intLanes=":1246731525_0_0 :1246731525_1_0 :1246731525_2_0 :1246731525_4_0" shape="1198.08,1051.24 1201.28,1051.16 1200.53,1050.00 1198.93,1048.53">
+ <request index="0" response="0000" foes="1100" cont="0"/>
+ <request index="1" response="0000" foes="0100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1246731541" type="priority" x="1198.37" y="1029.90" incLanes="108733421_0 81547611_0" intLanes=":1246731541_0_0 :1246731541_4_0 :1246731541_2_0 :1246731541_3_0" shape="1201.81,1031.70 1198.63,1026.03 1195.83,1026.96 1196.68,1033.40">
+ <request index="0" response="0000" foes="0000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0000" cont="0"/>
+ </junction>
+ <junction id="1246731544" type="traffic_light" x="1175.93" y="1027.69" incLanes="108733422_0 154844463_0" intLanes=":1246731544_0_0 :1246731544_4_0 :1246731544_5_0 :1246731544_3_0" shape="1175.53,1029.24 1176.32,1026.13 1176.75,1024.54 1175.09,1030.83">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="1"/>
+ <request index="3" response="0001" foes="0011" cont="0"/>
+ </junction>
+ <junction id="1246731574" type="priority" x="1182.97" y="1030.16" incLanes="-108733421_0 154844479_0" intLanes=":1246731574_0_0 :1246731574_4_0 :1246731574_2_0 :1246731574_3_0" shape="1177.85,1032.92 1178.49,1026.45 1176.32,1026.14 1175.53,1029.24 1181.62,1029.29 1184.27,1031.10">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1246731576" type="priority" x="1138.83" y="1083.97" incLanes="108733428_0 111863125#0_0" intLanes=":1246731576_0_0 :1246731576_4_0 :1246731576_2_0 :1246731576_3_0" shape="1135.16,1088.32 1133.51,1082.00 1130.83,1086.66 1132.40,1089.45">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1246731601" type="priority" x="1130.65" y="1068.67" incLanes="-108733431_0 111549913#5_0" intLanes=":1246731601_0_0 :1246731601_4_0 :1246731601_2_0 :1246731601_3_0" shape="1139.82,1065.73 1138.35,1062.89 1137.69,1062.24 1132.12,1058.87 1133.51,1065.23 1135.08,1068.02">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1246731620" type="priority" x="1153.47" y="1018.17" incLanes="-108733422_0 81124943#1_0 81124943#1_1" intLanes=":1246731620_0_0 :1246731620_5_0 :1246731620_2_0 :1246731620_3_0 :1246731620_4_0" shape="1156.17,1030.19 1161.91,1027.14 1162.97,1026.91 1167.56,1021.57 1159.89,1023.37 1154.14,1026.40">
+ <request index="0" response="00000" foes="11000" cont="0"/>
+ <request index="1" response="00100" foes="00100" cont="1"/>
+ <request index="2" response="00000" foes="00010" cont="0"/>
+ <request index="3" response="00001" foes="00001" cont="0"/>
+ <request index="4" response="00001" foes="00001" cont="0"/>
+ </junction>
+ <junction id="1246731627" type="priority" x="1138.62" y="1055.33" incLanes="108733431_0 154844465#1_0" intLanes=":1246731627_0_0 :1246731627_4_0 :1246731627_2_0 :1246731627_3_0" shape="1141.08,1050.54 1137.93,1049.99 1136.69,1052.60 1141.60,1056.86 1136.99,1056.92 1140.19,1056.98">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1246731647" type="priority" x="1182.25" y="1098.33" incLanes="154844485#0_0 154844485#0_1 -108733429_0" intLanes=":1246731647_0_0 :1246731647_1_0 :1246731647_2_0 :1246731647_3_0 :1246731647_5_0" shape="1180.39,1101.78 1186.14,1098.75 1184.43,1095.49 1178.67,1098.50 1182.55,1094.43 1178.51,1099.52">
+ <request index="0" response="00000" foes="10000" cont="0"/>
+ <request index="1" response="01000" foes="01000" cont="0"/>
+ <request index="2" response="01000" foes="01000" cont="0"/>
+ <request index="3" response="00000" foes="00110" cont="0"/>
+ <request index="4" response="00001" foes="00001" cont="1"/>
+ </junction>
+ <junction id="1252775276" type="unregulated" x="634.90" y="2265.97" incLanes="109438141_0" intLanes="" shape="635.99,2267.14 633.80,2264.81">
+ </junction>
+ <junction id="1252777712" type="priority" x="727.32" y="2275.78" incLanes="81394188#2_0 109438232_0" intLanes=":1252777712_0_0 :1252777712_1_0" shape="726.44,2283.20 729.62,2282.89 730.51,2282.76 733.22,2280.98 729.16,2278.17 725.97,2278.48">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="1252777720" type="priority" x="776.84" y="2259.18" incLanes="-81523330#1_0 -81523330#1_1 109438231#1_0 81523330#0_0 81523330#0_1" intLanes=":1252777720_0_0 :1252777720_1_0 :1252777720_8_0 :1252777720_3_0 :1252777720_4_0 :1252777720_5_0 :1252777720_6_0 :1252777720_9_0" shape="781.23,2264.27 775.10,2252.69 775.16,2257.77 775.54,2260.95 772.45,2254.09 778.58,2265.67">
+ <request index="0" response="00000000" foes="10010000" cont="0"/>
+ <request index="1" response="00000000" foes="10010000" cont="0"/>
+ <request index="2" response="01101000" foes="01101000" cont="1"/>
+ <request index="3" response="01100000" foes="01100100" cont="0"/>
+ <request index="4" response="01100011" foes="11100011" cont="0"/>
+ <request index="5" response="00000000" foes="00011100" cont="0"/>
+ <request index="6" response="00000000" foes="00011100" cont="0"/>
+ <request index="7" response="00010011" foes="00010011" cont="1"/>
+ </junction>
+ <junction id="1257054074" type="priority" x="1359.69" y="1966.42" incLanes="38319546#0_0 154489992#1_0 154489992#1_1 -38319546#1_0" intLanes=":1257054074_0_0 :1257054074_1_0 :1257054074_2_0 :1257054074_3_0 :1257054074_4_0 :1257054074_5_0 :1257054074_6_0 :1257054074_7_0 :1257054074_8_0 :1257054074_9_0" shape="1358.97,1972.26 1364.79,1969.37 1365.50,1966.89 1362.33,1961.22 1360.32,1960.62 1354.56,1963.65 1353.82,1965.98 1356.99,1971.65">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="1257054077" type="priority" x="1080.63" y="2081.74" incLanes="109912572#4_0 -109912567#0_0" intLanes=":1257054077_0_0 :1257054077_4_0 :1257054077_2_0 :1257054077_5_0" shape="1082.14,2084.62 1079.08,2078.88 1079.20,2078.82 1082.10,2084.64">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1257054092" type="priority" x="1295.82" y="1944.12" incLanes="81394162#0_0 81394162#0_1 109912572#2_0 -109912572#3_0" intLanes=":1257054092_0_0 :1257054092_1_0 :1257054092_2_0 :1257054092_3_0 :1257054092_4_0 :1257054092_5_0 :1257054092_6_0 :1257054092_7_0 :1257054092_8_0 :1257054092_9_0" shape="1295.12,1949.90 1300.90,1946.95 1301.56,1944.94 1298.72,1939.10 1296.50,1938.44 1290.74,1941.46 1290.02,1943.56 1293.11,1949.28">
+ <request index="0" response="0000000000" foes="1000010000" cont="0"/>
+ <request index="1" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="2" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="3" response="0000000000" foes="0101110000" cont="0"/>
+ <request index="4" response="0000001111" foes="1000001111" cont="0"/>
+ <request index="5" response="0110001110" foes="0110001110" cont="0"/>
+ <request index="6" response="0100001000" foes="0100001000" cont="0"/>
+ <request index="7" response="0000000110" foes="0000100110" cont="0"/>
+ <request index="8" response="0000001110" foes="0001101110" cont="0"/>
+ <request index="9" response="0000010001" foes="0000010001" cont="0"/>
+ </junction>
+ <junction id="1257054108" type="priority" x="1307.17" y="1938.59" incLanes="109912572#1_0 133960538#1_0 133960538#1_1 -109912572#2_0" intLanes=":1257054108_0_0 :1257054108_1_0 :1257054108_2_0 :1257054108_3_0 :1257054108_4_0 :1257054108_5_0 :1257054108_6_0 :1257054108_7_0 :1257054108_8_0 :1257054108_9_0" shape="1306.77,1944.37 1312.39,1941.09 1313.01,1939.01 1309.80,1933.36 1307.81,1932.77 1302.04,1935.76 1301.40,1937.79 1304.25,1943.63">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="1257054127" type="priority" x="1363.40" y="1973.87" incLanes="144874008#0_0 -38319546#0_0" intLanes=":1257054127_0_0 :1257054127_1_0 :1257054127_2_0 :1257054127_3_0" shape="1368.37,1973.09 1366.90,1970.25 1364.90,1969.59 1359.08,1972.49 1358.45,1974.59 1359.90,1977.44">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1257054132" type="priority" x="759.16" y="2245.83" incLanes="109912567#1_0 37973565#3_0" intLanes=":1257054132_0_0 :1257054132_1_0 :1257054132_2_0 :1257054132_3_0" shape="758.10,2250.32 761.28,2249.93 765.19,2245.33 761.26,2240.15 759.85,2239.57 756.68,2240.04">
+ <request index="0" response="1000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1257054155" type="priority" x="1327.55" y="1933.37" incLanes="109912572#0_0 37449253#3_0 -109912572#1_0" intLanes=":1257054155_0_0 :1257054155_1_0 :1257054155_2_0 :1257054155_3_0 :1257054155_4_0 :1257054155_5_0 :1257054155_6_0 :1257054155_7_0 :1257054155_8_0" shape="1328.33,1938.32 1331.17,1936.84 1331.82,1934.82 1328.83,1929.04 1326.27,1927.31 1323.41,1928.76 1322.59,1930.09 1322.57,1936.59">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1257054162" type="priority" x="716.52" y="2257.84" incLanes="109912568_0" intLanes=":1257054162_0_0" shape="716.54,2257.88 718.11,2260.67 714.93,2255.00 716.49,2257.79">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1257054165" type="priority" x="1280.20" y="1952.56" incLanes="37449245#0_0 109912572#3_0 -109912572#4_0" intLanes=":1257054165_0_0 :1257054165_1_0 :1257054165_2_0 :1257054165_3_0 :1257054165_4_0 :1257054165_5_0 :1257054165_6_0 :1257054165_7_0 :1257054165_8_0" shape="1281.02,1957.51 1283.84,1956.01 1284.47,1953.95 1281.38,1948.23 1279.35,1947.62 1276.53,1949.13 1275.92,1951.17 1280.02,1957.21">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="000000000" foes="011011000" cont="0"/>
+ <request index="2" response="000000000" foes="010111000" cont="0"/>
+ <request index="3" response="000000111" foes="100000111" cont="0"/>
+ <request index="4" response="011000110" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="0"/>
+ <request index="6" response="000000010" foes="000010010" cont="0"/>
+ <request index="7" response="000000110" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="1257054172" type="priority" x="1353.50" y="1954.26" incLanes="38319546#2_0 -139118805#2_0 -139118805#2_1 -38319546#3_0 139118805#1_0 139118805#1_1" intLanes=":1257054172_0_0 :1257054172_1_0 :1257054172_2_0 :1257054172_3_0 :1257054172_4_0 :1257054172_5_0 :1257054172_6_0 :1257054172_18_0 :1257054172_19_0 :1257054172_9_0 :1257054172_10_0 :1257054172_11_0 :1257054172_12_0 :1257054172_13_0 :1257054172_14_0 :1257054172_15_0 :1257054172_16_0 :1257054172_20_0" shape="1351.24,19 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="1257054178" type="right_before_left" x="1343.04" y="1925.34" incLanes="38319546#4_0 -38319546#5_0 -109912572#0_0" intLanes=":1257054178_0_0 :1257054178_1_0 :1257054178_2_0 :1257054178_3_0 :1257054178_4_0 :1257054178_5_0 :1257054178_6_0 :1257054178_7_0 :1257054178_8_0" shape="1342.19,1931.13 1348.06,1928.35 1343.78,1919.65 1338.00,1922.61 1337.23,1924.69 1340.22,1930.47">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1257054196" type="priority" x="600.71" y="2350.85" incLanes="-109912568_0" intLanes=":1257054196_0_0" shape="600.66,2350.87 597.67,2352.00 603.75,2349.69 600.76,2350.83">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1257054205" type="priority" x="1356.29" y="1959.95" incLanes="38319546#1_0 129780022#0_0 -38319546#2_0 -129780022#1_0" intLanes=":1257054205_0_0 :1257054205_1_0 :1257054205_2_0 :1257054205_3_0 :1257054205_4_0 :1257054205_5_0 :1257054205_6_0 :1257054205_16_0 :1257054205_8_0 :1257054205_9_0 :1257054205_10_0 :1257054205_11_0 :1257054205_12_0 :1257054205_13_0 :1257054205_17_0 :1257054205_18_0" shape="1355.63,1965.67 1361.38,1962.65 1362.09,1960.57 1359.06,1954.82 1357.07,19 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1257054208" type="priority" x="1066.75" y="2088.65" incLanes="108329426#1_0 109912567#0_0 -108329426#2_0 -109912567#1_0" intLanes=":1257054208_0_0 :1257054208_1_0 :1257054208_16_0 :1257054208_17_0 :1257054208_4_0 :1257054208_5_0 :1257054208_6_0 :1257054208_7_0 :1257054208_8_0 :1257054208_9_0 :1257054208_18_0 :1257054208_19_0 :1257054208_12_0 :1257054208_13_0 :1257054208_14_0 :1257054208_15_0" shape="1065.81,2094.31 1071.70,2091.56 1072.38,2089.48 1069.48,2083.66 1067.35 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1261880295" type="priority" x="1301.36" y="1663.09" incLanes="-110514869#0_0 -110514869#0_1 151167658#2_0" intLanes=":1261880295_0_0 :1261880295_5_0 :1261880295_2_0 :1261880295_3_0 :1261880295_4_0" shape="1296.13,1673.21 1290.06,1661.60 1287.24,1662.39 1287.44,1665.59 1296.41,1666.04 1298.75,1668.23">
+ <request index="0" response="00000" foes="10000" cont="0"/>
+ <request index="1" response="01100" foes="01100" cont="1"/>
+ <request index="2" response="00000" foes="00010" cont="0"/>
+ <request index="3" response="00000" foes="00010" cont="0"/>
+ <request index="4" response="00001" foes="00001" cont="0"/>
+ </junction>
+ <junction id="1263725264" type="priority" x="1074.67" y="2101.63" incLanes="-108329427#1_0 -81523330#3_0 -81523330#3_1 108329427#0_0 81523330#2_0 81523330#2_1" intLanes=":1263725264_0_0 :1263725264_1_0 :1263725264_2_0 :1263725264_3_0 :1263725264_4_0 :1263725264_5_0 :1263725264_6_0 :1263725264_7_0 :1263725264_18_0 :1263725264_9_0 :1263725264_10_0 :1263725264_11_0 :1263725264_12_0 :1263725264_13_0 :1263725264_14_0 :1263725264_15_0 :1263725264_16_0 :1263725264_19_0" shape="1077.34,2109. [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="0"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="1263725266" type="priority" x="1080.63" y="2107.23" incLanes="-108329427#2_0 129780022#3_0 108329427#1_0 -129780022#4_0" intLanes=":1263725266_0_0 :1263725266_1_0 :1263725266_16_0 :1263725266_17_0 :1263725266_4_0 :1263725266_5_0 :1263725266_6_0 :1263725266_7_0 :1263725266_8_0 :1263725266_9_0 :1263725266_10_0 :1263725266_18_0 :1263725266_12_0 :1263725266_13_0 :1263725266_14_0 :1263725266_15_0" shape="1082.37,2111.18 1084.32,2104.98 1085.08,2108.54 1082.03,2102.80 1079.50 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1268463825" type="priority" x="1676.03" y="1992.80" incLanes="81096822#2_0" intLanes=":1268463825_0_0" shape="1675.98,1992.82 1673.13,1994.27 1678.92,1991.33 1676.07,1992.78">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1323557956" type="priority" x="739.90" y="1613.73" incLanes="117492209_0 37942667#0_0" intLanes=":1323557956_0_0 :1323557956_1_0" shape="745.28,1611.23 743.19,1608.80 742.26,1608.29 739.09,1607.86 738.43,1612.78 741.59,1613.28">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="1323557968" type="priority" x="796.46" y="1576.81" incLanes="108329425#3_0 -108329425#4_0" intLanes=":1323557968_0_0 :1323557968_1_0 :1323557968_6_0 :1323557968_3_0 :1323557968_7_0 :1323557968_8_0" shape="795.04,1581.17 800.82,1578.20 797.99,1572.68 792.21,1575.65 791.48,1577.77 793.04,1580.56">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="1"/>
+ <request index="5" response="000010" foes="000010" cont="1"/>
+ </junction>
+ <junction id="1366723470" type="priority" x="766.44" y="922.99" incLanes="122302027#1_0" intLanes=":1366723470_0_0" shape="765.02,923.72 767.86,922.25 765.01,923.71">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1367073433" type="unregulated" x="713.63" y="784.35" incLanes="" intLanes="" shape="712.21,785.09 715.06,783.62">
+ </junction>
+ <junction id="1367073436" type="unregulated" x="709.93" y="785.79" incLanes="" intLanes="" shape="708.51,786.53 711.35,785.06">
+ </junction>
+ <junction id="1367073439" type="unregulated" x="781.54" y="916.57" incLanes="122302030_0 123339618_0" intLanes="" shape="780.81,918.64 783.65,917.16 782.28,914.50 779.44,915.97">
+ </junction>
+ <junction id="1367073442" type="priority" x="778.01" y="918.11" incLanes="123339619_0" intLanes=":1367073442_0_0" shape="776.59,918.84 779.43,917.37 776.59,918.84">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1367622316" type="unregulated" x="1749.26" y="2841.92" incLanes="122302035#1_0" intLanes="" shape="1750.80,2841.49 1747.72,2842.35">
+ </junction>
+ <junction id="1367622318" type="unregulated" x="1752.44" y="2840.21" incLanes="" intLanes="" shape="1753.99,2839.80 1750.90,2840.63 1753.90,2839.56 1750.98,2840.86">
+ </junction>
+ <junction id="1367855907" type="priority" x="1400.64" y="2204.94" incLanes="-122394834_0 122394853_0" intLanes=":1367855907_0_0 :1367855907_4_0 :1367855907_2_0 :1367855907_5_0" shape="1398.22,2207.34 1403.99,2204.35 1401.25,2201.60 1398.22,2207.34">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1367855909" type="priority" x="1408.45" y="2220.01" incLanes="122394860_0 -122394841#0_0 122394834_0 122394845_0" intLanes=":1367855909_0_0 :1367855909_1_0 :1367855909_2_0 :1367855909_3_0 :1367855909_4_0 :1367855909_5_0 :1367855909_16_0 :1367855909_17_0 :1367855909_8_0 :1367855909_9_0 :1367855909_10_0 :1367855909_11_0 :1367855909_12_0 :1367855909_13_0 :1367855909_18_0 :1367855909_19_0" shape="1407.76,2225.71 1413.52,2222.72 1414.17,2220.69 1411.17,2214.93 1409.15,2214.2 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1367855910" type="priority" x="1416.50" y="2235.50" incLanes="-122394860_0 122394859_0" intLanes=":1367855910_0_0 :1367855910_4_0 :1367855910_2_0 :1367855910_5_0" shape="1418.89,2233.06 1413.13,2236.06 1419.55,2237.03">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1367855923" type="priority" x="1407.85" y="2166.44" incLanes="129780019#1_0 122394864#2_0" intLanes=":1367855923_0_0 :1367855923_1_0 :1367855923_2_0 :1367855923_3_0" shape="1408.61,2171.41 1411.45,2169.95 1406.81,2161.47 1404.05,2163.07 1403.47,2165.06 1406.47,2170.83">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1367855925" type="priority" x="1380.10" y="2171.20" incLanes="122394833#5_0 23182484#1_0 -23182484#2_0" intLanes=":1367855925_0_0 :1367855925_1_0 :1367855925_2_0 :1367855925_3_0 :1367855925_4_0 :1367855925_9_0 :1367855925_6_0 :1367855925_10_0 :1367855925_11_0" shape="1379.42,2176.94 1385.19,2173.95 1385.80,2171.86 1382.75,2166.12 1374.36,2170.57 1377.41,2176.31">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1367855926" type="priority" x="1390.80" y="2175.25" incLanes="130443635#1_0 -122394864#1_0 122394864#0_0" intLanes=":1367855926_0_0 :1367855926_1_0 :1367855926_2_0 :1367855926_3_0 :1367855926_4_0 :1367855926_5_0 :1367855926_6_0 :1367855926_7_0 :1367855926_8_0" shape="1391.64,2180.28 1394.47,2178.79 1395.08,2176.73 1392.15,2170.93 1390.02,2170.32 1387.19,2171.81 1386.32,2174.13 1389.65,2179.72">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="000000000" foes="011011000" cont="0"/>
+ <request index="2" response="000000000" foes="010111000" cont="0"/>
+ <request index="3" response="000000111" foes="100000111" cont="0"/>
+ <request index="4" response="011000110" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="0"/>
+ <request index="6" response="000000010" foes="000010010" cont="0"/>
+ <request index="7" response="000000110" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="1367855927" type="right_before_left" x="1384.24" y="2179.16" incLanes="122394833#4_0 -122394864#0_0 -122394833#5_0" intLanes=":1367855927_0_0 :1367855927_1_0 :1367855927_2_0 :1367855927_3_0 :1367855927_4_0 :1367855927_5_0 :1367855927_6_0 :1367855927_7_0 :1367855927_8_0" shape="1383.46,2184.71 1389.23,2181.71 1390.15,2179.42 1386.82,2173.84 1384.84,2173.27 1379.07,2176.27">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1367855929" type="right_before_left" x="1396.49" y="2202.76" incLanes="122394833#3_0 -122394853_0 -122394833#4_0" intLanes=":1367855929_0_0 :1367855929_1_0 :1367855929_2_0 :1367855929_3_0 :1367855929_4_0 :1367855929_5_0 :1367855929_6_0 :1367855929_7_0 :1367855929_8_0" shape="1394.30,2205.59 1400.07,2202.59 1397.20,2206.81 1400.23,2201.06 1397.76,2198.15 1391.99,2201.15">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1367855930" type="right_before_left" x="1406.19" y="2221.40" incLanes="122394833#2_0 -122394845_0 -122394833#3_0" intLanes=":1367855930_0_0 :1367855930_1_0 :1367855930_2_0 :1367855930_3_0 :1367855930_4_0 :1367855930_5_0 :1367855930_6_0 :1367855930_7_0 :1367855930_8_0" shape="1403.99,2224.23 1409.76,2221.23 1409.16,2223.38 1405.76,2217.84 1408.38,2218.57 1402.61,2221.57">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1367855931" type="right_before_left" x="1415.82" y="2239.95" incLanes="122394833#1_0 -122394859_0 -122394833#2_0" intLanes=":1367855931_0_0 :1367855931_1_0 :1367855931_2_0 :1367855931_3_0 :1367855931_4_0 :1367855931_5_0 :1367855931_6_0 :1367855931_7_0 :1367855931_8_0" shape="1414.12,2243.72 1419.89,2240.72 1419.42,2237.91 1412.99,2236.94 1418.02,2237.12 1412.25,2240.12">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1367855932" type="priority" x="1427.25" y="2261.94" incLanes="122394833#0_0 -122394833#1_0 23182387#3_0" intLanes=":1367855932_0_0 :1367855932_1_0 :1367855932_2_0 :1367855932_3_0 :1367855932_4_0 :1367855932_5_0 :1367855932_6_0 :1367855932_7_0 :1367855932_8_0" shape="1425.79,2266.19 1431.56,2263.19 1432.20,2261.16 1430.72,2258.32 1428.70,2257.69 1422.93,2260.68 1422.29,2262.71 1423.77,2265.55">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1367855969" type="priority" x="1612.08" y="2617.74" incLanes="-122394833#0_0" intLanes=":1367855969_0_0" shape="1612.03,2617.76 1609.19,2619.24 1614.96,2616.24 1612.12,2617.72">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844756" type="priority" x="1454.65" y="2206.40" incLanes="-122641559#0_0" intLanes=":1369844756_0_0" shape="1454.60,2206.42 1451.74,2207.85 1457.55,2204.95 1454.69,2206.38">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844757" type="priority" x="1450.57" y="2198.24" incLanes="122641559#0_0 -122394841#3_0 -122641559#1_0 122394841#2_0" intLanes=":1369844757_0_0 :1369844757_1_0 :1369844757_2_0 :1369844757_3_0 :1369844757_4_0 :1369844757_5_0 :1369844757_16_0 :1369844757_17_0 :1369844757_8_0 :1369844757_9_0 :1369844757_10_0 :1369844757_11_0 :1369844757_12_0 :1369844757_13_0 :1369844757_18_0 :1369844757_19_0" shape="1449.80,2203.96 1455.61,2201.05 1456.26,2198.97 1453.32,2193.17 1451.30 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1369844758" type="priority" x="1441.98" y="2212.57" incLanes="-122641556#0_0" intLanes=":1369844758_0_0" shape="1441.94,2212.60 1439.09,2214.06 1444.87,2211.09 1442.03,2212.55">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844760" type="priority" x="1446.09" y="2189.48" incLanes="122641559#1_0" intLanes=":1369844760_0_0" shape="1446.14,2189.46 1448.98,2188.00 1443.20,2190.96 1446.05,2189.50">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844762" type="priority" x="1437.90" y="2204.64" incLanes="122641556#0_0 -122394841#2_0 -122641556#1_0 122394841#1_0" intLanes=":1369844762_0_0 :1369844762_1_0 :1369844762_2_0 :1369844762_3_0 :1369844762_4_0 :1369844762_5_0 :1369844762_16_0 :1369844762_17_0 :1369844762_8_0 :1369844762_9_0 :1369844762_10_0 :1369844762_11_0 :1369844762_12_0 :1369844762_13_0 :1369844762_18_0 :1369844762_19_0" shape="1437.20,2210.37 1442.98,2207.40 1443.63,2205.39 1440.70,2199.59 1438.61 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1369844763" type="priority" x="1427.98" y="2219.57" incLanes="-122641560#0_0" intLanes=":1369844763_0_0" shape="1427.94,2219.59 1425.08,2221.04 1430.88,2218.11 1428.03,2219.55">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844770" type="priority" x="1433.51" y="2196.16" incLanes="122641556#1_0" intLanes=":1369844770_0_0" shape="1433.55,2196.13 1436.40,2194.66 1430.62,2197.65 1433.46,2196.18">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844772" type="priority" x="1424.09" y="2211.86" incLanes="122641560#0_0 -122394841#1_0 -122641560#1_0 122394841#0_0" intLanes=":1369844772_0_0 :1369844772_1_0 :1369844772_2_0 :1369844772_3_0 :1369844772_4_0 :1369844772_5_0 :1369844772_16_0 :1369844772_17_0 :1369844772_8_0 :1369844772_9_0 :1369844772_10_0 :1369844772_11_0 :1369844772_12_0 :1369844772_13_0 :1369844772_18_0 :1369844772_19_0" shape="1423.35,2217.60 1429.15,2214.67 1429.92,2212.48 1426.91,2206.72 1424.94 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1369844774" type="priority" x="1420.17" y="2203.58" incLanes="122641560#1_0" intLanes=":1369844774_0_0" shape="1420.22,2203.56 1423.11,2202.19 1417.24,2204.97 1420.13,2203.60">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844780" type="priority" x="1476.61" y="2280.66" incLanes="-122641557_0" intLanes=":1369844780_0_0" shape="1476.66,2280.64 1479.52,2279.20 1473.71,2282.12 1476.57,2280.68">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1369844786" type="priority" x="1481.20" y="2289.82" incLanes="122641557_0" intLanes=":1369844786_0_0" shape="1481.16,2289.84 1478.30,2291.28 1484.11,2288.37 1481.25,2289.80">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1373642446" type="priority" x="1632.17" y="2615.09" incLanes="-38318373#0_0" intLanes=":1373642446_0_0" shape="1632.13,2615.12 1629.77,2617.28 1634.57,2612.89 1632.20,2615.05">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1375799449" type="unregulated" x="987.55" y="0.00" incLanes="" intLanes="" shape="987.03,-1.51 988.08,1.51">
+ </junction>
+ <junction id="1375799451" type="unregulated" x="989.03" y="4.24" incLanes="123339612_0" intLanes="" shape="988.50,2.73 989.55,5.75">
+ </junction>
+ <junction id="13929737" type="priority" x="1291.53" y="1973.90" incLanes="139118808_0 44641744#1_0" intLanes=":13929737_0_0 :13929737_1_0 :13929737_2_0 :13929737_3_0" shape="1290.59,1977.83 1293.74,1977.28 1294.71,1969.25 1291.61,1968.30 1290.42,1968.39 1287.59,1969.89 1287.50,1974.24 1289.01,1977.06">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="13929747" type="priority" x="1345.18" y="1965.82" incLanes="129780022#1_0 37449253#6_0 -129780022#2_0" intLanes=":13929747_0_0 :13929747_1_0 :13929747_9_0 :13929747_3_0 :13929747_4_0 :13929747_5_0 :13929747_6_0 :13929747_10_0 :13929747_11_0" shape="1346.05,1970.78 1348.86,1969.25 1349.47,1967.23 1346.43,1961.48 1344.38,1960.87 1341.55,1962.36 1340.91,1964.43 1344.00,1970.15">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="13929752" type="traffic_light" x="1580.78" y="1842.16" incLanes="160587537#3_0 160587537#3_1" intLanes=":13929752_0_0" shape="1580.74,1842.18 1575.23,1845.62 1586.34,1838.69 1580.83,1842.13">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="13929775" type="traffic_light" x="938.10" y="1187.90" incLanes="149868584#6_0 149868584#6_1 101272424#5_0 -149868584#7_0 -149868584#7_1" intLanes=":13929775_0_0 :13929775_1_0 :13929775_2_0 :13929775_11_0 :13929775_4_0 :13929775_5_0 :13929775_12_0 :13929775_7_0 :13929775_8_0 :13929775_13_0 :13929775_14_0" shape="940.29,1195.91 943.16,1194.49 944.30,1191.90 937.81,1180.52 935.83,1179.93 932.98,1181.38 931.84,1183.93 938.32,1195.31">
+ <request index="0" response="00000000000" foes="01000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="11001100000" cont="0"/>
+ <request index="2" response="00000000000" foes="11001100000" cont="0"/>
+ <request index="3" response="00110010000" foes="00110010000" cont="1"/>
+ <request index="4" response="00110000000" foes="00110001000" cont="0"/>
+ <request index="5" response="01110000111" foes="01110000111" cont="0"/>
+ <request index="6" response="01110000110" foes="11110000110" cont="1"/>
+ <request index="7" response="00000000000" foes="00001111000" cont="0"/>
+ <request index="8" response="00000000000" foes="00001111000" cont="0"/>
+ <request index="9" response="00000000111" foes="00001100111" cont="1"/>
+ <request index="10" response="00001000110" foes="00001000110" cont="1"/>
+ </junction>
+ <junction id="13990620" type="priority" x="1765.26" y="719.21" incLanes="-149868584#0_0 -149868584#0_1" intLanes=":13990620_0_0" shape="1765.29,719.25 1769.49,724.21 1761.03,714.21 1765.23,719.17">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1431113444" type="priority" x="1501.00" y="2172.16" incLanes="197794762_0" intLanes=":1431113444_0_0" shape="1501.03,2172.21 1502.50,2175.05 1499.51,2169.28 1500.98,2172.12">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1457695393" type="priority" x="690.41" y="1872.35" incLanes="130443629#7_0 -59159262#1_0 -130443629#8_0 59159262#0_0" intLanes=":1457695393_0_0 :1457695393_1_0 :1457695393_16_0 :1457695393_17_0 :1457695393_4_0 :1457695393_5_0 :1457695393_6_0 :1457695393_7_0 :1457695393_8_0 :1457695393_9_0 :1457695393_18_0 :1457695393_19_0 :1457695393_12_0 :1457695393_13_0 :1457695393_14_0 :1457695393_15_0" shape="687.90,1878.05 694.34,1877.18 695.64,1875.73 695.79,1869.23 693.01,1866.86 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1457699220" type="right_before_left" x="823.20" y="1284.88" incLanes="-81672216#1_0 81672216#9_0 81672216#0_0" intLanes=":1457699220_0_0 :1457699220_1_0 :1457699220_2_0 :1457699220_3_0 :1457699220_4_0 :1457699220_5_0 :1457699220_6_0 :1457699220_7_0 :1457699220_8_0" shape="822.55,1290.56 828.28,1287.50 828.97,1285.40 825.82,1279.71 823.80,1279.12 818.07,1282.18">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1457699222" type="right_before_left" x="900.01" y="1299.30" incLanes="81672216#6_0 -81672216#7_0 81672209_0" intLanes=":1457699222_0_0 :1457699222_1_0 :1457699222_2_0 :1457699222_3_0 :1457699222_4_0 :1457699222_5_0 :1457699222_6_0 :1457699222_7_0 :1457699222_8_0" shape="899.31,1305.02 905.08,1302.03 900.47,1293.48 894.80,1296.65 894.20,1298.65 897.20,1304.42">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1457699223" type="right_before_left" x="907.70" y="1314.17" incLanes="81672216#5_0 -81672216#6_0 81672218_0" intLanes=":1457699223_0_0 :1457699223_1_0 :1457699223_2_0 :1457699223_3_0 :1457699223_4_0 :1457699223_5_0 :1457699223_6_0 :1457699223_7_0 :1457699223_8_0" shape="907.04,1319.87 912.78,1316.84 908.41,1308.47 902.64,1311.46 901.99,1313.48 905.00,1319.24">
+ <request index="0" response="011000000" foes="011101000" cont="0"/>
+ <request index="1" response="000000000" foes="100001000" cont="0"/>
+ <request index="2" response="010010000" foes="010010000" cont="0"/>
+ <request index="3" response="000000011" foes="110000011" cont="0"/>
+ <request index="4" response="000000000" foes="010000100" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000011000" foes="000011101" cont="0"/>
+ <request index="8" response="000001010" foes="000001010" cont="0"/>
+ </junction>
+ <junction id="1474873133" type="priority" x="865.67" y="1730.70" incLanes="-191176266_0 191176268_0" intLanes=":1474873133_0_0 :1474873133_4_0 :1474873133_2_0 :1474873133_5_0" shape="862.67,1731.97 868.84,1729.91 865.51,1730.49 862.67,1731.97">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1474873137" type="priority" x="872.46" y="1743.65" incLanes="-191176265_0" intLanes=":1474873137_0_0" shape="872.42,1743.69 869.95,1745.73 874.96,1741.58 872.49,1743.62">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1474873139" type="priority" x="798.41" y="1754.01" incLanes="191176262_0" intLanes=":1474873139_0_0" shape="798.39,1753.96 796.94,1751.11 799.88,1756.90 798.43,1754.05">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1479400627" type="priority" x="768.35" y="2260.03" incLanes="134572340#0_0 134572340#0_1 109438231#0_0" intLanes=":1479400627_0_0 :1479400627_1_0 :1479400627_2_0 :1479400627_3_0" shape="768.83,2263.58 770.74,2257.37 767.87,2256.48 765.96,2262.70">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0000" cont="0"/>
+ </junction>
+ <junction id="1482088973" type="priority" x="722.75" y="1765.70" incLanes="-134872478_0 59159266#0_0" intLanes=":1482088973_0_0 :1482088973_1_0 :1482088973_2_0 :1482088973_3_0" shape="721.29,1769.97 727.07,1767.01 727.68,1764.91 726.19,1762.07 717.78,1766.51 719.28,1769.34">
+ <request index="0" response="1000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1482088987" type="priority" x="762.95" y="1844.06" incLanes="-59159262#4_0 134872478_0 59159262#3_0" intLanes=":1482088987_0_0 :1482088987_9_0 :1482088987_10_0 :1482088987_3_0 :1482088987_4_0 :1482088987_5_0 :1482088987_6_0 :1482088987_7_0 :1482088987_11_0" shape="768.66,1844.78 765.69,1839.00 763.67,1838.35 757.89,1841.31 757.44,1843.23 760.40,1849.02">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1536917218" type="unregulated" x="683.21" y="346.28" incLanes="" intLanes="" shape="681.80,347.03 684.63,345.54">
+ </junction>
+ <junction id="1545661417" type="priority" x="1274.08" y="2216.55" incLanes="141191261#1_0 38230510#2_0" intLanes=":1545661417_0_0 :1545661417_1_0 :1545661417_2_0 :1545661417_3_0" shape="1274.13,2220.03 1276.95,2218.52 1277.57,2216.49 1276.05,2213.67 1270.47,2213.11 1269.13,2216.01 1269.16,2217.35 1270.66,2220.17">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1545672785" type="priority" x="1247.38" y="2046.15" incLanes="141191248#2_0" intLanes=":1545672785_0_0" shape="1247.41,2046.20 1248.89,2049.03 1245.88,2043.27 1247.36,2046.11">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1545672787" type="priority" x="1192.85" y="2064.37" incLanes="139118804#1_0" intLanes=":1545672787_0_0 :1545672787_1_0" shape="1195.21,2064.92 1193.71,2062.10 1183.81,2067.37 1185.32,2070.19 1185.70,2070.65 1188.18,2072.67">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1545672788" type="priority" x="1267.69" y="2071.75" incLanes="141191250#5_0" intLanes=":1545672788_0_0" shape="1267.71,2071.80 1269.21,2074.62 1266.16,2068.88 1267.66,2071.71">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1545672797" type="right_before_left" x="1188.51" y="2080.15" incLanes="-141191248#2_0 141191263#1_0 141191248#1_0" intLanes=":1545672797_0_0 :1545672797_1_0 :1545672797_2_0 :1545672797_3_0 :1545672797_4_0 :1545672797_5_0 :1545672797_6_0 :1545672797_7_0 :1545672797_8_0" shape="1192.38,2080.34 1187.10,2076.55 1178.27,2086.80 1183.14,2091.11 1184.49,2091.44 1191.58,2093.05">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672804" type="right_before_left" x="1245.02" y="2083.81" incLanes="-141191252_0 -141191250#5_0 141191250#4_0" intLanes=":1545672804_0_0 :1545672804_1_0 :1545672804_2_0 :1545672804_3_0 :1545672804_4_0 :1545672804_5_0 :1545672804_6_0 :1545672804_7_0 :1545672804_8_0" shape="1244.18,2089.63 1250.06,2086.85 1250.61,2084.52 1247.56,2078.78 1239.16,2083.24 1242.22,2088.98">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672806" type="priority" x="1172.90" y="2088.98" incLanes="141191247#0_0 141191260#0_0 -141191247#1_0" intLanes=":1545672806_0_0 :1545672806_1_0 :1545672806_2_0 :1545672806_3_0 :1545672806_4_0 :1545672806_5_0 :1545672806_6_0 :1545672806_7_0 :1545672806_8_0" shape="1173.00,2093.52 1177.44,2088.79 1177.14,2086.29 1174.66,2084.27 1172.47,2084.41 1168.34,2089.43 1168.50,2091.51 1170.89,2093.64">
+ <request index="0" response="000110000" foes="101110000" cont="0"/>
+ <request index="1" response="000100000" foes="001100000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="111000001" cont="0"/>
+ <request index="5" response="000000000" foes="011000011" cont="0"/>
+ <request index="6" response="000110011" foes="000110011" cont="0"/>
+ <request index="7" response="000111000" foes="000111100" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672819" type="right_before_left" x="1177.15" y="2092.96" incLanes="141191263#0_0 -141191263#1_0 -141191247#0_0" intLanes=":1545672819_0_0 :1545672819_1_0 :1545672819_2_0 :1545672819_3_0 :1545672819_4_0 :1545672819_5_0 :1545672819_6_0 :1545672819_7_0 :1545672819_8_0" shape="1176.38,2097.98 1182.13,2094.42 1182.79,2091.50 1177.93,2087.18 1175.84,2087.28 1171.39,2092.02">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672824" type="right_before_left" x="1250.63" y="2095.64" incLanes="141191259#0_0 141191252_0 -141191259#1_0" intLanes=":1545672824_0_0 :1545672824_1_0 :1545672824_2_0 :1545672824_3_0 :1545672824_4_0 :1545672824_5_0 :1545672824_6_0 :1545672824_7_0 :1545672824_8_0" shape="1254.79,2098.44 1254.06,2091.98 1251.42,2089.71 1245.54,2092.50 1244.78,2094.39 1247.10,2100.46">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672843" type="right_before_left" x="1191.03" y="2098.99" incLanes="141191248#0_0 -141191248#1_0 -141191263#0_0" intLanes=":1545672843_0_0 :1545672843_1_0 :1545672843_2_0 :1545672843_3_0 :1545672843_4_0 :1545672843_5_0 :1545672843_6_0 :1545672843_7_0 :1545672843_8_0" shape="1189.92,2103.35 1195.21,2099.53 1190.85,2090.12 1185.15,2094.06 1184.11,2095.25 1183.41,2101.78">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672852" type="priority" x="1277.60" y="2103.24" incLanes="141191259#5_0 -141191259#0_0" intLanes=":1545672852_0_0 :1545672852_4_0 :1545672852_2_0 :1545672852_5_0" shape="1275.34,2105.59 1280.26,2101.34 1279.38,2100.50 1275.34,2105.59">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1545672864" type="right_before_left" x="1197.19" y="2109.26" incLanes="-141191250#4_0 -141191248#0_0 141191250#3_0" intLanes=":1545672864_0_0 :1545672864_1_0 :1545672864_2_0 :1545672864_3_0 :1545672864_4_0 :1545672864_5_0 :1545672864_6_0 :1545672864_7_0 :1545672864_8_0" shape="1202.78,2109.96 1199.73,2104.22 1197.49,2103.39 1191.90,2106.69 1191.34,2108.69 1194.39,2114.43">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672874" type="right_before_left" x="1186.40" y="2115.00" incLanes="-141191262#0_0 -141191250#3_0 141191250#2_0" intLanes=":1545672874_0_0 :1545672874_1_0 :1545672874_2_0 :1545672874_3_0 :1545672874_4_0 :1545672874_5_0 :1545672874_6_0 :1545672874_7_0 :1545672874_8_0" shape="1185.24,2120.99 1191.25,2118.51 1191.84,2115.79 1188.78,2110.05 1180.35,2114.54 1183.40,2120.28">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672910" type="right_before_left" x="1227.08" y="2124.27" incLanes="-141191259#2_0 141191259#1_0 141191256#2_0" intLanes=":1545672910_0_0 :1545672910_1_0 :1545672910_2_0 :1545672910_3_0 :1545672910_4_0 :1545672910_5_0 :1545672910_6_0 :1545672910_7_0 :1545672910_8_0" shape="1224.45,2129.55 1230.90,2128.77 1230.78,2120.77 1224.32,2120.00 1221.68,2121.91 1222.79,2128.31">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672919" type="right_before_left" x="1189.89" y="2126.22" incLanes="-141191262#1_0 -141191256#2_0 141191262#0_0 141191256#1_0" intLanes=":1545672919_0_0 :1545672919_1_0 :1545672919_2_0 :1545672919_3_0 :1545672919_4_0 :1545672919_5_0 :1545672919_6_0 :1545672919_7_0 :1545672919_8_0 :1545672919_9_0 :1545672919_10_0 :1545672919_11_0 :1545672919_12_0 :1545672919_13_0 :1545672919_14_0 :1545672919_15_0" shape="1187.20,2131.82 1193.66,2131.17 1195.00,2129.77 1195.37,2123.28 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1545672923" type="priority" x="1274.93" y="2125.18" incLanes="141191255#1_0 -141191255#0_0" intLanes=":1545672923_0_0 :1545672923_4_0 :1545672923_2_0 :1545672923_5_0" shape="1273.72,2128.82 1278.73,2124.68 1272.72,2121.95">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1545672954" type="right_before_left" x="1286.23" y="2130.45" incLanes="-141191258#0_0 -141191259#5_0 141191259#4_0" intLanes=":1545672954_0_0 :1545672954_1_0 :1545672954_2_0 :1545672954_3_0 :1545672954_4_0 :1545672954_5_0 :1545672954_6_0 :1545672954_7_0 :1545672954_8_0" shape="1289.98,2135.78 1291.02,2128.97 1289.83,2126.77 1283.36,2126.18 1281.65,2134.44 1287.86,2136.31">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545672971" type="priority" x="1190.71" y="2134.12" incLanes="141191262#1_0" intLanes=":1545672971_0_0" shape="1190.66,2134.13 1187.48,2134.47 1193.94,2133.77 1190.76,2134.11">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1545672999" type="right_before_left" x="1276.17" y="2138.79" incLanes="141191257_0 -141191255#1_0 141191255#0_0" intLanes=":1545672999_0_0 :1545672999_1_0 :1545672999_2_0 :1545672999_3_0 :1545672999_4_0 :1545672999_5_0 :1545672999_6_0 :1545672999_7_0 :1545672999_8_0" shape="1277.66,2144.07 1281.62,2138.91 1280.87,2136.54 1275.01,2132.62 1269.45,2139.48 1275.29,2144.01">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000011" foes="101000011" cont="0"/>
+ <request index="5" response="010000010" foes="010000010" cont="0"/>
+ <request index="6" response="000011000" foes="000011110" cont="0"/>
+ <request index="7" response="000000000" foes="000100010" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673030" type="right_before_left" x="1281.00" y="2142.63" incLanes="-141191259#4_0 -141191257_0 141191259#3_0" intLanes=":1545673030_0_0 :1545673030_1_0 :1545673030_2_0 :1545673030_3_0 :1545673030_4_0 :1545673030_5_0 :1545673030_6_0 :1545673030_7_0 :1545673030_8_0" shape="1286.37,2139.96 1280.84,2136.43 1279.04,2136.89 1274.88,2141.89 1275.14,2143.94 1279.88,2148.43">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673031" type="right_before_left" x="1300.95" y="2142.54" incLanes="-141191258#1_0 141191258#0_0 141191249#5_0" intLanes=":1545673031_0_0 :1545673031_1_0 :1545673031_2_0 :1545673031_3_0 :1545673031_4_0 :1545673031_5_0 :1545673031_6_0 :1545673031_7_0 :1545673031_8_0" shape="1300.23,2148.29 1306.02,2145.34 1301.80,2136.92 1295.71,2139.98 1295.19,2141.90 1298.22,2147.65">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673065" type="right_before_left" x="1122.59" y="2153.96" incLanes="-141191264#0_0 -141191250#2_0 141191250#1_0" intLanes=":1545673065_0_0 :1545673065_1_0 :1545673065_2_0 :1545673065_3_0 :1545673065_4_0 :1545673065_5_0 :1545673065_6_0 :1545673065_7_0 :1545673065_8_0" shape="1123.31,2159.01 1127.72,2154.19 1126.70,2151.43 1120.33,2149.96 1117.40,2153.24 1120.89,2158.73">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673067" type="right_before_left" x="1245.45" y="2152.18" incLanes="141191254#0_0 -141191259#3_0 141191259#2_0 -141191254#1_0" intLanes=":1545673067_0_0 :1545673067_1_0 :1545673067_2_0 :1545673067_3_0 :1545673067_4_0 :1545673067_5_0 :1545673067_6_0 :1545673067_7_0 :1545673067_8_0 :1545673067_9_0 :1545673067_10_0 :1545673067_11_0 :1545673067_12_0 :1545673067_13_0 :1545673067_14_0 :1545673067_15_0" shape="1245.61,2156.03 1247.65,2149.45 1245.37,2148.46 1244.09,2155.24">
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1545673092" type="right_before_left" x="1152.72" y="2157.95" incLanes="-141191264#1_0 -141191256#1_0 141191264#0_0 141191256#0_0" intLanes=":1545673092_0_0 :1545673092_1_0 :1545673092_2_0 :1545673092_3_0 :1545673092_4_0 :1545673092_5_0 :1545673092_6_0 :1545673092_7_0 :1545673092_8_0 :1545673092_9_0 :1545673092_10_0 :1545673092_11_0 :1545673092_12_0 :1545673092_13_0 :1545673092_14_0 :1545673092_15_0" shape="1157.31,2161.99 1158.29,2155.56 1156.82,2153.82 1150.09,2153.01 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1545673105" type="right_before_left" x="1110.81" y="2160.62" incLanes="-141191247#2_0 -141191250#1_0 141191247#1_0 141191250#0_0" intLanes=":1545673105_0_0 :1545673105_1_0 :1545673105_2_0 :1545673105_3_0 :1545673105_4_0 :1545673105_5_0 :1545673105_6_0 :1545673105_7_0 :1545673105_8_0 :1545673105_9_0 :1545673105_10_0 :1545673105_11_0 :1545673105_12_0 :1545673105_13_0 :1545673105_14_0 :1545673105_15_0" shape="1110.13,2166.44 1115.92,2163.48 1116.64,2161.09 1113.48,2155.41 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1545673118" type="priority" x="1103.66" y="2164.61" incLanes="23182517#3_0 -141191250#0_0 -23182517#4_0" intLanes=":1545673118_0_0 :1545673118_9_0 :1545673118_10_0 :1545673118_3_0 :1545673118_4_0 :1545673118_5_0 :1545673118_6_0 :1545673118_7_0 :1545673118_11_0" shape="1102.83,2170.19 1108.64,2167.27 1109.52,2165.06 1106.35,2159.39 1104.37,2158.78 1098.56,2161.69">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1545673123" type="right_before_left" x="1182.08" y="2163.41" incLanes="141191254#1_0 141191264#1_0 -141191254#2_0" intLanes=":1545673123_0_0 :1545673123_1_0 :1545673123_2_0 :1545673123_3_0 :1545673123_4_0 :1545673123_5_0 :1545673123_6_0 :1545673123_7_0 :1545673123_8_0" shape="1186.19,2164.99 1182.85,2159.38 1175.67,2158.85 1174.43,2165.23 1175.36,2166.92 1180.14,2173.44">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673135" type="right_before_left" x="1256.14" y="2166.14" incLanes="-141191249#5_0 -141191254#0_0 141191249#4_0" intLanes=":1545673135_0_0 :1545673135_1_0 :1545673135_2_0 :1545673135_3_0 :1545673135_4_0 :1545673135_5_0 :1545673135_6_0 :1545673135_7_0 :1545673135_8_0" shape="1261.79,2166.84 1258.76,2161.09 1256.74,2160.30 1251.03,2163.46 1250.36,2165.51 1253.39,2171.26">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673150" type="right_before_left" x="1309.98" y="2169.16" incLanes="-141191258#2_0 141191258#1_0 -141191253#0_0" intLanes=":1545673150_0_0 :1545673150_1_0 :1545673150_2_0 :1545673150_3_0 :1545673150_4_0 :1545673150_5_0 :1545673150_6_0 :1545673150_7_0 :1545673150_8_0" shape="1306.81,2173.95 1313.30,2173.84 1313.55,2164.82 1307.05,2164.46 1305.21,2165.97 1305.29,2172.47">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673191" type="right_before_left" x="1221.00" y="2184.66" incLanes="141191253#1_0 -141191249#4_0 141191249#3_0" intLanes=":1545673191_0_0 :1545673191_1_0 :1545673191_2_0 :1545673191_3_0 :1545673191_4_0 :1545673191_5_0 :1545673191_6_0 :1545673191_7_0 :1545673191_8_0" shape="1220.13,2190.47 1226.01,2187.72 1226.58,2185.39 1223.55,2179.64 1215.15,2184.05 1218.16,2189.81">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673218" type="right_before_left" x="1176.54" y="2190.64" incLanes="141191251#0_0 141191254#2_0 -141191251#1_0" intLanes=":1545673218_0_0 :1545673218_1_0 :1545673218_2_0 :1545673218_3_0 :1545673218_4_0 :1545673218_5_0 :1545673218_6_0 :1545673218_7_0 :1545673218_8_0" shape="1178.97,2194.81 1180.75,2188.43 1178.96,2183.90 1172.50,2185.30 1171.06,2186.90 1170.07,2193.47">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673223" type="right_before_left" x="1164.77" y="2191.70" incLanes="141191251#1_0 -141191256#0_0 -141191251#2_0" intLanes=":1545673223_0_0 :1545673223_1_0 :1545673223_2_0 :1545673223_3_0 :1545673223_4_0 :1545673223_5_0 :1545673223_6_0 :1545673223_7_0 :1545673223_8_0" shape="1169.53,2193.55 1166.61,2187.41 1162.73,2185.61 1158.62,2190.70 1158.82,2192.99 1163.05,2198.28">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673240" type="right_before_left" x="1256.69" y="2192.89" incLanes="141191253#0_0 -141191253#1_0 141191258#3_0" intLanes=":1545673240_0_0 :1545673240_1_0 :1545673240_2_0 :1545673240_3_0 :1545673240_4_0 :1545673240_5_0 :1545673240_6_0 :1545673240_7_0 :1545673240_8_0" shape="1260.69,2193.84 1256.62,2188.78 1247.04,2193.62 1250.32,2199.66 1251.40,2200.56 1258.12,2202.41">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673280" type="right_before_left" x="1190.28" y="2200.75" incLanes="-141191249#3_0 -141191251#0_0 141191249#2_0" intLanes=":1545673280_0_0 :1545673280_1_0 :1545673280_2_0 :1545673280_3_0 :1545673280_4_0 :1545673280_5_0 :1545673280_6_0 :1545673280_7_0 :1545673280_8_0" shape="1195.39,2201.74 1192.38,2195.98 1188.96,2194.49 1184.03,2198.75 1183.77,2200.50 1186.79,2206.25">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673304" type="right_before_left" x="1259.42" y="2208.43" incLanes="141191247#4_0 141191258#2_0 -141191258#3_0" intLanes=":1545673304_0_0 :1545673304_1_0 :1545673304_2_0 :1545673304_3_0 :1545673304_4_0 :1545673304_5_0 :1545673304_6_0 :1545673304_7_0 :1545673304_8_0" shape="1256.22,2213.32 1262.72,2213.25 1264.21,2211.78 1264.33,2205.28 1258.09,2202.17 1255.09,2210.08">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673319" type="priority" x="1259.48" y="2214.22" incLanes="-141191247#4_0 141191261#0_0 141191247#3_0" intLanes=":1545673319_0_0 :1545673319_1_0 :1545673319_2_0 :1545673319_3_0 :1545673319_4_0 :1545673319_5_0 :1545673319_6_0 :1545673319_7_0 :1545673319_8_0" shape="1264.24,2215.79 1264.22,2212.59 1262.70,2211.07 1256.20,2211.14 1254.71,2212.65 1254.73,2215.85 1256.23,2217.34 1262.73,2217.35">
+ <request index="0" response="000100000" foes="010100000" cont="0"/>
+ <request index="1" response="000101000" foes="110101000" cont="0"/>
+ <request index="2" response="001010000" foes="001010000" cont="0"/>
+ <request index="3" response="000000000" foes="111000010" cont="0"/>
+ <request index="4" response="000000000" foes="001000100" cont="0"/>
+ <request index="5" response="000000000" foes="011000011" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000101011" foes="000101011" cont="0"/>
+ <request index="8" response="000001010" foes="000001010" cont="0"/>
+ </junction>
+ <junction id="1545673333" type="right_before_left" x="1151.68" y="2216.33" incLanes="-141191249#2_0 141191251#2_0 141191249#1_0" intLanes=":1545673333_0_0 :1545673333_1_0 :1545673333_2_0 :1545673333_3_0 :1545673333_4_0 :1545673333_5_0 :1545673333_6_0 :1545673333_7_0 :1545673333_8_0" shape="1155.44,2220.25 1156.57,2213.85 1155.46,2212.18 1148.80,2212.00 1147.14,2215.01 1150.12,2220.79">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1545673345" type="right_before_left" x="1141.83" y="2221.41" incLanes="-141191247#3_0 -141191249#1_0 141191247#2_0 141191249#0_0" intLanes=":1545673345_0_0 :1545673345_1_0 :1545673345_2_0 :1545673345_3_0 :1545673345_4_0 :1545673345_5_0 :1545673345_6_0 :1545673345_7_0 :1545673345_8_0 :1545673345_9_0 :1545673345_10_0 :1545673345_11_0 :1545673345_12_0 :1545673345_13_0 :1545673345_14_0 :1545673345_15_0" shape="1141.10,2227.14 1146.89,2224.18 1147.56,2222.11 1144.58,2216.34 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="1545673349" type="priority" x="1134.17" y="2225.37" incLanes="23182517#2_0 -141191249#0_0 -23182517#3_0" intLanes=":1545673349_0_0 :1545673349_9_0 :1545673349_10_0 :1545673349_3_0 :1545673349_4_0 :1545673349_5_0 :1545673349_6_0 :1545673349_7_0 :1545673349_11_0" shape="1133.38,2231.04 1139.19,2228.13 1139.92,2226.06 1136.93,2220.29 1134.93,2219.64 1129.12,2222.55">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1545673352" type="unregulated" x="1182.30" y="2237.30" incLanes="" intLanes="" shape="1183.06,2238.71 1181.54,2235.89">
+ </junction>
+ <junction id="1624003168" type="priority" x="923.06" y="806.24" incLanes="24573897#0_0 149419435#2_0" intLanes=":1624003168_0_0 :1624003168_1_0 :1624003168_2_0 :1624003168_3_0" shape="923.10,809.77 925.93,808.29 926.59,806.09 925.02,803.30 923.02,802.70 920.18,804.18 919.53,806.38 921.09,809.17">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1624003172" type="priority" x="780.92" y="885.89" incLanes="42976407#1_0" intLanes=":1624003172_0_0 :1624003172_1_0" shape="780.92,889.34 783.76,887.85 784.45,885.75 782.89,882.95 780.88,882.36 778.05,883.84">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1624003193" type="priority" x="855.69" y="843.99" incLanes="24573930#3_0 149419435#1_0" intLanes=":1624003193_0_0 :1624003193_1_0 :1624003193_2_0 :1624003193_3_0" shape="855.73,847.52 858.57,846.05 859.22,843.85 857.66,841.05 855.66,840.46 852.82,841.93 852.16,844.13 853.73,846.93">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="1624003199" type="priority" x="991.82" y="767.69" incLanes="81096816#3_0 149419435#3_0" intLanes=":1624003199_0_0 :1624003199_1_0" shape="991.86,771.22 994.70,769.74 991.83,764.25 988.99,765.73 988.29,767.84 989.86,770.63">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="1624020482" type="priority" x="938.16" y="1002.53" incLanes="24573930#1_0 149420179_0" intLanes=":1624020482_0_0 :1624020482_1_0" shape="938.13,1005.95 940.97,1004.47 941.71,1002.30 940.09,999.54 938.11,998.97 935.27,1000.45">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="1624020484" type="priority" x="1005.02" y="963.26" incLanes="24573897#2_0" intLanes=":1624020484_0_0 :1624020484_1_0" shape="1005.14,966.78 1007.94,965.24 1005.04,959.84 1002.21,961.32 1001.50,963.47 1003.12,966.23">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1624060630" type="priority" x="1421.20" y="874.99" incLanes="-149422210#1_0 149422210#0_0 166728377#1_0 -166728377#2_0 23566901#1_0" intLanes=":1624060630_0_0 :1624060630_1_0 :1624060630_2_0 :1624060630_3_0 :1624060630_25_0 :1624060630_5_0 :1624060630_26_0 :1624060630_27_0 :1624060630_8_0 :1624060630_28_0 :1624060630_10_0 :1624060630_11_0 :1624060630_12_0 :1624060630_13_0 :1624060630_14_0 :1624060630_15_0 :1624060630_16_0 :1624060630_17_0 :1624060630_18_0 :1624060630_19 [...]
+ <request index="0" response="0000000000000000000000000" foes="0100010000000100001000000" cont="0"/>
+ <request index="1" response="0000000000000000000000000" foes="1011101111001100011000000" cont="0"/>
+ <request index="2" response="0000000000000000000000000" foes="0011100111101100111000000" cont="0"/>
+ <request index="3" response="0000000000000000000000000" foes="0011000110010011111000000" cont="0"/>
+ <request index="4" response="0010000100000010000100000" foes="0010000100000010000100000" cont="1"/>
+ <request index="5" response="0000000000000000000000000" foes="0010000100000010000010000" cont="0"/>
+ <request index="6" response="0000000000000000000001111" foes="0110010100000110000001111" cont="1"/>
+ <request index="7" response="0000000000000000000001110" foes="1001101011001110000001110" cont="1"/>
+ <request index="8" response="0000000000000000000001100" foes="0001100011101110000001100" cont="0"/>
+ <request index="9" response="0001000010010000000001000" foes="0001000010010000000001000" cont="1"/>
+ <request index="10" response="0000000000000000111101000" foes="0011000110000000111111000" cont="0"/>
+ <request index="11" response="0000000000000000111000111" foes="0111010110000000111000111" cont="0"/>
+ <request index="12" response="0000101001000000110000110" foes="1000101001000000110000110" cont="0"/>
+ <request index="13" response="0000000000000000000001000" foes="0001000010000001000001000" cont="0"/>
+ <request index="14" response="0000100001000000100000100" foes="0000100001000000100000100" cont="0"/>
+ <request index="15" response="0000000000000000110000110" foes="1000100000101000110000110" cont="0"/>
+ <request index="16" response="0000000000010110110001110" foes="1001100000010111110001110" cont="0"/>
+ <request index="17" response="0000000000000110001101110" foes="1011100000000110001111110" cont="0"/>
+ <request index="18" response="0000000000000000010000010" foes="1000000000001000010000010" cont="0"/>
+ <request index="19" response="1111100000000100001000001" foes="1111100000000100001000001" cont="0"/>
+ <request index="20" response="0000000111000000110000110" foes="0000010111101000110000110" cont="0"/>
+ <request index="21" response="0000000110010110110001110" foes="0000010110010111110001110" cont="0"/>
+ <request index="22" response="0000000100000110001101110" foes="0000010100000110001111110" cont="0"/>
+ <request index="23" response="0000000000000100001000001" foes="0000010000000100001000001" cont="0"/>
+ <request index="24" response="0000001111001000010000010" foes="0000011111001000010000010" cont="0"/>
+ </junction>
+ <junction id="1625774769" type="priority" x="1638.79" y="2492.24" incLanes="-197781817_0" intLanes=":1625774769_0_0" shape="1638.74,2492.26 1635.90,2493.74 1641.67,2490.74 1638.83,2492.21">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1627657715" type="priority" x="702.84" y="1103.36" incLanes="-179917803#0_0 149819222_0 149819227#3_0" intLanes=":1627657715_0_0 :1627657715_9_0 :1627657715_10_0 :1627657715_3_0 :1627657715_4_0 :1627657715_5_0 :1627657715_6_0 :1627657715_7_0 :1627657715_11_0" shape="708.16,1104.78 705.81,1098.72 703.43,1097.34 697.64,1100.29 696.92,1102.17 699.26,1108.23">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1627657783" type="priority" x="674.51" y="1047.62" incLanes="-149819222_0 -149819232#0_0" intLanes=":1627657783_0_0 :1627657783_1_0 :1627657783_2_0 :1627657783_3_0" shape="672.68,1051.20 678.48,1048.25 671.68,1044.78 672.68,1051.20">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1627657822" type="priority" x="637.79" y="1053.35" incLanes="-149819224_0 149819232#1_0 -149819232#2_0" intLanes=":1627657822_0_0 :1627657822_1_0 :1627657822_2_0 :1627657822_3_0 :1627657822_4_0 :1627657822_9_0 :1627657822_6_0 :1627657822_10_0 :1627657822_11_0" shape="637.65,1060.17 643.43,1057.20 644.22,1055.63 643.22,1049.21 633.49,1050.73 634.49,1057.15">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1627657825" type="priority" x="670.97" y="1117.78" incLanes="-149819227#2_0 149819224_0 149819227#1_0" intLanes=":1627657825_0_0 :1627657825_9_0 :1627657825_10_0 :1627657825_3_0 :1627657825_4_0 :1627657825_5_0 :1627657825_6_0 :1627657825_7_0 :1627657825_11_0" shape="676.68,1118.49 673.70,1112.71 671.68,1112.06 665.90,1115.04 665.26,1117.06 668.23,1122.84">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1634988377" type="priority" x="748.19" y="1445.93" incLanes="105254618_0 -130443630#3_0 130443630#2_0" intLanes=":1634988377_0_0 :1634988377_1_0 :1634988377_2_0 :1634988377_3_0 :1634988377_4_0 :1634988377_9_0 :1634988377_6_0 :1634988377_10_0 :1634988377_11_0" shape="752.33,1450.35 753.95,1444.05 752.05,1442.02 745.62,1441.08 744.23,1450.52 750.66,1451.46">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1639892546" type="right_before_left" x="1136.82" y="1024.60" incLanes="-197955309#1_0 -151164683_0 197955309#0_0" intLanes=":1639892546_0_0 :1639892546_1_0 :1639892546_2_0 :1639892546_3_0 :1639892546_4_0 :1639892546_5_0 :1639892546_6_0 :1639892546_7_0 :1639892546_8_0" shape="1142.64,1025.19 1139.59,1019.45 1137.60,1018.81 1131.76,1021.66 1131.22,1023.97 1134.36,1029.66">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1669480279" type="priority" x="1456.23" y="1559.65" incLanes="38319548#10_0 101272435#3_0 -38319548#11_0" intLanes=":1669480279_0_0 :1669480279_1_0 :1669480279_2_0 :1669480279_3_0 :1669480279_4_0 :1669480279_5_0 :1669480279_6_0 :1669480279_7_0 :1669480279_8_0" shape="1456.88,1564.32 1459.71,1562.83 1458.91,1562.93 1457.73,1555.96 1455.57,1554.97 1452.74,1556.47 1453.65,1556.14 1454.72,1563.33">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1669480280" type="priority" x="1469.16" y="1575.47" incLanes="38319548#9_0 -154844500#2_0 -38319548#10_0 154844500#1_0" intLanes=":1669480280_0_0 :1669480280_1_0 :1669480280_2_0 :1669480280_3_0 :1669480280_4_0 :1669480280_5_0 :1669480280_16_0 :1669480280_17_0 :1669480280_8_0 :1669480280_9_0 :1669480280_10_0 :1669480280_11_0 :1669480280_12_0 :1669480280_13_0 :1669480280_18_0 :1669480280_19_0" shape="1468.49,1581.19 1474.25,1578.17 1474.88,1576.15 1471.87,1570.39 1469.83, [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="1669480281" type="priority" x="1452.12" y="1584.37" incLanes="-154844500#0_0 154844491#1_0 154844491#1_1 160587542_0 160587542_1" intLanes=":1669480281_0_0 :1669480281_1_0 :1669480281_2_0 :1669480281_3_0 :1669480281_4_0 :1669480281_5_0 :1669480281_6_0 :1669480281_7_0 :1669480281_8_0 :1669480281_9_0" shape="1453.02,1592.98 1458.76,1589.93 1457.86,1585.04 1454.85,1579.28 1451.19,1575.72 1445.46,1578.77 1444.83,1580.79 1450.89,1592.40">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="1669480282" type="priority" x="1441.50" y="1589.92" incLanes="81124939#1_0 81124939#1_1 -154844503_0 -154844503_1 110514869#2_0 110514869#2_1" intLanes=":1669480282_0_0 :1669480282_1_0 :1669480282_2_0 :1669480282_3_0 :1669480282_4_0 :1669480282_5_0 :1669480282_6_0 :1669480282_7_0 :1669480282_8_0 :1669480282_9_0 :1669480282_10_0" shape="1442.40,1598.57 1448.14,1595.53 1448.77,1593.51 1442.71,1581.90 1440.61,1581.27 1434.86,1584.30 1434.23,1586.32 1440.29,1597.93">
+ <request index="0" response="00000000000" foes="10000010000" cont="0"/>
+ <request index="1" response="00000000000" foes="01110110000" cont="0"/>
+ <request index="2" response="00000000000" foes="01110110000" cont="0"/>
+ <request index="3" response="00000000000" foes="01001110000" cont="0"/>
+ <request index="4" response="00000001111" foes="10000001111" cont="0"/>
+ <request index="5" response="01110001110" foes="01110001110" cont="0"/>
+ <request index="6" response="01000001000" foes="01000001000" cont="0"/>
+ <request index="7" response="00000000110" foes="00000100110" cont="0"/>
+ <request index="8" response="00000000110" foes="00000100110" cont="0"/>
+ <request index="9" response="00000001110" foes="00001101110" cont="0"/>
+ <request index="10" response="00000010001" foes="00000010001" cont="0"/>
+ </junction>
+ <junction id="1669480283" type="priority" x="1472.85" y="1591.19" incLanes="-38319548#8_0 101272435#5_0 38319548#7_0" intLanes=":1669480283_0_0 :1669480283_1_0 :1669480283_2_0 :1669480283_3_0 :1669480283_4_0 :1669480283_5_0 :1669480283_6_0 :1669480283_7_0 :1669480283_8_0" shape="1473.65,1596.14 1476.48,1594.65 1477.11,1592.62 1470.97,1585.90 1472.05,1586.24 1469.22,1587.73 1468.59,1589.75 1471.61,1595.51">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1669480284" type="priority" x="1459.45" y="1598.15" incLanes="-38319548#6_0 154844474#0_0 154844474#0_1 38319548#5_0" intLanes=":1669480284_0_0 :1669480284_1_0 :1669480284_2_0 :1669480284_3_0 :1669480284_4_0 :1669480284_5_0 :1669480284_6_0 :1669480284_7_0 :1669480284_8_0 :1669480284_9_0" shape="1458.83,1603.91 1464.57,1600.85 1465.20,1598.84 1462.21,1593.07 1460.07,1592.40 1454.33,1595.45 1453.71,1597.46 1456.69,1603.24">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="1669480286" type="priority" x="1448.77" y="1603.67" incLanes="81124939#0_0 81124939#0_1 -38319548#4_0 38319548#3_0" intLanes=":1669480286_0_0 :1669480286_1_0 :1669480286_2_0 :1669480286_3_0 :1669480286_4_0 :1669480286_5_0 :1669480286_6_0 :1669480286_7_0 :1669480286_8_0 :1669480286_9_0" shape="1448.13,1609.42 1453.87,1606.38 1454.51,1604.37 1451.52,1598.59 1449.41,1597.93 1443.67,1600.97 1443.03,1602.98 1446.02,1608.76">
+ <request index="0" response="0000000000" foes="1000010000" cont="0"/>
+ <request index="1" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="2" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="3" response="0000000000" foes="0101110000" cont="0"/>
+ <request index="4" response="0000001111" foes="1000001111" cont="0"/>
+ <request index="5" response="0110001110" foes="0110001110" cont="0"/>
+ <request index="6" response="0100001000" foes="0100001000" cont="0"/>
+ <request index="7" response="0000000110" foes="0000100110" cont="0"/>
+ <request index="8" response="0000001110" foes="0001101110" cont="0"/>
+ <request index="9" response="0000010001" foes="0000010001" cont="0"/>
+ </junction>
+ <junction id="1669480287" type="priority" x="1435.26" y="1610.66" incLanes="37771900#4_0 -38319548#3_0 38319548#2_0" intLanes=":1669480287_0_0 :1669480287_1_0 :1669480287_2_0 :1669480287_3_0 :1669480287_4_0 :1669480287_5_0 :1669480287_6_0 :1669480287_7_0 :1669480287_8_0" shape="1436.36,1615.65 1439.11,1614.02 1439.68,1612.04 1436.69,1606.27 1434.17,1605.68 1431.41,1607.31 1430.85,1609.29 1433.83,1615.06">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="000000000" foes="011011000" cont="0"/>
+ <request index="2" response="000000000" foes="010111000" cont="0"/>
+ <request index="3" response="000000111" foes="100000111" cont="0"/>
+ <request index="4" response="011000110" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="0"/>
+ <request index="6" response="000000010" foes="000010010" cont="0"/>
+ <request index="7" response="000000110" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="1669480292" type="priority" x="1587.31" y="1819.14" incLanes="-81096822#1_0 81096822#0_0 172498387#3_0" intLanes=":1669480292_0_0 :1669480292_1_0 :1669480292_2_0 :1669480292_3_0 :1669480292_4_0 :1669480292_5_0 :1669480292_6_0 :1669480292_7_0 :1669480292_8_0" shape="1585.87,1823.40 1591.63,1820.39 1592.26,1818.33 1590.77,1815.50 1588.75,1814.87 1582.99,1817.88 1582.36,1819.94 1583.85,1822.77">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1670156969" type="unregulated" x="1583.27" y="1846.87" incLanes="" intLanes="" shape="1581.77,1843.99 1584.78,1849.75">
+ </junction>
+ <junction id="1718241040" type="priority" x="755.09" y="305.48" incLanes="151164683_0" intLanes=":1718241040_0_0" shape="755.12,305.44 757.14,302.96 753.03,307.99 755.05,305.52">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1719213140" type="priority" x="1244.80" y="1683.03" incLanes="38319549#1_0 -38319549#2_0 151167658#0_0" intLanes=":1719213140_0_0 :1719213140_1_0 :1719213140_2_0 :1719213140_3_0 :1719213140_4_0 :1719213140_5_0 :1719213140_6_0 :1719213140_7_0 :1719213140_8_0" shape="1243.36,1687.29 1249.12,1684.26 1249.75,1682.24 1248.27,1679.41 1246.15,1678.71 1240.44,1681.81 1239.82,1683.82 1241.31,1686.66">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1719213141" type="priority" x="1252.03" y="1696.80" incLanes="38319549#0_0 44738605#1_0 -38319549#1_0" intLanes=":1719213141_0_0 :1719213141_1_0 :1719213141_2_0 :1719213141_3_0 :1719213141_4_0 :1719213141_5_0 :1719213141_6_0 :1719213141_7_0 :1719213141_8_0" shape="1250.60,1701.07 1256.36,1698.05 1256.98,1695.98 1255.48,1693.15 1253.46,1692.53 1247.71,1695.55 1247.08,1697.62 1248.58,1700.44">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1719213509" type="priority" x="840.35" y="971.51" incLanes="38319550#11_0 -38319550#12_0 8272412#0_0" intLanes=":1719213509_0_0 :1719213509_1_0 :1719213509_2_0 :1719213509_3_0 :1719213509_4_0 :1719213509_5_0 :1719213509_6_0 :1719213509_7_0 :1719213509_8_0" shape="839.25,975.96 844.80,972.58 845.33,970.57 843.78,967.77 841.61,966.96 835.87,970.01 835.19,971.91 836.42,974.87">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1719213668" type="priority" x="789.27" y="881.21" incLanes="38319550#12_0 -38319550#13_0 149419435#0_0" intLanes=":1719213668_0_0 :1719213668_1_0 :1719213668_2_0 :1719213668_3_0 :1719213668_4_0 :1719213668_5_0 :1719213668_6_0 :1719213668_7_0 :1719213668_8_0" shape="787.87,885.55 793.63,882.55 794.25,880.25 792.68,877.46 790.68,876.86 784.91,879.86 784.30,882.16 785.87,884.95">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1719223322" type="priority" x="1073.63" y="1558.52" incLanes="81672207#1_0 105254616#1_0" intLanes=":1719223322_0_0 :1719223322_1_0 :1719223322_2_0 :1719223322_3_0" shape="1074.42,1563.45 1077.25,1561.95 1072.87,1553.55 1070.03,1555.02 1069.38,1557.04 1072.33,1562.83">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0000" foes="0100" cont="0"/>
+ <request index="2" response="0010" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1719223329" type="priority" x="921.87" y="1598.37" incLanes="-105254616#1_0 191056427#1_0 105254616#0_0" intLanes=":1719223329_0_0 :1719223329_1_0 :1719223329_9_0 :1719223329_3_0 :1719223329_10_0 :1719223329_11_0 :1719223329_6_0 :1719223329_7_0 :1719223329_8_0" shape="925.41,1600.21 922.46,1594.42 919.62,1595.07 919.48,1601.57 919.54,1595.76 921.76,1601.87">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="000000000" foes="011110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000011" foes="101000011" cont="1"/>
+ <request index="5" response="010000010" foes="010000010" cont="1"/>
+ <request index="6" response="000011010" foes="000011110" cont="0"/>
+ <request index="7" response="000000010" foes="000100010" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1726380179" type="traffic_light" x="820.60" y="440.63" incLanes="81096816#5_0" intLanes=":1726380179_0_0" shape="819.18,441.37 822.02,439.90 819.18,441.37">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1726380184" type="priority" x="681.18" y="1353.27" incLanes="160584981_0 37973569#7_0" intLanes=":1726380184_0_0 :1726380184_4_0 :1726380184_2_0 :1726380184_3_0" shape="679.82,1357.61 685.55,1354.55 686.06,1352.33 684.48,1349.55 676.22,1354.25 677.81,1357.03">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="1726380187" type="priority" x="712.82" y="1412.54" incLanes="160584980_0 -160584981_0" intLanes=":1726380187_0_0 :1726380187_1_0 :1726380187_2_0 :1726380187_4_0" shape="714.47,1419.05 717.30,1417.55 717.93,1416.90 719.37,1414.04 715.84,1411.30 710.10,1414.36">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="1726380193" type="priority" x="735.29" y="1423.83" incLanes="160584982#0_0 81394192#9_0" intLanes=":1726380193_0_0 :1726380193_1_0 :1726380193_2_0 :1726380193_3_0" shape="738.08,1426.31 738.98,1423.24 737.38,1420.34 734.21,1419.91 732.67,1420.72 731.23,1423.58 733.28,1426.98 736.46,1427.38">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="1726380194" type="priority" x="750.78" y="1428.36" incLanes="-130443630#4_0 160584982#1_0 130443630#3_0" intLanes=":1726380194_0_0 :1726380194_6_0 :1726380194_2_0 :1726380194_3_0 :1726380194_4_0 :1726380194_7_0" shape="754.51,1425.30 748.08,1424.36 746.42,1425.42 745.52,1428.49 747.17,1430.52 753.60,1431.47">
+ <request index="0" response="000000" foes="101000" cont="0"/>
+ <request index="1" response="010100" foes="010100" cont="1"/>
+ <request index="2" response="010000" foes="010010" cont="0"/>
+ <request index="3" response="010001" foes="110001" cont="0"/>
+ <request index="4" response="000000" foes="001110" cont="0"/>
+ <request index="5" response="001001" foes="001001" cont="1"/>
+ </junction>
+ <junction id="1726380195" type="priority" x="732.15" y="1448.85" incLanes="81394192#8_0" intLanes=":1726380195_0_0 :1726380195_1_0" shape="734.55,1442.56 731.37,1442.16 730.48,1442.32 727.66,1443.82 730.77,1447.11 733.94,1447.53">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="1726380204" type="priority" x="648.77" y="1609.36" incLanes="43684741#2_0 170088033_0 -43684741#3_0" intLanes=":1726380204_0_0 :1726380204_6_0 :1726380204_2_0 :1726380204_3_0 :1726380204_4_0 :1726380204_7_0" shape="646.85,1611.98 650.66,1606.71 647.93,1600.50 644.85,1601.37 644.05,1601.93 640.24,1607.20">
+ <request index="0" response="000000" foes="101000" cont="0"/>
+ <request index="1" response="010100" foes="010100" cont="1"/>
+ <request index="2" response="010000" foes="010010" cont="0"/>
+ <request index="3" response="010001" foes="110001" cont="0"/>
+ <request index="4" response="000000" foes="001110" cont="0"/>
+ <request index="5" response="001001" foes="001001" cont="1"/>
+ </junction>
+ <junction id="1726394722" type="traffic_light" x="1058.38" y="848.26" incLanes="-160587538#0_0 -160587538#0_1 8272412#4_0" intLanes=":1726394722_0_0 :1726394722_1_0 :1726394722_2_0" shape="1054.12,854.26 1065.74,848.23 1050.54,850.89 1052.12,853.67">
+ <request index="0" response="110" foes="110" cont="0"/>
+ <request index="1" response="000" foes="001" cont="0"/>
+ <request index="2" response="000" foes="001" cont="0"/>
+ </junction>
+ <junction id="1726394723" type="priority" x="1163.83" y="1049.62" incLanes="-160587538#3_0 -160587538#3_1 160587538#2_0 160587538#2_1 111863096#1_0" intLanes=":1726394723_0_0 :1726394723_1_0 :1726394723_2_0 :1726394723_3_0 :1726394723_4_0 :1726394723_5_0 :1726394723_6_0 :1726394723_7_0 :1726394723_8_0" shape="1158.81,1054.09 1170.29,1047.78 1165.93,1050.25 1164.32,1047.48 1168.78,1045.08 1157.40,1051.56 1161.73,1049.00 1163.34,1051.76">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1726394724" type="traffic_light" x="1168.04" y="1057.27" incLanes="-160587538#4_0 -160587538#4_1 149868584#3_0 149868584#3_1 160587538#3_0 160587538#3_1 -149868584#4_0 -149868584#4_1" intLanes=":1726394724_0_0 :1726394724_1_0 :1726394724_18_0 :1726394724_19_0 :1726394724_4_0 :1726394724_5_0 :1726394724_6_0 :1726394724_20_0 :1726394724_21_0 :1726394724_9_0 :1726394724_10_0 :1726394724_22_0 :1726394724_23_0 :1726394724_13_0 :1726394724_14_0 :1726394724_15_0 :1726394724_24 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="1"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="1"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="1"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="1"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="1726394725" type="priority" x="1171.88" y="1065.08" incLanes="-160587538#5_0 -160587538#5_1 103851602#2_0 160587538#4_0 160587538#4_1" intLanes=":1726394725_0_0 :1726394725_1_0 :1726394725_2_0 :1726394725_3_0 :1726394725_4_0 :1726394725_5_0 :1726394725_6_0 :1726394725_7_0 :1726394725_8_0" shape="1166.77,1069.43 1178.38,1063.38 1173.98,1065.73 1172.40,1062.95 1177.09,1060.84 1165.34,1066.63 1169.79,1064.43 1171.37,1067.21">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1726394726" type="traffic_light" x="1446.82" y="1587.14" incLanes="-160587537#0_0 -160587537#0_1 -160587542_0 -160587542_1 160587538#7_0 160587538#7_1 154844503_0 154844503_1" intLanes=":1726394726_0_0 :1726394726_1_0 :1726394726_2_0 :1726394726_18_0 :1726394726_4_0 :1726394726_5_0 :1726394726_6_0 :1726394726_19_0 :1726394726_20_0 :1726394726_9_0 :1726394726_10_0 :1726394726_11_0 :1726394726_21_0 :1726394726_13_0 :1726394726_14_0 :1726394726_15_0 :1726394726_22_0 :17263 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="1"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="1"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="1726394727" type="priority" x="1453.88" y="1601.03" incLanes="-160587537#1_0 -160587537#1_1 -38319548#5_0 160587537#0_0 160587537#0_1 38319548#4_0" intLanes=":1726394727_0_0 :1726394727_1_0 :1726394727_2_0 :1726394727_3_0 :1726394727_18_0 :1726394727_5_0 :1726394727_6_0 :1726394727_7_0 :1726394727_8_0 :1726394727_9_0 :1726394727_10_0 :1726394727_11_0 :1726394727_12_0 :1726394727_19_0 :1726394727_14_0 :1726394727_15_0 :1726394727_16_0 :1726394727_17_0" shape="1448.78,160 [...]
+ <request index="0" response="000000000000000000" foes="100001000001000000" cont="0"/>
+ <request index="1" response="000000000000000000" foes="011111000011000000" cont="0"/>
+ <request index="2" response="000000000000000000" foes="011111000011000000" cont="0"/>
+ <request index="3" response="000000111000000000" foes="011000111111000000" cont="0"/>
+ <request index="4" response="010000110000100000" foes="010000110000100000" cont="1"/>
+ <request index="5" response="000000110000000000" foes="010000110000010000" cont="0"/>
+ <request index="6" response="000001110000001111" foes="110001110000001111" cont="0"/>
+ <request index="7" response="001101110000001110" foes="001111110000001110" cont="0"/>
+ <request index="8" response="001000001000001000" foes="001000001000001000" cont="0"/>
+ <request index="9" response="000000000000000000" foes="001000000100001000" cont="0"/>
+ <request index="10" response="000000000000000000" foes="011000000011111000" cont="0"/>
+ <request index="11" response="000000000000000000" foes="011000000011111000" cont="0"/>
+ <request index="12" response="000000000000000111" foes="111000000011000111" cont="0"/>
+ <request index="13" response="000100000010000110" foes="000100000010000110" cont="1"/>
+ <request index="14" response="000000000000000110" foes="000010000010000110" cont="0"/>
+ <request index="15" response="000001111000001110" foes="000001111110001110" cont="0"/>
+ <request index="16" response="000001110001101110" foes="000001110001111110" cont="0"/>
+ <request index="17" response="000001000001000001" foes="000001000001000001" cont="0"/>
+ </junction>
+ <junction id="1726394728" type="priority" x="1572.50" y="1826.82" incLanes="-160587537#2_0 -160587537#2_1 160587537#1_0 160587537#1_1 172498387#2_0" intLanes=":1726394728_0_0 :1726394728_1_0 :1726394728_11_0 :1726394728_12_0 :1726394728_4_0 :1726394728_5_0 :1726394728_6_0 :1726394728_13_0 :1726394728_8_0 :1726394728_9_0 :1726394728_10_0" shape="1568.14,1832.80 1579.90,1827.02 1580.38,1824.61 1578.93,1821.75 1576.90,1821.11 1565.30,1827.20 1564.59,1829.37 1566.16,1832.16">
+ <request index="0" response="00000000000" foes="11110000000" cont="0"/>
+ <request index="1" response="00000000000" foes="11110000000" cont="0"/>
+ <request index="2" response="00001110000" foes="11001110000" cont="1"/>
+ <request index="3" response="10001100000" foes="10001100000" cont="1"/>
+ <request index="4" response="00000000000" foes="01000000100" cont="0"/>
+ <request index="5" response="00000000000" foes="11000001100" cont="0"/>
+ <request index="6" response="00000000000" foes="11000001100" cont="0"/>
+ <request index="7" response="00100000011" foes="00100000011" cont="1"/>
+ <request index="8" response="00000000011" foes="00010000011" cont="0"/>
+ <request index="9" response="00001110111" foes="00001110111" cont="0"/>
+ <request index="10" response="00001100111" foes="00001101111" cont="0"/>
+ </junction>
+ <junction id="1726394729" type="priority" x="1577.27" y="1836.52" incLanes="-160587537#3_0 -160587537#3_1 160587537#2_0 160587537#2_1 149408824#0_0 149408824#0_1" intLanes=":1726394729_0_0 :1726394729_1_0 :1726394729_2_0 :1726394729_3_0 :1726394729_4_0 :1726394729_5_0 :1726394729_6_0 :1726394729_7_0 :1726394729_8_0 :1726394729_9_0 :1726394729_10_0" shape="1574.48,1844.43 1585.60,1837.50 1586.14,1835.54 1583.11,1829.78 1580.97,1829.21 1569.21,1834.98 1568.70,1837.33 1571.71,1843.09">
+ <request index="0" response="11110000000" foes="11111000000" cont="0"/>
+ <request index="1" response="11100111000" foes="11100111000" cont="0"/>
+ <request index="2" response="10000100000" foes="10000100000" cont="0"/>
+ <request index="3" response="01100000000" foes="01100000010" cont="0"/>
+ <request index="4" response="01100000000" foes="01100000010" cont="0"/>
+ <request index="5" response="11100000000" foes="11100000110" cont="0"/>
+ <request index="6" response="00010000001" foes="00010000001" cont="0"/>
+ <request index="7" response="00000000000" foes="00001000001" cont="0"/>
+ <request index="8" response="00000000000" foes="00000111011" cont="0"/>
+ <request index="9" response="00000000000" foes="00000111011" cont="0"/>
+ <request index="10" response="00000000000" foes="00000100111" cont="0"/>
+ </junction>
+ <junction id="1780219331" type="priority" x="820.14" y="1034.90" incLanes="42976406#2_0 42976406#2_1 42976406#2_2 -166576464#2_0 166576464#1_0" intLanes=":1780219331_0_0 :1780219331_1_0 :1780219331_2_0 :1780219331_3_0 :1780219331_4_0 :1780219331_5_0 :1780219331_6_0 :1780219331_7_0 :1780219331_8_0 :1780219331_9_0 :1780219331_10_0" shape="818.08,1041.46 826.73,1036.85 827.79,1032.11 823.32,1027.40 821.52,1027.11 812.88,1031.74 813.26,1034.98 816.39,1040.67">
+ <request index="0" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="2" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="3" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="4" response="00000000000" foes="01011100000" cont="0"/>
+ <request index="5" response="00000011111" foes="10000011111" cont="0"/>
+ <request index="6" response="01100011110" foes="01100011110" cont="0"/>
+ <request index="7" response="01000010000" foes="01000010000" cont="0"/>
+ <request index="8" response="00000001110" foes="00001001110" cont="0"/>
+ <request index="9" response="00000011110" foes="00011011110" cont="0"/>
+ <request index="10" response="00000100001" foes="00000100001" cont="0"/>
+ </junction>
+ <junction id="1780219332" type="priority" x="934.51" y="1161.26" incLanes="38319550#8_0 -38319550#9_0 166576468#3_0" intLanes=":1780219332_0_0 :1780219332_1_0 :1780219332_2_0 :1780219332_3_0 :1780219332_4_0 :1780219332_5_0 :1780219332_6_0 :1780219332_7_0 :1780219332_8_0" shape="933.81,1166.98 939.58,1163.99 935.21,1155.56 929.44,1158.55 928.78,1160.58 931.79,1166.34">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219335" type="right_before_left" x="860.88" y="1140.91" incLanes="166576462#7_0 -166576462#8_0 -166576466#0_0" intLanes=":1780219335_0_0 :1780219335_1_0 :1780219335_2_0 :1780219335_3_0 :1780219335_4_0 :1780219335_5_0 :1780219335_6_0 :1780219335_7_0 :1780219335_8_0" shape="860.23,1146.59 865.96,1143.54 861.54,1135.18 855.78,1138.20 855.15,1140.21 858.13,1145.99">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219341" type="priority" x="909.11" y="1223.86" incLanes="166576462#3_0 37973569#2_0 -166576462#4_0" intLanes=":1780219341_0_0 :1780219341_1_0 :1780219341_2_0 :1780219341_3_0 :1780219341_4_0 :1780219341_5_0 :1780219341_6_0 :1780219341_7_0 :1780219341_8_0" shape="907.35,1228.39 913.43,1226.08 914.09,1222.91 912.52,1220.12 910.52,1219.52 904.75,1222.51 903.95,1224.93 905.51,1227.72">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1780219342" type="priority" x="833.43" y="1022.26" incLanes="-166576464#3_0 154500693#0_0 154500693#0_1 154500693#0_2 166576464#2_0" intLanes=":1780219342_0_0 :1780219342_1_0 :1780219342_2_0 :1780219342_3_0 :1780219342_4_0 :1780219342_5_0 :1780219342_6_0 :1780219342_7_0 :1780219342_8_0 :1780219342_9_0 :1780219342_10_0" shape="831.98,1030.12 840.68,1025.62 841.17,1018.18 836.22,1013.97 834.56,1013.78 825.86,1018.28 825.72,1025.11 830.20,1029.82">
+ <request index="0" response="00001110000" foes="01001110000" cont="0"/>
+ <request index="1" response="00011110000" foes="11011110000" cont="0"/>
+ <request index="2" response="00100001000" foes="00100001000" cont="0"/>
+ <request index="3" response="00000000000" foes="00100000100" cont="0"/>
+ <request index="4" response="00000000000" foes="01100000011" cont="0"/>
+ <request index="5" response="00000000000" foes="01100000011" cont="0"/>
+ <request index="6" response="00000000000" foes="01100000011" cont="0"/>
+ <request index="7" response="00000000000" foes="11100000010" cont="0"/>
+ <request index="8" response="00011111000" foes="00011111100" cont="0"/>
+ <request index="9" response="00011110011" foes="00011110011" cont="0"/>
+ <request index="10" response="00010000010" foes="00010000010" cont="0"/>
+ </junction>
+ <junction id="1780219343" type="priority" x="897.67" y="1180.47" incLanes="42976406#1_0 42976406#1_1 42976406#1_2 -166576468#1_0 166576468#0_0" intLanes=":1780219343_0_0 :1780219343_1_0 :1780219343_2_0 :1780219343_3_0 :1780219343_4_0 :1780219343_5_0 :1780219343_6_0 :1780219343_7_0 :1780219343_8_0 :1780219343_9_0 :1780219343_10_0" shape="895.60,1187.01 904.25,1182.40 904.87,1180.38 901.87,1174.62 899.74,1173.94 891.09,1178.55 890.47,1180.56 893.47,1186.33">
+ <request index="0" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="2" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="3" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="4" response="00000000000" foes="01011100000" cont="0"/>
+ <request index="5" response="00000011111" foes="10000011111" cont="0"/>
+ <request index="6" response="01100011110" foes="01100011110" cont="0"/>
+ <request index="7" response="01000010000" foes="01000010000" cont="0"/>
+ <request index="8" response="00000001110" foes="00001001110" cont="0"/>
+ <request index="9" response="00000011110" foes="00011011110" cont="0"/>
+ <request index="10" response="00000100001" foes="00000100001" cont="0"/>
+ </junction>
+ <junction id="1780219344" type="right_before_left" x="846.36" y="1148.40" incLanes="166576466#0_0 -166576463_0 -166576466#1_0" intLanes=":1780219344_0_0 :1780219344_1_0 :1780219344_2_0 :1780219344_3_0 :1780219344_4_0 :1780219344_5_0 :1780219344_6_0 :1780219344_7_0 :1780219344_8_0" shape="853.55,1148.35 850.57,1142.57 849.12,1141.77 842.64,1142.25 841.63,1147.21 844.65,1152.97">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219345" type="priority" x="786.51" y="1179.73" incLanes="166576466#2_0 -130443630#10_0 130443630#9_0" intLanes=":1780219345_0_0 :1780219345_1_0 :1780219345_2_0 :1780219345_3_0 :1780219345_4_0 :1780219345_9_0 :1780219345_6_0 :1780219345_10_0 :1780219345_11_0" shape="795.00,1178.99 792.01,1173.22 790.90,1172.42 784.47,1171.46 782.83,1182.37 789.26,1183.33">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1780219348" type="right_before_left" x="843.27" y="1107.37" incLanes="166576463_0 166576462#8_0 -166576462#9_0" intLanes=":1780219348_0_0 :1780219348_1_0 :1780219348_2_0 :1780219348_3_0 :1780219348_4_0 :1780219348_5_0 :1780219348_6_0 :1780219348_7_0 :1780219348_8_0" shape="841.32,1124.77 847.81,1124.28 848.39,1124.11 854.15,1121.09 851.73,1116.75 845.94,1119.71">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219352" type="priority" x="911.50" y="1173.27" incLanes="-166576468#2_0 154500693#1_0 154500693#1_1 154500693#1_2 166576468#1_0" intLanes=":1780219352_0_0 :1780219352_1_0 :1780219352_2_0 :1780219352_3_0 :1780219352_4_0 :1780219352_5_0 :1780219352_6_0 :1780219352_7_0 :1780219352_8_0 :1780219352_9_0 :1780219352_10_0" shape="909.34,1179.75 918.04,1175.24 918.69,1173.18 915.68,1167.42 913.67,1166.78 904.96,1171.28 904.32,1173.34 907.32,1179.11">
+ <request index="0" response="00001110000" foes="01001110000" cont="0"/>
+ <request index="1" response="00011110000" foes="11011110000" cont="0"/>
+ <request index="2" response="00100001000" foes="00100001000" cont="0"/>
+ <request index="3" response="00000000000" foes="00100000100" cont="0"/>
+ <request index="4" response="00000000000" foes="01100000011" cont="0"/>
+ <request index="5" response="00000000000" foes="01100000011" cont="0"/>
+ <request index="6" response="00000000000" foes="01100000011" cont="0"/>
+ <request index="7" response="00000000000" foes="11100000010" cont="0"/>
+ <request index="8" response="00011111000" foes="00011111100" cont="0"/>
+ <request index="9" response="00011110011" foes="00011110011" cont="0"/>
+ <request index="10" response="00010000010" foes="00010000010" cont="0"/>
+ </junction>
+ <junction id="1780219353" type="priority" x="901.34" y="1208.86" incLanes="166576462#4_0 37973572#0_0 37973572#0_1 -166576462#5_0 -37973572#1_0 -37973572#1_1" intLanes=":1780219353_0_0 :1780219353_1_0 :1780219353_2_0 :1780219353_3_0 :1780219353_4_0 :1780219353_5_0 :1780219353_6_0 :1780219353_18_0 :1780219353_19_0 :1780219353_9_0 :1780219353_10_0 :1780219353_11_0 :1780219353_12_0 :1780219353_13_0 :1780219353_14_0 :1780219353_15_0 :1780219353_20_0 :1780219353_21_0" shape="902.22,1217.6 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="1780219355" type="priority" x="791.37" y="1147.45" incLanes="-166576459_0 -130443630#11_0 130443630#10_0" intLanes=":1780219355_0_0 :1780219355_1_0 :1780219355_2_0 :1780219355_3_0 :1780219355_4_0 :1780219355_9_0 :1780219355_6_0 :1780219355_10_0 :1780219355_11_0" shape="795.07,1153.84 798.69,1148.44 795.11,1144.41 788.69,1143.44 787.17,1153.52 793.60,1154.48">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="1780219359" type="priority" x="924.37" y="1227.56" incLanes="133960539#1_0 133960539#1_1 166576462#2_0 -166576462#3_0" intLanes=":1780219359_0_0 :1780219359_1_0 :1780219359_2_0 :1780219359_3_0 :1780219359_4_0 :1780219359_5_0 :1780219359_6_0 :1780219359_7_0 :1780219359_8_0 :1780219359_9_0" shape="923.63,1233.37 929.45,1230.47 930.18,1228.11 927.10,1222.39 925.11,1221.76 919.29,1224.66 918.53,1227.05 921.65,1232.75">
+ <request index="0" response="0000000000" foes="1000010000" cont="0"/>
+ <request index="1" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="2" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="3" response="0000000000" foes="0101110000" cont="0"/>
+ <request index="4" response="0000001111" foes="1000001111" cont="0"/>
+ <request index="5" response="0110001110" foes="0110001110" cont="0"/>
+ <request index="6" response="0100001000" foes="0100001000" cont="0"/>
+ <request index="7" response="0000000110" foes="0000100110" cont="0"/>
+ <request index="8" response="0000001110" foes="0001101110" cont="0"/>
+ <request index="9" response="0000010001" foes="0000010001" cont="0"/>
+ </junction>
+ <junction id="1780219360" type="priority" x="894.17" y="1195.25" incLanes="166576462#5_0 -166576462#6_0 37973568#4_0" intLanes=":1780219360_0_0 :1780219360_1_0 :1780219360_2_0 :1780219360_3_0 :1780219360_4_0 :1780219360_5_0 :1780219360_6_0 :1780219360_7_0 :1780219360_8_0" shape="892.78,1199.58 898.53,1196.55 899.07,1194.36 897.51,1191.56 894.44,1190.37 889.35,1194.42 888.98,1196.32 890.54,1199.12">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="1780219361" type="priority" x="935.02" y="1221.81" incLanes="166576462#1_0 42976405#2_0 42976405#2_1 -166576462#2_0" intLanes=":1780219361_0_0 :1780219361_1_0 :1780219361_2_0 :1780219361_3_0 :1780219361_4_0 :1780219361_5_0 :1780219361_6_0 :1780219361_7_0 :1780219361_8_0 :1780219361_9_0" shape="934.34,1227.57 940.12,1224.58 940.75,1222.47 937.73,1216.72 935.71,1216.08 929.94,1219.07 929.25,1221.23 932.33,1226.95">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="1780219362" type="priority" x="926.50" y="1165.44" incLanes="-166576468#3_0 101272424#2_0 166576468#2_0" intLanes=":1780219362_0_0 :1780219362_1_0 :1780219362_2_0 :1780219362_3_0 :1780219362_4_0 :1780219362_5_0 :1780219362_6_0 :1780219362_7_0 :1780219362_8_0" shape="927.29,1170.39 930.13,1168.90 930.76,1166.88 927.75,1161.12 925.71,1160.49 922.88,1161.97 922.24,1163.99 925.25,1169.76">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1780219363" type="priority" x="846.02" y="1007.46" incLanes="-166576464#4_0 101272424#0_0 166576464#3_0" intLanes=":1780219363_0_0 :1780219363_1_0 :1780219363_2_0 :1780219363_3_0 :1780219363_4_0 :1780219363_5_0 :1780219363_6_0 :1780219363_7_0 :1780219363_8_0" shape="847.15,1013.28 850.01,1011.85 851.19,1007.20 846.86,1002.35 845.07,1002.01 842.21,1003.44 840.55,1008.87 845.50,1013.08">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1780219365" type="priority" x="959.00" y="1208.51" incLanes="38319550#2_0 -38319550#3_0 -166576462#0_0" intLanes=":1780219365_0_0 :1780219365_1_0 :1780219365_2_0 :1780219365_3_0 :1780219365_4_0 :1780219365_5_0 :1780219365_6_0 :1780219365_7_0 :1780219365_8_0" shape="959.06,1213.97 965.62,1207.84 959.81,1203.00 954.03,1205.99 953.25,1208.23 956.65,1213.77">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219366" type="right_before_left" x="788.36" y="1034.38" incLanes="-166576464#0_0 -166576461#1_0 166576461#0_0" intLanes=":1780219366_0_0 :1780219366_1_0 :1780219366_2_0 :1780219366_3_0 :1780219366_4_0 :1780219366_5_0 :1780219366_6_0 :1780219366_7_0 :1780219366_8_0" shape="792.55,1038.20 793.39,1031.75 789.96,1030.02 784.03,1032.69 784.41,1038.45 790.82,1039.49">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219369" type="right_before_left" x="886.89" y="1186.10" incLanes="166576462#6_0 -166576468#0_0 -166576462#7_0" intLanes=":1780219369_0_0 :1780219369_1_0 :1780219369_2_0 :1780219369_3_0 :1780219369_4_0 :1780219369_5_0 :1780219369_6_0 :1780219369_7_0 :1780219369_8_0" shape="887.73,1192.38 892.82,1188.33 893.21,1186.46 890.21,1180.70 887.00,1180.70 881.73,1184.49">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219371" type="priority" x="852.00" y="1002.12" incLanes="38319550#10_0 -38319550#11_0 166576464#4_0" intLanes=":1780219371_0_0 :1780219371_1_0 :1780219371_2_0 :1780219371_3_0 :1780219371_4_0 :1780219371_5_0 :1780219371_6_0 :1780219371_7_0 :1780219371_8_0" shape="851.73,1008.66 857.50,1005.67 853.04,997.05 847.26,1000.04 845.59,1003.48 849.92,1008.33">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219373" type="right_before_left" x="814.82" y="1037.83" incLanes="-166576464#1_0 166576464#0_0 166576462#9_0" intLanes=":1780219373_0_0 :1780219373_1_0 :1780219373_2_0 :1780219373_3_0 :1780219373_4_0 :1780219373_5_0 :1780219373_6_0 :1780219373_7_0 :1780219373_8_0" shape="819.29,1039.08 816.16,1033.38 810.78,1034.02 809.94,1040.47 811.35,1042.16 817.85,1042.48">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219374" type="right_before_left" x="816.31" y="1164.16" incLanes="166576466#1_0 166576459_0 -166576466#2_0" intLanes=":1780219374_0_0 :1780219374_1_0 :1780219374_2_0 :1780219374_3_0 :1780219374_4_0 :1780219374_5_0 :1780219374_6_0 :1780219374_7_0 :1780219374_8_0" shape="820.85,1165.44 817.84,1159.68 812.33,1157.58 808.71,1162.98 808.63,1164.51 811.65,1170.27">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="1780219377" type="priority" x="951.10" y="1213.37" incLanes="166576462#0_0 42976410#2_0 -166576462#1_0" intLanes=":1780219377_0_0 :1780219377_1_0 :1780219377_2_0 :1780219377_3_0 :1780219377_4_0 :1780219377_5_0 :1780219377_6_0 :1780219377_7_0 :1780219377_8_0" shape="952.15,1218.16 955.03,1216.69 955.66,1214.38 952.26,1208.84 950.30,1208.29 947.45,1209.74 946.92,1211.89 949.94,1217.64">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="1780381201" type="priority" x="781.87" y="286.40" incLanes="38319548#16_0" intLanes=":1780381201_0_0" shape="781.91,286.37 784.68,284.77 779.06,288.03 781.83,286.42">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1780623649" type="priority" x="943.97" y="1747.10" incLanes="166625259_0" intLanes=":1780623649_0_0" shape="943.94,1747.06 942.50,1744.20 945.43,1750.00 943.99,1747.15">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="1812395450" type="unregulated" x="624.39" y="1523.01" incLanes="" intLanes="" shape="622.85,1523.45 625.93,1522.58">
+ </junction>
+ <junction id="1817657657" type="unregulated" x="1534.95" y="841.27" incLanes="170590354#2_0 170590354#2_1" intLanes="" shape="1533.38,838.42 1536.52,844.11">
+ </junction>
+ <junction id="1817657658" type="unregulated" x="1542.68" y="855.81" incLanes="" intLanes="" shape="1541.08,852.98 1544.28,858.63">
+ </junction>
+ <junction id="1843239244" type="unregulated" x="947.95" y="650.66" incLanes="166602674#2_0 166602674#2_1" intLanes="" shape="945.08,652.18 950.82,649.14">
+ </junction>
+ <junction id="1903640411" type="priority" x="660.44" y="1135.29" incLanes="179917801_0 106367427#1_0" intLanes=":1903640411_0_0 :1903640411_2_0" shape="659.77,1137.37 662.56,1135.82 662.55,1132.40 656.87,1135.55">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="1"/>
+ </junction>
+ <junction id="1913728534" type="traffic_light" x="1295.97" y="1300.91" incLanes="-160587538#7_0 -160587538#7_1 160587538#6_0 160587538#6_1" intLanes=":1913728534_0_0 :1913728534_1_0 :1913728534_6_0 :1913728534_3_0 :1913728534_4_0 :1913728534_7_0" shape="1290.18,1303.96 1301.77,1297.86 1290.18,1303.96">
+ <request index="0" response="000000" foes="100000" cont="0"/>
+ <request index="1" response="000000" foes="100000" cont="0"/>
+ <request index="2" response="011000" foes="011000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000000" foes="000100" cont="0"/>
+ <request index="5" response="000011" foes="000011" cont="1"/>
+ </junction>
+ <junction id="2004733211" type="priority" x="1465.13" y="2867.89" incLanes="23182358#2_0" intLanes=":2004733211_0_0" shape="1465.08,2867.90 1461.96,2868.61 1468.30,2867.17 1465.18,2867.88">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="2006433692" type="priority" x="1338.16" y="2034.12" incLanes="-190048065_0 132323955_0" intLanes=":2006433692_0_0 :2006433692_4_0 :2006433692_2_0 :2006433692_5_0" shape="1335.28,2035.62 1341.04,2032.61 1335.28,2035.62">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="2006433732" type="unregulated" x="1691.14" y="2453.43" incLanes="81096855#1_0" intLanes="" shape="1692.56,2452.68 1689.72,2454.17">
+ </junction>
+ <junction id="2016414174" type="unregulated" x="922.23" y="1589.47" incLanes="" intLanes="" shape="922.14,1587.87 922.31,1591.07">
+ </junction>
+ <junction id="2016414184" type="right_before_left" x="836.73" y="1633.45" incLanes="-191056427#1_0 191056428_0 191056427#0_0" intLanes=":2016414184_0_0 :2016414184_1_0 :2016414184_2_0 :2016414184_3_0 :2016414184_4_0 :2016414184_5_0" shape="847.26,1633.40 845.23,1627.23 844.78,1626.56 842.36,1624.47 840.49,1628.80 842.51,1634.97">
+ <request index="0" response="000000" foes="100100" cont="0"/>
+ <request index="1" response="011000" foes="011000" cont="0"/>
+ <request index="2" response="000001" foes="110001" cont="0"/>
+ <request index="3" response="000000" foes="010010" cont="0"/>
+ <request index="4" response="001100" foes="001110" cont="0"/>
+ <request index="5" response="000101" foes="000101" cont="0"/>
+ </junction>
+ <junction id="2016414185" type="priority" x="827.09" y="1636.61" incLanes="108329425#1_0 -191056427#0_0 -108329425#2_0" intLanes=":2016414185_0_0 :2016414185_9_0 :2016414185_10_0 :2016414185_3_0 :2016414185_4_0 :2016414185_5_0 :2016414185_6_0 :2016414185_7_0 :2016414185_11_0" shape="824.88,1639.43 830.66,1636.46 832.16,1638.37 830.14,1632.19 828.03,1631.32 822.24,1634.28">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="2017759586" type="priority" x="858.83" y="1723.33" incLanes="191176261_0 -191176262_0" intLanes=":2017759586_0_0 :2017759586_4_0 :2017759586_2_0 :2017759586_5_0" shape="857.51,1727.65 863.19,1724.47 854.57,1721.85 857.51,1727.65">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="2017759588" type="priority" x="875.15" y="1726.33" incLanes="69931595#1_0 -69931595#2_0 -191176268_0" intLanes=":2017759588_0_0 :2017759588_1_0 :2017759588_9_0 :2017759588_3_0 :2017759588_10_0 :2017759588_11_0 :2017759588_6_0 :2017759588_7_0 :2017759588_8_0" shape="874.11,1731.40 879.88,1728.42 875.43,1719.80 869.65,1722.78 868.88,1724.46 870.36,1730.79">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="000000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="1"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000010" foes="000100010" cont="0"/>
+ <request index="7" response="000011010" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="2017759592" type="priority" x="863.56" y="1731.79" incLanes="191176264_0 -191176261_0" intLanes=":2017759592_0_0 :2017759592_4_0 :2017759592_2_0 :2017759592_5_0" shape="860.98,1733.77 866.32,1730.07 860.65,1733.24">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="2017759594" type="right_before_left" x="868.35" y="1738.70" incLanes="-191176263_0 191176265_0 191176266_0 -191176264_0" intLanes=":2017759594_0_0 :2017759594_1_0 :2017759594_2_0 :2017759594_3_0 :2017759594_4_0 :2017759594_5_0 :2017759594_6_0 :2017759594_7_0 :2017759594_8_0 :2017759594_9_0 :2017759594_10_0 :2017759594_11_0 :2017759594_12_0 :2017759594_13_0 :2017759594_14_0 :2017759594_15_0" shape="866.09,1741.66 871.41,1737.30 870.76,1735.67 865.02,1739.60">
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="2017759596" type="priority" x="870.93" y="1744.65" incLanes="-191176267_0 191176263_0" intLanes=":2017759596_0_0 :2017759596_4_0 :2017759596_2_0 :2017759596_5_0" shape="868.21,1746.44 873.84,1743.18 867.87,1745.77">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="2017759615" type="priority" x="858.28" y="1762.79" incLanes="191176267_0" intLanes=":2017759615_0_0" shape="858.26,1762.75 856.82,1759.89 859.75,1765.69 858.31,1762.84">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="2079750190" type="right_before_left" x="1477.48" y="2184.33" incLanes="197781817_0 -197794762_0 122394841#3_0" intLanes=":2079750190_0_0 :2079750190_1_0 :2079750190_2_0 :2079750190_3_0 :2079750190_4_0 :2079750190_5_0 :2079750190_6_0 :2079750190_7_0 :2079750190_8_0" shape="1476.83,2190.07 1482.58,2187.04 1483.21,2185.02 1480.23,2179.25 1471.79,2183.62 1474.77,2189.39">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="2081499947" type="priority" x="1165.60" y="1009.23" incLanes="37640550#4_0 197955309#5_0" intLanes=":2081499947_0_0 :2081499947_1_0 :2081499947_2_0 :2081499947_3_0" shape="1166.36,1014.20 1169.20,1012.74 1164.85,1004.29 1162.00,1005.76 1161.30,1007.83 1164.35,1013.57">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="2081499948" type="priority" x="1155.52" y="1014.57" incLanes="38319548#15_0 -197955309#5_0 -38319548#16_0 197955309#4_0" intLanes=":2081499948_0_0 :2081499948_1_0 :2081499948_2_0 :2081499948_3_0 :2081499948_4_0 :2081499948_5_0 :2081499948_16_0 :2081499948_17_0 :2081499948_8_0 :2081499948_9_0 :2081499948_10_0 :2081499948_11_0 :2081499948_12_0 :2081499948_13_0 :2081499948_18_0 :2081499948_19_0" shape="1154.89,1020.40 1160.66,1017.40 1161.27,1015.20 1158.22,1009.46 1156.21 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="2081499949" type="priority" x="1152.48" y="1016.31" incLanes="-197955309#4_0 81124943#0_0 81124943#0_1 197955309#3_0" intLanes=":2081499949_0_0 :2081499949_1_0 :2081499949_2_0 :2081499949_3_0 :2081499949_4_0 :2081499949_5_0 :2081499949_6_0 :2081499949_7_0 :2081499949_8_0 :2081499949_9_0" shape="1150.31,1019.15 1156.06,1016.11 1157.14,1017.39 1153.91,1011.75 1153.08,1010.49 1147.34,1013.54 1146.76,1015.66 1149.81,1021.40">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="2081499950" type="priority" x="1147.09" y="1019.16" incLanes="-160587538#1_0 -160587538#1_1 -197955309#3_0 160587538#0_0 160587538#0_1 197955309#2_0" intLanes=":2081499950_0_0 :2081499950_1_0 :2081499950_2_0 :2081499950_3_0 :2081499950_18_0 :2081499950_5_0 :2081499950_6_0 :2081499950_7_0 :2081499950_8_0 :2081499950_9_0 :2081499950_10_0 :2081499950_11_0 :2081499950_12_0 :2081499950_19_0 :2081499950_14_0 :2081499950_15_0 :2081499950_16_0 :2081499950_17_0" shape="1141.97,1 [...]
+ <request index="0" response="000000000000000000" foes="100001000001000000" cont="0"/>
+ <request index="1" response="000000000000000000" foes="011111000011000000" cont="0"/>
+ <request index="2" response="000000000000000000" foes="011111000011000000" cont="0"/>
+ <request index="3" response="000000111000000000" foes="011000111111000000" cont="0"/>
+ <request index="4" response="010000110000100000" foes="010000110000100000" cont="1"/>
+ <request index="5" response="000000110000000000" foes="010000110000010000" cont="0"/>
+ <request index="6" response="000001110000001111" foes="110001110000001111" cont="0"/>
+ <request index="7" response="001101110000001110" foes="001111110000001110" cont="0"/>
+ <request index="8" response="001000001000001000" foes="001000001000001000" cont="0"/>
+ <request index="9" response="000000000000000000" foes="001000000100001000" cont="0"/>
+ <request index="10" response="000000000000000000" foes="011000000011111000" cont="0"/>
+ <request index="11" response="000000000000000000" foes="011000000011111000" cont="0"/>
+ <request index="12" response="000000000000000111" foes="111000000011000111" cont="0"/>
+ <request index="13" response="000100000010000110" foes="000100000010000110" cont="1"/>
+ <request index="14" response="000000000000000110" foes="000010000010000110" cont="0"/>
+ <request index="15" response="000001111000001110" foes="000001111110001110" cont="0"/>
+ <request index="16" response="000001110001101110" foes="000001110001111110" cont="0"/>
+ <request index="17" response="000001000001000001" foes="000001000001000001" cont="0"/>
+ </junction>
+ <junction id="2081499951" type="priority" x="1142.14" y="1021.77" incLanes="166602674#1_0 166602674#1_1 -197955309#2_0 197955309#1_0" intLanes=":2081499951_0_0 :2081499951_1_0 :2081499951_2_0 :2081499951_3_0 :2081499951_4_0 :2081499951_5_0 :2081499951_6_0 :2081499951_7_0 :2081499951_8_0 :2081499951_9_0" shape="1140.94,1026.51 1146.71,1023.51 1147.87,1022.43 1144.85,1016.67 1142.83,1016.04 1137.06,1019.04 1136.40,1021.14 1139.45,1026.88">
+ <request index="0" response="0000000000" foes="1000010000" cont="0"/>
+ <request index="1" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="2" response="0000000000" foes="0110110000" cont="0"/>
+ <request index="3" response="0000000000" foes="0101110000" cont="0"/>
+ <request index="4" response="0000001111" foes="1000001111" cont="0"/>
+ <request index="5" response="0110001110" foes="0110001110" cont="0"/>
+ <request index="6" response="0100001000" foes="0100001000" cont="0"/>
+ <request index="7" response="0000000110" foes="0000100110" cont="0"/>
+ <request index="8" response="0000001110" foes="0001101110" cont="0"/>
+ <request index="9" response="0000010001" foes="0000010001" cont="0"/>
+ </junction>
+ <junction id="2081499952" type="priority" x="1128.61" y="1029.11" incLanes="81096816#0_0 -197955309#0_0" intLanes=":2081499952_0_0 :2081499952_1_0 :2081499952_2_0 :2081499952_3_0" shape="1129.50,1034.05 1132.30,1032.50 1132.89,1030.47 1129.76,1024.77 1127.72,1024.18 1124.92,1025.73">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="2265767389" type="priority" x="1433.12" y="897.93" incLanes="-149422193#1_0 149422193#0_0 170590354#1_0 170590354#1_1" intLanes=":2265767389_0_0 :2265767389_1_0 :2265767389_2_0 :2265767389_3_0 :2265767389_4_0 :2265767389_5_0 :2265767389_6_0 :2265767389_7_0 :2265767389_8_0 :2265767389_9_0" shape="1432.48,903.74 1438.25,900.74 1438.95,898.38 1435.76,892.72 1433.76,892.12 1428.00,895.12 1427.30,897.48 1430.48,903.14">
+ <request index="0" response="1111000000" foes="1111100000" cont="0"/>
+ <request index="1" response="1110011000" foes="1110011000" cont="0"/>
+ <request index="2" response="1000010000" foes="1000010000" cont="0"/>
+ <request index="3" response="0110000000" foes="0110000010" cont="0"/>
+ <request index="4" response="1110000000" foes="1110000110" cont="0"/>
+ <request index="5" response="0001000001" foes="0001000001" cont="0"/>
+ <request index="6" response="0000000000" foes="0000100001" cont="0"/>
+ <request index="7" response="0000000000" foes="0000011011" cont="0"/>
+ <request index="8" response="0000000000" foes="0000011011" cont="0"/>
+ <request index="9" response="0000000000" foes="0000010111" cont="0"/>
+ </junction>
+ <junction id="2265767392" type="priority" x="1441.34" y="913.04" incLanes="-24573947#1_0 170594822#0_0 170594822#0_1 24573947#0_0" intLanes=":2265767392_0_0 :2265767392_1_0 :2265767392_2_0 :2265767392_3_0 :2265767392_4_0 :2265767392_5_0 :2265767392_6_0 :2265767392_7_0 :2265767392_8_0 :2265767392_9_0" shape="1440.88,918.79 1446.53,915.57 1447.09,913.53 1443.90,907.87 1441.80,907.29 1436.16,910.51 1435.59,912.55 1438.79,918.21">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="2265767394" type="priority" x="1341.98" y="949.16" incLanes="23262356#0_0 -23262356#1_0 170590354#0_0 170590354#0_1" intLanes=":2265767394_0_0 :2265767394_1_0 :2265767394_2_0 :2265767394_3_0 :2265767394_4_0 :2265767394_5_0 :2265767394_6_0 :2265767394_7_0 :2265767394_8_0 :2265767394_9_0" shape="1340.58,955.36 1346.76,953.35 1348.34,949.31 1345.16,943.65 1343.39,942.95 1337.20,944.96 1335.63,949.00 1338.81,954.67">
+ <request index="0" response="1111000000" foes="1111100000" cont="0"/>
+ <request index="1" response="1110011000" foes="1110011000" cont="0"/>
+ <request index="2" response="1000010000" foes="1000010000" cont="0"/>
+ <request index="3" response="0110000000" foes="0110000010" cont="0"/>
+ <request index="4" response="1110000000" foes="1110000110" cont="0"/>
+ <request index="5" response="0001000001" foes="0001000001" cont="0"/>
+ <request index="6" response="0000000000" foes="0000100001" cont="0"/>
+ <request index="7" response="0000000000" foes="0000011011" cont="0"/>
+ <request index="8" response="0000000000" foes="0000011011" cont="0"/>
+ <request index="9" response="0000000000" foes="0000010111" cont="0"/>
+ </junction>
+ <junction id="2265767395" type="priority" x="1347.48" y="965.97" incLanes="-37772597#1_0 170594822#1_0 170594822#1_1 37772597#0_0" intLanes=":2265767395_0_0 :2265767395_1_0 :2265767395_2_0 :2265767395_3_0 :2265767395_4_0 :2265767395_5_0 :2265767395_6_0 :2265767395_7_0 :2265767395_8_0 :2265767395_9_0" shape="1346.10,972.17 1352.27,970.14 1353.83,966.11 1350.64,960.45 1348.86,959.77 1342.69,961.80 1341.13,965.82 1344.32,971.48">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="243489891" type="priority" x="746.13" y="2290.28" incLanes="130443629#0_0 44641745#2_0 133868188_0 37351089#1_0 37351089#1_1 37351089#1_2 37351089#1_3 -130443629#1_0" intLanes=":243489891_0_0 :243489891_1_0 :243489891_2_0 :243489891_3_0 :243489891_4_0 :243489891_5_0 :243489891_6_0 :243489891_7_0 :243489891_8_0 :243489891_9_0 :243489891_10_0 :243489891_11_0 :243489891_12_0 :243489891_13_0 :243489891_14_0 :243489891_15_0 :243489891_16_0 :243489891_17_0" shape="744.34,2300 [...]
+ <request index="0" response="000011110000000000" foes="010011110010010000" cont="0"/>
+ <request index="1" response="000111110000000000" foes="110111110110110000" cont="0"/>
+ <request index="2" response="001000001001001000" foes="001000001001001000" cont="0"/>
+ <request index="3" response="000000001000000000" foes="001000001001000100" cont="0"/>
+ <request index="4" response="000011111000000011" foes="011011111011000011" cont="0"/>
+ <request index="5" response="000111111000000010" foes="111111111111000010" cont="0"/>
+ <request index="6" response="000000001000111000" foes="001000001000111100" cont="0"/>
+ <request index="7" response="000011111000110011" foes="011011111000110011" cont="0"/>
+ <request index="8" response="000111111000100010" foes="111111111000100010" cont="0"/>
+ <request index="9" response="000000000000000000" foes="001000000111111100" cont="0"/>
+ <request index="10" response="000000000000000000" foes="011000000110110011" cont="0"/>
+ <request index="11" response="000000000000000000" foes="011000000110110011" cont="0"/>
+ <request index="12" response="000000000000000000" foes="011000000110110011" cont="0"/>
+ <request index="13" response="000000000000000000" foes="011000000110110011" cont="0"/>
+ <request index="14" response="000000000000000000" foes="111000000100100010" cont="0"/>
+ <request index="15" response="000111111111111000" foes="000111111111111100" cont="0"/>
+ <request index="16" response="000111110110110011" foes="000111110110110011" cont="0"/>
+ <request index="17" response="000100000100100010" foes="000100000100100010" cont="0"/>
+ </junction>
+ <junction id="248913124" type="priority" x="1416.92" y="1928.01" incLanes="154409621_0 129780026#1_0 -129780022#0_0" intLanes=":248913124_0_0 :248913124_1_0 :248913124_9_0 :248913124_3_0 :248913124_4_0 :248913124_5_0 :248913124_6_0 :248913124_7_0 :248913124_10_0" shape="1417.71,1932.97 1420.54,1931.49 1421.18,1929.45 1418.16,1923.69 1416.14,1923.06 1413.31,1924.54 1412.66,1926.59 1415.69,1932.34">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="248913130" type="priority" x="1263.18" y="1808.91" incLanes="-23066446#0_0 37449253#1_0" intLanes=":248913130_0_0 :248913130_1_0 :248913130_2_0 :248913130_3_0" shape="1263.97,1813.87 1266.80,1812.38 1267.44,1810.37 1264.46,1804.59 1262.35,1803.99 1259.53,1805.51">
+ <request index="0" response="1000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0001" cont="0"/>
+ </junction>
+ <junction id="248913131" type="priority" x="1335.43" y="1770.80" incLanes="-23066446#2_0 23066443#5_0 23066446#1_0" intLanes=":248913131_0_0 :248913131_1_0 :248913131_9_0 :248913131_3_0 :248913131_4_0 :248913131_5_0 :248913131_6_0 :248913131_10_0 :248913131_11_0" shape="1336.21,1775.77 1339.05,1774.30 1339.72,1772.20 1336.68,1766.46 1334.66,1765.83 1331.82,1767.31 1331.14,1769.40 1334.19,1775.14">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="248913133" type="priority" x="1407.77" y="1732.42" incLanes="58770725#1_0 -23066446#3_0 23066446#2_0" intLanes=":248913133_0_0 :248913133_1_0 :248913133_2_0 :248913133_3_0 :248913133_9_0 :248913133_10_0 :248913133_6_0 :248913133_7_0 :248913133_11_0" shape="1408.54,1737.38 1411.38,1735.91 1412.03,1733.85 1409.02,1728.09 1407.00,1727.46 1404.16,1728.93 1403.47,1731.01 1406.52,1736.76">
+ <request index="0" response="000001000" foes="100001000" cont="0"/>
+ <request index="1" response="011011000" foes="011011000" cont="0"/>
+ <request index="2" response="010011000" foes="010111000" cont="0"/>
+ <request index="3" response="000000000" foes="100000111" cont="0"/>
+ <request index="4" response="011000000" foes="011000110" cont="1"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000000" foes="000010010" cont="0"/>
+ <request index="7" response="000000000" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="248913142" type="priority" x="1444.56" y="1803.55" incLanes="58770725#0_0 81096844#0_0 -81096844#1_0" intLanes=":248913142_0_0 :248913142_1_0 :248913142_2_0 :248913142_3_0 :248913142_9_0 :248913142_10_0 :248913142_6_0 :248913142_7_0 :248913142_11_0" shape="1445.33,1808.52 1448.18,1807.05 1448.87,1804.93 1445.80,1799.20 1443.79,1798.57 1440.95,1800.04 1440.26,1802.16 1443.32,1807.90">
+ <request index="0" response="000001000" foes="100001000" cont="0"/>
+ <request index="1" response="011011000" foes="011011000" cont="0"/>
+ <request index="2" response="010011000" foes="010111000" cont="0"/>
+ <request index="3" response="000000000" foes="100000111" cont="0"/>
+ <request index="4" response="011000000" foes="011000110" cont="1"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000000" foes="000010010" cont="0"/>
+ <request index="7" response="000000000" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="248913144" type="priority" x="1372.41" y="1842.13" incLanes="81096844#1_0 23066443#6_0 -81096844#2_0" intLanes=":248913144_0_0 :248913144_1_0 :248913144_9_0 :248913144_3_0 :248913144_4_0 :248913144_5_0 :248913144_6_0 :248913144_10_0 :248913144_11_0" shape="1373.18,1847.10 1376.02,1845.63 1376.71,1843.51 1373.65,1837.78 1371.63,1837.16 1368.79,1838.63 1368.10,1840.75 1371.17,1846.48">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="248913145" type="priority" x="1300.65" y="1880.51" incLanes="81096844#3_0 37449253#2_0" intLanes=":248913145_0_0 :248913145_1_0 :248913145_2_0 :248913145_3_0" shape="1301.36,1885.44 1304.21,1883.99 1304.94,1881.90 1301.87,1876.16 1299.85,1875.54 1297.02,1877.03">
+ <request index="0" response="1000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0001" cont="0"/>
+ </junction>
+ <junction id="248913154" type="traffic_light" x="1816.23" y="1394.26" incLanes="154844500#3_0" intLanes=":248913154_0_0" shape="1816.26,1394.31 1817.74,1397.14 1814.73,1391.38 1816.21,1394.22">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="248913200" type="priority" x="1290.84" y="1231.35" incLanes="23066462#4_0 -23066462#0_0" intLanes=":248913200_0_0 :248913200_4_0 :248913200_2_0 :248913200_5_0" shape="1289.56,1235.90 1295.31,1232.87 1292.62,1226.96">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="249235163" type="unregulated" x="1119.78" y="2118.58" incLanes="141191260#1_0" intLanes="" shape="1120.52,2120.00 1119.05,2117.16">
+ </junction>
+ <junction id="249404225" type="priority" x="1742.60" y="2818.18" incLanes="122302027#0_0 122302035#0_0" intLanes=":249404225_0_0 :249404225_4_0 :249404225_2_0 :249404225_5_0" shape="1741.13,2818.81 1744.19,2817.95 1744.08,2817.55 1741.22,2819.00">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="250682807" type="unregulated" x="1536.49" y="2453.11" incLanes="" intLanes="" shape="1537.91,2452.37 1535.08,2453.85">
+ </junction>
+ <junction id="250683336" type="priority" x="1210.76" y="2373.81" incLanes="-23182358#1_0 23182358#0_0 23182387#0_0" intLanes=":250683336_0_0 :250683336_9_0 :250683336_10_0 :250683336_3_0 :250683336_4_0 :250683336_11_0 :250683336_6_0 :250683336_7_0 :250683336_8_0" shape="1209.39,2378.13 1215.12,2375.08 1215.76,2373.08 1214.32,2370.22 1212.21,2369.55 1206.45,2372.56 1205.81,2374.58 1207.28,2377.42">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="250683337" type="priority" x="1434.38" y="2258.21" incLanes="130443635#0_0 23182387#4_0" intLanes=":250683337_0_0 :250683337_1_0" shape="1434.40,2261.70 1437.23,2260.20 1434.35,2254.72 1431.52,2256.21 1430.89,2258.23 1432.37,2261.07">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="250683362" type="priority" x="1323.71" y="2315.58" incLanes="23182340#0_0 23182387#2_0" intLanes=":250683362_0_0 :250683362_1_0 :250683362_2_0 :250683362_3_0" shape="1323.75,2319.08 1326.58,2317.58 1327.22,2315.56 1325.75,2312.72 1323.75,2312.07 1320.89,2313.49 1320.22,2315.61 1321.72,2318.44">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="250683402" type="priority" x="1267.73" y="2345.11" incLanes="23182391_0 23182387#1_0" intLanes=":250683402_0_0 :250683402_1_0" shape="1271.24,2345.06 1269.75,2342.23 1267.75,2341.59 1264.89,2343.02 1264.24,2345.07 1265.68,2347.93">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="250684983" type="traffic_light" x="1313.08" y="2568.15" incLanes="-23182358#2_0 23182358#1_0" intLanes=":250684983_0_0 :250684983_4_0 :250684983_2_0 :250684983_5_0" shape="1310.20,2569.65 1315.96,2566.65 1310.20,2569.65">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="250685721" type="priority" x="773.69" y="2484.93" incLanes="-130443629#0_0" intLanes=":250685721_0_0 :250685721_1_0" shape="779.55,2478.18 776.79,2476.55 775.83,2476.36 769.39,2477.21">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="250685766" type="traffic_light" x="1164.64" y="2285.38" incLanes="-23182358#0_0 141190466#1_0 -23182517#0_0" intLanes=":250685766_0_0 :250685766_1_0 :250685766_9_0 :250685766_3_0 :250685766_4_0 :250685766_10_0 :250685766_6_0 :250685766_11_0 :250685766_12_0" shape="1163.19,2289.63 1168.95,2286.63 1169.59,2284.57 1168.09,2281.74 1166.06,2281.11 1160.31,2284.15 1159.68,2286.16 1161.16,2289.00">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="1"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="250685816" type="priority" x="1278.62" y="2225.05" incLanes="23182340#1_0 23182484#2_0 141190463_0" intLanes=":250685816_0_0 :250685816_1_0 :250685816_2_0 :250685816_3_0 :250685816_4_0 :250685816_5_0" shape="1279.29,2229.98 1282.16,2228.55 1282.88,2226.47 1279.83,2220.73 1277.80,2220.11 1274.98,2221.62 1275.10,2225.10 1276.60,2227.93">
+ <request index="0" response="000100" foes="100100" cont="0"/>
+ <request index="1" response="010100" foes="011100" cont="0"/>
+ <request index="2" response="000000" foes="100011" cont="0"/>
+ <request index="3" response="010010" foes="010010" cont="0"/>
+ <request index="4" response="000000" foes="001010" cont="0"/>
+ <request index="5" response="000101" foes="000101" cont="0"/>
+ </junction>
+ <junction id="250685829" type="priority" x="1386.81" y="2167.65" incLanes="130443635#2_0 38318373#1_0 23182484#0_0 -23182484#1_0" intLanes=":250685829_0_0 :250685829_1_0 :250685829_2_0 :250685829_3_0 :250685829_4_0 :250685829_5_0 :250685829_6_0 :250685829_7_0 :250685829_8_0 :250685829_9_0 :250685829_16_0 :250685829_17_0 :250685829_12_0 :250685829_13_0 :250685829_18_0 :250685829_19_0" shape="1389.38,2175.99 1392.22,2174.51 1393.35,2174.86 1396.43,2169.13 1395.09,2167.01 1392.10,2161.2 [...]
+ <request index="0" response="0000001000000000" foes="1000001000010000" cont="0"/>
+ <request index="1" response="0111011000000000" foes="0111011000110000" cont="0"/>
+ <request index="2" response="0110011000000000" foes="0110111001110000" cont="0"/>
+ <request index="3" response="0100000100000000" foes="0100000111110000" cont="0"/>
+ <request index="4" response="0000001000001111" foes="1000001000001111" cont="0"/>
+ <request index="5" response="0111011000001110" foes="0111011000001110" cont="0"/>
+ <request index="6" response="0110011000001100" foes="0110111000001100" cont="0"/>
+ <request index="7" response="0100000100001000" foes="0100000100001000" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0100000010001000" cont="0"/>
+ <request index="9" response="0000000000000000" foes="1100000001110111" cont="0"/>
+ <request index="10" response="0011000000000000" foes="0011000001100110" cont="1"/>
+ <request index="11" response="0010000001000100" foes="0010000001000100" cont="1"/>
+ <request index="12" response="0000000000000000" foes="0000010000100010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000110001100110" cont="0"/>
+ <request index="14" response="0000001100000000" foes="0000001111101110" cont="1"/>
+ <request index="15" response="0000001000010001" foes="0000001000010001" cont="1"/>
+ </junction>
+ <junction id="250686490" type="unregulated" x="1552.96" y="2840.11" incLanes="" intLanes="" shape="1554.56,2840.16 1551.36,2840.06">
+ </junction>
+ <junction id="250686694" type="priority" x="1222.38" y="2254.74" incLanes="141190466#0_0" intLanes=":250686694_0_0 :250686694_1_0" shape="1222.35,2258.26 1225.21,2256.82 1225.84,2254.72 1224.34,2251.89 1218.85,2254.80 1220.35,2257.62">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="250688445" type="priority" x="1158.40" y="1258.68" incLanes="23182589#1_0" intLanes=":250688445_0_0" shape="1160.54,1259.38 1159.07,1256.53 1156.24,1258.04">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="250688540" type="priority" x="1122.03" y="1190.45" incLanes="23182589#0_0" intLanes=":250688540_0_0 :250688540_1_0" shape="1122.05,1193.90 1124.88,1192.39 1125.57,1190.28 1123.99,1187.50 1122.00,1186.90 1119.15,1188.37">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="250689131" type="right_before_left" x="1383.02" y="1266.41" incLanes="-23066462#3_0 83051426_0 23066462#2_0" intLanes=":250689131_0_0 :250689131_1_0 :250689131_2_0 :250689131_3_0 :250689131_4_0 :250689131_5_0 :250689131_6_0 :250689131_7_0 :250689131_8_0" shape="1380.31,1270.56 1386.75,1269.68 1389.54,1266.57 1386.43,1260.86 1384.74,1260.12 1378.45,1261.77">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="250689186" type="right_before_left" x="1348.78" y="1223.51" incLanes="-23066462#1_0 83051421#2_0 23066462#0_0" intLanes=":250689186_0_0 :250689186_1_0 :250689186_2_0 :250689186_3_0 :250689186_4_0 :250689186_5_0 :250689186_6_0 :250689186_7_0 :250689186_8_0" shape="1350.88,1228.66 1354.34,1223.16 1353.77,1221.04 1348.03,1218.00 1345.68,1219.30 1343.98,1225.57">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="250689201" type="right_before_left" x="1384.40" y="1289.75" incLanes="83051480#1_0 23066462#3_0 -23066462#4_0" intLanes=":250689201_0_0 :250689201_1_0 :250689201_2_0 :250689201_3_0 :250689201_4_0 :250689201_5_0 :250689201_6_0 :250689201_7_0 :250689201_8_0" shape="1389.10,1293.07 1389.20,1286.57 1387.72,1285.05 1381.23,1284.94 1380.03,1292.15 1386.11,1294.43">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="250689290" type="priority" x="1161.39" y="1611.23" incLanes="58770723#2_0 42976410#4_0" intLanes=":250689290_0_0 :250689290_1_0" shape="1161.32,1614.67 1164.18,1613.24 1164.83,1611.18 1163.29,1608.37 1161.14,1607.84 1158.43,1609.55">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="252417165" type="priority" x="1227.70" y="1562.85" incLanes="37771902#2_0" intLanes=":252417165_0_0 :252417165_1_0" shape="1227.71,1566.34 1230.55,1564.87 1231.20,1562.85 1229.74,1560.01 1224.25,1562.75 1225.65,1565.63">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="252417189" type="priority" x="1356.92" y="1634.07" incLanes="58770725#4_0 -110514869#1_0 -110514869#1_1 110514869#0_0 110514869#0_1" intLanes=":252417189_0_0 :252417189_1_0 :252417189_2_0 :252417189_3_0 :252417189_4_0 :252417189_11_0 :252417189_12_0 :252417189_7_0 :252417189_8_0 :252417189_9_0 :252417189_13_0" shape="1359.20,1641.96 1362.04,1640.49 1362.72,1638.43 1356.66,1626.82 1354.64,1626.18 1351.80,1627.65 1351.11,1629.71 1357.18,1641.32">
+ <request index="0" response="00000011000" foes="10000011000" cont="0"/>
+ <request index="1" response="01110111000" foes="01110111000" cont="0"/>
+ <request index="2" response="01100111000" foes="01101111000" cont="0"/>
+ <request index="3" response="00000000000" foes="10000000111" cont="0"/>
+ <request index="4" response="00000000000" foes="10000000111" cont="0"/>
+ <request index="5" response="01110000000" foes="01110000110" cont="1"/>
+ <request index="6" response="01100000100" foes="01100000100" cont="1"/>
+ <request index="7" response="00000000000" foes="00000100010" cont="0"/>
+ <request index="8" response="00000000000" foes="00001100110" cont="0"/>
+ <request index="9" response="00000000000" foes="00001100110" cont="0"/>
+ <request index="10" response="00000011001" foes="00000011001" cont="1"/>
+ </junction>
+ <junction id="252417190" type="priority" x="1300.74" y="1525.44" incLanes="58770725#6_0 37771902#3_0" intLanes=":252417190_0_0 :252417190_1_0" shape="1300.74,1528.92 1303.58,1527.45 1304.19,1525.36 1302.64,1522.56 1297.26,1525.42 1298.72,1528.27">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="252417585" type="unregulated" x="1763.69" y="1292.21" incLanes="" intLanes="" shape="1763.03,1290.75 1764.35,1293.67">
+ </junction>
+ <junction id="252418151" type="priority" x="1457.11" y="2044.52" incLanes="154409616#0_0 129780028_0" intLanes=":252418151_0_0 :252418151_1_0" shape="1457.08,2047.97 1459.93,2046.51 1460.63,2044.41 1459.09,2041.61 1457.09,2041.00 1454.25,2042.46">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="252418152" type="priority" x="1408.67" y="1950.38" incLanes="154409616#1_0 139118802#2_0" intLanes=":252418152_0_0 :252418152_1_0" shape="1408.67,1953.88 1411.51,1952.41 1412.16,1950.39 1410.70,1947.54 1405.18,1950.39 1406.65,1953.23">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="252418937" type="traffic_light" x="1082.75" y="2122.97" incLanes="23182517#4_0 139118804#2_0 -23315111#0_0" intLanes=":252418937_0_0 :252418937_1_0 :252418937_9_0 :252418937_3_0 :252418937_4_0 :252418937_10_0 :252418937_6_0 :252418937_11_0 :252418937_12_0" shape="1081.27,2127.27 1087.08,2124.35 1087.78,2122.11 1086.27,2119.29 1084.32,2118.63 1078.42,2121.38 1077.78,2123.80 1079.28,2126.63">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="1"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="254594415" type="unregulated" x="2575.84" y="1321.27" incLanes="" intLanes="" shape="2575.09,1319.86 2576.59,1322.68">
+ </junction>
+ <junction id="255227471" type="priority" x="1344.93" y="958.21" incLanes="-37772597#0_0 149868584#1_0 149868584#1_1 -23262356#0_0 -149868584#2_0 -149868584#2_1" intLanes=":255227471_0_0 :255227471_1_0 :255227471_2_0 :255227471_3_0 :255227471_4_0 :255227471_5_0 :255227471_6_0 :255227471_7_0 :255227471_18_0 :255227471_9_0 :255227471_10_0 :255227471_11_0 :255227471_12_0 :255227471_13_0 :255227471_14_0 :255227471_15_0 :255227471_16_0 :255227471_19_0" shape="1344.39,966.99 1350.57,964.95 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="0"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="255227472" type="priority" x="1269.49" y="815.22" incLanes="23262356#3_0" intLanes=":255227472_0_0 :255227472_1_0" shape="1268.26,819.46 1273.82,816.10 1264.61,816.12 1266.17,818.91">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="255227475" type="priority" x="1307.18" y="877.42" incLanes="23262356#2_0 -149422199#0_0 -23262356#3_0 81124945_0" intLanes=":255227475_0_0 :255227475_12_0 :255227475_13_0 :255227475_3_0 :255227475_4_0 :255227475_5_0 :255227475_6_0 :255227475_7_0 :255227475_14_0 :255227475_9_0 :255227475_10_0 :255227475_11_0" shape="1306.28,882.89 1312.09,879.98 1312.93,877.73 1309.55,872.17 1307.49,871.67 1301.93,875.04 1302.18,878.37 1303.74,881.17">
+ <request index="0" response="000000000000" foes="111100010000" cont="0"/>
+ <request index="1" response="000011000000" foes="110011110000" cont="1"/>
+ <request index="2" response="100010001000" foes="100010001000" cont="1"/>
+ <request index="3" response="000010000000" foes="100010000100" cont="0"/>
+ <request index="4" response="011010000011" foes="011110000011" cont="0"/>
+ <request index="5" response="010001000010" foes="010001000010" cont="0"/>
+ <request index="6" response="000000000000" foes="010000100010" cont="0"/>
+ <request index="7" response="000000000000" foes="110000011110" cont="0"/>
+ <request index="8" response="001000010001" foes="001000010001" cont="1"/>
+ <request index="9" response="000000000001" foes="000100010001" cont="0"/>
+ <request index="10" response="000011000011" foes="000011110011" cont="0"/>
+ <request index="11" response="000010001011" foes="000010001111" cont="0"/>
+ </junction>
+ <junction id="255227478" type="priority" x="1257.12" y="791.07" incLanes="-23566901#0_0" intLanes=":255227478_0_0" shape="1257.09,791.03 1255.62,788.19 1258.61,793.96 1257.14,791.12">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="255227480" type="priority" x="1354.16" y="848.86" incLanes="166728377#2_0 -23566901#1_0 -149422199#1_0 -166728377#0_0 23566901#0_0 149422199#0_0" intLanes=":255227480_0_0 :255227480_1_0 :255227480_2_0 :255227480_3_0 :255227480_4_0 :255227480_5_0 :255227480_6_0 :255227480_7_0 :255227480_8_0 :255227480_9_0 :255227480_10_0 :255227480_11_0 :255227480_12_0 :255227480_13_0 :255227480_14_0 :255227480_15_0 :255227480_16_0 :255227480_36_0 :255227480_18_0 :255227480_19_0 :2552274 [...]
+ <request index="0" response="000000000000000000000100000000000000" foes="100000010000000100000100000001000000" cont="0"/>
+ <request index="1" response="011111000000000000001100000000000000" foes="011111110000001100001100000011000000" cont="0"/>
+ <request index="2" response="011110001111010011010011000000000000" foes="011110001111110011110011000111000000" cont="0"/>
+ <request index="3" response="011100001110010011000011000000000000" foes="011100001110010011100011001111000000" cont="0"/>
+ <request index="4" response="010000001000000010000010000000000000" foes="010000001000000010000010100000000000" cont="0"/>
+ <request index="5" response="011000001100000011000011110000000000" foes="011000001100000011000011110000000000" cont="0"/>
+ <request index="6" response="011000000000000000000111000000001111" foes="111000011100000111000111000000001111" cont="0"/>
+ <request index="7" response="000111000000000000001111000000001110" foes="000111111100001111001111000000001110" cont="0"/>
+ <request index="8" response="000110000011010000010000000000001100" foes="000110000011110000110000000000001100" cont="0"/>
+ <request index="9" response="000100000010010000000000000000001000" foes="000100000010010000100000000000001000" cont="0"/>
+ <request index="10" response="001000000000000000000001000000000000" foes="001000000100000001000001000000100000" cont="0"/>
+ <request index="11" response="011000001100000011000011000000010000" foes="011000001100000011000011000000110000" cont="0"/>
+ <request index="12" response="000000000000000000000000000000000000" foes="001110000111110001000000110011101100" cont="0"/>
+ <request index="13" response="000000000000000000000000000000000000" foes="011110001111110011000000100011111100" cont="0"/>
+ <request index="14" response="000000000000000000000000000000000000" foes="111110011111110111000000000011000011" cont="0"/>
+ <request index="15" response="000001000000000000000000000000000000" foes="000001111111111111000000000010000010" cont="0"/>
+ <request index="16" response="000000000000000000000000000000000000" foes="000010000001100000000000000100000100" cont="0"/>
+ <request index="17" response="000110000011110000000000001100001100" foes="000110000011110000000000001100001100" cont="1"/>
+ <request index="18" response="001110000000000000001111010011000000" foes="001110000111000000001111110011101100" cont="0"/>
+ <request index="19" response="011110000000000000001110000011000000" foes="011110001111000000001110100011111100" cont="0"/>
+ <request index="20" response="011110000000000000001100000011000011" foes="111110011111000000001100000011000011" cont="0"/>
+ <request index="21" response="000001000000000000001000000010000010" foes="000001111111000000001000000010000010" cont="0"/>
+ <request index="22" response="000110000000000000001111000000000000" foes="000110000011000000101111001100001100" cont="0"/>
+ <request index="23" response="000010000001000000011111000100000100" foes="000010000001000000111111000100000100" cont="0"/>
+ <request index="24" response="000010000000011111011111000000000000" foes="000010000000111111111111000100000100" cont="0"/>
+ <request index="25" response="000110000000011111001111000000000000" foes="000110000000011111101111001100001100" cont="0"/>
+ <request index="26" response="001110000000001111001111010011000000" foes="001110000000001111001111110011101100" cont="0"/>
+ <request index="27" response="011110000000001110001110000011000000" foes="011110000000001110001110100011111100" cont="0"/>
+ <request index="28" response="011110000000001100001100000011000011" foes="111110000000001100001100000011000011" cont="0"/>
+ <request index="29" response="000001000000001000001000000010000010" foes="000001000000001000001000000010000010" cont="0"/>
+ <request index="30" response="000000000000000000000000000000000000" foes="000000100000001000001000000010000010" cont="0"/>
+ <request index="31" response="000000000000000000010111000000000000" foes="000000011111110111110111000110000110" cont="0"/>
+ <request index="32" response="000000000000000000000111000000000000" foes="000000011110010111100111001110001110" cont="0"/>
+ <request index="33" response="000000000000000000000111000000000000" foes="000000011100000111000111110001101110" cont="1"/>
+ <request index="34" response="000000000000000000000110000000000000" foes="000000011000000110000110100001111110" cont="1"/>
+ <request index="35" response="000000010000000100000100000001000001" foes="000000010000000100000100000001000001" cont="1"/>
+ </junction>
+ <junction id="255227482" type="priority" x="1394.75" y="824.10" incLanes="-149422210#0_0 -166728377#1_0 -149422199#2_0 149422199#1_0 166728377#0_0" intLanes=":255227482_0_0 :255227482_1_0 :255227482_2_0 :255227482_3_0 :255227482_4_0 :255227482_5_0 :255227482_6_0 :255227482_7_0 :255227482_8_0 :255227482_9_0 :255227482_10_0 :255227482_11_0 :255227482_12_0 :255227482_13_0 :255227482_25_0 :255227482_15_0 :255227482_26_0 :255227482_27_0 :255227482_18_0 :255227482_28_0 :255227482_20_0 :255 [...]
+ <request index="0" response="0000001110001110000000000" foes="1011001110001111100100000" cont="0"/>
+ <request index="1" response="0000001110011110000000000" foes="1111011110011111101100000" cont="0"/>
+ <request index="2" response="0000100001011110000000000" foes="0000100001111111111100000" cont="0"/>
+ <request index="3" response="0000000010000010000000000" foes="0001000010000011000000000" cont="0"/>
+ <request index="4" response="0011000110000111100000000" foes="0011000110000111100000000" cont="0"/>
+ <request index="5" response="0000001110001110000000111" foes="1011001110001110000000111" cont="0"/>
+ <request index="6" response="0000001110011110000000110" foes="1111011110011110000000110" cont="0"/>
+ <request index="7" response="0000100001011110000000100" foes="0000100001111110000000100" cont="0"/>
+ <request index="8" response="0000000110000110000000111" foes="0011000110000110000010111" cont="0"/>
+ <request index="9" response="0001000010000010000001111" foes="0001000010000010000011111" cont="0"/>
+ <request index="10" response="0000000000000000000000000" foes="0001000010000001111111111" cont="0"/>
+ <request index="11" response="0000000000000000000000000" foes="0011000110000000111110111" cont="0"/>
+ <request index="12" response="0000000000000000000000000" foes="1011001110000000011100111" cont="0"/>
+ <request index="13" response="0000000000000000000000000" foes="1111011110000000011000110" cont="0"/>
+ <request index="14" response="0000100001000000010000100" foes="0000100001000000010000100" cont="1"/>
+ <request index="15" response="0000000000000000000000000" foes="0000100000100000010000100" cont="0"/>
+ <request index="16" response="0000000000011110000000000" foes="0001100000011111101111011" cont="1"/>
+ <request index="17" response="0000000000011100000000000" foes="0011100000011100101110011" cont="1"/>
+ <request index="18" response="0000000000011000000000000" foes="1011100000011000001100011" cont="0"/>
+ <request index="19" response="1111100000010000001000010" foes="1111100000010000001000010" cont="1"/>
+ <request index="20" response="0000001111000000000000000" foes="0000011111100000010000100" cont="0"/>
+ <request index="21" response="0000001110011110101101011" foes="0000011110011111101111011" cont="0"/>
+ <request index="22" response="0000001100011100101100011" foes="0000011100011100101110011" cont="0"/>
+ <request index="23" response="0000000000010000001000010" foes="0000010000010000001000010" cont="0"/>
+ <request index="24" response="0000001000011000001100011" foes="0000011000011000001100011" cont="0"/>
+ </junction>
+ <junction id="255227483" type="priority" x="1437.23" y="905.83" incLanes="-24573947#0_0 149868584#0_0 149868584#0_1 149422193#1_0 -149868584#1_0 -149868584#1_1" intLanes=":255227483_0_0 :255227483_1_0 :255227483_2_0 :255227483_3_0 :255227483_4_0 :255227483_5_0 :255227483_6_0 :255227483_7_0 :255227483_18_0 :255227483_9_0 :255227483_10_0 :255227483_11_0 :255227483_12_0 :255227483_13_0 :255227483_14_0 :255227483_15_0 :255227483_16_0 :255227483_19_0" shape="1438.40,914.44 1444.05,911.22 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="0"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="256633248" type="priority" x="763.20" y="924.92" incLanes="123339613_0" intLanes=":256633248_0_0" shape="761.78,925.65 764.62,924.18 761.77,925.65">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="257907508" type="priority" x="1601.46" y="1287.40" incLanes="-83051480#0_0" intLanes=":257907508_0_0" shape="1601.46,1287.45 1601.55,1290.65 1601.36,1284.15 1601.45,1287.35">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="257907791" type="unregulated" x="1517.46" y="880.71" incLanes="" intLanes="" shape="1516.68,879.32 1518.23,882.11">
+ </junction>
+ <junction id="267169554" type="priority" x="1042.75" y="1031.65" incLanes="24573905#0_0 24573897#3_0" intLanes=":267169554_0_0 :267169554_1_0 :267169554_2_0 :267169554_3_0" shape="1042.79,1035.19 1045.63,1033.71 1046.25,1031.49 1044.67,1028.71 1042.64,1028.14 1039.84,1029.68 1039.21,1031.82 1040.79,1034.60">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="267169591" type="priority" x="899.16" y="1113.35" incLanes="24573905#3_0 101272424#1_0" intLanes=":267169591_0_0 :267169591_1_0" shape="899.16,1116.79 901.99,1115.31 902.72,1113.17 901.14,1110.39 899.16,1109.79 896.30,1111.22">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="267169592" type="priority" x="973.71" y="1070.89" incLanes="24573930#0_0 24573905#1_0" intLanes=":267169592_0_0 :267169592_1_0 :267169592_2_0 :267169592_3_0" shape="973.75,1074.44 976.59,1072.96 977.25,1070.72 975.66,1067.94 973.67,1067.35 970.83,1068.83 970.17,1071.07 971.75,1073.85">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="267169634" type="priority" x="1475.27" y="979.43" incLanes="-24573947#3_0 24573947#2_0 83051436#1_0 -83051421#0_0" intLanes=":267169634_0_0 :267169634_1_0 :267169634_2_0 :267169634_16_0 :267169634_4_0 :267169634_17_0 :267169634_18_0 :267169634_19_0 :267169634_8_0 :267169634_9_0 :267169634_10_0 :267169634_11_0 :267169634_12_0 :267169634_13_0 :267169634_14_0 :267169634_15_0" shape="1476.00,987.89 1481.77,984.90 1476.22,974.09 1470.42,977.01 1461.78,984.71 1465.44,990.08 1 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000000000000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="1"/>
+ <request index="6" response="0000000000000110" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0000000000000100" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110100" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000001000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011101000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="267169686" type="right_before_left" x="1417.17" y="1094.54" incLanes="-24573939#1_0 83051421#0_0 24573939#0_0 -83051421#1_0" intLanes=":267169686_0_0 :267169686_1_0 :267169686_2_0 :267169686_3_0 :267169686_4_0 :267169686_5_0 :267169686_6_0 :267169686_7_0 :267169686_8_0 :267169686_9_0 :267169686_10_0 :267169686_11_0 :267169686_12_0 :267169686_13_0 :267169686_14_0 :267169686_15_0" shape="1417.69,1103.08 1423.54,1100.25 1423.48,1089.25 1417.68,1086.32 1416.26,1086.36 1410. [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="267169690" type="priority" x="1386.31" y="1040.19" incLanes="-24573939#0_0 -83051436#1_0 37772597#2_0 83051436#0_0" intLanes=":267169690_0_0 :267169690_1_0 :267169690_16_0 :267169690_17_0 :267169690_4_0 :267169690_5_0 :267169690_6_0 :267169690_7_0 :267169690_8_0 :267169690_9_0 :267169690_18_0 :267169690_19_0 :267169690_12_0 :267169690_13_0 :267169690_14_0 :267169690_15_0" shape="1385.83,1045.93 1391.49,1042.72 1392.35,1040.00 1388.68,1034.64 1386.72,1034.17 1381.02,1037 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="267169714" type="priority" x="1518.53" y="1062.74" incLanes="-24573947#4_0 37640549#0_0 24573947#3_0 -37640549#1_0" intLanes=":267169714_0_0 :267169714_1_0 :267169714_2_0 :267169714_3_0 :267169714_4_0 :267169714_5_0 :267169714_16_0 :267169714_17_0 :267169714_8_0 :267169714_9_0 :267169714_10_0 :267169714_11_0 :267169714_12_0 :267169714_13_0 :267169714_18_0 :267169714_19_0" shape="1517.83,1068.49 1523.61,1065.51 1524.31,1063.28 1521.20,1057.58 1519.19,1056.97 1513.42,1059 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="267169715" type="priority" x="1425.57" y="1111.91" incLanes="-24573939#2_0 37640549#1_0 24573939#1_0" intLanes=":267169715_0_0 :267169715_1_0 :267169715_2_0 :267169715_3_0 :267169715_4_0 :267169715_5_0 :267169715_6_0 :267169715_7_0 :267169715_8_0" shape="1424.61,1117.47 1430.48,1114.69 1431.39,1112.51 1428.35,1106.76 1426.37,1106.11 1420.52,1108.94">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="267169795" type="priority" x="1576.94" y="1162.84" incLanes="24573947#4_0" intLanes=":267169795_0_0" shape="1576.90,1162.87 1574.41,1164.88 1579.47,1160.80 1576.98,1162.81">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="267169964" type="priority" x="1228.66" y="1128.12" incLanes="-24573937_0 101272435#0_0" intLanes=":267169964_0_0 :267169964_4_0 :267169964_2_0 :267169964_3_0" shape="1229.45,1133.05 1232.28,1131.56 1233.00,1129.46 1229.89,1123.75 1227.89,1123.13 1225.04,1124.60">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="267584629" type="unregulated" x="607.00" y="2300.19" incLanes="" intLanes="" shape="610.15,2300.98 603.85,2299.41">
+ </junction>
+ <junction id="30406565" type="priority" x="688.62" y="1857.76" incLanes="130443629#8_0 -37973566_0" intLanes=":30406565_0_0 :30406565_4_0 :30406565_2_0 :30406565_5_0" shape="685.45,1858.58 691.90,1857.79 685.46,1856.88">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="30406599" type="traffic_light" x="771.72" y="1282.85" incLanes="37973572#1_0 37973572#1_1 -130443630#7_0 -37973572#2_0 -37973572#2_1 130443630#6_0" intLanes=":30406599_0_0 :30406599_1_0 :30406599_2_0 :30406599_3_0 :30406599_18_0 :30406599_5_0 :30406599_6_0 :30406599_19_0 :30406599_20_0 :30406599_9_0 :30406599_10_0 :30406599_11_0 :30406599_12_0 :30406599_21_0 :30406599_14_0 :30406599_15_0 :30406599_22_0 :30406599_23_0" shape="783.94,1283.41 777.45,1272.04 776.32,1271.30 [...]
+ <request index="0" response="000000000000000000" foes="100001000001000000" cont="0"/>
+ <request index="1" response="000000000000000000" foes="011111000011000000" cont="0"/>
+ <request index="2" response="000000000000000000" foes="011111000011000000" cont="0"/>
+ <request index="3" response="000000111000000000" foes="011000111111000000" cont="0"/>
+ <request index="4" response="010000110000100000" foes="010000110000100000" cont="1"/>
+ <request index="5" response="000000110000000000" foes="010000110000010000" cont="0"/>
+ <request index="6" response="000001110000001111" foes="110001110000001111" cont="0"/>
+ <request index="7" response="001101110000001110" foes="001111110000001110" cont="1"/>
+ <request index="8" response="001000001000001000" foes="001000001000001000" cont="1"/>
+ <request index="9" response="000000000000000000" foes="001000000100001000" cont="0"/>
+ <request index="10" response="000000000000000000" foes="011000000011111000" cont="0"/>
+ <request index="11" response="000000000000000000" foes="011000000011111000" cont="0"/>
+ <request index="12" response="000000000000000111" foes="111000000011000111" cont="0"/>
+ <request index="13" response="000100000010000110" foes="000100000010000110" cont="1"/>
+ <request index="14" response="000000000000000110" foes="000010000010000110" cont="0"/>
+ <request index="15" response="000001111000001110" foes="000001111110001110" cont="0"/>
+ <request index="16" response="000001110001101110" foes="000001110001111110" cont="1"/>
+ <request index="17" response="000001000001000001" foes="000001000001000001" cont="1"/>
+ </junction>
+ <junction id="314636763" type="priority" x="1396.03" y="2172.61" incLanes="38318373#0_0 -122394864#2_0 -38318373#1_0 122394864#1_0" intLanes=":314636763_0_0 :314636763_1_0 :314636763_2_0 :314636763_3_0 :314636763_4_0 :314636763_5_0 :314636763_6_0 :314636763_16_0 :314636763_8_0 :314636763_9_0 :314636763_10_0 :314636763_11_0 :314636763_12_0 :314636763_13_0 :314636763_17_0 :314636763_18_0" shape="1395.32,2178.31 1401.09,2175.32 1401.73,2173.30 1398.73,2167.53 1394.73,2168.22 1391.65,217 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="320879142" type="priority" x="1318.99" y="1997.42" incLanes="-132323955_0 81523343_0" intLanes=":320879142_0_0 :320879142_1_0 :320879142_6_0 :320879142_3_0 :320879142_4_0 :320879142_5_0" shape="1317.54,2001.67 1323.30,1998.66 1323.91,1996.59 1322.40,1993.77 1310.46,1996.06 1310.55,1999.26 1310.72,1999.91 1312.19,2002.75">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="0"/>
+ <request index="5" response="000010" foes="000010" cont="0"/>
+ </junction>
+ <junction id="320879175" type="unregulated" x="1551.35" y="2445.66" incLanes="129780019#2_0" intLanes="" shape="1552.77,2444.93 1549.92,2446.39">
+ </junction>
+ <junction id="356693793" type="unregulated" x="262.42" y="1552.22" incLanes="" intLanes="" shape="263.19,1553.63 261.65,1550.82">
+ </junction>
+ <junction id="356693794" type="priority" x="273.02" y="1566.65" incLanes="37973572#5_0 37973572#5_1" intLanes=":356693794_0_0" shape="272.99,1566.60 269.83,1560.93 276.20,1572.37 273.04,1566.69">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="410296508" type="priority" x="674.29" y="1339.75" incLanes="37973572#3_0 37973572#3_1 -34962531#0_0 -37973572#4_0 -37973572#4_1" intLanes=":410296508_0_0 :410296508_1_0 :410296508_2_0 :410296508_11_0 :410296508_4_0 :410296508_5_0 :410296508_6_0 :410296508_7_0 :410296508_8_0 :410296508_9_0 :410296508_12_0" shape="681.89,1342.90 675.29,1331.58 673.28,1331.02 667.56,1334.10 667.05,1336.32 673.49,1347.72">
+ <request index="0" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="2" response="01110000000" foes="01111100000" cont="0"/>
+ <request index="3" response="01100010000" foes="01100010000" cont="1"/>
+ <request index="4" response="01100000000" foes="01100001000" cont="0"/>
+ <request index="5" response="01100000111" foes="11100000111" cont="0"/>
+ <request index="6" response="00010000100" foes="00010000100" cont="0"/>
+ <request index="7" response="00000000000" foes="00001000100" cont="0"/>
+ <request index="8" response="00000000000" foes="00000111100" cont="0"/>
+ <request index="9" response="00000000000" foes="00000111100" cont="0"/>
+ <request index="10" response="00000100011" foes="00000100011" cont="1"/>
+ </junction>
+ <junction id="426879846" type="unregulated" x="852.14" y="2448.74" incLanes="141190466#2_0" intLanes="" shape="852.90,2450.15 851.38,2447.33">
+ </junction>
+ <junction id="427996791" type="traffic_light" x="1076.43" y="2109.41" incLanes="23315111#1_0 129780022#4_0 -23315111#2_0 -129780022#5_0" intLanes=":427996791_0_0 :427996791_1_0 :427996791_2_0 :427996791_16_0 :427996791_4_0 :427996791_5_0 :427996791_6_0 :427996791_17_0 :427996791_8_0 :427996791_9_0 :427996791_18_0 :427996791_19_0 :427996791_12_0 :427996791_13_0 :427996791_14_0 :427996791_20_0" shape="1075.56,2115.23 1081.45,2112.48 1082.13,2110.11 1079.14,2104.34 1077.31,2103.61 1071. [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="427996792" type="traffic_light" x="1068.75" y="2092.94" incLanes="23315111#3_0 -108329427#0_0 108329426#0_0 -108329426#1_0 44641744#0_0" intLanes=":427996792_0_0 :427996792_25_0 :427996792_26_0 :427996792_27_0 :427996792_28_0 :427996792_5_0 :427996792_29_0 :427996792_30_0 :427996792_8_0 :427996792_31_0 :427996792_10_0 :427996792_11_0 :427996792_12_0 :427996792_32_0 :427996792_33_0 :427996792_15_0 :427996792_16_0 :427996792_17_0 :427996792_18_0 :427996792_34_0 :427996792 [...]
+ <request index="0" response="1111100000000000000100000" foes="1111110000001000000100000" cont="0"/>
+ <request index="1" response="1111001111000000001100000" foes="1111001111011000001100000" cont="1"/>
+ <request index="2" response="1110001110000000011100000" foes="1110001110111000011100000" cont="1"/>
+ <request index="3" response="1100001100000110011100000" foes="1100001100000111011100000" cont="1"/>
+ <request index="4" response="1000001000000100100000000" foes="1000001000000100100000000" cont="1"/>
+ <request index="5" response="0000000000000000000000000" foes="0111111000001100000001111" cont="0"/>
+ <request index="6" response="0000000111000000000000000" foes="0111000111011100000001110" cont="1"/>
+ <request index="7" response="0000000110000000000000000" foes="0110000110111100000001100" cont="1"/>
+ <request index="8" response="0000000000000000000000000" foes="1000001000000100000010000" cont="0"/>
+ <request index="9" response="0100000100000010000001000" foes="0100000100000010000001000" cont="1"/>
+ <request index="10" response="0000000100000000000000000" foes="0100000100000001000001000" cont="0"/>
+ <request index="11" response="0000001100000000111100000" foes="1100001100000000111111000" cont="0"/>
+ <request index="12" response="0011101100000000011100111" foes="0011111100000000011100111" cont="0"/>
+ <request index="13" response="0011000011000000011000110" foes="0011000011000000011000110" cont="1"/>
+ <request index="14" response="0010000010000000010000100" foes="0010000010000000010000100" cont="1"/>
+ <request index="15" response="0000000000000000000000000" foes="0001000000010000001000010" cont="0"/>
+ <request index="16" response="0000000000000000000000000" foes="0011000000110000011000110" cont="0"/>
+ <request index="17" response="0000000000000000000000000" foes="0111000000001111011001110" cont="0"/>
+ <request index="18" response="0000000000000000100100000" foes="1111000000001100100111110" cont="0"/>
+ <request index="19" response="0000100000001000000100001" foes="0000100000001000000100001" cont="1"/>
+ <request index="20" response="0000000000000000000100000" foes="0000010000001000000100001" cont="0"/>
+ <request index="21" response="0000001111000000001100000" foes="0000001111011000001100011" cont="0"/>
+ <request index="22" response="0000001110000000011100000" foes="0000001110111000011100111" cont="1"/>
+ <request index="23" response="0000001100000110011100000" foes="0000001100000111011101111" cont="1"/>
+ <request index="24" response="0000001000000100100000000" foes="0000001000000100100011111" cont="1"/>
+ </junction>
+ <junction id="428097664" type="priority" x="1352.49" y="1979.41" incLanes="144874008#1_0 172498367_0" intLanes=":428097664_0_0 :428097664_1_0" shape="1355.95,1979.45 1354.50,1976.59 1352.45,1975.93 1349.62,1977.43 1349.01,1979.47 1350.52,1982.29">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="428303370" type="priority" x="740.87" y="2236.01" incLanes="130443629#4_0 -130443629#5_0 134572336#2_0 134572336#2_1" intLanes=":428303370_0_0 :428303370_9_0 :428303370_10_0 :428303370_3_0 :428303370_4_0 :428303370_11_0 :428303370_6_0 :428303370_7_0 :428303370_8_0" shape="738.65,2247.43 745.12,2246.84 746.00,2246.45 750.80,2242.07 742.96,2227.64 736.53,2228.56 735.42,2229.33 732.30,2235.03">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="429179805" type="priority" x="755.76" y="1497.37" incLanes="108329425#4_0 -108329425#5_0" intLanes=":429179805_0_0 :429179805_1_0 :429179805_6_0 :429179805_3_0 :429179805_7_0 :429179805_8_0" shape="756.95,1506.83 762.74,1503.86 757.47,1494.40 752.61,1498.72 752.89,1506.55 756.06,1506.98">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="1"/>
+ <request index="5" response="000010" foes="000010" cont="1"/>
+ </junction>
+ <junction id="429418283" type="unregulated" x="1886.93" y="1659.64" incLanes="172498387#5_0" intLanes="" shape="1886.15,1658.24 1887.70,1661.04">
+ </junction>
+ <junction id="432548413" type="unregulated" x="1499.78" y="852.67" incLanes="101272426#2_0" intLanes="" shape="1498.99,851.28 1500.58,854.06">
+ </junction>
+ <junction id="432548414" type="priority" x="1483.49" y="770.30" incLanes="149422199#2_0" intLanes=":432548414_0_0" shape="1483.51,770.34 1485.17,773.08 1481.80,767.52 1483.46,770.26">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="435668511" type="priority" x="744.37" y="2274.32" incLanes="130443629#2_0 -130443629#3_0 37369047#1_0 37369047#1_1 37369047#1_2 37369047#1_3" intLanes=":435668511_0_0 :435668511_1_0 :435668511_2_0 :435668511_3_0 :435668511_4_0 :435668511_5_0 :435668511_6_0 :435668511_7_0 :435668511_8_0 :435668511_9_0 :435668511_10_0 :435668511_11_0 :435668511_12_0 :435668511_13_0" shape="741.36,2276.25 747.80,2275.36 746.19,2280.79 745.55,2267.70 749.76,2271.08 747.47,2268.84 746.95,226 [...]
+ <request index="0" response="11111100000000" foes="11111110000000" cont="0"/>
+ <request index="1" response="11111001110000" foes="11111001110000" cont="0"/>
+ <request index="2" response="11110001100000" foes="11110001100000" cont="0"/>
+ <request index="3" response="10000001000000" foes="10000001000000" cont="0"/>
+ <request index="4" response="00001000000000" foes="00001000000010" cont="0"/>
+ <request index="5" response="01111000000000" foes="01111000000110" cont="0"/>
+ <request index="6" response="11111000000000" foes="11111000001110" cont="0"/>
+ <request index="7" response="00000100000001" foes="00000100000001" cont="0"/>
+ <request index="8" response="00000000000000" foes="00000010000001" cont="0"/>
+ <request index="9" response="00000000000000" foes="00000001110011" cont="0"/>
+ <request index="10" response="00000000000000" foes="00000001100111" cont="0"/>
+ <request index="11" response="00000000000000" foes="00000001100111" cont="0"/>
+ <request index="12" response="00000000000000" foes="00000001100111" cont="0"/>
+ <request index="13" response="00000000000000" foes="00000001001111" cont="0"/>
+ </junction>
+ <junction id="435668513" type="priority" x="1409.35" y="1913.50" incLanes="23066443#7_0 81523332#1_0" intLanes=":435668513_0_0 :435668513_1_0 :435668513_2_0 :435668513_3_0" shape="1409.38,1917.01 1412.21,1915.53 1412.85,1913.48 1411.36,1910.64 1409.35,1910.01 1406.50,1911.48 1405.85,1913.56 1407.36,1916.38">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="435668516" type="priority" x="1337.66" y="1952.73" incLanes="37449253#4_0 172498380#2_0" intLanes=":435668516_0_0 :435668516_1_0 :435668516_2_0 :435668516_3_0" shape="1337.90,1956.21 1340.64,1954.54 1341.24,1952.41 1339.56,1949.69 1336.50,1947.05 1333.66,1948.53 1332.94,1949.36 1331.87,1952.37">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="435668521" type="priority" x="1481.78" y="1875.56" incLanes="172498387#0_0" intLanes=":435668521_0_0 :435668521_1_0" shape="1485.29,1875.49 1483.78,1872.67 1481.77,1872.05 1478.92,1873.52 1478.30,1875.58 1479.78,1878.41">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="435668534" type="priority" x="1297.62" y="1991.64" incLanes="144874012#0_0 129780022#2_0 -129780022#3_0" intLanes=":435668534_0_0 :435668534_1_0 :435668534_2_0 :435668534_3_0 :435668534_4_0 :435668534_9_0 :435668534_6_0 :435668534_7_0 :435668534_10_0" shape="1298.45,1996.58 1301.27,1995.06 1302.05,1992.93 1298.94,1987.22 1296.97,1986.59 1294.08,1987.97 1293.36,1990.23 1296.42,1995.96">
+ <request index="0" response="000001000" foes="100001000" cont="0"/>
+ <request index="1" response="011011000" foes="011011000" cont="0"/>
+ <request index="2" response="010011000" foes="010111000" cont="0"/>
+ <request index="3" response="000000000" foes="100000111" cont="0"/>
+ <request index="4" response="011000000" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000000" foes="000010010" cont="0"/>
+ <request index="7" response="000000000" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="435668539" type="priority" x="762.39" y="2274.63" incLanes="129780022#5_0 37973565#6_0 133868186_0 133868186_1 133868186_2 133868186_3" intLanes=":435668539_0_0 :435668539_1_0 :435668539_11_0 :435668539_3_0 :435668539_4_0 :435668539_5_0 :435668539_6_0 :435668539_7_0 :435668539_8_0 :435668539_9_0 :435668539_10_0" shape="761.57,2285.68 764.76,2285.45 767.91,2275.40 764.88,2269.65 763.40,2268.85 760.22,2269.18 761.27,2268.01 760.51,2281.08 751.62,2275.46 760.35,2285.23">
+ <request index="0" response="00000000000" foes="00100010000" cont="0"/>
+ <request index="1" response="00000000000" foes="11101110000" cont="0"/>
+ <request index="2" response="00010001000" foes="00010001000" cont="1"/>
+ <request index="3" response="00010000000" foes="00010000100" cont="0"/>
+ <request index="4" response="00110000011" foes="00110000011" cont="0"/>
+ <request index="5" response="11110000010" foes="11110000010" cont="0"/>
+ <request index="6" response="11110000010" foes="11110000010" cont="0"/>
+ <request index="7" response="00000000000" foes="00001111100" cont="0"/>
+ <request index="8" response="00000000011" foes="00001110011" cont="0"/>
+ <request index="9" response="00000000010" foes="00001100010" cont="0"/>
+ <request index="10" response="00000000010" foes="00001100010" cont="0"/>
+ </junction>
+ <junction id="435668557" type="unregulated" x="620.36" y="2358.65" incLanes="133868191#2_0 133868191#2_1 133868191#2_2 133868191#2_3" intLanes="" shape="623.51,2364.40 617.21,2352.91">
+ </junction>
+ <junction id="438042367" type="traffic_light" x="910.96" y="1203.37" incLanes="133960539#4_0 133960539#4_1 149868584#8_0 149868584#8_1 -37973572#0_0 -37973572#0_1" intLanes=":438042367_0_0 :438042367_1_0 :438042367_2_0 :438042367_11_0 :438042367_4_0 :438042367_12_0 :438042367_13_0 :438042367_7_0 :438042367_8_0 :438042367_9_0 :438042367_14_0" shape="912.49,1212.02 918.02,1208.61 919.57,1206.00 913.08,1194.62 910.81,1193.79 902.47,1198.94 901.96,1200.96 908.45,1212.34">
+ <request index="0" response="00000010000" foes="10000010000" cont="0"/>
+ <request index="1" response="01110110000" foes="01110110000" cont="0"/>
+ <request index="2" response="01110110000" foes="01110110000" cont="0"/>
+ <request index="3" response="01000110000" foes="01001110000" cont="1"/>
+ <request index="4" response="00000000000" foes="10000001111" cont="0"/>
+ <request index="5" response="01110000000" foes="01110001110" cont="1"/>
+ <request index="6" response="01000001000" foes="01000001000" cont="1"/>
+ <request index="7" response="00000000000" foes="00000100110" cont="0"/>
+ <request index="8" response="00000000000" foes="00000100110" cont="0"/>
+ <request index="9" response="00000000000" foes="00001101110" cont="0"/>
+ <request index="10" response="00000010001" foes="00000010001" cont="1"/>
+ </junction>
+ <junction id="438042369" type="traffic_light" x="922.82" y="1196.60" incLanes="149868584#7_0 149868584#7_1 154500693#3_0 154500693#3_1 154500693#3_2 -149868584#8_0 -149868584#8_1" intLanes=":438042369_0_0 :438042369_1_0 :438042369_2_0 :438042369_11_0 :438042369_4_0 :438042369_5_0 :438042369_6_0 :438042369_12_0 :438042369_8_0 :438042369_9_0 :438042369_13_0" shape="923.38,1205.55 929.28,1202.82 932.12,1198.84 925.64,1187.46 923.70,1186.84 914.81,1190.96 914.49,1193.82 920.98,1205.19">
+ <request index="0" response="00001100000" foes="01001100000" cont="0"/>
+ <request index="1" response="00001100000" foes="01001100000" cont="0"/>
+ <request index="2" response="00011100000" foes="11011100000" cont="0"/>
+ <request index="3" response="00100010000" foes="00100010000" cont="1"/>
+ <request index="4" response="00000000000" foes="00100001000" cont="0"/>
+ <request index="5" response="00000000000" foes="01100000111" cont="0"/>
+ <request index="6" response="00000000000" foes="01100000111" cont="0"/>
+ <request index="7" response="00000000000" foes="11100000100" cont="1"/>
+ <request index="8" response="00011110000" foes="00011111000" cont="0"/>
+ <request index="9" response="00011100111" foes="00011100111" cont="0"/>
+ <request index="10" response="00010000100" foes="00010000100" cont="1"/>
+ </junction>
+ <junction id="438042372" type="priority" x="1287.38" y="1678.03" incLanes="44738605#0_0 23066443#2_0" intLanes=":438042372_0_0 :438042372_1_0 :438042372_2_0 :438042372_3_0" shape="1287.39,1681.54 1290.23,1680.06 1291.12,1676.38 1288.78,1674.19 1287.07,1673.96 1284.23,1675.43 1283.88,1678.08 1285.38,1680.91">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="438042373" type="traffic_light" x="1242.56" y="1701.83" incLanes="44738605#2_0 154500695_0" intLanes=":438042373_0_0 :438042373_1_0" shape="1246.19,1701.71 1244.69,1698.89 1242.79,1698.21 1239.83,1699.43 1240.45,1702.89 1243.44,1704.02">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="438042374" type="priority" x="1231.88" y="1730.17" incLanes="37449249#0_0" intLanes=":438042374_0_0 :438042374_1_0" shape="1234.04,1728.97 1231.05,1727.84 1226.72,1732.77 1228.89,1735.12 1229.88,1735.59 1233.07,1735.83">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="438042376" type="priority" x="1280.33" y="1664.44" incLanes="23066443#1_0 151167658#1_0" intLanes=":438042376_0_0 :438042376_1_0 :438042376_2_0 :438042376_3_0" shape="1280.73,1668.68 1283.57,1667.21 1284.38,1665.78 1284.17,1662.59 1280.33,1660.96 1277.49,1662.43 1276.84,1664.46 1278.32,1667.30">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="438042377" type="traffic_light" x="1234.66" y="1688.33" incLanes="154500699#1_0" intLanes=":438042377_0_0 :438042377_1_0" shape="1235.54,1692.01 1238.05,1690.03 1238.44,1688.16 1236.96,1685.32 1233.43,1686.46 1232.82,1689.60">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="438042378" type="traffic_light" x="1201.45" y="1681.53" incLanes="42976410#5_0 154500699#0_0" intLanes=":438042378_0_0 :438042378_1_0" shape="1203.15,1683.52 1203.80,1680.39 1199.72,1676.86 1197.23,1678.88 1196.68,1680.09 1196.79,1683.29">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="438042379" type="priority" x="1125.23" y="1656.38" incLanes="81672207#0_0 -166625259_0" intLanes=":438042379_0_0 :438042379_1_0 :438042379_2_0 :438042379_4_0" shape="1126.73,1658.59 1127.77,1655.56 1124.38,1651.32 1121.55,1652.81 1120.87,1654.74 1123.47,1660.70">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="438042380" type="priority" x="1205.90" y="1773.17" incLanes="37449245#1_0 81394162#1_0 81394162#1_1" intLanes=":438042380_0_0 :438042380_1_0 :438042380_2_0" shape="1204.61,1786.36 1207.94,1786.11 1208.96,1785.97 1214.71,1782.95 1212.03,1778.93 1206.09,1781.58">
+ <request index="0" response="110" foes="110" cont="0"/>
+ <request index="1" response="000" foes="001" cont="0"/>
+ <request index="2" response="000" foes="001" cont="0"/>
+ </junction>
+ <junction id="438042381" type="traffic_light" x="1167.26" y="1695.93" incLanes="37449249#3_0" intLanes=":438042381_0_0 :438042381_1_0 :438042381_2_0" shape="1172.10,1692.61 1169.64,1690.57 1167.97,1690.40 1162.25,1693.48 1164.75,1699.83 1167.93,1700.77">
+ <request index="0" response="000" foes="000" cont="0"/>
+ <request index="1" response="000" foes="000" cont="0"/>
+ <request index="2" response="000" foes="000" cont="0"/>
+ </junction>
+ <junction id="438042385" type="traffic_light" x="1211.11" y="1748.62" incLanes="37449249#1_0 133960538#0_0 133960538#0_1" intLanes=":438042385_0_0 :438042385_1_0 :438042385_2_0 :438042385_3_0 :438042385_4_0" shape="1209.63,1753.91 1215.71,1751.63 1216.54,1746.13 1214.48,1743.69 1212.91,1743.22 1206.67,1745.05 1205.70,1750.86 1207.84,1753.31">
+ <request index="0" response="01100" foes="01100" cont="0"/>
+ <request index="1" response="11100" foes="11100" cont="0"/>
+ <request index="2" response="00000" foes="00011" cont="0"/>
+ <request index="3" response="00000" foes="00011" cont="0"/>
+ <request index="4" response="00000" foes="00010" cont="0"/>
+ </junction>
+ <junction id="438042386" type="traffic_light" x="1175.97" y="1687.44" incLanes="42976405#3_0 42976405#3_1 154500698_0" intLanes=":438042386_0_0 :438042386_1_0 :438042386_2_0 :438042386_3_0 :438042386_4_0" shape="1177.63,1692.96 1181.72,1687.90 1181.90,1686.30 1180.48,1683.43 1177.47,1683.24 1171.69,1686.22 1171.45,1688.98 1173.44,1691.49">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="438042387" type="traffic_light" x="1198.12" y="1755.72" incLanes="81394162#2_0 81394162#2_1 37449249#2_0" intLanes=":438042387_0_0 :438042387_1_0" shape="1196.56,1760.21 1202.50,1757.56 1203.32,1755.73 1202.34,1752.68 1194.82,1751.47 1192.99,1754.10">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="441236049" type="priority" x="810.99" y="1017.83" incLanes="42976406#3_0 42976406#3_1 42976406#3_2 37638426#0_0 179692877#1_0" intLanes=":441236049_0_0 :441236049_1_0 :441236049_2_0 :441236049_3_0 :441236049_4_0 :441236049_5_0 :441236049_6_0 :441236049_7_0 :441236049_8_0 :441236049_9_0 :441236049_10_0" shape="812.07,1030.21 820.71,1025.59 818.01,1017.45 817.12,1014.38 812.78,1010.15 803.92,1014.34 803.08,1015.48 802.93,1018.71 804.76,1028.63 811.03,1030.36">
+ <request index="0" response="00000000000" foes="10000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="01101100000" cont="0"/>
+ <request index="2" response="00000000000" foes="01011100000" cont="0"/>
+ <request index="3" response="00000000000" foes="01011100000" cont="0"/>
+ <request index="4" response="00000000000" foes="01011100000" cont="0"/>
+ <request index="5" response="00000011111" foes="10000011111" cont="0"/>
+ <request index="6" response="01100011110" foes="01100011110" cont="0"/>
+ <request index="7" response="01000011100" foes="01000011100" cont="0"/>
+ <request index="8" response="00000000010" foes="00001000010" cont="0"/>
+ <request index="9" response="00000011110" foes="00011011110" cont="0"/>
+ <request index="10" response="00000100001" foes="00000100001" cont="0"/>
+ </junction>
+ <junction id="441236060" type="priority" x="788.69" y="970.63" incLanes="42976406#4_0 42976406#4_1 42976406#4_2 154500706#0_0" intLanes=":441236060_0_0 :441236060_1_0 :441236060_2_0 :441236060_3_0 :441236060_4_0 :441236060_5_0" shape="786.89,978.29 795.75,974.10 795.02,967.89 793.11,965.32 791.21,964.90 782.53,969.45 782.76,976.34 785.39,978.17">
+ <request index="0" response="000000" foes="110000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="000000" foes="110000" cont="0"/>
+ <request index="3" response="000000" foes="100000" cont="0"/>
+ <request index="4" response="000111" foes="000111" cont="0"/>
+ <request index="5" response="001111" foes="001111" cont="0"/>
+ </junction>
+ <junction id="441266854" type="traffic_light" x="1800.95" y="1402.27" incLanes="-154844500#3_0 154844500#2_0" intLanes=":441266854_0_0 :441266854_4_0 :441266854_2_0 :441266854_5_0" shape="1802.45,1405.15 1799.44,1399.39 1802.45,1405.15">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="441266862" type="unregulated" x="1742.60" y="1287.33" incLanes="37771904#1_0" intLanes="" shape="1741.89,1285.90 1743.31,1288.77">
+ </junction>
+ <junction id="441266865" type="priority" x="1604.66" y="1015.69" incLanes="-37640549#0_0" intLanes=":441266865_0_0" shape="1604.69,1015.73 1606.22,1018.54 1603.11,1012.83 1604.64,1015.64">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="441266870" type="right_before_left" x="1370.27" y="1239.60" incLanes="-23066462#2_0 83051455_0 23066462#1_0" intLanes=":441266870_0_0 :441266870_1_0 :441266870_2_0 :441266870_3_0 :441266870_4_0 :441266870_5_0 :441266870_6_0 :441266870_7_0 :441266870_8_0" shape="1370.72,1245.71 1375.96,1241.86 1376.39,1239.93 1373.24,1234.24 1369.53,1234.69 1365.30,1239.62">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="441266874" type="right_before_left" x="1456.29" y="1176.65" incLanes="-83051442#2_0 24573939#2_0 83051442#1_0" intLanes=":441266874_0_0 :441266874_1_0 :441266874_2_0 :441266874_3_0 :441266874_4_0 :441266874_5_0 :441266874_6_0 :441266874_7_0 :441266874_8_0" shape="1460.65,1179.27 1459.67,1172.85 1457.53,1171.70 1451.66,1174.48 1451.18,1176.83 1455.49,1181.70">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="441266876" type="priority" x="1144.45" y="968.24" incLanes="37640550#3_0" intLanes=":441266876_0_0 :441266876_1_0" shape="1144.42,971.68 1147.27,970.21 1147.97,968.10 1146.41,965.31 1144.40,964.71 1141.57,966.20">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="441266879" type="priority" x="1413.40" y="1478.37" incLanes="23182640_0 101272435#2_0" intLanes=":441266879_0_0 :441266879_1_0" shape="1413.42,1481.85 1416.25,1480.36 1416.90,1478.31 1415.38,1475.49 1413.36,1474.87 1410.53,1476.36">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="441266880" type="traffic_light" x="1465.56" y="1577.35" incLanes="-154844500#1_0 101272435#4_0 154844500#0_0" intLanes=":441266880_0_0 :441266880_1_0 :441266880_9_0 :441266880_3_0 :441266880_4_0 :441266880_10_0 :441266880_6_0 :441266880_11_0 :441266880_12_0" shape="1466.36,1582.30 1469.19,1580.81 1469.82,1578.79 1466.81,1573.03 1464.76,1572.40 1461.92,1573.89 1461.30,1575.91 1464.31,1581.67">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="1"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="441266884" type="traffic_light" x="1591.73" y="1816.80" incLanes="101272435#6_0 172498387#4_0" intLanes=":441266884_0_0 :441266884_1_0 :441266884_2_0 :441266884_3_0" shape="1591.76,1820.29 1594.59,1818.80 1595.22,1816.77 1593.73,1813.94 1591.70,1813.31 1588.87,1814.80 1588.24,1816.84 1589.74,1819.66">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="443089060" type="traffic_light" x="1552.91" y="1837.42" incLanes="37771900#0_0 172498387#1_0" intLanes=":443089060_0_0 :443089060_1_0 :443089060_2_0 :443089060_3_0" shape="1552.95,1840.91 1555.78,1839.41 1556.45,1837.34 1554.94,1834.52 1552.96,1833.88 1550.08,1835.29 1549.42,1837.48 1550.93,1840.30">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="443089061" type="priority" x="1517.24" y="1764.69" incLanes="37771900#1_0 -81096844#0_0" intLanes=":443089061_0_0 :443089061_1_0 :443089061_2_0 :443089061_3_0" shape="1517.92,1769.71 1520.79,1768.30 1516.45,1759.75 1513.62,1761.24 1512.87,1763.34 1515.93,1769.07">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0000" foes="0100" cont="0"/>
+ <request index="2" response="0010" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="443089062" type="priority" x="1480.37" y="1694.48" incLanes="37771900#2_0 23066446#3_0" intLanes=":443089062_0_0 :443089062_1_0 :443089062_2_0 :443089062_3_0" shape="1481.16,1699.43 1483.99,1697.94 1479.55,1689.53 1476.72,1691.03 1476.10,1693.05 1479.11,1698.81">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0000" foes="0100" cont="0"/>
+ <request index="2" response="0010" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="443089063" type="traffic_light" x="1427.34" y="1597.31" incLanes="37771900#5_0 -110514869#2_0 -110514869#2_1 110514869#1_0 110514869#1_1" intLanes=":443089063_0_0 :443089063_1_0 :443089063_11_0 :443089063_3_0 :443089063_4_0 :443089063_12_0 :443089063_13_0 :443089063_7_0 :443089063_8_0 :443089063_9_0 :443089063_14_0" shape="1430.12,1605.13 1432.87,1603.50 1433.44,1601.51 1427.38,1589.90 1425.16,1589.36 1422.30,1590.79 1421.67,1592.88 1427.73,1604.49">
+ <request index="0" response="00000011000" foes="10000011000" cont="0"/>
+ <request index="1" response="01110111000" foes="01110111000" cont="0"/>
+ <request index="2" response="01100111000" foes="01101111000" cont="1"/>
+ <request index="3" response="00000000000" foes="10000000111" cont="0"/>
+ <request index="4" response="00000000000" foes="10000000111" cont="0"/>
+ <request index="5" response="01110000000" foes="01110000110" cont="1"/>
+ <request index="6" response="01100000100" foes="01100000100" cont="1"/>
+ <request index="7" response="00000000000" foes="00000100010" cont="0"/>
+ <request index="8" response="00000000000" foes="00001100110" cont="0"/>
+ <request index="9" response="00000000000" foes="00001100110" cont="0"/>
+ <request index="10" response="00000011001" foes="00000011001" cont="1"/>
+ </junction>
+ <junction id="443089064" type="priority" x="1377.93" y="1498.33" incLanes="37771900#6_0" intLanes=":443089064_0_0 :443089064_1_0" shape="1377.90,1501.85 1380.77,1500.42 1377.82,1494.82 1375.02,1496.36 1374.40,1498.40 1375.91,1501.22">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="443089065" type="priority" x="1230.62" y="1221.27" incLanes="58770837#1_0 24319547_0" intLanes=":443089065_0_0 :443089065_1_0" shape="1230.65,1224.75 1233.48,1223.27 1230.58,1217.77 1227.75,1219.27 1227.12,1221.28 1228.59,1224.13">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="443089066" type="priority" x="1192.98" y="1150.29" incLanes="58770836_0 24319558_0" intLanes=":443089066_0_0 :443089066_1_0" shape="1193.04,1153.82 1195.87,1152.32 1192.92,1146.83 1190.10,1148.36 1189.46,1150.45 1191.03,1153.23">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="443089068" type="priority" x="1109.13" y="993.76" incLanes="81096816#1_0" intLanes=":443089068_0_0 :443089068_1_0" shape="1109.24,997.26 1112.04,995.72 1109.16,990.33 1106.32,991.79 1105.63,993.92 1107.21,996.69">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="443089069" type="priority" x="1154.02" y="1599.58" incLanes="42976410#3_0" intLanes=":443089069_0_0 :443089069_1_0" shape="1154.42,1603.20 1157.12,1601.49 1157.66,1599.55 1156.24,1596.69 1153.98,1596.14 1151.16,1597.67">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="443089070" type="priority" x="1371.35" y="1486.40" incLanes="37771900#7_0 58770724_0" intLanes=":443089070_0_0 :443089070_1_0" shape="1371.45,1489.89 1374.25,1488.34 1371.30,1482.93 1368.48,1484.45 1367.87,1486.50 1369.41,1489.30">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="443089071" type="priority" x="1233.20" y="1573.47" incLanes="58770723#0_0 23066443#0_0" intLanes=":443089071_0_0 :443089071_1_0 :443089071_2_0 :443089071_3_0" shape="1233.22,1576.97 1236.06,1575.50 1236.71,1573.49 1235.27,1570.63 1233.20,1569.98 1230.36,1571.45 1229.71,1573.48 1231.19,1576.32">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="443089072" type="priority" x="1306.46" y="1536.50" incLanes="58770725#5_0 37771903_0" intLanes=":443089072_0_0 :443089072_1_0 :443089072_2_0 :443089072_3_0" shape="1306.45,1539.97 1309.30,1538.50 1309.97,1536.44 1308.46,1533.62 1306.45,1532.99 1303.60,1534.46 1302.96,1536.47 1304.40,1539.33">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="443089074" type="priority" x="1406.05" y="1464.41" incLanes="101272435#1_0" intLanes=":443089074_0_0 :443089074_1_0" shape="1406.06,1467.88 1408.90,1466.38 1409.56,1464.30 1408.02,1461.50 1406.01,1460.90 1403.18,1462.39">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="443101905" type="priority" x="1445.70" y="920.67" incLanes="-24573947#2_0 37772595#0_0 24573947#1_0" intLanes=":443101905_0_0 :443101905_1_0 :443101905_9_0 :443101905_3_0 :443101905_4_0 :443101905_5_0 :443101905_6_0 :443101905_10_0 :443101905_11_0" shape="1444.25,925.02 1450.06,922.10 1450.61,919.76 1449.06,916.97 1446.97,916.34 1441.32,919.56 1440.71,921.62 1442.27,924.42">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="443101906" type="priority" x="1350.14" y="974.07" incLanes="-37772597#2_0 37772595#1_0 37772597#1_0" intLanes=":443101906_0_0 :443101906_1_0 :443101906_9_0 :443101906_3_0 :443101906_4_0 :443101906_5_0 :443101906_6_0 :443101906_10_0 :443101906_11_0" shape="1348.79,978.38 1354.50,975.26 1355.40,972.97 1353.83,970.17 1352.06,969.48 1345.88,971.51 1345.20,975.00 1346.77,977.79">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="443101911" type="priority" x="1087.15" y="1122.88" incLanes="101272429#0_0" intLanes=":443101911_0_0 :443101911_1_0" shape="1087.19,1126.43 1090.03,1124.96 1090.57,1122.76 1088.97,1119.99 1083.61,1123.06 1085.19,1125.84">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="443101912" type="traffic_light" x="945.91" y="1203.21" incLanes="101272429#2_0 42976410#1_0" intLanes=":443101912_0_0 :443101912_1_0 :443101912_2_0 :443101912_3_0" shape="945.92,1206.75 948.77,1205.30 949.44,1203.07 947.87,1200.27 945.87,1199.68 943.03,1201.16 942.37,1203.36 943.93,1206.15">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="443101913" type="traffic_light" x="931.22" y="1174.43" incLanes="101272424#3_0 37973568#7_0" intLanes=":443101913_0_0 :443101913_1_0 :443101913_2_0 :443101913_3_0" shape="931.23,1177.97 934.08,1176.52 934.75,1174.28 933.18,1171.49 931.17,1170.90 928.34,1172.38 927.68,1174.59 929.25,1177.37">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="443101914" type="priority" x="1005.73" y="1132.44" incLanes="37772596#1_0" intLanes=":443101914_0_0 :443101914_1_0" shape="1009.27,1132.28 1007.69,1129.50 1005.69,1128.90 1002.86,1130.38 1002.29,1132.55 1003.86,1135.33">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="443101915" type="priority" x="1074.91" y="1093.27" incLanes="24573897#4_0 37772596#2_0" intLanes=":443101915_0_0 :443101915_1_0" shape="1078.42,1093.17 1076.89,1090.37 1074.88,1089.76 1072.04,1091.24 1071.47,1093.38 1073.04,1096.17">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="443101920" type="priority" x="1339.97" y="942.95" incLanes="23262356#1_0 -23262356#2_0 101272426#0_0" intLanes=":443101920_0_0 :443101920_9_0 :443101920_10_0 :443101920_3_0 :443101920_4_0 :443101920_11_0 :443101920_6_0 :443101920_7_0 :443101920_8_0" shape="1338.04,947.53 1344.22,945.53 1344.96,941.98 1343.40,939.19 1341.42,938.58 1335.60,941.49 1334.71,944.04 1336.26,946.83">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="443101921" type="priority" x="1430.21" y="892.33" incLanes="-149422193#0_0 149422210#1_0 101272426#1_0" intLanes=":443101921_0_0 :443101921_9_0 :443101921_10_0 :443101921_3_0 :443101921_4_0 :443101921_5_0 :443101921_6_0 :443101921_7_0 :443101921_8_0" shape="1428.81,896.67 1434.57,893.67 1435.19,891.34 1433.60,888.56 1431.61,887.97 1425.84,890.97 1425.24,893.29 1426.81,896.08">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110000000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="010000010" foes="010000010" cont="0"/>
+ <request index="4" response="110000010" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="443101936" type="unregulated" x="1620.61" y="1959.22" incLanes="" intLanes="" shape="1619.88,1957.80 1621.35,1960.64">
+ </junction>
+ <junction id="443101938" type="traffic_light" x="1568.44" y="1866.64" incLanes="139118802#0_0" intLanes=":443101938_0_0" shape="1569.18,1868.06 1567.70,1865.22 1569.18,1868.06">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="444026884" type="traffic_light" x="754.64" y="1292.89" incLanes="37973572#2_0 37973572#2_1 -37973572#3_0 -37973572#3_1 81394192#12_0" intLanes=":444026884_0_0 :444026884_1_0 :444026884_2_0 :444026884_11_0 :444026884_4_0 :444026884_5_0 :444026884_6_0 :444026884_12_0 :444026884_8_0 :444026884_9_0 :444026884_13_0" shape="766.21,1293.68 759.57,1282.39 758.54,1281.87 755.41,1281.23 743.09,1292.04 749.69,1303.35 750.69,1304.07 753.82,1304.72">
+ <request index="0" response="00000000000" foes="11110000000" cont="0"/>
+ <request index="1" response="00000000000" foes="11110000000" cont="0"/>
+ <request index="2" response="00001110000" foes="11001110000" cont="0"/>
+ <request index="3" response="10001100000" foes="10001100000" cont="1"/>
+ <request index="4" response="00000000000" foes="01000000100" cont="0"/>
+ <request index="5" response="00000000000" foes="11000001100" cont="0"/>
+ <request index="6" response="00000000000" foes="11000001100" cont="0"/>
+ <request index="7" response="00100000011" foes="00100000011" cont="1"/>
+ <request index="8" response="00000000011" foes="00010000011" cont="0"/>
+ <request index="9" response="00001110111" foes="00001110111" cont="0"/>
+ <request index="10" response="00001100111" foes="00001101111" cont="1"/>
+ </junction>
+ <junction id="444026886" type="priority" x="783.34" y="1096.11" incLanes="81394192#15_0" intLanes=":444026886_0_0" shape="784.90,1096.47 781.87,1095.46 781.73,1096.04 784.90,1096.47">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="444026889" type="priority" x="801.34" y="1081.22" incLanes="-179692877#0_0 37973571#1_0 130443630#11_0" intLanes=":444026889_0_0 :444026889_6_0 :444026889_2_0 :444026889_3_0 :444026889_4_0 :444026889_7_0" shape="804.74,1080.00 798.29,1079.27 795.00,1081.98 796.17,1084.96 797.35,1085.90 803.77,1086.86">
+ <request index="0" response="000000" foes="101000" cont="0"/>
+ <request index="1" response="010100" foes="010100" cont="1"/>
+ <request index="2" response="010000" foes="010010" cont="0"/>
+ <request index="3" response="010001" foes="110001" cont="0"/>
+ <request index="4" response="000000" foes="001110" cont="0"/>
+ <request index="5" response="001001" foes="001001" cont="1"/>
+ </junction>
+ <junction id="444026895" type="unregulated" x="702.21" y="805.87" incLanes="42976406#5_0 42976406#5_1 42976406#5_2" intLanes="" shape="697.87,808.15 706.55,803.59">
+ </junction>
+ <junction id="444026917" type="traffic_light" x="1039.53" y="859.01" incLanes="81096816#2_0 8272412#3_0" intLanes=":444026917_0_0 :444026917_1_0 :444026917_2_0 :444026917_3_0" shape="1039.56,862.56 1042.41,861.09 1043.07,858.84 1041.49,856.06 1039.49,855.47 1036.65,856.95 1035.99,859.18 1037.57,861.97">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="444026921" type="unregulated" x="741.26" y="288.18" incLanes="81096816#6_0" intLanes="" shape="739.83,288.90 742.69,287.46">
+ </junction>
+ <junction id="445506213" type="priority" x="703.58" y="1857.21" incLanes="37942667#5_0" intLanes=":445506213_0_0" shape="702.05,1857.75 705.20,1857.19 702.04,1856.71">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="445506215" type="priority" x="760.62" y="2257.65" incLanes="37973565#4_0 134572336#3_0 134572336#3_1 37351086#1_0" intLanes=":445506215_0_0 :445506215_1_0 :445506215_2_0 :445506215_3_0 :445506215_4_0 :445506215_5_0 :445506215_6_0 :445506215_7_0 :445506215_8_0 :445506215_9_0" shape="759.62,2263.50 762.81,2263.17 767.29,2263.10 769.20,2256.89 769.16,2255.88 767.94,2252.92 761.06,2248.15 757.88,2248.54 757.05,2248.92 752.25,2253.30 756.04,2260.05 758.33,2262.28">
+ <request index="0" response="0000001000" foes="0010001000" cont="0"/>
+ <request index="1" response="0000111000" foes="0110111000" cont="0"/>
+ <request index="2" response="0001111000" foes="1111111000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000111" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000110" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000110" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000100" cont="0"/>
+ <request index="7" response="0001111111" foes="0001111111" cont="0"/>
+ <request index="8" response="0001110110" foes="0001110110" cont="0"/>
+ <request index="9" response="0001000100" foes="0001000100" cont="0"/>
+ </junction>
+ <junction id="445506216" type="priority" x="976.83" y="1921.29" incLanes="108329426#2_0 -69931595#0_0" intLanes=":445506216_0_0 :445506216_1_0 :445506216_6_0 :445506216_3_0 :445506216_7_0 :445506216_8_0" shape="975.43,1925.57 981.16,1922.49 978.29,1917.08 972.53,1920.09 971.88,1922.14 973.40,1924.96">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="1"/>
+ <request index="5" response="000010" foes="000010" cont="1"/>
+ </junction>
+ <junction id="445506217" type="priority" x="730.60" y="2053.47" incLanes="37942668#1_0 37973565#2_0" intLanes=":445506217_0_0 :445506217_1_0 :445506217_2_0 :445506217_3_0" shape="729.56,2057.35 732.73,2056.88 734.75,2053.07 733.25,2050.25 731.75,2049.46 728.57,2049.83 726.58,2053.65 727.99,2056.53">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="445506220" type="priority" x="742.78" y="1482.78" incLanes="108329425#5_0 -130443630#1_0 130443630#0_0" intLanes=":445506220_0_0 :445506220_1_0 :445506220_2_0 :445506220_3_0 :445506220_4_0 :445506220_9_0 :445506220_6_0 :445506220_10_0 :445506220_11_0" shape="745.97,1491.26 750.83,1486.94 746.44,1480.27 740.00,1479.32 738.33,1490.67 744.76,1491.62">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="445506221" type="priority" x="715.90" y="2060.68" incLanes="130443629#5_0 37942668#2_0 -130443629#6_0" intLanes=":445506221_0_0 :445506221_6_0 :445506221_2_0 :445506221_3_0 :445506221_4_0 :445506221_7_0" shape="712.98,2063.24 719.42,2062.32 721.50,2059.71 720.09,2056.84 718.55,2056.01 712.10,2056.89">
+ <request index="0" response="000000" foes="101000" cont="0"/>
+ <request index="1" response="010100" foes="010100" cont="1"/>
+ <request index="2" response="010000" foes="010010" cont="0"/>
+ <request index="3" response="010001" foes="110001" cont="0"/>
+ <request index="4" response="000000" foes="001110" cont="0"/>
+ <request index="5" response="001001" foes="001001" cont="1"/>
+ </junction>
+ <junction id="445823604" type="priority" x="763.73" y="2291.39" incLanes="139118804#4_0 37973565#8_0" intLanes=":445823604_0_0 :445823604_1_0 :445823604_2_0 :445823604_3_0" shape="762.52,2294.39 765.69,2293.95 767.90,2291.03 766.43,2288.19 764.95,2287.39 761.76,2287.69 760.46,2289.58 760.26,2292.77">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="446017735" type="priority" x="727.78" y="2228.85" incLanes="134572336#1_0 134572336#1_1" intLanes=":446017735_0_0 :446017735_1_0 :446017735_2_0" shape="728.05,2232.70 731.17,2227.00 728.59,2223.31 725.42,2223.78 724.15,2225.05 723.24,2231.48">
+ <request index="0" response="000" foes="000" cont="0"/>
+ <request index="1" response="000" foes="000" cont="0"/>
+ <request index="2" response="000" foes="000" cont="0"/>
+ </junction>
+ <junction id="446017738" type="priority" x="667.27" y="1326.71" incLanes="34962531#1_0 -160584984_0 37973568#1_0" intLanes=":446017738_0_0 :446017738_9_0 :446017738_10_0 :446017738_3_0 :446017738_4_0 :446017738_11_0 :446017738_6_0 :446017738_7_0 :446017738_8_0" shape="665.91,1331.04 671.64,1327.96 674.10,1324.43 672.44,1321.69 671.36,1320.99 664.93,1320.08 662.32,1327.67 663.90,1330.46">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="446017739" type="traffic_light" x="759.21" y="1270.76" incLanes="37973568#2_0 81394192#14_0" intLanes=":446017739_0_0 :446017739_1_0 :446017739_2_0 :446017739_3_0" shape="764.13,1269.78 762.54,1267.01 761.44,1266.26 758.27,1265.83 753.95,1272.08 755.61,1274.82 756.59,1275.50 759.73,1276.15">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="446017740" type="traffic_light" x="750.28" y="1313.96" incLanes="37973569#6_0 81394192#10_0" intLanes=":446017740_0_0 :446017740_1_0 :446017740_2_0 :446017740_3_0" shape="755.48,1312.77 753.87,1310.01 752.87,1309.30 749.74,1308.65 745.37,1314.91 746.95,1317.69 748.05,1318.44 751.22,1318.87">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="446017741" type="traffic_light" x="774.09" y="1262.24" incLanes="-130443630#9_0 37973568#3_0 130443630#8_0" intLanes=":446017741_0_0 :446017741_1_0 :446017741_9_0 :446017741_3_0 :446017741_4_0 :446017741_10_0 :446017741_6_0 :446017741_11_0 :446017741_12_0" shape="780.85,1260.30 779.29,1257.51 778.20,1256.76 771.78,1255.79 767.47,1264.19 769.06,1266.96 770.19,1267.71 776.64,1268.46">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="1"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="446017742" type="traffic_light" x="902.94" y="1190.36" incLanes="42976406#0_0 42976406#0_1 42976406#0_2 37973568#5_0" intLanes=":446017742_0_0 :446017742_1_0 :446017742_2_0 :446017742_3_0 :446017742_4_0 :446017742_5_0" shape="900.50,1195.74 908.84,1190.59 909.35,1188.58 907.78,1185.79 905.75,1185.22 897.10,1189.83 896.59,1192.07 898.15,1194.87">
+ <request index="0" response="000000" foes="110000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="000000" foes="110000" cont="0"/>
+ <request index="3" response="000000" foes="100000" cont="0"/>
+ <request index="4" response="000111" foes="000111" cont="0"/>
+ <request index="5" response="001111" foes="001111" cont="0"/>
+ </junction>
+ <junction id="446017743" type="traffic_light" x="916.42" y="1182.76" incLanes="154500693#2_0 154500693#2_1 154500693#2_2 37973568#6_0" intLanes=":446017743_0_0 :446017743_1_0 :446017743_2_0 :446017743_3_0 :446017743_4_0 :446017743_7_0 :446017743_6_0" shape="913.44,1187.99 922.33,1183.88 922.83,1180.99 921.26,1178.20 919.26,1177.60 910.56,1182.11 909.93,1184.58 911.50,1187.37">
+ <request index="0" response="0000000" foes="0010000" cont="0"/>
+ <request index="1" response="0000000" foes="1110000" cont="0"/>
+ <request index="2" response="0000000" foes="1110000" cont="0"/>
+ <request index="3" response="0000000" foes="1110000" cont="0"/>
+ <request index="4" response="0001111" foes="0001111" cont="0"/>
+ <request index="5" response="0001110" foes="0001110" cont="1"/>
+ <request index="6" response="0001110" foes="0001110" cont="0"/>
+ </junction>
+ <junction id="446017744" type="traffic_light" x="769.19" y="1302.90" incLanes="37973569#5_0 -130443630#5_0 130443630#4_0" intLanes=":446017744_0_0 :446017744_1_0 :446017744_9_0 :446017744_3_0 :446017744_10_0 :446017744_11_0 :446017744_6_0 :446017744_7_0 :446017744_12_0" shape="775.90,1300.95 774.33,1298.16 773.23,1297.41 766.79,1296.53 762.39,1305.03 764.01,1307.79 765.08,1308.52 771.51,1309.46">
+ <request index="0" response="000001000" foes="100001000" cont="0"/>
+ <request index="1" response="011011000" foes="011011000" cont="0"/>
+ <request index="2" response="010011000" foes="010111000" cont="1"/>
+ <request index="3" response="000000000" foes="100000111" cont="0"/>
+ <request index="4" response="011000000" foes="011000110" cont="1"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000000" foes="000010010" cont="0"/>
+ <request index="7" response="000000000" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="446017746" type="traffic_light" x="919.59" y="1217.98" incLanes="133960539#2_0 133960539#2_1 37973569#1_0" intLanes=":446017746_0_0 :446017746_1_0 :446017746_2_0 :446017746_3_0 :446017746_4_0" shape="918.14,1222.35 923.96,1219.45 924.51,1217.05 922.95,1214.26 920.89,1213.67 915.23,1216.87 914.60,1218.95 916.16,1221.74">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="446017747" type="traffic_light" x="930.01" y="1212.14" incLanes="37973569#0_0 42976405#1_0 42976405#1_1" intLanes=":446017747_0_0 :446017747_1_0 :446017747_2_0 :446017747_3_0 :446017747_4_0" shape="928.60,1216.48 934.37,1213.49 935.05,1211.14 933.49,1208.35 931.55,1207.72 925.65,1210.46 925.04,1213.09 926.60,1215.88">
+ <request index="0" response="01100" foes="01100" cont="0"/>
+ <request index="1" response="11100" foes="11100" cont="0"/>
+ <request index="2" response="00000" foes="00011" cont="0"/>
+ <request index="3" response="00000" foes="00011" cont="0"/>
+ <request index="4" response="00000" foes="00010" cont="0"/>
+ </junction>
+ <junction id="446766148" type="priority" x="58.25" y="2228.62" incLanes="-38027102#0_0" intLanes=":446766148_0_0" shape="58.23,2228.58 56.63,2225.80 59.87,2231.44 58.28,2228.66">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="446766149" type="priority" x="675.84" y="1872.51" incLanes="81394192#2_0 -59159262#0_0 38027102#2_0" intLanes=":446766149_0_0 :446766149_1_0 :446766149_2_0 :446766149_3_0 :446766149_9_0 :446766149_10_0 :446766149_6_0 :446766149_7_0 :446766149_11_0" shape="675.07,1878.31 678.24,1877.85 679.43,1875.72 679.36,1869.22 676.94,1867.75 673.75,1868.10 670.31,1871.95 673.56,1877.58">
+ <request index="0" response="000001000" foes="100001000" cont="0"/>
+ <request index="1" response="011011000" foes="011011000" cont="0"/>
+ <request index="2" response="010011000" foes="010111000" cont="0"/>
+ <request index="3" response="000000000" foes="100000111" cont="0"/>
+ <request index="4" response="011000000" foes="011000110" cont="1"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000000" foes="000010010" cont="0"/>
+ <request index="7" response="000000000" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="446770956" type="priority" x="0.00" y="2037.67" incLanes="-38027665#0_0" intLanes=":446770956_0_0" shape="-0.02,2037.62 -1.55,2034.81 1.55,2040.52 0.02,2037.71">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="446770959" type="priority" x="697.15" y="1684.91" incLanes="38027665#3_0 81394192#5_0" intLanes=":446770959_0_0 :446770959_4_0 :446770959_2_0 :446770959_3_0" shape="699.42,1680.43 696.25,1679.97 694.55,1681.24 693.61,1687.67 694.89,1689.38 698.06,1689.83">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="450564002" type="priority" x="788.17" y="2469.73" incLanes="37973565#9_0 38230510#0_0" intLanes=":450564002_0_0 :450564002_1_0 :450564002_2_0 :450564002_3_0" shape="787.12,2474.08 790.30,2473.67 792.25,2469.42 790.78,2466.58 789.24,2465.78 786.07,2466.21 783.84,2470.87 785.71,2473.47">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="450564003" type="traffic_light" x="1160.22" y="2277.01" incLanes="23182517#0_0 -23182517#1_0 38230510#1_0" intLanes=":450564003_0_0 :450564003_9_0 :450564003_10_0 :450564003_3_0 :450564003_4_0 :450564003_11_0 :450564003_6_0 :450564003_7_0 :450564003_12_0" shape="1158.79,2281.27 1164.54,2278.23 1165.18,2276.19 1163.68,2273.36 1161.66,2272.73 1155.89,2275.72 1155.26,2277.78 1156.74,2280.62">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="1"/>
+ </junction>
+ <junction id="450564004" type="priority" x="1381.92" y="2158.63" incLanes="190048063_0 141190464_0" intLanes=":450564004_0_0 :450564004_1_0" shape="1382.01,2162.16 1384.83,2160.63 1385.45,2158.64 1384.01,2155.78 1378.44,2158.68 1379.95,2161.50">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="450564005" type="priority" x="1398.77" y="2150.14" incLanes="190048065_0 139118806_0" intLanes=":450564005_0_0 :450564005_4_0 :450564005_2_0 :450564005_3_0" shape="1398.81,2153.59 1401.63,2152.08 1400.20,2145.84 1394.43,2148.85 1393.79,2150.86 1395.23,2153.71">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="450564006" type="priority" x="1403.52" y="2158.97" incLanes="129780019#0_0 -23182484#0_0" intLanes=":450564006_0_0 :450564006_1_0 :450564006_4_0 :450564006_5_0" shape="1404.48,2163.82 1407.25,2162.22 1402.67,2154.01 1399.85,2155.52 1399.23,2157.54 1402.22,2163.31">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="1"/>
+ <request index="3" response="0010" foes="0010" cont="1"/>
+ </junction>
+ <junction id="450564007" type="unregulated" x="821.48" y="2760.41" incLanes="37973565#11_0" intLanes="" shape="823.06,2760.15 819.91,2760.66">
+ </junction>
+ <junction id="450623549" type="unregulated" x="592.39" y="2365.36" incLanes="" intLanes="" shape="597.01,2370.01 587.76,2360.72">
+ </junction>
+ <junction id="452389251" type="unregulated" x="1599.92" y="1832.34" incLanes="101272435#7_0" intLanes="" shape="1601.34,1831.60 1598.51,1833.09">
+ </junction>
+ <junction id="452425486" type="priority" x="1349.06" y="1945.73" incLanes="38319546#3_0 -38319546#4_0 81523332#0_0" intLanes=":452425486_0_0 :452425486_1_0 :452425486_2_0 :452425486_3_0 :452425486_4_0 :452425486_5_0 :452425486_6_0 :452425486_7_0 :452425486_8_0" shape="1347.71,1950.19 1353.48,1947.19 1354.10,1944.85 1352.59,1942.03 1350.65,1941.37 1344.73,1944.04 1344.07,1946.92 1345.74,1949.65">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="452425487" type="priority" x="1315.95" y="1872.32" incLanes="38319546#5_0 81096844#2_0 -38319546#6_0 -81096844#3_0" intLanes=":452425487_0_0 :452425487_1_0 :452425487_2_0 :452425487_3_0 :452425487_4_0 :452425487_5_0 :452425487_16_0 :452425487_17_0 :452425487_8_0 :452425487_9_0 :452425487_10_0 :452425487_11_0 :452425487_12_0 :452425487_13_0 :452425487_18_0 :452425487_19_0" shape="1315.25,1878.08 1321.04,1875.13 1321.72,1872.92 1318.65,1867.19 1316.64,1866.56 1310.86,1869 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="452425488" type="priority" x="1279.04" y="1800.72" incLanes="38319546#6_0 -23066446#1_0 -38319546#7_0 23066446#0_0" intLanes=":452425488_0_0 :452425488_1_0 :452425488_2_0 :452425488_3_0 :452425488_4_0 :452425488_5_0 :452425488_16_0 :452425488_17_0 :452425488_8_0 :452425488_9_0 :452425488_10_0 :452425488_11_0 :452425488_12_0 :452425488_13_0 :452425488_18_0 :452425488_19_0" shape="1278.33,1806.44 1284.11,1803.46 1284.77,1801.37 1281.72,1795.62 1279.68,1794.98 1273.93,1798 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="452425489" type="priority" x="1246.99" y="1737.78" incLanes="38319546#8_0 -38319547_0" intLanes=":452425489_0_0 :452425489_4_0 :452425489_2_0 :452425489_5_0" shape="1244.53,1740.23 1250.46,1737.57 1244.24,1735.66">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="452425490" type="right_before_left" x="1256.78" y="1705.85" incLanes="-38319548#0_0 -38319549#0_0 38319547_0" intLanes=":452425490_0_0 :452425490_1_0 :452425490_2_0 :452425490_3_0 :452425490_4_0 :452425490_5_0 :452425490_6_0 :452425490_7_0 :452425490_8_0" shape="1262.54,1706.43 1259.45,1700.71 1257.43,1700.10 1251.68,1703.12 1253.61,1705.10 1259.83,1707.00">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="452425491" type="priority" x="1291.94" y="1686.84" incLanes="-38319548#1_0 23066443#3_0 38319548#0_0" intLanes=":452425491_0_0 :452425491_1_0 :452425491_2_0 :452425491_3_0 :452425491_4_0 :452425491_5_0 :452425491_6_0 :452425491_7_0 :452425491_8_0" shape="1292.72,1691.82 1295.56,1690.35 1296.28,1688.17 1293.17,1682.47 1291.16,1681.85 1288.32,1683.33 1287.62,1685.48 1290.71,1691.20">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="452425493" type="priority" x="1363.91" y="1647.60" incLanes="58770725#3_0 -38319548#2_0 38319548#1_0" intLanes=":452425493_0_0 :452425493_1_0 :452425493_2_0 :452425493_3_0 :452425493_4_0 :452425493_5_0 :452425493_6_0 :452425493_7_0 :452425493_8_0" shape="1364.69,1652.59 1367.53,1651.12 1368.16,1649.06 1365.17,1643.29 1363.15,1642.65 1360.31,1644.12 1359.57,1646.27 1362.68,1651.97">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="000000000" foes="011011000" cont="0"/>
+ <request index="2" response="000000000" foes="010111000" cont="0"/>
+ <request index="3" response="000000111" foes="100000111" cont="0"/>
+ <request index="4" response="011000110" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="0"/>
+ <request index="6" response="000000010" foes="000010010" cont="0"/>
+ <request index="7" response="000000110" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="452425497" type="right_before_left" x="1469.13" y="1593.14" incLanes="-81096822#0_0 -38319548#7_0 38319548#6_0" intLanes=":452425497_0_0 :452425497_1_0 :452425497_2_0 :452425497_3_0 :452425497_4_0 :452425497_5_0 :452425497_6_0 :452425497_7_0 :452425497_8_0" shape="1468.45,1598.85 1474.21,1595.84 1474.36,1594.07 1471.34,1588.31 1463.43,1592.43 1466.42,1598.20">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="452425499" type="priority" x="1206.87" y="1665.88" incLanes="38319549#2_0 -38319550#0_0" intLanes=":452425499_0_0 :452425499_4_0 :452425499_2_0 :452425499_5_0" shape="1207.63,1669.39 1209.11,1663.06 1203.27,1665.91">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="452425500" type="priority" x="1176.22" y="1603.13" incLanes="38319550#0_0 58770723#1_0 -38319550#1_0" intLanes=":452425500_0_0 :452425500_1_0 :452425500_2_0 :452425500_3_0 :452425500_4_0 :452425500_5_0 :452425500_6_0 :452425500_7_0 :452425500_8_0" shape="1174.73,1607.48 1180.57,1604.63 1181.16,1602.37 1179.69,1599.53 1177.65,1598.90 1171.91,1601.95 1171.22,1604.04 1172.76,1606.85">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="452425501" type="priority" x="1170.08" y="1591.58" incLanes="38319550#1_0 -38319550#2_0 37771902#0_0" intLanes=":452425501_0_0 :452425501_1_0 :452425501_2_0 :452425501_3_0 :452425501_4_0 :452425501_5_0 :452425501_6_0 :452425501_7_0 :452425501_8_0" shape="1168.70,1595.90 1174.44,1592.85 1175.07,1590.85 1173.62,1587.99 1171.54,1587.30 1165.76,1590.27 1165.10,1592.27 1166.53,1595.14">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="452425502" type="traffic_light" x="953.92" y="1198.72" incLanes="38319550#3_0 101272429#1_0 -38319550#4_0" intLanes=":452425502_0_0 :452425502_1_0 :452425502_9_0 :452425502_3_0 :452425502_4_0 :452425502_10_0 :452425502_6_0 :452425502_11_0 :452425502_12_0" shape="952.51,1203.06 958.29,1200.07 958.90,1197.73 957.31,1194.95 955.32,1194.36 949.55,1197.36 948.95,1199.67 950.52,1202.46">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="1"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="452446338" type="unregulated" x="1588.22" y="1856.27" incLanes="" intLanes="" shape="1587.48,1854.85 1588.96,1857.69">
+ </junction>
+ <junction id="452446339" type="priority" x="1304.14" y="2005.12" incLanes="139118804#0_0" intLanes=":452446339_0_0" shape="1304.87,2006.55 1303.40,2003.71 1304.89,2006.54">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="452446340" type="priority" x="1302.36" y="1956.94" incLanes="172498380#0_0" intLanes=":452446340_0_0 :452446340_1_0 :452446340_2_0" shape="1307.33,1956.06 1305.81,1953.25 1303.81,1952.63 1298.02,1955.58 1297.89,1958.56 1299.93,1961.02">
+ <request index="0" response="000" foes="000" cont="0"/>
+ <request index="1" response="000" foes="000" cont="0"/>
+ <request index="2" response="000" foes="000" cont="0"/>
+ </junction>
+ <junction id="452446345" type="priority" x="1314.14" y="1950.54" incLanes="133960538#2_0 133960538#2_1 172498380#1_0" intLanes=":452446345_0_0 :452446345_1_0" shape="1318.71,1951.39 1318.18,1948.24 1315.33,1946.14 1309.72,1949.42 1309.15,1951.43 1310.68,1954.24">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="477486714" type="priority" x="666.99" y="2225.88" incLanes="81394188#4_0 107066313#5_0 134572336#0_0 134572336#0_1" intLanes=":477486714_0_0 :477486714_9_0 :477486714_2_0 :477486714_3_0 :477486714_4_0 :477486714_10_0 :477486714_6_0 :477486714_7_0 :477486714_8_0" shape="671.15,2234.64 673.77,2232.81 674.18,2232.38 675.91,2229.69 675.77,2228.54 675.32,2222.06 666.96,2219.92 661.53,2223.49 661.05,2225.48 664.22,2231.15">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="000010000" foes="100010000" cont="0"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010111" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="477486717" type="priority" x="504.35" y="1971.39" incLanes="-107066313#3_0 -38027102#1_0 107066313#2_0 38027102#0_0" intLanes=":477486717_0_0 :477486717_1_0 :477486717_16_0 :477486717_17_0 :477486717_4_0 :477486717_5_0 :477486717_6_0 :477486717_7_0 :477486717_8_0 :477486717_9_0 :477486717_18_0 :477486717_19_0 :477486717_12_0 :477486717_13_0 :477486717_14_0 :477486717_15_0" shape="504.27,1977.28 509.74,1973.76 510.23,1971.75 506.98,1966.12 504.47,1965.52 498.99,1969.00 4 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="477486719" type="priority" x="405.54" y="1816.27" incLanes="-107066313#1_0 -38027665#1_0 107066313#0_0 38027665#0_0" intLanes=":477486719_0_0 :477486719_1_0 :477486719_16_0 :477486719_17_0 :477486719_4_0 :477486719_5_0 :477486719_6_0 :477486719_7_0 :477486719_8_0 :477486719_9_0 :477486719_18_0 :477486719_19_0 :477486719_12_0 :477486719_13_0 :477486719_14_0 :477486719_15_0" shape="405.45,1822.17 410.93,1818.67 411.43,1816.67 408.23,1811.01 405.46,1810.25 400.04,1813.83 3 [...]
+ <request index="0" response="0000000000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0000001100000000" foes="0110001111100000" cont="1"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="1"/>
+ <request index="4" response="0000001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000011" foes="1110000001100011" cont="1"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000010" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000110" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000110110" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="0"/>
+ </junction>
+ <junction id="484282948" type="priority" x="576.24" y="946.72" incLanes="-40196944#0_0" intLanes=":484282948_0_0" shape="576.23,946.67 575.69,943.51 576.79,949.92 576.25,946.77">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="484282953" type="unregulated" x="619.99" y="844.83" incLanes="" intLanes="" shape="618.57,845.57 621.40,844.08">
+ </junction>
+ <junction id="484282955" type="priority" x="665.40" y="931.46" incLanes="-40196944#1_0 40196943_0 40196944#0_0" intLanes=":484282955_0_0 :484282955_6_0 :484282955_2_0 :484282955_3_0 :484282955_4_0 :484282955_7_0" shape="668.17,934.23 666.94,927.85 664.30,925.90 661.46,927.39 660.68,928.97 661.78,935.37">
+ <request index="0" response="000000" foes="101000" cont="0"/>
+ <request index="1" response="010100" foes="010100" cont="1"/>
+ <request index="2" response="010000" foes="010010" cont="0"/>
+ <request index="3" response="010001" foes="110001" cont="0"/>
+ <request index="4" response="000000" foes="001110" cont="0"/>
+ <request index="5" response="001001" foes="001001" cont="1"/>
+ </junction>
+ <junction id="484282961" type="priority" x="513.94" y="1033.03" incLanes="37638470#2_0" intLanes=":484282961_0_0" shape="513.93,1032.98 513.36,1029.83 514.52,1036.22 513.95,1033.08">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="503954409" type="priority" x="803.00" y="2587.20" incLanes="37973565#10_0" intLanes=":503954409_0_0 :503954409_1_0" shape="801.74,2589.99 804.92,2589.59 807.12,2586.85 805.63,2584.02 804.11,2583.23 800.94,2583.63">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="512548961" type="unregulated" x="1739.75" y="2821.51" incLanes="160587557_0" intLanes="" shape="1741.17,2820.78 1738.32,2822.23">
+ </junction>
+ <junction id="538265860" type="traffic_light" x="724.70" y="778.58" incLanes="42976407#0_0" intLanes=":538265860_0_0" shape="723.45,779.65 726.29,778.17 725.35,777.07 723.45,779.65">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="538265864" type="priority" x="741.65" y="916.79" incLanes="42976408#0_0 40196944#1_0" intLanes=":538265864_0_0 :538265864_1_0 :538265864_2_0 :538265864_4_0" shape="742.27,921.44 745.11,919.96 740.57,911.28 737.74,912.77 736.96,914.38 738.19,920.76">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="538265865" type="unregulated" x="717.31" y="797.74" incLanes="" intLanes="" shape="712.95,799.98 721.67,795.50">
+ </junction>
+ <junction id="538265866" type="traffic_light" x="687.53" y="813.50" incLanes="42976408#1_0" intLanes=":538265866_0_0" shape="686.22,814.46 689.06,812.97 685.91,813.55">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="538265870" type="priority" x="903.83" y="1226.83" incLanes="81672207#2_0 37973569#3_0" intLanes=":538265870_0_0 :538265870_1_0" shape="903.64,1230.49 906.59,1229.24 907.17,1226.79 905.61,1224.00 900.18,1227.06 901.75,1229.84">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="538810716" type="unregulated" x="683.02" y="512.58" incLanes="24573930#4_0" intLanes="" shape="681.61,513.32 684.44,511.83">
+ </junction>
+ <junction id="538810722" type="traffic_light" x="934.86" y="658.06" incLanes="81096816#4_0" intLanes=":538810722_0_0" shape="933.44,658.80 936.28,657.32 933.45,658.82">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="538810724" type="priority" x="903.70" y="936.28" incLanes="24573930#2_0 8272412#1_0" intLanes=":538810724_0_0 :538810724_1_0 :538810724_2_0 :538810724_3_0" shape="903.73,939.81 906.57,938.33 907.24,936.10 905.65,933.32 903.66,932.73 900.82,934.21 900.17,936.41 901.73,939.20">
+ <request index="0" response="1100" foes="1100" cont="0"/>
+ <request index="1" response="1000" foes="1000" cont="0"/>
+ <request index="2" response="0000" foes="0001" cont="0"/>
+ <request index="3" response="0000" foes="0011" cont="0"/>
+ </junction>
+ <junction id="538810726" type="priority" x="970.97" y="897.98" incLanes="24573897#1_0 8272412#2_0" intLanes=":538810726_0_0 :538810726_1_0 :538810726_2_0 :538810726_3_0" shape="971.01,901.52 973.85,900.04 974.50,897.81 972.92,895.03 970.92,894.44 968.09,895.92 967.43,898.15 969.01,900.94">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="538902966" type="unregulated" x="1487.88" y="2104.32" incLanes="" intLanes="" shape="1489.30,2103.59 1486.45,2105.05">
+ </junction>
+ <junction id="543360161" type="priority" x="1596.40" y="1836.52" incLanes="-81096822#2_0 75656628#0_0 81096822#1_0" intLanes=":543360161_0_0 :543360161_1_0 :543360161_2_0 :543360161_3_0 :543360161_4_0 :543360161_5_0 :543360161_6_0 :543360161_7_0 :543360161_8_0" shape="1594.97,1840.81 1600.74,1837.81 1601.35,1835.74 1599.87,1832.90 1597.84,1832.27 1592.08,1835.28 1591.44,1837.38 1592.96,1840.20">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="552842254" type="priority" x="452.00" y="1466.18" incLanes="43684741#5_0 37973572#4_0 37973572#4_1 -37973572#5_0 -37973572#5_1" intLanes=":552842254_0_0 :552842254_1_0 :552842254_2_0 :552842254_3_0 :552842254_4_0 :552842254_5_0 :552842254_11_0 :552842254_7_0 :552842254_8_0 :552842254_9_0 :552842254_12_0" shape="457.13,1473.92 460.95,1468.65 462.20,1467.87 455.66,1456.51 446.95,1461.51 453.41,1472.91">
+ <request index="0" response="00000110000" foes="10000110000" cont="0"/>
+ <request index="1" response="01110110000" foes="01111110000" cont="0"/>
+ <request index="2" response="01000001000" foes="01000001000" cont="0"/>
+ <request index="3" response="00000000000" foes="01000000100" cont="0"/>
+ <request index="4" response="00000000000" foes="11000000011" cont="0"/>
+ <request index="5" response="00000000000" foes="11000000011" cont="0"/>
+ <request index="6" response="00110000010" foes="00110000010" cont="1"/>
+ <request index="7" response="00000000000" foes="00001000010" cont="0"/>
+ <request index="8" response="00000000000" foes="00001000010" cont="0"/>
+ <request index="9" response="00000111000" foes="00000111110" cont="0"/>
+ <request index="10" response="00000110001" foes="00000110001" cont="1"/>
+ </junction>
+ <junction id="552842255" type="priority" x="465.58" y="1476.04" incLanes="43684741#3_0 37973569#8_0 -43684741#4_0" intLanes=":552842255_0_0 :552842255_1_0 :552842255_9_0 :552842255_3_0 :552842255_4_0 :552842255_5_0 :552842255_6_0 :552842255_10_0 :552842255_11_0" shape="467.47,1481.45 471.30,1476.20 471.40,1474.57 469.81,1471.79 463.68,1470.64 459.86,1475.90 459.77,1477.53 461.37,1480.31">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="552842256" type="priority" x="716.75" y="1658.63" incLanes="59159259#1_0 105283535#1_0 -130443630#0_0 -43684741#0_0 107028581#3_0 37973566_0" intLanes=":552842256_0_0 :552842256_1_0 :552842256_2_0 :552842256_3_0 :552842256_4_0 :552842256_5_0 :552842256_6_0 :552842256_7_0 :552842256_8_0 :552842256_36_0 :552842256_10_0 :552842256_37_0 :552842256_12_0 :552842256_13_0 :552842256_14_0 :552842256_15_0 :552842256_16_0 :552842256_17_0 :552842256_18_0 :552842256_19_0 :552842256_ [...]
+ <request index="0" response="000000010000000000000000000001000000" foes="100000010000001000000100000001000000" cont="0"/>
+ <request index="1" response="011111010000000000000000000011000000" foes="011111110000011000001100000011000000" cont="0"/>
+ <request index="2" response="011110001111000000000000000111000000" foes="011110001111111000011100000111000000" cont="0"/>
+ <request index="3" response="011100001110000111000000001111000000" foes="011100001110000111111100001111000000" cont="0"/>
+ <request index="4" response="011000001100000110000011011111000000" foes="011000001100000110000011011111000000" cont="0"/>
+ <request index="5" response="010000001000000100000010011111000000" foes="010000001000000100000010111111000000" cont="0"/>
+ <request index="6" response="000000000000000000000000000000000000" foes="100000010000001000000100000000111111" cont="0"/>
+ <request index="7" response="000000000000000000000000000000000000" foes="011111110000011000001100000000111110" cont="0"/>
+ <request index="8" response="000000001111000000000000000000000000" foes="011110001111111000011100000000111100" cont="0"/>
+ <request index="9" response="000000001110000000000000000000000000" foes="011100001110000111111100000000111000" cont="1"/>
+ <request index="10" response="000000001100000000000000000000000000" foes="011000001100000110000011000000110000" cont="0"/>
+ <request index="11" response="010000001000000100000010000000100000" foes="010000001000000100000010000000100000" cont="1"/>
+ <request index="12" response="000000000100000000000000010000000000" foes="001000000100000010000000010000010000" cont="0"/>
+ <request index="13" response="000000001100000000000000010000000000" foes="011000001100000110000000110000110000" cont="0"/>
+ <request index="14" response="000000011100000000000000001111001111" foes="111000011100001110000000001111001111" cont="0"/>
+ <request index="15" response="000111011100000000000000001110001110" foes="000111111100011110000000001110001110" cont="0"/>
+ <request index="16" response="000110000011000000000000001100001100" foes="000110000011111110000000001100001100" cont="0"/>
+ <request index="17" response="000100000010000001000000001000001000" foes="000100000010000001000000001000001000" cont="0"/>
+ <request index="18" response="000000000010000000000000001000000000" foes="000100000010000000100000001000001000" cont="0"/>
+ <request index="19" response="000000000110000000011111011000000000" foes="001100000110000000011111011000011000" cont="0"/>
+ <request index="20" response="000000001110000000011110011000000000" foes="011100001110000000011110111000111000" cont="0"/>
+ <request index="21" response="000000011110000000011100000111000111" foes="111100011110000000011100000111000111" cont="0"/>
+ <request index="22" response="000011011110000000011000000110000110" foes="000011111110000000011000000110000110" cont="0"/>
+ <request index="23" response="000010000001000000010000000100000100" foes="000010000001000000010000000100000100" cont="0"/>
+ <request index="24" response="000000000000000000000000000000000000" foes="000010000000100000010000000100000100" cont="0"/>
+ <request index="25" response="000000000000000000000000000000000000" foes="000110000000011111110000001100001100" cont="0"/>
+ <request index="26" response="000000000000000000000000000000000000" foes="001110000000011110001111011100011100" cont="0"/>
+ <request index="27" response="000000000000000000000000000000000000" foes="011110000000011100001110111100111100" cont="0"/>
+ <request index="28" response="000000000000000000000000000011000000" foes="111110000000011000001100000011000011" cont="1"/>
+ <request index="29" response="000001000000010000001000000010000010" foes="000001000000010000001000000010000010" cont="1"/>
+ <request index="30" response="000000000000000000000000000010000000" foes="000000100000010000001000000010000010" cont="0"/>
+ <request index="31" response="000000011111000000000000000110000000" foes="000000011111110000011000000110000110" cont="0"/>
+ <request index="32" response="000000011110001111000000001110000000" foes="000000011110001111111000001110001110" cont="0"/>
+ <request index="33" response="000000011100001110000111011110000000" foes="000000011100001110000111011110011110" cont="0"/>
+ <request index="34" response="000000011000001100000110011110000000" foes="000000011000001100000110111110111110" cont="0"/>
+ <request index="35" response="000000010000001000000100000001000001" foes="000000010000001000000100000001000001" cont="0"/>
+ </junction>
+ <junction id="552842257" type="priority" x="701.23" y="1656.72" incLanes="-107028581#3_0 107028581#2_0 81394192#6_0" intLanes=":552842257_0_0 :552842257_9_0 :552842257_10_0 :552842257_3_0 :552842257_4_0 :552842257_11_0 :552842257_6_0 :552842257_7_0 :552842257_8_0" shape="705.43,1660.52 706.23,1654.06 705.49,1652.59 702.73,1650.97 698.44,1653.13 697.68,1659.58 698.96,1661.24 702.12,1661.70">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="560472377" type="priority" x="830.66" y="1979.49" incLanes="-44104491#1_0 44104491#0_0 44104490_0" intLanes=":560472377_0_0 :560472377_6_0 :560472377_2_0 :560472377_7_0 :560472377_4_0 :560472377_5_0" shape="829.16,1983.80 834.99,1980.92 832.05,1975.21 826.32,1978.29 825.67,1980.33 827.18,1983.16">
+ <request index="0" response="000000" foes="111000" cont="0"/>
+ <request index="1" response="100100" foes="100100" cont="1"/>
+ <request index="2" response="000000" foes="100010" cont="0"/>
+ <request index="3" response="010001" foes="010001" cont="1"/>
+ <request index="4" response="000001" foes="001001" cont="0"/>
+ <request index="5" response="000101" foes="000111" cont="0"/>
+ </junction>
+ <junction id="560472378" type="priority" x="838.77" y="1995.89" incLanes="37942668#0_0 44104491#1_0" intLanes=":560472378_0_0 :560472378_1_0 :560472378_4_0 :560472378_5_0" shape="843.76,1995.01 842.24,1992.19 840.25,1991.56 834.43,1994.44 833.86,1996.68 835.37,1999.51">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="1"/>
+ <request index="3" response="0010" foes="0010" cont="1"/>
+ </junction>
+ <junction id="560472379" type="priority" x="728.36" y="2034.02" incLanes="37973565#1_0" intLanes=":560472379_0_0 :560472379_1_0" shape="727.06,2036.78 730.24,2036.41 732.46,2033.65 730.95,2030.83 729.43,2030.04 726.26,2030.48">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="561204538" type="priority" x="705.11" y="1650.07" incLanes="43684741#0_0 -43684741#1_0 81394192#7_0" intLanes=":561204538_0_0 :561204538_9_0 :561204538_10_0 :561204538_3_0 :561204538_4_0 :561204538_11_0 :561204538_6_0 :561204538_7_0 :561204538_8_0" shape="705.97,1654.74 709.82,1649.50 707.50,1644.29 704.33,1643.87 702.91,1644.47 699.11,1649.74 701.24,1653.53 704.00,1655.14">
+ <request index="0" response="000000000" foes="111100000" cont="0"/>
+ <request index="1" response="000011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="000000000" foes="010000010" cont="0"/>
+ <request index="4" response="000000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000001" foes="000100001" cont="0"/>
+ <request index="7" response="000011011" foes="000011011" cont="0"/>
+ <request index="8" response="000010011" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="566579334" type="unregulated" x="857.57" y="419.88" incLanes="" intLanes="" shape="856.15,420.62 858.99,419.15">
+ </junction>
+ <junction id="566579336" type="traffic_light" x="970.87" y="637.71" incLanes="37640550#0_0" intLanes=":566579336_0_0" shape="969.47,638.47 972.27,636.92 969.46,638.46">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="566579338" type="traffic_light" x="1076.57" y="837.91" incLanes="37640550#1_0" intLanes=":566579338_0_0" shape="1075.15,838.64 1077.99,837.17 1075.15,838.64">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="566579339" type="priority" x="1110.73" y="904.06" incLanes="23566902_0 37640550#2_0" intLanes=":566579339_0_0 :566579339_1_0" shape="1110.73,907.51 1113.57,906.02 1114.26,903.91 1112.70,901.12 1110.70,900.52 1107.86,901.99">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="566579340" type="priority" x="1560.92" y="1852.50" incLanes="-154409621_0" intLanes=":566579340_0_0 :566579340_1_0" shape="1560.10,1847.54 1557.28,1849.05 1556.65,1851.07 1559.67,1856.82">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="566670951" type="priority" x="1805.32" y="1410.87" incLanes="101272434_0" intLanes=":566670951_0_0" shape="1805.34,1410.91 1806.84,1413.74 1803.79,1407.99 1805.29,1410.82">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="650318340" type="priority" x="654.14" y="307.60" incLanes="38319550#14_0" intLanes=":650318340_0_0" shape="654.19,307.61 657.35,308.11 650.93,307.09 654.09,307.59">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="719463587" type="traffic_light" x="939.04" y="1170.02" incLanes="38319550#7_0 -38319550#8_0 37772596#0_0" intLanes=":719463587_0_0 :719463587_9_0 :719463587_10_0 :719463587_3_0 :719463587_4_0 :719463587_11_0 :719463587_6_0 :719463587_7_0 :719463587_12_0" shape="937.64,1174.37 943.41,1171.38 944.02,1169.05 942.45,1166.27 940.45,1165.67 934.68,1168.66 934.07,1170.98 935.64,1173.77">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="1"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="1"/>
+ </junction>
+ <junction id="719463795" type="priority" x="907.28" y="1108.73" incLanes="38319550#9_0 24573905#2_0 -38319550#10_0" intLanes=":719463795_0_0 :719463795_1_0 :719463795_2_0 :719463795_3_0 :719463795_4_0 :719463795_5_0 :719463795_6_0 :719463795_7_0 :719463795_8_0" shape="905.88,1113.09 911.65,1110.10 912.25,1107.74 910.67,1104.96 908.67,1104.37 902.90,1107.36 902.30,1109.73 903.88,1112.51">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="719464017" type="traffic_light" x="652.35" y="318.90" incLanes="-38319550#14_0 38319550#13_0" intLanes=":719464017_0_0 :719464017_4_0 :719464017_2_0 :719464017_5_0" shape="655.56,319.42 649.14,318.40 649.16,318.29 655.55,319.47">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="724002953" type="priority" x="728.03" y="2283.05" incLanes="81394188#1_0 37369047#0_0 37369047#0_1 37369047#0_2 37369047#0_3" intLanes=":724002953_0_0 :724002953_1_0 :724002953_2_0 :724002953_3_0 :724002953_4_0 :724002953_5_0" shape="727.74,2292.24 730.90,2291.78 731.85,2288.44 725.68,2276.88 728.91,2275.63 725.73,2275.94 720.01,2279.92 726.20,2291.46">
+ <request index="0" response="000000" foes="111000" cont="0"/>
+ <request index="1" response="000000" foes="000000" cont="0"/>
+ <request index="2" response="000000" foes="000000" cont="0"/>
+ <request index="3" response="000001" foes="000001" cont="0"/>
+ <request index="4" response="000001" foes="000001" cont="0"/>
+ <request index="5" response="000001" foes="000001" cont="0"/>
+ </junction>
+ <junction id="728444397" type="unregulated" x="276.97" y="1583.37" incLanes="37973569#9_0" intLanes="" shape="277.75,1584.77 276.20,1581.97">
+ </junction>
+ <junction id="728492341" type="priority" x="440.65" y="1871.28" incLanes="-107066313#2_0 -58779718#0_0 107066313#1_0" intLanes=":728492341_0_0 :728492341_9_0 :728492341_10_0 :728492341_3_0 :728492341_4_0 :728492341_5_0 :728492341_6_0 :728492341_7_0 :728492341_11_0" shape="440.53,1877.13 446.01,1873.63 446.49,1871.60 443.19,1866.00 440.90,1865.62 435.42,1869.12">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="1"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="010000000" foes="010000100" cont="0"/>
+ <request index="4" response="010000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000000000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="728492348" type="priority" x="537.67" y="1882.44" incLanes="-58779719#0_0" intLanes=":728492348_0_0" shape="537.64,1882.40 536.05,1879.62 539.29,1885.26 537.69,1882.48">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="728492353" type="priority" x="629.00" y="1648.26" incLanes="-107028581#1_0 107028581#0_0 -107166846#0_0" intLanes=":728492353_0_0 :728492353_1_0 :728492353_9_0 :728492353_3_0 :728492353_10_0 :728492353_11_0 :728492353_6_0 :728492353_7_0 :728492353_8_0" shape="633.33,1652.04 634.09,1645.58 624.72,1644.43 623.90,1650.88 625.21,1652.58 631.66,1653.35">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="000000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="1"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000010" foes="000100010" cont="0"/>
+ <request index="7" response="000011010" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="728492360" type="priority" x="613.04" y="1774.73" incLanes="-58779718#1_0 107166846#1_0 58779718#0_0 -107166846#2_0" intLanes=":728492360_0_0 :728492360_1_0 :728492360_2_0 :728492360_3_0 :728492360_4_0 :728492360_5_0 :728492360_16_0 :728492360_17_0 :728492360_8_0 :728492360_9_0 :728492360_10_0 :728492360_11_0 :728492360_12_0 :728492360_13_0 :728492360_18_0 :728492360_19_0" shape="617.59,1778.77 618.65,1772.36 616.86,1770.55 610.42,1769.71 605.14,1775.25 608.20,1780.99 6 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="728492361" type="priority" x="609.90" y="1840.82" incLanes="-58779719#1_0 107166846#2_0 58779719#0_0 -107166846#3_0" intLanes=":728492361_0_0 :728492361_1_0 :728492361_2_0 :728492361_3_0 :728492361_4_0 :728492361_5_0 :728492361_16_0 :728492361_17_0 :728492361_8_0 :728492361_9_0 :728492361_10_0 :728492361_11_0 :728492361_12_0 :728492361_13_0 :728492361_18_0 :728492361_19_0" shape="614.47,1844.74 615.37,1838.30 613.36,1836.52 606.87,1836.21 601.84,1841.72 605.08,1847.35 6 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="728492364" type="priority" x="682.53" y="1786.16" incLanes="58779718#1_0 81394192#4_0" intLanes=":728492364_0_0 :728492364_4_0 :728492364_2_0 :728492364_3_0" shape="684.80,1781.65 681.63,1781.19 679.94,1782.44 678.88,1788.85 680.28,1790.60 683.44,1791.06">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="728492366" type="priority" x="606.61" y="1912.43" incLanes="-107166846#4_0 -38027102#2_0 107166846#3_0 38027102#1_0" intLanes=":728492366_0_0 :728492366_1_0 :728492366_2_0 :728492366_3_0 :728492366_4_0 :728492366_5_0 :728492366_16_0 :728492366_17_0 :728492366_8_0 :728492366_9_0 :728492366_10_0 :728492366_11_0 :728492366_12_0 :728492366_13_0 :728492366_18_0 :728492366_19_0" shape="604.79,1918.89 611.12,1917.41 614.68,1911.53 611.43,1905.90 610.20,1905.15 603.71,1904.85 5 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="728492371" type="priority" x="673.36" y="1849.68" incLanes="81394192#3_0 58779719#1_0" intLanes=":728492371_0_0 :728492371_1_0 :728492371_2_0 :728492371_4_0" shape="672.25,1854.27 675.43,1853.93 675.62,1845.21 672.46,1844.76 670.76,1846.03 669.86,1852.47">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="728492372" type="priority" x="623.00" y="1698.07" incLanes="-38027665#2_0 107166846#0_0 38027665#1_0 -107166846#1_0" intLanes=":728492372_0_0 :728492372_1_0 :728492372_2_0 :728492372_3_0 :728492372_4_0 :728492372_5_0 :728492372_16_0 :728492372_17_0 :728492372_8_0 :728492372_9_0 :728492372_10_0 :728492372_11_0 :728492372_12_0 :728492372_13_0 :728492372_18_0 :728492372_19_0" shape="631.52,1696.97 628.30,1691.32 627.18,1690.57 620.73,1689.79 614.63,1698.78 617.65,1704.54 6 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="733663070" type="priority" x="717.17" y="1768.65" incLanes="59159266#1_0 37942667#4_0" intLanes=":733663070_0_0 :733663070_1_0" shape="722.01,1767.89 720.52,1765.07 719.40,1764.28 716.24,1763.83 715.24,1770.68 718.40,1771.17">
+ <request index="0" response="00" foes="10" cont="0"/>
+ <request index="1" response="01" foes="01" cont="0"/>
+ </junction>
+ <junction id="733663071" type="right_before_left" x="1456.20" y="1226.57" incLanes="83051442#2_0 -83051442#0_0 -83051426_0" intLanes=":733663071_0_0 :733663071_1_0 :733663071_2_0 :733663071_3_0 :733663071_4_0 :733663071_5_0 :733663071_6_0 :733663071_7_0 :733663071_8_0" shape="1458.20,1230.27 1459.45,1223.90 1453.76,1220.07 1449.46,1224.94 1449.26,1226.65 1452.37,1232.36">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="733663076" type="priority" x="848.02" y="1673.89" incLanes="69931595#3_0 -108329425#0_0 105251811#1_0 -105283535#0_0" intLanes=":733663076_0_0 :733663076_1_0 :733663076_2_0 :733663076_16_0 :733663076_4_0 :733663076_5_0 :733663076_6_0 :733663076_7_0 :733663076_8_0 :733663076_9_0 :733663076_10_0 :733663076_11_0 :733663076_12_0 :733663076_13_0 :733663076_17_0 :733663076_18_0" shape="846.09,1677.23 851.87,1674.25 847.73,1666.26 841.96,1669.24 829.51,1666.57 828.23,1674.87 8 [...]
+ <request index="0" response="0000000000000000" foes="0100010000100000" cont="0"/>
+ <request index="1" response="0000000000000000" foes="1100110001100000" cont="0"/>
+ <request index="2" response="0011000000000000" foes="0011001111100000" cont="0"/>
+ <request index="3" response="0010001000010000" foes="0010001000010000" cont="1"/>
+ <request index="4" response="0010000000000000" foes="0010001000001000" cont="0"/>
+ <request index="5" response="0110000000000111" foes="0110011000000111" cont="0"/>
+ <request index="6" response="0110000000000110" foes="1110111000000110" cont="0"/>
+ <request index="7" response="0001000100000100" foes="0001000100000100" cont="0"/>
+ <request index="8" response="0001000000000100" foes="0001000010000100" cont="0"/>
+ <request index="9" response="0011000001110100" foes="0011000001111100" cont="0"/>
+ <request index="10" response="0111000001100011" foes="0111000001100011" cont="0"/>
+ <request index="11" response="0111000001000010" foes="1111000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000111110000100" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000111001111100" cont="0"/>
+ <request index="14" response="0000000000000011" foes="0000110001100011" cont="1"/>
+ <request index="15" response="0000100001000010" foes="0000100001000010" cont="1"/>
+ </junction>
+ <junction id="733663078" type="right_before_left" x="1440.94" y="1200.45" incLanes="83051442#0_0 -83051442#1_0 -83051455_0" intLanes=":733663078_0_0 :733663078_1_0 :733663078_2_0 :733663078_3_0 :733663078_4_0 :733663078_5_0 :733663078_6_0 :733663078_7_0 :733663078_8_0" shape="1439.34,1206.73 1445.59,1204.96 1444.90,1198.83 1438.72,1196.80 1434.47,1200.32 1437.62,1206.01">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="733663082" type="priority" x="706.34" y="1872.73" incLanes="-59159262#2_0 37973565#0_0 59159262#1_0" intLanes=":733663082_0_0 :733663082_1_0 :733663082_9_0 :733663082_3_0 :733663082_4_0 :733663082_5_0 :733663082_6_0 :733663082_10_0 :733663082_11_0" shape="705.37,1877.44 708.54,1877.01 711.51,1873.76 708.58,1867.96 706.98,1867.16 703.83,1867.72 702.63,1869.39 702.48,1875.89">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="733663089" type="priority" x="1237.89" y="1761.89" incLanes="59159260#3_0 37449253#0_0" intLanes=":733663089_0_0 :733663089_1_0 :733663089_2_0 :733663089_3_0" shape="1238.72,1766.82 1241.54,1765.31 1242.54,1763.05 1239.41,1757.35 1237.55,1756.67 1234.57,1757.85">
+ <request index="0" response="1000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0001" cont="0"/>
+ </junction>
+ <junction id="733663093" type="priority" x="1370.00" y="1659.38" incLanes="58770725#2_0 59159260#0_0 -59159260#1_0" intLanes=":733663093_0_0 :733663093_1_0 :733663093_2_0 :733663093_3_0 :733663093_9_0 :733663093_10_0 :733663093_6_0 :733663093_7_0 :733663093_11_0" shape="1370.76,1664.34 1373.60,1662.87 1374.29,1660.78 1371.25,1655.04 1369.23,1654.41 1366.39,1655.88 1365.74,1657.92 1368.74,1663.69">
+ <request index="0" response="000001000" foes="100001000" cont="0"/>
+ <request index="1" response="011011000" foes="011011000" cont="0"/>
+ <request index="2" response="010011000" foes="010111000" cont="0"/>
+ <request index="3" response="000000000" foes="100000111" cont="0"/>
+ <request index="4" response="011000000" foes="011000110" cont="1"/>
+ <request index="5" response="010000100" foes="010000100" cont="1"/>
+ <request index="6" response="000000000" foes="000010010" cont="0"/>
+ <request index="7" response="000000000" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="1"/>
+ </junction>
+ <junction id="733663096" type="priority" x="1253.88" y="1753.13" incLanes="38319546#7_0 59159260#2_0 -38319546#8_0 -59159260#3_0" intLanes=":733663096_0_0 :733663096_1_0 :733663096_2_0 :733663096_3_0 :733663096_4_0 :733663096_5_0 :733663096_16_0 :733663096_17_0 :733663096_8_0 :733663096_9_0 :733663096_10_0 :733663096_11_0 :733663096_12_0 :733663096_13_0 :733663096_18_0 :733663096_19_0" shape="1253.25,1758.89 1259.00,1755.85 1260.46,1746.74 1254.59,1743.98 1253.34,1743.97 1247.41,1746 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="733663116" type="priority" x="858.49" y="1694.13" incLanes="69931595#2_0 -69931595#3_0" intLanes=":733663116_0_0 :733663116_1_0 :733663116_6_0 :733663116_3_0 :733663116_7_0 :733663116_8_0" shape="857.04,1698.40 862.81,1695.41 859.97,1689.90 854.19,1692.89 853.53,1694.93 855.02,1697.76">
+ <request index="0" response="000000" foes="010000" cont="0"/>
+ <request index="1" response="000000" foes="110000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="1"/>
+ <request index="3" response="000000" foes="000100" cont="0"/>
+ <request index="4" response="000011" foes="000011" cont="1"/>
+ <request index="5" response="000010" foes="000010" cont="1"/>
+ </junction>
+ <junction id="733663121" type="priority" x="1297.27" y="1697.13" incLanes="59159260#1_0 23066443#4_0 -59159260#2_0" intLanes=":733663121_0_0 :733663121_1_0 :733663121_9_0 :733663121_3_0 :733663121_4_0 :733663121_5_0 :733663121_6_0 :733663121_10_0 :733663121_11_0" shape="1298.06,1702.13 1300.90,1700.65 1301.52,1698.58 1298.53,1692.81 1296.51,1692.17 1293.66,1693.64 1292.89,1695.85 1296.06,1701.52">
+ <request index="0" response="000000000" foes="010010000" cont="0"/>
+ <request index="1" response="000000000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="1"/>
+ <request index="3" response="001000000" foes="001000100" cont="0"/>
+ <request index="4" response="011000011" foes="011000011" cont="0"/>
+ <request index="5" response="011000010" foes="111000010" cont="0"/>
+ <request index="6" response="000000000" foes="000111100" cont="0"/>
+ <request index="7" response="000000011" foes="000110011" cont="1"/>
+ <request index="8" response="000100010" foes="000100010" cont="1"/>
+ </junction>
+ <junction id="733663131" type="priority" x="1441.65" y="1621.44" incLanes="37771900#3_0 -59159260#0_0" intLanes=":733663131_0_0 :733663131_1_0 :733663131_2_0 :733663131_3_0" shape="1442.46,1626.38 1445.28,1624.88 1440.56,1616.47 1437.81,1618.10 1437.25,1620.09 1440.29,1625.83">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0000" foes="0100" cont="0"/>
+ <request index="2" response="0010" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="733663136" type="priority" x="899.76" y="1773.94" incLanes="69931595#0_0 -69931595#1_0 59159262#4_0" intLanes=":733663136_0_0 :733663136_1_0 :733663136_9_0 :733663136_3_0 :733663136_10_0 :733663136_11_0 :733663136_6_0 :733663136_7_0 :733663136_8_0" shape="899.07,1779.63 904.83,1776.62 900.46,1768.21 894.69,1771.20 894.04,1773.22 897.01,1779.00">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="000000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="1"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="1"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000010" foes="000100010" cont="0"/>
+ <request index="7" response="000011010" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="767282288" type="traffic_light" x="945.98" y="1183.41" incLanes="38319550#5_0 149868584#5_0 149868584#5_1 -38319550#6_0 -149868584#6_0 -149868584#6_1" intLanes=":767282288_0_0 :767282288_1_0 :767282288_18_0 :767282288_19_0 :767282288_4_0 :767282288_5_0 :767282288_6_0 :767282288_20_0 :767282288_21_0 :767282288_9_0 :767282288_10_0 :767282288_22_0 :767282288_23_0 :767282288_13_0 :767282288_14_0 :767282288_15_0 :767282288_24_0 :767282288_25_0" shape="946.85,1192.18 952.63,1 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="1"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="1"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="1"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="1"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="1"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="945146413" type="priority" x="1424.39" y="1942.32" incLanes="139118802#1_0 129780026#3_0" intLanes=":945146413_0_0 :945146413_1_0 :945146413_2_0 :945146413_3_0" shape="1424.40,1945.81 1427.24,1944.33 1427.88,1942.29 1426.39,1939.46 1424.37,1938.82 1421.53,1940.30 1420.89,1942.32 1422.35,1945.17">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="945146437" type="priority" x="1473.14" y="2035.72" incLanes="81096860_0 81096855#0_0" intLanes=":945146437_0_0 :945146437_1_0 :945146437_2_0 :945146437_3_0" shape="1473.17,2039.24 1476.01,2037.76 1476.63,2035.72 1475.16,2032.88 1473.12,2032.24 1470.29,2033.72 1469.62,2035.83 1471.16,2038.64">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="945146612" type="unregulated" x="1566.19" y="1826.94" incLanes="" intLanes="" shape="1569.06,1825.43 1563.31,1828.45">
+ </junction>
+ <junction id="946534458" type="unregulated" x="1752.24" y="2641.69" incLanes="75656628#1_0" intLanes="" shape="1753.84,2641.59 1750.65,2641.79">
+ </junction>
+ <junction id="948350565" type="priority" x="733.19" y="2322.32" incLanes="-81394200#0_0" intLanes=":948350565_0_0 :948350565_1_0" shape="736.43,2322.52 733.24,2322.32 729.94,2322.12 734.77,2322.12 731.60,2322.52">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="948350588" type="priority" x="761.69" y="2267.85" incLanes="-133868229#1_0 -133868229#1_1 37973565#5_0 133868229#0_0 133868229#0_1" intLanes=":948350588_0_0 :948350588_1_0 :948350588_2_0 :948350588_11_0 :948350588_4_0 :948350588_5_0 :948350588_6_0 :948350588_7_0 :948350588_8_0 :948350588_9_0 :948350588_12_0" shape="760.79,2274.79 763.98,2274.47 770.39,2270.33 763.74,2259.04 762.29,2258.31 759.11,2258.65 758.13,2262.35 764.73,2273.66">
+ <request index="0" response="00000000000" foes="01000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="11001100000" cont="0"/>
+ <request index="2" response="00000000000" foes="11001100000" cont="0"/>
+ <request index="3" response="00110010000" foes="00110010000" cont="1"/>
+ <request index="4" response="00110000000" foes="00110001000" cont="0"/>
+ <request index="5" response="01110000111" foes="01110000111" cont="0"/>
+ <request index="6" response="01110000110" foes="11110000110" cont="0"/>
+ <request index="7" response="00000000000" foes="00001111000" cont="0"/>
+ <request index="8" response="00000000000" foes="00001111000" cont="0"/>
+ <request index="9" response="00000000111" foes="00001100111" cont="0"/>
+ <request index="10" response="00001000110" foes="00001000110" cont="1"/>
+ </junction>
+ <junction id="948350595" type="priority" x="759.57" y="2291.12" incLanes="44641745#0_0 133868231#0_0" intLanes=":948350595_0_0 :948350595_1_0 :948350595_2_0 :948350595_3_0" shape="763.63,2292.99 763.83,2289.79 763.21,2288.44 760.52,2286.70 755.75,2289.29 755.55,2292.48 756.56,2293.98 759.52,2295.44">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="948350597" type="priority" x="735.50" y="2295.41" incLanes="133868191#0_0 133868191#0_1 133868191#0_2 133868191#0_3 -81394200#1_0 81394200#0_0" intLanes=":948350597_0_0 :948350597_1_0 :948350597_2_0 :948350597_3_0 :948350597_4_0 :948350597_5_0 :948350597_10_0 :948350597_7_0 :948350597_8_0 :948350597_11_0" shape="739.35,2300.83 733.65,2289.03 741.41,2289.26 735.30,2286.91 733.44,2289.05 739.92,2300.44 731.24,2302.42 737.74,2302.96">
+ <request index="0" response="0000010000" foes="1000010000" cont="0"/>
+ <request index="1" response="0100010000" foes="0100010000" cont="0"/>
+ <request index="2" response="0100010000" foes="0100010000" cont="0"/>
+ <request index="3" response="0100110000" foes="0101110000" cont="0"/>
+ <request index="4" response="0000000000" foes="1000001111" cont="0"/>
+ <request index="5" response="0100000000" foes="0100001000" cont="0"/>
+ <request index="6" response="0100001000" foes="0100001000" cont="1"/>
+ <request index="7" response="0000000000" foes="0000000000" cont="0"/>
+ <request index="8" response="0000000000" foes="0001101110" cont="0"/>
+ <request index="9" response="0000010001" foes="0000010001" cont="1"/>
+ </junction>
+ <junction id="948350607" type="priority" x="763.17" y="2285.56" incLanes="81523316_0 81523316_1 37973565#7_0" intLanes=":948350607_0_0 :948350607_1_0 :948350607_2_0 :948350607_3_0 :948350607_4_0 :948350607_5_0" shape="762.14,2291.54 765.32,2291.23 770.11,2283.33 765.43,2278.70 764.25,2278.25 761.06,2278.48 757.23,2285.55 758.09,2288.63 758.51,2289.81 761.20,2291.55">
+ <request index="0" response="000000" foes="001000" cont="0"/>
+ <request index="1" response="000000" foes="011000" cont="0"/>
+ <request index="2" response="000000" foes="111000" cont="0"/>
+ <request index="3" response="000111" foes="000111" cont="0"/>
+ <request index="4" response="000110" foes="000110" cont="0"/>
+ <request index="5" response="000100" foes="000100" cont="0"/>
+ </junction>
+ <junction id="948350615" type="priority" x="743.31" y="2262.65" incLanes="130443629#3_0 -130443629#4_0 81394169#1_0" intLanes=":948350615_0_0 :948350615_9_0 :948350615_10_0 :948350615_3_0 :948350615_4_0 :948350615_5_0 :948350615_6_0 :948350615_7_0 :948350615_8_0" shape="740.00,2262.20 746.47,2261.61 745.36,2267.20 747.71,2265.00 746.55,2262.41 740.07,2263.00 741.54,2257.59 738.97,2259.50">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110000000" foes="110011000" cont="1"/>
+ <request index="2" response="100010000" foes="100010000" cont="1"/>
+ <request index="3" response="010000010" foes="010000010" cont="0"/>
+ <request index="4" response="110000010" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="948350621" type="priority" x="753.79" y="2282.31" incLanes="37351089#0_0 37351089#0_1 37351089#0_2 37351089#0_3 81394169#4_0" intLanes=":948350621_0_0 :948350621_1_0 :948350621_2_0 :948350621_3_0 :948350621_4_0 :948350621_5_0" shape="753.36,2290.76 756.53,2290.32 762.80,2283.04 754.08,2273.27 752.72,2273.51 749.67,2274.46 749.26,2277.57 758.70,2286.65">
+ <request index="0" response="001000" foes="001000" cont="0"/>
+ <request index="1" response="001000" foes="001000" cont="0"/>
+ <request index="2" response="001000" foes="001000" cont="0"/>
+ <request index="3" response="000000" foes="000111" cont="0"/>
+ <request index="4" response="000000" foes="000000" cont="0"/>
+ <request index="5" response="000000" foes="000000" cont="0"/>
+ </junction>
+ <junction id="948350630" type="priority" x="772.70" y="2261.37" incLanes="-81523330#0_0 -81523330#0_1 134572340#1_0 134572340#1_1 133868229#1_0 133868229#1_1" intLanes=":948350630_0_0 :948350630_1_0 :948350630_8_0 :948350630_3_0 :948350630_4_0 :948350630_5_0 :948350630_6_0 :948350630_9_0" shape="777.22,2266.39 771.09,2254.81 772.22,2257.82 770.31,2264.04 767.96,2256.56 774.61,2267.85">
+ <request index="0" response="00000000" foes="10010000" cont="0"/>
+ <request index="1" response="00000000" foes="10010000" cont="0"/>
+ <request index="2" response="01101000" foes="01101000" cont="1"/>
+ <request index="3" response="01100000" foes="01100100" cont="0"/>
+ <request index="4" response="01100011" foes="11100011" cont="0"/>
+ <request index="5" response="00000000" foes="00011100" cont="0"/>
+ <request index="6" response="00000000" foes="00011100" cont="0"/>
+ <request index="7" response="00010011" foes="00010011" cont="1"/>
+ </junction>
+ <junction id="948350636" type="unregulated" x="756.63" y="2306.21" incLanes="133868231#1_0 81394169#6_0" intLanes="" shape="758.22,2306.34 755.03,2306.08 758.22,2306.04 755.04,2306.38">
+ </junction>
+ <junction id="948350640" type="priority" x="744.96" y="2278.54" incLanes="130443629#1_0 -81394200#2_0 -130443629#2_0 81394200#1_0" intLanes=":948350640_0_0 :948350640_1_0 :948350640_2_0 :948350640_3_0 :948350640_4_0 :948350640_5_0 :948350640_16_0 :948350640_17_0 :948350640_8_0 :948350640_9_0 :948350640_10_0 :948350640_11_0 :948350640_12_0 :948350640_13_0 :948350640_14_0 :948350640_18_0" shape="742.70,2288.65 749.17,2288.01 749.59,2279.18 745.75,2273.94 747.78,2275.23 741.35,2276.13 7 [...]
+ <request index="0" response="0000000000100000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111000001100000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001101100000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0000000000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0000000000000000" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011000000000000" foes="0011111000000110" cont="1"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="1"/>
+ <request index="8" response="0010000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0110000001110000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0110000001100011" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="0"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000000000000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000000000110000" foes="0000011000111110" cont="0"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="948350673" type="priority" x="730.24" y="2298.40" incLanes="81394188#0_0 133868191#1_0 133868191#1_1 133868191#1_2 133868191#1_3" intLanes=":948350673_0_0 :948350673_1_0 :948350673_2_0 :948350673_3_0 :948350673_4_0 :948350673_5_0" shape="729.77,2307.71 732.95,2307.32 738.51,2301.24 732.04,2289.85 730.52,2289.10 727.35,2289.56 721.98,2295.46 728.28,2306.95">
+ <request index="0" response="000000" foes="000000" cont="0"/>
+ <request index="1" response="000000" foes="000000" cont="0"/>
+ <request index="2" response="000000" foes="111000" cont="0"/>
+ <request index="3" response="000100" foes="000100" cont="0"/>
+ <request index="4" response="000100" foes="000100" cont="0"/>
+ <request index="5" response="000100" foes="000100" cont="0"/>
+ </junction>
+ <junction id="948350676" type="priority" x="738.76" y="2256.54" incLanes="81394169#0_0" intLanes=":948350676_0_0 :948350676_1_0" shape="741.34,2262.69 743.91,2260.78 744.47,2259.94 745.44,2256.87 740.92,2256.30 738.82,2258.72">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="948350693" type="priority" x="748.62" y="2269.96" incLanes="81394169#2_0 37351086#0_0" intLanes=":948350693_0_0 :948350693_1_0 :948350693_2_0 :948350693_3_0" shape="749.17,2273.78 751.86,2272.06 752.35,2268.42 750.06,2266.19 748.31,2265.93 745.48,2267.42 745.02,2271.36 747.31,2273.60">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="948350705" type="priority" x="777.15" y="2274.14" incLanes="144874010#2_0 144874010#2_1" intLanes=":948350705_0_0 :948350705_1_0 :948350705_2_0" shape="753.45,2290.30 750.42,2284.55 747.61,2285.46 748.97,2288.50">
+ <request index="0" response="000" foes="000" cont="0"/>
+ <request index="1" response="000" foes="000" cont="0"/>
+ <request index="2" response="000" foes="000" cont="0"/>
+ </junction>
+ <junction id="948350707" type="priority" x="751.19" y="2273.98" incLanes="-133868229#0_0 -133868229#0_1 81394169#3_0 37369047#2_0 37369047#2_1 37369047#2_2 37369047#2_3 81394200#2_0" intLanes=":948350707_0_0 :948350707_1_0 :948350707_2_0 :948350707_17_0 :948350707_4_0 :948350707_5_0 :948350707_6_0 :948350707_7_0 :948350707_8_0 :948350707_9_0 :948350707_10_0 :948350707_11_0 :948350707_12_0 :948350707_13_0 :948350707_14_0 :948350707_15_0 :948350707_18_0" shape="752.26,2282.78 755.32,22 [...]
+ <request index="0" response="00000000000000000" foes="00000000000000000" cont="0"/>
+ <request index="1" response="00000000000000000" foes="01100110001100000" cont="0"/>
+ <request index="2" response="00000000000000000" foes="11101110011100000" cont="0"/>
+ <request index="3" response="00010001100010000" foes="00010001100010000" cont="1"/>
+ <request index="4" response="00010000000000000" foes="00010001100001000" cont="0"/>
+ <request index="5" response="00010000000000110" foes="00010001100000110" cont="0"/>
+ <request index="6" response="01110000000000110" foes="01110111100000110" cont="0"/>
+ <request index="7" response="01110000000000100" foes="11111111100000100" cont="0"/>
+ <request index="8" response="00010000011110000" foes="00010000011111000" cont="0"/>
+ <request index="9" response="00010000011110000" foes="00010000011111000" cont="0"/>
+ <request index="10" response="00010000011000110" foes="00010000011000110" cont="0"/>
+ <request index="11" response="01110000011000110" foes="01110000011000110" cont="0"/>
+ <request index="12" response="01110000010000100" foes="11110000010000100" cont="0"/>
+ <request index="13" response="00000000000000000" foes="00001111111111000" cont="0"/>
+ <request index="14" response="00000000000000110" foes="00001100011000110" cont="0"/>
+ <request index="15" response="00000000000000110" foes="00001100011000110" cont="0"/>
+ <request index="16" response="00001000010000100" foes="00001000010000100" cont="1"/>
+ </junction>
+ <junction id="948350715" type="priority" x="754.99" y="2290.84" incLanes="44641745#1_0 81394169#5_0" intLanes=":948350715_0_0 :948350715_1_0 :948350715_2_0 :948350715_3_0" shape="753.76,2294.39 756.94,2294.05 758.28,2292.65 758.47,2289.45 756.09,2287.19 752.92,2287.64 751.63,2289.03 751.43,2292.22">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="950094255" type="unregulated" x="1874.29" y="1679.23" incLanes="149408824#1_0 149408824#1_1" intLanes="" shape="1872.51,1676.51 1876.07,1681.95">
+ </junction>
+ <junction id="950094314" type="priority" x="1348.81" y="1972.51" incLanes="154489992#2_0 154489992#2_1 37449253#7_0" intLanes=":950094314_0_0 :950094314_1_0 :950094314_2_0 :950094314_3_0 :950094314_4_0" shape="1349.63,1977.45 1352.46,1975.95 1353.14,1973.81 1349.97,1968.14 1347.94,1967.55 1345.13,1969.08 1344.52,1971.11 1347.57,1976.85">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="950094380" type="priority" x="1301.00" y="1997.93" incLanes="129780020_0 172498388_0 172498388_1" intLanes=":950094380_0_0 :950094380_1_0 :950094380_2_0 :950094380_3_0 :950094380_4_0" shape="1313.08,1999.19 1312.99,1995.99 1312.81,1995.33 1309.76,1989.59 1300.15,1992.98 1297.33,1994.49 1296.72,1996.51 1299.75,2002.26">
+ <request index="0" response="01100" foes="01100" cont="0"/>
+ <request index="1" response="11100" foes="11100" cont="0"/>
+ <request index="2" response="00000" foes="00011" cont="0"/>
+ <request index="3" response="00000" foes="00011" cont="0"/>
+ <request index="4" response="00000" foes="00010" cont="0"/>
+ </junction>
+ <junction id="950094408" type="unregulated" x="1576.50" y="1817.96" incLanes="154844474#1_0 154844474#1_1" intLanes="" shape="1579.37,1816.43 1573.63,1819.49">
+ </junction>
+ <junction id="950094412" type="priority" x="1079.00" y="2114.91" incLanes="23315111#0_0 144874010#1_0 144874010#1_1 -23315111#1_0" intLanes=":950094412_0_0 :950094412_1_0 :950094412_2_0 :950094412_3_0 :950094412_4_0 :950094412_5_0 :950094412_6_0 :950094412_7_0 :950094412_8_0 :950094412_9_0" shape="1078.13,2120.74 1084.02,2117.99 1084.84,2115.53 1081.84,2109.77 1079.87,2109.10 1073.98,2111.86 1073.13,2114.33 1076.17,2120.08">
+ <request index="0" response="0000110000" foes="0100110000" cont="0"/>
+ <request index="1" response="0001110000" foes="1101110000" cont="0"/>
+ <request index="2" response="0010001000" foes="0010001000" cont="0"/>
+ <request index="3" response="0000000000" foes="0010000100" cont="0"/>
+ <request index="4" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="5" response="0000000000" foes="0110000011" cont="0"/>
+ <request index="6" response="0000000000" foes="1110000010" cont="0"/>
+ <request index="7" response="0001111000" foes="0001111100" cont="0"/>
+ <request index="8" response="0001110011" foes="0001110011" cont="0"/>
+ <request index="9" response="0001000010" foes="0001000010" cont="0"/>
+ </junction>
+ <junction id="950094425" type="priority" x="1073.15" y="2102.39" incLanes="23315111#2_0 -81523330#2_0 -81523330#2_1 -23315111#3_0 81523330#1_0 81523330#1_1" intLanes=":950094425_0_0 :950094425_1_0 :950094425_2_0 :950094425_3_0 :950094425_4_0 :950094425_5_0 :950094425_6_0 :950094425_18_0 :950094425_19_0 :950094425_9_0 :950094425_10_0 :950094425_11_0 :950094425_12_0 :950094425_13_0 :950094425_14_0 :950094425_15_0 :950094425_16_0 :950094425_20_0" shape="1073.48,2110.78 1079.37,2108.04 1 [...]
+ <request index="0" response="000000000001100000" foes="100000100001100000" cont="0"/>
+ <request index="1" response="011110000011100000" foes="011111100011100000" cont="0"/>
+ <request index="2" response="011100011011100000" foes="011100011111100000" cont="0"/>
+ <request index="3" response="010000010000010000" foes="010000010000010000" cont="0"/>
+ <request index="4" response="000000000000000000" foes="010000010000001000" cont="0"/>
+ <request index="5" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="6" response="000000000000000000" foes="110000110000000111" cont="0"/>
+ <request index="7" response="001110000000000000" foes="001111110000000110" cont="1"/>
+ <request index="8" response="001100001000000100" foes="001100001000000100" cont="1"/>
+ <request index="9" response="001100000000000000" foes="001100000100000100" cont="0"/>
+ <request index="10" response="011100000011110000" foes="011100000011111100" cont="0"/>
+ <request index="11" response="011100000011100011" foes="111100000011100011" cont="0"/>
+ <request index="12" response="000010000010000010" foes="000010000010000010" cont="0"/>
+ <request index="13" response="000000000000000000" foes="000001000010000010" cont="0"/>
+ <request index="14" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="15" response="000000000000000000" foes="000000111110000110" cont="0"/>
+ <request index="16" response="000000000001110000" foes="000000110001111110" cont="0"/>
+ <request index="17" response="000000100001100001" foes="000000100001100001" cont="1"/>
+ </junction>
+ <junction id="950094434" type="priority" x="1419.53" y="1932.99" incLanes="154489992#0_0 154489992#0_1 129780026#2_0" intLanes=":950094434_0_0 :950094434_1_0 :950094434_2_0 :950094434_3_0 :950094434_4_0" shape="1420.32,1937.99 1423.16,1936.51 1423.79,1934.42 1420.76,1928.67 1418.74,1928.04 1415.91,1929.52 1415.15,1931.71 1418.32,1937.39">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="950094458" type="priority" x="1413.95" y="1922.32" incLanes="129780026#0_0 139118805#2_0 139118805#2_1" intLanes=":950094458_0_0 :950094458_1_0 :950094458_2_0 :950094458_3_0 :950094458_4_0 :950094458_5_0 :950094458_6_0 :950094458_7_0" shape="1414.73,1927.26 1417.56,1925.78 1418.22,1923.74 1415.19,1917.99 1411.65,1914.45 1408.81,1915.93 1408.18,1917.96 1414.30,1929.54">
+ <request index="0" response="00110000" foes="00110000" cont="0"/>
+ <request index="1" response="01110000" foes="01110000" cont="0"/>
+ <request index="2" response="01110000" foes="11110000" cont="0"/>
+ <request index="3" response="01110000" foes="11110000" cont="0"/>
+ <request index="4" response="00000000" foes="00001111" cont="0"/>
+ <request index="5" response="00000000" foes="00001111" cont="0"/>
+ <request index="6" response="00000000" foes="00001110" cont="0"/>
+ <request index="7" response="00001100" foes="00001100" cont="0"/>
+ </junction>
+ <junction id="950094494" type="priority" x="1294.72" y="1985.59" incLanes="144874012#1_0 -139118805#0_0 -139118805#0_1 81523330#4_0 81523330#4_1" intLanes=":950094494_0_0 :950094494_1_0 :950094494_2_0 :950094494_3_0 :950094494_4_0 :950094494_11_0 :950094494_12_0 :950094494_7_0 :950094494_8_0 :950094494_9_0 :950094494_13_0" shape="1296.17,1992.33 1299.06,1990.95 1301.45,1989.42 1295.29,1977.86 1293.71,1977.09 1290.66,1978.24 1288.82,1981.25 1294.79,1992.91">
+ <request index="0" response="00000011000" foes="10000011000" cont="0"/>
+ <request index="1" response="01110111000" foes="01110111000" cont="0"/>
+ <request index="2" response="01100111000" foes="01101111000" cont="0"/>
+ <request index="3" response="00000000000" foes="10000000111" cont="0"/>
+ <request index="4" response="00000000000" foes="10000000111" cont="0"/>
+ <request index="5" response="01110000000" foes="01110000110" cont="1"/>
+ <request index="6" response="01100000100" foes="01100000100" cont="1"/>
+ <request index="7" response="00000000000" foes="00000100010" cont="0"/>
+ <request index="8" response="00000000000" foes="00001100110" cont="0"/>
+ <request index="9" response="00000000000" foes="00001100110" cont="0"/>
+ <request index="10" response="00000011001" foes="00000011001" cont="1"/>
+ </junction>
+ <junction id="950640351" type="priority" x="942.06" y="1175.85" incLanes="38319550#6_0 -38319550#7_0 111549913#4_0" intLanes=":950640351_0_0 :950640351_1_0 :950640351_2_0 :950640351_3_0 :950640351_4_0 :950640351_5_0 :950640351_6_0 :950640351_7_0 :950640351_8_0" shape="940.71,1180.30 946.48,1177.30 947.04,1174.86 945.46,1172.08 943.46,1171.49 937.69,1174.48 937.07,1177.01 938.74,1179.74">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="950640361" type="priority" x="756.98" y="1281.55" incLanes="111549913#1_0 81394192#13_0" intLanes=":950640361_0_0 :950640361_1_0 :950640361_2_0 :950640361_3_0" shape="762.34,1279.93 760.58,1277.26 759.63,1276.61 756.50,1275.97 751.84,1282.58 753.39,1285.38 754.40,1286.12 757.54,1286.76">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="950640371" type="priority" x="670.40" y="1332.52" incLanes="34962531#0_0 -34962531#1_0 111549913#0_0" intLanes=":950640371_0_0 :950640371_1_0 :950640371_2_0 :950640371_3_0 :950640371_4_0 :950640371_5_0 :950640371_6_0 :950640371_7_0 :950640371_8_0" shape="669.05,1336.86 674.77,1333.78 675.37,1331.40 673.72,1328.66 671.72,1328.11 666.00,1331.19 665.45,1333.50 667.03,1336.28">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="950640393" type="priority" x="459.04" y="1471.28" incLanes="43684741#4_0 111863125#7_0 -43684741#5_0" intLanes=":950640393_0_0 :950640393_1_0 :950640393_2_0 :950640393_3_0 :950640393_4_0 :950640393_5_0 :950640393_6_0 :950640393_7_0 :950640393_8_0" shape="460.95,1476.69 464.77,1471.43 464.86,1469.81 463.27,1467.03 457.10,1465.87 453.29,1471.13 453.19,1472.75 454.77,1475.53">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="950640399" type="priority" x="934.34" y="1180.54" incLanes="101272424#4_0 111549913#3_0" intLanes=":950640399_0_0 :950640399_1_0 :950640399_2_0 :950640399_3_0" shape="934.37,1184.12 937.22,1182.66 937.93,1180.23 936.27,1177.50 934.30,1176.94 931.45,1178.40 930.78,1180.78 932.40,1183.54">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="1100" foes="1100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0010" cont="0"/>
+ </junction>
+ <junction id="950640411" type="priority" x="773.09" y="1270.92" incLanes="-130443630#8_0 111549913#2_0 130443630#7_0" intLanes=":950640411_0_0 :950640411_1_0 :950640411_2_0 :950640411_3_0 :950640411_4_0 :950640411_5_0 :950640411_6_0 :950640411_7_0 :950640411_8_0" shape="779.66,1269.14 778.12,1266.33 776.98,1265.57 770.52,1264.82 766.30,1273.49 768.06,1276.16 769.14,1276.82 775.60,1277.56">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="950640413" type="priority" x="770.49" y="1293.53" incLanes="111863125#5_0 -130443630#6_0 130443630#5_0" intLanes=":950640413_0_0 :950640413_1_0 :950640413_2_0 :950640413_3_0 :950640413_4_0 :950640413_5_0 :950640413_6_0 :950640413_7_0 :950640413_8_0" shape="777.11,1291.57 775.52,1288.80 774.39,1288.05 767.93,1287.31 763.69,1295.75 765.34,1298.49 766.42,1299.20 772.86,1300.09">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="000000000" foes="011011000" cont="0"/>
+ <request index="2" response="000000000" foes="010111000" cont="0"/>
+ <request index="3" response="000000111" foes="100000111" cont="0"/>
+ <request index="4" response="011000110" foes="011000110" cont="0"/>
+ <request index="5" response="010000100" foes="010000100" cont="0"/>
+ <request index="6" response="000000010" foes="000010010" cont="0"/>
+ <request index="7" response="000000110" foes="000110110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="950640428" type="priority" x="686.05" y="2240.70" incLanes="81394188#3_0" intLanes=":950640428_0_0 :950640428_1_0" shape="687.74,2242.40 687.94,2239.21 680.40,2236.42 679.10,2239.34 678.98,2240.18 679.48,2243.35">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="950640474" type="priority" x="752.22" y="1304.53" incLanes="111863125#6_0 81394192#11_0" intLanes=":950640474_0_0 :950640474_1_0 :950640474_2_0 :950640474_3_0" shape="757.47,1303.24 755.82,1300.50 754.84,1299.80 751.71,1299.15 747.07,1305.59 748.64,1308.38 749.64,1309.11 752.78,1309.76">
+ <request index="0" response="0000" foes="1100" cont="0"/>
+ <request index="1" response="0000" foes="1000" cont="0"/>
+ <request index="2" response="0001" foes="0001" cont="0"/>
+ <request index="3" response="0011" foes="0011" cont="0"/>
+ </junction>
+ <junction id="950640500" type="unregulated" x="384.42" y="1513.40" incLanes="111863125#8_0" intLanes="" shape="385.21,1514.79 383.64,1512.00">
+ </junction>
+ <junction id="950640525" type="priority" x="941.84" y="1195.43" incLanes="111863125#2_0 42976410#0_0" intLanes=":950640525_0_0 :950640525_1_0 :950640525_2_0 :950640525_3_0" shape="941.88,1198.97 944.72,1197.48 945.39,1195.27 943.83,1192.48 941.85,1191.87 938.99,1193.29 938.30,1195.59 939.88,1198.38">
+ <request index="0" response="0000" foes="0100" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0011" foes="0011" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="950640531" type="priority" x="949.87" y="1190.93" incLanes="38319550#4_0 111863125#1_0 -38319550#5_0" intLanes=":950640531_0_0 :950640531_1_0 :950640531_2_0 :950640531_3_0 :950640531_4_0 :950640531_5_0 :950640531_6_0 :950640531_7_0 :950640531_8_0" shape="948.46,1195.27 954.23,1192.27 954.84,1189.95 953.27,1187.16 951.27,1186.57 945.50,1189.55 944.90,1191.88 946.46,1194.67">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="950640539" type="unregulated" x="370.49" y="1503.56" incLanes="" intLanes="" shape="371.29,1504.95 369.70,1502.17">
+ </junction>
+ <junction id="950640550" type="priority" x="915.35" y="1210.47" incLanes="133960539#3_0 133960539#3_1 111863125#4_0" intLanes=":950640550_0_0 :950640550_1_0 :950640550_2_0 :950640550_3_0" shape="914.06,1214.79 919.71,1211.59 920.26,1209.51 918.68,1206.73 916.43,1206.04 910.90,1209.45 910.39,1211.47 911.98,1214.25">
+ <request index="0" response="0100" foes="0100" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0011" cont="0"/>
+ <request index="3" response="0000" foes="0000" cont="0"/>
+ </junction>
+ <junction id="950640558" type="priority" x="926.33" y="1204.20" incLanes="111863125#3_0 42976405#0_0 42976405#0_1" intLanes=":950640558_0_0 :950640558_1_0 :950640558_2_0 :950640558_3_0" shape="924.81,1208.64 930.70,1205.90 931.38,1203.18 929.80,1200.40 927.87,1199.78 921.97,1202.50 921.29,1205.24 922.87,1208.02">
+ <request index="0" response="0000" foes="0000" cont="0"/>
+ <request index="1" response="0000" foes="1100" cont="0"/>
+ <request index="2" response="0010" foes="0010" cont="0"/>
+ <request index="3" response="0010" foes="0010" cont="0"/>
+ </junction>
+ <junction id="950640617" type="priority" x="278.01" y="1618.39" incLanes="-107066313#0_0" intLanes=":950640617_0_0" shape="278.05,1618.36 280.74,1616.63 275.27,1620.15 277.96,1618.42">
+ <request index="0" response="0" foes="0" cont="0"/>
+ </junction>
+ <junction id="951739420" type="right_before_left" x="837.76" y="1312.08" incLanes="-81672216#3_0 -81672213_0 81672216#2_0" intLanes=":951739420_0_0 :951739420_1_0 :951739420_2_0 :951739420_3_0 :951739420_4_0 :951739420_5_0 :951739420_6_0 :951739420_7_0 :951739420_8_0" shape="837.13,1317.78 842.86,1314.71 843.51,1312.65 840.40,1306.94 838.37,1306.34 832.65,1309.41">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="951739443" type="priority" x="1158.40" y="1052.79" incLanes="166603397#1_0 166603397#1_1 111863096#0_0" intLanes=":951739443_0_0 :951739443_1_0 :951739443_2_0 :951739443_3_0 :951739443_4_0" shape="1157.05,1057.21 1162.80,1054.19 1163.38,1051.74 1161.77,1048.97 1159.78,1048.40 1154.01,1051.41 1153.42,1053.90 1155.06,1056.65">
+ <request index="0" response="00000" foes="11000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="10000" cont="0"/>
+ <request index="3" response="00011" foes="00011" cont="0"/>
+ <request index="4" response="00111" foes="00111" cont="0"/>
+ </junction>
+ <junction id="951739458" type="right_before_left" x="845.96" y="1327.39" incLanes="-81672216#4_0 -81672209_0 81672216#3_0" intLanes=":951739458_0_0 :951739458_1_0 :951739458_2_0 :951739458_3_0 :951739458_4_0 :951739458_5_0 :951739458_6_0 :951739458_7_0 :951739458_8_0" shape="845.36,1333.14 851.09,1330.07 851.71,1328.06 848.72,1322.29 846.60,1321.70 840.87,1324.77">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="951739511" type="right_before_left" x="853.92" y="1342.24" incLanes="-81672216#5_0 -81672218_0 81672216#4_0" intLanes=":951739511_0_0 :951739511_1_0 :951739511_2_0 :951739511_3_0 :951739511_4_0 :951739511_5_0 :951739511_6_0 :951739511_7_0 :951739511_8_0" shape="853.31,1347.99 859.04,1344.93 859.66,1342.91 856.66,1337.15 854.56,1336.55 848.83,1339.62">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="011000000" foes="011101000" cont="0"/>
+ <request index="2" response="010010000" foes="010010000" cont="0"/>
+ <request index="3" response="000000011" foes="110000011" cont="0"/>
+ <request index="4" response="000000000" foes="010000100" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="951739549" type="right_before_left" x="874.43" y="1273.42" incLanes="81672216#8_0 -81672216#9_0 81672214_0" intLanes=":951739549_0_0 :951739549_1_0 :951739549_2_0 :951739549_3_0 :951739549_4_0 :951739549_5_0 :951739549_6_0 :951739549_7_0 :951739549_8_0" shape="875.07,1278.39 879.44,1273.59 872.04,1266.93 867.71,1271.77 867.51,1273.49 870.63,1279.20">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="951739557" type="priority" x="1168.63" y="1046.83" incLanes="154844483#0_0 154844483#0_1 111863096#2_0" intLanes=":951739557_0_0 :951739557_1_0 :951739557_2_0 :951739557_3_0 :951739557_4_0" shape="1167.27,1051.21 1173.01,1048.17 1172.42,1046.56 1170.87,1043.76 1170.02,1042.51 1164.28,1045.55 1163.66,1047.87 1165.27,1050.64">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="951739568" type="right_before_left" x="887.31" y="1285.14" incLanes="81672216#7_0 -81672216#8_0 81672213_0" intLanes=":951739568_0_0 :951739568_1_0 :951739568_2_0 :951739568_3_0 :951739568_4_0 :951739568_5_0 :951739568_6_0 :951739568_7_0 :951739568_8_0" shape="888.06,1290.02 892.24,1285.05 885.01,1278.65 880.63,1283.46 880.42,1285.18 883.53,1290.90">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="951739649" type="priority" x="1171.65" y="1045.16" incLanes="38319548#13_0 -38319548#14_0 111863096#3_0" intLanes=":951739649_0_0 :951739649_1_0 :951739649_2_0 :951739649_3_0 :951739649_4_0 :951739649_5_0 :951739649_6_0 :951739649_7_0 :951739649_8_0" shape="1170.28,1049.46 1176.00,1046.37 1176.62,1044.04 1174.97,1041.30 1172.98,1040.74 1167.24,1043.80 1167.85,1045.43 1169.40,1048.23">
+ <request index="0" response="111000000" foes="111100000" cont="0"/>
+ <request index="1" response="110011000" foes="110011000" cont="0"/>
+ <request index="2" response="100010000" foes="100010000" cont="0"/>
+ <request index="3" response="010000000" foes="010000010" cont="0"/>
+ <request index="4" response="110000000" foes="110000110" cont="0"/>
+ <request index="5" response="001000001" foes="001000001" cont="0"/>
+ <request index="6" response="000000000" foes="000100001" cont="0"/>
+ <request index="7" response="000000000" foes="000011011" cont="0"/>
+ <request index="8" response="000000000" foes="000010111" cont="0"/>
+ </junction>
+ <junction id="951739684" type="priority" x="1179.95" y="1060.50" incLanes="38319548#12_0 103851602#0_0 -38319548#13_0" intLanes=":951739684_0_0 :951739684_1_0 :951739684_2_0 :951739684_3_0 :951739684_4_0 :951739684_5_0 :951739684_6_0 :951739684_7_0 :951739684_8_0" shape="1179.33,1065.24 1184.63,1061.48 1185.08,1059.54 1183.56,1056.73 1181.33,1056.23 1175.62,1059.32 1176.02,1060.89 1177.60,1063.68">
+ <request index="0" response="000010000" foes="010010000" cont="0"/>
+ <request index="1" response="000110000" foes="110110000" cont="0"/>
+ <request index="2" response="001001000" foes="001001000" cont="0"/>
+ <request index="3" response="000000000" foes="001000100" cont="0"/>
+ <request index="4" response="000000000" foes="011000011" cont="0"/>
+ <request index="5" response="000000000" foes="111000010" cont="0"/>
+ <request index="6" response="000111000" foes="000111100" cont="0"/>
+ <request index="7" response="000110011" foes="000110011" cont="0"/>
+ <request index="8" response="000100010" foes="000100010" cont="0"/>
+ </junction>
+ <junction id="951739693" type="priority" x="818.06" y="1275.29" incLanes="-81672216#0_0 37973569#4_0" intLanes=":951739693_0_0 :951739693_1_0 :951739693_2_0 :951739693_3_0" shape="816.70,1279.62 822.43,1276.55 822.96,1274.36 821.38,1271.58 813.11,1276.25 814.68,1279.04">
+ <request index="0" response="1000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="0"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0000" foes="0001" cont="0"/>
+ </junction>
+ <junction id="951739718" type="priority" x="1176.81" y="1062.29" incLanes="103851602#1_0 154844483#1_0 154844483#1_1" intLanes=":951739718_0_0 :951739718_1_0 :951739718_2_0 :951739718_3_0 :951739718_4_0" shape="1175.43,1066.63 1181.17,1063.59 1180.74,1061.89 1179.16,1059.11 1178.18,1057.94 1172.44,1060.98 1171.84,1063.26 1173.42,1066.04">
+ <request index="0" response="01100" foes="01100" cont="0"/>
+ <request index="1" response="11100" foes="11100" cont="0"/>
+ <request index="2" response="00000" foes="00011" cont="0"/>
+ <request index="3" response="00000" foes="00011" cont="0"/>
+ <request index="4" response="00000" foes="00010" cont="0"/>
+ </junction>
+ <junction id="951739766" type="right_before_left" x="830.02" y="1297.63" incLanes="-81672216#2_0 -81672214_0 81672216#1_0" intLanes=":951739766_0_0 :951739766_1_0 :951739766_2_0 :951739766_3_0 :951739766_4_0 :951739766_5_0 :951739766_6_0 :951739766_7_0 :951739766_8_0" shape="829.39,1303.33 835.12,1300.26 835.77,1298.19 832.66,1292.49 830.63,1291.88 824.90,1294.95">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="951739771" type="priority" x="1150.68" y="1665.14" incLanes="133960539#0_0 133960539#0_1" intLanes=":951739771_0_0 :951739771_1_0 :951739771_2_0" shape="1147.98,1666.98 1153.70,1663.89 1150.22,1657.21 1144.45,1660.21 1143.73,1661.05 1142.69,1664.08">
+ <request index="0" response="000" foes="000" cont="0"/>
+ <request index="1" response="000" foes="000" cont="0"/>
+ <request index="2" response="000" foes="000" cont="0"/>
+ </junction>
+ <junction id="951739776" type="priority" x="1166.46" y="1068.17" incLanes="166603397#0_0 166603397#0_1 103851602#3_0" intLanes=":951739776_0_0 :951739776_1_0 :951739776_2_0 :951739776_3_0 :951739776_4_0" shape="1165.06,1072.51 1170.82,1069.49 1171.43,1067.18 1169.85,1064.40 1167.85,1063.81 1162.09,1066.83 1161.49,1069.12 1163.06,1071.91">
+ <request index="0" response="00000" foes="01000" cont="0"/>
+ <request index="1" response="00000" foes="11000" cont="0"/>
+ <request index="2" response="00000" foes="11000" cont="0"/>
+ <request index="3" response="00111" foes="00111" cont="0"/>
+ <request index="4" response="00110" foes="00110" cont="0"/>
+ </junction>
+ <junction id="956116503" type="priority" x="758.92" y="1846.12" incLanes="-44104491#0_0 -59159262#3_0 59159262#2_0" intLanes=":956116503_0_0 :956116503_1_0 :956116503_2_0 :956116503_3_0 :956116503_4_0 :956116503_9_0 :956116503_6_0 :956116503_10_0 :956116503_11_0" shape="758.34,1851.90 764.06,1848.82 764.43,1846.95 761.47,1841.17 753.29,1845.33 756.22,1851.13">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="966097830" type="priority" x="828.22" y="1459.05" incLanes="83038920_0 83038923#1_0" intLanes=":966097830_0_0 :966097830_4_0 :966097830_2_0 :966097830_5_0" shape="826.76,1463.45 832.59,1460.58 823.79,1457.67 826.76,1463.45">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="966097837" type="right_before_left" x="813.60" y="1466.57" incLanes="-83038920_0 -83038923#1_0 83038923#0_0" intLanes=":966097837_0_0 :966097837_1_0 :966097837_2_0 :966097837_3_0 :966097837_4_0 :966097837_5_0 :966097837_6_0 :966097837_7_0 :966097837_8_0" shape="812.89,1472.28 818.67,1469.30 819.31,1467.28 816.34,1461.50 808.98,1464.26 810.40,1470.61">
+ <request index="0" response="000000000" foes="100001000" cont="0"/>
+ <request index="1" response="011000000" foes="011101000" cont="0"/>
+ <request index="2" response="010010000" foes="010010000" cont="0"/>
+ <request index="3" response="000000011" foes="110000011" cont="0"/>
+ <request index="4" response="000000000" foes="010000100" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000001001" foes="000001001" cont="0"/>
+ </junction>
+ <junction id="966097869" type="priority" x="746.66" y="1456.35" incLanes="-83038923#0_0 -130443630#2_0 130443630#1_0" intLanes=":966097869_0_0 :966097869_1_0 :966097869_2_0 :966097869_3_0 :966097869_4_0 :966097869_9_0 :966097869_6_0 :966097869_10_0 :966097869_11_0" shape="750.88,1460.30 751.88,1453.88 750.56,1452.16 744.13,1451.21 742.75,1460.61 749.18,1461.55">
+ <request index="0" response="000010000" foes="100010000" cont="0"/>
+ <request index="1" response="011010000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000000" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="1"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="1"/>
+ <request index="8" response="000010001" foes="000010001" cont="1"/>
+ </junction>
+ <junction id="966132112" type="priority" x="1203.25" y="1574.78" incLanes="83042949_0 37771902#1_0" intLanes=":966132112_0_0 :966132112_1_0" shape="1206.68,1574.89 1205.28,1572.01 1203.17,1571.26 1200.35,1572.78 1199.73,1574.78 1201.17,1577.63">
+ <request index="0" response="10" foes="10" cont="0"/>
+ <request index="1" response="00" foes="01" cont="0"/>
+ </junction>
+ <junction id="966132131" type="priority" x="1317.22" y="1386.16" incLanes="58770837#0_0" intLanes=":966132131_0_0 :966132131_1_0" shape="1317.29,1389.66 1320.11,1388.14 1317.21,1382.70 1314.38,1384.19 1313.72,1386.26 1315.26,1389.06">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="966193793" type="right_before_left" x="1418.55" y="1290.24" incLanes="83051424_0 83051480#0_0 -83051480#1_0" intLanes=":966193793_0_0 :966193793_1_0 :966193793_2_0 :966193793_3_0 :966193793_4_0 :966193793_5_0 :966193793_6_0 :966193793_7_0 :966193793_8_0" shape="1415.29,1295.03 1421.79,1295.04 1423.29,1293.56 1423.39,1287.06 1413.89,1286.92 1413.79,1293.42">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="966193796" type="priority" x="1269.58" y="1019.10" incLanes="83051420_0 37772595#2_0" intLanes=":966193796_0_0 :966193796_4_0 :966193796_2_0 :966193796_3_0" shape="1268.14,1023.48 1273.95,1020.56 1274.45,1018.22 1272.89,1015.42 1264.59,1020.10 1266.17,1022.88">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="966193808" type="priority" x="1303.82" y="1087.19" incLanes="83051417_0 -83051436#0_0 -83051420_0 24573937_0" intLanes=":966193808_0_0 :966193808_1_0 :966193808_2_0 :966193808_3_0 :966193808_4_0 :966193808_5_0 :966193808_6_0 :966193808_7_0 :966193808_8_0 :966193808_9_0 :966193808_10_0 :966193808_16_0 :966193808_12_0 :966193808_13_0 :966193808_17_0 :966193808_18_0" shape="1303.94,1093.16 1309.32,1089.51 1309.79,1087.53 1306.57,1081.88 1304.51,1081.33 1298.71,1084.25 1298 [...]
+ <request index="0" response="0000010000000000" foes="1000010000100000" cont="0"/>
+ <request index="1" response="0111010000000000" foes="0111110001100000" cont="0"/>
+ <request index="2" response="0110001100000000" foes="0110001111100000" cont="0"/>
+ <request index="3" response="0100001000010000" foes="0100001000010000" cont="0"/>
+ <request index="4" response="0100001000000000" foes="0100001000001000" cont="0"/>
+ <request index="5" response="0100011000000111" foes="1100011000000111" cont="0"/>
+ <request index="6" response="0011011000000110" foes="0011111000000110" cont="0"/>
+ <request index="7" response="0010000100000100" foes="0010000100000100" cont="0"/>
+ <request index="8" response="0000000000000000" foes="0010000010000100" cont="0"/>
+ <request index="9" response="0000000000000000" foes="0110000001111100" cont="0"/>
+ <request index="10" response="0000000000000000" foes="1110000001100011" cont="0"/>
+ <request index="11" response="0001000001000010" foes="0001000001000010" cont="1"/>
+ <request index="12" response="0000000000000000" foes="0000100001000010" cont="0"/>
+ <request index="13" response="0000011100000000" foes="0000011111000110" cont="0"/>
+ <request index="14" response="0000011000000000" foes="0000011000111110" cont="1"/>
+ <request index="15" response="0000010000100001" foes="0000010000100001" cont="1"/>
+ </junction>
+ <junction id="966193812" type="right_before_left" x="1382.82" y="1159.31" incLanes="83051421#1_0 -83051417_0 -83051421#2_0" intLanes=":966193812_0_0 :966193812_1_0 :966193812_2_0 :966193812_3_0 :966193812_4_0 :966193812_5_0 :966193812_6_0 :966193812_7_0 :966193812_8_0" shape="1387.94,1156.59 1382.20,1153.55 1380.18,1154.15 1377.05,1159.85 1377.75,1161.94 1383.49,1164.99">
+ <request index="0" response="000000000" foes="100010000" cont="0"/>
+ <request index="1" response="011000000" foes="011110000" cont="0"/>
+ <request index="2" response="010001000" foes="010001000" cont="0"/>
+ <request index="3" response="000000000" foes="010000100" cont="0"/>
+ <request index="4" response="000000011" foes="110000011" cont="0"/>
+ <request index="5" response="001000010" foes="001000010" cont="0"/>
+ <request index="6" response="000000000" foes="000100010" cont="0"/>
+ <request index="7" response="000011000" foes="000011110" cont="0"/>
+ <request index="8" response="000010001" foes="000010001" cont="0"/>
+ </junction>
+ <junction id="966193814" type="priority" x="1418.53" y="1308.86" incLanes="83051483_0 -83051424_0" intLanes=":966193814_0_0 :966193814_4_0 :966193814_2_0 :966193814_5_0" shape="1415.30,1309.26 1421.78,1308.73 1415.28,1308.73">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="1"/>
+ </junction>
+ <junction id="966193857" type="priority" x="1461.49" y="1433.85" incLanes="-83051483_0 37771904#0_0" intLanes=":966193857_0_0 :966193857_4_0 :966193857_2_0 :966193857_3_0" shape="1466.43,1432.97 1464.89,1430.16 1462.87,1429.56 1457.15,1432.65 1456.57,1434.74 1458.11,1437.54">
+ <request index="0" response="0000" foes="1000" cont="0"/>
+ <request index="1" response="0100" foes="0100" cont="1"/>
+ <request index="2" response="0000" foes="0010" cont="0"/>
+ <request index="3" response="0001" foes="0001" cont="0"/>
+ </junction>
+ <junction id="974693391" type="priority" x="1342.23" y="1960.24" incLanes="-139118805#1_0 -139118805#1_1 37449253#5_0 139118805#0_0 139118805#0_1" intLanes=":974693391_0_0 :974693391_1_0 :974693391_2_0 :974693391_11_0 :974693391_4_0 :974693391_5_0 :974693391_6_0 :974693391_7_0 :974693391_8_0 :974693391_9_0 :974693391_12_0" shape="1341.52,1962.31 1344.35,1960.82 1347.70,1964.75 1341.56,1953.18 1339.36,1952.44 1336.62,1954.11 1336.08,1956.09 1342.25,1967.65">
+ <request index="0" response="00000000000" foes="01000100000" cont="0"/>
+ <request index="1" response="00000000000" foes="11001100000" cont="0"/>
+ <request index="2" response="00000000000" foes="11001100000" cont="0"/>
+ <request index="3" response="00110010000" foes="00110010000" cont="1"/>
+ <request index="4" response="00110000000" foes="00110001000" cont="0"/>
+ <request index="5" response="01110000111" foes="01110000111" cont="0"/>
+ <request index="6" response="01110000110" foes="11110000110" cont="0"/>
+ <request index="7" response="00000000000" foes="00001111000" cont="0"/>
+ <request index="8" response="00000000000" foes="00001111000" cont="0"/>
+ <request index="9" response="00000000111" foes="00001100111" cont="0"/>
+ <request index="10" response="00001000110" foes="00001000110" cont="1"/>
+ </junction>
+ <junction id="975934874" type="priority" x="771.01" y="2287.62" incLanes="139118804#3_0" intLanes=":975934874_0_0 :975934874_1_0" shape="769.92,2291.58 773.09,2291.16 774.07,2287.82 772.58,2284.99 766.92,2287.94 768.39,2290.78">
+ <request index="0" response="00" foes="00" cont="0"/>
+ <request index="1" response="00" foes="00" cont="0"/>
+ </junction>
+ <junction id="975934878" type="priority" x="1156.30" y="2269.44" incLanes="23182517#1_0 -23182517#2_0 83827202_0" intLanes=":975934878_0_0 :975934878_6_0 :975934878_2_0 :975934878_7_0 :975934878_4_0 :975934878_5_0" shape="1154.85,2273.71 1160.62,2270.72 1157.84,2265.27 1152.03,2268.18 1151.35,2270.24 1152.83,2273.07">
+ <request index="0" response="000000" foes="111000" cont="0"/>
+ <request index="1" response="100100" foes="100100" cont="1"/>
+ <request index="2" response="000000" foes="100010" cont="0"/>
+ <request index="3" response="010001" foes="010001" cont="1"/>
+ <request index="4" response="000001" foes="001001" cont="0"/>
+ <request index="5" response="000101" foes="000111" cont="0"/>
+ </junction>
+
+ <junction id=":1168929308_6_0" type="internal" x="776.25" y="986.34" incLanes=":1168929308_2_0 37638426#1_0" intLanes=":1168929308_3_0"/>
+ <junction id=":1168929383_9_0" type="internal" x="1145.13" y="1074.37" incLanes=":1168929383_2_0" intLanes=":1168929383_3_0 :1168929383_4_0 :1168929383_5_0 :1168929383_7_0"/>
+ <junction id=":1168929383_10_0" type="internal" x="1144.26" y="1070.72" incLanes=":1168929383_5_0 -149868584#5_1 154844470#0_0" intLanes=":1168929383_2_0 :1168929383_7_0"/>
+ <junction id=":1168929383_11_0" type="internal" x="1141.43" y="1072.33" incLanes=":1168929383_8_0 149868584#4_0 154844470#0_0" intLanes=":1168929383_0_0 :1168929383_3_0"/>
+ <junction id=":1168929398_4_0" type="internal" x="806.18" y="1037.07" incLanes=":1168929398_1_0 179692877#0_0" intLanes=":1168929398_2_0"/>
+ <junction id=":1168929398_5_0" type="internal" x="806.67" y="1034.17" incLanes=":1168929398_3_0 -179692877#1_0" intLanes=":1168929398_0_0"/>
+ <junction id=":1168929558_9_0" type="internal" x="1182.26" y="1084.96" incLanes=":1168929558_2_0 154844482_0 160587538#5_0" intLanes=":1168929558_3_0 :1168929558_6_0"/>
+ <junction id=":1168929558_10_0" type="internal" x="1182.28" y="1085.07" incLanes=":1168929558_8_0 -160587538#6_1 154844482_0" intLanes=":1168929558_1_0 :1168929558_5_0"/>
+ <junction id=":1168929600_7_0" type="internal" x="798.41" y="964.25" incLanes=":1168929600_5_0 122301994#0_0 122301994#0_1 122301994#0_2" intLanes=":1168929600_1_0 :1168929600_2_0 :1168929600_3_0"/>
+ <junction id=":1168929634_9_0" type="internal" x="1153.45" y="1031.21" incLanes=":1168929634_2_0 101272431_0 160587538#1_1" intLanes=":1168929634_4_0 :1168929634_8_0"/>
+ <junction id=":1168929634_10_0" type="internal" x="1153.48" y="1031.40" incLanes=":1168929634_5_0 -160587538#2_0 101272431_0" intLanes=":1168929634_0_0 :1168929634_6_0"/>
+ <junction id=":1168929652_9_0" type="internal" x="770.60" y="987.20" incLanes=":1168929652_5_0 -37638470#1_0 166576461#1_0" intLanes=":1168929652_1_0 :1168929652_6_0"/>
+ <junction id=":1168929652_10_0" type="internal" x="767.73" y="989.30" incLanes=":1168929652_7_0 37638470#0_0" intLanes=":1168929652_1_0 :1168929652_2_0 :1168929652_3_0 :1168929652_4_0"/>
+ <junction id=":1168929652_11_0" type="internal" x="763.42" y="988.34" incLanes=":1168929652_8_0 166576461#1_0 37638470#0_0" intLanes=":1168929652_0_0 :1168929652_4_0"/>
+ <junction id=":1168929657_9_0" type="internal" x="1196.30" y="1041.30" incLanes=":1168929657_2_0 -149868584#3_0 154844487#0_0" intLanes=":1168929657_3_0 :1168929657_6_0"/>
+ <junction id=":1168929657_10_0" type="internal" x="1192.06" y="1039.36" incLanes=":1168929657_5_0" intLanes=":1168929657_1_0 :1168929657_6_0 :1168929657_7_0 :1168929657_8_0"/>
+ <junction id=":1168929657_11_0" type="internal" x="1195.05" y="1041.71" incLanes=":1168929657_7_0 149868584#2_0 149868584#2_1" intLanes=":1168929657_0_0 :1168929657_1_0 :1168929657_4_0 :1168929657_5_0"/>
+ <junction id=":1168929657_12_0" type="internal" x="1193.24" y="1043.02" incLanes=":1168929657_8_0 149868584#2_1 154844487#0_0" intLanes=":1168929657_1_0 :1168929657_5_0"/>
+ <junction id=":1212960877_9_0" type="internal" x="824.82" y="1628.57" incLanes=":1212960877_1_0 -108329425#3_0" intLanes=":1212960877_4_0 :1212960877_5_0 :1212960877_6_0 :1212960877_7_0"/>
+ <junction id=":1212960877_10_0" type="internal" x="824.38" y="1631.33" incLanes=":1212960877_2_0 -105254618_0 -108329425#3_0" intLanes=":1212960877_3_0 :1212960877_6_0"/>
+ <junction id=":1212960877_11_0" type="internal" x="822.52" y="1627.68" incLanes=":1212960877_8_0 -105254618_0 108329425#2_0" intLanes=":1212960877_0_0 :1212960877_4_0"/>
+ <junction id=":1212960879_9_0" type="internal" x="829.75" y="1638.20" incLanes=":1212960879_1_0 -108329425#1_0" intLanes=":1212960879_4_0 :1212960879_5_0 :1212960879_6_0 :1212960879_7_0"/>
+ <junction id=":1212960879_10_0" type="internal" x="830.19" y="1642.66" incLanes=":1212960879_2_0 -105254616#0_0 -108329425#1_0" intLanes=":1212960879_3_0 :1212960879_7_0"/>
+ <junction id=":1212960879_11_0" type="internal" x="829.64" y="1639.77" incLanes=":1212960879_8_0 -105254616#0_0 108329425#0_0" intLanes=":1212960879_0_0 :1212960879_4_0"/>
+ <junction id=":1213368991_9_0" type="internal" x="734.07" y="1660.70" incLanes=":1213368991_2_0 -105283535#1_0 37942667#2_0" intLanes=":1213368991_3_0 :1213368991_6_0"/>
+ <junction id=":1213368991_10_0" type="internal" x="731.04" y="1660.35" incLanes=":1213368991_8_0 105283535#0_0 37942667#2_0" intLanes=":1213368991_1_0 :1213368991_5_0"/>
+ <junction id=":1224074532_9_0" type="internal" x="685.61" y="1108.59" incLanes=":1224074532_1_0 149819227#2_0" intLanes=":1224074532_4_0 :1224074532_5_0 :1224074532_6_0 :1224074532_7_0"/>
+ <junction id=":1224074532_10_0" type="internal" x="689.74" y="1108.43" incLanes=":1224074532_2_0 -149819220_0 149819227#2_0" intLanes=":1224074532_3_0 :1224074532_7_0"/>
+ <junction id=":1224074532_11_0" type="internal" x="684.40" y="1110.85" incLanes=":1224074532_8_0 -149819220_0 -149819227#3_0" intLanes=":1224074532_0_0 :1224074532_4_0"/>
+ <junction id=":1224074533_4_0" type="internal" x="787.10" y="1087.01" incLanes=":1224074533_1_0 37973571#0_0" intLanes=":1224074533_2_0"/>
+ <junction id=":1224074534_9_0" type="internal" x="778.88" y="1086.40" incLanes=":1224074534_1_0 179917803#0_0" intLanes=":1224074534_4_0 :1224074534_5_0 :1224074534_6_0 :1224074534_7_0"/>
+ <junction id=":1224074534_10_0" type="internal" x="779.97" y="1087.81" incLanes=":1224074534_2_0 -166576461#0_0 179917803#0_0" intLanes=":1224074534_3_0 :1224074534_7_0"/>
+ <junction id=":1224074534_11_0" type="internal" x="777.62" y="1088.23" incLanes=":1224074534_8_0 -166576461#0_0 -179917803#1_0" intLanes=":1224074534_0_0 :1224074534_4_0"/>
+ <junction id=":1224074535_9_0" type="internal" x="660.45" y="1049.82" incLanes=":1224074535_5_0 -149819232#1_0 149819220_0" intLanes=":1224074535_1_0 :1224074535_6_0"/>
+ <junction id=":1224074535_10_0" type="internal" x="658.10" y="1051.86" incLanes=":1224074535_7_0 149819232#0_0" intLanes=":1224074535_1_0 :1224074535_2_0 :1224074535_3_0 :1224074535_4_0"/>
+ <junction id=":1224074535_11_0" type="internal" x="653.96" y="1050.83" incLanes=":1224074535_8_0 149819220_0 149819232#0_0" intLanes=":1224074535_0_0 :1224074535_4_0"/>
+ <junction id=":1224080660_4_0" type="internal" x="661.32" y="1328.28" incLanes=":1224080660_1_0 37973568#0_0" intLanes=":1224080660_2_0"/>
+ <junction id=":1224080669_9_0" type="internal" x="525.80" y="1030.88" incLanes=":1224080669_5_0 -37638470#2_0 160584984_0" intLanes=":1224080669_1_0 :1224080669_6_0"/>
+ <junction id=":1224080669_10_0" type="internal" x="523.57" y="1032.96" incLanes=":1224080669_7_0 37638470#1_0" intLanes=":1224080669_1_0 :1224080669_2_0 :1224080669_3_0 :1224080669_4_0"/>
+ <junction id=":1224080669_11_0" type="internal" x="519.42" y="1032.03" incLanes=":1224080669_8_0 160584984_0 37638470#1_0" intLanes=":1224080669_0_0 :1224080669_4_0"/>
+ <junction id=":1224091971_9_0" type="internal" x="623.89" y="1055.52" incLanes=":1224091971_5_0 -106367427#0_0 -149819232#3_0" intLanes=":1224091971_1_0 :1224091971_6_0"/>
+ <junction id=":1224091971_10_0" type="internal" x="621.56" y="1057.56" incLanes=":1224091971_7_0 149819232#2_0" intLanes=":1224091971_1_0 :1224091971_2_0 :1224091971_3_0 :1224091971_4_0"/>
+ <junction id=":1224091971_11_0" type="internal" x="617.43" y="1056.53" incLanes=":1224091971_8_0 -106367427#0_0 149819232#2_0" intLanes=":1224091971_0_0 :1224091971_4_0"/>
+ <junction id=":1228499957_16_0" type="internal" x="628.32" y="2164.07" incLanes=":1228499957_2_0 107066313#4_0" intLanes=":1228499957_5_0 :1228499957_6_0 :1228499957_7_0 :1228499957_8_0 :1228499957_9_0 :1228499957_13_0 :1228499957_14_0"/>
+ <junction id=":1228499957_17_0" type="internal" x="629.39" y="2168.75" incLanes=":1228499957_3_0 -106836308#2_0 106836308#1_0 107066313#4_0" intLanes=":1228499957_4_0 :1228499957_9_0 :1228499957_14_0"/>
+ <junction id=":1228499957_18_0" type="internal" x="625.10" y="2165.16" incLanes=":1228499957_10_0 -107066313#5_0" intLanes=":1228499957_0_0 :1228499957_1_0 :1228499957_5_0 :1228499957_6_0 :1228499957_13_0 :1228499957_14_0 :1228499957_15_0"/>
+ <junction id=":1228499957_19_0" type="internal" x="624.09" y="2160.50" incLanes=":1228499957_11_0 -106836308#2_0 -107066313#5_0 106836308#1_0" intLanes=":1228499957_1_0 :1228499957_6_0 :1228499957_12_0"/>
+ <junction id=":1228499992_9_0" type="internal" x="570.87" y="2072.27" incLanes=":1228499992_1_0 107066313#3_0" intLanes=":1228499992_3_0 :1228499992_4_0 :1228499992_7_0 :1228499992_8_0"/>
+ <junction id=":1228499992_10_0" type="internal" x="570.33" y="2074.48" incLanes=":1228499992_2_0 106836317#0_0 107066313#3_0" intLanes=":1228499992_4_0 :1228499992_8_0"/>
+ <junction id=":1228499992_11_0" type="internal" x="567.35" y="2069.78" incLanes=":1228499992_5_0 -107066313#4_0 106836317#0_0" intLanes=":1228499992_0_0 :1228499992_6_0"/>
+ <junction id=":1231011197_6_0" type="internal" x="713.66" y="2044.27" incLanes=":1231011197_1_0 -130443629#7_0 106836317#3_0" intLanes=":1231011197_2_0 :1231011197_5_0"/>
+ <junction id=":1231011197_7_0" type="internal" x="713.27" y="2041.39" incLanes=":1231011197_3_0 106836317#3_0 130443629#6_0" intLanes=":1231011197_0_0 :1231011197_4_0"/>
+ <junction id=":1232172714_9_0" type="internal" x="660.57" y="1677.90" incLanes=":1232172714_1_0 38027665#2_0" intLanes=":1232172714_4_0 :1232172714_5_0 :1232172714_6_0 :1232172714_7_0"/>
+ <junction id=":1232172714_10_0" type="internal" x="664.43" y="1680.13" incLanes=":1232172714_2_0 107167209#1_0 38027665#2_0" intLanes=":1232172714_3_0 :1232172714_7_0"/>
+ <junction id=":1232172714_11_0" type="internal" x="658.51" y="1679.33" incLanes=":1232172714_8_0 -38027665#3_0 107167209#1_0" intLanes=":1232172714_0_0 :1232172714_4_0"/>
+ <junction id=":1232172723_9_0" type="internal" x="673.11" y="1626.95" incLanes=":1232172723_2_0 -107167209#0_0 -43684741#2_0" intLanes=":1232172723_3_0 :1232172723_7_0"/>
+ <junction id=":1232172723_10_0" type="internal" x="669.68" y="1626.50" incLanes=":1232172723_4_0 43684741#1_0" intLanes=":1232172723_0_0 :1232172723_1_0 :1232172723_7_0 :1232172723_8_0"/>
+ <junction id=":1232172723_11_0" type="internal" x="667.37" y="1622.80" incLanes=":1232172723_5_0 -107167209#0_0 43684741#1_0" intLanes=":1232172723_1_0 :1232172723_6_0"/>
+ <junction id=":1239242543_16_0" type="internal" x="664.20" y="1650.72" incLanes=":1239242543_2_0 107028581#1_0" intLanes=":1239242543_5_0 :1239242543_6_0 :1239242543_7_0 :1239242543_8_0 :1239242543_9_0 :1239242543_13_0 :1239242543_14_0"/>
+ <junction id=":1239242543_17_0" type="internal" x="668.15" y="1652.85" incLanes=":1239242543_3_0 -107167209#1_0 107028581#1_0 107167209#0_0" intLanes=":1239242543_4_0 :1239242543_9_0 :1239242543_14_0"/>
+ <junction id=":1239242543_18_0" type="internal" x="665.84" y="1654.24" incLanes=":1239242543_10_0 -107028581#2_0" intLanes=":1239242543_0_0 :1239242543_1_0 :1239242543_5_0 :1239242543_6_0 :1239242543_13_0 :1239242543_14_0 :1239242543_15_0"/>
+ <junction id=":1239242543_19_0" type="internal" x="661.89" y="1652.11" incLanes=":1239242543_11_0 -107028581#2_0 -107167209#1_0 107167209#0_0" intLanes=":1239242543_1_0 :1239242543_6_0 :1239242543_12_0"/>
+ <junction id=":1239242544_9_0" type="internal" x="642.15" y="2057.49" incLanes=":1239242544_1_0 107166846#4_0" intLanes=":1239242544_3_0 :1239242544_4_0 :1239242544_7_0 :1239242544_8_0"/>
+ <junction id=":1239242544_10_0" type="internal" x="640.81" y="2059.04" incLanes=":1239242544_2_0 106836317#1_0 107166846#4_0" intLanes=":1239242544_4_0 :1239242544_8_0"/>
+ <junction id=":1239242544_11_0" type="internal" x="640.10" y="2056.03" incLanes=":1239242544_5_0 -107166846#5_0 106836317#1_0" intLanes=":1239242544_0_0 :1239242544_6_0"/>
+ <junction id=":1239243628_16_0" type="internal" x="653.51" y="1124.90" incLanes=":1239243628_6_0 149819227#0_0" intLanes=":1239243628_1_0 :1239243628_2_0 :1239243628_9_0 :1239243628_10_0 :1239243628_11_0 :1239243628_12_0 :1239243628_13_0"/>
+ <junction id=":1239243628_17_0" type="internal" x="658.06" y="1124.43" incLanes=":1239243628_7_0 -106367427#1_0 106367427#0_0 149819227#0_0" intLanes=":1239243628_2_0 :1239243628_8_0 :1239243628_13_0"/>
+ <junction id=":1239243628_18_0" type="internal" x="656.95" y="1126.85" incLanes=":1239243628_14_0 -149819227#1_0" intLanes=":1239243628_1_0 :1239243628_2_0 :1239243628_3_0 :1239243628_4_0 :1239243628_5_0 :1239243628_9_0 :1239243628_10_0"/>
+ <junction id=":1239243628_19_0" type="internal" x="652.45" y="1127.30" incLanes=":1239243628_15_0 -106367427#1_0 -149819227#1_0 106367427#0_0" intLanes=":1239243628_0_0 :1239243628_5_0 :1239243628_10_0"/>
+ <junction id=":1243159115_5_0" type="internal" x="1089.60" y="2105.57" incLanes=":1243159115_4_0 144874010#0_1" intLanes=":1243159115_2_0"/>
+ <junction id=":1243159116_11_0" type="internal" x="1079.98" y="2098.81" incLanes=":1243159116_3_0 -108329426#0_0 81523330#3_0 81523330#3_1" intLanes=":1243159116_4_0 :1243159116_8_0 :1243159116_9_0"/>
+ <junction id=":1243159116_12_0" type="internal" x="1082.63" y="2097.41" incLanes=":1243159116_10_0 -108329426#0_0 -81523330#4_0 -81523330#4_1" intLanes=":1243159116_0_0 :1243159116_1_0 :1243159116_5_0"/>
+ <junction id=":1244292210_4_0" type="internal" x="1165.95" y="1742.02" incLanes=":1244292210_1_0 -166625256#1_0" intLanes=":1244292210_2_0"/>
+ <junction id=":1244292210_5_0" type="internal" x="1165.25" y="1744.18" incLanes=":1244292210_3_0 166625256#0_0" intLanes=":1244292210_0_0"/>
+ <junction id=":1244292219_4_0" type="internal" x="1083.14" y="1786.13" incLanes=":1244292219_1_0 -166625256#0_0" intLanes=":1244292219_2_0"/>
+ <junction id=":1244292219_5_0" type="internal" x="1080.99" y="1785.44" incLanes=":1244292219_3_0 166625256#1_0" intLanes=":1244292219_0_0"/>
+ <junction id=":1246731455_6_0" type="internal" x="1152.46" y="1084.84" incLanes=":1246731455_4_0 154844461#2_0" intLanes=":1246731455_0_0 :1246731455_1_0"/>
+ <junction id=":1246731455_7_0" type="internal" x="1150.14" y="1081.59" incLanes=":1246731455_5_0 154844461#2_0" intLanes=":1246731455_1_0"/>
+ <junction id=":1246731460_4_0" type="internal" x="1173.32" y="1091.99" incLanes=":1246731460_1_0 154844461#0_0" intLanes=":1246731460_2_0"/>
+ <junction id=":1246731470_5_0" type="internal" x="1204.94" y="1047.07" incLanes=":1246731470_4_0 170594822#2_0" intLanes=":1246731470_0_0"/>
+ <junction id=":1246731482_4_0" type="internal" x="1191.02" y="1071.24" incLanes=":1246731482_3_0 154844489#0_0" intLanes=":1246731482_0_0"/>
+ <junction id=":1246731504_4_0" type="internal" x="1144.02" y="1033.80" incLanes=":1246731504_1_0 154844465#3_0" intLanes=":1246731504_2_0"/>
+ <junction id=":1246731525_4_0" type="internal" x="1199.11" y="1050.20" incLanes=":1246731525_3_0 154844462_0" intLanes=":1246731525_0_0"/>
+ <junction id=":1246731541_4_0" type="internal" x="1197.89" y="1029.97" incLanes=":1246731541_1_0 81547611_0" intLanes=":1246731541_2_0"/>
+ <junction id=":1246731544_4_0" type="internal" x="1177.52" y="1028.11" incLanes=":1246731544_1_0 154844463_0" intLanes=":1246731544_2_0 :1246731544_3_0"/>
+ <junction id=":1246731544_5_0" type="internal" x="1175.72" y="1028.48" incLanes=":1246731544_2_0 108733422_0" intLanes=":1246731544_1_0"/>
+ <junction id=":1246731574_4_0" type="internal" x="1176.53" y="1029.53" incLanes=":1246731574_1_0 154844479_0" intLanes=":1246731574_2_0"/>
+ <junction id=":1246731576_4_0" type="internal" x="1132.72" y="1085.58" incLanes=":1246731576_1_0 111863125#0_0" intLanes=":1246731576_2_0"/>
+ <junction id=":1246731601_4_0" type="internal" x="1133.69" y="1061.40" incLanes=":1246731601_1_0 111549913#5_0" intLanes=":1246731601_2_0"/>
+ <junction id=":1246731620_5_0" type="internal" x="1163.86" y="1023.28" incLanes=":1246731620_1_0 81124943#1_0" intLanes=":1246731620_2_0"/>
+ <junction id=":1246731627_4_0" type="internal" x="1140.30" y="1054.56" incLanes=":1246731627_1_0 154844465#1_0" intLanes=":1246731627_2_0"/>
+ <junction id=":1246731647_5_0" type="internal" x="1181.50" y="1097.94" incLanes=":1246731647_4_0 154844485#0_0" intLanes=":1246731647_0_0"/>
+ <junction id=":1252777720_8_0" type="internal" x="776.71" y="2259.25" incLanes=":1252777720_2_0 109438231#1_0 81523330#0_0 81523330#0_1" intLanes=":1252777720_3_0 :1252777720_5_0 :1252777720_6_0"/>
+ <junction id=":1252777720_9_0" type="internal" x="776.76" y="2259.05" incLanes=":1252777720_7_0 -81523330#1_0 -81523330#1_1 109438231#1_0" intLanes=":1252777720_0_0 :1252777720_1_0 :1252777720_4_0"/>
+ <junction id=":1257054077_4_0" type="internal" x="1079.16" y="2082.51" incLanes=":1257054077_1_0 -109912567#0_0" intLanes=":1257054077_2_0"/>
+ <junction id=":1257054077_5_0" type="internal" x="1082.11" y="2080.99" incLanes=":1257054077_3_0 109912572#4_0" intLanes=":1257054077_0_0"/>
+ <junction id=":1257054172_18_0" type="internal" x="1349.89" y="1950.57" incLanes=":1257054172_7_0 139118805#1_0" intLanes=":1257054172_1_0 :1257054172_2_0 :1257054172_10_0 :1257054172_11_0 :1257054172_12_0 :1257054172_13_0 :1257054172_14_0 :1257054172_15_0"/>
+ <junction id=":1257054172_19_0" type="internal" x="1356.27" y="1952.79" incLanes=":1257054172_8_0 -38319546#3_0 139118805#1_0 139118805#1_1 38319546#2_0" intLanes=":1257054172_2_0 :1257054172_9_0 :1257054172_14_0 :1257054172_15_0"/>
+ <junction id=":1257054172_20_0" type="internal" x="1350.80" y="1955.69" incLanes=":1257054172_17_0 -139118805#2_0 -139118805#2_1 -38319546#3_0 38319546#2_0" intLanes=":1257054172_0_0 :1257054172_5_0 :1257054172_6_0 :1257054172_11_0"/>
+ <junction id=":1257054205_16_0" type="internal" x="1359.12" y="1958.46" incLanes=":1257054205_7_0 -129780022#1_0 -38319546#2_0 38319546#1_0" intLanes=":1257054205_2_0 :1257054205_8_0 :1257054205_13_0"/>
+ <junction id=":1257054205_17_0" type="internal" x="1358.36" y="1960.73" incLanes=":1257054205_14_0 129780022#0_0" intLanes=":1257054205_1_0 :1257054205_2_0 :1257054205_3_0 :1257054205_4_0 :1257054205_5_0 :1257054205_9_0 :1257054205_10_0"/>
+ <junction id=":1257054205_18_0" type="internal" x="1353.54" y="1961.40" incLanes=":1257054205_15_0 -38319546#2_0 129780022#0_0 38319546#1_0" intLanes=":1257054205_0_0 :1257054205_5_0 :1257054205_10_0"/>
+ <junction id=":1257054208_16_0" type="internal" x="1067.58" y="2086.71" incLanes=":1257054208_2_0 -108329426#2_0" intLanes=":1257054208_5_0 :1257054208_6_0 :1257054208_7_0 :1257054208_8_0 :1257054208_9_0 :1257054208_13_0 :1257054208_14_0"/>
+ <junction id=":1257054208_17_0" type="internal" x="1065.70" y="2088.12" incLanes=":1257054208_3_0 -108329426#2_0 -109912567#1_0 109912567#0_0" intLanes=":1257054208_4_0 :1257054208_9_0 :1257054208_14_0"/>
+ <junction id=":1257054208_18_0" type="internal" x="1065.72" y="2090.38" incLanes=":1257054208_10_0 108329426#1_0" intLanes=":1257054208_0_0 :1257054208_1_0 :1257054208_5_0 :1257054208_6_0 :1257054208_13_0 :1257054208_14_0 :1257054208_15_0"/>
+ <junction id=":1257054208_19_0" type="internal" x="1065.27" y="2085.89" incLanes=":1257054208_11_0 -109912567#1_0 108329426#1_0 109912567#0_0" intLanes=":1257054208_1_0 :1257054208_6_0 :1257054208_12_0"/>
+ <junction id=":1261880295_5_0" type="internal" x="1294.40" y="1668.88" incLanes=":1261880295_1_0 151167658#2_0" intLanes=":1261880295_2_0 :1261880295_3_0"/>
+ <junction id=":1263725264_18_0" type="internal" x="1076.77" y="2100.52" incLanes=":1263725264_8_0 -108329427#1_0 108329427#0_0 81523330#2_0 81523330#2_1" intLanes=":1263725264_2_0 :1263725264_9_0 :1263725264_14_0 :1263725264_15_0"/>
+ <junction id=":1263725264_19_0" type="internal" x="1076.01" y="2100.85" incLanes=":1263725264_17_0 -108329427#1_0 -81523330#3_0 -81523330#3_1 108329427#0_0" intLanes=":1263725264_0_0 :1263725264_5_0 :1263725264_6_0 :1263725264_11_0"/>
+ <junction id=":1263725266_16_0" type="internal" x="1080.54" y="2105.59" incLanes=":1263725266_2_0 108329427#1_0" intLanes=":1263725266_5_0 :1263725266_6_0 :1263725266_7_0 :1263725266_8_0 :1263725266_9_0 :1263725266_13_0 :1263725266_14_0"/>
+ <junction id=":1263725266_17_0" type="internal" x="1079.79" y="2108.13" incLanes=":1263725266_3_0 -129780022#4_0 108329427#1_0 129780022#3_0" intLanes=":1263725266_4_0 :1263725266_9_0 :1263725266_14_0"/>
+ <junction id=":1263725266_18_0" type="internal" x="1080.11" y="2108.80" incLanes=":1263725266_11_0 -108329427#2_0 -129780022#4_0 129780022#3_0" intLanes=":1263725266_1_0 :1263725266_6_0 :1263725266_12_0"/>
+ <junction id=":1323557968_6_0" type="internal" x="797.18" y="1578.22" incLanes=":1323557968_2_0 -108329425#4_0" intLanes=":1323557968_3_0"/>
+ <junction id=":1323557968_7_0" type="internal" x="794.90" y="1577.38" incLanes=":1323557968_4_0 108329425#3_0" intLanes=":1323557968_0_0 :1323557968_1_0"/>
+ <junction id=":1323557968_8_0" type="internal" x="795.85" y="1575.63" incLanes=":1323557968_5_0 108329425#3_0" intLanes=":1323557968_1_0"/>
+ <junction id=":1367855907_4_0" type="internal" x="1400.35" y="2204.38" incLanes=":1367855907_1_0 122394853_0" intLanes=":1367855907_2_0"/>
+ <junction id=":1367855907_5_0" type="internal" x="1401.20" y="2205.24" incLanes=":1367855907_3_0 -122394834_0" intLanes=":1367855907_0_0"/>
+ <junction id=":1367855909_16_0" type="internal" x="1406.83" y="2219.08" incLanes=":1367855909_6_0 122394845_0" intLanes=":1367855909_1_0 :1367855909_2_0 :1367855909_9_0 :1367855909_10_0 :1367855909_11_0 :1367855909_12_0 :1367855909_13_0"/>
+ <junction id=":1367855909_17_0" type="internal" x="1411.21" y="2218.57" incLanes=":1367855909_7_0 122394834_0 122394845_0 122394860_0" intLanes=":1367855909_2_0 :1367855909_8_0 :1367855909_13_0"/>
+ <junction id=":1367855909_18_0" type="internal" x="1410.47" y="2220.84" incLanes=":1367855909_14_0 -122394841#0_0" intLanes=":1367855909_1_0 :1367855909_2_0 :1367855909_3_0 :1367855909_4_0 :1367855909_5_0 :1367855909_9_0 :1367855909_10_0"/>
+ <junction id=":1367855909_19_0" type="internal" x="1408.96" y="2219.39" incLanes=":1367855909_15_0 -122394841#0_0 122394834_0 122394860_0" intLanes=":1367855909_0_0 :1367855909_5_0 :1367855909_10_0"/>
+ <junction id=":1367855910_4_0" type="internal" x="1416.77" y="2236.02" incLanes=":1367855910_1_0 122394859_0" intLanes=":1367855910_2_0"/>
+ <junction id=":1367855910_5_0" type="internal" x="1416.59" y="2234.91" incLanes=":1367855910_3_0 -122394860_0" intLanes=":1367855910_0_0"/>
+ <junction id=":1367855925_9_0" type="internal" x="1382.59" y="2169.89" incLanes=":1367855925_5_0 -23182484#2_0 122394833#5_0" intLanes=":1367855925_1_0 :1367855925_6_0"/>
+ <junction id=":1367855925_10_0" type="internal" x="1381.98" y="2172.08" incLanes=":1367855925_7_0 23182484#1_0" intLanes=":1367855925_1_0 :1367855925_2_0 :1367855925_3_0 :1367855925_4_0"/>
+ <junction id=":1367855925_11_0" type="internal" x="1377.34" y="2172.67" incLanes=":1367855925_8_0 122394833#5_0 23182484#1_0" intLanes=":1367855925_0_0 :1367855925_4_0"/>
+ <junction id=":1369844757_16_0" type="internal" x="1448.85" y="2197.25" incLanes=":1369844757_6_0 122394841#2_0" intLanes=":1369844757_1_0 :1369844757_2_0 :1369844757_9_0 :1369844757_10_0 :1369844757_11_0 :1369844757_12_0 :1369844757_13_0"/>
+ <junction id=":1369844757_17_0" type="internal" x="1453.32" y="2196.82" incLanes=":1369844757_7_0 -122641559#1_0 122394841#2_0 122641559#0_0" intLanes=":1369844757_2_0 :1369844757_8_0 :1369844757_13_0"/>
+ <junction id=":1369844757_18_0" type="internal" x="1452.23" y="2199.22" incLanes=":1369844757_14_0 -122394841#3_0" intLanes=":1369844757_1_0 :1369844757_2_0 :1369844757_3_0 :1369844757_4_0 :1369844757_5_0 :1369844757_9_0 :1369844757_10_0"/>
+ <junction id=":1369844757_19_0" type="internal" x="1447.79" y="2199.65" incLanes=":1369844757_15_0 -122394841#3_0 -122641559#1_0 122641559#0_0" intLanes=":1369844757_0_0 :1369844757_5_0 :1369844757_10_0"/>
+ <junction id=":1369844762_16_0" type="internal" x="1436.22" y="2203.69" incLanes=":1369844762_6_0 122394841#1_0" intLanes=":1369844762_1_0 :1369844762_2_0 :1369844762_9_0 :1369844762_10_0 :1369844762_11_0 :1369844762_12_0 :1369844762_13_0"/>
+ <junction id=":1369844762_17_0" type="internal" x="1440.69" y="2203.23" incLanes=":1369844762_7_0 -122641556#1_0 122394841#1_0 122641556#0_0" intLanes=":1369844762_2_0 :1369844762_8_0 :1369844762_13_0"/>
+ <junction id=":1369844762_18_0" type="internal" x="1439.63" y="2205.64" incLanes=":1369844762_14_0 -122394841#2_0" intLanes=":1369844762_1_0 :1369844762_2_0 :1369844762_3_0 :1369844762_4_0 :1369844762_5_0 :1369844762_9_0 :1369844762_10_0"/>
+ <junction id=":1369844762_19_0" type="internal" x="1435.14" y="2206.09" incLanes=":1369844762_15_0 -122394841#2_0 -122641556#1_0 122641556#0_0" intLanes=":1369844762_0_0 :1369844762_5_0 :1369844762_10_0"/>
+ <junction id=":1369844772_16_0" type="internal" x="1422.50" y="2210.82" incLanes=":1369844772_6_0 122394841#0_0" intLanes=":1369844772_1_0 :1369844772_2_0 :1369844772_9_0 :1369844772_10_0 :1369844772_11_0 :1369844772_12_0 :1369844772_13_0"/>
+ <junction id=":1369844772_17_0" type="internal" x="1426.96" y="2210.36" incLanes=":1369844772_7_0 -122641560#1_0 122394841#0_0 122641560#0_0" intLanes=":1369844772_2_0 :1369844772_8_0 :1369844772_13_0"/>
+ <junction id=":1369844772_18_0" type="internal" x="1425.76" y="2212.85" incLanes=":1369844772_14_0 -122394841#1_0" intLanes=":1369844772_1_0 :1369844772_2_0 :1369844772_3_0 :1369844772_4_0 :1369844772_5_0 :1369844772_9_0 :1369844772_10_0"/>
+ <junction id=":1369844772_19_0" type="internal" x="1421.30" y="2213.31" incLanes=":1369844772_15_0 -122394841#1_0 -122641560#1_0 122641560#0_0" intLanes=":1369844772_0_0 :1369844772_5_0 :1369844772_10_0"/>
+ <junction id=":13929747_9_0" type="internal" x="1346.49" y="1965.13" incLanes=":13929747_2_0 -129780022#2_0 37449253#6_0" intLanes=":13929747_3_0 :13929747_6_0"/>
+ <junction id=":13929747_10_0" type="internal" x="1345.87" y="1967.34" incLanes=":13929747_7_0 129780022#1_0" intLanes=":13929747_0_0 :13929747_1_0 :13929747_4_0 :13929747_5_0"/>
+ <junction id=":13929747_11_0" type="internal" x="1343.91" y="1966.51" incLanes=":13929747_8_0 129780022#1_0 37449253#6_0" intLanes=":13929747_1_0 :13929747_5_0"/>
+ <junction id=":13929775_11_0" type="internal" x="939.62" y="1187.03" incLanes=":13929775_3_0 -149868584#7_0 -149868584#7_1 101272424#5_0" intLanes=":13929775_4_0 :13929775_7_0 :13929775_8_0"/>
+ <junction id=":13929775_12_0" type="internal" x="935.84" y="1183.49" incLanes=":13929775_6_0 -149868584#7_0 -149868584#7_1" intLanes=":13929775_1_0 :13929775_2_0 :13929775_7_0 :13929775_8_0 :13929775_9_0 :13929775_10_0"/>
+ <junction id=":13929775_13_0" type="internal" x="938.49" y="1189.58" incLanes=":13929775_9_0 149868584#6_0 149868584#6_1" intLanes=":13929775_0_0 :13929775_1_0 :13929775_2_0 :13929775_5_0 :13929775_6_0"/>
+ <junction id=":13929775_14_0" type="internal" x="936.51" y="1188.81" incLanes=":13929775_10_0 101272424#5_0 149868584#6_0 149868584#6_1" intLanes=":13929775_1_0 :13929775_2_0 :13929775_6_0"/>
+ <junction id=":1457695393_16_0" type="internal" x="691.99" y="1871.61" incLanes=":1457695393_2_0 -130443629#8_0" intLanes=":1457695393_5_0 :1457695393_6_0 :1457695393_7_0 :1457695393_8_0 :1457695393_9_0 :1457695393_13_0 :1457695393_14_0"/>
+ <junction id=":1457695393_17_0" type="internal" x="690.90" y="1875.98" incLanes=":1457695393_3_0 -130443629#8_0 -59159262#1_0 59159262#0_0" intLanes=":1457695393_4_0 :1457695393_9_0 :1457695393_14_0"/>
+ <junction id=":1457695393_18_0" type="internal" x="688.87" y="1873.22" incLanes=":1457695393_10_0 130443629#7_0" intLanes=":1457695393_0_0 :1457695393_1_0 :1457695393_5_0 :1457695393_6_0 :1457695393_13_0 :1457695393_14_0 :1457695393_15_0"/>
+ <junction id=":1457695393_19_0" type="internal" x="689.99" y="1868.90" incLanes=":1457695393_11_0 -59159262#1_0 130443629#7_0 59159262#0_0" intLanes=":1457695393_1_0 :1457695393_6_0 :1457695393_12_0"/>
+ <junction id=":1474873133_4_0" type="internal" x="865.23" y="1729.38" incLanes=":1474873133_1_0 191176268_0" intLanes=":1474873133_2_0"/>
+ <junction id=":1474873133_5_0" type="internal" x="866.27" y="1732.08" incLanes=":1474873133_3_0 -191176266_0" intLanes=":1474873133_0_0"/>
+ <junction id=":1482088987_9_0" type="internal" x="760.40" y="1842.13" incLanes=":1482088987_1_0 59159262#3_0" intLanes=":1482088987_4_0 :1482088987_5_0 :1482088987_6_0 :1482088987_7_0"/>
+ <junction id=":1482088987_10_0" type="internal" x="765.71" y="1842.64" incLanes=":1482088987_2_0 134872478_0 59159262#3_0" intLanes=":1482088987_3_0 :1482088987_7_0"/>
+ <junction id=":1482088987_11_0" type="internal" x="764.42" y="1843.30" incLanes=":1482088987_8_0 -59159262#4_0 134872478_0" intLanes=":1482088987_0_0 :1482088987_4_0"/>
+ <junction id=":1545672852_4_0" type="internal" x="1276.72" y="2102.22" incLanes=":1545672852_1_0 -141191259#0_0" intLanes=":1545672852_2_0"/>
+ <junction id=":1545672852_5_0" type="internal" x="1278.66" y="2104.07" incLanes=":1545672852_3_0 141191259#5_0" intLanes=":1545672852_0_0"/>
+ <junction id=":1545672923_4_0" type="internal" x="1275.17" y="2125.48" incLanes=":1545672923_1_0 -141191255#0_0" intLanes=":1545672923_2_0"/>
+ <junction id=":1545672923_5_0" type="internal" x="1275.07" y="2124.84" incLanes=":1545672923_3_0 141191255#1_0" intLanes=":1545672923_0_0"/>
+ <junction id=":1545673118_9_0" type="internal" x="1104.49" y="2162.58" incLanes=":1545673118_1_0 -23182517#4_0" intLanes=":1545673118_4_0 :1545673118_5_0 :1545673118_6_0 :1545673118_7_0"/>
+ <junction id=":1545673118_10_0" type="internal" x="1104.99" y="2167.25" incLanes=":1545673118_2_0 -141191250#0_0 -23182517#4_0" intLanes=":1545673118_3_0 :1545673118_7_0"/>
+ <junction id=":1545673118_11_0" type="internal" x="1102.21" y="2161.71" incLanes=":1545673118_8_0 -141191250#0_0 23182517#3_0" intLanes=":1545673118_0_0 :1545673118_4_0"/>
+ <junction id=":1545673349_9_0" type="internal" x="1135.06" y="2223.46" incLanes=":1545673349_1_0 -23182517#3_0" intLanes=":1545673349_4_0 :1545673349_5_0 :1545673349_6_0 :1545673349_7_0"/>
+ <junction id=":1545673349_10_0" type="internal" x="1135.55" y="2228.11" incLanes=":1545673349_2_0 -141191249#0_0 -23182517#3_0" intLanes=":1545673349_3_0 :1545673349_7_0"/>
+ <junction id=":1545673349_11_0" type="internal" x="1132.77" y="2222.57" incLanes=":1545673349_8_0 -141191249#0_0 23182517#2_0" intLanes=":1545673349_0_0 :1545673349_4_0"/>
+ <junction id=":1624060630_25_0" type="internal" x="1421.69" y="875.94" incLanes=":1624060630_4_0 -166728377#2_0 149422210#0_0 166728377#1_0 23566901#1_0" intLanes=":1624060630_5_0 :1624060630_10_0 :1624060630_17_0 :1624060630_22_0"/>
+ <junction id=":1624060630_26_0" type="internal" x="1418.73" y="873.81" incLanes=":1624060630_6_0 -149422210#1_0" intLanes=":1624060630_0_0 :1624060630_1_0 :1624060630_2_0 :1624060630_3_0 :1624060630_10_0 :1624060630_11_0 :1624060630_17_0 :1624060630_19_0 :1624060630_22_0 :1624060630_23_0"/>
+ <junction id=":1624060630_27_0" type="internal" x="1418.73" y="873.81" incLanes=":1624060630_7_0 -149422210#1_0" intLanes=":1624060630_1_0 :1624060630_2_0 :1624060630_3_0 :1624060630_10_0 :1624060630_11_0 :1624060630_12_0 :1624060630_15_0 :1624060630_16_0 :1624060630_18_0 :1624060630_20_0 :1624060630_21_0 :1624060630_24_0"/>
+ <junction id=":1624060630_28_0" type="internal" x="1417.29" y="867.46" incLanes=":1624060630_9_0 -149422210#1_0 -166728377#2_0 166728377#1_0 23566901#1_0" intLanes=":1624060630_3_0 :1624060630_13_0 :1624060630_16_0 :1624060630_21_0"/>
+ <junction id=":1627657715_9_0" type="internal" x="701.08" y="1102.27" incLanes=":1627657715_1_0 149819227#3_0" intLanes=":1627657715_4_0 :1627657715_5_0 :1627657715_6_0 :1627657715_7_0"/>
+ <junction id=":1627657715_10_0" type="internal" x="705.44" y="1102.35" incLanes=":1627657715_2_0 149819222_0 149819227#3_0" intLanes=":1627657715_3_0 :1627657715_7_0"/>
+ <junction id=":1627657715_11_0" type="internal" x="699.63" y="1104.60" incLanes=":1627657715_8_0 -179917803#0_0 149819222_0" intLanes=":1627657715_0_0 :1627657715_4_0"/>
+ <junction id=":1627657822_9_0" type="internal" x="642.09" y="1052.68" incLanes=":1627657822_5_0 -149819224_0 -149819232#2_0" intLanes=":1627657822_1_0 :1627657822_6_0"/>
+ <junction id=":1627657822_10_0" type="internal" x="639.76" y="1054.71" incLanes=":1627657822_7_0 149819232#1_0" intLanes=":1627657822_1_0 :1627657822_2_0 :1627657822_3_0 :1627657822_4_0"/>
+ <junction id=":1627657822_11_0" type="internal" x="635.62" y="1053.69" incLanes=":1627657822_8_0 -149819224_0 149819232#1_0" intLanes=":1627657822_0_0 :1627657822_4_0"/>
+ <junction id=":1627657825_9_0" type="internal" x="669.26" y="1116.80" incLanes=":1627657825_1_0 149819227#1_0" intLanes=":1627657825_4_0 :1627657825_5_0 :1627657825_6_0 :1627657825_7_0"/>
+ <junction id=":1627657825_10_0" type="internal" x="673.72" y="1116.36" incLanes=":1627657825_2_0 149819224_0 149819227#1_0" intLanes=":1627657825_3_0 :1627657825_7_0"/>
+ <junction id=":1627657825_11_0" type="internal" x="668.21" y="1119.20" incLanes=":1627657825_8_0 -149819227#2_0 149819224_0" intLanes=":1627657825_0_0 :1627657825_4_0"/>
+ <junction id=":1634988377_9_0" type="internal" x="748.59" y="1443.18" incLanes=":1634988377_5_0 105254618_0 130443630#2_0" intLanes=":1634988377_1_0 :1634988377_6_0"/>
+ <junction id=":1634988377_10_0" type="internal" x="749.92" y="1445.48" incLanes=":1634988377_7_0 -130443630#3_0" intLanes=":1634988377_1_0 :1634988377_2_0 :1634988377_3_0 :1634988377_4_0"/>
+ <junction id=":1634988377_11_0" type="internal" x="747.68" y="1449.36" incLanes=":1634988377_8_0 -130443630#3_0 105254618_0" intLanes=":1634988377_0_0 :1634988377_4_0"/>
+ <junction id=":1669480280_16_0" type="internal" x="1467.32" y="1574.43" incLanes=":1669480280_6_0 154844500#1_0" intLanes=":1669480280_1_0 :1669480280_2_0 :1669480280_9_0 :1669480280_10_0 :1669480280_11_0 :1669480280_12_0 :1669480280_13_0"/>
+ <junction id=":1669480280_17_0" type="internal" x="1471.91" y="1574.03" incLanes=":1669480280_7_0 -38319548#10_0 154844500#1_0 38319548#9_0" intLanes=":1669480280_2_0 :1669480280_8_0 :1669480280_13_0"/>
+ <junction id=":1669480280_18_0" type="internal" x="1471.18" y="1576.28" incLanes=":1669480280_14_0 -154844500#2_0" intLanes=":1669480280_1_0 :1669480280_2_0 :1669480280_3_0 :1669480280_4_0 :1669480280_5_0 :1669480280_9_0 :1669480280_10_0"/>
+ <junction id=":1669480280_19_0" type="internal" x="1469.98" y="1574.50" incLanes=":1669480280_15_0 -154844500#2_0 -38319548#10_0 38319548#9_0" intLanes=":1669480280_0_0 :1669480280_5_0 :1669480280_10_0"/>
+ <junction id=":1719223329_9_0" type="internal" x="922.47" y="1598.06" incLanes=":1719223329_2_0 105254616#0_0 191056427#1_0" intLanes=":1719223329_3_0 :1719223329_6_0"/>
+ <junction id=":1719223329_10_0" type="internal" x="923.94" y="1598.95" incLanes=":1719223329_4_0 -105254616#1_0" intLanes=":1719223329_0_0 :1719223329_1_0 :1719223329_6_0 :1719223329_8_0"/>
+ <junction id=":1719223329_11_0" type="internal" x="921.16" y="1598.33" incLanes=":1719223329_5_0 -105254616#1_0 105254616#0_0" intLanes=":1719223329_1_0 :1719223329_7_0"/>
+ <junction id=":1726380184_4_0" type="internal" x="681.91" y="1354.63" incLanes=":1726380184_1_0 37973569#7_0" intLanes=":1726380184_2_0"/>
+ <junction id=":1726380187_4_0" type="internal" x="713.75" y="1414.28" incLanes=":1726380187_3_0 160584980_0" intLanes=":1726380187_0_0"/>
+ <junction id=":1726380194_6_0" type="internal" x="751.06" y="1426.46" incLanes=":1726380194_1_0 130443630#3_0 160584982#1_0" intLanes=":1726380194_2_0 :1726380194_4_0"/>
+ <junction id=":1726380194_7_0" type="internal" x="750.63" y="1429.36" incLanes=":1726380194_5_0 -130443630#4_0 160584982#1_0" intLanes=":1726380194_0_0 :1726380194_3_0"/>
+ <junction id=":1726380204_6_0" type="internal" x="647.41" y="1608.38" incLanes=":1726380204_1_0 -43684741#3_0 170088033_0" intLanes=":1726380204_2_0 :1726380204_4_0"/>
+ <junction id=":1726380204_7_0" type="internal" x="643.48" y="1605.53" incLanes=":1726380204_5_0 170088033_0 43684741#2_0" intLanes=":1726380204_0_0 :1726380204_3_0"/>
+ <junction id=":1726394724_18_0" type="internal" x="1169.08" y="1062.37" incLanes=":1726394724_2_0 160587538#3_0 160587538#3_1" intLanes=":1726394724_5_0 :1726394724_6_0 :1726394724_7_0 :1726394724_8_0 :1726394724_9_0 :1726394724_10_0 :1726394724_14_0 :1726394724_15_0 :1726394724_16_0"/>
+ <junction id=":1726394724_19_0" type="internal" x="1170.37" y="1062.21" incLanes=":1726394724_3_0 -149868584#4_1 149868584#3_0 160587538#3_1" intLanes=":1726394724_4_0 :1726394724_10_0 :1726394724_16_0"/>
+ <junction id=":1726394724_20_0" type="internal" x="1169.38" y="1056.36" incLanes=":1726394724_7_0 -149868584#4_0 -149868584#4_1" intLanes=":1726394724_1_0 :1726394724_2_0 :1726394724_10_0 :1726394724_11_0 :1726394724_12_0 :1726394724_13_0 :1726394724_14_0 :1726394724_15_0"/>
+ <junction id=":1726394724_21_0" type="internal" x="1173.68" y="1054.08" incLanes=":1726394724_8_0 -149868584#4_0 -149868584#4_1 -160587538#4_1 160587538#3_0" intLanes=":1726394724_2_0 :1726394724_9_0 :1726394724_14_0 :1726394724_15_0"/>
+ <junction id=":1726394724_22_0" type="internal" x="1166.78" y="1052.30" incLanes=":1726394724_11_0 -160587538#4_0 -160587538#4_1" intLanes=":1726394724_0_0 :1726394724_1_0 :1726394724_5_0 :1726394724_6_0 :1726394724_7_0 :1726394724_14_0 :1726394724_15_0 :1726394724_16_0 :1726394724_17_0"/>
+ <junction id=":1726394724_23_0" type="internal" x="1165.33" y="1052.42" incLanes=":1726394724_12_0 -149868584#4_0 -160587538#4_1 149868584#3_1" intLanes=":1726394724_1_0 :1726394724_7_0 :1726394724_13_0"/>
+ <junction id=":1726394724_24_0" type="internal" x="1166.62" y="1058.22" incLanes=":1726394724_16_0 149868584#3_0 149868584#3_1" intLanes=":1726394724_1_0 :1726394724_2_0 :1726394724_3_0 :1726394724_4_0 :1726394724_5_0 :1726394724_6_0 :1726394724_10_0 :1726394724_11_0"/>
+ <junction id=":1726394724_25_0" type="internal" x="1162.13" y="1060.61" incLanes=":1726394724_17_0 -160587538#4_0 149868584#3_0 149868584#3_1 160587538#3_1" intLanes=":1726394724_0_0 :1726394724_5_0 :1726394724_6_0 :1726394724_11_0"/>
+ <junction id=":1726394726_18_0" type="internal" x="1449.13" y="1588.04" incLanes=":1726394726_3_0 -160587542_0 154844503_1 160587538#7_1" intLanes=":1726394726_4_0 :1726394726_10_0 :1726394726_16_0"/>
+ <junction id=":1726394726_19_0" type="internal" x="1443.21" y="1583.65" incLanes=":1726394726_7_0 154844503_0 154844503_1" intLanes=":1726394726_1_0 :1726394726_2_0 :1726394726_10_0 :1726394726_11_0 :1726394726_12_0 :1726394726_13_0 :1726394726_14_0 :1726394726_15_0"/>
+ <junction id=":1726394726_20_0" type="internal" x="1446.40" y="1587.36" incLanes=":1726394726_8_0 -160587537#0_1 154844503_0 154844503_1 160587538#7_0" intLanes=":1726394726_2_0 :1726394726_9_0 :1726394726_14_0 :1726394726_15_0"/>
+ <junction id=":1726394726_21_0" type="internal" x="1444.62" y="1582.93" incLanes=":1726394726_12_0 -160587537#0_1 -160587542_1 154844503_0" intLanes=":1726394726_1_0 :1726394726_7_0 :1726394726_13_0"/>
+ <junction id=":1726394726_22_0" type="internal" x="1450.38" y="1590.69" incLanes=":1726394726_16_0 -160587542_0 -160587542_1" intLanes=":1726394726_1_0 :1726394726_2_0 :1726394726_3_0 :1726394726_4_0 :1726394726_5_0 :1726394726_6_0 :1726394726_10_0 :1726394726_11_0"/>
+ <junction id=":1726394726_23_0" type="internal" x="1447.20" y="1586.94" incLanes=":1726394726_17_0 -160587537#0_0 -160587542_0 -160587542_1 160587538#7_1" intLanes=":1726394726_0_0 :1726394726_5_0 :1726394726_6_0 :1726394726_11_0"/>
+ <junction id=":1726394727_18_0" type="internal" x="1454.96" y="1601.26" incLanes=":1726394727_4_0 -38319548#5_0 160587537#0_0 160587537#0_1 38319548#4_0" intLanes=":1726394727_5_0 :1726394727_10_0 :1726394727_11_0 :1726394727_16_0"/>
+ <junction id=":1726394727_19_0" type="internal" x="1453.18" y="1599.65" incLanes=":1726394727_13_0 -160587537#1_0 -160587537#1_1 -38319548#5_0 38319548#4_0" intLanes=":1726394727_1_0 :1726394727_2_0 :1726394727_7_0 :1726394727_14_0"/>
+ <junction id=":1726394728_11_0" type="internal" x="1576.96" y="1824.77" incLanes=":1726394728_2_0 160587537#1_0" intLanes=":1726394728_4_0 :1726394728_5_0 :1726394728_6_0 :1726394728_9_0 :1726394728_10_0"/>
+ <junction id=":1726394728_12_0" type="internal" x="1573.29" y="1828.43" incLanes=":1726394728_3_0 160587537#1_0 160587537#1_1 172498387#2_0" intLanes=":1726394728_5_0 :1726394728_6_0 :1726394728_10_0"/>
+ <junction id=":1726394728_13_0" type="internal" x="1571.87" y="1825.62" incLanes=":1726394728_7_0 -160587537#2_0 -160587537#2_1 172498387#2_0" intLanes=":1726394728_0_0 :1726394728_1_0 :1726394728_8_0"/>
+ <junction id=":1780219345_9_0" type="internal" x="787.44" y="1173.57" incLanes=":1780219345_5_0 130443630#9_0 166576466#2_0" intLanes=":1780219345_1_0 :1780219345_6_0"/>
+ <junction id=":1780219345_10_0" type="internal" x="788.55" y="1177.24" incLanes=":1780219345_7_0 -130443630#10_0" intLanes=":1780219345_1_0 :1780219345_2_0 :1780219345_3_0 :1780219345_4_0"/>
+ <junction id=":1780219345_11_0" type="internal" x="786.29" y="1181.22" incLanes=":1780219345_8_0 -130443630#10_0 166576466#2_0" intLanes=":1780219345_0_0 :1780219345_4_0"/>
+ <junction id=":1780219353_18_0" type="internal" x="897.85" y="1205.15" incLanes=":1780219353_7_0 -37973572#1_0" intLanes=":1780219353_1_0 :1780219353_2_0 :1780219353_10_0 :1780219353_11_0 :1780219353_12_0 :1780219353_13_0 :1780219353_14_0 :1780219353_15_0"/>
+ <junction id=":1780219353_19_0" type="internal" x="903.77" y="1207.47" incLanes=":1780219353_8_0 -166576462#5_0 -37973572#1_0 -37973572#1_1 166576462#4_0" intLanes=":1780219353_2_0 :1780219353_9_0 :1780219353_14_0 :1780219353_15_0"/>
+ <junction id=":1780219353_20_0" type="internal" x="904.77" y="1212.60" incLanes=":1780219353_16_0 37973572#0_0" intLanes=":1780219353_1_0 :1780219353_2_0 :1780219353_3_0 :1780219353_4_0 :1780219353_5_0 :1780219353_6_0 :1780219353_10_0 :1780219353_11_0"/>
+ <junction id=":1780219353_21_0" type="internal" x="898.41" y="1210.53" incLanes=":1780219353_17_0 -166576462#5_0 166576462#4_0 37973572#0_0 37973572#0_1" intLanes=":1780219353_0_0 :1780219353_5_0 :1780219353_6_0 :1780219353_11_0"/>
+ <junction id=":1780219355_9_0" type="internal" x="791.65" y="1145.56" incLanes=":1780219355_5_0 -166576459_0 130443630#10_0" intLanes=":1780219355_1_0 :1780219355_6_0"/>
+ <junction id=":1780219355_10_0" type="internal" x="792.93" y="1148.14" incLanes=":1780219355_7_0 -130443630#11_0" intLanes=":1780219355_1_0 :1780219355_2_0 :1780219355_3_0 :1780219355_4_0"/>
+ <junction id=":1780219355_11_0" type="internal" x="790.63" y="1152.37" incLanes=":1780219355_8_0 -130443630#11_0 -166576459_0" intLanes=":1780219355_0_0 :1780219355_4_0"/>
+ <junction id=":1903640411_2_0" type="internal" x="660.51" y="1135.42" incLanes=":1903640411_1_0 179917801_0" intLanes=":1903640411_0_0"/>
+ <junction id=":1913728534_6_0" type="internal" x="1295.20" y="1299.45" incLanes=":1913728534_2_0 160587538#6_0 160587538#6_1" intLanes=":1913728534_3_0 :1913728534_4_0"/>
+ <junction id=":1913728534_7_0" type="internal" x="1296.74" y="1302.37" incLanes=":1913728534_5_0 -160587538#7_0 -160587538#7_1" intLanes=":1913728534_0_0 :1913728534_1_0"/>
+ <junction id=":2006433692_4_0" type="internal" x="1337.40" y="2032.66" incLanes=":2006433692_1_0 132323955_0" intLanes=":2006433692_2_0"/>
+ <junction id=":2006433692_5_0" type="internal" x="1338.93" y="2035.58" incLanes=":2006433692_3_0 -190048065_0" intLanes=":2006433692_0_0"/>
+ <junction id=":2016414185_9_0" type="internal" x="827.98" y="1634.74" incLanes=":2016414185_1_0 -108329425#2_0" intLanes=":2016414185_4_0 :2016414185_5_0 :2016414185_6_0 :2016414185_7_0"/>
+ <junction id=":2016414185_10_0" type="internal" x="826.33" y="1635.14" incLanes=":2016414185_2_0 -108329425#2_0 -191056427#0_0" intLanes=":2016414185_3_0 :2016414185_7_0"/>
+ <junction id=":2016414185_11_0" type="internal" x="826.84" y="1636.14" incLanes=":2016414185_8_0 -191056427#0_0 108329425#1_0" intLanes=":2016414185_0_0 :2016414185_4_0"/>
+ <junction id=":2017759586_4_0" type="internal" x="859.54" y="1724.62" incLanes=":2017759586_1_0 -191176262_0" intLanes=":2017759586_2_0"/>
+ <junction id=":2017759586_5_0" type="internal" x="857.51" y="1724.00" incLanes=":2017759586_3_0 191176261_0" intLanes=":2017759586_0_0"/>
+ <junction id=":2017759588_9_0" type="internal" x="876.24" y="1728.45" incLanes=":2017759588_2_0 -191176268_0 -69931595#2_0" intLanes=":2017759588_3_0 :2017759588_7_0"/>
+ <junction id=":2017759588_10_0" type="internal" x="873.78" y="1727.28" incLanes=":2017759588_4_0 69931595#1_0" intLanes=":2017759588_0_0 :2017759588_1_0 :2017759588_7_0 :2017759588_8_0"/>
+ <junction id=":2017759588_11_0" type="internal" x="873.30" y="1722.76" incLanes=":2017759588_5_0 -191176268_0 69931595#1_0" intLanes=":2017759588_1_0 :2017759588_6_0"/>
+ <junction id=":2017759592_4_0" type="internal" x="862.71" y="1730.56" incLanes=":2017759592_1_0 -191176261_0" intLanes=":2017759592_2_0"/>
+ <junction id=":2017759592_5_0" type="internal" x="864.29" y="1733.09" incLanes=":2017759592_3_0 191176264_0" intLanes=":2017759592_0_0"/>
+ <junction id=":2017759596_4_0" type="internal" x="870.20" y="1743.38" incLanes=":2017759596_1_0 191176263_0" intLanes=":2017759596_2_0"/>
+ <junction id=":2017759596_5_0" type="internal" x="871.51" y="1745.99" incLanes=":2017759596_3_0 -191176267_0" intLanes=":2017759596_0_0"/>
+ <junction id=":2081499948_16_0" type="internal" x="1153.05" y="1012.75" incLanes=":2081499948_6_0 197955309#4_0" intLanes=":2081499948_1_0 :2081499948_2_0 :2081499948_9_0 :2081499948_10_0 :2081499948_11_0 :2081499948_12_0 :2081499948_13_0"/>
+ <junction id=":2081499948_17_0" type="internal" x="1158.29" y="1013.10" incLanes=":2081499948_7_0 -38319548#16_0 197955309#4_0 38319548#15_0" intLanes=":2081499948_2_0 :2081499948_8_0 :2081499948_13_0"/>
+ <junction id=":2081499948_18_0" type="internal" x="1157.60" y="1015.34" incLanes=":2081499948_14_0 -197955309#5_0" intLanes=":2081499948_1_0 :2081499948_2_0 :2081499948_3_0 :2081499948_4_0 :2081499948_5_0 :2081499948_9_0 :2081499948_10_0"/>
+ <junction id=":2081499948_19_0" type="internal" x="1156.96" y="1013.75" incLanes=":2081499948_15_0 -197955309#5_0 -38319548#16_0 38319548#15_0" intLanes=":2081499948_0_0 :2081499948_5_0 :2081499948_10_0"/>
+ <junction id=":2081499950_18_0" type="internal" x="1148.17" y="1019.39" incLanes=":2081499950_4_0 -197955309#3_0 160587538#0_0 160587538#0_1 197955309#2_0" intLanes=":2081499950_5_0 :2081499950_10_0 :2081499950_11_0 :2081499950_16_0"/>
+ <junction id=":2081499950_19_0" type="internal" x="1146.38" y="1017.79" incLanes=":2081499950_13_0 -160587538#1_0 -160587538#1_1 -197955309#3_0 197955309#2_0" intLanes=":2081499950_1_0 :2081499950_2_0 :2081499950_7_0 :2081499950_14_0"/>
+ <junction id=":248913124_9_0" type="internal" x="1418.21" y="1927.34" incLanes=":248913124_2_0 -129780022#0_0 129780026#1_0" intLanes=":248913124_3_0 :248913124_6_0"/>
+ <junction id=":248913124_10_0" type="internal" x="1415.63" y="1928.69" incLanes=":248913124_8_0 129780026#1_0 154409621_0" intLanes=":248913124_1_0 :248913124_5_0"/>
+ <junction id=":248913131_9_0" type="internal" x="1336.74" y="1770.11" incLanes=":248913131_2_0 23066443#5_0 23066446#1_0" intLanes=":248913131_3_0 :248913131_6_0"/>
+ <junction id=":248913131_10_0" type="internal" x="1335.94" y="1772.40" incLanes=":248913131_7_0 -23066446#2_0" intLanes=":248913131_0_0 :248913131_1_0 :248913131_4_0 :248913131_5_0"/>
+ <junction id=":248913131_11_0" type="internal" x="1334.13" y="1771.50" incLanes=":248913131_8_0 -23066446#2_0 23066443#5_0" intLanes=":248913131_1_0 :248913131_5_0"/>
+ <junction id=":248913133_9_0" type="internal" x="1407.27" y="1730.83" incLanes=":248913133_4_0 23066446#2_0" intLanes=":248913133_1_0 :248913133_2_0 :248913133_6_0 :248913133_7_0"/>
+ <junction id=":248913133_10_0" type="internal" x="1409.06" y="1731.74" incLanes=":248913133_5_0 23066446#2_0 58770725#1_0" intLanes=":248913133_2_0 :248913133_7_0"/>
+ <junction id=":248913133_11_0" type="internal" x="1406.45" y="1733.11" incLanes=":248913133_8_0 -23066446#3_0 58770725#1_0" intLanes=":248913133_0_0 :248913133_3_0"/>
+ <junction id=":248913142_9_0" type="internal" x="1444.06" y="1801.94" incLanes=":248913142_4_0 -81096844#1_0" intLanes=":248913142_1_0 :248913142_2_0 :248913142_6_0 :248913142_7_0"/>
+ <junction id=":248913142_10_0" type="internal" x="1445.88" y="1802.84" incLanes=":248913142_5_0 -81096844#1_0 58770725#0_0" intLanes=":248913142_2_0 :248913142_7_0"/>
+ <junction id=":248913142_11_0" type="internal" x="1443.25" y="1804.25" incLanes=":248913142_8_0 58770725#0_0 81096844#0_0" intLanes=":248913142_0_0 :248913142_3_0"/>
+ <junction id=":248913144_9_0" type="internal" x="1373.73" y="1841.43" incLanes=":248913144_2_0 -81096844#2_0 23066443#6_0" intLanes=":248913144_3_0 :248913144_6_0"/>
+ <junction id=":248913144_10_0" type="internal" x="1372.91" y="1843.73" incLanes=":248913144_7_0 81096844#1_0" intLanes=":248913144_0_0 :248913144_1_0 :248913144_4_0 :248913144_5_0"/>
+ <junction id=":248913144_11_0" type="internal" x="1371.09" y="1842.83" incLanes=":248913144_8_0 23066443#6_0 81096844#1_0" intLanes=":248913144_1_0 :248913144_5_0"/>
+ <junction id=":248913200_4_0" type="internal" x="1291.67" y="1232.93" incLanes=":248913200_1_0 -23066462#0_0" intLanes=":248913200_2_0"/>
+ <junction id=":248913200_5_0" type="internal" x="1292.47" y="1230.60" incLanes=":248913200_3_0 23066462#4_0" intLanes=":248913200_0_0"/>
+ <junction id=":249404225_4_0" type="internal" x="1742.67" y="2818.38" incLanes=":249404225_1_0 122302035#0_0" intLanes=":249404225_2_0"/>
+ <junction id=":249404225_5_0" type="internal" x="1742.67" y="2818.38" incLanes=":249404225_3_0 122302027#0_0" intLanes=":249404225_0_0"/>
+ <junction id=":250683336_9_0" type="internal" x="1212.38" y="2373.32" incLanes=":250683336_1_0 23182358#0_0" intLanes=":250683336_3_0 :250683336_4_0 :250683336_7_0 :250683336_8_0"/>
+ <junction id=":250683336_10_0" type="internal" x="1211.48" y="2375.15" incLanes=":250683336_2_0 23182358#0_0 23182387#0_0" intLanes=":250683336_4_0 :250683336_8_0"/>
+ <junction id=":250683336_11_0" type="internal" x="1210.09" y="2372.52" incLanes=":250683336_5_0 -23182358#1_0 23182387#0_0" intLanes=":250683336_0_0 :250683336_6_0"/>
+ <junction id=":250684983_4_0" type="internal" x="1312.32" y="2566.69" incLanes=":250684983_1_0 23182358#1_0" intLanes=":250684983_2_0"/>
+ <junction id=":250684983_5_0" type="internal" x="1313.84" y="2569.61" incLanes=":250684983_3_0 -23182358#2_0" intLanes=":250684983_0_0"/>
+ <junction id=":250685766_9_0" type="internal" x="1165.31" y="2286.67" incLanes=":250685766_2_0 -23182517#0_0 141190466#1_0" intLanes=":250685766_3_0 :250685766_6_0"/>
+ <junction id=":250685766_10_0" type="internal" x="1165.96" y="2284.36" incLanes=":250685766_5_0 -23182358#0_0" intLanes=":250685766_1_0 :250685766_6_0 :250685766_7_0 :250685766_8_0"/>
+ <junction id=":250685766_11_0" type="internal" x="1163.04" y="2285.90" incLanes=":250685766_7_0 -23182358#0_0" intLanes=":250685766_0_0 :250685766_1_0 :250685766_4_0 :250685766_5_0"/>
+ <junction id=":250685766_12_0" type="internal" x="1163.95" y="2284.09" incLanes=":250685766_8_0 -23182358#0_0 141190466#1_0" intLanes=":250685766_1_0 :250685766_5_0"/>
+ <junction id=":250685829_16_0" type="internal" x="1386.64" y="2165.88" incLanes=":250685829_10_0 -23182484#1_0" intLanes=":250685829_1_0 :250685829_2_0 :250685829_5_0 :250685829_6_0 :250685829_12_0 :250685829_13_0"/>
+ <junction id=":250685829_17_0" type="internal" x="1392.13" y="2164.88" incLanes=":250685829_11_0 -23182484#1_0 130443635#2_0 38318373#1_0" intLanes=":250685829_2_0 :250685829_6_0 :250685829_13_0"/>
+ <junction id=":250685829_18_0" type="internal" x="1389.98" y="2167.85" incLanes=":250685829_14_0 23182484#0_0" intLanes=":250685829_1_0 :250685829_2_0 :250685829_3_0 :250685829_5_0 :250685829_6_0 :250685829_7_0 :250685829_8_0 :250685829_9_0"/>
+ <junction id=":250685829_19_0" type="internal" x="1385.73" y="2168.22" incLanes=":250685829_15_0 130443635#2_0 23182484#0_0 38318373#1_0" intLanes=":250685829_0_0 :250685829_4_0 :250685829_9_0"/>
+ <junction id=":252417189_11_0" type="internal" x="1354.77" y="1629.61" incLanes=":252417189_5_0 110514869#0_0" intLanes=":252417189_1_0 :252417189_2_0 :252417189_7_0 :252417189_8_0 :252417189_9_0"/>
+ <junction id=":252417189_12_0" type="internal" x="1358.23" y="1633.39" incLanes=":252417189_6_0 110514869#0_0 110514869#0_1 58770725#4_0" intLanes=":252417189_2_0 :252417189_8_0 :252417189_9_0"/>
+ <junction id=":252417189_13_0" type="internal" x="1355.61" y="1634.75" incLanes=":252417189_10_0 -110514869#1_0 -110514869#1_1 58770725#4_0" intLanes=":252417189_0_0 :252417189_3_0 :252417189_4_0"/>
+ <junction id=":252418937_9_0" type="internal" x="1083.44" y="2124.33" incLanes=":252418937_2_0 -23315111#0_0 139118804#2_0" intLanes=":252418937_3_0 :252418937_6_0"/>
+ <junction id=":252418937_10_0" type="internal" x="1084.12" y="2121.90" incLanes=":252418937_5_0 23182517#4_0" intLanes=":252418937_1_0 :252418937_6_0 :252418937_7_0 :252418937_8_0"/>
+ <junction id=":252418937_11_0" type="internal" x="1081.20" y="2123.45" incLanes=":252418937_7_0 23182517#4_0" intLanes=":252418937_0_0 :252418937_1_0 :252418937_4_0 :252418937_5_0"/>
+ <junction id=":252418937_12_0" type="internal" x="1082.07" y="2121.50" incLanes=":252418937_8_0 139118804#2_0 23182517#4_0" intLanes=":252418937_1_0 :252418937_5_0"/>
+ <junction id=":255227471_18_0" type="internal" x="1348.85" y="955.99" incLanes=":255227471_8_0 -149868584#2_0 -149868584#2_1 -23262356#0_0 -37772597#0_0" intLanes=":255227471_2_0 :255227471_9_0 :255227471_14_0 :255227471_15_0"/>
+ <junction id=":255227471_19_0" type="internal" x="1341.06" y="960.37" incLanes=":255227471_17_0 -23262356#0_0 -37772597#0_0 149868584#1_0 149868584#1_1" intLanes=":255227471_0_0 :255227471_5_0 :255227471_6_0 :255227471_11_0"/>
+ <junction id=":255227475_12_0" type="internal" x="1307.93" y="875.77" incLanes=":255227475_1_0 -23262356#3_0" intLanes=":255227475_4_0 :255227475_5_0 :255227475_6_0 :255227475_7_0 :255227475_10_0 :255227475_11_0"/>
+ <junction id=":255227475_13_0" type="internal" x="1308.45" y="879.96" incLanes=":255227475_2_0 -149422199#0_0 -23262356#3_0 81124945_0" intLanes=":255227475_3_0 :255227475_7_0 :255227475_11_0"/>
+ <junction id=":255227475_14_0" type="internal" x="1305.57" y="874.76" incLanes=":255227475_8_0 -149422199#0_0 23262356#2_0 81124945_0" intLanes=":255227475_0_0 :255227475_4_0 :255227475_9_0"/>
+ <junction id=":255227480_36_0" type="internal" x="1359.63" y="845.52" incLanes=":255227480_17_0 -166728377#0_0 -23566901#1_0 149422199#0_0 166728377#2_0 23566901#0_0" intLanes=":255227480_2_0 :255227480_3_0 :255227480_8_0 :255227480_9_0 :255227480_22_0 :255227480_23_0 :255227480_24_0 :255227480_25_0 :255227480_31_0 :255227480_32_0"/>
+ <junction id=":255227480_37_0" type="internal" x="1357.14" y="848.97" incLanes=":255227480_33_0 -149422199#1_0" intLanes=":255227480_1_0 :255227480_2_0 :255227480_3_0 :255227480_5_0 :255227480_6_0 :255227480_10_0 :255227480_11_0 :255227480_12_0 :255227480_13_0 :255227480_14_0 :255227480_18_0 :255227480_19_0 :255227480_20_0 :255227480_26_0 :255227480_27_0 :255227480_28_0"/>
+ <junction id=":255227480_38_0" type="internal" x="1357.14" y="848.97" incLanes=":255227480_34_0 -149422199#1_0" intLanes=":255227480_1_0 :255227480_2_0 :255227480_3_0 :255227480_4_0 :255227480_5_0 :255227480_6_0 :255227480_11_0 :255227480_13_0 :255227480_14_0 :255227480_19_0 :255227480_20_0 :255227480_27_0 :255227480_28_0"/>
+ <junction id=":255227480_39_0" type="internal" x="1350.28" y="851.22" incLanes=":255227480_35_0 -149422199#1_0 -166728377#0_0 -23566901#1_0 166728377#2_0 23566901#0_0" intLanes=":255227480_0_0 :255227480_6_0 :255227480_14_0 :255227480_20_0 :255227480_28_0"/>
+ <junction id=":255227482_25_0" type="internal" x="1397.22" y="822.60" incLanes=":255227482_14_0 -149422210#0_0 -166728377#1_0 149422199#1_0 166728377#0_0" intLanes=":255227482_2_0 :255227482_7_0 :255227482_15_0 :255227482_20_0"/>
+ <junction id=":255227482_26_0" type="internal" x="1396.32" y="825.08" incLanes=":255227482_16_0 -149422199#2_0" intLanes=":255227482_0_0 :255227482_1_0 :255227482_3_0 :255227482_4_0 :255227482_5_0 :255227482_6_0 :255227482_8_0 :255227482_9_0 :255227482_10_0 :255227482_11_0 :255227482_12_0 :255227482_13_0 :255227482_20_0 :255227482_21_0"/>
+ <junction id=":255227482_27_0" type="internal" x="1396.32" y="825.08" incLanes=":255227482_17_0 -149422199#2_0" intLanes=":255227482_0_0 :255227482_1_0 :255227482_4_0 :255227482_5_0 :255227482_6_0 :255227482_8_0 :255227482_11_0 :255227482_12_0 :255227482_13_0 :255227482_20_0 :255227482_21_0 :255227482_22_0"/>
+ <junction id=":255227482_28_0" type="internal" x="1391.90" y="825.84" incLanes=":255227482_19_0 -149422199#2_0 -149422210#0_0 -166728377#1_0 166728377#0_0" intLanes=":255227482_1_0 :255227482_6_0 :255227482_13_0 :255227482_20_0 :255227482_21_0 :255227482_22_0 :255227482_23_0 :255227482_24_0"/>
+ <junction id=":255227483_18_0" type="internal" x="1440.13" y="904.19" incLanes=":255227483_8_0 -149868584#1_0 -149868584#1_1 -24573947#0_0 149422193#1_0" intLanes=":255227483_2_0 :255227483_9_0 :255227483_14_0 :255227483_15_0"/>
+ <junction id=":255227483_19_0" type="internal" x="1434.55" y="907.35" incLanes=":255227483_17_0 -24573947#0_0 149422193#1_0 149868584#0_0 149868584#0_1" intLanes=":255227483_0_0 :255227483_5_0 :255227483_6_0 :255227483_11_0"/>
+ <junction id=":267169634_16_0" type="internal" x="1478.13" y="984.93" incLanes=":267169634_3_0 -83051421#0_0 24573947#2_0 83051436#1_0" intLanes=":267169634_4_0 :267169634_9_0 :267169634_14_0"/>
+ <junction id=":267169634_17_0" type="internal" x="1474.73" y="981.97" incLanes=":267169634_5_0 -24573947#3_0" intLanes=":267169634_0_0 :267169634_1_0 :267169634_2_0 :267169634_9_0 :267169634_10_0 :267169634_14_0 :267169634_15_0"/>
+ <junction id=":267169634_18_0" type="internal" x="1473.85" y="980.23" incLanes=":267169634_6_0 -24573947#3_0" intLanes=":267169634_1_0 :267169634_2_0 :267169634_9_0 :267169634_10_0 :267169634_11_0 :267169634_12_0 :267169634_13_0"/>
+ <junction id=":267169634_19_0" type="internal" x="1474.06" y="977.02" incLanes=":267169634_7_0 -24573947#3_0 -83051421#0_0 83051436#1_0" intLanes=":267169634_2_0 :267169634_8_0 :267169634_13_0"/>
+ <junction id=":267169690_16_0" type="internal" x="1387.20" y="1038.30" incLanes=":267169690_2_0 37772597#2_0" intLanes=":267169690_5_0 :267169690_6_0 :267169690_7_0 :267169690_8_0 :267169690_9_0 :267169690_13_0 :267169690_14_0"/>
+ <junction id=":267169690_17_0" type="internal" x="1387.85" y="1042.89" incLanes=":267169690_3_0 -83051436#1_0 37772597#2_0 83051436#0_0" intLanes=":267169690_4_0 :267169690_9_0 :267169690_14_0"/>
+ <junction id=":267169690_18_0" type="internal" x="1385.41" y="1041.88" incLanes=":267169690_10_0 -24573939#0_0" intLanes=":267169690_0_0 :267169690_1_0 :267169690_5_0 :267169690_6_0 :267169690_13_0 :267169690_14_0 :267169690_15_0"/>
+ <junction id=":267169690_19_0" type="internal" x="1384.66" y="1037.17" incLanes=":267169690_11_0 -24573939#0_0 -83051436#1_0 83051436#0_0" intLanes=":267169690_1_0 :267169690_6_0 :267169690_12_0"/>
+ <junction id=":267169714_16_0" type="internal" x="1516.83" y="1061.75" incLanes=":267169714_6_0 -37640549#1_0" intLanes=":267169714_1_0 :267169714_2_0 :267169714_9_0 :267169714_10_0 :267169714_11_0 :267169714_12_0 :267169714_13_0"/>
+ <junction id=":267169714_17_0" type="internal" x="1521.31" y="1061.22" incLanes=":267169714_7_0 -24573947#4_0 -37640549#1_0 24573947#3_0" intLanes=":267169714_2_0 :267169714_8_0 :267169714_13_0"/>
+ <junction id=":267169714_18_0" type="internal" x="1520.17" y="1063.70" incLanes=":267169714_14_0 37640549#0_0" intLanes=":267169714_1_0 :267169714_2_0 :267169714_3_0 :267169714_4_0 :267169714_5_0 :267169714_9_0 :267169714_10_0"/>
+ <junction id=":267169714_19_0" type="internal" x="1515.75" y="1064.21" incLanes=":267169714_15_0 -24573947#4_0 24573947#3_0 37640549#0_0" intLanes=":267169714_0_0 :267169714_5_0 :267169714_10_0"/>
+ <junction id=":267169964_4_0" type="internal" x="1230.00" y="1127.39" incLanes=":267169964_1_0 101272435#0_0" intLanes=":267169964_2_0"/>
+ <junction id=":30406565_4_0" type="internal" x="688.47" y="1856.55" incLanes=":30406565_1_0 -37973566_0" intLanes=":30406565_2_0"/>
+ <junction id=":30406565_5_0" type="internal" x="688.45" y="1858.97" incLanes=":30406565_3_0 130443629#8_0" intLanes=":30406565_0_0"/>
+ <junction id=":30406599_18_0" type="internal" x="779.26" y="1278.54" incLanes=":30406599_4_0 -130443630#7_0 -37973572#2_0 -37973572#2_1 130443630#6_0" intLanes=":30406599_5_0 :30406599_10_0 :30406599_11_0 :30406599_16_0"/>
+ <junction id=":30406599_19_0" type="internal" x="773.22" y="1280.10" incLanes=":30406599_7_0 130443630#6_0" intLanes=":30406599_1_0 :30406599_2_0 :30406599_3_0 :30406599_10_0 :30406599_11_0 :30406599_12_0 :30406599_13_0 :30406599_14_0 :30406599_15_0"/>
+ <junction id=":30406599_20_0" type="internal" x="774.68" y="1281.98" incLanes=":30406599_8_0 -37973572#2_0 130443630#6_0 37973572#1_1" intLanes=":30406599_3_0 :30406599_9_0 :30406599_15_0"/>
+ <junction id=":30406599_21_0" type="internal" x="764.32" y="1287.20" incLanes=":30406599_13_0 -130443630#7_0 130443630#6_0 37973572#1_0 37973572#1_1" intLanes=":30406599_1_0 :30406599_2_0 :30406599_7_0 :30406599_14_0"/>
+ <junction id=":30406599_22_0" type="internal" x="770.07" y="1285.74" incLanes=":30406599_16_0 -130443630#7_0" intLanes=":30406599_1_0 :30406599_2_0 :30406599_3_0 :30406599_4_0 :30406599_5_0 :30406599_6_0 :30406599_10_0 :30406599_11_0 :30406599_12_0"/>
+ <junction id=":30406599_23_0" type="internal" x="769.21" y="1283.35" incLanes=":30406599_17_0 -130443630#7_0 -37973572#2_1 37973572#1_0" intLanes=":30406599_0_0 :30406599_6_0 :30406599_12_0"/>
+ <junction id=":314636763_16_0" type="internal" x="1398.77" y="2171.18" incLanes=":314636763_7_0 -38318373#1_0 122394864#1_0 38318373#0_0" intLanes=":314636763_2_0 :314636763_8_0 :314636763_13_0"/>
+ <junction id=":314636763_17_0" type="internal" x="1397.89" y="2173.48" incLanes=":314636763_14_0 -122394864#2_0" intLanes=":314636763_1_0 :314636763_2_0 :314636763_3_0 :314636763_4_0 :314636763_5_0 :314636763_9_0 :314636763_10_0"/>
+ <junction id=":314636763_18_0" type="internal" x="1395.09" y="2173.08" incLanes=":314636763_15_0 -122394864#2_0 -38318373#1_0 38318373#0_0" intLanes=":314636763_0_0 :314636763_5_0 :314636763_10_0"/>
+ <junction id=":320879142_6_0" type="internal" x="1319.66" y="1998.70" incLanes=":320879142_2_0 81523343_0" intLanes=":320879142_3_0"/>
+ <junction id=":410296508_11_0" type="internal" x="677.17" y="1338.07" incLanes=":410296508_3_0 -34962531#0_0 -37973572#4_0 -37973572#4_1" intLanes=":410296508_4_0 :410296508_8_0 :410296508_9_0"/>
+ <junction id=":410296508_12_0" type="internal" x="671.71" y="1341.21" incLanes=":410296508_10_0 -34962531#0_0 37973572#3_0 37973572#3_1" intLanes=":410296508_0_0 :410296508_1_0 :410296508_5_0"/>
+ <junction id=":427996791_16_0" type="internal" x="1076.23" y="2108.98" incLanes=":427996791_3_0 -129780022#5_0 -23315111#2_0 129780022#4_0" intLanes=":427996791_4_0 :427996791_9_0 :427996791_14_0"/>
+ <junction id=":427996791_17_0" type="internal" x="1076.24" y="2110.58" incLanes=":427996791_7_0 -129780022#5_0 -23315111#2_0 23315111#1_0" intLanes=":427996791_2_0 :427996791_8_0 :427996791_13_0"/>
+ <junction id=":427996791_18_0" type="internal" x="1075.26" y="2111.61" incLanes=":427996791_10_0 23315111#1_0" intLanes=":427996791_0_0 :427996791_1_0 :427996791_5_0 :427996791_6_0 :427996791_13_0 :427996791_14_0 :427996791_15_0"/>
+ <junction id=":427996791_19_0" type="internal" x="1077.71" y="2109.30" incLanes=":427996791_11_0 -129780022#5_0 129780022#4_0 23315111#1_0" intLanes=":427996791_1_0 :427996791_6_0 :427996791_12_0"/>
+ <junction id=":427996791_20_0" type="internal" x="1073.54" y="2110.93" incLanes=":427996791_15_0 -23315111#2_0 129780022#4_0 23315111#1_0" intLanes=":427996791_0_0 :427996791_5_0 :427996791_10_0"/>
+ <junction id=":427996792_25_0" type="internal" x="1068.31" y="2095.22" incLanes=":427996792_1_0 -108329426#1_0" intLanes=":427996792_5_0 :427996792_6_0 :427996792_12_0 :427996792_13_0 :427996792_15_0 :427996792_16_0 :427996792_17_0 :427996792_18_0 :427996792_21_0 :427996792_22_0 :427996792_23_0 :427996792_24_0"/>
+ <junction id=":427996792_26_0" type="internal" x="1068.09" y="2094.88" incLanes=":427996792_2_0 -108329426#1_0" intLanes=":427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_12_0 :427996792_13_0 :427996792_14_0 :427996792_16_0 :427996792_17_0 :427996792_18_0 :427996792_22_0 :427996792_23_0 :427996792_24_0"/>
+ <junction id=":427996792_27_0" type="internal" x="1067.57" y="2094.16" incLanes=":427996792_3_0 -108329426#1_0" intLanes=":427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_9_0 :427996792_10_0 :427996792_11_0 :427996792_17_0 :427996792_18_0 :427996792_23_0 :427996792_24_0"/>
+ <junction id=":427996792_28_0" type="internal" x="1069.12" y="2093.74" incLanes=":427996792_4_0 -108329426#1_0 -108329427#0_0 108329426#0_0 44641744#0_0" intLanes=":427996792_8_0 :427996792_11_0 :427996792_18_0 :427996792_24_0"/>
+ <junction id=":427996792_29_0" type="internal" x="1068.76" y="2095.26" incLanes=":427996792_6_0 -108329426#1_0" intLanes=":427996792_1_0 :427996792_2_0 :427996792_3_0 :427996792_11_0 :427996792_12_0 :427996792_13_0 :427996792_15_0 :427996792_16_0 :427996792_17_0 :427996792_21_0 :427996792_22_0 :427996792_23_0"/>
+ <junction id=":427996792_30_0" type="internal" x="1068.40" y="2094.96" incLanes=":427996792_7_0 -108329426#1_0" intLanes=":427996792_2_0 :427996792_3_0 :427996792_11_0 :427996792_12_0 :427996792_13_0 :427996792_14_0 :427996792_16_0 :427996792_17_0 :427996792_22_0 :427996792_23_0"/>
+ <junction id=":427996792_31_0" type="internal" x="1069.37" y="2093.98" incLanes=":427996792_9_0 -108329426#1_0 108329426#0_0 23315111#3_0 44641744#0_0" intLanes=":427996792_3_0 :427996792_10_0 :427996792_17_0 :427996792_23_0"/>
+ <junction id=":427996792_32_0" type="internal" x="1069.58" y="2093.69" incLanes=":427996792_13_0 -108329426#1_0" intLanes=":427996792_1_0 :427996792_2_0 :427996792_6_0 :427996792_7_0 :427996792_15_0 :427996792_16_0 :427996792_21_0 :427996792_22_0"/>
+ <junction id=":427996792_33_0" type="internal" x="1071.71" y="2094.38" incLanes=":427996792_14_0 -108329426#1_0 -108329427#0_0 23315111#3_0 44641744#0_0" intLanes=":427996792_2_0 :427996792_7_0 :427996792_16_0 :427996792_22_0"/>
+ <junction id=":427996792_34_0" type="internal" x="1069.45" y="2094.43" incLanes=":427996792_19_0 -108329427#0_0 108329426#0_0 23315111#3_0 44641744#0_0" intLanes=":427996792_0_0 :427996792_5_0 :427996792_12_0 :427996792_20_0"/>
+ <junction id=":427996792_35_0" type="internal" x="1067.57" y="2094.30" incLanes=":427996792_22_0" intLanes=":427996792_0_0 :427996792_1_0 :427996792_2_0 :427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_12_0 :427996792_13_0 :427996792_14_0 :427996792_16_0 :427996792_17_0 :427996792_18_0"/>
+ <junction id=":427996792_36_0" type="internal" x="1067.51" y="2094.18" incLanes=":427996792_23_0 108329426#0_0" intLanes=":427996792_0_0 :427996792_1_0 :427996792_2_0 :427996792_3_0 :427996792_5_0 :427996792_6_0 :427996792_7_0 :427996792_9_0 :427996792_10_0 :427996792_11_0 :427996792_17_0 :427996792_18_0"/>
+ <junction id=":427996792_37_0" type="internal" x="1067.51" y="2094.17" incLanes=":427996792_24_0 108329426#0_0" intLanes=":427996792_0_0 :427996792_1_0 :427996792_2_0 :427996792_3_0 :427996792_4_0 :427996792_8_0 :427996792_11_0 :427996792_18_0"/>
+ <junction id=":428303370_9_0" type="internal" x="743.04" y="2242.01" incLanes=":428303370_1_0 -130443629#5_0" intLanes=":428303370_3_0 :428303370_4_0 :428303370_7_0 :428303370_8_0"/>
+ <junction id=":428303370_10_0" type="internal" x="741.74" y="2245.49" incLanes=":428303370_2_0 -130443629#5_0 134572336#2_1" intLanes=":428303370_4_0 :428303370_8_0"/>
+ <junction id=":428303370_11_0" type="internal" x="739.98" y="2229.74" incLanes=":428303370_5_0 130443629#4_0 134572336#2_0" intLanes=":428303370_0_0 :428303370_6_0"/>
+ <junction id=":429179805_6_0" type="internal" x="759.09" y="1503.88" incLanes=":429179805_2_0 -108329425#5_0" intLanes=":429179805_3_0"/>
+ <junction id=":429179805_7_0" type="internal" x="755.36" y="1500.53" incLanes=":429179805_4_0 108329425#4_0" intLanes=":429179805_0_0 :429179805_1_0"/>
+ <junction id=":429179805_8_0" type="internal" x="756.13" y="1497.79" incLanes=":429179805_5_0 108329425#4_0" intLanes=":429179805_1_0"/>
+ <junction id=":435668534_9_0" type="internal" x="1299.04" y="1990.86" incLanes=":435668534_5_0 -129780022#3_0 144874012#0_0" intLanes=":435668534_2_0 :435668534_7_0"/>
+ <junction id=":435668534_10_0" type="internal" x="1296.35" y="1992.32" incLanes=":435668534_8_0 129780022#2_0 144874012#0_0" intLanes=":435668534_0_0 :435668534_3_0"/>
+ <junction id=":435668539_11_0" type="internal" x="764.94" y="2273.29" incLanes=":435668539_2_0 133868186_0 37973565#6_0" intLanes=":435668539_3_0 :435668539_7_0"/>
+ <junction id=":438042367_11_0" type="internal" x="914.66" y="1206.05" incLanes=":438042367_3_0 -37973572#0_1" intLanes=":438042367_4_0 :438042367_5_0 :438042367_6_0 :438042367_9_0"/>
+ <junction id=":438042367_12_0" type="internal" x="911.57" y="1197.78" incLanes=":438042367_5_0 -37973572#0_0 -37973572#0_1" intLanes=":438042367_1_0 :438042367_2_0 :438042367_3_0 :438042367_7_0 :438042367_8_0 :438042367_9_0"/>
+ <junction id=":438042367_13_0" type="internal" x="914.89" y="1201.12" incLanes=":438042367_6_0 -37973572#0_1 133960539#4_1" intLanes=":438042367_3_0 :438042367_9_0"/>
+ <junction id=":438042367_14_0" type="internal" x="907.09" y="1205.58" incLanes=":438042367_10_0 133960539#4_0 149868584#8_0" intLanes=":438042367_0_0 :438042367_4_0"/>
+ <junction id=":438042369_11_0" type="internal" x="927.44" y="1193.97" incLanes=":438042369_3_0 -149868584#8_0 154500693#3_0" intLanes=":438042369_4_0 :438042369_8_0"/>
+ <junction id=":438042369_12_0" type="internal" x="917.90" y="1194.14" incLanes=":438042369_7_0" intLanes=":438042369_2_0 :438042369_8_0 :438042369_9_0 :438042369_10_0"/>
+ <junction id=":438042369_13_0" type="internal" x="919.16" y="1198.69" incLanes=":438042369_10_0 149868584#7_1 154500693#3_2" intLanes=":438042369_2_0 :438042369_7_0"/>
+ <junction id=":438042379_4_0" type="internal" x="1123.68" y="1657.06" incLanes=":438042379_3_0 81672207#0_0" intLanes=":438042379_0_0"/>
+ <junction id=":441266854_4_0" type="internal" x="1799.49" y="1403.04" incLanes=":441266854_1_0 154844500#2_0" intLanes=":441266854_2_0"/>
+ <junction id=":441266854_5_0" type="internal" x="1802.41" y="1401.51" incLanes=":441266854_3_0 -154844500#3_0" intLanes=":441266854_0_0"/>
+ <junction id=":441266880_9_0" type="internal" x="1464.10" y="1578.12" incLanes=":441266880_2_0 101272435#4_0 154844500#0_0" intLanes=":441266880_3_0 :441266880_6_0"/>
+ <junction id=":441266880_10_0" type="internal" x="1464.54" y="1576.02" incLanes=":441266880_5_0 -154844500#1_0" intLanes=":441266880_1_0 :441266880_6_0 :441266880_7_0 :441266880_8_0"/>
+ <junction id=":441266880_11_0" type="internal" x="1466.08" y="1578.94" incLanes=":441266880_7_0 -154844500#1_0" intLanes=":441266880_0_0 :441266880_1_0 :441266880_4_0 :441266880_5_0"/>
+ <junction id=":441266880_12_0" type="internal" x="1464.26" y="1578.03" incLanes=":441266880_8_0 -154844500#1_0 101272435#4_0" intLanes=":441266880_1_0 :441266880_5_0"/>
+ <junction id=":443089063_11_0" type="internal" x="1430.02" y="1601.49" incLanes=":443089063_2_0 110514869#1_0 110514869#1_1" intLanes=":443089063_3_0 :443089063_4_0 :443089063_5_0 :443089063_6_0 :443089063_8_0 :443089063_9_0"/>
+ <junction id=":443089063_12_0" type="internal" x="1427.21" y="1595.51" incLanes=":443089063_5_0 110514869#1_0 110514869#1_1" intLanes=":443089063_1_0 :443089063_2_0 :443089063_7_0 :443089063_8_0 :443089063_9_0"/>
+ <junction id=":443089063_13_0" type="internal" x="1428.94" y="1596.47" incLanes=":443089063_6_0 110514869#1_0 110514869#1_1 37771900#5_0" intLanes=":443089063_2_0 :443089063_8_0 :443089063_9_0"/>
+ <junction id=":443089063_14_0" type="internal" x="1426.16" y="1597.92" incLanes=":443089063_10_0 -110514869#2_0 -110514869#2_1 37771900#5_0" intLanes=":443089063_0_0 :443089063_3_0 :443089063_4_0"/>
+ <junction id=":443101905_9_0" type="internal" x="1446.41" y="922.09" incLanes=":443101905_2_0 24573947#1_0 37772595#0_0" intLanes=":443101905_3_0 :443101905_6_0"/>
+ <junction id=":443101905_10_0" type="internal" x="1444.06" y="921.27" incLanes=":443101905_7_0 -24573947#2_0" intLanes=":443101905_0_0 :443101905_1_0 :443101905_4_0 :443101905_5_0"/>
+ <junction id=":443101905_11_0" type="internal" x="1444.96" y="919.38" incLanes=":443101905_8_0 -24573947#2_0 37772595#0_0" intLanes=":443101905_1_0 :443101905_5_0"/>
+ <junction id=":443101906_9_0" type="internal" x="1350.85" y="975.37" incLanes=":443101906_2_0 37772595#1_0 37772597#1_0" intLanes=":443101906_3_0 :443101906_6_0"/>
+ <junction id=":443101906_10_0" type="internal" x="1348.83" y="974.45" incLanes=":443101906_7_0 -37772597#2_0" intLanes=":443101906_0_0 :443101906_1_0 :443101906_4_0 :443101906_5_0"/>
+ <junction id=":443101906_11_0" type="internal" x="1349.70" y="972.72" incLanes=":443101906_8_0 -37772597#2_0 37772595#1_0" intLanes=":443101906_1_0 :443101906_5_0"/>
+ <junction id=":443101920_9_0" type="internal" x="1341.33" y="942.27" incLanes=":443101920_1_0 -23262356#2_0" intLanes=":443101920_3_0 :443101920_4_0 :443101920_7_0 :443101920_8_0"/>
+ <junction id=":443101920_10_0" type="internal" x="1339.79" y="942.39" incLanes=":443101920_2_0 -23262356#2_0 101272426#0_0" intLanes=":443101920_4_0 :443101920_8_0"/>
+ <junction id=":443101920_11_0" type="internal" x="1339.25" y="941.51" incLanes=":443101920_5_0 101272426#0_0 23262356#1_0" intLanes=":443101920_0_0 :443101920_6_0"/>
+ <junction id=":443101921_9_0" type="internal" x="1430.34" y="892.66" incLanes=":443101921_1_0" intLanes=":443101921_3_0 :443101921_4_0 :443101921_7_0 :443101921_8_0"/>
+ <junction id=":443101921_10_0" type="internal" x="1429.58" y="892.90" incLanes=":443101921_2_0 101272426#1_0 149422210#1_0" intLanes=":443101921_4_0 :443101921_8_0"/>
+ <junction id=":444026884_11_0" type="internal" x="761.23" y="1289.01" incLanes=":444026884_3_0 -37973572#3_0 -37973572#3_1 81394192#12_0" intLanes=":444026884_5_0 :444026884_6_0 :444026884_10_0"/>
+ <junction id=":444026884_12_0" type="internal" x="747.82" y="1296.86" incLanes=":444026884_7_0 37973572#2_0 37973572#2_1 81394192#12_0" intLanes=":444026884_0_0 :444026884_1_0 :444026884_8_0"/>
+ <junction id=":444026884_13_0" type="internal" x="754.87" y="1294.66" incLanes=":444026884_10_0 37973572#2_0 37973572#2_1" intLanes=":444026884_0_0 :444026884_1_0 :444026884_2_0 :444026884_3_0 :444026884_5_0 :444026884_6_0"/>
+ <junction id=":444026889_6_0" type="internal" x="801.33" y="1081.28" incLanes=":444026889_1_0 130443630#11_0 37973571#1_0" intLanes=":444026889_2_0 :444026889_4_0"/>
+ <junction id=":444026889_7_0" type="internal" x="800.80" y="1084.75" incLanes=":444026889_5_0 -179692877#0_0 37973571#1_0" intLanes=":444026889_0_0 :444026889_3_0"/>
+ <junction id=":445506216_6_0" type="internal" x="977.52" y="1922.58" incLanes=":445506216_2_0 -69931595#0_0" intLanes=":445506216_3_0"/>
+ <junction id=":445506216_7_0" type="internal" x="975.26" y="1921.82" incLanes=":445506216_4_0 108329426#2_0" intLanes=":445506216_0_0 :445506216_1_0"/>
+ <junction id=":445506216_8_0" type="internal" x="976.17" y="1920.05" incLanes=":445506216_5_0 108329426#2_0" intLanes=":445506216_1_0"/>
+ <junction id=":445506220_9_0" type="internal" x="742.98" y="1481.43" incLanes=":445506220_5_0 108329425#5_0 130443630#0_0" intLanes=":445506220_1_0 :445506220_6_0"/>
+ <junction id=":445506220_10_0" type="internal" x="744.20" y="1484.45" incLanes=":445506220_7_0 -130443630#1_0" intLanes=":445506220_1_0 :445506220_2_0 :445506220_3_0 :445506220_4_0"/>
+ <junction id=":445506220_11_0" type="internal" x="741.78" y="1489.51" incLanes=":445506220_8_0 -130443630#1_0 108329425#5_0" intLanes=":445506220_0_0 :445506220_4_0"/>
+ <junction id=":445506221_6_0" type="internal" x="715.97" y="2061.15" incLanes=":445506221_1_0 -130443629#6_0 37942668#2_0" intLanes=":445506221_2_0 :445506221_4_0"/>
+ <junction id=":445506221_7_0" type="internal" x="715.55" y="2058.09" incLanes=":445506221_5_0 130443629#5_0 37942668#2_0" intLanes=":445506221_0_0 :445506221_3_0"/>
+ <junction id=":446017738_9_0" type="internal" x="670.03" y="1325.28" incLanes=":446017738_1_0 -160584984_0" intLanes=":446017738_3_0 :446017738_4_0 :446017738_7_0 :446017738_8_0"/>
+ <junction id=":446017738_10_0" type="internal" x="667.99" y="1328.05" incLanes=":446017738_2_0 -160584984_0 37973568#1_0" intLanes=":446017738_4_0 :446017738_8_0"/>
+ <junction id=":446017738_11_0" type="internal" x="667.92" y="1322.17" incLanes=":446017738_5_0 34962531#1_0 37973568#1_0" intLanes=":446017738_0_0 :446017738_6_0"/>
+ <junction id=":446017741_9_0" type="internal" x="774.74" y="1257.90" incLanes=":446017741_2_0 130443630#8_0 37973568#3_0" intLanes=":446017741_3_0 :446017741_6_0"/>
+ <junction id=":446017741_10_0" type="internal" x="772.29" y="1263.75" incLanes=":446017741_5_0 -130443630#9_0" intLanes=":446017741_1_0 :446017741_6_0 :446017741_7_0 :446017741_8_0"/>
+ <junction id=":446017741_11_0" type="internal" x="775.94" y="1261.40" incLanes=":446017741_7_0 -130443630#9_0" intLanes=":446017741_0_0 :446017741_1_0 :446017741_4_0 :446017741_5_0"/>
+ <junction id=":446017741_12_0" type="internal" x="773.94" y="1263.55" incLanes=":446017741_8_0 -130443630#9_0 37973568#3_0" intLanes=":446017741_1_0 :446017741_5_0"/>
+ <junction id=":446017743_7_0" type="internal" x="913.61" y="1184.71" incLanes=":446017743_5_0 154500693#2_0 154500693#2_1 154500693#2_2" intLanes=":446017743_1_0 :446017743_2_0 :446017743_3_0"/>
+ <junction id=":446017744_9_0" type="internal" x="771.06" y="1301.35" incLanes=":446017744_2_0 130443630#4_0" intLanes=":446017744_3_0 :446017744_4_0 :446017744_5_0 :446017744_7_0"/>
+ <junction id=":446017744_10_0" type="internal" x="767.39" y="1303.74" incLanes=":446017744_4_0 130443630#4_0" intLanes=":446017744_1_0 :446017744_2_0 :446017744_6_0 :446017744_7_0"/>
+ <junction id=":446017744_11_0" type="internal" x="769.42" y="1301.28" incLanes=":446017744_5_0 130443630#4_0 37973569#5_0" intLanes=":446017744_2_0 :446017744_7_0"/>
+ <junction id=":446017744_12_0" type="internal" x="768.54" y="1307.35" incLanes=":446017744_8_0 -130443630#5_0 37973569#5_0" intLanes=":446017744_0_0 :446017744_3_0"/>
+ <junction id=":446766149_9_0" type="internal" x="676.33" y="1871.74" incLanes=":446766149_4_0 38027102#2_0" intLanes=":446766149_1_0 :446766149_2_0 :446766149_6_0 :446766149_7_0"/>
+ <junction id=":446766149_10_0" type="internal" x="677.75" y="1872.49" incLanes=":446766149_5_0 38027102#2_0 81394192#2_0" intLanes=":446766149_2_0 :446766149_7_0"/>
+ <junction id=":446766149_11_0" type="internal" x="673.36" y="1873.94" incLanes=":446766149_8_0 -59159262#0_0 81394192#2_0" intLanes=":446766149_0_0 :446766149_3_0"/>
+ <junction id=":446770959_4_0" type="internal" x="695.71" y="1684.70" incLanes=":446770959_1_0 81394192#5_0" intLanes=":446770959_2_0"/>
+ <junction id=":450564003_9_0" type="internal" x="1161.82" y="2276.48" incLanes=":450564003_1_0 -23182517#1_0" intLanes=":450564003_3_0 :450564003_4_0 :450564003_7_0 :450564003_8_0"/>
+ <junction id=":450564003_10_0" type="internal" x="1160.89" y="2278.29" incLanes=":450564003_2_0 -23182517#1_0 38230510#1_0" intLanes=":450564003_4_0 :450564003_8_0"/>
+ <junction id=":450564003_11_0" type="internal" x="1159.53" y="2275.69" incLanes=":450564003_5_0 23182517#0_0 38230510#1_0" intLanes=":450564003_0_0 :450564003_6_0"/>
+ <junction id=":450564003_12_0" type="internal" x="1158.90" y="2278.02" incLanes=":450564003_8_0 23182517#0_0" intLanes=":450564003_0_0 :450564003_1_0 :450564003_2_0 :450564003_4_0"/>
+ <junction id=":450564005_4_0" type="internal" x="1398.08" y="2148.81" incLanes=":450564005_1_0 139118806_0" intLanes=":450564005_2_0"/>
+ <junction id=":450564006_4_0" type="internal" x="1402.79" y="2159.17" incLanes=":450564006_2_0 129780019#0_0" intLanes=":450564006_0_0 :450564006_1_0"/>
+ <junction id=":450564006_5_0" type="internal" x="1402.19" y="2159.66" incLanes=":450564006_3_0 129780019#0_0" intLanes=":450564006_1_0"/>
+ <junction id=":452425487_16_0" type="internal" x="1314.28" y="1871.34" incLanes=":452425487_6_0 -81096844#3_0" intLanes=":452425487_1_0 :452425487_2_0 :452425487_9_0 :452425487_10_0 :452425487_11_0 :452425487_12_0 :452425487_13_0"/>
+ <junction id=":452425487_17_0" type="internal" x="1318.73" y="1870.83" incLanes=":452425487_7_0 -38319546#6_0 -81096844#3_0 38319546#5_0" intLanes=":452425487_2_0 :452425487_8_0 :452425487_13_0"/>
+ <junction id=":452425487_18_0" type="internal" x="1317.62" y="1873.30" incLanes=":452425487_14_0 81096844#2_0" intLanes=":452425487_1_0 :452425487_2_0 :452425487_3_0 :452425487_4_0 :452425487_5_0 :452425487_9_0 :452425487_10_0"/>
+ <junction id=":452425487_19_0" type="internal" x="1313.16" y="1873.81" incLanes=":452425487_15_0 -38319546#6_0 38319546#5_0 81096844#2_0" intLanes=":452425487_0_0 :452425487_5_0 :452425487_10_0"/>
+ <junction id=":452425488_16_0" type="internal" x="1277.30" y="1799.74" incLanes=":452425488_6_0 23066446#0_0" intLanes=":452425488_1_0 :452425488_2_0 :452425488_9_0 :452425488_10_0 :452425488_11_0 :452425488_12_0 :452425488_13_0"/>
+ <junction id=":452425488_17_0" type="internal" x="1281.79" y="1799.27" incLanes=":452425488_7_0 -38319546#7_0 23066446#0_0 38319546#6_0" intLanes=":452425488_2_0 :452425488_8_0 :452425488_13_0"/>
+ <junction id=":452425488_18_0" type="internal" x="1280.71" y="1801.68" incLanes=":452425488_14_0 -23066446#1_0" intLanes=":452425488_1_0 :452425488_2_0 :452425488_3_0 :452425488_4_0 :452425488_5_0 :452425488_9_0 :452425488_10_0"/>
+ <junction id=":452425488_19_0" type="internal" x="1276.26" y="1802.16" incLanes=":452425488_15_0 -23066446#1_0 -38319546#7_0 38319546#6_0" intLanes=":452425488_0_0 :452425488_5_0 :452425488_10_0"/>
+ <junction id=":452425489_4_0" type="internal" x="1246.82" y="1737.39" incLanes=":452425489_1_0 -38319547_0" intLanes=":452425489_2_0"/>
+ <junction id=":452425489_5_0" type="internal" x="1246.87" y="1738.19" incLanes=":452425489_3_0 38319546#8_0" intLanes=":452425489_0_0"/>
+ <junction id=":452425499_4_0" type="internal" x="1206.77" y="1665.85" incLanes=":452425499_1_0 -38319550#0_0" intLanes=":452425499_2_0"/>
+ <junction id=":452425499_5_0" type="internal" x="1206.92" y="1665.97" incLanes=":452425499_3_0 38319549#2_0" intLanes=":452425499_0_0"/>
+ <junction id=":452425502_9_0" type="internal" x="954.64" y="1200.10" incLanes=":452425502_2_0 -38319550#4_0 101272429#1_0" intLanes=":452425502_3_0 :452425502_6_0"/>
+ <junction id=":452425502_10_0" type="internal" x="955.21" y="1197.63" incLanes=":452425502_5_0" intLanes=":452425502_1_0 :452425502_6_0 :452425502_7_0 :452425502_8_0"/>
+ <junction id=":452425502_11_0" type="internal" x="952.35" y="1199.27" incLanes=":452425502_7_0 38319550#3_0" intLanes=":452425502_0_0 :452425502_1_0 :452425502_4_0 :452425502_5_0"/>
+ <junction id=":452425502_12_0" type="internal" x="953.20" y="1197.33" incLanes=":452425502_8_0 101272429#1_0 38319550#3_0" intLanes=":452425502_1_0 :452425502_5_0"/>
+ <junction id=":477486714_9_0" type="internal" x="671.68" y="2228.38" incLanes=":477486714_1_0 107066313#5_0" intLanes=":477486714_3_0 :477486714_4_0 :477486714_7_0 :477486714_8_0"/>
+ <junction id=":477486714_10_0" type="internal" x="665.15" y="2223.08" incLanes=":477486714_5_0 134572336#0_0 81394188#4_0" intLanes=":477486714_0_0 :477486714_6_0"/>
+ <junction id=":477486717_16_0" type="internal" x="505.26" y="1969.73" incLanes=":477486717_2_0 107066313#2_0" intLanes=":477486717_5_0 :477486717_6_0 :477486717_7_0 :477486717_8_0 :477486717_9_0 :477486717_13_0 :477486717_14_0"/>
+ <junction id=":477486717_17_0" type="internal" x="506.12" y="1974.13" incLanes=":477486717_3_0 -38027102#1_0 107066313#2_0 38027102#0_0" intLanes=":477486717_4_0 :477486717_9_0 :477486717_14_0"/>
+ <junction id=":477486717_18_0" type="internal" x="503.46" y="1973.03" incLanes=":477486717_10_0 -107066313#3_0" intLanes=":477486717_0_0 :477486717_1_0 :477486717_5_0 :477486717_6_0 :477486717_13_0 :477486717_14_0 :477486717_15_0"/>
+ <junction id=":477486717_19_0" type="internal" x="502.61" y="1968.65" incLanes=":477486717_11_0 -107066313#3_0 -38027102#1_0 38027102#0_0" intLanes=":477486717_1_0 :477486717_6_0 :477486717_12_0"/>
+ <junction id=":477486719_16_0" type="internal" x="406.45" y="1814.66" incLanes=":477486719_2_0 107066313#0_0" intLanes=":477486719_5_0 :477486719_6_0 :477486719_7_0 :477486719_8_0 :477486719_9_0 :477486719_13_0 :477486719_14_0"/>
+ <junction id=":477486719_17_0" type="internal" x="407.31" y="1819.03" incLanes=":477486719_3_0 -38027665#1_0 107066313#0_0 38027665#0_0" intLanes=":477486719_4_0 :477486719_9_0 :477486719_14_0"/>
+ <junction id=":477486719_18_0" type="internal" x="404.55" y="1817.84" incLanes=":477486719_10_0 -107066313#1_0" intLanes=":477486719_0_0 :477486719_1_0 :477486719_5_0 :477486719_6_0 :477486719_13_0 :477486719_14_0 :477486719_15_0"/>
+ <junction id=":477486719_19_0" type="internal" x="403.66" y="1813.41" incLanes=":477486719_11_0 -107066313#1_0 -38027665#1_0 38027665#0_0" intLanes=":477486719_1_0 :477486719_6_0 :477486719_12_0"/>
+ <junction id=":484282955_6_0" type="internal" x="665.94" y="931.35" incLanes=":484282955_1_0 40196943_0 40196944#0_0" intLanes=":484282955_2_0 :484282955_4_0"/>
+ <junction id=":484282955_7_0" type="internal" x="662.86" y="931.89" incLanes=":484282955_5_0 -40196944#1_0 40196943_0" intLanes=":484282955_0_0 :484282955_3_0"/>
+ <junction id=":538265864_4_0" type="internal" x="739.19" y="917.26" incLanes=":538265864_3_0 42976408#0_0" intLanes=":538265864_0_0"/>
+ <junction id=":552842254_11_0" type="internal" x="457.50" y="1463.01" incLanes=":552842254_6_0 -37973572#5_0 -37973572#5_1 43684741#5_0" intLanes=":552842254_1_0 :552842254_7_0 :552842254_8_0"/>
+ <junction id=":552842254_12_0" type="internal" x="451.62" y="1466.40" incLanes=":552842254_10_0 37973572#4_0 37973572#4_1 43684741#5_0" intLanes=":552842254_0_0 :552842254_4_0 :552842254_5_0"/>
+ <junction id=":552842255_9_0" type="internal" x="468.05" y="1477.85" incLanes=":552842255_2_0 -43684741#4_0 37973569#8_0" intLanes=":552842255_3_0 :552842255_6_0"/>
+ <junction id=":552842255_10_0" type="internal" x="463.63" y="1476.67" incLanes=":552842255_7_0 43684741#3_0" intLanes=":552842255_0_0 :552842255_1_0 :552842255_4_0 :552842255_5_0"/>
+ <junction id=":552842255_11_0" type="internal" x="464.19" y="1475.03" incLanes=":552842255_8_0 37973569#8_0 43684741#3_0" intLanes=":552842255_1_0 :552842255_5_0"/>
+ <junction id=":552842256_36_0" type="internal" x="716.65" y="1657.74" incLanes=":552842256_9_0 107028581#3_0" intLanes=":552842256_3_0 :552842256_4_0 :552842256_5_0 :552842256_14_0 :552842256_15_0 :552842256_16_0 :552842256_17_0 :552842256_18_0 :552842256_19_0 :552842256_20_0 :552842256_25_0 :552842256_26_0 :552842256_27_0 :552842256_32_0 :552842256_33_0 :552842256_34_0"/>
+ <junction id=":552842256_37_0" type="internal" x="720.01" y="1658.79" incLanes=":552842256_11_0 -130443630#0_0 -43684741#0_0 107028581#3_0 37973566_0 59159259#1_0" intLanes=":552842256_5_0 :552842256_13_0 :552842256_20_0 :552842256_27_0 :552842256_34_0"/>
+ <junction id=":552842256_38_0" type="internal" x="716.96" y="1660.32" incLanes=":552842256_28_0 105283535#1_0" intLanes=":552842256_0_0 :552842256_1_0 :552842256_6_0 :552842256_7_0 :552842256_14_0 :552842256_15_0 :552842256_21_0 :552842256_22_0 :552842256_31_0 :552842256_32_0 :552842256_33_0 :552842256_34_0 :552842256_35_0"/>
+ <junction id=":552842256_39_0" type="internal" x="707.47" y="1657.49" incLanes=":552842256_29_0 -130443630#0_0 -43684741#0_0 105283535#1_0 37973566_0 59159259#1_0" intLanes=":552842256_1_0 :552842256_7_0 :552842256_15_0 :552842256_22_0 :552842256_30_0"/>
+ <junction id=":552842257_9_0" type="internal" x="702.20" y="1655.19" incLanes=":552842257_1_0 107028581#2_0" intLanes=":552842257_3_0 :552842257_4_0 :552842257_7_0 :552842257_8_0"/>
+ <junction id=":552842257_10_0" type="internal" x="701.30" y="1656.73" incLanes=":552842257_2_0 107028581#2_0 81394192#6_0" intLanes=":552842257_4_0 :552842257_8_0"/>
+ <junction id=":552842257_11_0" type="internal" x="699.70" y="1656.55" incLanes=":552842257_5_0 -107028581#3_0 81394192#6_0" intLanes=":552842257_0_0 :552842257_6_0"/>
+ <junction id=":560472377_6_0" type="internal" x="831.35" y="1980.88" incLanes=":560472377_1_0 44104490_0 44104491#0_0" intLanes=":560472377_2_0 :560472377_5_0"/>
+ <junction id=":560472377_7_0" type="internal" x="829.97" y="1978.20" incLanes=":560472377_3_0 -44104491#1_0 44104490_0" intLanes=":560472377_0_0 :560472377_4_0"/>
+ <junction id=":560472378_4_0" type="internal" x="838.47" y="1995.15" incLanes=":560472378_2_0 37942668#0_0" intLanes=":560472378_0_0 :560472378_1_0"/>
+ <junction id=":560472378_5_0" type="internal" x="838.07" y="1994.48" incLanes=":560472378_3_0 37942668#0_0" intLanes=":560472378_1_0"/>
+ <junction id=":561204538_9_0" type="internal" x="705.32" y="1648.19" incLanes=":561204538_1_0 -43684741#1_0" intLanes=":561204538_3_0 :561204538_4_0 :561204538_7_0 :561204538_8_0"/>
+ <junction id=":561204538_10_0" type="internal" x="704.21" y="1649.41" incLanes=":561204538_2_0 -43684741#1_0 81394192#7_0" intLanes=":561204538_4_0 :561204538_8_0"/>
+ <junction id=":561204538_11_0" type="internal" x="702.35" y="1648.07" incLanes=":561204538_5_0 43684741#0_0 81394192#7_0" intLanes=":561204538_0_0 :561204538_6_0"/>
+ <junction id=":719463587_9_0" type="internal" x="940.62" y="1169.47" incLanes=":719463587_1_0 -38319550#8_0" intLanes=":719463587_3_0 :719463587_4_0 :719463587_7_0 :719463587_8_0"/>
+ <junction id=":719463587_10_0" type="internal" x="939.76" y="1171.41" incLanes=":719463587_2_0 -38319550#8_0 37772596#0_0" intLanes=":719463587_4_0 :719463587_8_0"/>
+ <junction id=":719463587_11_0" type="internal" x="938.32" y="1168.63" incLanes=":719463587_5_0 37772596#0_0 38319550#7_0" intLanes=":719463587_0_0 :719463587_6_0"/>
+ <junction id=":719463587_12_0" type="internal" x="937.75" y="1171.10" incLanes=":719463587_8_0" intLanes=":719463587_0_0 :719463587_1_0 :719463587_2_0 :719463587_4_0"/>
+ <junction id=":719464017_4_0" type="internal" x="652.08" y="320.53" incLanes=":719464017_1_0 38319550#13_0" intLanes=":719464017_2_0"/>
+ <junction id=":719464017_5_0" type="internal" x="652.64" y="317.26" incLanes=":719464017_3_0 -38319550#14_0" intLanes=":719464017_0_0"/>
+ <junction id=":728492341_9_0" type="internal" x="441.53" y="1869.59" incLanes=":728492341_1_0 107066313#1_0" intLanes=":728492341_4_0 :728492341_5_0 :728492341_6_0 :728492341_7_0"/>
+ <junction id=":728492341_10_0" type="internal" x="442.38" y="1873.99" incLanes=":728492341_2_0 -58779718#0_0 107066313#1_0" intLanes=":728492341_3_0 :728492341_7_0"/>
+ <junction id=":728492341_11_0" type="internal" x="439.04" y="1868.76" incLanes=":728492341_8_0 -107066313#2_0 -58779718#0_0" intLanes=":728492341_0_0 :728492341_4_0"/>
+ <junction id=":728492353_9_0" type="internal" x="632.07" y="1648.62" incLanes=":728492353_2_0 -107166846#0_0 107028581#0_0" intLanes=":728492353_3_0 :728492353_7_0"/>
+ <junction id=":728492353_10_0" type="internal" x="629.86" y="1650.00" incLanes=":728492353_4_0 -107028581#1_0" intLanes=":728492353_0_0 :728492353_1_0 :728492353_7_0 :728492353_8_0"/>
+ <junction id=":728492353_11_0" type="internal" x="625.95" y="1647.87" incLanes=":728492353_5_0 -107028581#1_0 -107166846#0_0" intLanes=":728492353_1_0 :728492353_6_0"/>
+ <junction id=":728492360_16_0" type="internal" x="611.31" y="1776.92" incLanes=":728492360_6_0 -107166846#2_0" intLanes=":728492360_1_0 :728492360_2_0 :728492360_9_0 :728492360_10_0 :728492360_11_0 :728492360_12_0 :728492360_13_0"/>
+ <junction id=":728492360_17_0" type="internal" x="613.43" y="1771.77" incLanes=":728492360_7_0 -107166846#2_0 -58779718#1_0 58779718#0_0" intLanes=":728492360_2_0 :728492360_8_0 :728492360_13_0"/>
+ <junction id=":728492360_18_0" type="internal" x="614.82" y="1774.32" incLanes=":728492360_14_0 107166846#1_0" intLanes=":728492360_1_0 :728492360_2_0 :728492360_3_0 :728492360_4_0 :728492360_5_0 :728492360_9_0 :728492360_10_0"/>
+ <junction id=":728492360_19_0" type="internal" x="612.78" y="1780.29" incLanes=":728492360_15_0 -58779718#1_0 107166846#1_0 58779718#0_0" intLanes=":728492360_0_0 :728492360_5_0 :728492360_10_0"/>
+ <junction id=":728492361_16_0" type="internal" x="608.15" y="1843.12" incLanes=":728492361_6_0 -107166846#3_0" intLanes=":728492361_1_0 :728492361_2_0 :728492361_9_0 :728492361_10_0 :728492361_11_0 :728492361_12_0 :728492361_13_0"/>
+ <junction id=":728492361_17_0" type="internal" x="610.04" y="1838.01" incLanes=":728492361_7_0 -107166846#3_0 -58779719#1_0 58779719#0_0" intLanes=":728492361_2_0 :728492361_8_0 :728492361_13_0"/>
+ <junction id=":728492361_18_0" type="internal" x="611.58" y="1840.42" incLanes=":728492361_14_0 107166846#2_0" intLanes=":728492361_1_0 :728492361_2_0 :728492361_3_0 :728492361_4_0 :728492361_5_0 :728492361_9_0 :728492361_10_0"/>
+ <junction id=":728492361_19_0" type="internal" x="609.64" y="1846.60" incLanes=":728492361_15_0 -58779719#1_0 107166846#2_0 58779719#0_0" intLanes=":728492361_0_0 :728492361_5_0 :728492361_10_0"/>
+ <junction id=":728492364_4_0" type="internal" x="681.04" y="1785.91" incLanes=":728492364_1_0 81394192#4_0" intLanes=":728492364_2_0"/>
+ <junction id=":728492366_16_0" type="internal" x="606.59" y="1910.54" incLanes=":728492366_6_0 38027102#1_0" intLanes=":728492366_1_0 :728492366_2_0 :728492366_9_0 :728492366_10_0 :728492366_11_0 :728492366_12_0 :728492366_13_0"/>
+ <junction id=":728492366_17_0" type="internal" x="611.63" y="1909.54" incLanes=":728492366_7_0 -107166846#4_0 107166846#3_0 38027102#1_0" intLanes=":728492366_2_0 :728492366_8_0 :728492366_13_0"/>
+ <junction id=":728492366_18_0" type="internal" x="607.48" y="1913.83" incLanes=":728492366_14_0 -38027102#2_0" intLanes=":728492366_1_0 :728492366_2_0 :728492366_3_0 :728492366_4_0 :728492366_5_0 :728492366_9_0 :728492366_10_0"/>
+ <junction id=":728492366_19_0" type="internal" x="602.95" y="1914.54" incLanes=":728492366_15_0 -107166846#4_0 -38027102#2_0 107166846#3_0" intLanes=":728492366_0_0 :728492366_5_0 :728492366_10_0"/>
+ <junction id=":728492371_4_0" type="internal" x="671.94" y="1849.48" incLanes=":728492371_3_0 81394192#3_0" intLanes=":728492371_0_0"/>
+ <junction id=":728492372_16_0" type="internal" x="621.08" y="1699.97" incLanes=":728492372_6_0 -107166846#1_0" intLanes=":728492372_1_0 :728492372_2_0 :728492372_9_0 :728492372_10_0 :728492372_11_0 :728492372_12_0 :728492372_13_0"/>
+ <junction id=":728492372_17_0" type="internal" x="623.75" y="1691.82" incLanes=":728492372_7_0 -107166846#1_0 -38027665#2_0 38027665#1_0" intLanes=":728492372_2_0 :728492372_8_0 :728492372_13_0"/>
+ <junction id=":728492372_18_0" type="internal" x="624.90" y="1696.04" incLanes=":728492372_14_0 107166846#0_0" intLanes=":728492372_1_0 :728492372_2_0 :728492372_3_0 :728492372_4_0 :728492372_5_0 :728492372_9_0 :728492372_10_0"/>
+ <junction id=":728492372_19_0" type="internal" x="622.22" y="1704.12" incLanes=":728492372_15_0 -38027665#2_0 107166846#0_0 38027665#1_0" intLanes=":728492372_0_0 :728492372_5_0 :728492372_10_0"/>
+ <junction id=":733663076_16_0" type="internal" x="848.22" y="1674.28" incLanes=":733663076_3_0 -105283535#0_0 -108329425#0_0 105251811#1_0" intLanes=":733663076_4_0 :733663076_9_0 :733663076_13_0"/>
+ <junction id=":733663076_17_0" type="internal" x="838.81" y="1674.62" incLanes=":733663076_14_0 69931595#3_0" intLanes=":733663076_0_0 :733663076_1_0 :733663076_5_0 :733663076_6_0 :733663076_10_0 :733663076_11_0"/>
+ <junction id=":733663076_18_0" type="internal" x="830.36" y="1671.91" incLanes=":733663076_15_0 -108329425#0_0 105251811#1_0 69931595#3_0" intLanes=":733663076_1_0 :733663076_6_0 :733663076_11_0"/>
+ <junction id=":733663082_9_0" type="internal" x="708.57" y="1871.60" incLanes=":733663082_2_0 37973565#0_0 59159262#1_0" intLanes=":733663082_3_0 :733663082_6_0"/>
+ <junction id=":733663082_10_0" type="internal" x="705.88" y="1873.50" incLanes=":733663082_7_0 -59159262#2_0" intLanes=":733663082_0_0 :733663082_1_0 :733663082_4_0 :733663082_5_0"/>
+ <junction id=":733663082_11_0" type="internal" x="704.20" y="1872.68" incLanes=":733663082_8_0 -59159262#2_0 37973565#0_0" intLanes=":733663082_1_0 :733663082_5_0"/>
+ <junction id=":733663093_9_0" type="internal" x="1369.49" y="1657.77" incLanes=":733663093_4_0 -59159260#1_0" intLanes=":733663093_1_0 :733663093_2_0 :733663093_6_0 :733663093_7_0"/>
+ <junction id=":733663093_10_0" type="internal" x="1371.31" y="1658.68" incLanes=":733663093_5_0 -59159260#1_0 58770725#2_0" intLanes=":733663093_2_0 :733663093_7_0"/>
+ <junction id=":733663093_11_0" type="internal" x="1368.71" y="1660.05" incLanes=":733663093_8_0 58770725#2_0 59159260#0_0" intLanes=":733663093_0_0 :733663093_3_0"/>
+ <junction id=":733663096_16_0" type="internal" x="1252.66" y="1750.87" incLanes=":733663096_6_0 -59159260#3_0" intLanes=":733663096_1_0 :733663096_2_0 :733663096_9_0 :733663096_10_0 :733663096_11_0 :733663096_12_0 :733663096_13_0"/>
+ <junction id=":733663096_17_0" type="internal" x="1256.82" y="1746.85" incLanes=":733663096_7_0 -38319546#8_0 -59159260#3_0 38319546#7_0" intLanes=":733663096_2_0 :733663096_8_0 :733663096_13_0"/>
+ <junction id=":733663096_18_0" type="internal" x="1254.54" y="1753.47" incLanes=":733663096_14_0 59159260#2_0" intLanes=":733663096_1_0 :733663096_2_0 :733663096_3_0 :733663096_4_0 :733663096_5_0 :733663096_9_0 :733663096_10_0"/>
+ <junction id=":733663096_19_0" type="internal" x="1251.12" y="1754.64" incLanes=":733663096_15_0 -38319546#8_0 38319546#7_0 59159260#2_0" intLanes=":733663096_0_0 :733663096_5_0 :733663096_10_0"/>
+ <junction id=":733663116_6_0" type="internal" x="859.17" y="1695.44" incLanes=":733663116_2_0 -69931595#3_0" intLanes=":733663116_3_0"/>
+ <junction id=":733663116_7_0" type="internal" x="856.90" y="1694.65" incLanes=":733663116_4_0 69931595#2_0" intLanes=":733663116_0_0 :733663116_1_0"/>
+ <junction id=":733663116_8_0" type="internal" x="857.84" y="1692.86" incLanes=":733663116_5_0 69931595#2_0" intLanes=":733663116_1_0"/>
+ <junction id=":733663121_9_0" type="internal" x="1298.56" y="1696.46" incLanes=":733663121_2_0 -59159260#2_0 23066443#4_0" intLanes=":733663121_3_0 :733663121_6_0"/>
+ <junction id=":733663121_10_0" type="internal" x="1297.79" y="1698.77" incLanes=":733663121_7_0 59159260#1_0" intLanes=":733663121_0_0 :733663121_1_0 :733663121_4_0 :733663121_5_0"/>
+ <junction id=":733663121_11_0" type="internal" x="1295.92" y="1697.88" incLanes=":733663121_8_0 23066443#4_0 59159260#1_0" intLanes=":733663121_1_0 :733663121_5_0"/>
+ <junction id=":733663136_9_0" type="internal" x="901.19" y="1776.66" incLanes=":733663136_2_0 -69931595#1_0 59159262#4_0" intLanes=":733663136_3_0 :733663136_7_0"/>
+ <junction id=":733663136_10_0" type="internal" x="898.79" y="1775.62" incLanes=":733663136_4_0 69931595#0_0" intLanes=":733663136_0_0 :733663136_1_0 :733663136_7_0 :733663136_8_0"/>
+ <junction id=":733663136_11_0" type="internal" x="898.33" y="1771.17" incLanes=":733663136_5_0 59159262#4_0 69931595#0_0" intLanes=":733663136_1_0 :733663136_6_0"/>
+ <junction id=":767282288_18_0" type="internal" x="946.85" y="1188.61" incLanes=":767282288_2_0 -38319550#6_0" intLanes=":767282288_5_0 :767282288_6_0 :767282288_7_0 :767282288_8_0 :767282288_9_0 :767282288_10_0 :767282288_14_0 :767282288_15_0 :767282288_16_0"/>
+ <junction id=":767282288_19_0" type="internal" x="947.63" y="1186.59" incLanes=":767282288_3_0 -149868584#6_1 -38319550#6_0 149868584#5_0" intLanes=":767282288_4_0 :767282288_10_0 :767282288_16_0"/>
+ <junction id=":767282288_20_0" type="internal" x="947.84" y="1183.41" incLanes=":767282288_7_0 -149868584#6_0 -149868584#6_1" intLanes=":767282288_1_0 :767282288_2_0 :767282288_10_0 :767282288_11_0 :767282288_12_0 :767282288_13_0 :767282288_14_0 :767282288_15_0"/>
+ <junction id=":767282288_21_0" type="internal" x="948.90" y="1181.75" incLanes=":767282288_8_0 -149868584#6_0 -149868584#6_1 -38319550#6_0 38319550#5_0" intLanes=":767282288_2_0 :767282288_9_0 :767282288_14_0 :767282288_15_0"/>
+ <junction id=":767282288_22_0" type="internal" x="945.12" y="1178.20" incLanes=":767282288_11_0 38319550#5_0" intLanes=":767282288_0_0 :767282288_1_0 :767282288_5_0 :767282288_6_0 :767282288_7_0 :767282288_14_0 :767282288_15_0 :767282288_16_0 :767282288_17_0"/>
+ <junction id=":767282288_23_0" type="internal" x="944.35" y="1180.26" incLanes=":767282288_12_0 -149868584#6_0 149868584#5_1 38319550#5_0" intLanes=":767282288_1_0 :767282288_7_0 :767282288_13_0"/>
+ <junction id=":767282288_24_0" type="internal" x="944.13" y="1183.41" incLanes=":767282288_16_0 149868584#5_0 149868584#5_1" intLanes=":767282288_1_0 :767282288_2_0 :767282288_3_0 :767282288_4_0 :767282288_5_0 :767282288_6_0 :767282288_10_0 :767282288_11_0"/>
+ <junction id=":767282288_25_0" type="internal" x="943.05" y="1185.08" incLanes=":767282288_17_0 -38319550#6_0 149868584#5_0 149868584#5_1 38319550#5_0" intLanes=":767282288_0_0 :767282288_5_0 :767282288_6_0 :767282288_11_0"/>
+ <junction id=":948350588_11_0" type="internal" x="765.65" y="2265.52" incLanes=":948350588_3_0 133868229#0_0 133868229#0_1 37973565#5_0" intLanes=":948350588_4_0 :948350588_7_0 :948350588_8_0"/>
+ <junction id=":948350588_12_0" type="internal" x="762.86" y="2267.17" incLanes=":948350588_10_0 -133868229#1_0 -133868229#1_1 37973565#5_0" intLanes=":948350588_1_0 :948350588_2_0 :948350588_6_0"/>
+ <junction id=":948350597_10_0" type="internal" x="737.76" y="2289.63" incLanes=":948350597_6_0 133868191#0_3 81394200#0_0" intLanes=":948350597_3_0 :948350597_8_0"/>
+ <junction id=":948350597_11_0" type="internal" x="734.63" y="2301.04" incLanes=":948350597_9_0 -81394200#1_0 133868191#0_0" intLanes=":948350597_0_0 :948350597_4_0"/>
+ <junction id=":948350615_9_0" type="internal" x="743.31" y="2263.00" incLanes=":948350615_1_0" intLanes=":948350615_3_0 :948350615_4_0 :948350615_7_0 :948350615_8_0"/>
+ <junction id=":948350615_10_0" type="internal" x="743.12" y="2262.63" incLanes=":948350615_2_0 -130443629#4_0 81394169#1_0" intLanes=":948350615_4_0 :948350615_8_0"/>
+ <junction id=":948350630_8_0" type="internal" x="772.70" y="2261.37" incLanes=":948350630_2_0 133868229#1_0 133868229#1_1 134572340#1_0" intLanes=":948350630_3_0 :948350630_5_0 :948350630_6_0"/>
+ <junction id=":948350630_9_0" type="internal" x="771.93" y="2261.17" incLanes=":948350630_7_0 -81523330#0_0 -81523330#0_1 134572340#1_1" intLanes=":948350630_0_0 :948350630_1_0 :948350630_4_0"/>
+ <junction id=":948350640_16_0" type="internal" x="743.48" y="2278.06" incLanes=":948350640_6_0 81394200#1_0" intLanes=":948350640_1_0 :948350640_2_0 :948350640_9_0 :948350640_10_0 :948350640_11_0 :948350640_12_0 :948350640_13_0"/>
+ <junction id=":948350640_17_0" type="internal" x="746.21" y="2277.07" incLanes=":948350640_7_0 -130443629#2_0 130443629#1_0 81394200#1_0" intLanes=":948350640_2_0 :948350640_8_0 :948350640_13_0"/>
+ <junction id=":948350640_18_0" type="internal" x="740.29" y="2285.13" incLanes=":948350640_15_0 -130443629#2_0 -81394200#2_0 130443629#1_0" intLanes=":948350640_0_0 :948350640_5_0 :948350640_10_0"/>
+ <junction id=":948350707_17_0" type="internal" x="755.65" y="2269.47" incLanes=":948350707_3_0 37369047#2_0 37369047#2_1 81394169#3_0 81394200#2_0" intLanes=":948350707_4_0 :948350707_8_0 :948350707_9_0 :948350707_13_0"/>
+ <junction id=":948350707_18_0" type="internal" x="750.57" y="2276.65" incLanes=":948350707_16_0 -133868229#0_1 37369047#2_3 81394169#3_0" intLanes=":948350707_2_0 :948350707_7_0 :948350707_12_0"/>
+ <junction id=":950094425_18_0" type="internal" x="1069.65" y="2098.64" incLanes=":950094425_7_0 81523330#1_0" intLanes=":950094425_1_0 :950094425_2_0 :950094425_10_0 :950094425_11_0 :950094425_12_0 :950094425_13_0 :950094425_14_0 :950094425_15_0"/>
+ <junction id=":950094425_19_0" type="internal" x="1071.68" y="2103.12" incLanes=":950094425_8_0 -23315111#3_0 23315111#2_0 81523330#1_0 81523330#1_1" intLanes=":950094425_2_0 :950094425_9_0 :950094425_14_0 :950094425_15_0"/>
+ <junction id=":950094425_20_0" type="internal" x="1070.12" y="2103.99" incLanes=":950094425_17_0 -23315111#3_0 -81523330#2_0 -81523330#2_1 23315111#2_0" intLanes=":950094425_0_0 :950094425_5_0 :950094425_6_0 :950094425_11_0"/>
+ <junction id=":950094494_11_0" type="internal" x="1293.00" y="1980.87" incLanes=":950094494_5_0 81523330#4_0" intLanes=":950094494_1_0 :950094494_2_0 :950094494_7_0 :950094494_8_0 :950094494_9_0"/>
+ <junction id=":950094494_12_0" type="internal" x="1296.91" y="1984.42" incLanes=":950094494_6_0 144874012#1_0 81523330#4_0 81523330#4_1" intLanes=":950094494_2_0 :950094494_8_0 :950094494_9_0"/>
+ <junction id=":950094494_13_0" type="internal" x="1293.27" y="1986.33" incLanes=":950094494_10_0 -139118805#0_0 -139118805#0_1 144874012#1_0" intLanes=":950094494_0_0 :950094494_3_0 :950094494_4_0"/>
+ <junction id=":956116503_9_0" type="internal" x="757.45" y="1846.88" incLanes=":956116503_5_0 -44104491#0_0 59159262#2_0" intLanes=":956116503_1_0 :956116503_6_0"/>
+ <junction id=":956116503_10_0" type="internal" x="761.55" y="1848.08" incLanes=":956116503_7_0 -59159262#3_0" intLanes=":956116503_1_0 :956116503_2_0 :956116503_3_0 :956116503_4_0"/>
+ <junction id=":956116503_11_0" type="internal" x="756.23" y="1847.49" incLanes=":956116503_8_0 -44104491#0_0 -59159262#3_0" intLanes=":956116503_0_0 :956116503_4_0"/>
+ <junction id=":966097830_4_0" type="internal" x="828.95" y="1460.53" incLanes=":966097830_1_0 83038923#1_0" intLanes=":966097830_2_0"/>
+ <junction id=":966097830_5_0" type="internal" x="826.74" y="1459.80" incLanes=":966097830_3_0 83038920_0" intLanes=":966097830_0_0"/>
+ <junction id=":966097869_9_0" type="internal" x="747.10" y="1453.32" incLanes=":966097869_5_0 -83038923#0_0 130443630#1_0" intLanes=":966097869_1_0 :966097869_6_0"/>
+ <junction id=":966097869_10_0" type="internal" x="748.44" y="1455.57" incLanes=":966097869_7_0 -130443630#2_0" intLanes=":966097869_1_0 :966097869_2_0 :966097869_3_0 :966097869_4_0"/>
+ <junction id=":966097869_11_0" type="internal" x="746.20" y="1459.45" incLanes=":966097869_8_0 -130443630#2_0 -83038923#0_0" intLanes=":966097869_0_0 :966097869_4_0"/>
+ <junction id=":966193796_4_0" type="internal" x="1270.31" y="1020.55" incLanes=":966193796_1_0 37772595#2_0" intLanes=":966193796_2_0"/>
+ <junction id=":966193808_16_0" type="internal" x="1302.35" y="1084.26" incLanes=":966193808_11_0 -83051436#0_0 24573937_0 83051417_0" intLanes=":966193808_1_0 :966193808_6_0 :966193808_12_0"/>
+ <junction id=":966193808_17_0" type="internal" x="1303.91" y="1087.10" incLanes=":966193808_14_0" intLanes=":966193808_1_0 :966193808_2_0 :966193808_3_0 :966193808_4_0 :966193808_5_0 :966193808_9_0 :966193808_10_0"/>
+ <junction id=":966193808_18_0" type="internal" x="1301.19" y="1088.62" incLanes=":966193808_15_0 -83051420_0 -83051436#0_0 83051417_0" intLanes=":966193808_0_0 :966193808_5_0 :966193808_10_0"/>
+ <junction id=":966193814_4_0" type="internal" x="1418.41" y="1307.35" incLanes=":966193814_1_0 -83051424_0" intLanes=":966193814_2_0"/>
+ <junction id=":966193814_5_0" type="internal" x="1418.53" y="1310.38" incLanes=":966193814_3_0 83051483_0" intLanes=":966193814_0_0"/>
+ <junction id=":966193857_4_0" type="internal" x="1460.79" y="1432.56" incLanes=":966193857_1_0 37771904#0_0" intLanes=":966193857_2_0"/>
+ <junction id=":974693391_11_0" type="internal" x="1343.17" y="1959.74" incLanes=":974693391_3_0 139118805#0_0 139118805#0_1 37449253#5_0" intLanes=":974693391_4_0 :974693391_7_0 :974693391_8_0"/>
+ <junction id=":974693391_12_0" type="internal" x="1340.62" y="1961.10" incLanes=":974693391_10_0 -139118805#1_0 -139118805#1_1 37449253#5_0" intLanes=":974693391_1_0 :974693391_2_0 :974693391_6_0"/>
+ <junction id=":975934878_6_0" type="internal" x="1156.98" y="2270.75" incLanes=":975934878_1_0 -23182517#2_0 83827202_0" intLanes=":975934878_2_0 :975934878_5_0"/>
+ <junction id=":975934878_7_0" type="internal" x="1155.68" y="2268.20" incLanes=":975934878_3_0 23182517#1_0 83827202_0" intLanes=":975934878_0_0 :975934878_4_0"/>
+
+ <connection from="-101272434" to="-38319548#8" fromLane="0" toLane="0" via=":1168929661_3_0" dir="r" state="="/>
+ <connection from="-101272434" to="38319548#9" fromLane="0" toLane="0" via=":1168929661_4_0" dir="l" state="="/>
+ <connection from="-101272434" to="101272434" fromLane="0" toLane="0" via=":1168929661_5_0" dir="t" state="="/>
+ <connection from="-105254616#0" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_3_0" dir="r" state="m"/>
+ <connection from="-105254616#0" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_4_0" dir="l" state="m"/>
+ <connection from="-105254616#0" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_5_0" dir="t" state="m"/>
+ <connection from="-105254616#1" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_0_0" dir="s" state="M"/>
+ <connection from="-105254616#1" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_1_0" dir="s" state="M"/>
+ <connection from="-105254616#1" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_2_0" dir="t" state="m"/>
+ <connection from="-105254618" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_3_0" dir="r" state="m"/>
+ <connection from="-105254618" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_4_0" dir="l" state="m"/>
+ <connection from="-105254618" to="105254618" fromLane="0" toLane="0" via=":1212960877_5_0" dir="t" state="m"/>
+ <connection from="-105283535#0" to="108329425#0" fromLane="0" toLane="0" via=":733663076_12_0" dir="r" state="M"/>
+ <connection from="-105283535#0" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_13_0" dir="L" state="M"/>
+ <connection from="-105283535#0" to="59159259#0" fromLane="0" toLane="0" via=":733663076_14_0" dir="l" state="m"/>
+ <connection from="-105283535#0" to="105283535#0" fromLane="0" toLane="0" via=":733663076_15_0" dir="t" state="m"/>
+ <connection from="-105283535#1" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_6_0" dir="s" state="M"/>
+ <connection from="-105283535#1" to="37942667#3" fromLane="0" toLane="0" via=":1213368991_7_0" dir="l" state="m"/>
+ <connection from="-105283535#1" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_8_0" dir="t" state="m"/>
+ <connection from="-106366774" to="37973568#1" fromLane="0" toLane="0" via=":1224080660_0_0" dir="r" state="M"/>
+ <connection from="-106366774" to="106366774" fromLane="0" toLane="0" via=":1224080660_1_0" dir="t" state="m"/>
+ <connection from="-106367427#0" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_0_0" dir="r" state="m"/>
+ <connection from="-106367427#0" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_1_0" dir="l" state="m"/>
+ <connection from="-106367427#0" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_2_0" dir="t" state="m"/>
+ <connection from="-106367427#1" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_0_0" dir="r" state="m"/>
+ <connection from="-106367427#1" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_1_0" dir="s" state="m"/>
+ <connection from="-106367427#1" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_2_0" dir="l" state="m"/>
+ <connection from="-106367427#1" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_3_0" dir="t" state="m"/>
+ <connection from="-106836308#0" to="81394192#1" fromLane="0" toLane="0" via=":1228499918_2_0" dir="r" state="m"/>
+ <connection from="-106836308#0" to="106836308#0" fromLane="0" toLane="0" via=":1228499918_3_0" dir="t" state="m"/>
+ <connection from="-106836308#1" to="-107166846#5" fromLane="0" toLane="0" via=":1232169474_6_0" dir="r" state="M"/>
+ <connection from="-106836308#1" to="-106836308#0" fromLane="0" toLane="0" via=":1232169474_7_0" dir="s" state="m"/>
+ <connection from="-106836308#1" to="106836308#1" fromLane="0" toLane="0" via=":1232169474_8_0" dir="t" state="m"/>
+ <connection from="-106836308#2" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_12_0" dir="r" state="m"/>
+ <connection from="-106836308#2" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_13_0" dir="s" state="m"/>
+ <connection from="-106836308#2" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_14_0" dir="l" state="m"/>
+ <connection from="-106836308#2" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_15_0" dir="t" state="m"/>
+ <connection from="-107028581#0" to="107028581#0" fromLane="0" toLane="0" via=":1233612841_0_0" dir="t" state="M"/>
+ <connection from="-107028581#1" to="107166846#0" fromLane="0" toLane="0" via=":728492353_0_0" dir="r" state="M"/>
+ <connection from="-107028581#1" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_1_0" dir="s" state="M"/>
+ <connection from="-107028581#1" to="107028581#1" fromLane="0" toLane="0" via=":728492353_2_0" dir="t" state="m"/>
+ <connection from="-107028581#2" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_0_0" dir="r" state="M"/>
+ <connection from="-107028581#2" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_1_0" dir="s" state="M"/>
+ <connection from="-107028581#2" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_2_0" dir="l" state="m"/>
+ <connection from="-107028581#2" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_3_0" dir="t" state="m"/>
+ <connection from="-107028581#3" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_0_0" dir="s" state="M"/>
+ <connection from="-107028581#3" to="81394192#7" fromLane="0" toLane="0" via=":552842257_1_0" dir="l" state="m"/>
+ <connection from="-107028581#3" to="107028581#3" fromLane="0" toLane="0" via=":552842257_2_0" dir="t" state="m"/>
+ <connection from="-107066313#0" to="107066313#0" fromLane="0" toLane="0" via=":950640617_0_0" dir="t" state="M"/>
+ <connection from="-107066313#1" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_0_0" dir="r" state="M"/>
+ <connection from="-107066313#1" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_1_0" dir="s" state="M"/>
+ <connection from="-107066313#1" to="38027665#1" fromLane="0" toLane="0" via=":477486719_2_0" dir="l" state="m"/>
+ <connection from="-107066313#1" to="107066313#1" fromLane="0" toLane="0" via=":477486719_3_0" dir="t" state="m"/>
+ <connection from="-107066313#2" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_0_0" dir="s" state="M"/>
+ <connection from="-107066313#2" to="58779718#0" fromLane="0" toLane="0" via=":728492341_1_0" dir="l" state="m"/>
+ <connection from="-107066313#2" to="107066313#2" fromLane="0" toLane="0" via=":728492341_2_0" dir="t" state="m"/>
+ <connection from="-107066313#3" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_0_0" dir="r" state="M"/>
+ <connection from="-107066313#3" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_1_0" dir="s" state="M"/>
+ <connection from="-107066313#3" to="38027102#1" fromLane="0" toLane="0" via=":477486717_2_0" dir="l" state="m"/>
+ <connection from="-107066313#3" to="107066313#3" fromLane="0" toLane="0" via=":477486717_3_0" dir="t" state="m"/>
+ <connection from="-107066313#4" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_0_0" dir="s" state="M"/>
+ <connection from="-107066313#4" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_1_0" dir="l" state="m"/>
+ <connection from="-107066313#4" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_2_0" dir="t" state="m"/>
+ <connection from="-107066313#5" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_0_0" dir="r" state="M"/>
+ <connection from="-107066313#5" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_1_0" dir="s" state="M"/>
+ <connection from="-107066313#5" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_2_0" dir="l" state="m"/>
+ <connection from="-107066313#5" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_3_0" dir="t" state="m"/>
+ <connection from="-107166846#0" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_6_0" dir="r" state="m"/>
+ <connection from="-107166846#0" to="107028581#1" fromLane="0" toLane="0" via=":728492353_7_0" dir="l" state="m"/>
+ <connection from="-107166846#0" to="107166846#0" fromLane="0" toLane="0" via=":728492353_8_0" dir="t" state="m"/>
+ <connection from="-107166846#1" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_12_0" dir="r" state="M"/>
+ <connection from="-107166846#1" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_13_0" dir="s" state="M"/>
+ <connection from="-107166846#1" to="38027665#2" fromLane="0" toLane="0" via=":728492372_14_0" dir="l" state="m"/>
+ <connection from="-107166846#1" to="107166846#1" fromLane="0" toLane="0" via=":728492372_15_0" dir="t" state="m"/>
+ <connection from="-107166846#2" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_12_0" dir="r" state="M"/>
+ <connection from="-107166846#2" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_13_0" dir="s" state="M"/>
+ <connection from="-107166846#2" to="58779718#1" fromLane="0" toLane="0" via=":728492360_14_0" dir="l" state="m"/>
+ <connection from="-107166846#2" to="107166846#2" fromLane="0" toLane="0" via=":728492360_15_0" dir="t" state="m"/>
+ <connection from="-107166846#3" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_12_0" dir="r" state="M"/>
+ <connection from="-107166846#3" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_13_0" dir="s" state="M"/>
+ <connection from="-107166846#3" to="58779719#1" fromLane="0" toLane="0" via=":728492361_14_0" dir="l" state="m"/>
+ <connection from="-107166846#3" to="107166846#3" fromLane="0" toLane="0" via=":728492361_15_0" dir="t" state="m"/>
+ <connection from="-107166846#4" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_0_0" dir="r" state="m"/>
+ <connection from="-107166846#4" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_1_0" dir="s" state="m"/>
+ <connection from="-107166846#4" to="38027102#2" fromLane="0" toLane="0" via=":728492366_2_0" dir="l" state="m"/>
+ <connection from="-107166846#4" to="107166846#4" fromLane="0" toLane="0" via=":728492366_3_0" dir="t" state="m"/>
+ <connection from="-107166846#5" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_0_0" dir="s" state="M"/>
+ <connection from="-107166846#5" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_1_0" dir="l" state="m"/>
+ <connection from="-107166846#5" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_2_0" dir="t" state="m"/>
+ <connection from="-107167209#0" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_6_0" dir="r" state="m"/>
+ <connection from="-107167209#0" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_7_0" dir="l" state="m"/>
+ <connection from="-107167209#0" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_8_0" dir="t" state="m"/>
+ <connection from="-107167209#1" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_12_0" dir="r" state="m"/>
+ <connection from="-107167209#1" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_13_0" dir="s" state="m"/>
+ <connection from="-107167209#1" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_14_0" dir="l" state="m"/>
+ <connection from="-107167209#1" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_15_0" dir="t" state="m"/>
+ <connection from="-108329425#0" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_4_0" dir="s" state="m"/>
+ <connection from="-108329425#0" to="59159259#0" fromLane="0" toLane="0" via=":733663076_5_0" dir="L" state="m"/>
+ <connection from="-108329425#0" to="105283535#0" fromLane="0" toLane="0" via=":733663076_6_0" dir="l" state="m"/>
+ <connection from="-108329425#0" to="108329425#0" fromLane="0" toLane="0" via=":733663076_7_0" dir="t" state="m"/>
+ <connection from="-108329425#1" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_6_0" dir="r" state="M"/>
+ <connection from="-108329425#1" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_7_0" dir="s" state="M"/>
+ <connection from="-108329425#1" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_8_0" dir="t" state="m"/>
+ <connection from="-108329425#2" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_6_0" dir="r" state="M"/>
+ <connection from="-108329425#2" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_7_0" dir="s" state="M"/>
+ <connection from="-108329425#2" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_8_0" dir="t" state="m"/>
+ <connection from="-108329425#3" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_6_0" dir="s" state="M"/>
+ <connection from="-108329425#3" to="105254618" fromLane="0" toLane="0" via=":1212960877_7_0" dir="r" state="M"/>
+ <connection from="-108329425#3" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_8_0" dir="t" state="m"/>
+ <connection from="-108329425#4" to="-108329425#3" fromLane="0" toLane="0" via=":1323557968_3_0" dir="s" state="M"/>
+ <connection from="-108329425#4" to="117492209" fromLane="0" toLane="0" via=":1323557968_4_0" dir="l" state="m"/>
+ <connection from="-108329425#4" to="108329425#4" fromLane="0" toLane="0" via=":1323557968_5_0" dir="t" state="m"/>
+ <connection from="-108329425#5" to="-108329425#4" fromLane="0" toLane="0" via=":429179805_3_0" dir="s" state="M"/>
+ <connection from="-108329425#5" to="37942667#0" fromLane="0" toLane="0" via=":429179805_4_0" dir="l" state="m"/>
+ <connection from="-108329425#5" to="108329425#5" fromLane="0" toLane="0" via=":429179805_5_0" dir="t" state="m"/>
+ <connection from="-108329426#0" to="81523330#4" fromLane="0" toLane="0" via=":1243159116_4_0" dir="s" state="m"/>
+ <connection from="-108329426#0" to="-81523330#3" fromLane="0" toLane="1" via=":1243159116_5_0" dir="l" state="m"/>
+ <connection from="-108329426#0" to="108329426#0" fromLane="0" toLane="0" via=":1243159116_6_0" dir="t" state="m"/>
+ <connection from="-108329426#1" to="44641744#1" fromLane="0" toLane="0" via=":427996792_15_0" tl="427996792" linkIndex="15" dir="r" state="o"/>
+ <connection from="-108329426#1" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_16_0" tl="427996792" linkIndex="16" dir="s" state="o"/>
+ <connection from="-108329426#1" to="108329427#0" fromLane="0" toLane="0" via=":427996792_17_0" tl="427996792" linkIndex="17" dir="s" state="o"/>
+ <connection from="-108329426#1" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_18_0" tl="427996792" linkIndex="18" dir="s" state="o"/>
+ <connection from="-108329426#1" to="108329426#1" fromLane="0" toLane="0" via=":427996792_19_0" tl="427996792" linkIndex="19" dir="t" state="o"/>
+ <connection from="-108329426#2" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_8_0" dir="r" state="M"/>
+ <connection from="-108329426#2" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_9_0" dir="s" state="M"/>
+ <connection from="-108329426#2" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_10_0" dir="l" state="m"/>
+ <connection from="-108329426#2" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_11_0" dir="t" state="m"/>
+ <connection from="-108329427#0" to="108329426#1" fromLane="0" toLane="0" via=":427996792_5_0" tl="427996792" linkIndex="5" dir="s" state="o"/>
+ <connection from="-108329427#0" to="44641744#1" fromLane="0" toLane="0" via=":427996792_6_0" tl="427996792" linkIndex="6" dir="L" state="o"/>
+ <connection from="-108329427#0" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_7_0" tl="427996792" linkIndex="7" dir="l" state="o"/>
+ <connection from="-108329427#0" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_8_0" tl="427996792" linkIndex="8" dir="L" state="o"/>
+ <connection from="-108329427#0" to="108329427#0" fromLane="0" toLane="0" via=":427996792_9_0" tl="427996792" linkIndex="9" dir="t" state="o"/>
+ <connection from="-108329427#1" to="-81523330#2" fromLane="0" toLane="0" via=":1263725264_0_0" dir="r" state="m"/>
+ <connection from="-108329427#1" to="-108329427#0" fromLane="0" toLane="0" via=":1263725264_1_0" dir="s" state="m"/>
+ <connection from="-108329427#1" to="81523330#3" fromLane="0" toLane="1" via=":1263725264_2_0" dir="l" state="m"/>
+ <connection from="-108329427#1" to="108329427#1" fromLane="0" toLane="0" via=":1263725264_3_0" dir="t" state="m"/>
+ <connection from="-108329427#2" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_0_0" dir="r" state="M"/>
+ <connection from="-108329427#2" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_1_0" dir="s" state="M"/>
+ <connection from="-108329427#2" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_2_0" dir="l" state="m"/>
+ <connection from="-108329427#2" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_3_0" dir="t" state="m"/>
+ <connection from="-108733421" to="154844467" fromLane="0" toLane="0" via=":1246731574_0_0" dir="r" state="M"/>
+ <connection from="-108733421" to="108733421" fromLane="0" toLane="0" via=":1246731574_1_0" dir="t" state="m"/>
+ <connection from="-108733422" to="170590352" fromLane="0" toLane="0" via=":1246731620_0_0" dir="r" state="M"/>
+ <connection from="-108733422" to="108733422" fromLane="0" toLane="0" via=":1246731620_1_0" dir="t" state="m"/>
+ <connection from="-108733424" to="170594822#3" fromLane="0" toLane="0" via=":1246731470_3_0" dir="r" state="M"/>
+ <connection from="-108733424" to="108733424" fromLane="0" toLane="0" via=":1246731470_4_0" dir="t" state="m"/>
+ <connection from="-108733425" to="154844465#4" fromLane="0" toLane="0" via=":1246731504_0_0" dir="r" state="M"/>
+ <connection from="-108733425" to="108733425" fromLane="0" toLane="0" via=":1246731504_1_0" dir="t" state="m"/>
+ <connection from="-108733428" to="154844461#3" fromLane="0" toLane="0" via=":1246731455_3_0" dir="r" state="M"/>
+ <connection from="-108733428" to="101272429#0" fromLane="0" toLane="0" via=":1246731455_4_0" dir="l" state="m"/>
+ <connection from="-108733428" to="108733428" fromLane="0" toLane="0" via=":1246731455_5_0" dir="t" state="m"/>
+ <connection from="-108733429" to="154844485#1" fromLane="0" toLane="0" via=":1246731647_3_0" dir="r" state="M"/>
+ <connection from="-108733429" to="108733429" fromLane="0" toLane="0" via=":1246731647_4_0" dir="t" state="m"/>
+ <connection from="-108733430" to="154844489#1" fromLane="0" toLane="0" via=":1246731482_2_0" dir="r" state="M"/>
+ <connection from="-108733430" to="108733430" fromLane="0" toLane="0" via=":1246731482_3_0" dir="t" state="m"/>
+ <connection from="-108733431" to="111549913#6" fromLane="0" toLane="0" via=":1246731601_0_0" dir="r" state="M"/>
+ <connection from="-108733431" to="108733431" fromLane="0" toLane="0" via=":1246731601_1_0" dir="t" state="m"/>
+ <connection from="-109912567#0" to="-109912572#4" fromLane="0" toLane="0" via=":1257054077_2_0" dir="s" state="M"/>
+ <connection from="-109912567#0" to="109912567#0" fromLane="0" toLane="0" via=":1257054077_3_0" dir="t" state="m"/>
+ <connection from="-109912567#1" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_12_0" dir="r" state="m"/>
+ <connection from="-109912567#1" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_13_0" dir="s" state="m"/>
+ <connection from="-109912567#1" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_14_0" dir="l" state="m"/>
+ <connection from="-109912567#1" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_15_0" dir="t" state="m"/>
+ <connection from="-109912568" to="109912568" fromLane="0" toLane="0" via=":1257054196_0_0" dir="t" state="M"/>
+ <connection from="-109912572#0" to="38319546#5" fromLane="0" toLane="0" via=":1257054178_6_0" dir="r" state="="/>
+ <connection from="-109912572#0" to="-38319546#4" fromLane="0" toLane="0" via=":1257054178_7_0" dir="l" state="="/>
+ <connection from="-109912572#0" to="109912572#0" fromLane="0" toLane="0" via=":1257054178_8_0" dir="t" state="="/>
+ <connection from="-109912572#1" to="-109912572#0" fromLane="0" toLane="0" via=":1257054155_6_0" dir="s" state="m"/>
+ <connection from="-109912572#1" to="37449253#4" fromLane="0" toLane="0" via=":1257054155_7_0" dir="l" state="m"/>
+ <connection from="-109912572#1" to="109912572#1" fromLane="0" toLane="0" via=":1257054155_8_0" dir="t" state="m"/>
+ <connection from="-109912572#2" to="-109912572#1" fromLane="0" toLane="0" via=":1257054108_7_0" dir="s" state="m"/>
+ <connection from="-109912572#2" to="133960538#2" fromLane="0" toLane="1" via=":1257054108_8_0" dir="l" state="m"/>
+ <connection from="-109912572#2" to="109912572#2" fromLane="0" toLane="0" via=":1257054108_9_0" dir="t" state="m"/>
+ <connection from="-109912572#3" to="81394162#1" fromLane="0" toLane="0" via=":1257054092_7_0" dir="r" state="m"/>
+ <connection from="-109912572#3" to="-109912572#2" fromLane="0" toLane="0" via=":1257054092_8_0" dir="s" state="m"/>
+ <connection from="-109912572#3" to="109912572#3" fromLane="0" toLane="0" via=":1257054092_9_0" dir="t" state="m"/>
+ <connection from="-109912572#4" to="37449245#1" fromLane="0" toLane="0" via=":1257054165_6_0" dir="r" state="m"/>
+ <connection from="-109912572#4" to="-109912572#3" fromLane="0" toLane="0" via=":1257054165_7_0" dir="s" state="m"/>
+ <connection from="-109912572#4" to="109912572#4" fromLane="0" toLane="0" via=":1257054165_8_0" dir="t" state="m"/>
+ <connection from="-110514869#0" to="44738605#0" fromLane="0" toLane="0" via=":1261880295_0_0" dir="s" state="M"/>
+ <connection from="-110514869#0" to="110514869#0" fromLane="1" toLane="1" via=":1261880295_1_0" dir="t" state="m"/>
+ <connection from="-110514869#1" to="-110514869#0" fromLane="0" toLane="0" via=":252417189_3_0" dir="s" state="M"/>
+ <connection from="-110514869#1" to="-110514869#0" fromLane="1" toLane="1" via=":252417189_4_0" dir="s" state="M"/>
+ <connection from="-110514869#1" to="58770725#5" fromLane="1" toLane="0" via=":252417189_5_0" dir="l" state="m"/>
+ <connection from="-110514869#1" to="110514869#1" fromLane="1" toLane="1" via=":252417189_6_0" dir="t" state="m"/>
+ <connection from="-110514869#2" to="-110514869#1" fromLane="0" toLane="0" via=":443089063_3_0" tl="443089063" linkIndex="3" dir="s" state="o"/>
+ <connection from="-110514869#2" to="-110514869#1" fromLane="1" toLane="1" via=":443089063_4_0" tl="443089063" linkIndex="4" dir="s" state="o"/>
+ <connection from="-110514869#2" to="37771900#6" fromLane="1" toLane="0" via=":443089063_5_0" tl="443089063" linkIndex="5" dir="l" state="o"/>
+ <connection from="-110514869#2" to="110514869#2" fromLane="1" toLane="1" via=":443089063_6_0" tl="443089063" linkIndex="6" dir="t" state="o"/>
+ <connection from="-122394833#0" to="122394833#0" fromLane="0" toLane="0" via=":1367855969_0_0" dir="t" state="M"/>
+ <connection from="-122394833#1" to="23182387#4" fromLane="0" toLane="0" via=":1367855932_3_0" dir="r" state="m"/>
+ <connection from="-122394833#1" to="-122394833#0" fromLane="0" toLane="0" via=":1367855932_4_0" dir="s" state="m"/>
+ <connection from="-122394833#1" to="122394833#1" fromLane="0" toLane="0" via=":1367855932_5_0" dir="t" state="m"/>
+ <connection from="-122394833#2" to="122394859" fromLane="0" toLane="0" via=":1367855931_6_0" dir="r" state="="/>
+ <connection from="-122394833#2" to="-122394833#1" fromLane="0" toLane="0" via=":1367855931_7_0" dir="s" state="="/>
+ <connection from="-122394833#2" to="122394833#2" fromLane="0" toLane="0" via=":1367855931_8_0" dir="t" state="="/>
+ <connection from="-122394833#3" to="122394845" fromLane="0" toLane="0" via=":1367855930_6_0" dir="r" state="="/>
+ <connection from="-122394833#3" to="-122394833#2" fromLane="0" toLane="0" via=":1367855930_7_0" dir="s" state="="/>
+ <connection from="-122394833#3" to="122394833#3" fromLane="0" toLane="0" via=":1367855930_8_0" dir="t" state="="/>
+ <connection from="-122394833#4" to="122394853" fromLane="0" toLane="0" via=":1367855929_6_0" dir="s" state="="/>
+ <connection from="-122394833#4" to="-122394833#3" fromLane="0" toLane="0" via=":1367855929_7_0" dir="s" state="="/>
+ <connection from="-122394833#4" to="122394833#4" fromLane="0" toLane="0" via=":1367855929_8_0" dir="t" state="="/>
+ <connection from="-122394833#5" to="122394864#0" fromLane="0" toLane="0" via=":1367855927_6_0" dir="r" state="="/>
+ <connection from="-122394833#5" to="-122394833#4" fromLane="0" toLane="0" via=":1367855927_7_0" dir="s" state="="/>
+ <connection from="-122394833#5" to="122394833#5" fromLane="0" toLane="0" via=":1367855927_8_0" dir="t" state="="/>
+ <connection from="-122394834" to="-122394853" fromLane="0" toLane="0" via=":1367855907_0_0" dir="s" state="M"/>
+ <connection from="-122394834" to="122394834" fromLane="0" toLane="0" via=":1367855907_1_0" dir="t" state="m"/>
+ <connection from="-122394841#0" to="-122394860" fromLane="0" toLane="0" via=":1367855909_4_0" dir="r" state="M"/>
+ <connection from="-122394841#0" to="-122394845" fromLane="0" toLane="0" via=":1367855909_5_0" dir="s" state="M"/>
+ <connection from="-122394841#0" to="-122394834" fromLane="0" toLane="0" via=":1367855909_6_0" dir="l" state="m"/>
+ <connection from="-122394841#0" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_7_0" dir="t" state="m"/>
+ <connection from="-122394841#1" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_4_0" dir="r" state="M"/>
+ <connection from="-122394841#1" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_5_0" dir="s" state="M"/>
+ <connection from="-122394841#1" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_6_0" dir="l" state="m"/>
+ <connection from="-122394841#1" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_7_0" dir="t" state="m"/>
+ <connection from="-122394841#2" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_4_0" dir="r" state="M"/>
+ <connection from="-122394841#2" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_5_0" dir="s" state="M"/>
+ <connection from="-122394841#2" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_6_0" dir="l" state="m"/>
+ <connection from="-122394841#2" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_7_0" dir="t" state="m"/>
+ <connection from="-122394841#3" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_4_0" dir="r" state="M"/>
+ <connection from="-122394841#3" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_5_0" dir="s" state="M"/>
+ <connection from="-122394841#3" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_6_0" dir="l" state="m"/>
+ <connection from="-122394841#3" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_7_0" dir="t" state="m"/>
+ <connection from="-122394845" to="-122394833#2" fromLane="0" toLane="0" via=":1367855930_3_0" dir="r" state="="/>
+ <connection from="-122394845" to="122394833#3" fromLane="0" toLane="0" via=":1367855930_4_0" dir="l" state="="/>
+ <connection from="-122394845" to="122394845" fromLane="0" toLane="0" via=":1367855930_5_0" dir="t" state="="/>
+ <connection from="-122394853" to="-122394833#3" fromLane="0" toLane="0" via=":1367855929_3_0" dir="r" state="="/>
+ <connection from="-122394853" to="122394833#4" fromLane="0" toLane="0" via=":1367855929_4_0" dir="s" state="="/>
+ <connection from="-122394853" to="122394853" fromLane="0" toLane="0" via=":1367855929_5_0" dir="t" state="="/>
+ <connection from="-122394859" to="-122394833#1" fromLane="0" toLane="0" via=":1367855931_3_0" dir="s" state="="/>
+ <connection from="-122394859" to="122394833#2" fromLane="0" toLane="0" via=":1367855931_4_0" dir="l" state="="/>
+ <connection from="-122394859" to="122394859" fromLane="0" toLane="0" via=":1367855931_5_0" dir="t" state="="/>
+ <connection from="-122394860" to="-122394859" fromLane="0" toLane="0" via=":1367855910_0_0" dir="s" state="M"/>
+ <connection from="-122394860" to="122394860" fromLane="0" toLane="0" via=":1367855910_1_0" dir="t" state="m"/>
+ <connection from="-122394864#0" to="-122394833#4" fromLane="0" toLane="0" via=":1367855927_3_0" dir="r" state="="/>
+ <connection from="-122394864#0" to="122394833#5" fromLane="0" toLane="0" via=":1367855927_4_0" dir="l" state="="/>
+ <connection from="-122394864#0" to="122394864#0" fromLane="0" toLane="0" via=":1367855927_5_0" dir="t" state="="/>
+ <connection from="-122394864#1" to="-122394864#0" fromLane="0" toLane="0" via=":1367855926_3_0" dir="s" state="m"/>
+ <connection from="-122394864#1" to="130443635#2" fromLane="0" toLane="0" via=":1367855926_4_0" dir="l" state="m"/>
+ <connection from="-122394864#1" to="122394864#1" fromLane="0" toLane="0" via=":1367855926_5_0" dir="t" state="m"/>
+ <connection from="-122394864#2" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_4_0" dir="r" state="M"/>
+ <connection from="-122394864#2" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_5_0" dir="s" state="M"/>
+ <connection from="-122394864#2" to="38318373#1" fromLane="0" toLane="0" via=":314636763_6_0" dir="l" state="m"/>
+ <connection from="-122394864#2" to="122394864#2" fromLane="0" toLane="0" via=":314636763_7_0" dir="t" state="m"/>
+ <connection from="-122641556#0" to="122641556#0" fromLane="0" toLane="0" via=":1369844758_0_0" dir="t" state="M"/>
+ <connection from="-122641556#1" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_8_0" dir="r" state="m"/>
+ <connection from="-122641556#1" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_9_0" dir="s" state="m"/>
+ <connection from="-122641556#1" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_10_0" dir="l" state="m"/>
+ <connection from="-122641556#1" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_11_0" dir="t" state="m"/>
+ <connection from="-122641557" to="122641557" fromLane="0" toLane="0" via=":1369844780_0_0" dir="t" state="M"/>
+ <connection from="-122641559#0" to="122641559#0" fromLane="0" toLane="0" via=":1369844756_0_0" dir="t" state="M"/>
+ <connection from="-122641559#1" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_8_0" dir="r" state="m"/>
+ <connection from="-122641559#1" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_9_0" dir="s" state="m"/>
+ <connection from="-122641559#1" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_10_0" dir="l" state="m"/>
+ <connection from="-122641559#1" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_11_0" dir="t" state="m"/>
+ <connection from="-122641560#0" to="122641560#0" fromLane="0" toLane="0" via=":1369844763_0_0" dir="t" state="M"/>
+ <connection from="-122641560#1" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_8_0" dir="r" state="m"/>
+ <connection from="-122641560#1" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_9_0" dir="s" state="m"/>
+ <connection from="-122641560#1" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_10_0" dir="l" state="m"/>
+ <connection from="-122641560#1" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_11_0" dir="t" state="m"/>
+ <connection from="-129780022#0" to="-154409621" fromLane="0" toLane="0" via=":248913124_6_0" dir="s" state="M"/>
+ <connection from="-129780022#0" to="129780026#2" fromLane="0" toLane="0" via=":248913124_7_0" dir="l" state="m"/>
+ <connection from="-129780022#0" to="129780022#0" fromLane="0" toLane="0" via=":248913124_8_0" dir="t" state="m"/>
+ <connection from="-129780022#1" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_12_0" dir="r" state="M"/>
+ <connection from="-129780022#1" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_13_0" dir="s" state="M"/>
+ <connection from="-129780022#1" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_14_0" dir="l" state="m"/>
+ <connection from="-129780022#1" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_15_0" dir="t" state="m"/>
+ <connection from="-129780022#2" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_6_0" dir="s" state="M"/>
+ <connection from="-129780022#2" to="37449253#7" fromLane="0" toLane="0" via=":13929747_7_0" dir="l" state="m"/>
+ <connection from="-129780022#2" to="129780022#2" fromLane="0" toLane="0" via=":13929747_8_0" dir="t" state="m"/>
+ <connection from="-129780022#3" to="144874012#1" fromLane="0" toLane="0" via=":435668534_6_0" dir="r" state="M"/>
+ <connection from="-129780022#3" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_7_0" dir="s" state="M"/>
+ <connection from="-129780022#3" to="129780022#3" fromLane="0" toLane="0" via=":435668534_8_0" dir="t" state="m"/>
+ <connection from="-129780022#4" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_12_0" dir="r" state="m"/>
+ <connection from="-129780022#4" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_13_0" dir="s" state="m"/>
+ <connection from="-129780022#4" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_14_0" dir="l" state="m"/>
+ <connection from="-129780022#4" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_15_0" dir="t" state="m"/>
+ <connection from="-129780022#5" to="23315111#2" fromLane="0" toLane="0" via=":427996791_12_0" tl="427996791" linkIndex="12" dir="r" state="o"/>
+ <connection from="-129780022#5" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_13_0" tl="427996791" linkIndex="13" dir="s" state="o"/>
+ <connection from="-129780022#5" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_14_0" tl="427996791" linkIndex="14" dir="l" state="o"/>
+ <connection from="-129780022#5" to="129780022#5" fromLane="0" toLane="0" via=":427996791_15_0" tl="427996791" linkIndex="15" dir="t" state="o"/>
+ <connection from="-130443629#0" to="38230510#0" fromLane="0" toLane="0" via=":250685721_0_0" dir="r" state="M"/>
+ <connection from="-130443629#0" to="130443629#0" fromLane="0" toLane="0" via=":250685721_1_0" dir="t" state="M"/>
+ <connection from="-130443629#1" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_15_0" dir="s" state="m"/>
+ <connection from="-130443629#1" to="133868191#0" fromLane="0" toLane="3" via=":243489891_16_0" dir="l" state="m"/>
+ <connection from="-130443629#1" to="130443629#1" fromLane="0" toLane="0" via=":243489891_17_0" dir="t" state="m"/>
+ <connection from="-130443629#2" to="81394200#2" fromLane="0" toLane="0" via=":948350640_8_0" dir="r" state="m"/>
+ <connection from="-130443629#2" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_9_0" dir="s" state="m"/>
+ <connection from="-130443629#2" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_10_0" dir="l" state="m"/>
+ <connection from="-130443629#2" to="130443629#2" fromLane="0" toLane="0" via=":948350640_11_0" dir="t" state="m"/>
+ <connection from="-130443629#3" to="37351086#0" fromLane="0" toLane="0" via=":435668511_4_0" dir="r" state="m"/>
+ <connection from="-130443629#3" to="37369047#2" fromLane="0" toLane="0" via=":435668511_5_0" dir="R" state="M"/>
+ <connection from="-130443629#3" to="-130443629#2" fromLane="0" toLane="0" via=":435668511_6_0" dir="s" state="m"/>
+ <connection from="-130443629#3" to="130443629#3" fromLane="0" toLane="0" via=":435668511_7_0" dir="t" state="m"/>
+ <connection from="-130443629#4" to="81394169#2" fromLane="0" toLane="0" via=":948350615_3_0" dir="s" state="m"/>
+ <connection from="-130443629#4" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_4_0" dir="s" state="m"/>
+ <connection from="-130443629#4" to="130443629#4" fromLane="0" toLane="0" via=":948350615_5_0" dir="t" state="m"/>
+ <connection from="-130443629#5" to="134572336#3" fromLane="0" toLane="0" via=":428303370_3_0" dir="s" state="M"/>
+ <connection from="-130443629#5" to="-130443629#4" fromLane="0" toLane="0" via=":428303370_4_0" dir="s" state="M"/>
+ <connection from="-130443629#5" to="130443629#5" fromLane="0" toLane="0" via=":428303370_5_0" dir="t" state="m"/>
+ <connection from="-130443629#6" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_4_0" dir="s" state="M"/>
+ <connection from="-130443629#6" to="130443629#6" fromLane="0" toLane="0" via=":445506221_5_0" dir="t" state="m"/>
+ <connection from="-130443629#7" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_2_0" dir="s" state="M"/>
+ <connection from="-130443629#7" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_3_0" dir="t" state="m"/>
+ <connection from="-130443629#8" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_8_0" dir="r" state="M"/>
+ <connection from="-130443629#8" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_9_0" dir="s" state="M"/>
+ <connection from="-130443629#8" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_10_0" dir="l" state="m"/>
+ <connection from="-130443629#8" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_11_0" dir="t" state="m"/>
+ <connection from="-130443630#0" to="105251811#0" fromLane="0" toLane="0" via=":552842256_12_0" dir="r" state="m"/>
+ <connection from="-130443630#0" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_13_0" dir="R" state="m"/>
+ <connection from="-130443630#0" to="-37973566" fromLane="0" toLane="0" via=":552842256_14_0" dir="s" state="m"/>
+ <connection from="-130443630#0" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_15_0" dir="L" state="m"/>
+ <connection from="-130443630#0" to="43684741#0" fromLane="0" toLane="0" via=":552842256_16_0" dir="l" state="m"/>
+ <connection from="-130443630#0" to="130443630#0" fromLane="0" toLane="0" via=":552842256_17_0" dir="t" state="m"/>
+ <connection from="-130443630#1" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_3_0" dir="r" state="M"/>
+ <connection from="-130443630#1" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_4_0" dir="s" state="M"/>
+ <connection from="-130443630#1" to="130443630#1" fromLane="0" toLane="0" via=":445506220_5_0" dir="t" state="m"/>
+ <connection from="-130443630#10" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_3_0" dir="r" state="M"/>
+ <connection from="-130443630#10" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_4_0" dir="s" state="M"/>
+ <connection from="-130443630#10" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_5_0" dir="t" state="m"/>
+ <connection from="-130443630#11" to="166576459" fromLane="0" toLane="0" via=":1780219355_3_0" dir="r" state="M"/>
+ <connection from="-130443630#11" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_4_0" dir="s" state="M"/>
+ <connection from="-130443630#11" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_5_0" dir="t" state="m"/>
+ <connection from="-130443630#2" to="83038923#0" fromLane="0" toLane="0" via=":966097869_3_0" dir="r" state="M"/>
+ <connection from="-130443630#2" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_4_0" dir="s" state="M"/>
+ <connection from="-130443630#2" to="130443630#2" fromLane="0" toLane="0" via=":966097869_5_0" dir="t" state="m"/>
+ <connection from="-130443630#3" to="-105254618" fromLane="0" toLane="0" via=":1634988377_3_0" dir="r" state="M"/>
+ <connection from="-130443630#3" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_4_0" dir="s" state="M"/>
+ <connection from="-130443630#3" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_5_0" dir="t" state="m"/>
+ <connection from="-130443630#4" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_0_0" dir="s" state="M"/>
+ <connection from="-130443630#4" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_1_0" dir="t" state="m"/>
+ <connection from="-130443630#5" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_3_0" tl="446017744" linkIndex="3" dir="s" state="o"/>
+ <connection from="-130443630#5" to="37973569#6" fromLane="0" toLane="0" via=":446017744_4_0" tl="446017744" linkIndex="4" dir="l" state="o"/>
+ <connection from="-130443630#5" to="130443630#5" fromLane="0" toLane="0" via=":446017744_5_0" tl="446017744" linkIndex="5" dir="t" state="o"/>
+ <connection from="-130443630#6" to="-130443630#5" fromLane="0" toLane="0" via=":950640413_3_0" dir="s" state="m"/>
+ <connection from="-130443630#6" to="111863125#6" fromLane="0" toLane="0" via=":950640413_4_0" dir="l" state="m"/>
+ <connection from="-130443630#6" to="130443630#6" fromLane="0" toLane="0" via=":950640413_5_0" dir="t" state="m"/>
+ <connection from="-130443630#7" to="-37973572#1" fromLane="0" toLane="0" via=":30406599_5_0" tl="30406599" linkIndex="5" dir="r" state="o"/>
+ <connection from="-130443630#7" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_6_0" tl="30406599" linkIndex="6" dir="s" state="o"/>
+ <connection from="-130443630#7" to="37973572#2" fromLane="0" toLane="1" via=":30406599_7_0" tl="30406599" linkIndex="7" dir="l" state="o"/>
+ <connection from="-130443630#7" to="130443630#7" fromLane="0" toLane="0" via=":30406599_8_0" tl="30406599" linkIndex="8" dir="t" state="o"/>
+ <connection from="-130443630#8" to="111549913#3" fromLane="0" toLane="0" via=":950640411_0_0" dir="r" state="m"/>
+ <connection from="-130443630#8" to="-130443630#7" fromLane="0" toLane="0" via=":950640411_1_0" dir="s" state="m"/>
+ <connection from="-130443630#8" to="130443630#8" fromLane="0" toLane="0" via=":950640411_2_0" dir="t" state="m"/>
+ <connection from="-130443630#9" to="37973568#4" fromLane="0" toLane="0" via=":446017741_0_0" tl="446017741" linkIndex="0" dir="r" state="o"/>
+ <connection from="-130443630#9" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_1_0" tl="446017741" linkIndex="1" dir="s" state="o"/>
+ <connection from="-130443630#9" to="130443630#9" fromLane="0" toLane="0" via=":446017741_2_0" tl="446017741" linkIndex="2" dir="t" state="o"/>
+ <connection from="-132323955" to="139118804#0" fromLane="0" toLane="0" via=":320879142_0_0" dir="r" state="M"/>
+ <connection from="-132323955" to="129780020" fromLane="0" toLane="0" via=":320879142_1_0" dir="R" state="M"/>
+ <connection from="-132323955" to="132323955" fromLane="0" toLane="0" via=":320879142_2_0" dir="t" state="m"/>
+ <connection from="-133868229#0" to="133868186" fromLane="0" toLane="0" via=":948350707_0_0" dir="r" state="M"/>
+ <connection from="-133868229#0" to="81394169#4" fromLane="0" toLane="0" via=":948350707_1_0" dir="R" state="M"/>
+ <connection from="-133868229#0" to="-81394200#2" fromLane="1" toLane="0" via=":948350707_2_0" dir="s" state="M"/>
+ <connection from="-133868229#0" to="133868229#0" fromLane="1" toLane="1" via=":948350707_3_0" dir="t" state="m"/>
+ <connection from="-133868229#1" to="37973565#6" fromLane="0" toLane="0" via=":948350588_0_0" dir="r" state="M"/>
+ <connection from="-133868229#1" to="-133868229#0" fromLane="0" toLane="0" via=":948350588_1_0" dir="s" state="M"/>
+ <connection from="-133868229#1" to="-133868229#0" fromLane="1" toLane="1" via=":948350588_2_0" dir="s" state="M"/>
+ <connection from="-133868229#1" to="133868229#1" fromLane="1" toLane="1" via=":948350588_3_0" dir="t" state="m"/>
+ <connection from="-134872478" to="59159266#1" fromLane="0" toLane="0" via=":1482088973_0_0" dir="r" state="m"/>
+ <connection from="-134872478" to="134872478" fromLane="0" toLane="0" via=":1482088973_1_0" dir="t" state="m"/>
+ <connection from="-139118805#0" to="-81523330#4" fromLane="0" toLane="0" via=":950094494_3_0" dir="s" state="M"/>
+ <connection from="-139118805#0" to="-81523330#4" fromLane="1" toLane="1" via=":950094494_4_0" dir="s" state="M"/>
+ <connection from="-139118805#0" to="139118808" fromLane="1" toLane="0" via=":950094494_5_0" dir="l" state="m"/>
+ <connection from="-139118805#0" to="139118805#0" fromLane="1" toLane="1" via=":950094494_6_0" dir="t" state="m"/>
+ <connection from="-139118805#1" to="37449253#6" fromLane="0" toLane="0" via=":974693391_0_0" dir="r" state="M"/>
+ <connection from="-139118805#1" to="-139118805#0" fromLane="0" toLane="0" via=":974693391_1_0" dir="s" state="M"/>
+ <connection from="-139118805#1" to="-139118805#0" fromLane="1" toLane="1" via=":974693391_2_0" dir="s" state="M"/>
+ <connection from="-139118805#1" to="139118805#1" fromLane="1" toLane="1" via=":974693391_3_0" dir="t" state="m"/>
+ <connection from="-139118805#2" to="-38319546#2" fromLane="0" toLane="0" via=":1257054172_4_0" dir="r" state="M"/>
+ <connection from="-139118805#2" to="-139118805#1" fromLane="0" toLane="0" via=":1257054172_5_0" dir="s" state="M"/>
+ <connection from="-139118805#2" to="-139118805#1" fromLane="1" toLane="1" via=":1257054172_6_0" dir="s" state="M"/>
+ <connection from="-139118805#2" to="38319546#3" fromLane="1" toLane="0" via=":1257054172_7_0" dir="l" state="m"/>
+ <connection from="-139118805#2" to="139118805#2" fromLane="1" toLane="1" via=":1257054172_8_0" dir="t" state="m"/>
+ <connection from="-141191247#0" to="141191263#1" fromLane="0" toLane="0" via=":1545672819_6_0" dir="r" state="="/>
+ <connection from="-141191247#0" to="-141191263#0" fromLane="0" toLane="0" via=":1545672819_7_0" dir="s" state="="/>
+ <connection from="-141191247#0" to="141191247#0" fromLane="0" toLane="0" via=":1545672819_8_0" dir="t" state="="/>
+ <connection from="-141191247#1" to="141191260#1" fromLane="0" toLane="0" via=":1545672806_6_0" dir="l" state="m"/>
+ <connection from="-141191247#1" to="-141191247#0" fromLane="0" toLane="0" via=":1545672806_7_0" dir="s" state="m"/>
+ <connection from="-141191247#1" to="141191247#1" fromLane="0" toLane="0" via=":1545672806_8_0" dir="t" state="m"/>
+ <connection from="-141191247#2" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_0_0" dir="r" state="="/>
+ <connection from="-141191247#2" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_1_0" dir="s" state="="/>
+ <connection from="-141191247#2" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_2_0" dir="l" state="="/>
+ <connection from="-141191247#2" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_3_0" dir="t" state="="/>
+ <connection from="-141191247#3" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_0_0" dir="r" state="="/>
+ <connection from="-141191247#3" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_1_0" dir="s" state="="/>
+ <connection from="-141191247#3" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_2_0" dir="l" state="="/>
+ <connection from="-141191247#3" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_3_0" dir="t" state="="/>
+ <connection from="-141191247#4" to="141191261#1" fromLane="0" toLane="0" via=":1545673319_0_0" dir="r" state="m"/>
+ <connection from="-141191247#4" to="-141191247#3" fromLane="0" toLane="0" via=":1545673319_1_0" dir="s" state="m"/>
+ <connection from="-141191247#4" to="141191247#4" fromLane="0" toLane="0" via=":1545673319_2_0" dir="t" state="m"/>
+ <connection from="-141191248#0" to="141191250#4" fromLane="0" toLane="0" via=":1545672864_3_0" dir="r" state="="/>
+ <connection from="-141191248#0" to="-141191250#3" fromLane="0" toLane="0" via=":1545672864_4_0" dir="l" state="="/>
+ <connection from="-141191248#0" to="141191248#0" fromLane="0" toLane="0" via=":1545672864_5_0" dir="t" state="="/>
+ <connection from="-141191248#1" to="-141191248#0" fromLane="0" toLane="0" via=":1545672843_3_0" dir="s" state="="/>
+ <connection from="-141191248#1" to="141191263#0" fromLane="0" toLane="0" via=":1545672843_4_0" dir="l" state="="/>
+ <connection from="-141191248#1" to="141191248#1" fromLane="0" toLane="0" via=":1545672843_5_0" dir="t" state="="/>
+ <connection from="-141191248#2" to="-141191248#1" fromLane="0" toLane="0" via=":1545672797_0_0" dir="s" state="="/>
+ <connection from="-141191248#2" to="-141191263#1" fromLane="0" toLane="0" via=":1545672797_1_0" dir="s" state="="/>
+ <connection from="-141191248#2" to="141191248#2" fromLane="0" toLane="0" via=":1545672797_2_0" dir="t" state="="/>
+ <connection from="-141191249#0" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_3_0" dir="r" state="m"/>
+ <connection from="-141191249#0" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_4_0" dir="l" state="m"/>
+ <connection from="-141191249#0" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_5_0" dir="t" state="m"/>
+ <connection from="-141191249#1" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_4_0" dir="r" state="="/>
+ <connection from="-141191249#1" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_5_0" dir="s" state="="/>
+ <connection from="-141191249#1" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_6_0" dir="l" state="="/>
+ <connection from="-141191249#1" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_7_0" dir="t" state="="/>
+ <connection from="-141191249#2" to="-141191249#1" fromLane="0" toLane="0" via=":1545673333_0_0" dir="s" state="="/>
+ <connection from="-141191249#2" to="-141191251#2" fromLane="0" toLane="0" via=":1545673333_1_0" dir="l" state="="/>
+ <connection from="-141191249#2" to="141191249#2" fromLane="0" toLane="0" via=":1545673333_2_0" dir="t" state="="/>
+ <connection from="-141191249#3" to="-141191249#2" fromLane="0" toLane="0" via=":1545673280_0_0" dir="s" state="="/>
+ <connection from="-141191249#3" to="141191251#0" fromLane="0" toLane="0" via=":1545673280_1_0" dir="l" state="="/>
+ <connection from="-141191249#3" to="141191249#3" fromLane="0" toLane="0" via=":1545673280_2_0" dir="t" state="="/>
+ <connection from="-141191249#4" to="-141191253#1" fromLane="0" toLane="0" via=":1545673191_3_0" dir="r" state="="/>
+ <connection from="-141191249#4" to="-141191249#3" fromLane="0" toLane="0" via=":1545673191_4_0" dir="s" state="="/>
+ <connection from="-141191249#4" to="141191249#4" fromLane="0" toLane="0" via=":1545673191_5_0" dir="t" state="="/>
+ <connection from="-141191249#5" to="-141191249#4" fromLane="0" toLane="0" via=":1545673135_0_0" dir="s" state="="/>
+ <connection from="-141191249#5" to="141191254#0" fromLane="0" toLane="0" via=":1545673135_1_0" dir="l" state="="/>
+ <connection from="-141191249#5" to="141191249#5" fromLane="0" toLane="0" via=":1545673135_2_0" dir="t" state="="/>
+ <connection from="-141191250#0" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_3_0" dir="r" state="m"/>
+ <connection from="-141191250#0" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_4_0" dir="l" state="m"/>
+ <connection from="-141191250#0" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_5_0" dir="t" state="m"/>
+ <connection from="-141191250#1" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_4_0" dir="r" state="="/>
+ <connection from="-141191250#1" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_5_0" dir="s" state="="/>
+ <connection from="-141191250#1" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_6_0" dir="l" state="="/>
+ <connection from="-141191250#1" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_7_0" dir="t" state="="/>
+ <connection from="-141191250#2" to="141191264#0" fromLane="0" toLane="0" via=":1545673065_3_0" dir="r" state="="/>
+ <connection from="-141191250#2" to="-141191250#1" fromLane="0" toLane="0" via=":1545673065_4_0" dir="l" state="="/>
+ <connection from="-141191250#2" to="141191250#2" fromLane="0" toLane="0" via=":1545673065_5_0" dir="t" state="="/>
+ <connection from="-141191250#3" to="141191262#0" fromLane="0" toLane="0" via=":1545672874_3_0" dir="r" state="="/>
+ <connection from="-141191250#3" to="-141191250#2" fromLane="0" toLane="0" via=":1545672874_4_0" dir="s" state="="/>
+ <connection from="-141191250#3" to="141191250#3" fromLane="0" toLane="0" via=":1545672874_5_0" dir="t" state="="/>
+ <connection from="-141191250#4" to="-141191250#3" fromLane="0" toLane="0" via=":1545672864_0_0" dir="s" state="="/>
+ <connection from="-141191250#4" to="141191248#0" fromLane="0" toLane="0" via=":1545672864_1_0" dir="l" state="="/>
+ <connection from="-141191250#4" to="141191250#4" fromLane="0" toLane="0" via=":1545672864_2_0" dir="t" state="="/>
+ <connection from="-141191250#5" to="141191252" fromLane="0" toLane="0" via=":1545672804_3_0" dir="r" state="="/>
+ <connection from="-141191250#5" to="-141191250#4" fromLane="0" toLane="0" via=":1545672804_4_0" dir="s" state="="/>
+ <connection from="-141191250#5" to="141191250#5" fromLane="0" toLane="0" via=":1545672804_5_0" dir="t" state="="/>
+ <connection from="-141191251#0" to="141191249#3" fromLane="0" toLane="0" via=":1545673280_3_0" dir="r" state="="/>
+ <connection from="-141191251#0" to="-141191249#2" fromLane="0" toLane="0" via=":1545673280_4_0" dir="l" state="="/>
+ <connection from="-141191251#0" to="141191251#0" fromLane="0" toLane="0" via=":1545673280_5_0" dir="t" state="="/>
+ <connection from="-141191251#1" to="-141191254#2" fromLane="0" toLane="0" via=":1545673218_6_0" dir="r" state="="/>
+ <connection from="-141191251#1" to="-141191251#0" fromLane="0" toLane="0" via=":1545673218_7_0" dir="s" state="="/>
+ <connection from="-141191251#1" to="141191251#1" fromLane="0" toLane="0" via=":1545673218_8_0" dir="t" state="="/>
+ <connection from="-141191251#2" to="141191256#0" fromLane="0" toLane="0" via=":1545673223_6_0" dir="r" state="="/>
+ <connection from="-141191251#2" to="-141191251#1" fromLane="0" toLane="0" via=":1545673223_7_0" dir="s" state="="/>
+ <connection from="-141191251#2" to="141191251#2" fromLane="0" toLane="0" via=":1545673223_8_0" dir="t" state="="/>
+ <connection from="-141191252" to="-141191250#4" fromLane="0" toLane="0" via=":1545672804_0_0" dir="r" state="="/>
+ <connection from="-141191252" to="141191250#5" fromLane="0" toLane="0" via=":1545672804_1_0" dir="l" state="="/>
+ <connection from="-141191252" to="141191252" fromLane="0" toLane="0" via=":1545672804_2_0" dir="t" state="="/>
+ <connection from="-141191253#0" to="-141191258#1" fromLane="0" toLane="0" via=":1545673150_6_0" dir="r" state="="/>
+ <connection from="-141191253#0" to="141191258#2" fromLane="0" toLane="0" via=":1545673150_7_0" dir="l" state="="/>
+ <connection from="-141191253#0" to="141191253#0" fromLane="0" toLane="0" via=":1545673150_8_0" dir="t" state="="/>
+ <connection from="-141191253#1" to="-141191253#0" fromLane="0" toLane="0" via=":1545673240_3_0" dir="s" state="="/>
+ <connection from="-141191253#1" to="-141191258#3" fromLane="0" toLane="0" via=":1545673240_4_0" dir="l" state="="/>
+ <connection from="-141191253#1" to="141191253#1" fromLane="0" toLane="0" via=":1545673240_5_0" dir="t" state="="/>
+ <connection from="-141191254#0" to="141191249#5" fromLane="0" toLane="0" via=":1545673135_3_0" dir="r" state="="/>
+ <connection from="-141191254#0" to="-141191249#4" fromLane="0" toLane="0" via=":1545673135_4_0" dir="l" state="="/>
+ <connection from="-141191254#0" to="141191254#0" fromLane="0" toLane="0" via=":1545673135_5_0" dir="t" state="="/>
+ <connection from="-141191254#1" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_12_0" dir="r" state="="/>
+ <connection from="-141191254#1" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_13_0" dir="s" state="="/>
+ <connection from="-141191254#1" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_14_0" dir="s" state="="/>
+ <connection from="-141191254#1" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_15_0" dir="t" state="="/>
+ <connection from="-141191254#2" to="-141191264#1" fromLane="0" toLane="0" via=":1545673123_6_0" dir="r" state="="/>
+ <connection from="-141191254#2" to="-141191254#1" fromLane="0" toLane="0" via=":1545673123_7_0" dir="s" state="="/>
+ <connection from="-141191254#2" to="141191254#2" fromLane="0" toLane="0" via=":1545673123_8_0" dir="t" state="="/>
+ <connection from="-141191255#0" to="-141191255#1" fromLane="0" toLane="0" via=":1545672923_2_0" dir="r" state="M"/>
+ <connection from="-141191255#0" to="141191255#0" fromLane="0" toLane="0" via=":1545672923_3_0" dir="t" state="m"/>
+ <connection from="-141191255#1" to="-141191257" fromLane="0" toLane="0" via=":1545672999_3_0" dir="r" state="="/>
+ <connection from="-141191255#1" to="-141191255#0" fromLane="0" toLane="0" via=":1545672999_4_0" dir="s" state="="/>
+ <connection from="-141191255#1" to="141191255#1" fromLane="0" toLane="0" via=":1545672999_5_0" dir="t" state="="/>
+ <connection from="-141191256#0" to="-141191251#1" fromLane="0" toLane="0" via=":1545673223_3_0" dir="r" state="="/>
+ <connection from="-141191256#0" to="141191251#2" fromLane="0" toLane="0" via=":1545673223_4_0" dir="l" state="="/>
+ <connection from="-141191256#0" to="141191256#0" fromLane="0" toLane="0" via=":1545673223_5_0" dir="t" state="="/>
+ <connection from="-141191256#1" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_4_0" dir="r" state="="/>
+ <connection from="-141191256#1" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_5_0" dir="s" state="="/>
+ <connection from="-141191256#1" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_6_0" dir="l" state="="/>
+ <connection from="-141191256#1" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_7_0" dir="t" state="="/>
+ <connection from="-141191256#2" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_4_0" dir="r" state="="/>
+ <connection from="-141191256#2" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_5_0" dir="s" state="="/>
+ <connection from="-141191256#2" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_6_0" dir="l" state="="/>
+ <connection from="-141191256#2" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_7_0" dir="t" state="="/>
+ <connection from="-141191257" to="141191259#4" fromLane="0" toLane="0" via=":1545673030_3_0" dir="r" state="="/>
+ <connection from="-141191257" to="-141191259#3" fromLane="0" toLane="0" via=":1545673030_4_0" dir="l" state="="/>
+ <connection from="-141191257" to="141191257" fromLane="0" toLane="0" via=":1545673030_5_0" dir="t" state="="/>
+ <connection from="-141191258#0" to="-141191259#4" fromLane="0" toLane="0" via=":1545672954_0_0" dir="r" state="="/>
+ <connection from="-141191258#0" to="141191259#5" fromLane="0" toLane="0" via=":1545672954_1_0" dir="l" state="="/>
+ <connection from="-141191258#0" to="141191258#0" fromLane="0" toLane="0" via=":1545672954_2_0" dir="t" state="="/>
+ <connection from="-141191258#1" to="-141191249#5" fromLane="0" toLane="0" via=":1545673031_0_0" dir="r" state="="/>
+ <connection from="-141191258#1" to="-141191258#0" fromLane="0" toLane="0" via=":1545673031_1_0" dir="s" state="="/>
+ <connection from="-141191258#1" to="141191258#1" fromLane="0" toLane="0" via=":1545673031_2_0" dir="t" state="="/>
+ <connection from="-141191258#2" to="141191253#0" fromLane="0" toLane="0" via=":1545673150_0_0" dir="r" state="="/>
+ <connection from="-141191258#2" to="-141191258#1" fromLane="0" toLane="0" via=":1545673150_1_0" dir="s" state="="/>
+ <connection from="-141191258#2" to="141191258#2" fromLane="0" toLane="0" via=":1545673150_2_0" dir="t" state="="/>
+ <connection from="-141191258#3" to="-141191258#2" fromLane="0" toLane="0" via=":1545673304_6_0" dir="s" state="="/>
+ <connection from="-141191258#3" to="-141191247#4" fromLane="0" toLane="0" via=":1545673304_7_0" dir="l" state="="/>
+ <connection from="-141191258#3" to="141191258#3" fromLane="0" toLane="0" via=":1545673304_8_0" dir="t" state="="/>
+ <connection from="-141191259#0" to="-141191259#5" fromLane="0" toLane="0" via=":1545672852_2_0" dir="s" state="M"/>
+ <connection from="-141191259#0" to="141191259#0" fromLane="0" toLane="0" via=":1545672852_3_0" dir="t" state="m"/>
+ <connection from="-141191259#1" to="-141191252" fromLane="0" toLane="0" via=":1545672824_6_0" dir="r" state="="/>
+ <connection from="-141191259#1" to="-141191259#0" fromLane="0" toLane="0" via=":1545672824_7_0" dir="s" state="="/>
+ <connection from="-141191259#1" to="141191259#1" fromLane="0" toLane="0" via=":1545672824_8_0" dir="t" state="="/>
+ <connection from="-141191259#2" to="-141191256#2" fromLane="0" toLane="0" via=":1545672910_0_0" dir="r" state="="/>
+ <connection from="-141191259#2" to="-141191259#1" fromLane="0" toLane="0" via=":1545672910_1_0" dir="s" state="="/>
+ <connection from="-141191259#2" to="141191259#2" fromLane="0" toLane="0" via=":1545672910_2_0" dir="t" state="="/>
+ <connection from="-141191259#3" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_4_0" dir="r" state="="/>
+ <connection from="-141191259#3" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_5_0" dir="s" state="="/>
+ <connection from="-141191259#3" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_6_0" dir="s" state="="/>
+ <connection from="-141191259#3" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_7_0" dir="t" state="="/>
+ <connection from="-141191259#4" to="-141191259#3" fromLane="0" toLane="0" via=":1545673030_0_0" dir="s" state="="/>
+ <connection from="-141191259#4" to="141191257" fromLane="0" toLane="0" via=":1545673030_1_0" dir="l" state="="/>
+ <connection from="-141191259#4" to="141191259#4" fromLane="0" toLane="0" via=":1545673030_2_0" dir="t" state="="/>
+ <connection from="-141191259#5" to="141191258#0" fromLane="0" toLane="0" via=":1545672954_3_0" dir="r" state="="/>
+ <connection from="-141191259#5" to="-141191259#4" fromLane="0" toLane="0" via=":1545672954_4_0" dir="s" state="="/>
+ <connection from="-141191259#5" to="141191259#5" fromLane="0" toLane="0" via=":1545672954_5_0" dir="t" state="="/>
+ <connection from="-141191262#0" to="-141191250#2" fromLane="0" toLane="0" via=":1545672874_0_0" dir="r" state="="/>
+ <connection from="-141191262#0" to="141191250#3" fromLane="0" toLane="0" via=":1545672874_1_0" dir="l" state="="/>
+ <connection from="-141191262#0" to="141191262#0" fromLane="0" toLane="0" via=":1545672874_2_0" dir="t" state="="/>
+ <connection from="-141191262#1" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_0_0" dir="r" state="="/>
+ <connection from="-141191262#1" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_1_0" dir="s" state="="/>
+ <connection from="-141191262#1" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_2_0" dir="l" state="="/>
+ <connection from="-141191262#1" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_3_0" dir="t" state="="/>
+ <connection from="-141191263#0" to="141191248#1" fromLane="0" toLane="0" via=":1545672843_6_0" dir="r" state="="/>
+ <connection from="-141191263#0" to="-141191248#0" fromLane="0" toLane="0" via=":1545672843_7_0" dir="l" state="="/>
+ <connection from="-141191263#0" to="141191263#0" fromLane="0" toLane="0" via=":1545672843_8_0" dir="t" state="="/>
+ <connection from="-141191263#1" to="-141191263#0" fromLane="0" toLane="0" via=":1545672819_3_0" dir="r" state="="/>
+ <connection from="-141191263#1" to="141191247#0" fromLane="0" toLane="0" via=":1545672819_4_0" dir="l" state="="/>
+ <connection from="-141191263#1" to="141191263#1" fromLane="0" toLane="0" via=":1545672819_5_0" dir="t" state="="/>
+ <connection from="-141191264#0" to="-141191250#1" fromLane="0" toLane="0" via=":1545673065_0_0" dir="r" state="="/>
+ <connection from="-141191264#0" to="141191250#2" fromLane="0" toLane="0" via=":1545673065_1_0" dir="l" state="="/>
+ <connection from="-141191264#0" to="141191264#0" fromLane="0" toLane="0" via=":1545673065_2_0" dir="t" state="="/>
+ <connection from="-141191264#1" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_0_0" dir="r" state="="/>
+ <connection from="-141191264#1" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_1_0" dir="s" state="="/>
+ <connection from="-141191264#1" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_2_0" dir="l" state="="/>
+ <connection from="-141191264#1" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_3_0" dir="t" state="="/>
+ <connection from="-149422193#0" to="-149422210#1" fromLane="0" toLane="0" via=":443101921_0_0" dir="s" state="m"/>
+ <connection from="-149422193#0" to="101272426#2" fromLane="0" toLane="0" via=":443101921_1_0" dir="l" state="m"/>
+ <connection from="-149422193#0" to="149422193#0" fromLane="0" toLane="0" via=":443101921_2_0" dir="t" state="m"/>
+ <connection from="-149422193#1" to="-149422193#0" fromLane="0" toLane="0" via=":2265767389_0_0" dir="s" state="m"/>
+ <connection from="-149422193#1" to="170590354#2" fromLane="0" toLane="1" via=":2265767389_1_0" dir="l" state="m"/>
+ <connection from="-149422193#1" to="149422193#1" fromLane="0" toLane="0" via=":2265767389_2_0" dir="t" state="m"/>
+ <connection from="-149422199#0" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_3_0" dir="r" state="m"/>
+ <connection from="-149422199#0" to="23262356#3" fromLane="0" toLane="0" via=":255227475_4_0" dir="l" state="m"/>
+ <connection from="-149422199#0" to="149422199#0" fromLane="0" toLane="0" via=":255227475_5_0" dir="t" state="m"/>
+ <connection from="-149422199#1" to="23566901#1" fromLane="0" toLane="0" via=":255227480_12_0" dir="R" state="M"/>
+ <connection from="-149422199#1" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_13_0" dir="R" state="M"/>
+ <connection from="-149422199#1" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_14_0" dir="s" state="M"/>
+ <connection from="-149422199#1" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_15_0" dir="l" state="m"/>
+ <connection from="-149422199#1" to="166728377#0" fromLane="0" toLane="0" via=":255227480_16_0" dir="L" state="M"/>
+ <connection from="-149422199#1" to="149422199#1" fromLane="0" toLane="0" via=":255227480_17_0" dir="t" state="m"/>
+ <connection from="-149422199#2" to="166728377#1" fromLane="0" toLane="0" via=":255227482_10_0" dir="r" state="M"/>
+ <connection from="-149422199#2" to="149422210#0" fromLane="0" toLane="0" via=":255227482_11_0" dir="R" state="M"/>
+ <connection from="-149422199#2" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_12_0" dir="s" state="M"/>
+ <connection from="-149422199#2" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_13_0" dir="s" state="M"/>
+ <connection from="-149422199#2" to="149422199#2" fromLane="0" toLane="0" via=":255227482_14_0" dir="t" state="m"/>
+ <connection from="-149422210#0" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_0_0" dir="R" state="m"/>
+ <connection from="-149422210#0" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_1_0" dir="R" state="m"/>
+ <connection from="-149422210#0" to="149422199#2" fromLane="0" toLane="0" via=":255227482_2_0" dir="l" state="m"/>
+ <connection from="-149422210#0" to="166728377#1" fromLane="0" toLane="0" via=":255227482_3_0" dir="L" state="m"/>
+ <connection from="-149422210#0" to="149422210#0" fromLane="0" toLane="0" via=":255227482_4_0" dir="t" state="m"/>
+ <connection from="-149422210#1" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_0_0" dir="s" state="M"/>
+ <connection from="-149422210#1" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_1_0" dir="s" state="M"/>
+ <connection from="-149422210#1" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_2_0" dir="s" state="M"/>
+ <connection from="-149422210#1" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_3_0" dir="s" state="M"/>
+ <connection from="-149422210#1" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_4_0" dir="t" state="m"/>
+ <connection from="-149819220" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_3_0" dir="r" state="m"/>
+ <connection from="-149819220" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_4_0" dir="l" state="m"/>
+ <connection from="-149819220" to="149819220" fromLane="0" toLane="0" via=":1224074532_5_0" dir="t" state="m"/>
+ <connection from="-149819222" to="149819232#0" fromLane="0" toLane="0" via=":1627657783_0_0" dir="r" state="M"/>
+ <connection from="-149819222" to="149819222" fromLane="0" toLane="0" via=":1627657783_1_0" dir="t" state="m"/>
+ <connection from="-149819224" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_0_0" dir="r" state="m"/>
+ <connection from="-149819224" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_1_0" dir="l" state="m"/>
+ <connection from="-149819224" to="149819224" fromLane="0" toLane="0" via=":1627657822_2_0" dir="t" state="m"/>
+ <connection from="-149819227#0" to="149819227#0" fromLane="0" toLane="0" via=":1224074527_0_0" dir="t" state="M"/>
+ <connection from="-149819227#1" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_4_0" dir="r" state="M"/>
+ <connection from="-149819227#1" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_5_0" dir="s" state="M"/>
+ <connection from="-149819227#1" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_6_0" dir="l" state="m"/>
+ <connection from="-149819227#1" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_7_0" dir="t" state="m"/>
+ <connection from="-149819227#2" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_0_0" dir="s" state="M"/>
+ <connection from="-149819227#2" to="-149819224" fromLane="0" toLane="0" via=":1627657825_1_0" dir="l" state="m"/>
+ <connection from="-149819227#2" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_2_0" dir="t" state="m"/>
+ <connection from="-149819227#3" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_0_0" dir="s" state="M"/>
+ <connection from="-149819227#3" to="149819220" fromLane="0" toLane="0" via=":1224074532_1_0" dir="l" state="m"/>
+ <connection from="-149819227#3" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_2_0" dir="t" state="m"/>
+ <connection from="-149819232#0" to="149819222" fromLane="0" toLane="0" via=":1627657783_2_0" dir="l" state="M"/>
+ <connection from="-149819232#0" to="149819232#0" fromLane="0" toLane="0" via=":1627657783_3_0" dir="t" state="m"/>
+ <connection from="-149819232#1" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_6_0" dir="s" state="M"/>
+ <connection from="-149819232#1" to="-149819220" fromLane="0" toLane="0" via=":1224074535_7_0" dir="l" state="m"/>
+ <connection from="-149819232#1" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_8_0" dir="t" state="m"/>
+ <connection from="-149819232#2" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_6_0" dir="s" state="M"/>
+ <connection from="-149819232#2" to="149819224" fromLane="0" toLane="0" via=":1627657822_7_0" dir="l" state="m"/>
+ <connection from="-149819232#2" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_8_0" dir="t" state="m"/>
+ <connection from="-149819232#3" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_6_0" dir="s" state="M"/>
+ <connection from="-149819232#3" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_7_0" dir="l" state="m"/>
+ <connection from="-149819232#3" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_8_0" dir="t" state="m"/>
+ <connection from="-149868584#0" to="149868584#0" fromLane="1" toLane="1" via=":13990620_0_0" dir="t" state="M"/>
+ <connection from="-149868584#1" to="-149422193#1" fromLane="0" toLane="0" via=":255227483_13_0" dir="r" state="M"/>
+ <connection from="-149868584#1" to="-149868584#0" fromLane="0" toLane="0" via=":255227483_14_0" dir="s" state="M"/>
+ <connection from="-149868584#1" to="-149868584#0" fromLane="1" toLane="1" via=":255227483_15_0" dir="s" state="M"/>
+ <connection from="-149868584#1" to="24573947#0" fromLane="1" toLane="0" via=":255227483_16_0" dir="l" state="m"/>
+ <connection from="-149868584#1" to="149868584#1" fromLane="1" toLane="1" via=":255227483_17_0" dir="t" state="m"/>
+ <connection from="-149868584#2" to="23262356#0" fromLane="0" toLane="0" via=":255227471_13_0" dir="r" state="M"/>
+ <connection from="-149868584#2" to="-149868584#1" fromLane="0" toLane="0" via=":255227471_14_0" dir="s" state="M"/>
+ <connection from="-149868584#2" to="-149868584#1" fromLane="1" toLane="1" via=":255227471_15_0" dir="s" state="M"/>
+ <connection from="-149868584#2" to="37772597#0" fromLane="1" toLane="0" via=":255227471_16_0" dir="l" state="m"/>
+ <connection from="-149868584#2" to="149868584#2" fromLane="1" toLane="1" via=":255227471_17_0" dir="t" state="m"/>
+ <connection from="-149868584#3" to="-149868584#2" fromLane="0" toLane="1" via=":1168929657_6_0" tl="1168929657" linkIndex="6" dir="s" state="o"/>
+ <connection from="-149868584#3" to="154844487#1" fromLane="1" toLane="0" via=":1168929657_7_0" tl="1168929657" linkIndex="7" dir="l" state="o"/>
+ <connection from="-149868584#3" to="149868584#3" fromLane="1" toLane="1" via=":1168929657_8_0" tl="1168929657" linkIndex="8" dir="t" state="o"/>
+ <connection from="-149868584#4" to="-160587538#3" fromLane="0" toLane="0" via=":1726394724_13_0" tl="1726394724" linkIndex="13" dir="r" state="o"/>
+ <connection from="-149868584#4" to="-149868584#3" fromLane="0" toLane="0" via=":1726394724_14_0" tl="1726394724" linkIndex="14" dir="s" state="o"/>
+ <connection from="-149868584#4" to="-149868584#3" fromLane="1" toLane="1" via=":1726394724_15_0" tl="1726394724" linkIndex="15" dir="s" state="o"/>
+ <connection from="-149868584#4" to="160587538#4" fromLane="1" toLane="1" via=":1726394724_16_0" tl="1726394724" linkIndex="16" dir="l" state="o"/>
+ <connection from="-149868584#4" to="149868584#4" fromLane="1" toLane="1" via=":1726394724_17_0" tl="1726394724" linkIndex="17" dir="t" state="o"/>
+ <connection from="-149868584#5" to="154844470#1" fromLane="0" toLane="0" via=":1168929383_6_0" tl="1168929383" linkIndex="6" dir="r" state="o"/>
+ <connection from="-149868584#5" to="-149868584#4" fromLane="1" toLane="0" via=":1168929383_7_0" tl="1168929383" linkIndex="7" dir="s" state="o"/>
+ <connection from="-149868584#5" to="149868584#5" fromLane="1" toLane="1" via=":1168929383_8_0" tl="1168929383" linkIndex="8" dir="t" state="o"/>
+ <connection from="-149868584#6" to="38319550#6" fromLane="0" toLane="0" via=":767282288_13_0" tl="767282288" linkIndex="13" dir="r" state="o"/>
+ <connection from="-149868584#6" to="-149868584#5" fromLane="0" toLane="0" via=":767282288_14_0" tl="767282288" linkIndex="14" dir="s" state="o"/>
+ <connection from="-149868584#6" to="-149868584#5" fromLane="1" toLane="1" via=":767282288_15_0" tl="767282288" linkIndex="15" dir="s" state="o"/>
+ <connection from="-149868584#6" to="-38319550#5" fromLane="1" toLane="0" via=":767282288_16_0" tl="767282288" linkIndex="16" dir="l" state="o"/>
+ <connection from="-149868584#6" to="149868584#6" fromLane="1" toLane="1" via=":767282288_17_0" tl="767282288" linkIndex="17" dir="t" state="o"/>
+ <connection from="-149868584#7" to="-149868584#6" fromLane="0" toLane="0" via=":13929775_7_0" tl="13929775" linkIndex="7" dir="s" state="o"/>
+ <connection from="-149868584#7" to="-149868584#6" fromLane="1" toLane="1" via=":13929775_8_0" tl="13929775" linkIndex="8" dir="s" state="o"/>
+ <connection from="-149868584#7" to="42976410#0" fromLane="1" toLane="0" via=":13929775_9_0" tl="13929775" linkIndex="9" dir="l" state="o"/>
+ <connection from="-149868584#7" to="149868584#7" fromLane="1" toLane="1" via=":13929775_10_0" tl="13929775" linkIndex="10" dir="t" state="o"/>
+ <connection from="-149868584#8" to="-149868584#7" fromLane="0" toLane="1" via=":438042369_8_0" tl="438042369" linkIndex="8" dir="s" state="o"/>
+ <connection from="-149868584#8" to="42976405#0" fromLane="1" toLane="1" via=":438042369_9_0" tl="438042369" linkIndex="9" dir="l" state="o"/>
+ <connection from="-149868584#8" to="149868584#8" fromLane="1" toLane="1" via=":438042369_10_0" tl="438042369" linkIndex="10" dir="t" state="o"/>
+ <connection from="-151164683" to="197955309#1" fromLane="0" toLane="0" via=":1639892546_3_0" dir="r" state="="/>
+ <connection from="-151164683" to="-197955309#0" fromLane="0" toLane="0" via=":1639892546_4_0" dir="l" state="="/>
+ <connection from="-151164683" to="151164683" fromLane="0" toLane="0" via=":1639892546_5_0" dir="t" state="="/>
+ <connection from="-154409621" to="37771900#0" fromLane="0" toLane="0" via=":566579340_0_0" dir="r" state="M"/>
+ <connection from="-154409621" to="154409621" fromLane="0" toLane="0" via=":566579340_1_0" dir="t" state="M"/>
+ <connection from="-154844500#0" to="154844474#0" fromLane="0" toLane="0" via=":1669480281_0_0" dir="r" state="m"/>
+ <connection from="-154844500#0" to="-160587542" fromLane="0" toLane="0" via=":1669480281_1_0" dir="s" state="M"/>
+ <connection from="-154844500#0" to="154844500#0" fromLane="0" toLane="0" via=":1669480281_2_0" dir="t" state="m"/>
+ <connection from="-154844500#1" to="101272435#5" fromLane="0" toLane="0" via=":441266880_0_0" tl="441266880" linkIndex="0" dir="r" state="o"/>
+ <connection from="-154844500#1" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_1_0" tl="441266880" linkIndex="1" dir="s" state="o"/>
+ <connection from="-154844500#1" to="154844500#1" fromLane="0" toLane="0" via=":441266880_2_0" tl="441266880" linkIndex="2" dir="t" state="o"/>
+ <connection from="-154844500#2" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_4_0" dir="r" state="M"/>
+ <connection from="-154844500#2" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_5_0" dir="s" state="M"/>
+ <connection from="-154844500#2" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_6_0" dir="l" state="m"/>
+ <connection from="-154844500#2" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_7_0" dir="t" state="m"/>
+ <connection from="-154844500#3" to="-154844500#2" fromLane="0" toLane="0" via=":441266854_0_0" tl="441266854" linkIndex="0" dir="s" state="o"/>
+ <connection from="-154844500#3" to="154844500#3" fromLane="0" toLane="0" via=":441266854_1_0" tl="441266854" linkIndex="1" dir="t" state="o"/>
+ <connection from="-154844503" to="-110514869#2" fromLane="0" toLane="1" via=":1669480282_4_0" dir="s" state="m"/>
+ <connection from="-154844503" to="154844485#0" fromLane="1" toLane="1" via=":1669480282_5_0" dir="l" state="m"/>
+ <connection from="-154844503" to="154844503" fromLane="1" toLane="1" via=":1669480282_6_0" dir="t" state="m"/>
+ <connection from="-160584981" to="160584982#0" fromLane="0" toLane="0" via=":1726380187_2_0" dir="s" state="M"/>
+ <connection from="-160584981" to="160584981" fromLane="0" toLane="0" via=":1726380187_3_0" dir="t" state="m"/>
+ <connection from="-160584984" to="37973568#2" fromLane="0" toLane="0" via=":446017738_3_0" dir="r" state="M"/>
+ <connection from="-160584984" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_4_0" dir="s" state="M"/>
+ <connection from="-160584984" to="160584984" fromLane="0" toLane="0" via=":446017738_5_0" dir="t" state="m"/>
+ <connection from="-160587537#0" to="-154844503" fromLane="0" toLane="0" via=":1726394726_0_0" tl="1726394726" linkIndex="0" dir="r" state="o"/>
+ <connection from="-160587537#0" to="-160587538#7" fromLane="1" toLane="1" via=":1726394726_1_0" tl="1726394726" linkIndex="1" dir="s" state="o"/>
+ <connection from="-160587537#0" to="160587542" fromLane="1" toLane="1" via=":1726394726_2_0" tl="1726394726" linkIndex="2" dir="l" state="o"/>
+ <connection from="-160587537#0" to="160587537#0" fromLane="1" toLane="1" via=":1726394726_3_0" tl="1726394726" linkIndex="3" dir="t" state="o"/>
+ <connection from="-160587537#1" to="-38319548#4" fromLane="0" toLane="0" via=":1726394727_0_0" dir="r" state="M"/>
+ <connection from="-160587537#1" to="-160587537#0" fromLane="0" toLane="0" via=":1726394727_1_0" dir="s" state="M"/>
+ <connection from="-160587537#1" to="-160587537#0" fromLane="1" toLane="1" via=":1726394727_2_0" dir="s" state="M"/>
+ <connection from="-160587537#1" to="38319548#5" fromLane="1" toLane="0" via=":1726394727_3_0" dir="l" state="m"/>
+ <connection from="-160587537#1" to="160587537#1" fromLane="1" toLane="1" via=":1726394727_4_0" dir="t" state="m"/>
+ <connection from="-160587537#2" to="-160587537#1" fromLane="0" toLane="0" via=":1726394728_0_0" dir="s" state="M"/>
+ <connection from="-160587537#2" to="-160587537#1" fromLane="1" toLane="1" via=":1726394728_1_0" dir="s" state="M"/>
+ <connection from="-160587537#2" to="172498387#3" fromLane="1" toLane="0" via=":1726394728_2_0" dir="l" state="m"/>
+ <connection from="-160587537#2" to="160587537#2" fromLane="1" toLane="1" via=":1726394728_3_0" dir="t" state="m"/>
+ <connection from="-160587537#3" to="-160587537#2" fromLane="0" toLane="1" via=":1726394729_0_0" dir="s" state="m"/>
+ <connection from="-160587537#3" to="149408824#1" fromLane="1" toLane="1" via=":1726394729_1_0" dir="l" state="m"/>
+ <connection from="-160587537#3" to="160587537#3" fromLane="1" toLane="1" via=":1726394729_2_0" dir="t" state="m"/>
+ <connection from="-160587538#0" to="160587538#0" fromLane="1" toLane="1" via=":1726394722_0_0" tl="1726394722" linkIndex="0" dir="t" state="o"/>
+ <connection from="-160587538#1" to="-197955309#2" fromLane="0" toLane="0" via=":2081499950_0_0" dir="r" state="M"/>
+ <connection from="-160587538#1" to="-160587538#0" fromLane="0" toLane="0" via=":2081499950_1_0" dir="s" state="M"/>
+ <connection from="-160587538#1" to="-160587538#0" fromLane="1" toLane="1" via=":2081499950_2_0" dir="s" state="M"/>
+ <connection from="-160587538#1" to="197955309#3" fromLane="1" toLane="0" via=":2081499950_3_0" dir="l" state="m"/>
+ <connection from="-160587538#1" to="160587538#1" fromLane="1" toLane="1" via=":2081499950_4_0" dir="t" state="m"/>
+ <connection from="-160587538#2" to="-160587538#1" fromLane="0" toLane="1" via=":1168929634_0_0" tl="1168929634" linkIndex="0" dir="s" state="o"/>
+ <connection from="-160587538#2" to="154844478" fromLane="1" toLane="0" via=":1168929634_1_0" tl="1168929634" linkIndex="1" dir="l" state="o"/>
+ <connection from="-160587538#2" to="160587538#2" fromLane="1" toLane="1" via=":1168929634_2_0" tl="1168929634" linkIndex="2" dir="t" state="o"/>
+ <connection from="-160587538#3" to="-160587538#2" fromLane="0" toLane="1" via=":1726394723_0_0" dir="s" state="m"/>
+ <connection from="-160587538#3" to="111863096#2" fromLane="1" toLane="0" via=":1726394723_1_0" dir="l" state="m"/>
+ <connection from="-160587538#3" to="160587538#3" fromLane="1" toLane="1" via=":1726394723_2_0" dir="t" state="m"/>
+ <connection from="-160587538#4" to="149868584#4" fromLane="0" toLane="0" via=":1726394724_0_0" tl="1726394724" linkIndex="0" dir="r" state="o"/>
+ <connection from="-160587538#4" to="-160587538#3" fromLane="1" toLane="1" via=":1726394724_1_0" tl="1726394724" linkIndex="1" dir="s" state="o"/>
+ <connection from="-160587538#4" to="-149868584#3" fromLane="1" toLane="1" via=":1726394724_2_0" tl="1726394724" linkIndex="2" dir="l" state="o"/>
+ <connection from="-160587538#4" to="160587538#4" fromLane="1" toLane="1" via=":1726394724_3_0" tl="1726394724" linkIndex="3" dir="t" state="o"/>
+ <connection from="-160587538#5" to="103851602#3" fromLane="0" toLane="0" via=":1726394725_0_0" dir="r" state="m"/>
+ <connection from="-160587538#5" to="-160587538#4" fromLane="1" toLane="0" via=":1726394725_1_0" dir="s" state="M"/>
+ <connection from="-160587538#5" to="160587538#5" fromLane="1" toLane="1" via=":1726394725_2_0" dir="t" state="m"/>
+ <connection from="-160587538#6" to="154844486" fromLane="0" toLane="0" via=":1168929558_0_0" tl="1168929558" linkIndex="0" dir="r" state="o"/>
+ <connection from="-160587538#6" to="-160587538#5" fromLane="1" toLane="0" via=":1168929558_1_0" tl="1168929558" linkIndex="1" dir="s" state="o"/>
+ <connection from="-160587538#6" to="160587538#6" fromLane="1" toLane="1" via=":1168929558_2_0" tl="1168929558" linkIndex="2" dir="t" state="o"/>
+ <connection from="-160587538#7" to="-160587538#6" fromLane="0" toLane="0" via=":1913728534_0_0" tl="1913728534" linkIndex="0" dir="s" state="o"/>
+ <connection from="-160587538#7" to="-160587538#6" fromLane="1" toLane="1" via=":1913728534_1_0" tl="1913728534" linkIndex="1" dir="s" state="o"/>
+ <connection from="-160587538#7" to="160587538#7" fromLane="1" toLane="1" via=":1913728534_2_0" tl="1913728534" linkIndex="2" dir="t" state="o"/>
+ <connection from="-160587542" to="160587537#0" fromLane="0" toLane="0" via=":1726394726_4_0" tl="1726394726" linkIndex="4" dir="r" state="o"/>
+ <connection from="-160587542" to="-154844503" fromLane="0" toLane="0" via=":1726394726_5_0" tl="1726394726" linkIndex="5" dir="s" state="o"/>
+ <connection from="-160587542" to="-154844503" fromLane="1" toLane="1" via=":1726394726_6_0" tl="1726394726" linkIndex="6" dir="s" state="o"/>
+ <connection from="-160587542" to="-160587538#7" fromLane="1" toLane="1" via=":1726394726_7_0" tl="1726394726" linkIndex="7" dir="l" state="o"/>
+ <connection from="-160587542" to="160587542" fromLane="1" toLane="1" via=":1726394726_8_0" tl="1726394726" linkIndex="8" dir="t" state="o"/>
+ <connection from="-166576459" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_0_0" dir="r" state="m"/>
+ <connection from="-166576459" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_1_0" dir="l" state="m"/>
+ <connection from="-166576459" to="166576459" fromLane="0" toLane="0" via=":1780219355_2_0" dir="t" state="m"/>
+ <connection from="-166576461#0" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_3_0" dir="r" state="m"/>
+ <connection from="-166576461#0" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_4_0" dir="l" state="m"/>
+ <connection from="-166576461#0" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_5_0" dir="t" state="m"/>
+ <connection from="-166576461#1" to="166576464#0" fromLane="0" toLane="0" via=":1780219366_3_0" dir="r" state="="/>
+ <connection from="-166576461#1" to="-166576461#0" fromLane="0" toLane="0" via=":1780219366_4_0" dir="s" state="="/>
+ <connection from="-166576461#1" to="166576461#1" fromLane="0" toLane="0" via=":1780219366_5_0" dir="t" state="="/>
+ <connection from="-166576462#0" to="38319550#3" fromLane="0" toLane="0" via=":1780219365_6_0" dir="r" state="M"/>
+ <connection from="-166576462#0" to="-38319550#2" fromLane="0" toLane="0" via=":1780219365_7_0" dir="l" state="M"/>
+ <connection from="-166576462#0" to="166576462#0" fromLane="0" toLane="0" via=":1780219365_8_0" dir="t" state="m"/>
+ <connection from="-166576462#1" to="-166576462#0" fromLane="0" toLane="0" via=":1780219377_6_0" dir="s" state="m"/>
+ <connection from="-166576462#1" to="42976410#3" fromLane="0" toLane="0" via=":1780219377_7_0" dir="l" state="m"/>
+ <connection from="-166576462#1" to="166576462#1" fromLane="0" toLane="0" via=":1780219377_8_0" dir="t" state="m"/>
+ <connection from="-166576462#2" to="-166576462#1" fromLane="0" toLane="0" via=":1780219361_7_0" dir="s" state="m"/>
+ <connection from="-166576462#2" to="42976405#3" fromLane="0" toLane="1" via=":1780219361_8_0" dir="l" state="m"/>
+ <connection from="-166576462#2" to="166576462#2" fromLane="0" toLane="0" via=":1780219361_9_0" dir="t" state="m"/>
+ <connection from="-166576462#3" to="133960539#2" fromLane="0" toLane="0" via=":1780219359_7_0" dir="r" state="m"/>
+ <connection from="-166576462#3" to="-166576462#2" fromLane="0" toLane="0" via=":1780219359_8_0" dir="s" state="m"/>
+ <connection from="-166576462#3" to="166576462#3" fromLane="0" toLane="0" via=":1780219359_9_0" dir="t" state="m"/>
+ <connection from="-166576462#4" to="-166576462#3" fromLane="0" toLane="0" via=":1780219341_6_0" dir="s" state="m"/>
+ <connection from="-166576462#4" to="37973569#3" fromLane="0" toLane="0" via=":1780219341_7_0" dir="l" state="m"/>
+ <connection from="-166576462#4" to="166576462#4" fromLane="0" toLane="0" via=":1780219341_8_0" dir="t" state="m"/>
+ <connection from="-166576462#5" to="-37973572#0" fromLane="0" toLane="0" via=":1780219353_9_0" dir="r" state="m"/>
+ <connection from="-166576462#5" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_10_0" dir="s" state="m"/>
+ <connection from="-166576462#5" to="37973572#1" fromLane="0" toLane="1" via=":1780219353_11_0" dir="l" state="m"/>
+ <connection from="-166576462#5" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_12_0" dir="t" state="m"/>
+ <connection from="-166576462#6" to="37973568#5" fromLane="0" toLane="0" via=":1780219360_3_0" dir="r" state="m"/>
+ <connection from="-166576462#6" to="-166576462#5" fromLane="0" toLane="0" via=":1780219360_4_0" dir="s" state="m"/>
+ <connection from="-166576462#6" to="166576462#6" fromLane="0" toLane="0" via=":1780219360_5_0" dir="t" state="m"/>
+ <connection from="-166576462#7" to="166576468#0" fromLane="0" toLane="0" via=":1780219369_6_0" dir="r" state="="/>
+ <connection from="-166576462#7" to="-166576462#6" fromLane="0" toLane="0" via=":1780219369_7_0" dir="s" state="="/>
+ <connection from="-166576462#7" to="166576462#7" fromLane="0" toLane="0" via=":1780219369_8_0" dir="t" state="="/>
+ <connection from="-166576462#8" to="-166576462#7" fromLane="0" toLane="0" via=":1780219335_3_0" dir="s" state="="/>
+ <connection from="-166576462#8" to="166576466#0" fromLane="0" toLane="0" via=":1780219335_4_0" dir="l" state="="/>
+ <connection from="-166576462#8" to="166576462#8" fromLane="0" toLane="0" via=":1780219335_5_0" dir="t" state="="/>
+ <connection from="-166576462#9" to="-166576462#8" fromLane="0" toLane="0" via=":1780219348_6_0" dir="s" state="="/>
+ <connection from="-166576462#9" to="-166576463" fromLane="0" toLane="0" via=":1780219348_7_0" dir="s" state="="/>
+ <connection from="-166576462#9" to="166576462#9" fromLane="0" toLane="0" via=":1780219348_8_0" dir="t" state="="/>
+ <connection from="-166576463" to="-166576466#0" fromLane="0" toLane="0" via=":1780219344_3_0" dir="r" state="="/>
+ <connection from="-166576463" to="166576466#1" fromLane="0" toLane="0" via=":1780219344_4_0" dir="l" state="="/>
+ <connection from="-166576463" to="166576463" fromLane="0" toLane="0" via=":1780219344_5_0" dir="t" state="="/>
+ <connection from="-166576464#0" to="-166576461#0" fromLane="0" toLane="0" via=":1780219366_0_0" dir="r" state="="/>
+ <connection from="-166576464#0" to="166576461#1" fromLane="0" toLane="0" via=":1780219366_1_0" dir="l" state="="/>
+ <connection from="-166576464#0" to="166576464#0" fromLane="0" toLane="0" via=":1780219366_2_0" dir="t" state="="/>
+ <connection from="-166576464#1" to="-166576462#9" fromLane="0" toLane="0" via=":1780219373_0_0" dir="r" state="="/>
+ <connection from="-166576464#1" to="-166576464#0" fromLane="0" toLane="0" via=":1780219373_1_0" dir="s" state="="/>
+ <connection from="-166576464#1" to="166576464#1" fromLane="0" toLane="0" via=":1780219373_2_0" dir="t" state="="/>
+ <connection from="-166576464#2" to="-166576464#1" fromLane="0" toLane="0" via=":1780219331_5_0" dir="s" state="m"/>
+ <connection from="-166576464#2" to="42976406#3" fromLane="0" toLane="2" via=":1780219331_6_0" dir="l" state="m"/>
+ <connection from="-166576464#2" to="166576464#2" fromLane="0" toLane="0" via=":1780219331_7_0" dir="t" state="m"/>
+ <connection from="-166576464#3" to="154500693#1" fromLane="0" toLane="0" via=":1780219342_0_0" dir="r" state="m"/>
+ <connection from="-166576464#3" to="-166576464#2" fromLane="0" toLane="0" via=":1780219342_1_0" dir="s" state="m"/>
+ <connection from="-166576464#3" to="166576464#3" fromLane="0" toLane="0" via=":1780219342_2_0" dir="t" state="m"/>
+ <connection from="-166576464#4" to="101272424#1" fromLane="0" toLane="0" via=":1780219363_0_0" dir="r" state="m"/>
+ <connection from="-166576464#4" to="-166576464#3" fromLane="0" toLane="0" via=":1780219363_1_0" dir="s" state="m"/>
+ <connection from="-166576464#4" to="166576464#4" fromLane="0" toLane="0" via=":1780219363_2_0" dir="t" state="m"/>
+ <connection from="-166576466#0" to="166576462#8" fromLane="0" toLane="0" via=":1780219335_6_0" dir="r" state="="/>
+ <connection from="-166576466#0" to="-166576462#7" fromLane="0" toLane="0" via=":1780219335_7_0" dir="l" state="="/>
+ <connection from="-166576466#0" to="166576466#0" fromLane="0" toLane="0" via=":1780219335_8_0" dir="t" state="="/>
+ <connection from="-166576466#1" to="166576463" fromLane="0" toLane="0" via=":1780219344_6_0" dir="r" state="="/>
+ <connection from="-166576466#1" to="-166576466#0" fromLane="0" toLane="0" via=":1780219344_7_0" dir="s" state="="/>
+ <connection from="-166576466#1" to="166576466#1" fromLane="0" toLane="0" via=":1780219344_8_0" dir="t" state="="/>
+ <connection from="-166576466#2" to="-166576459" fromLane="0" toLane="0" via=":1780219374_6_0" dir="r" state="="/>
+ <connection from="-166576466#2" to="-166576466#1" fromLane="0" toLane="0" via=":1780219374_7_0" dir="s" state="="/>
+ <connection from="-166576466#2" to="166576466#2" fromLane="0" toLane="0" via=":1780219374_8_0" dir="t" state="="/>
+ <connection from="-166576468#0" to="-166576462#6" fromLane="0" toLane="0" via=":1780219369_3_0" dir="r" state="="/>
+ <connection from="-166576468#0" to="166576462#7" fromLane="0" toLane="0" via=":1780219369_4_0" dir="l" state="="/>
+ <connection from="-166576468#0" to="166576468#0" fromLane="0" toLane="0" via=":1780219369_5_0" dir="t" state="="/>
+ <connection from="-166576468#1" to="-166576468#0" fromLane="0" toLane="0" via=":1780219343_5_0" dir="s" state="m"/>
+ <connection from="-166576468#1" to="42976406#2" fromLane="0" toLane="2" via=":1780219343_6_0" dir="l" state="m"/>
+ <connection from="-166576468#1" to="166576468#1" fromLane="0" toLane="0" via=":1780219343_7_0" dir="t" state="m"/>
+ <connection from="-166576468#2" to="154500693#2" fromLane="0" toLane="0" via=":1780219352_0_0" dir="r" state="m"/>
+ <connection from="-166576468#2" to="-166576468#1" fromLane="0" toLane="0" via=":1780219352_1_0" dir="s" state="m"/>
+ <connection from="-166576468#2" to="166576468#2" fromLane="0" toLane="0" via=":1780219352_2_0" dir="t" state="m"/>
+ <connection from="-166576468#3" to="101272424#3" fromLane="0" toLane="0" via=":1780219362_0_0" dir="r" state="m"/>
+ <connection from="-166576468#3" to="-166576468#2" fromLane="0" toLane="0" via=":1780219362_1_0" dir="s" state="m"/>
+ <connection from="-166576468#3" to="166576468#3" fromLane="0" toLane="0" via=":1780219362_2_0" dir="t" state="m"/>
+ <connection from="-166625256#0" to="-166625256#1" fromLane="0" toLane="0" via=":1244292219_2_0" dir="r" state="M"/>
+ <connection from="-166625256#0" to="166625256#0" fromLane="0" toLane="0" via=":1244292219_3_0" dir="t" state="m"/>
+ <connection from="-166625256#1" to="-166625256#0" fromLane="0" toLane="0" via=":1244292210_2_0" dir="r" state="M"/>
+ <connection from="-166625256#1" to="166625256#1" fromLane="0" toLane="0" via=":1244292210_3_0" dir="t" state="m"/>
+ <connection from="-166625259" to="81672207#1" fromLane="0" toLane="0" via=":438042379_2_0" dir="r" state="M"/>
+ <connection from="-166625259" to="166625259" fromLane="0" toLane="0" via=":438042379_3_0" dir="t" state="m"/>
+ <connection from="-166728377#0" to="23566901#1" fromLane="0" toLane="0" via=":255227480_18_0" dir="R" state="m"/>
+ <connection from="-166728377#0" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_19_0" dir="R" state="m"/>
+ <connection from="-166728377#0" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_20_0" dir="s" state="m"/>
+ <connection from="-166728377#0" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_21_0" dir="l" state="m"/>
+ <connection from="-166728377#0" to="149422199#1" fromLane="0" toLane="0" via=":255227480_22_0" dir="L" state="m"/>
+ <connection from="-166728377#0" to="166728377#0" fromLane="0" toLane="0" via=":255227480_23_0" dir="t" state="m"/>
+ <connection from="-166728377#1" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_5_0" dir="R" state="m"/>
+ <connection from="-166728377#1" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_6_0" dir="R" state="m"/>
+ <connection from="-166728377#1" to="149422199#2" fromLane="0" toLane="0" via=":255227482_7_0" dir="l" state="m"/>
+ <connection from="-166728377#1" to="149422210#0" fromLane="0" toLane="0" via=":255227482_8_0" dir="L" state="m"/>
+ <connection from="-166728377#1" to="166728377#1" fromLane="0" toLane="0" via=":255227482_9_0" dir="t" state="m"/>
+ <connection from="-166728377#2" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_15_0" dir="R" state="m"/>
+ <connection from="-166728377#2" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_16_0" dir="R" state="m"/>
+ <connection from="-166728377#2" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_17_0" dir="s" state="m"/>
+ <connection from="-166728377#2" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_18_0" dir="L" state="m"/>
+ <connection from="-166728377#2" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_19_0" dir="t" state="m"/>
+ <connection from="-179692877#0" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_0_0" dir="s" state="M"/>
+ <connection from="-179692877#0" to="179692877#0" fromLane="0" toLane="0" via=":444026889_1_0" dir="t" state="m"/>
+ <connection from="-179692877#1" to="-179692877#0" fromLane="0" toLane="0" via=":1168929398_0_0" tl="1168929398" linkIndex="0" dir="s" state="o"/>
+ <connection from="-179692877#1" to="179692877#1" fromLane="0" toLane="0" via=":1168929398_1_0" tl="1168929398" linkIndex="1" dir="t" state="o"/>
+ <connection from="-179917803#0" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_0_0" dir="s" state="M"/>
+ <connection from="-179917803#0" to="-149819222" fromLane="0" toLane="0" via=":1627657715_1_0" dir="l" state="m"/>
+ <connection from="-179917803#0" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_2_0" dir="t" state="m"/>
+ <connection from="-179917803#1" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_0_0" dir="s" state="M"/>
+ <connection from="-179917803#1" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_1_0" dir="l" state="m"/>
+ <connection from="-179917803#1" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_2_0" dir="t" state="m"/>
+ <connection from="-190048065" to="-132323955" fromLane="0" toLane="0" via=":2006433692_0_0" dir="s" state="M"/>
+ <connection from="-190048065" to="190048065" fromLane="0" toLane="0" via=":2006433692_1_0" dir="t" state="m"/>
+ <connection from="-191056427#0" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_3_0" dir="r" state="m"/>
+ <connection from="-191056427#0" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_4_0" dir="l" state="m"/>
+ <connection from="-191056427#0" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_5_0" dir="t" state="m"/>
+ <connection from="-191056427#1" to="-191056427#0" fromLane="0" toLane="0" via=":2016414184_0_0" dir="s" state="="/>
+ <connection from="-191056427#1" to="191056427#1" fromLane="0" toLane="0" via=":2016414184_1_0" dir="t" state="="/>
+ <connection from="-191176261" to="-191176264" fromLane="0" toLane="0" via=":2017759592_2_0" dir="s" state="M"/>
+ <connection from="-191176261" to="191176261" fromLane="0" toLane="0" via=":2017759592_3_0" dir="t" state="m"/>
+ <connection from="-191176262" to="-191176261" fromLane="0" toLane="0" via=":2017759586_2_0" dir="l" state="M"/>
+ <connection from="-191176262" to="191176262" fromLane="0" toLane="0" via=":2017759586_3_0" dir="t" state="m"/>
+ <connection from="-191176263" to="191176264" fromLane="0" toLane="0" via=":2017759594_0_0" dir="s" state="="/>
+ <connection from="-191176263" to="-191176266" fromLane="0" toLane="0" via=":2017759594_1_0" dir="s" state="="/>
+ <connection from="-191176263" to="-191176265" fromLane="0" toLane="0" via=":2017759594_2_0" dir="l" state="="/>
+ <connection from="-191176263" to="191176263" fromLane="0" toLane="0" via=":2017759594_3_0" dir="t" state="="/>
+ <connection from="-191176264" to="-191176266" fromLane="0" toLane="0" via=":2017759594_12_0" dir="r" state="="/>
+ <connection from="-191176264" to="-191176265" fromLane="0" toLane="0" via=":2017759594_13_0" dir="s" state="="/>
+ <connection from="-191176264" to="191176263" fromLane="0" toLane="0" via=":2017759594_14_0" dir="s" state="="/>
+ <connection from="-191176264" to="191176264" fromLane="0" toLane="0" via=":2017759594_15_0" dir="t" state="="/>
+ <connection from="-191176265" to="191176265" fromLane="0" toLane="0" via=":1474873137_0_0" dir="t" state="M"/>
+ <connection from="-191176266" to="-191176268" fromLane="0" toLane="0" via=":1474873133_0_0" dir="s" state="M"/>
+ <connection from="-191176266" to="191176266" fromLane="0" toLane="0" via=":1474873133_1_0" dir="t" state="m"/>
+ <connection from="-191176267" to="-191176263" fromLane="0" toLane="0" via=":2017759596_0_0" dir="s" state="M"/>
+ <connection from="-191176267" to="191176267" fromLane="0" toLane="0" via=":2017759596_1_0" dir="t" state="m"/>
+ <connection from="-191176268" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_6_0" dir="r" state="m"/>
+ <connection from="-191176268" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_7_0" dir="l" state="m"/>
+ <connection from="-191176268" to="191176268" fromLane="0" toLane="0" via=":2017759588_8_0" dir="t" state="m"/>
+ <connection from="-197781817" to="197781817" fromLane="0" toLane="0" via=":1625774769_0_0" dir="t" state="M"/>
+ <connection from="-197794762" to="-197781817" fromLane="0" toLane="0" via=":2079750190_3_0" dir="r" state="="/>
+ <connection from="-197794762" to="-122394841#3" fromLane="0" toLane="0" via=":2079750190_4_0" dir="s" state="="/>
+ <connection from="-197794762" to="197794762" fromLane="0" toLane="0" via=":2079750190_5_0" dir="t" state="="/>
+ <connection from="-197955309#0" to="81096816#1" fromLane="0" toLane="0" via=":2081499952_2_0" dir="l" state="m"/>
+ <connection from="-197955309#0" to="197955309#0" fromLane="0" toLane="0" via=":2081499952_3_0" dir="t" state="m"/>
+ <connection from="-197955309#1" to="-197955309#0" fromLane="0" toLane="0" via=":1639892546_0_0" dir="s" state="="/>
+ <connection from="-197955309#1" to="151164683" fromLane="0" toLane="0" via=":1639892546_1_0" dir="l" state="="/>
+ <connection from="-197955309#1" to="197955309#1" fromLane="0" toLane="0" via=":1639892546_2_0" dir="t" state="="/>
+ <connection from="-197955309#2" to="-197955309#1" fromLane="0" toLane="0" via=":2081499951_4_0" dir="s" state="m"/>
+ <connection from="-197955309#2" to="166602674#2" fromLane="0" toLane="1" via=":2081499951_5_0" dir="l" state="m"/>
+ <connection from="-197955309#2" to="197955309#2" fromLane="0" toLane="0" via=":2081499951_6_0" dir="t" state="m"/>
+ <connection from="-197955309#3" to="160587538#1" fromLane="0" toLane="0" via=":2081499950_5_0" dir="r" state="m"/>
+ <connection from="-197955309#3" to="-197955309#2" fromLane="0" toLane="0" via=":2081499950_6_0" dir="s" state="m"/>
+ <connection from="-197955309#3" to="-160587538#0" fromLane="0" toLane="1" via=":2081499950_7_0" dir="l" state="m"/>
+ <connection from="-197955309#3" to="197955309#3" fromLane="0" toLane="0" via=":2081499950_8_0" dir="t" state="m"/>
+ <connection from="-197955309#4" to="81124943#1" fromLane="0" toLane="0" via=":2081499949_0_0" dir="r" state="m"/>
+ <connection from="-197955309#4" to="-197955309#3" fromLane="0" toLane="0" via=":2081499949_1_0" dir="s" state="m"/>
+ <connection from="-197955309#4" to="197955309#4" fromLane="0" toLane="0" via=":2081499949_2_0" dir="t" state="m"/>
+ <connection from="-197955309#5" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_4_0" dir="r" state="M"/>
+ <connection from="-197955309#5" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_5_0" dir="s" state="M"/>
+ <connection from="-197955309#5" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_6_0" dir="l" state="m"/>
+ <connection from="-197955309#5" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_7_0" dir="t" state="m"/>
+ <connection from="-23066446#0" to="37449253#2" fromLane="0" toLane="0" via=":248913130_0_0" dir="r" state="m"/>
+ <connection from="-23066446#0" to="23066446#0" fromLane="0" toLane="0" via=":248913130_1_0" dir="t" state="m"/>
+ <connection from="-23066446#1" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_4_0" dir="r" state="M"/>
+ <connection from="-23066446#1" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_5_0" dir="s" state="M"/>
+ <connection from="-23066446#1" to="38319546#7" fromLane="0" toLane="0" via=":452425488_6_0" dir="l" state="m"/>
+ <connection from="-23066446#1" to="23066446#1" fromLane="0" toLane="0" via=":452425488_7_0" dir="t" state="m"/>
+ <connection from="-23066446#2" to="23066443#6" fromLane="0" toLane="0" via=":248913131_0_0" dir="r" state="M"/>
+ <connection from="-23066446#2" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_1_0" dir="s" state="M"/>
+ <connection from="-23066446#2" to="23066446#2" fromLane="0" toLane="0" via=":248913131_2_0" dir="t" state="m"/>
+ <connection from="-23066446#3" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_3_0" dir="s" state="M"/>
+ <connection from="-23066446#3" to="58770725#2" fromLane="0" toLane="0" via=":248913133_4_0" dir="l" state="m"/>
+ <connection from="-23066446#3" to="23066446#3" fromLane="0" toLane="0" via=":248913133_5_0" dir="t" state="m"/>
+ <connection from="-23066462#0" to="-23066462#4" fromLane="0" toLane="0" via=":248913200_2_0" dir="r" state="M"/>
+ <connection from="-23066462#0" to="23066462#0" fromLane="0" toLane="0" via=":248913200_3_0" dir="t" state="m"/>
+ <connection from="-23066462#1" to="-23066462#0" fromLane="0" toLane="0" via=":250689186_0_0" dir="s" state="="/>
+ <connection from="-23066462#1" to="-83051421#2" fromLane="0" toLane="0" via=":250689186_1_0" dir="l" state="="/>
+ <connection from="-23066462#1" to="23066462#1" fromLane="0" toLane="0" via=":250689186_2_0" dir="t" state="="/>
+ <connection from="-23066462#2" to="-23066462#1" fromLane="0" toLane="0" via=":441266870_0_0" dir="s" state="="/>
+ <connection from="-23066462#2" to="-83051455" fromLane="0" toLane="0" via=":441266870_1_0" dir="l" state="="/>
+ <connection from="-23066462#2" to="23066462#2" fromLane="0" toLane="0" via=":441266870_2_0" dir="t" state="="/>
+ <connection from="-23066462#3" to="-23066462#2" fromLane="0" toLane="0" via=":250689131_0_0" dir="s" state="="/>
+ <connection from="-23066462#3" to="-83051426" fromLane="0" toLane="0" via=":250689131_1_0" dir="l" state="="/>
+ <connection from="-23066462#3" to="23066462#3" fromLane="0" toLane="0" via=":250689131_2_0" dir="t" state="="/>
+ <connection from="-23066462#4" to="-23066462#3" fromLane="0" toLane="0" via=":250689201_6_0" dir="s" state="="/>
+ <connection from="-23066462#4" to="-83051480#1" fromLane="0" toLane="0" via=":250689201_7_0" dir="l" state="="/>
+ <connection from="-23066462#4" to="23066462#4" fromLane="0" toLane="0" via=":250689201_8_0" dir="t" state="="/>
+ <connection from="-23182358#0" to="141190466#2" fromLane="0" toLane="0" via=":250685766_0_0" tl="250685766" linkIndex="0" dir="r" state="o"/>
+ <connection from="-23182358#0" to="23182517#0" fromLane="0" toLane="0" via=":250685766_1_0" tl="250685766" linkIndex="1" dir="s" state="o"/>
+ <connection from="-23182358#0" to="23182358#0" fromLane="0" toLane="0" via=":250685766_2_0" tl="250685766" linkIndex="2" dir="t" state="o"/>
+ <connection from="-23182358#1" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_0_0" dir="s" state="M"/>
+ <connection from="-23182358#1" to="23182387#1" fromLane="0" toLane="0" via=":250683336_1_0" dir="l" state="m"/>
+ <connection from="-23182358#1" to="23182358#1" fromLane="0" toLane="0" via=":250683336_2_0" dir="t" state="m"/>
+ <connection from="-23182358#2" to="-23182358#1" fromLane="0" toLane="0" via=":250684983_0_0" tl="250684983" linkIndex="0" dir="s" state="o"/>
+ <connection from="-23182358#2" to="23182358#2" fromLane="0" toLane="0" via=":250684983_1_0" tl="250684983" linkIndex="1" dir="t" state="o"/>
+ <connection from="-23182484#0" to="129780019#1" fromLane="0" toLane="0" via=":450564006_2_0" dir="l" state="m"/>
+ <connection from="-23182484#0" to="23182484#0" fromLane="0" toLane="0" via=":450564006_3_0" dir="t" state="m"/>
+ <connection from="-23182484#1" to="190048063" fromLane="0" toLane="0" via=":250685829_12_0" dir="r" state="M"/>
+ <connection from="-23182484#1" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_13_0" dir="s" state="M"/>
+ <connection from="-23182484#1" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_14_0" dir="l" state="m"/>
+ <connection from="-23182484#1" to="23182484#1" fromLane="0" toLane="0" via=":250685829_15_0" dir="t" state="m"/>
+ <connection from="-23182484#2" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_6_0" dir="s" state="M"/>
+ <connection from="-23182484#2" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_7_0" dir="l" state="m"/>
+ <connection from="-23182484#2" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_8_0" dir="t" state="m"/>
+ <connection from="-23182517#0" to="23182358#0" fromLane="0" toLane="0" via=":250685766_6_0" tl="250685766" linkIndex="6" dir="s" state="o"/>
+ <connection from="-23182517#0" to="141190466#2" fromLane="0" toLane="0" via=":250685766_7_0" tl="250685766" linkIndex="7" dir="l" state="o"/>
+ <connection from="-23182517#0" to="23182517#0" fromLane="0" toLane="0" via=":250685766_8_0" tl="250685766" linkIndex="8" dir="t" state="o"/>
+ <connection from="-23182517#1" to="38230510#2" fromLane="0" toLane="0" via=":450564003_3_0" tl="450564003" linkIndex="3" dir="r" state="o"/>
+ <connection from="-23182517#1" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_4_0" tl="450564003" linkIndex="4" dir="s" state="o"/>
+ <connection from="-23182517#1" to="23182517#1" fromLane="0" toLane="0" via=":450564003_5_0" tl="450564003" linkIndex="5" dir="t" state="o"/>
+ <connection from="-23182517#2" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_2_0" dir="s" state="M"/>
+ <connection from="-23182517#2" to="23182517#2" fromLane="0" toLane="0" via=":975934878_3_0" dir="t" state="m"/>
+ <connection from="-23182517#3" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_6_0" dir="r" state="M"/>
+ <connection from="-23182517#3" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_7_0" dir="s" state="M"/>
+ <connection from="-23182517#3" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_8_0" dir="t" state="m"/>
+ <connection from="-23182517#4" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_6_0" dir="r" state="M"/>
+ <connection from="-23182517#4" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_7_0" dir="s" state="M"/>
+ <connection from="-23182517#4" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_8_0" dir="t" state="m"/>
+ <connection from="-23262356#0" to="-149868584#1" fromLane="0" toLane="0" via=":255227471_9_0" dir="r" state="m"/>
+ <connection from="-23262356#0" to="37772597#0" fromLane="0" toLane="0" via=":255227471_10_0" dir="s" state="m"/>
+ <connection from="-23262356#0" to="149868584#2" fromLane="0" toLane="1" via=":255227471_11_0" dir="l" state="m"/>
+ <connection from="-23262356#0" to="23262356#0" fromLane="0" toLane="0" via=":255227471_12_0" dir="t" state="m"/>
+ <connection from="-23262356#1" to="170590354#1" fromLane="0" toLane="0" via=":2265767394_3_0" dir="r" state="m"/>
+ <connection from="-23262356#1" to="-23262356#0" fromLane="0" toLane="0" via=":2265767394_4_0" dir="s" state="m"/>
+ <connection from="-23262356#1" to="23262356#1" fromLane="0" toLane="0" via=":2265767394_5_0" dir="t" state="m"/>
+ <connection from="-23262356#2" to="101272426#1" fromLane="0" toLane="0" via=":443101920_3_0" dir="r" state="M"/>
+ <connection from="-23262356#2" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_4_0" dir="s" state="M"/>
+ <connection from="-23262356#2" to="23262356#2" fromLane="0" toLane="0" via=":443101920_5_0" dir="t" state="m"/>
+ <connection from="-23262356#3" to="149422199#0" fromLane="0" toLane="0" via=":255227475_6_0" dir="r" state="M"/>
+ <connection from="-23262356#3" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_7_0" dir="s" state="M"/>
+ <connection from="-23262356#3" to="23262356#3" fromLane="0" toLane="0" via=":255227475_8_0" dir="t" state="m"/>
+ <connection from="-23315111#0" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_6_0" tl="252418937" linkIndex="6" dir="s" state="o"/>
+ <connection from="-23315111#0" to="139118804#3" fromLane="0" toLane="0" via=":252418937_7_0" tl="252418937" linkIndex="7" dir="l" state="o"/>
+ <connection from="-23315111#0" to="23315111#0" fromLane="0" toLane="0" via=":252418937_8_0" tl="252418937" linkIndex="8" dir="t" state="o"/>
+ <connection from="-23315111#1" to="-23315111#0" fromLane="0" toLane="0" via=":950094412_7_0" dir="s" state="m"/>
+ <connection from="-23315111#1" to="144874010#2" fromLane="0" toLane="1" via=":950094412_8_0" dir="l" state="m"/>
+ <connection from="-23315111#1" to="23315111#1" fromLane="0" toLane="0" via=":950094412_9_0" dir="t" state="m"/>
+ <connection from="-23315111#2" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_8_0" tl="427996791" linkIndex="8" dir="r" state="o"/>
+ <connection from="-23315111#2" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_9_0" tl="427996791" linkIndex="9" dir="s" state="o"/>
+ <connection from="-23315111#2" to="129780022#5" fromLane="0" toLane="0" via=":427996791_10_0" tl="427996791" linkIndex="10" dir="l" state="o"/>
+ <connection from="-23315111#2" to="23315111#2" fromLane="0" toLane="0" via=":427996791_11_0" tl="427996791" linkIndex="11" dir="t" state="o"/>
+ <connection from="-23315111#3" to="81523330#2" fromLane="0" toLane="0" via=":950094425_9_0" dir="r" state="m"/>
+ <connection from="-23315111#3" to="-23315111#2" fromLane="0" toLane="0" via=":950094425_10_0" dir="s" state="m"/>
+ <connection from="-23315111#3" to="-81523330#1" fromLane="0" toLane="1" via=":950094425_11_0" dir="l" state="m"/>
+ <connection from="-23315111#3" to="23315111#3" fromLane="0" toLane="0" via=":950094425_12_0" dir="t" state="m"/>
+ <connection from="-23566901#0" to="23566901#0" fromLane="0" toLane="0" via=":255227478_0_0" dir="t" state="M"/>
+ <connection from="-23566901#1" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_6_0" dir="R" state="m"/>
+ <connection from="-23566901#1" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_7_0" dir="s" state="m"/>
+ <connection from="-23566901#1" to="166728377#0" fromLane="0" toLane="0" via=":255227480_8_0" dir="L" state="m"/>
+ <connection from="-23566901#1" to="149422199#1" fromLane="0" toLane="0" via=":255227480_9_0" dir="l" state="m"/>
+ <connection from="-23566901#1" to="23566901#1" fromLane="0" toLane="0" via=":255227480_10_0" dir="L" state="m"/>
+ <connection from="-23566901#1" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_11_0" dir="t" state="m"/>
+ <connection from="-24573937" to="101272435#1" fromLane="0" toLane="0" via=":267169964_0_0" dir="r" state="M"/>
+ <connection from="-24573937" to="24573937" fromLane="0" toLane="0" via=":267169964_1_0" dir="t" state="m"/>
+ <connection from="-24573939#0" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_0_0" dir="r" state="M"/>
+ <connection from="-24573939#0" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_1_0" dir="s" state="M"/>
+ <connection from="-24573939#0" to="83051436#1" fromLane="0" toLane="0" via=":267169690_2_0" dir="l" state="m"/>
+ <connection from="-24573939#0" to="24573939#0" fromLane="0" toLane="0" via=":267169690_3_0" dir="t" state="m"/>
+ <connection from="-24573939#1" to="83051421#1" fromLane="0" toLane="0" via=":267169686_0_0" dir="r" state="="/>
+ <connection from="-24573939#1" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_1_0" dir="s" state="="/>
+ <connection from="-24573939#1" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_2_0" dir="l" state="="/>
+ <connection from="-24573939#1" to="24573939#1" fromLane="0" toLane="0" via=":267169686_3_0" dir="t" state="="/>
+ <connection from="-24573939#2" to="-24573939#1" fromLane="0" toLane="0" via=":267169715_0_0" dir="s" state="m"/>
+ <connection from="-24573939#2" to="-37640549#1" fromLane="0" toLane="0" via=":267169715_1_0" dir="l" state="m"/>
+ <connection from="-24573939#2" to="24573939#2" fromLane="0" toLane="0" via=":267169715_2_0" dir="t" state="m"/>
+ <connection from="-24573947#0" to="149868584#1" fromLane="0" toLane="0" via=":255227483_0_0" dir="r" state="m"/>
+ <connection from="-24573947#0" to="-149422193#1" fromLane="0" toLane="0" via=":255227483_1_0" dir="s" state="m"/>
+ <connection from="-24573947#0" to="-149868584#0" fromLane="0" toLane="1" via=":255227483_2_0" dir="l" state="m"/>
+ <connection from="-24573947#0" to="24573947#0" fromLane="0" toLane="0" via=":255227483_3_0" dir="t" state="m"/>
+ <connection from="-24573947#1" to="170594822#1" fromLane="0" toLane="0" via=":2265767392_0_0" dir="r" state="m"/>
+ <connection from="-24573947#1" to="-24573947#0" fromLane="0" toLane="0" via=":2265767392_1_0" dir="s" state="m"/>
+ <connection from="-24573947#1" to="24573947#1" fromLane="0" toLane="0" via=":2265767392_2_0" dir="t" state="m"/>
+ <connection from="-24573947#2" to="37772595#1" fromLane="0" toLane="0" via=":443101905_0_0" dir="r" state="M"/>
+ <connection from="-24573947#2" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_1_0" dir="s" state="M"/>
+ <connection from="-24573947#2" to="24573947#2" fromLane="0" toLane="0" via=":443101905_2_0" dir="t" state="m"/>
+ <connection from="-24573947#3" to="83051421#0" fromLane="0" toLane="0" via=":267169634_0_0" dir="r" state="M"/>
+ <connection from="-24573947#3" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_1_0" dir="R" state="M"/>
+ <connection from="-24573947#3" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_2_0" dir="s" state="M"/>
+ <connection from="-24573947#3" to="24573947#3" fromLane="0" toLane="0" via=":267169634_3_0" dir="t" state="m"/>
+ <connection from="-24573947#4" to="37640549#1" fromLane="0" toLane="0" via=":267169714_0_0" dir="r" state="m"/>
+ <connection from="-24573947#4" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_1_0" dir="s" state="m"/>
+ <connection from="-24573947#4" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_2_0" dir="l" state="m"/>
+ <connection from="-24573947#4" to="24573947#4" fromLane="0" toLane="0" via=":267169714_3_0" dir="t" state="m"/>
+ <connection from="-34962531#0" to="-37973572#3" fromLane="0" toLane="0" via=":410296508_4_0" dir="r" state="m"/>
+ <connection from="-34962531#0" to="37973572#4" fromLane="0" toLane="1" via=":410296508_5_0" dir="l" state="m"/>
+ <connection from="-34962531#0" to="34962531#0" fromLane="0" toLane="0" via=":410296508_6_0" dir="t" state="m"/>
+ <connection from="-34962531#1" to="111549913#1" fromLane="0" toLane="0" via=":950640371_3_0" dir="r" state="m"/>
+ <connection from="-34962531#1" to="-34962531#0" fromLane="0" toLane="0" via=":950640371_4_0" dir="s" state="m"/>
+ <connection from="-34962531#1" to="34962531#1" fromLane="0" toLane="0" via=":950640371_5_0" dir="t" state="m"/>
+ <connection from="-37638470#0" to="42976408#0" fromLane="0" toLane="0" via=":1168929308_0_0" tl="1168929308" linkIndex="0" dir="r" state="o"/>
+ <connection from="-37638470#0" to="154500706#0" fromLane="0" toLane="0" via=":1168929308_1_0" tl="1168929308" linkIndex="1" dir="R" state="o"/>
+ <connection from="-37638470#0" to="37638470#0" fromLane="0" toLane="0" via=":1168929308_2_0" tl="1168929308" linkIndex="2" dir="t" state="o"/>
+ <connection from="-37638470#1" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_6_0" dir="s" state="M"/>
+ <connection from="-37638470#1" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_7_0" dir="l" state="m"/>
+ <connection from="-37638470#1" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_8_0" dir="t" state="m"/>
+ <connection from="-37638470#2" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_6_0" dir="s" state="M"/>
+ <connection from="-37638470#2" to="-160584984" fromLane="0" toLane="0" via=":1224080669_7_0" dir="l" state="m"/>
+ <connection from="-37638470#2" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_8_0" dir="t" state="m"/>
+ <connection from="-37640549#0" to="37640549#0" fromLane="0" toLane="0" via=":441266865_0_0" dir="t" state="M"/>
+ <connection from="-37640549#1" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_12_0" dir="r" state="M"/>
+ <connection from="-37640549#1" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_13_0" dir="s" state="M"/>
+ <connection from="-37640549#1" to="24573947#4" fromLane="0" toLane="0" via=":267169714_14_0" dir="l" state="m"/>
+ <connection from="-37640549#1" to="37640549#1" fromLane="0" toLane="0" via=":267169714_15_0" dir="t" state="m"/>
+ <connection from="-37772597#0" to="149868584#2" fromLane="0" toLane="0" via=":255227471_0_0" dir="r" state="m"/>
+ <connection from="-37772597#0" to="23262356#0" fromLane="0" toLane="0" via=":255227471_1_0" dir="s" state="m"/>
+ <connection from="-37772597#0" to="-149868584#1" fromLane="0" toLane="1" via=":255227471_2_0" dir="l" state="m"/>
+ <connection from="-37772597#0" to="37772597#0" fromLane="0" toLane="0" via=":255227471_3_0" dir="t" state="m"/>
+ <connection from="-37772597#1" to="170594822#2" fromLane="0" toLane="0" via=":2265767395_0_0" dir="r" state="m"/>
+ <connection from="-37772597#1" to="-37772597#0" fromLane="0" toLane="0" via=":2265767395_1_0" dir="s" state="m"/>
+ <connection from="-37772597#1" to="37772597#1" fromLane="0" toLane="0" via=":2265767395_2_0" dir="t" state="m"/>
+ <connection from="-37772597#2" to="37772595#2" fromLane="0" toLane="0" via=":443101906_0_0" dir="r" state="M"/>
+ <connection from="-37772597#2" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_1_0" dir="s" state="M"/>
+ <connection from="-37772597#2" to="37772597#2" fromLane="0" toLane="0" via=":443101906_2_0" dir="t" state="m"/>
+ <connection from="-37973566" to="-130443629#8" fromLane="0" toLane="0" via=":30406565_2_0" dir="s" state="M"/>
+ <connection from="-37973566" to="37973566" fromLane="0" toLane="0" via=":30406565_3_0" dir="t" state="m"/>
+ <connection from="-37973572#0" to="42976406#0" fromLane="0" toLane="0" via=":438042367_7_0" tl="438042367" linkIndex="7" dir="r" state="o"/>
+ <connection from="-37973572#0" to="42976406#0" fromLane="1" toLane="1" via=":438042367_8_0" tl="438042367" linkIndex="8" dir="r" state="o"/>
+ <connection from="-37973572#0" to="-149868584#8" fromLane="1" toLane="0" via=":438042367_9_0" tl="438042367" linkIndex="9" dir="s" state="o"/>
+ <connection from="-37973572#0" to="37973572#0" fromLane="1" toLane="1" via=":438042367_10_0" tl="438042367" linkIndex="10" dir="t" state="o"/>
+ <connection from="-37973572#1" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_13_0" dir="r" state="M"/>
+ <connection from="-37973572#1" to="-37973572#0" fromLane="0" toLane="0" via=":1780219353_14_0" dir="s" state="M"/>
+ <connection from="-37973572#1" to="-37973572#0" fromLane="1" toLane="1" via=":1780219353_15_0" dir="s" state="M"/>
+ <connection from="-37973572#1" to="-166576462#4" fromLane="1" toLane="0" via=":1780219353_16_0" dir="l" state="m"/>
+ <connection from="-37973572#1" to="37973572#1" fromLane="1" toLane="1" via=":1780219353_17_0" dir="t" state="m"/>
+ <connection from="-37973572#2" to="130443630#7" fromLane="0" toLane="0" via=":30406599_9_0" tl="30406599" linkIndex="9" dir="r" state="o"/>
+ <connection from="-37973572#2" to="-37973572#1" fromLane="0" toLane="0" via=":30406599_10_0" tl="30406599" linkIndex="10" dir="s" state="o"/>
+ <connection from="-37973572#2" to="-37973572#1" fromLane="1" toLane="1" via=":30406599_11_0" tl="30406599" linkIndex="11" dir="s" state="o"/>
+ <connection from="-37973572#2" to="-130443630#6" fromLane="1" toLane="0" via=":30406599_12_0" tl="30406599" linkIndex="12" dir="l" state="o"/>
+ <connection from="-37973572#2" to="37973572#2" fromLane="1" toLane="1" via=":30406599_13_0" tl="30406599" linkIndex="13" dir="t" state="o"/>
+ <connection from="-37973572#3" to="81394192#13" fromLane="0" toLane="0" via=":444026884_4_0" tl="444026884" linkIndex="4" dir="r" state="o"/>
+ <connection from="-37973572#3" to="-37973572#2" fromLane="0" toLane="0" via=":444026884_5_0" tl="444026884" linkIndex="5" dir="s" state="o"/>
+ <connection from="-37973572#3" to="-37973572#2" fromLane="1" toLane="1" via=":444026884_6_0" tl="444026884" linkIndex="6" dir="s" state="o"/>
+ <connection from="-37973572#3" to="37973572#3" fromLane="1" toLane="1" via=":444026884_7_0" tl="444026884" linkIndex="7" dir="t" state="o"/>
+ <connection from="-37973572#4" to="34962531#0" fromLane="0" toLane="0" via=":410296508_7_0" dir="r" state="M"/>
+ <connection from="-37973572#4" to="-37973572#3" fromLane="0" toLane="0" via=":410296508_8_0" dir="s" state="M"/>
+ <connection from="-37973572#4" to="-37973572#3" fromLane="1" toLane="1" via=":410296508_9_0" dir="s" state="M"/>
+ <connection from="-37973572#4" to="37973572#4" fromLane="1" toLane="1" via=":410296508_10_0" dir="t" state="m"/>
+ <connection from="-37973572#5" to="-37973572#4" fromLane="0" toLane="0" via=":552842254_7_0" dir="s" state="M"/>
+ <connection from="-37973572#5" to="-37973572#4" fromLane="1" toLane="1" via=":552842254_8_0" dir="s" state="M"/>
+ <connection from="-37973572#5" to="-43684741#5" fromLane="1" toLane="0" via=":552842254_9_0" dir="l" state="m"/>
+ <connection from="-37973572#5" to="37973572#5" fromLane="1" toLane="1" via=":552842254_10_0" dir="t" state="m"/>
+ <connection from="-38027102#0" to="38027102#0" fromLane="0" toLane="0" via=":446766148_0_0" dir="t" state="M"/>
+ <connection from="-38027102#1" to="107066313#3" fromLane="0" toLane="0" via=":477486717_4_0" dir="r" state="m"/>
+ <connection from="-38027102#1" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_5_0" dir="s" state="m"/>
+ <connection from="-38027102#1" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_6_0" dir="l" state="m"/>
+ <connection from="-38027102#1" to="38027102#1" fromLane="0" toLane="0" via=":477486717_7_0" dir="t" state="m"/>
+ <connection from="-38027102#2" to="107166846#4" fromLane="0" toLane="0" via=":728492366_4_0" dir="r" state="M"/>
+ <connection from="-38027102#2" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_5_0" dir="s" state="M"/>
+ <connection from="-38027102#2" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_6_0" dir="l" state="m"/>
+ <connection from="-38027102#2" to="38027102#2" fromLane="0" toLane="0" via=":728492366_7_0" dir="t" state="m"/>
+ <connection from="-38027665#0" to="38027665#0" fromLane="0" toLane="0" via=":446770956_0_0" dir="t" state="M"/>
+ <connection from="-38027665#1" to="107066313#1" fromLane="0" toLane="0" via=":477486719_4_0" dir="r" state="m"/>
+ <connection from="-38027665#1" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_5_0" dir="s" state="m"/>
+ <connection from="-38027665#1" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_6_0" dir="l" state="m"/>
+ <connection from="-38027665#1" to="38027665#1" fromLane="0" toLane="0" via=":477486719_7_0" dir="t" state="m"/>
+ <connection from="-38027665#2" to="107166846#1" fromLane="0" toLane="0" via=":728492372_0_0" dir="r" state="m"/>
+ <connection from="-38027665#2" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_1_0" dir="s" state="m"/>
+ <connection from="-38027665#2" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_2_0" dir="l" state="m"/>
+ <connection from="-38027665#2" to="38027665#2" fromLane="0" toLane="0" via=":728492372_3_0" dir="t" state="m"/>
+ <connection from="-38027665#3" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_0_0" dir="s" state="M"/>
+ <connection from="-38027665#3" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_1_0" dir="l" state="m"/>
+ <connection from="-38027665#3" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_2_0" dir="t" state="m"/>
+ <connection from="-38318373#0" to="38318373#0" fromLane="0" toLane="0" via=":1373642446_0_0" dir="t" state="M"/>
+ <connection from="-38318373#1" to="122394864#2" fromLane="0" toLane="0" via=":314636763_8_0" dir="r" state="m"/>
+ <connection from="-38318373#1" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_9_0" dir="s" state="m"/>
+ <connection from="-38318373#1" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_10_0" dir="l" state="m"/>
+ <connection from="-38318373#1" to="38318373#1" fromLane="0" toLane="0" via=":314636763_11_0" dir="t" state="m"/>
+ <connection from="-38319546#0" to="144874008#1" fromLane="0" toLane="0" via=":1257054127_2_0" dir="l" state="m"/>
+ <connection from="-38319546#0" to="38319546#0" fromLane="0" toLane="0" via=":1257054127_3_0" dir="t" state="m"/>
+ <connection from="-38319546#1" to="-38319546#0" fromLane="0" toLane="0" via=":1257054074_7_0" dir="s" state="m"/>
+ <connection from="-38319546#1" to="154489992#2" fromLane="0" toLane="1" via=":1257054074_8_0" dir="l" state="m"/>
+ <connection from="-38319546#1" to="38319546#1" fromLane="0" toLane="0" via=":1257054074_9_0" dir="t" state="m"/>
+ <connection from="-38319546#2" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_8_0" dir="r" state="m"/>
+ <connection from="-38319546#2" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_9_0" dir="s" state="m"/>
+ <connection from="-38319546#2" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_10_0" dir="l" state="m"/>
+ <connection from="-38319546#2" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_11_0" dir="t" state="m"/>
+ <connection from="-38319546#3" to="139118805#2" fromLane="0" toLane="0" via=":1257054172_9_0" dir="r" state="m"/>
+ <connection from="-38319546#3" to="-38319546#2" fromLane="0" toLane="0" via=":1257054172_10_0" dir="s" state="m"/>
+ <connection from="-38319546#3" to="-139118805#1" fromLane="0" toLane="1" via=":1257054172_11_0" dir="l" state="m"/>
+ <connection from="-38319546#3" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_12_0" dir="t" state="m"/>
+ <connection from="-38319546#4" to="81523332#1" fromLane="0" toLane="0" via=":452425486_3_0" dir="r" state="m"/>
+ <connection from="-38319546#4" to="-38319546#3" fromLane="0" toLane="0" via=":452425486_4_0" dir="s" state="m"/>
+ <connection from="-38319546#4" to="38319546#4" fromLane="0" toLane="0" via=":452425486_5_0" dir="t" state="m"/>
+ <connection from="-38319546#5" to="-38319546#4" fromLane="0" toLane="0" via=":1257054178_3_0" dir="s" state="="/>
+ <connection from="-38319546#5" to="109912572#0" fromLane="0" toLane="0" via=":1257054178_4_0" dir="l" state="="/>
+ <connection from="-38319546#5" to="38319546#5" fromLane="0" toLane="0" via=":1257054178_5_0" dir="t" state="="/>
+ <connection from="-38319546#6" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_8_0" dir="r" state="m"/>
+ <connection from="-38319546#6" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_9_0" dir="s" state="m"/>
+ <connection from="-38319546#6" to="81096844#3" fromLane="0" toLane="0" via=":452425487_10_0" dir="l" state="m"/>
+ <connection from="-38319546#6" to="38319546#6" fromLane="0" toLane="0" via=":452425487_11_0" dir="t" state="m"/>
+ <connection from="-38319546#7" to="23066446#1" fromLane="0" toLane="0" via=":452425488_8_0" dir="r" state="m"/>
+ <connection from="-38319546#7" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_9_0" dir="s" state="m"/>
+ <connection from="-38319546#7" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_10_0" dir="l" state="m"/>
+ <connection from="-38319546#7" to="38319546#7" fromLane="0" toLane="0" via=":452425488_11_0" dir="t" state="m"/>
+ <connection from="-38319546#8" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_8_0" dir="r" state="m"/>
+ <connection from="-38319546#8" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_9_0" dir="s" state="m"/>
+ <connection from="-38319546#8" to="59159260#3" fromLane="0" toLane="0" via=":733663096_10_0" dir="l" state="m"/>
+ <connection from="-38319546#8" to="38319546#8" fromLane="0" toLane="0" via=":733663096_11_0" dir="t" state="m"/>
+ <connection from="-38319547" to="-38319546#8" fromLane="0" toLane="0" via=":452425489_2_0" dir="s" state="M"/>
+ <connection from="-38319547" to="38319547" fromLane="0" toLane="0" via=":452425489_3_0" dir="t" state="m"/>
+ <connection from="-38319548#0" to="-38319547" fromLane="0" toLane="0" via=":452425490_0_0" dir="r" state="="/>
+ <connection from="-38319548#0" to="38319549#0" fromLane="0" toLane="0" via=":452425490_1_0" dir="l" state="="/>
+ <connection from="-38319548#0" to="38319548#0" fromLane="0" toLane="0" via=":452425490_2_0" dir="t" state="="/>
+ <connection from="-38319548#1" to="23066443#4" fromLane="0" toLane="0" via=":452425491_0_0" dir="r" state="m"/>
+ <connection from="-38319548#1" to="-38319548#0" fromLane="0" toLane="0" via=":452425491_1_0" dir="s" state="m"/>
+ <connection from="-38319548#1" to="38319548#1" fromLane="0" toLane="0" via=":452425491_2_0" dir="t" state="m"/>
+ <connection from="-38319548#10" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_8_0" dir="r" state="m"/>
+ <connection from="-38319548#10" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_9_0" dir="s" state="m"/>
+ <connection from="-38319548#10" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_10_0" dir="l" state="m"/>
+ <connection from="-38319548#10" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_11_0" dir="t" state="m"/>
+ <connection from="-38319548#11" to="-38319548#10" fromLane="0" toLane="0" via=":1669480279_6_0" dir="s" state="m"/>
+ <connection from="-38319548#11" to="101272435#4" fromLane="0" toLane="0" via=":1669480279_7_0" dir="l" state="m"/>
+ <connection from="-38319548#11" to="38319548#11" fromLane="0" toLane="0" via=":1669480279_8_0" dir="t" state="m"/>
+ <connection from="-38319548#12" to="-38319548#11" fromLane="0" toLane="0" via=":1168929659_6_0" dir="s" state="m"/>
+ <connection from="-38319548#12" to="154844489#2" fromLane="0" toLane="0" via=":1168929659_7_0" dir="l" state="m"/>
+ <connection from="-38319548#12" to="38319548#12" fromLane="0" toLane="0" via=":1168929659_8_0" dir="t" state="m"/>
+ <connection from="-38319548#13" to="-38319548#12" fromLane="0" toLane="0" via=":951739684_6_0" dir="s" state="m"/>
+ <connection from="-38319548#13" to="103851602#1" fromLane="0" toLane="0" via=":951739684_7_0" dir="l" state="m"/>
+ <connection from="-38319548#13" to="38319548#13" fromLane="0" toLane="0" via=":951739684_8_0" dir="t" state="m"/>
+ <connection from="-38319548#14" to="111863096#4" fromLane="0" toLane="0" via=":951739649_3_0" dir="r" state="m"/>
+ <connection from="-38319548#14" to="-38319548#13" fromLane="0" toLane="0" via=":951739649_4_0" dir="s" state="m"/>
+ <connection from="-38319548#14" to="38319548#14" fromLane="0" toLane="0" via=":951739649_5_0" dir="t" state="m"/>
+ <connection from="-38319548#15" to="154844484#1" fromLane="0" toLane="0" via=":1168929546_3_0" dir="r" state="m"/>
+ <connection from="-38319548#15" to="-38319548#14" fromLane="0" toLane="0" via=":1168929546_4_0" dir="s" state="m"/>
+ <connection from="-38319548#15" to="38319548#15" fromLane="0" toLane="0" via=":1168929546_5_0" dir="t" state="m"/>
+ <connection from="-38319548#16" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_8_0" dir="r" state="m"/>
+ <connection from="-38319548#16" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_9_0" dir="s" state="m"/>
+ <connection from="-38319548#16" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_10_0" dir="l" state="m"/>
+ <connection from="-38319548#16" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_11_0" dir="t" state="m"/>
+ <connection from="-38319548#2" to="-38319548#1" fromLane="0" toLane="0" via=":452425493_3_0" dir="s" state="m"/>
+ <connection from="-38319548#2" to="58770725#4" fromLane="0" toLane="0" via=":452425493_4_0" dir="l" state="m"/>
+ <connection from="-38319548#2" to="38319548#2" fromLane="0" toLane="0" via=":452425493_5_0" dir="t" state="m"/>
+ <connection from="-38319548#3" to="-38319548#2" fromLane="0" toLane="0" via=":1669480287_3_0" dir="s" state="m"/>
+ <connection from="-38319548#3" to="37771900#5" fromLane="0" toLane="0" via=":1669480287_4_0" dir="l" state="m"/>
+ <connection from="-38319548#3" to="38319548#3" fromLane="0" toLane="0" via=":1669480287_5_0" dir="t" state="m"/>
+ <connection from="-38319548#4" to="-38319548#3" fromLane="0" toLane="0" via=":1669480286_4_0" dir="s" state="m"/>
+ <connection from="-38319548#4" to="81124939#1" fromLane="0" toLane="1" via=":1669480286_5_0" dir="l" state="m"/>
+ <connection from="-38319548#4" to="38319548#4" fromLane="0" toLane="0" via=":1669480286_6_0" dir="t" state="m"/>
+ <connection from="-38319548#5" to="160587537#1" fromLane="0" toLane="0" via=":1726394727_5_0" dir="r" state="m"/>
+ <connection from="-38319548#5" to="-38319548#4" fromLane="0" toLane="0" via=":1726394727_6_0" dir="s" state="m"/>
+ <connection from="-38319548#5" to="-160587537#0" fromLane="0" toLane="1" via=":1726394727_7_0" dir="l" state="m"/>
+ <connection from="-38319548#5" to="38319548#5" fromLane="0" toLane="0" via=":1726394727_8_0" dir="t" state="m"/>
+ <connection from="-38319548#6" to="154844474#1" fromLane="0" toLane="0" via=":1669480284_0_0" dir="r" state="m"/>
+ <connection from="-38319548#6" to="-38319548#5" fromLane="0" toLane="0" via=":1669480284_1_0" dir="s" state="m"/>
+ <connection from="-38319548#6" to="38319548#6" fromLane="0" toLane="0" via=":1669480284_2_0" dir="t" state="m"/>
+ <connection from="-38319548#7" to="81096822#0" fromLane="0" toLane="0" via=":452425497_3_0" dir="r" state="="/>
+ <connection from="-38319548#7" to="-38319548#6" fromLane="0" toLane="0" via=":452425497_4_0" dir="s" state="="/>
+ <connection from="-38319548#7" to="38319548#7" fromLane="0" toLane="0" via=":452425497_5_0" dir="t" state="="/>
+ <connection from="-38319548#8" to="101272435#6" fromLane="0" toLane="0" via=":1669480283_0_0" dir="r" state="m"/>
+ <connection from="-38319548#8" to="-38319548#7" fromLane="0" toLane="0" via=":1669480283_1_0" dir="s" state="m"/>
+ <connection from="-38319548#8" to="38319548#8" fromLane="0" toLane="0" via=":1669480283_2_0" dir="t" state="m"/>
+ <connection from="-38319548#9" to="101272434" fromLane="0" toLane="0" via=":1168929661_6_0" dir="r" state="="/>
+ <connection from="-38319548#9" to="-38319548#8" fromLane="0" toLane="0" via=":1168929661_7_0" dir="s" state="="/>
+ <connection from="-38319548#9" to="38319548#9" fromLane="0" toLane="0" via=":1168929661_8_0" dir="t" state="="/>
+ <connection from="-38319549#0" to="38319548#0" fromLane="0" toLane="0" via=":452425490_3_0" dir="r" state="="/>
+ <connection from="-38319549#0" to="-38319547" fromLane="0" toLane="0" via=":452425490_4_0" dir="l" state="="/>
+ <connection from="-38319549#0" to="38319549#0" fromLane="0" toLane="0" via=":452425490_5_0" dir="t" state="="/>
+ <connection from="-38319549#1" to="-38319549#0" fromLane="0" toLane="0" via=":1719213141_6_0" dir="s" state="m"/>
+ <connection from="-38319549#1" to="44738605#2" fromLane="0" toLane="0" via=":1719213141_7_0" dir="l" state="m"/>
+ <connection from="-38319549#1" to="38319549#1" fromLane="0" toLane="0" via=":1719213141_8_0" dir="t" state="m"/>
+ <connection from="-38319549#2" to="151167658#1" fromLane="0" toLane="0" via=":1719213140_3_0" dir="r" state="m"/>
+ <connection from="-38319549#2" to="-38319549#1" fromLane="0" toLane="0" via=":1719213140_4_0" dir="s" state="m"/>
+ <connection from="-38319549#2" to="38319549#2" fromLane="0" toLane="0" via=":1719213140_5_0" dir="t" state="m"/>
+ <connection from="-38319550#0" to="-38319549#2" fromLane="0" toLane="0" via=":452425499_2_0" dir="r" state="M"/>
+ <connection from="-38319550#0" to="38319550#0" fromLane="0" toLane="0" via=":452425499_3_0" dir="t" state="m"/>
+ <connection from="-38319550#1" to="-38319550#0" fromLane="0" toLane="0" via=":452425500_6_0" dir="s" state="m"/>
+ <connection from="-38319550#1" to="58770723#2" fromLane="0" toLane="0" via=":452425500_7_0" dir="l" state="m"/>
+ <connection from="-38319550#1" to="38319550#1" fromLane="0" toLane="0" via=":452425500_8_0" dir="t" state="m"/>
+ <connection from="-38319550#10" to="-38319550#9" fromLane="0" toLane="0" via=":719463795_6_0" dir="s" state="m"/>
+ <connection from="-38319550#10" to="24573905#3" fromLane="0" toLane="0" via=":719463795_7_0" dir="l" state="m"/>
+ <connection from="-38319550#10" to="38319550#10" fromLane="0" toLane="0" via=":719463795_8_0" dir="t" state="m"/>
+ <connection from="-38319550#11" to="-38319550#10" fromLane="0" toLane="0" via=":1780219371_3_0" dir="s" state="m"/>
+ <connection from="-38319550#11" to="-166576464#4" fromLane="0" toLane="0" via=":1780219371_4_0" dir="l" state="m"/>
+ <connection from="-38319550#11" to="38319550#11" fromLane="0" toLane="0" via=":1780219371_5_0" dir="t" state="m"/>
+ <connection from="-38319550#12" to="8272412#1" fromLane="0" toLane="0" via=":1719213509_3_0" dir="r" state="m"/>
+ <connection from="-38319550#12" to="-38319550#11" fromLane="0" toLane="0" via=":1719213509_4_0" dir="s" state="m"/>
+ <connection from="-38319550#12" to="38319550#12" fromLane="0" toLane="0" via=":1719213509_5_0" dir="t" state="m"/>
+ <connection from="-38319550#13" to="149419435#1" fromLane="0" toLane="0" via=":1719213668_3_0" dir="r" state="m"/>
+ <connection from="-38319550#13" to="-38319550#12" fromLane="0" toLane="0" via=":1719213668_4_0" dir="s" state="m"/>
+ <connection from="-38319550#13" to="38319550#13" fromLane="0" toLane="0" via=":1719213668_5_0" dir="t" state="m"/>
+ <connection from="-38319550#14" to="-38319550#13" fromLane="0" toLane="0" via=":719464017_0_0" tl="719464017" linkIndex="0" dir="s" state="o"/>
+ <connection from="-38319550#14" to="38319550#14" fromLane="0" toLane="0" via=":719464017_1_0" tl="719464017" linkIndex="1" dir="t" state="o"/>
+ <connection from="-38319550#2" to="37771902#1" fromLane="0" toLane="0" via=":452425501_3_0" dir="r" state="m"/>
+ <connection from="-38319550#2" to="-38319550#1" fromLane="0" toLane="0" via=":452425501_4_0" dir="s" state="m"/>
+ <connection from="-38319550#2" to="38319550#2" fromLane="0" toLane="0" via=":452425501_5_0" dir="t" state="m"/>
+ <connection from="-38319550#3" to="-38319550#2" fromLane="0" toLane="0" via=":1780219365_3_0" dir="s" state="m"/>
+ <connection from="-38319550#3" to="166576462#0" fromLane="0" toLane="0" via=":1780219365_4_0" dir="l" state="m"/>
+ <connection from="-38319550#3" to="38319550#3" fromLane="0" toLane="0" via=":1780219365_5_0" dir="t" state="m"/>
+ <connection from="-38319550#4" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_6_0" tl="452425502" linkIndex="6" dir="s" state="o"/>
+ <connection from="-38319550#4" to="101272429#2" fromLane="0" toLane="0" via=":452425502_7_0" tl="452425502" linkIndex="7" dir="l" state="o"/>
+ <connection from="-38319550#4" to="38319550#4" fromLane="0" toLane="0" via=":452425502_8_0" tl="452425502" linkIndex="8" dir="t" state="o"/>
+ <connection from="-38319550#5" to="-38319550#4" fromLane="0" toLane="0" via=":950640531_6_0" dir="s" state="m"/>
+ <connection from="-38319550#5" to="111863125#2" fromLane="0" toLane="0" via=":950640531_7_0" dir="l" state="m"/>
+ <connection from="-38319550#5" to="38319550#5" fromLane="0" toLane="0" via=":950640531_8_0" dir="t" state="m"/>
+ <connection from="-38319550#6" to="-149868584#5" fromLane="0" toLane="0" via=":767282288_9_0" tl="767282288" linkIndex="9" dir="r" state="o"/>
+ <connection from="-38319550#6" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_10_0" tl="767282288" linkIndex="10" dir="s" state="o"/>
+ <connection from="-38319550#6" to="149868584#6" fromLane="0" toLane="1" via=":767282288_11_0" tl="767282288" linkIndex="11" dir="l" state="o"/>
+ <connection from="-38319550#6" to="38319550#6" fromLane="0" toLane="0" via=":767282288_12_0" tl="767282288" linkIndex="12" dir="t" state="o"/>
+ <connection from="-38319550#7" to="111549913#5" fromLane="0" toLane="0" via=":950640351_3_0" dir="r" state="m"/>
+ <connection from="-38319550#7" to="-38319550#6" fromLane="0" toLane="0" via=":950640351_4_0" dir="s" state="m"/>
+ <connection from="-38319550#7" to="38319550#7" fromLane="0" toLane="0" via=":950640351_5_0" dir="t" state="m"/>
+ <connection from="-38319550#8" to="37772596#1" fromLane="0" toLane="0" via=":719463587_3_0" tl="719463587" linkIndex="3" dir="r" state="o"/>
+ <connection from="-38319550#8" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_4_0" tl="719463587" linkIndex="4" dir="s" state="o"/>
+ <connection from="-38319550#8" to="38319550#8" fromLane="0" toLane="0" via=":719463587_5_0" tl="719463587" linkIndex="5" dir="t" state="o"/>
+ <connection from="-38319550#9" to="-38319550#8" fromLane="0" toLane="0" via=":1780219332_3_0" dir="s" state="m"/>
+ <connection from="-38319550#9" to="-166576468#3" fromLane="0" toLane="0" via=":1780219332_4_0" dir="l" state="m"/>
+ <connection from="-38319550#9" to="38319550#9" fromLane="0" toLane="0" via=":1780219332_5_0" dir="t" state="m"/>
+ <connection from="-40196944#0" to="40196944#0" fromLane="0" toLane="0" via=":484282948_0_0" dir="t" state="M"/>
+ <connection from="-40196944#1" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_0_0" dir="s" state="M"/>
+ <connection from="-40196944#1" to="40196944#1" fromLane="0" toLane="0" via=":484282955_1_0" dir="t" state="m"/>
+ <connection from="-43684741#0" to="130443630#0" fromLane="0" toLane="0" via=":552842256_18_0" dir="r" state="m"/>
+ <connection from="-43684741#0" to="105251811#0" fromLane="0" toLane="0" via=":552842256_19_0" dir="s" state="m"/>
+ <connection from="-43684741#0" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_20_0" dir="s" state="m"/>
+ <connection from="-43684741#0" to="-37973566" fromLane="0" toLane="0" via=":552842256_21_0" dir="L" state="m"/>
+ <connection from="-43684741#0" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_22_0" dir="l" state="m"/>
+ <connection from="-43684741#0" to="43684741#0" fromLane="0" toLane="0" via=":552842256_23_0" dir="t" state="m"/>
+ <connection from="-43684741#1" to="81394192#8" fromLane="0" toLane="0" via=":561204538_3_0" dir="r" state="M"/>
+ <connection from="-43684741#1" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_4_0" dir="s" state="M"/>
+ <connection from="-43684741#1" to="43684741#1" fromLane="0" toLane="0" via=":561204538_5_0" dir="t" state="m"/>
+ <connection from="-43684741#2" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_3_0" dir="s" state="M"/>
+ <connection from="-43684741#2" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_4_0" dir="l" state="m"/>
+ <connection from="-43684741#2" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_5_0" dir="t" state="m"/>
+ <connection from="-43684741#3" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_4_0" dir="s" state="M"/>
+ <connection from="-43684741#3" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_5_0" dir="t" state="m"/>
+ <connection from="-43684741#4" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_6_0" dir="s" state="M"/>
+ <connection from="-43684741#4" to="37973569#9" fromLane="0" toLane="0" via=":552842255_7_0" dir="l" state="m"/>
+ <connection from="-43684741#4" to="43684741#4" fromLane="0" toLane="0" via=":552842255_8_0" dir="t" state="m"/>
+ <connection from="-43684741#5" to="-43684741#4" fromLane="0" toLane="0" via=":950640393_6_0" dir="s" state="m"/>
+ <connection from="-43684741#5" to="111863125#8" fromLane="0" toLane="0" via=":950640393_7_0" dir="l" state="m"/>
+ <connection from="-43684741#5" to="43684741#5" fromLane="0" toLane="0" via=":950640393_8_0" dir="t" state="m"/>
+ <connection from="-44104491#0" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_0_0" dir="r" state="m"/>
+ <connection from="-44104491#0" to="59159262#3" fromLane="0" toLane="0" via=":956116503_1_0" dir="l" state="m"/>
+ <connection from="-44104491#0" to="44104491#0" fromLane="0" toLane="0" via=":956116503_2_0" dir="t" state="m"/>
+ <connection from="-44104491#1" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_0_0" dir="s" state="M"/>
+ <connection from="-44104491#1" to="44104491#1" fromLane="0" toLane="0" via=":560472377_1_0" dir="t" state="m"/>
+ <connection from="-58779718#0" to="107066313#2" fromLane="0" toLane="0" via=":728492341_3_0" dir="r" state="m"/>
+ <connection from="-58779718#0" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_4_0" dir="l" state="m"/>
+ <connection from="-58779718#0" to="58779718#0" fromLane="0" toLane="0" via=":728492341_5_0" dir="t" state="m"/>
+ <connection from="-58779718#1" to="107166846#2" fromLane="0" toLane="0" via=":728492360_0_0" dir="r" state="m"/>
+ <connection from="-58779718#1" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_1_0" dir="s" state="m"/>
+ <connection from="-58779718#1" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_2_0" dir="l" state="m"/>
+ <connection from="-58779718#1" to="58779718#1" fromLane="0" toLane="0" via=":728492360_3_0" dir="t" state="m"/>
+ <connection from="-58779719#0" to="58779719#0" fromLane="0" toLane="0" via=":728492348_0_0" dir="t" state="M"/>
+ <connection from="-58779719#1" to="107166846#3" fromLane="0" toLane="0" via=":728492361_0_0" dir="r" state="m"/>
+ <connection from="-58779719#1" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_1_0" dir="s" state="m"/>
+ <connection from="-58779719#1" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_2_0" dir="l" state="m"/>
+ <connection from="-58779719#1" to="58779719#1" fromLane="0" toLane="0" via=":728492361_3_0" dir="t" state="m"/>
+ <connection from="-59159260#0" to="37771900#4" fromLane="0" toLane="0" via=":733663131_2_0" dir="r" state="m"/>
+ <connection from="-59159260#0" to="59159260#0" fromLane="0" toLane="0" via=":733663131_3_0" dir="t" state="m"/>
+ <connection from="-59159260#1" to="58770725#3" fromLane="0" toLane="0" via=":733663093_6_0" dir="r" state="M"/>
+ <connection from="-59159260#1" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_7_0" dir="s" state="M"/>
+ <connection from="-59159260#1" to="59159260#1" fromLane="0" toLane="0" via=":733663093_8_0" dir="t" state="m"/>
+ <connection from="-59159260#2" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_6_0" dir="s" state="M"/>
+ <connection from="-59159260#2" to="23066443#5" fromLane="0" toLane="0" via=":733663121_7_0" dir="l" state="m"/>
+ <connection from="-59159260#2" to="59159260#2" fromLane="0" toLane="0" via=":733663121_8_0" dir="t" state="m"/>
+ <connection from="-59159260#3" to="38319546#8" fromLane="0" toLane="0" via=":733663096_12_0" dir="r" state="M"/>
+ <connection from="-59159260#3" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_13_0" dir="s" state="M"/>
+ <connection from="-59159260#3" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_14_0" dir="l" state="m"/>
+ <connection from="-59159260#3" to="59159260#3" fromLane="0" toLane="0" via=":733663096_15_0" dir="t" state="m"/>
+ <connection from="-59159262#0" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_3_0" dir="s" state="M"/>
+ <connection from="-59159262#0" to="81394192#3" fromLane="0" toLane="0" via=":446766149_4_0" dir="l" state="m"/>
+ <connection from="-59159262#0" to="59159262#0" fromLane="0" toLane="0" via=":446766149_5_0" dir="t" state="m"/>
+ <connection from="-59159262#1" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_4_0" dir="r" state="m"/>
+ <connection from="-59159262#1" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_5_0" dir="s" state="m"/>
+ <connection from="-59159262#1" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_6_0" dir="l" state="m"/>
+ <connection from="-59159262#1" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_7_0" dir="t" state="m"/>
+ <connection from="-59159262#2" to="37973565#1" fromLane="0" toLane="0" via=":733663082_0_0" dir="r" state="M"/>
+ <connection from="-59159262#2" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_1_0" dir="s" state="M"/>
+ <connection from="-59159262#2" to="59159262#2" fromLane="0" toLane="0" via=":733663082_2_0" dir="t" state="m"/>
+ <connection from="-59159262#3" to="44104491#0" fromLane="0" toLane="0" via=":956116503_3_0" dir="r" state="M"/>
+ <connection from="-59159262#3" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_4_0" dir="s" state="M"/>
+ <connection from="-59159262#3" to="59159262#3" fromLane="0" toLane="0" via=":956116503_5_0" dir="t" state="m"/>
+ <connection from="-59159262#4" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_0_0" dir="s" state="M"/>
+ <connection from="-59159262#4" to="-134872478" fromLane="0" toLane="0" via=":1482088987_1_0" dir="l" state="m"/>
+ <connection from="-59159262#4" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_2_0" dir="t" state="m"/>
+ <connection from="-69931595#0" to="-108329426#2" fromLane="0" toLane="0" via=":445506216_3_0" dir="s" state="M"/>
+ <connection from="-69931595#0" to="37942668#0" fromLane="0" toLane="0" via=":445506216_4_0" dir="l" state="m"/>
+ <connection from="-69931595#0" to="69931595#0" fromLane="0" toLane="0" via=":445506216_5_0" dir="t" state="m"/>
+ <connection from="-69931595#1" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_3_0" dir="s" state="M"/>
+ <connection from="-69931595#1" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_4_0" dir="l" state="m"/>
+ <connection from="-69931595#1" to="69931595#1" fromLane="0" toLane="0" via=":733663136_5_0" dir="t" state="m"/>
+ <connection from="-69931595#2" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_3_0" dir="s" state="M"/>
+ <connection from="-69931595#2" to="191176268" fromLane="0" toLane="0" via=":2017759588_4_0" dir="l" state="m"/>
+ <connection from="-69931595#2" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_5_0" dir="t" state="m"/>
+ <connection from="-69931595#3" to="-69931595#2" fromLane="0" toLane="0" via=":733663116_3_0" dir="s" state="M"/>
+ <connection from="-69931595#3" to="59159266#0" fromLane="0" toLane="0" via=":733663116_4_0" dir="l" state="m"/>
+ <connection from="-69931595#3" to="69931595#3" fromLane="0" toLane="0" via=":733663116_5_0" dir="t" state="m"/>
+ <connection from="-81096822#0" to="-38319548#6" fromLane="0" toLane="0" via=":452425497_0_0" dir="r" state="="/>
+ <connection from="-81096822#0" to="38319548#7" fromLane="0" toLane="0" via=":452425497_1_0" dir="l" state="="/>
+ <connection from="-81096822#0" to="81096822#0" fromLane="0" toLane="0" via=":452425497_2_0" dir="t" state="="/>
+ <connection from="-81096822#1" to="-81096822#0" fromLane="0" toLane="0" via=":1669480292_0_0" dir="s" state="m"/>
+ <connection from="-81096822#1" to="172498387#4" fromLane="0" toLane="0" via=":1669480292_1_0" dir="l" state="m"/>
+ <connection from="-81096822#1" to="81096822#1" fromLane="0" toLane="0" via=":1669480292_2_0" dir="t" state="m"/>
+ <connection from="-81096822#2" to="75656628#1" fromLane="0" toLane="0" via=":543360161_0_0" dir="r" state="m"/>
+ <connection from="-81096822#2" to="-81096822#1" fromLane="0" toLane="0" via=":543360161_1_0" dir="s" state="m"/>
+ <connection from="-81096822#2" to="81096822#2" fromLane="0" toLane="0" via=":543360161_2_0" dir="t" state="m"/>
+ <connection from="-81096844#0" to="37771900#2" fromLane="0" toLane="0" via=":443089061_2_0" dir="r" state="m"/>
+ <connection from="-81096844#0" to="81096844#0" fromLane="0" toLane="0" via=":443089061_3_0" dir="t" state="m"/>
+ <connection from="-81096844#1" to="58770725#1" fromLane="0" toLane="0" via=":248913142_6_0" dir="r" state="M"/>
+ <connection from="-81096844#1" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_7_0" dir="s" state="M"/>
+ <connection from="-81096844#1" to="81096844#1" fromLane="0" toLane="0" via=":248913142_8_0" dir="t" state="m"/>
+ <connection from="-81096844#2" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_6_0" dir="s" state="M"/>
+ <connection from="-81096844#2" to="23066443#7" fromLane="0" toLane="0" via=":248913144_7_0" dir="l" state="m"/>
+ <connection from="-81096844#2" to="81096844#2" fromLane="0" toLane="0" via=":248913144_8_0" dir="t" state="m"/>
+ <connection from="-81096844#3" to="38319546#6" fromLane="0" toLane="0" via=":452425487_12_0" dir="r" state="M"/>
+ <connection from="-81096844#3" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_13_0" dir="s" state="M"/>
+ <connection from="-81096844#3" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_14_0" dir="l" state="m"/>
+ <connection from="-81096844#3" to="81096844#3" fromLane="0" toLane="0" via=":452425487_15_0" dir="t" state="m"/>
+ <connection from="-81394200#0" to="81394188#0" fromLane="0" toLane="0" via=":948350565_0_0" dir="l" state="M"/>
+ <connection from="-81394200#0" to="81394200#0" fromLane="0" toLane="0" via=":948350565_1_0" dir="t" state="M"/>
+ <connection from="-81394200#1" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_4_0" dir="s" state="M"/>
+ <connection from="-81394200#1" to="133868191#1" fromLane="0" toLane="3" via=":948350597_5_0" dir="s" state="M"/>
+ <connection from="-81394200#1" to="81394200#1" fromLane="0" toLane="0" via=":948350597_6_0" dir="t" state="m"/>
+ <connection from="-81394200#2" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_4_0" dir="r" state="M"/>
+ <connection from="-81394200#2" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_5_0" dir="s" state="M"/>
+ <connection from="-81394200#2" to="130443629#2" fromLane="0" toLane="0" via=":948350640_6_0" dir="l" state="m"/>
+ <connection from="-81394200#2" to="81394200#2" fromLane="0" toLane="0" via=":948350640_7_0" dir="t" state="m"/>
+ <connection from="-81523330#0" to="-133868229#1" fromLane="0" toLane="0" via=":948350630_0_0" dir="s" state="M"/>
+ <connection from="-81523330#0" to="-133868229#1" fromLane="1" toLane="1" via=":948350630_1_0" dir="s" state="M"/>
+ <connection from="-81523330#0" to="81523330#0" fromLane="1" toLane="1" via=":948350630_2_0" dir="t" state="m"/>
+ <connection from="-81523330#1" to="-81523330#0" fromLane="0" toLane="0" via=":1252777720_0_0" dir="s" state="M"/>
+ <connection from="-81523330#1" to="-81523330#0" fromLane="1" toLane="1" via=":1252777720_1_0" dir="s" state="M"/>
+ <connection from="-81523330#1" to="81523330#1" fromLane="1" toLane="1" via=":1252777720_2_0" dir="t" state="m"/>
+ <connection from="-81523330#2" to="-23315111#2" fromLane="0" toLane="0" via=":950094425_4_0" dir="r" state="M"/>
+ <connection from="-81523330#2" to="-81523330#1" fromLane="0" toLane="0" via=":950094425_5_0" dir="s" state="M"/>
+ <connection from="-81523330#2" to="-81523330#1" fromLane="1" toLane="1" via=":950094425_6_0" dir="s" state="M"/>
+ <connection from="-81523330#2" to="23315111#3" fromLane="1" toLane="0" via=":950094425_7_0" dir="l" state="m"/>
+ <connection from="-81523330#2" to="81523330#2" fromLane="1" toLane="1" via=":950094425_8_0" dir="t" state="m"/>
+ <connection from="-81523330#3" to="108329427#1" fromLane="0" toLane="0" via=":1263725264_4_0" dir="r" state="M"/>
+ <connection from="-81523330#3" to="-81523330#2" fromLane="0" toLane="0" via=":1263725264_5_0" dir="s" state="M"/>
+ <connection from="-81523330#3" to="-81523330#2" fromLane="1" toLane="1" via=":1263725264_6_0" dir="s" state="M"/>
+ <connection from="-81523330#3" to="-108329427#0" fromLane="1" toLane="0" via=":1263725264_7_0" dir="l" state="m"/>
+ <connection from="-81523330#3" to="81523330#3" fromLane="1" toLane="1" via=":1263725264_8_0" dir="t" state="m"/>
+ <connection from="-81523330#4" to="-81523330#3" fromLane="0" toLane="0" via=":1243159116_0_0" dir="s" state="M"/>
+ <connection from="-81523330#4" to="-81523330#3" fromLane="1" toLane="1" via=":1243159116_1_0" dir="s" state="M"/>
+ <connection from="-81523330#4" to="108329426#0" fromLane="1" toLane="0" via=":1243159116_2_0" dir="s" state="m"/>
+ <connection from="-81523330#4" to="81523330#4" fromLane="1" toLane="1" via=":1243159116_3_0" dir="t" state="m"/>
+ <connection from="-81672209" to="81672216#4" fromLane="0" toLane="0" via=":951739458_3_0" dir="r" state="="/>
+ <connection from="-81672209" to="-81672216#3" fromLane="0" toLane="0" via=":951739458_4_0" dir="l" state="="/>
+ <connection from="-81672209" to="81672209" fromLane="0" toLane="0" via=":951739458_5_0" dir="t" state="="/>
+ <connection from="-81672213" to="81672216#3" fromLane="0" toLane="0" via=":951739420_3_0" dir="r" state="="/>
+ <connection from="-81672213" to="-81672216#2" fromLane="0" toLane="0" via=":951739420_4_0" dir="l" state="="/>
+ <connection from="-81672213" to="81672213" fromLane="0" toLane="0" via=":951739420_5_0" dir="t" state="="/>
+ <connection from="-81672214" to="81672216#2" fromLane="0" toLane="0" via=":951739766_3_0" dir="r" state="="/>
+ <connection from="-81672214" to="-81672216#1" fromLane="0" toLane="0" via=":951739766_4_0" dir="l" state="="/>
+ <connection from="-81672214" to="81672214" fromLane="0" toLane="0" via=":951739766_5_0" dir="t" state="="/>
+ <connection from="-81672216#0" to="37973569#5" fromLane="0" toLane="0" via=":951739693_0_0" dir="r" state="m"/>
+ <connection from="-81672216#0" to="81672216#0" fromLane="0" toLane="0" via=":951739693_1_0" dir="t" state="m"/>
+ <connection from="-81672216#1" to="-81672216#0" fromLane="0" toLane="0" via=":1457699220_0_0" dir="s" state="="/>
+ <connection from="-81672216#1" to="-81672216#9" fromLane="0" toLane="0" via=":1457699220_1_0" dir="l" state="="/>
+ <connection from="-81672216#1" to="81672216#1" fromLane="0" toLane="0" via=":1457699220_2_0" dir="t" state="="/>
+ <connection from="-81672216#2" to="-81672216#1" fromLane="0" toLane="0" via=":951739766_0_0" dir="s" state="="/>
+ <connection from="-81672216#2" to="81672214" fromLane="0" toLane="0" via=":951739766_1_0" dir="l" state="="/>
+ <connection from="-81672216#2" to="81672216#2" fromLane="0" toLane="0" via=":951739766_2_0" dir="t" state="="/>
+ <connection from="-81672216#3" to="-81672216#2" fromLane="0" toLane="0" via=":951739420_0_0" dir="s" state="="/>
+ <connection from="-81672216#3" to="81672213" fromLane="0" toLane="0" via=":951739420_1_0" dir="l" state="="/>
+ <connection from="-81672216#3" to="81672216#3" fromLane="0" toLane="0" via=":951739420_2_0" dir="t" state="="/>
+ <connection from="-81672216#4" to="-81672216#3" fromLane="0" toLane="0" via=":951739458_0_0" dir="s" state="="/>
+ <connection from="-81672216#4" to="81672209" fromLane="0" toLane="0" via=":951739458_1_0" dir="l" state="="/>
+ <connection from="-81672216#4" to="81672216#4" fromLane="0" toLane="0" via=":951739458_2_0" dir="t" state="="/>
+ <connection from="-81672216#5" to="-81672216#4" fromLane="0" toLane="0" via=":951739511_0_0" dir="s" state="="/>
+ <connection from="-81672216#5" to="81672218" fromLane="0" toLane="0" via=":951739511_1_0" dir="l" state="="/>
+ <connection from="-81672216#5" to="81672216#5" fromLane="0" toLane="0" via=":951739511_2_0" dir="t" state="="/>
+ <connection from="-81672216#6" to="-81672218" fromLane="0" toLane="0" via=":1457699223_3_0" dir="l" state="="/>
+ <connection from="-81672216#6" to="-81672216#5" fromLane="0" toLane="0" via=":1457699223_4_0" dir="s" state="="/>
+ <connection from="-81672216#6" to="81672216#6" fromLane="0" toLane="0" via=":1457699223_5_0" dir="t" state="="/>
+ <connection from="-81672216#7" to="-81672216#6" fromLane="0" toLane="0" via=":1457699222_3_0" dir="s" state="="/>
+ <connection from="-81672216#7" to="-81672209" fromLane="0" toLane="0" via=":1457699222_4_0" dir="l" state="="/>
+ <connection from="-81672216#7" to="81672216#7" fromLane="0" toLane="0" via=":1457699222_5_0" dir="t" state="="/>
+ <connection from="-81672216#8" to="-81672216#7" fromLane="0" toLane="0" via=":951739568_3_0" dir="s" state="="/>
+ <connection from="-81672216#8" to="-81672213" fromLane="0" toLane="0" via=":951739568_4_0" dir="l" state="="/>
+ <connection from="-81672216#8" to="81672216#8" fromLane="0" toLane="0" via=":951739568_5_0" dir="t" state="="/>
+ <connection from="-81672216#9" to="-81672216#8" fromLane="0" toLane="0" via=":951739549_3_0" dir="s" state="="/>
+ <connection from="-81672216#9" to="-81672214" fromLane="0" toLane="0" via=":951739549_4_0" dir="l" state="="/>
+ <connection from="-81672216#9" to="81672216#9" fromLane="0" toLane="0" via=":951739549_5_0" dir="t" state="="/>
+ <connection from="-81672218" to="-81672216#4" fromLane="0" toLane="0" via=":951739511_3_0" dir="l" state="="/>
+ <connection from="-81672218" to="81672216#5" fromLane="0" toLane="0" via=":951739511_4_0" dir="r" state="="/>
+ <connection from="-81672218" to="81672218" fromLane="0" toLane="0" via=":951739511_5_0" dir="t" state="="/>
+ <connection from="-83038920" to="-83038923#0" fromLane="0" toLane="0" via=":966097837_0_0" dir="r" state="="/>
+ <connection from="-83038920" to="83038923#1" fromLane="0" toLane="0" via=":966097837_1_0" dir="l" state="="/>
+ <connection from="-83038920" to="83038920" fromLane="0" toLane="0" via=":966097837_2_0" dir="t" state="="/>
+ <connection from="-83038923#0" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_0_0" dir="r" state="m"/>
+ <connection from="-83038923#0" to="130443630#2" fromLane="0" toLane="0" via=":966097869_1_0" dir="l" state="m"/>
+ <connection from="-83038923#0" to="83038923#0" fromLane="0" toLane="0" via=":966097869_2_0" dir="t" state="m"/>
+ <connection from="-83038923#1" to="-83038923#0" fromLane="0" toLane="0" via=":966097837_3_0" dir="s" state="="/>
+ <connection from="-83038923#1" to="83038920" fromLane="0" toLane="0" via=":966097837_4_0" dir="r" state="="/>
+ <connection from="-83038923#1" to="83038923#1" fromLane="0" toLane="0" via=":966097837_5_0" dir="t" state="="/>
+ <connection from="-83051417" to="-83051421#1" fromLane="0" toLane="0" via=":966193812_3_0" dir="r" state="="/>
+ <connection from="-83051417" to="83051421#2" fromLane="0" toLane="0" via=":966193812_4_0" dir="l" state="="/>
+ <connection from="-83051417" to="83051417" fromLane="0" toLane="0" via=":966193812_5_0" dir="t" state="="/>
+ <connection from="-83051420" to="83051436#0" fromLane="0" toLane="0" via=":966193808_8_0" dir="r" state="M"/>
+ <connection from="-83051420" to="-83051417" fromLane="0" toLane="0" via=":966193808_9_0" dir="s" state="M"/>
+ <connection from="-83051420" to="-24573937" fromLane="0" toLane="0" via=":966193808_10_0" dir="l" state="M"/>
+ <connection from="-83051420" to="83051420" fromLane="0" toLane="0" via=":966193808_11_0" dir="t" state="m"/>
+ <connection from="-83051421#0" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_12_0" dir="r" state="m"/>
+ <connection from="-83051421#0" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_13_0" dir="R" state="m"/>
+ <connection from="-83051421#0" to="24573947#3" fromLane="0" toLane="0" via=":267169634_14_0" dir="l" state="m"/>
+ <connection from="-83051421#0" to="83051421#0" fromLane="0" toLane="0" via=":267169634_15_0" dir="t" state="m"/>
+ <connection from="-83051421#1" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_12_0" dir="r" state="="/>
+ <connection from="-83051421#1" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_13_0" dir="s" state="="/>
+ <connection from="-83051421#1" to="24573939#1" fromLane="0" toLane="0" via=":267169686_14_0" dir="l" state="="/>
+ <connection from="-83051421#1" to="83051421#1" fromLane="0" toLane="0" via=":267169686_15_0" dir="t" state="="/>
+ <connection from="-83051421#2" to="83051417" fromLane="0" toLane="0" via=":966193812_6_0" dir="r" state="="/>
+ <connection from="-83051421#2" to="-83051421#1" fromLane="0" toLane="0" via=":966193812_7_0" dir="s" state="="/>
+ <connection from="-83051421#2" to="83051421#2" fromLane="0" toLane="0" via=":966193812_8_0" dir="t" state="="/>
+ <connection from="-83051424" to="-83051483" fromLane="0" toLane="0" via=":966193814_2_0" dir="s" state="M"/>
+ <connection from="-83051424" to="83051424" fromLane="0" toLane="0" via=":966193814_3_0" dir="t" state="m"/>
+ <connection from="-83051426" to="83051442#0" fromLane="0" toLane="0" via=":733663071_6_0" dir="r" state="="/>
+ <connection from="-83051426" to="-83051442#2" fromLane="0" toLane="0" via=":733663071_7_0" dir="s" state="="/>
+ <connection from="-83051426" to="83051426" fromLane="0" toLane="0" via=":733663071_8_0" dir="t" state="="/>
+ <connection from="-83051436#0" to="-83051417" fromLane="0" toLane="0" via=":966193808_4_0" dir="r" state="m"/>
+ <connection from="-83051436#0" to="-24573937" fromLane="0" toLane="0" via=":966193808_5_0" dir="s" state="m"/>
+ <connection from="-83051436#0" to="83051420" fromLane="0" toLane="0" via=":966193808_6_0" dir="l" state="m"/>
+ <connection from="-83051436#0" to="83051436#0" fromLane="0" toLane="0" via=":966193808_7_0" dir="t" state="m"/>
+ <connection from="-83051436#1" to="24573939#0" fromLane="0" toLane="0" via=":267169690_4_0" dir="r" state="m"/>
+ <connection from="-83051436#1" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_5_0" dir="s" state="m"/>
+ <connection from="-83051436#1" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_6_0" dir="l" state="m"/>
+ <connection from="-83051436#1" to="83051436#1" fromLane="0" toLane="0" via=":267169690_7_0" dir="t" state="m"/>
+ <connection from="-83051442#0" to="-83051442#2" fromLane="0" toLane="0" via=":733663071_3_0" dir="s" state="="/>
+ <connection from="-83051442#0" to="83051426" fromLane="0" toLane="0" via=":733663071_4_0" dir="l" state="="/>
+ <connection from="-83051442#0" to="83051442#0" fromLane="0" toLane="0" via=":733663071_5_0" dir="t" state="="/>
+ <connection from="-83051442#1" to="-83051442#0" fromLane="0" toLane="0" via=":733663078_3_0" dir="s" state="="/>
+ <connection from="-83051442#1" to="83051455" fromLane="0" toLane="0" via=":733663078_4_0" dir="s" state="="/>
+ <connection from="-83051442#1" to="83051442#1" fromLane="0" toLane="0" via=":733663078_5_0" dir="t" state="="/>
+ <connection from="-83051442#2" to="-83051442#1" fromLane="0" toLane="0" via=":441266874_0_0" dir="s" state="="/>
+ <connection from="-83051442#2" to="-24573939#2" fromLane="0" toLane="0" via=":441266874_1_0" dir="l" state="="/>
+ <connection from="-83051442#2" to="83051442#2" fromLane="0" toLane="0" via=":441266874_2_0" dir="t" state="="/>
+ <connection from="-83051455" to="83051442#1" fromLane="0" toLane="0" via=":733663078_6_0" dir="s" state="="/>
+ <connection from="-83051455" to="-83051442#0" fromLane="0" toLane="0" via=":733663078_7_0" dir="l" state="="/>
+ <connection from="-83051455" to="83051455" fromLane="0" toLane="0" via=":733663078_8_0" dir="t" state="="/>
+ <connection from="-83051480#0" to="83051480#0" fromLane="0" toLane="0" via=":257907508_0_0" dir="t" state="M"/>
+ <connection from="-83051480#1" to="-83051480#0" fromLane="0" toLane="0" via=":966193793_6_0" dir="s" state="="/>
+ <connection from="-83051480#1" to="-83051424" fromLane="0" toLane="0" via=":966193793_7_0" dir="l" state="="/>
+ <connection from="-83051480#1" to="83051480#1" fromLane="0" toLane="0" via=":966193793_8_0" dir="t" state="="/>
+ <connection from="-83051483" to="37771904#1" fromLane="0" toLane="0" via=":966193857_0_0" dir="r" state="M"/>
+ <connection from="-83051483" to="83051483" fromLane="0" toLane="0" via=":966193857_1_0" dir="t" state="m"/>
+ <connection from="101272424#0" to="166576464#4" fromLane="0" toLane="0" via=":1780219363_3_0" dir="r" state="M"/>
+ <connection from="101272424#0" to="101272424#1" fromLane="0" toLane="0" via=":1780219363_4_0" dir="s" state="M"/>
+ <connection from="101272424#0" to="-166576464#3" fromLane="0" toLane="0" via=":1780219363_5_0" dir="l" state="M"/>
+ <connection from="101272424#1" to="101272424#2" fromLane="0" toLane="0" via=":267169591_1_0" dir="s" state="m"/>
+ <connection from="101272424#2" to="166576468#3" fromLane="0" toLane="0" via=":1780219362_3_0" dir="r" state="M"/>
+ <connection from="101272424#2" to="101272424#3" fromLane="0" toLane="0" via=":1780219362_4_0" dir="s" state="M"/>
+ <connection from="101272424#2" to="-166576468#2" fromLane="0" toLane="0" via=":1780219362_5_0" dir="l" state="M"/>
+ <connection from="101272424#3" to="37772596#0" fromLane="0" toLane="0" via=":443101913_0_0" tl="443101913" linkIndex="0" dir="r" state="o"/>
+ <connection from="101272424#3" to="101272424#4" fromLane="0" toLane="0" via=":443101913_1_0" tl="443101913" linkIndex="1" dir="s" state="o"/>
+ <connection from="101272424#4" to="111549913#4" fromLane="0" toLane="0" via=":950640399_0_0" dir="r" state="m"/>
+ <connection from="101272424#4" to="101272424#5" fromLane="0" toLane="0" via=":950640399_1_0" dir="s" state="m"/>
+ <connection from="101272424#5" to="-149868584#6" fromLane="0" toLane="0" via=":13929775_4_0" tl="13929775" linkIndex="4" dir="r" state="o"/>
+ <connection from="101272424#5" to="42976410#0" fromLane="0" toLane="0" via=":13929775_5_0" tl="13929775" linkIndex="5" dir="s" state="o"/>
+ <connection from="101272424#5" to="149868584#7" fromLane="0" toLane="1" via=":13929775_6_0" tl="13929775" linkIndex="6" dir="l" state="o"/>
+ <connection from="101272426#0" to="23262356#2" fromLane="0" toLane="0" via=":443101920_6_0" dir="r" state="m"/>
+ <connection from="101272426#0" to="101272426#1" fromLane="0" toLane="0" via=":443101920_7_0" dir="s" state="m"/>
+ <connection from="101272426#0" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_8_0" dir="l" state="m"/>
+ <connection from="101272426#1" to="-149422210#1" fromLane="0" toLane="0" via=":443101921_6_0" dir="r" state="M"/>
+ <connection from="101272426#1" to="101272426#2" fromLane="0" toLane="0" via=":443101921_7_0" dir="s" state="M"/>
+ <connection from="101272426#1" to="149422193#0" fromLane="0" toLane="0" via=":443101921_8_0" dir="l" state="M"/>
+ <connection from="101272429#0" to="23182589#0" fromLane="0" toLane="0" via=":443101911_0_0" dir="r" state="M"/>
+ <connection from="101272429#0" to="101272429#1" fromLane="0" toLane="0" via=":443101911_1_0" dir="s" state="M"/>
+ <connection from="101272429#1" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_3_0" tl="452425502" linkIndex="3" dir="r" state="o"/>
+ <connection from="101272429#1" to="101272429#2" fromLane="0" toLane="0" via=":452425502_4_0" tl="452425502" linkIndex="4" dir="s" state="o"/>
+ <connection from="101272429#1" to="38319550#4" fromLane="0" toLane="0" via=":452425502_5_0" tl="452425502" linkIndex="5" dir="l" state="o"/>
+ <connection from="101272429#2" to="42976410#2" fromLane="0" toLane="0" via=":443101912_0_0" tl="443101912" linkIndex="0" dir="r" state="o"/>
+ <connection from="101272429#2" to="37973569#0" fromLane="0" toLane="0" via=":443101912_1_0" tl="443101912" linkIndex="1" dir="s" state="o"/>
+ <connection from="101272431" to="-160587538#1" fromLane="0" toLane="0" via=":1168929634_6_0" tl="1168929634" linkIndex="6" dir="r" state="o"/>
+ <connection from="101272431" to="154844478" fromLane="0" toLane="0" via=":1168929634_7_0" tl="1168929634" linkIndex="7" dir="s" state="o"/>
+ <connection from="101272431" to="160587538#2" fromLane="0" toLane="1" via=":1168929634_8_0" tl="1168929634" linkIndex="8" dir="l" state="o"/>
+ <connection from="101272434" to="-101272434" fromLane="0" toLane="0" via=":566670951_0_0" dir="t" state="M"/>
+ <connection from="101272435#0" to="24573937" fromLane="0" toLane="0" via=":267169964_2_0" dir="r" state="M"/>
+ <connection from="101272435#0" to="101272435#1" fromLane="0" toLane="0" via=":267169964_3_0" dir="s" state="m"/>
+ <connection from="101272435#1" to="37771904#0" fromLane="0" toLane="0" via=":443089074_0_0" dir="r" state="M"/>
+ <connection from="101272435#1" to="101272435#2" fromLane="0" toLane="0" via=":443089074_1_0" dir="s" state="M"/>
+ <connection from="101272435#2" to="101272435#3" fromLane="0" toLane="0" via=":441266879_1_0" dir="s" state="m"/>
+ <connection from="101272435#3" to="-38319548#10" fromLane="0" toLane="0" via=":1669480279_3_0" dir="r" state="M"/>
+ <connection from="101272435#3" to="101272435#4" fromLane="0" toLane="0" via=":1669480279_4_0" dir="s" state="M"/>
+ <connection from="101272435#3" to="38319548#11" fromLane="0" toLane="0" via=":1669480279_5_0" dir="l" state="M"/>
+ <connection from="101272435#4" to="154844500#1" fromLane="0" toLane="0" via=":441266880_3_0" tl="441266880" linkIndex="3" dir="r" state="o"/>
+ <connection from="101272435#4" to="101272435#5" fromLane="0" toLane="0" via=":441266880_4_0" tl="441266880" linkIndex="4" dir="s" state="o"/>
+ <connection from="101272435#4" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_5_0" tl="441266880" linkIndex="5" dir="l" state="o"/>
+ <connection from="101272435#5" to="38319548#8" fromLane="0" toLane="0" via=":1669480283_3_0" dir="r" state="M"/>
+ <connection from="101272435#5" to="101272435#6" fromLane="0" toLane="0" via=":1669480283_4_0" dir="s" state="M"/>
+ <connection from="101272435#5" to="-38319548#7" fromLane="0" toLane="0" via=":1669480283_5_0" dir="l" state="M"/>
+ <connection from="101272435#6" to="172498387#5" fromLane="0" toLane="0" via=":441266884_0_0" tl="441266884" linkIndex="0" dir="r" state="o"/>
+ <connection from="101272435#6" to="101272435#7" fromLane="0" toLane="0" via=":441266884_1_0" tl="441266884" linkIndex="1" dir="s" state="o"/>
+ <connection from="103851602#0" to="-38319548#12" fromLane="0" toLane="0" via=":951739684_3_0" dir="r" state="M"/>
+ <connection from="103851602#0" to="103851602#1" fromLane="0" toLane="0" via=":951739684_4_0" dir="s" state="M"/>
+ <connection from="103851602#0" to="38319548#13" fromLane="0" toLane="0" via=":951739684_5_0" dir="l" state="M"/>
+ <connection from="103851602#1" to="154844483#2" fromLane="0" toLane="0" via=":951739718_0_0" dir="r" state="m"/>
+ <connection from="103851602#1" to="103851602#2" fromLane="0" toLane="0" via=":951739718_1_0" dir="s" state="m"/>
+ <connection from="103851602#2" to="160587538#5" fromLane="0" toLane="0" via=":1726394725_3_0" dir="r" state="M"/>
+ <connection from="103851602#2" to="103851602#3" fromLane="0" toLane="0" via=":1726394725_4_0" dir="s" state="M"/>
+ <connection from="103851602#2" to="-160587538#4" fromLane="0" toLane="1" via=":1726394725_5_0" dir="l" state="M"/>
+ <connection from="103851602#3" to="103851602#4" fromLane="0" toLane="0" via=":951739776_3_0" dir="s" state="m"/>
+ <connection from="103851602#3" to="166603397#1" fromLane="0" toLane="1" via=":951739776_4_0" dir="l" state="m"/>
+ <connection from="103851602#4" to="111863125#0" fromLane="0" toLane="0" via=":1168929523_2_0" dir="s" state="m"/>
+ <connection from="103851602#4" to="154844470#0" fromLane="0" toLane="0" via=":1168929523_3_0" dir="l" state="m"/>
+ <connection from="105251811#0" to="105251811#1" fromLane="0" toLane="0" via=":1212941056_2_0" dir="s" state="m"/>
+ <connection from="105251811#0" to="37942667#2" fromLane="0" toLane="0" via=":1212941056_3_0" dir="l" state="m"/>
+ <connection from="105251811#1" to="108329425#0" fromLane="0" toLane="0" via=":733663076_8_0" dir="r" state="m"/>
+ <connection from="105251811#1" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_9_0" dir="L" state="m"/>
+ <connection from="105251811#1" to="59159259#0" fromLane="0" toLane="0" via=":733663076_10_0" dir="L" state="m"/>
+ <connection from="105251811#1" to="105283535#0" fromLane="0" toLane="0" via=":733663076_11_0" dir="l" state="m"/>
+ <connection from="105254616#0" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_6_0" dir="s" state="m"/>
+ <connection from="105254616#0" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_7_0" dir="r" state="m"/>
+ <connection from="105254616#0" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_8_0" dir="t" state="m"/>
+ <connection from="105254616#1" to="81672207#2" fromLane="0" toLane="0" via=":1719223322_2_0" dir="r" state="m"/>
+ <connection from="105254616#1" to="-105254616#1" fromLane="0" toLane="0" via=":1719223322_3_0" dir="t" state="m"/>
+ <connection from="105254618" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_0_0" dir="r" state="m"/>
+ <connection from="105254618" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_1_0" dir="l" state="m"/>
+ <connection from="105254618" to="-105254618" fromLane="0" toLane="0" via=":1634988377_2_0" dir="t" state="m"/>
+ <connection from="105283535#0" to="37942667#3" fromLane="0" toLane="0" via=":1213368991_0_0" dir="r" state="M"/>
+ <connection from="105283535#0" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_1_0" dir="s" state="M"/>
+ <connection from="105283535#0" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_2_0" dir="t" state="m"/>
+ <connection from="105283535#1" to="-37973566" fromLane="0" toLane="0" via=":552842256_6_0" dir="r" state="M"/>
+ <connection from="105283535#1" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_7_0" dir="s" state="M"/>
+ <connection from="105283535#1" to="43684741#0" fromLane="0" toLane="0" via=":552842256_8_0" dir="s" state="m"/>
+ <connection from="105283535#1" to="130443630#0" fromLane="0" toLane="0" via=":552842256_9_0" dir="L" state="m"/>
+ <connection from="105283535#1" to="105251811#0" fromLane="0" toLane="0" via=":552842256_10_0" dir="l" state="m"/>
+ <connection from="105283535#1" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_11_0" dir="t" state="m"/>
+ <connection from="106366773" to="179917801" fromLane="0" toLane="0" via=":1224080662_0_0" dir="s" state="M"/>
+ <connection from="106366774" to="-106366774" fromLane="0" toLane="0" via=":1224080676_0_0" dir="t" state="M"/>
+ <connection from="106367427#0" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_8_0" dir="r" state="m"/>
+ <connection from="106367427#0" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_9_0" dir="s" state="m"/>
+ <connection from="106367427#0" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_10_0" dir="l" state="m"/>
+ <connection from="106367427#0" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_11_0" dir="t" state="m"/>
+ <connection from="106367427#1" to="-106367427#1" fromLane="0" toLane="0" via=":1903640411_1_0" dir="t" state="m"/>
+ <connection from="106836308#0" to="106836308#1" fromLane="0" toLane="0" via=":1232169474_0_0" dir="s" state="m"/>
+ <connection from="106836308#0" to="-107166846#5" fromLane="0" toLane="0" via=":1232169474_1_0" dir="l" state="m"/>
+ <connection from="106836308#0" to="-106836308#0" fromLane="0" toLane="0" via=":1232169474_2_0" dir="t" state="m"/>
+ <connection from="106836308#1" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_4_0" dir="r" state="m"/>
+ <connection from="106836308#1" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_5_0" dir="s" state="m"/>
+ <connection from="106836308#1" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_6_0" dir="l" state="m"/>
+ <connection from="106836308#1" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_7_0" dir="t" state="m"/>
+ <connection from="106836308#2" to="-106836308#2" fromLane="0" toLane="0" via=":1228499925_0_0" dir="t" state="M"/>
+ <connection from="106836317#0" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_6_0" dir="r" state="m"/>
+ <connection from="106836317#0" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_7_0" dir="s" state="m"/>
+ <connection from="106836317#0" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_8_0" dir="l" state="m"/>
+ <connection from="106836317#1" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_6_0" dir="r" state="m"/>
+ <connection from="106836317#1" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_7_0" dir="s" state="m"/>
+ <connection from="106836317#1" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_8_0" dir="l" state="m"/>
+ <connection from="106836317#2" to="81394192#2" fromLane="0" toLane="0" via=":1228499945_2_0" dir="r" state="m"/>
+ <connection from="106836317#2" to="106836317#3" fromLane="0" toLane="0" via=":1228499945_3_0" dir="s" state="m"/>
+ <connection from="106836317#3" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_4_0" dir="r" state="m"/>
+ <connection from="106836317#3" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_5_0" dir="l" state="m"/>
+ <connection from="107028581#0" to="107028581#1" fromLane="0" toLane="0" via=":728492353_3_0" dir="s" state="M"/>
+ <connection from="107028581#0" to="107166846#0" fromLane="0" toLane="0" via=":728492353_4_0" dir="l" state="m"/>
+ <connection from="107028581#0" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_5_0" dir="t" state="m"/>
+ <connection from="107028581#1" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_8_0" dir="r" state="M"/>
+ <connection from="107028581#1" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_9_0" dir="s" state="M"/>
+ <connection from="107028581#1" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_10_0" dir="l" state="m"/>
+ <connection from="107028581#1" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_11_0" dir="t" state="m"/>
+ <connection from="107028581#2" to="81394192#7" fromLane="0" toLane="0" via=":552842257_3_0" dir="r" state="M"/>
+ <connection from="107028581#2" to="107028581#3" fromLane="0" toLane="0" via=":552842257_4_0" dir="s" state="M"/>
+ <connection from="107028581#2" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_5_0" dir="t" state="m"/>
+ <connection from="107028581#3" to="43684741#0" fromLane="0" toLane="0" via=":552842256_24_0" dir="r" state="M"/>
+ <connection from="107028581#3" to="130443630#0" fromLane="0" toLane="0" via=":552842256_25_0" dir="R" state="M"/>
+ <connection from="107028581#3" to="105251811#0" fromLane="0" toLane="0" via=":552842256_26_0" dir="s" state="M"/>
+ <connection from="107028581#3" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_27_0" dir="s" state="M"/>
+ <connection from="107028581#3" to="-37973566" fromLane="0" toLane="0" via=":552842256_28_0" dir="l" state="m"/>
+ <connection from="107028581#3" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_29_0" dir="t" state="m"/>
+ <connection from="107066313#0" to="38027665#1" fromLane="0" toLane="0" via=":477486719_8_0" dir="r" state="M"/>
+ <connection from="107066313#0" to="107066313#1" fromLane="0" toLane="0" via=":477486719_9_0" dir="s" state="M"/>
+ <connection from="107066313#0" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_10_0" dir="l" state="m"/>
+ <connection from="107066313#0" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_11_0" dir="t" state="m"/>
+ <connection from="107066313#1" to="58779718#0" fromLane="0" toLane="0" via=":728492341_6_0" dir="r" state="M"/>
+ <connection from="107066313#1" to="107066313#2" fromLane="0" toLane="0" via=":728492341_7_0" dir="s" state="M"/>
+ <connection from="107066313#1" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_8_0" dir="t" state="m"/>
+ <connection from="107066313#2" to="38027102#1" fromLane="0" toLane="0" via=":477486717_8_0" dir="r" state="M"/>
+ <connection from="107066313#2" to="107066313#3" fromLane="0" toLane="0" via=":477486717_9_0" dir="s" state="M"/>
+ <connection from="107066313#2" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_10_0" dir="l" state="m"/>
+ <connection from="107066313#2" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_11_0" dir="t" state="m"/>
+ <connection from="107066313#3" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_3_0" dir="r" state="M"/>
+ <connection from="107066313#3" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_4_0" dir="s" state="M"/>
+ <connection from="107066313#3" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_5_0" dir="t" state="m"/>
+ <connection from="107066313#4" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_8_0" dir="r" state="M"/>
+ <connection from="107066313#4" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_9_0" dir="s" state="M"/>
+ <connection from="107066313#4" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_10_0" dir="l" state="m"/>
+ <connection from="107066313#4" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_11_0" dir="t" state="m"/>
+ <connection from="107066313#5" to="134572336#1" fromLane="0" toLane="0" via=":477486714_3_0" dir="r" state="M"/>
+ <connection from="107066313#5" to="81394169#0" fromLane="0" toLane="0" via=":477486714_4_0" dir="s" state="M"/>
+ <connection from="107066313#5" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_5_0" dir="t" state="m"/>
+ <connection from="107166846#0" to="38027665#2" fromLane="0" toLane="0" via=":728492372_4_0" dir="r" state="M"/>
+ <connection from="107166846#0" to="107166846#1" fromLane="0" toLane="0" via=":728492372_5_0" dir="s" state="M"/>
+ <connection from="107166846#0" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_6_0" dir="l" state="m"/>
+ <connection from="107166846#0" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_7_0" dir="t" state="m"/>
+ <connection from="107166846#1" to="58779718#1" fromLane="0" toLane="0" via=":728492360_4_0" dir="r" state="M"/>
+ <connection from="107166846#1" to="107166846#2" fromLane="0" toLane="0" via=":728492360_5_0" dir="s" state="M"/>
+ <connection from="107166846#1" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_6_0" dir="l" state="m"/>
+ <connection from="107166846#1" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_7_0" dir="t" state="m"/>
+ <connection from="107166846#2" to="58779719#1" fromLane="0" toLane="0" via=":728492361_4_0" dir="r" state="M"/>
+ <connection from="107166846#2" to="107166846#3" fromLane="0" toLane="0" via=":728492361_5_0" dir="s" state="M"/>
+ <connection from="107166846#2" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_6_0" dir="l" state="m"/>
+ <connection from="107166846#2" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_7_0" dir="t" state="m"/>
+ <connection from="107166846#3" to="38027102#2" fromLane="0" toLane="0" via=":728492366_8_0" dir="r" state="m"/>
+ <connection from="107166846#3" to="107166846#4" fromLane="0" toLane="0" via=":728492366_9_0" dir="s" state="m"/>
+ <connection from="107166846#3" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_10_0" dir="l" state="m"/>
+ <connection from="107166846#3" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_11_0" dir="t" state="m"/>
+ <connection from="107166846#4" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_3_0" dir="r" state="M"/>
+ <connection from="107166846#4" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_4_0" dir="s" state="M"/>
+ <connection from="107166846#4" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_5_0" dir="t" state="m"/>
+ <connection from="107166846#5" to="-106836308#0" fromLane="0" toLane="0" via=":1232169474_3_0" dir="r" state="M"/>
+ <connection from="107166846#5" to="106836308#1" fromLane="0" toLane="0" via=":1232169474_4_0" dir="l" state="M"/>
+ <connection from="107166846#5" to="-107166846#5" fromLane="0" toLane="0" via=":1232169474_5_0" dir="t" state="m"/>
+ <connection from="107167209#0" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_4_0" dir="r" state="m"/>
+ <connection from="107167209#0" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_5_0" dir="s" state="m"/>
+ <connection from="107167209#0" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_6_0" dir="l" state="m"/>
+ <connection from="107167209#0" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_7_0" dir="t" state="m"/>
+ <connection from="107167209#1" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_3_0" dir="r" state="m"/>
+ <connection from="107167209#1" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_4_0" dir="l" state="m"/>
+ <connection from="107167209#1" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_5_0" dir="t" state="m"/>
+ <connection from="108329425#0" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_0_0" dir="s" state="M"/>
+ <connection from="108329425#0" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_1_0" dir="l" state="m"/>
+ <connection from="108329425#0" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_2_0" dir="t" state="m"/>
+ <connection from="108329425#1" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_0_0" dir="s" state="M"/>
+ <connection from="108329425#1" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_1_0" dir="l" state="m"/>
+ <connection from="108329425#1" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_2_0" dir="t" state="m"/>
+ <connection from="108329425#2" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_0_0" dir="s" state="M"/>
+ <connection from="108329425#2" to="105254618" fromLane="0" toLane="0" via=":1212960877_1_0" dir="l" state="m"/>
+ <connection from="108329425#2" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_2_0" dir="t" state="m"/>
+ <connection from="108329425#3" to="117492209" fromLane="0" toLane="0" via=":1323557968_0_0" dir="r" state="M"/>
+ <connection from="108329425#3" to="108329425#4" fromLane="0" toLane="0" via=":1323557968_1_0" dir="s" state="M"/>
+ <connection from="108329425#3" to="-108329425#3" fromLane="0" toLane="0" via=":1323557968_2_0" dir="t" state="m"/>
+ <connection from="108329425#4" to="37942667#0" fromLane="0" toLane="0" via=":429179805_0_0" dir="r" state="M"/>
+ <connection from="108329425#4" to="108329425#5" fromLane="0" toLane="0" via=":429179805_1_0" dir="s" state="M"/>
+ <connection from="108329425#4" to="-108329425#4" fromLane="0" toLane="0" via=":429179805_2_0" dir="t" state="m"/>
+ <connection from="108329425#5" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_0_0" dir="r" state="m"/>
+ <connection from="108329425#5" to="130443630#1" fromLane="0" toLane="0" via=":445506220_1_0" dir="l" state="m"/>
+ <connection from="108329425#5" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_2_0" dir="t" state="m"/>
+ <connection from="108329426#0" to="108329427#0" fromLane="0" toLane="0" via=":427996792_10_0" tl="427996792" linkIndex="10" dir="r" state="o"/>
+ <connection from="108329426#0" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_11_0" tl="427996792" linkIndex="11" dir="R" state="o"/>
+ <connection from="108329426#0" to="108329426#1" fromLane="0" toLane="0" via=":427996792_12_0" tl="427996792" linkIndex="12" dir="s" state="o"/>
+ <connection from="108329426#0" to="44641744#1" fromLane="0" toLane="0" via=":427996792_13_0" tl="427996792" linkIndex="13" dir="l" state="o"/>
+ <connection from="108329426#0" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_14_0" tl="427996792" linkIndex="14" dir="t" state="o"/>
+ <connection from="108329426#1" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_0_0" dir="r" state="M"/>
+ <connection from="108329426#1" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_1_0" dir="s" state="M"/>
+ <connection from="108329426#1" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_2_0" dir="l" state="m"/>
+ <connection from="108329426#1" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_3_0" dir="t" state="m"/>
+ <connection from="108329426#2" to="37942668#0" fromLane="0" toLane="0" via=":445506216_0_0" dir="r" state="M"/>
+ <connection from="108329426#2" to="69931595#0" fromLane="0" toLane="0" via=":445506216_1_0" dir="s" state="M"/>
+ <connection from="108329426#2" to="-108329426#2" fromLane="0" toLane="0" via=":445506216_2_0" dir="t" state="m"/>
+ <connection from="108329427#0" to="81523330#3" fromLane="0" toLane="0" via=":1263725264_9_0" dir="r" state="m"/>
+ <connection from="108329427#0" to="108329427#1" fromLane="0" toLane="0" via=":1263725264_10_0" dir="s" state="m"/>
+ <connection from="108329427#0" to="-81523330#2" fromLane="0" toLane="1" via=":1263725264_11_0" dir="l" state="m"/>
+ <connection from="108329427#0" to="-108329427#0" fromLane="0" toLane="0" via=":1263725264_12_0" dir="t" state="m"/>
+ <connection from="108329427#1" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_8_0" dir="r" state="M"/>
+ <connection from="108329427#1" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_9_0" dir="s" state="M"/>
+ <connection from="108329427#1" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_10_0" dir="l" state="m"/>
+ <connection from="108329427#1" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_11_0" dir="t" state="m"/>
+ <connection from="108329427#2" to="144874010#1" fromLane="0" toLane="1" via=":1243159115_3_0" dir="l" state="m"/>
+ <connection from="108329427#2" to="-108329427#2" fromLane="0" toLane="0" via=":1243159115_4_0" dir="t" state="m"/>
+ <connection from="108733421" to="170590354#0" fromLane="0" toLane="0" via=":1246731541_0_0" dir="s" state="M"/>
+ <connection from="108733421" to="-108733421" fromLane="0" toLane="0" via=":1246731541_1_0" dir="t" state="m"/>
+ <connection from="108733422" to="154844479" fromLane="0" toLane="0" via=":1246731544_0_0" tl="1246731544" linkIndex="0" dir="s" state="o"/>
+ <connection from="108733422" to="-108733422" fromLane="0" toLane="0" via=":1246731544_1_0" tl="1246731544" linkIndex="1" dir="t" state="o"/>
+ <connection from="108733424" to="154844481" fromLane="0" toLane="0" via=":1246731525_2_0" dir="s" state="m"/>
+ <connection from="108733424" to="-108733424" fromLane="0" toLane="0" via=":1246731525_3_0" dir="t" state="m"/>
+ <connection from="108733425" to="166602674#1" fromLane="0" toLane="0" via=":1246731466_0_0" dir="s" state="m"/>
+ <connection from="108733425" to="-108733425" fromLane="0" toLane="0" via=":1246731466_1_0" dir="t" state="m"/>
+ <connection from="108733428" to="111863125#1" fromLane="0" toLane="0" via=":1246731576_0_0" dir="s" state="M"/>
+ <connection from="108733428" to="-108733428" fromLane="0" toLane="0" via=":1246731576_1_0" dir="t" state="m"/>
+ <connection from="108733429" to="154844461#1" fromLane="0" toLane="0" via=":1246731460_0_0" dir="s" state="M"/>
+ <connection from="108733429" to="-108733429" fromLane="0" toLane="0" via=":1246731460_1_0" dir="t" state="m"/>
+ <connection from="108733430" to="154844491#1" fromLane="0" toLane="0" via=":1246731457_0_0" dir="s" state="m"/>
+ <connection from="108733430" to="-108733430" fromLane="0" toLane="0" via=":1246731457_1_0" dir="t" state="m"/>
+ <connection from="108733431" to="154844465#2" fromLane="0" toLane="0" via=":1246731627_0_0" dir="s" state="M"/>
+ <connection from="108733431" to="-108733431" fromLane="0" toLane="0" via=":1246731627_1_0" dir="t" state="m"/>
+ <connection from="109438231#0" to="109438231#1" fromLane="0" toLane="0" via=":1479400627_2_0" dir="s" state="M"/>
+ <connection from="109438231#0" to="134572340#1" fromLane="0" toLane="1" via=":1479400627_3_0" dir="s" state="M"/>
+ <connection from="109438231#1" to="81523330#1" fromLane="0" toLane="0" via=":1252777720_3_0" dir="s" state="m"/>
+ <connection from="109438231#1" to="-81523330#0" fromLane="0" toLane="1" via=":1252777720_4_0" dir="l" state="m"/>
+ <connection from="109438232" to="81394188#3" fromLane="0" toLane="0" via=":1252777712_1_0" dir="s" state="m"/>
+ <connection from="109912567#0" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_4_0" dir="r" state="m"/>
+ <connection from="109912567#0" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_5_0" dir="s" state="m"/>
+ <connection from="109912567#0" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_6_0" dir="l" state="m"/>
+ <connection from="109912567#0" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_7_0" dir="t" state="m"/>
+ <connection from="109912567#1" to="37973565#4" fromLane="0" toLane="0" via=":1257054132_0_0" dir="r" state="m"/>
+ <connection from="109912567#1" to="-109912567#1" fromLane="0" toLane="0" via=":1257054132_1_0" dir="t" state="m"/>
+ <connection from="109912568" to="-109912568" fromLane="0" toLane="0" via=":1257054162_0_0" dir="t" state="M"/>
+ <connection from="109912572#0" to="37449253#4" fromLane="0" toLane="0" via=":1257054155_0_0" dir="r" state="m"/>
+ <connection from="109912572#0" to="109912572#1" fromLane="0" toLane="0" via=":1257054155_1_0" dir="s" state="m"/>
+ <connection from="109912572#0" to="-109912572#0" fromLane="0" toLane="0" via=":1257054155_2_0" dir="t" state="m"/>
+ <connection from="109912572#1" to="133960538#2" fromLane="0" toLane="0" via=":1257054108_0_0" dir="r" state="m"/>
+ <connection from="109912572#1" to="109912572#2" fromLane="0" toLane="0" via=":1257054108_1_0" dir="s" state="m"/>
+ <connection from="109912572#1" to="-109912572#1" fromLane="0" toLane="0" via=":1257054108_2_0" dir="t" state="m"/>
+ <connection from="109912572#2" to="109912572#3" fromLane="0" toLane="0" via=":1257054092_4_0" dir="s" state="m"/>
+ <connection from="109912572#2" to="81394162#1" fromLane="0" toLane="1" via=":1257054092_5_0" dir="l" state="m"/>
+ <connection from="109912572#2" to="-109912572#2" fromLane="0" toLane="0" via=":1257054092_6_0" dir="t" state="m"/>
+ <connection from="109912572#3" to="109912572#4" fromLane="0" toLane="0" via=":1257054165_3_0" dir="s" state="m"/>
+ <connection from="109912572#3" to="37449245#1" fromLane="0" toLane="0" via=":1257054165_4_0" dir="l" state="m"/>
+ <connection from="109912572#3" to="-109912572#3" fromLane="0" toLane="0" via=":1257054165_5_0" dir="t" state="m"/>
+ <connection from="109912572#4" to="109912567#0" fromLane="0" toLane="0" via=":1257054077_0_0" dir="s" state="M"/>
+ <connection from="109912572#4" to="-109912572#4" fromLane="0" toLane="0" via=":1257054077_1_0" dir="t" state="m"/>
+ <connection from="110514869#0" to="58770725#5" fromLane="0" toLane="0" via=":252417189_7_0" dir="r" state="M"/>
+ <connection from="110514869#0" to="110514869#1" fromLane="0" toLane="0" via=":252417189_8_0" dir="s" state="M"/>
+ <connection from="110514869#0" to="110514869#1" fromLane="1" toLane="1" via=":252417189_9_0" dir="s" state="M"/>
+ <connection from="110514869#0" to="-110514869#0" fromLane="1" toLane="1" via=":252417189_10_0" dir="t" state="m"/>
+ <connection from="110514869#1" to="37771900#6" fromLane="0" toLane="0" via=":443089063_7_0" tl="443089063" linkIndex="7" dir="r" state="o"/>
+ <connection from="110514869#1" to="110514869#2" fromLane="0" toLane="0" via=":443089063_8_0" tl="443089063" linkIndex="8" dir="s" state="o"/>
+ <connection from="110514869#1" to="110514869#2" fromLane="1" toLane="1" via=":443089063_9_0" tl="443089063" linkIndex="9" dir="s" state="o"/>
+ <connection from="110514869#1" to="-110514869#1" fromLane="1" toLane="1" via=":443089063_10_0" tl="443089063" linkIndex="10" dir="t" state="o"/>
+ <connection from="110514869#2" to="154844485#0" fromLane="0" toLane="0" via=":1669480282_7_0" dir="r" state="m"/>
+ <connection from="110514869#2" to="154844485#0" fromLane="1" toLane="1" via=":1669480282_8_0" dir="r" state="m"/>
+ <connection from="110514869#2" to="154844503" fromLane="1" toLane="0" via=":1669480282_9_0" dir="s" state="M"/>
+ <connection from="110514869#2" to="-110514869#2" fromLane="1" toLane="1" via=":1669480282_10_0" dir="t" state="m"/>
+ <connection from="111549913#0" to="34962531#1" fromLane="0" toLane="0" via=":950640371_6_0" dir="r" state="M"/>
+ <connection from="111549913#0" to="111549913#1" fromLane="0" toLane="0" via=":950640371_7_0" dir="s" state="M"/>
+ <connection from="111549913#0" to="-34962531#0" fromLane="0" toLane="0" via=":950640371_8_0" dir="l" state="M"/>
+ <connection from="111549913#1" to="81394192#14" fromLane="0" toLane="0" via=":950640361_0_0" dir="r" state="M"/>
+ <connection from="111549913#1" to="111549913#2" fromLane="0" toLane="0" via=":950640361_1_0" dir="s" state="M"/>
+ <connection from="111549913#2" to="130443630#8" fromLane="0" toLane="0" via=":950640411_3_0" dir="r" state="M"/>
+ <connection from="111549913#2" to="111549913#3" fromLane="0" toLane="0" via=":950640411_4_0" dir="s" state="M"/>
+ <connection from="111549913#2" to="-130443630#7" fromLane="0" toLane="0" via=":950640411_5_0" dir="l" state="M"/>
+ <connection from="111549913#3" to="111549913#4" fromLane="0" toLane="0" via=":950640399_2_0" dir="s" state="M"/>
+ <connection from="111549913#3" to="101272424#5" fromLane="0" toLane="0" via=":950640399_3_0" dir="l" state="M"/>
+ <connection from="111549913#4" to="38319550#7" fromLane="0" toLane="0" via=":950640351_6_0" dir="r" state="M"/>
+ <connection from="111549913#4" to="111549913#5" fromLane="0" toLane="0" via=":950640351_7_0" dir="s" state="M"/>
+ <connection from="111549913#4" to="-38319550#6" fromLane="0" toLane="0" via=":950640351_8_0" dir="l" state="M"/>
+ <connection from="111549913#5" to="108733431" fromLane="0" toLane="0" via=":1246731601_2_0" dir="s" state="M"/>
+ <connection from="111549913#5" to="111549913#6" fromLane="0" toLane="0" via=":1246731601_3_0" dir="s" state="m"/>
+ <connection from="111549913#6" to="154844465#0" fromLane="0" toLane="0" via=":1168929310_2_0" dir="r" state="M"/>
+ <connection from="111549913#6" to="111863096#0" fromLane="0" toLane="0" via=":1168929310_3_0" dir="s" state="M"/>
+ <connection from="111863096#0" to="166603397#2" fromLane="0" toLane="0" via=":951739443_3_0" dir="r" state="m"/>
+ <connection from="111863096#0" to="111863096#1" fromLane="0" toLane="0" via=":951739443_4_0" dir="s" state="m"/>
+ <connection from="111863096#1" to="-160587538#2" fromLane="0" toLane="0" via=":1726394723_6_0" dir="r" state="M"/>
+ <connection from="111863096#1" to="111863096#2" fromLane="0" toLane="0" via=":1726394723_7_0" dir="s" state="M"/>
+ <connection from="111863096#1" to="160587538#3" fromLane="0" toLane="1" via=":1726394723_8_0" dir="l" state="M"/>
+ <connection from="111863096#2" to="111863096#3" fromLane="0" toLane="0" via=":951739557_3_0" dir="s" state="m"/>
+ <connection from="111863096#2" to="154844483#1" fromLane="0" toLane="1" via=":951739557_4_0" dir="l" state="m"/>
+ <connection from="111863096#3" to="38319548#14" fromLane="0" toLane="0" via=":951739649_6_0" dir="r" state="M"/>
+ <connection from="111863096#3" to="111863096#4" fromLane="0" toLane="0" via=":951739649_7_0" dir="s" state="M"/>
+ <connection from="111863096#3" to="-38319548#13" fromLane="0" toLane="0" via=":951739649_8_0" dir="l" state="M"/>
+ <connection from="111863096#4" to="81547611" fromLane="0" toLane="0" via=":1168929388_2_0" dir="s" state="m"/>
+ <connection from="111863096#4" to="154844487#0" fromLane="0" toLane="0" via=":1168929388_3_0" dir="l" state="m"/>
+ <connection from="111863125#0" to="-108733428" fromLane="0" toLane="0" via=":1246731576_2_0" dir="r" state="M"/>
+ <connection from="111863125#0" to="111863125#1" fromLane="0" toLane="0" via=":1246731576_3_0" dir="s" state="m"/>
+ <connection from="111863125#1" to="-38319550#4" fromLane="0" toLane="0" via=":950640531_3_0" dir="r" state="M"/>
+ <connection from="111863125#1" to="111863125#2" fromLane="0" toLane="0" via=":950640531_4_0" dir="s" state="M"/>
+ <connection from="111863125#1" to="38319550#5" fromLane="0" toLane="0" via=":950640531_5_0" dir="l" state="M"/>
+ <connection from="111863125#2" to="42976410#1" fromLane="0" toLane="0" via=":950640525_0_0" dir="r" state="M"/>
+ <connection from="111863125#2" to="111863125#3" fromLane="0" toLane="0" via=":950640525_1_0" dir="s" state="M"/>
+ <connection from="111863125#3" to="42976405#1" fromLane="0" toLane="0" via=":950640558_0_0" dir="r" state="M"/>
+ <connection from="111863125#3" to="111863125#4" fromLane="0" toLane="0" via=":950640558_1_0" dir="s" state="M"/>
+ <connection from="111863125#4" to="111863125#5" fromLane="0" toLane="0" via=":950640550_2_0" dir="s" state="M"/>
+ <connection from="111863125#4" to="133960539#4" fromLane="0" toLane="1" via=":950640550_3_0" dir="l" state="M"/>
+ <connection from="111863125#5" to="-130443630#5" fromLane="0" toLane="0" via=":950640413_0_0" dir="r" state="M"/>
+ <connection from="111863125#5" to="111863125#6" fromLane="0" toLane="0" via=":950640413_1_0" dir="s" state="M"/>
+ <connection from="111863125#5" to="130443630#6" fromLane="0" toLane="0" via=":950640413_2_0" dir="l" state="M"/>
+ <connection from="111863125#6" to="111863125#7" fromLane="0" toLane="0" via=":950640474_0_0" dir="s" state="M"/>
+ <connection from="111863125#6" to="81394192#12" fromLane="0" toLane="0" via=":950640474_1_0" dir="l" state="M"/>
+ <connection from="111863125#7" to="-43684741#4" fromLane="0" toLane="0" via=":950640393_3_0" dir="r" state="M"/>
+ <connection from="111863125#7" to="111863125#8" fromLane="0" toLane="0" via=":950640393_4_0" dir="s" state="M"/>
+ <connection from="111863125#7" to="43684741#5" fromLane="0" toLane="0" via=":950640393_5_0" dir="l" state="M"/>
+ <connection from="117492209" to="37942667#1" fromLane="0" toLane="0" via=":1323557956_0_0" dir="s" state="m"/>
+ <connection from="122301994#0" to="154500706#2" fromLane="0" toLane="0" via=":1168929600_0_0" tl="1168929600" linkIndex="0" dir="r" state="o"/>
+ <connection from="122301994#0" to="122301994#1" fromLane="0" toLane="0" via=":1168929600_1_0" tl="1168929600" linkIndex="1" dir="s" state="o"/>
+ <connection from="122301994#0" to="122301994#1" fromLane="1" toLane="1" via=":1168929600_2_0" tl="1168929600" linkIndex="2" dir="s" state="o"/>
+ <connection from="122301994#0" to="122301994#1" fromLane="2" toLane="2" via=":1168929600_3_0" tl="1168929600" linkIndex="3" dir="s" state="o"/>
+ <connection from="122301994#1" to="154500693#0" fromLane="0" toLane="0" via=":1168929349_2_0" dir="s" state="M"/>
+ <connection from="122301994#1" to="154500693#0" fromLane="1" toLane="1" via=":1168929349_3_0" dir="s" state="M"/>
+ <connection from="122301994#1" to="154500693#0" fromLane="2" toLane="2" via=":1168929349_4_0" dir="s" state="M"/>
+ <connection from="122301994#1" to="37638426#0" fromLane="2" toLane="0" via=":1168929349_5_0" dir="l" state="M"/>
+ <connection from="122302027#0" to="122302027#1" fromLane="0" toLane="0" via=":249404225_0_0" dir="s" state="M"/>
+ <connection from="122302027#0" to="122302035#1" fromLane="0" toLane="0" via=":249404225_1_0" dir="t" state="m"/>
+ <connection from="122302027#1" to="123339612" fromLane="0" toLane="0" via=":1366723470_0_0" dir="s" state="M"/>
+ <connection from="122302035#0" to="122302035#1" fromLane="0" toLane="0" via=":249404225_2_0" dir="s" state="M"/>
+ <connection from="122302035#0" to="122302027#1" fromLane="0" toLane="0" via=":249404225_3_0" dir="t" state="m"/>
+ <connection from="122394833#0" to="122394833#1" fromLane="0" toLane="0" via=":1367855932_0_0" dir="s" state="m"/>
+ <connection from="122394833#0" to="23182387#4" fromLane="0" toLane="0" via=":1367855932_1_0" dir="l" state="m"/>
+ <connection from="122394833#0" to="-122394833#0" fromLane="0" toLane="0" via=":1367855932_2_0" dir="t" state="m"/>
+ <connection from="122394833#1" to="122394833#2" fromLane="0" toLane="0" via=":1367855931_0_0" dir="s" state="="/>
+ <connection from="122394833#1" to="122394859" fromLane="0" toLane="0" via=":1367855931_1_0" dir="s" state="="/>
+ <connection from="122394833#1" to="-122394833#1" fromLane="0" toLane="0" via=":1367855931_2_0" dir="t" state="="/>
+ <connection from="122394833#2" to="122394833#3" fromLane="0" toLane="0" via=":1367855930_0_0" dir="s" state="="/>
+ <connection from="122394833#2" to="122394845" fromLane="0" toLane="0" via=":1367855930_1_0" dir="l" state="="/>
+ <connection from="122394833#2" to="-122394833#2" fromLane="0" toLane="0" via=":1367855930_2_0" dir="t" state="="/>
+ <connection from="122394833#3" to="122394833#4" fromLane="0" toLane="0" via=":1367855929_0_0" dir="s" state="="/>
+ <connection from="122394833#3" to="122394853" fromLane="0" toLane="0" via=":1367855929_1_0" dir="l" state="="/>
+ <connection from="122394833#3" to="-122394833#3" fromLane="0" toLane="0" via=":1367855929_2_0" dir="t" state="="/>
+ <connection from="122394833#4" to="122394833#5" fromLane="0" toLane="0" via=":1367855927_0_0" dir="s" state="="/>
+ <connection from="122394833#4" to="122394864#0" fromLane="0" toLane="0" via=":1367855927_1_0" dir="l" state="="/>
+ <connection from="122394833#4" to="-122394833#4" fromLane="0" toLane="0" via=":1367855927_2_0" dir="t" state="="/>
+ <connection from="122394833#5" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_0_0" dir="r" state="m"/>
+ <connection from="122394833#5" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_1_0" dir="l" state="m"/>
+ <connection from="122394833#5" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_2_0" dir="t" state="m"/>
+ <connection from="122394834" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_8_0" dir="r" state="m"/>
+ <connection from="122394834" to="-122394860" fromLane="0" toLane="0" via=":1367855909_9_0" dir="s" state="m"/>
+ <connection from="122394834" to="-122394845" fromLane="0" toLane="0" via=":1367855909_10_0" dir="l" state="m"/>
+ <connection from="122394834" to="-122394834" fromLane="0" toLane="0" via=":1367855909_11_0" dir="t" state="m"/>
+ <connection from="122394841#0" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_12_0" dir="r" state="M"/>
+ <connection from="122394841#0" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_13_0" dir="s" state="M"/>
+ <connection from="122394841#0" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_14_0" dir="l" state="m"/>
+ <connection from="122394841#0" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_15_0" dir="t" state="m"/>
+ <connection from="122394841#1" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_12_0" dir="r" state="M"/>
+ <connection from="122394841#1" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_13_0" dir="s" state="M"/>
+ <connection from="122394841#1" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_14_0" dir="l" state="m"/>
+ <connection from="122394841#1" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_15_0" dir="t" state="m"/>
+ <connection from="122394841#2" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_12_0" dir="r" state="M"/>
+ <connection from="122394841#2" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_13_0" dir="s" state="M"/>
+ <connection from="122394841#2" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_14_0" dir="l" state="m"/>
+ <connection from="122394841#2" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_15_0" dir="t" state="m"/>
+ <connection from="122394841#3" to="197794762" fromLane="0" toLane="0" via=":2079750190_6_0" dir="s" state="="/>
+ <connection from="122394841#3" to="-197781817" fromLane="0" toLane="0" via=":2079750190_7_0" dir="l" state="="/>
+ <connection from="122394841#3" to="-122394841#3" fromLane="0" toLane="0" via=":2079750190_8_0" dir="t" state="="/>
+ <connection from="122394845" to="-122394834" fromLane="0" toLane="0" via=":1367855909_12_0" dir="r" state="M"/>
+ <connection from="122394845" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_13_0" dir="s" state="M"/>
+ <connection from="122394845" to="-122394860" fromLane="0" toLane="0" via=":1367855909_14_0" dir="l" state="m"/>
+ <connection from="122394845" to="-122394845" fromLane="0" toLane="0" via=":1367855909_15_0" dir="t" state="m"/>
+ <connection from="122394853" to="122394834" fromLane="0" toLane="0" via=":1367855907_2_0" dir="s" state="M"/>
+ <connection from="122394853" to="-122394853" fromLane="0" toLane="0" via=":1367855907_3_0" dir="t" state="m"/>
+ <connection from="122394859" to="122394860" fromLane="0" toLane="0" via=":1367855910_2_0" dir="s" state="M"/>
+ <connection from="122394859" to="-122394859" fromLane="0" toLane="0" via=":1367855910_3_0" dir="t" state="m"/>
+ <connection from="122394860" to="-122394845" fromLane="0" toLane="0" via=":1367855909_0_0" dir="r" state="m"/>
+ <connection from="122394860" to="-122394834" fromLane="0" toLane="0" via=":1367855909_1_0" dir="s" state="m"/>
+ <connection from="122394860" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_2_0" dir="l" state="m"/>
+ <connection from="122394860" to="-122394860" fromLane="0" toLane="0" via=":1367855909_3_0" dir="t" state="m"/>
+ <connection from="122394864#0" to="130443635#2" fromLane="0" toLane="0" via=":1367855926_6_0" dir="r" state="m"/>
+ <connection from="122394864#0" to="122394864#1" fromLane="0" toLane="0" via=":1367855926_7_0" dir="s" state="m"/>
+ <connection from="122394864#0" to="-122394864#0" fromLane="0" toLane="0" via=":1367855926_8_0" dir="t" state="m"/>
+ <connection from="122394864#1" to="38318373#1" fromLane="0" toLane="0" via=":314636763_12_0" dir="r" state="M"/>
+ <connection from="122394864#1" to="122394864#2" fromLane="0" toLane="0" via=":314636763_13_0" dir="s" state="M"/>
+ <connection from="122394864#1" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_14_0" dir="l" state="m"/>
+ <connection from="122394864#1" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_15_0" dir="t" state="m"/>
+ <connection from="122394864#2" to="129780019#2" fromLane="0" toLane="0" via=":1367855923_2_0" dir="l" state="m"/>
+ <connection from="122394864#2" to="-122394864#2" fromLane="0" toLane="0" via=":1367855923_3_0" dir="t" state="m"/>
+ <connection from="122641556#0" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_0_0" dir="r" state="m"/>
+ <connection from="122641556#0" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_1_0" dir="s" state="m"/>
+ <connection from="122641556#0" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_2_0" dir="l" state="m"/>
+ <connection from="122641556#0" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_3_0" dir="t" state="m"/>
+ <connection from="122641556#1" to="-122641556#1" fromLane="0" toLane="0" via=":1369844770_0_0" dir="t" state="M"/>
+ <connection from="122641557" to="-122641557" fromLane="0" toLane="0" via=":1369844786_0_0" dir="t" state="M"/>
+ <connection from="122641559#0" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_0_0" dir="r" state="m"/>
+ <connection from="122641559#0" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_1_0" dir="s" state="m"/>
+ <connection from="122641559#0" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_2_0" dir="l" state="m"/>
+ <connection from="122641559#0" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_3_0" dir="t" state="m"/>
+ <connection from="122641559#1" to="-122641559#1" fromLane="0" toLane="0" via=":1369844760_0_0" dir="t" state="M"/>
+ <connection from="122641560#0" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_0_0" dir="r" state="m"/>
+ <connection from="122641560#0" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_1_0" dir="s" state="m"/>
+ <connection from="122641560#0" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_2_0" dir="l" state="m"/>
+ <connection from="122641560#0" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_3_0" dir="t" state="m"/>
+ <connection from="122641560#1" to="-122641560#1" fromLane="0" toLane="0" via=":1369844774_0_0" dir="t" state="M"/>
+ <connection from="123339613" to="160587557" fromLane="0" toLane="0" via=":256633248_0_0" dir="s" state="M"/>
+ <connection from="123339619" to="122302035#0" fromLane="0" toLane="0" via=":1367073442_0_0" dir="s" state="M"/>
+ <connection from="129780019#0" to="129780019#1" fromLane="0" toLane="0" via=":450564006_0_0" dir="s" state="M"/>
+ <connection from="129780019#0" to="23182484#0" fromLane="0" toLane="0" via=":450564006_1_0" dir="l" state="M"/>
+ <connection from="129780019#1" to="129780019#2" fromLane="0" toLane="0" via=":1367855923_0_0" dir="s" state="M"/>
+ <connection from="129780019#1" to="-122394864#2" fromLane="0" toLane="0" via=":1367855923_1_0" dir="l" state="M"/>
+ <connection from="129780020" to="144874010#0" fromLane="0" toLane="0" via=":950094380_0_0" dir="s" state="m"/>
+ <connection from="129780020" to="144874012#0" fromLane="0" toLane="0" via=":950094380_1_0" dir="l" state="m"/>
+ <connection from="129780022#0" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_4_0" dir="r" state="M"/>
+ <connection from="129780022#0" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_5_0" dir="s" state="M"/>
+ <connection from="129780022#0" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_6_0" dir="l" state="m"/>
+ <connection from="129780022#0" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_7_0" dir="t" state="m"/>
+ <connection from="129780022#1" to="37449253#7" fromLane="0" toLane="0" via=":13929747_0_0" dir="r" state="M"/>
+ <connection from="129780022#1" to="129780022#2" fromLane="0" toLane="0" via=":13929747_1_0" dir="s" state="M"/>
+ <connection from="129780022#1" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_2_0" dir="t" state="m"/>
+ <connection from="129780022#2" to="129780022#3" fromLane="0" toLane="0" via=":435668534_3_0" dir="s" state="M"/>
+ <connection from="129780022#2" to="144874012#1" fromLane="0" toLane="0" via=":435668534_4_0" dir="l" state="m"/>
+ <connection from="129780022#2" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_5_0" dir="t" state="m"/>
+ <connection from="129780022#3" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_4_0" dir="r" state="m"/>
+ <connection from="129780022#3" to="129780022#4" fromLane="0" toLane="0" via=":1263725266_5_0" dir="s" state="m"/>
+ <connection from="129780022#3" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_6_0" dir="l" state="m"/>
+ <connection from="129780022#3" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_7_0" dir="t" state="m"/>
+ <connection from="129780022#4" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_4_0" tl="427996791" linkIndex="4" dir="r" state="o"/>
+ <connection from="129780022#4" to="129780022#5" fromLane="0" toLane="0" via=":427996791_5_0" tl="427996791" linkIndex="5" dir="s" state="o"/>
+ <connection from="129780022#4" to="23315111#2" fromLane="0" toLane="0" via=":427996791_6_0" tl="427996791" linkIndex="6" dir="l" state="o"/>
+ <connection from="129780022#4" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_7_0" tl="427996791" linkIndex="7" dir="t" state="o"/>
+ <connection from="129780022#5" to="37973565#7" fromLane="0" toLane="0" via=":435668539_0_0" dir="r" state="M"/>
+ <connection from="129780022#5" to="37351089#0" fromLane="0" toLane="0" via=":435668539_1_0" dir="s" state="M"/>
+ <connection from="129780022#5" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_2_0" dir="t" state="m"/>
+ <connection from="129780026#0" to="149408824#0" fromLane="0" toLane="0" via=":950094458_0_0" dir="r" state="m"/>
+ <connection from="129780026#0" to="129780026#1" fromLane="0" toLane="0" via=":950094458_1_0" dir="s" state="m"/>
+ <connection from="129780026#0" to="-139118805#2" fromLane="0" toLane="0" via=":950094458_2_0" dir="l" state="M"/>
+ <connection from="129780026#0" to="-139118805#2" fromLane="0" toLane="1" via=":950094458_3_0" dir="l" state="m"/>
+ <connection from="129780026#1" to="-154409621" fromLane="0" toLane="0" via=":248913124_3_0" dir="r" state="m"/>
+ <connection from="129780026#1" to="129780026#2" fromLane="0" toLane="0" via=":248913124_4_0" dir="s" state="m"/>
+ <connection from="129780026#1" to="129780022#0" fromLane="0" toLane="0" via=":248913124_5_0" dir="l" state="m"/>
+ <connection from="129780026#2" to="129780026#3" fromLane="0" toLane="0" via=":950094434_3_0" dir="s" state="m"/>
+ <connection from="129780026#2" to="154489992#1" fromLane="0" toLane="1" via=":950094434_4_0" dir="l" state="m"/>
+ <connection from="129780026#3" to="81096855#0" fromLane="0" toLane="0" via=":945146413_2_0" dir="s" state="m"/>
+ <connection from="129780026#3" to="139118802#2" fromLane="0" toLane="0" via=":945146413_3_0" dir="l" state="m"/>
+ <connection from="129780028" to="154409616#1" fromLane="0" toLane="0" via=":252418151_1_0" dir="l" state="m"/>
+ <connection from="130443629#0" to="133868191#0" fromLane="0" toLane="0" via=":243489891_0_0" dir="r" state="m"/>
+ <connection from="130443629#0" to="130443629#1" fromLane="0" toLane="0" via=":243489891_1_0" dir="s" state="m"/>
+ <connection from="130443629#0" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_2_0" dir="t" state="m"/>
+ <connection from="130443629#1" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_0_0" dir="r" state="m"/>
+ <connection from="130443629#1" to="130443629#2" fromLane="0" toLane="0" via=":948350640_1_0" dir="s" state="m"/>
+ <connection from="130443629#1" to="81394200#2" fromLane="0" toLane="0" via=":948350640_2_0" dir="l" state="m"/>
+ <connection from="130443629#1" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_3_0" dir="t" state="m"/>
+ <connection from="130443629#2" to="130443629#3" fromLane="0" toLane="0" via=":435668511_0_0" dir="s" state="m"/>
+ <connection from="130443629#2" to="37351086#0" fromLane="0" toLane="0" via=":435668511_1_0" dir="L" state="m"/>
+ <connection from="130443629#2" to="37369047#2" fromLane="0" toLane="3" via=":435668511_2_0" dir="l" state="m"/>
+ <connection from="130443629#2" to="-130443629#2" fromLane="0" toLane="0" via=":435668511_3_0" dir="t" state="m"/>
+ <connection from="130443629#3" to="130443629#4" fromLane="0" toLane="0" via=":948350615_0_0" dir="s" state="m"/>
+ <connection from="130443629#3" to="81394169#2" fromLane="0" toLane="0" via=":948350615_1_0" dir="l" state="m"/>
+ <connection from="130443629#3" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_2_0" dir="t" state="m"/>
+ <connection from="130443629#4" to="130443629#5" fromLane="0" toLane="0" via=":428303370_0_0" dir="s" state="M"/>
+ <connection from="130443629#4" to="134572336#3" fromLane="0" toLane="1" via=":428303370_1_0" dir="l" state="m"/>
+ <connection from="130443629#4" to="-130443629#4" fromLane="0" toLane="0" via=":428303370_2_0" dir="t" state="m"/>
+ <connection from="130443629#5" to="130443629#6" fromLane="0" toLane="0" via=":445506221_0_0" dir="s" state="M"/>
+ <connection from="130443629#5" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_1_0" dir="t" state="m"/>
+ <connection from="130443629#6" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_0_0" dir="s" state="M"/>
+ <connection from="130443629#6" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_1_0" dir="t" state="m"/>
+ <connection from="130443629#7" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_0_0" dir="r" state="M"/>
+ <connection from="130443629#7" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_1_0" dir="s" state="M"/>
+ <connection from="130443629#7" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_2_0" dir="l" state="m"/>
+ <connection from="130443629#7" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_3_0" dir="t" state="m"/>
+ <connection from="130443629#8" to="37973566" fromLane="0" toLane="0" via=":30406565_0_0" dir="s" state="M"/>
+ <connection from="130443629#8" to="-130443629#8" fromLane="0" toLane="0" via=":30406565_1_0" dir="t" state="m"/>
+ <connection from="130443630#0" to="130443630#1" fromLane="0" toLane="0" via=":445506220_6_0" dir="s" state="M"/>
+ <connection from="130443630#0" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_7_0" dir="l" state="m"/>
+ <connection from="130443630#0" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_8_0" dir="t" state="m"/>
+ <connection from="130443630#1" to="130443630#2" fromLane="0" toLane="0" via=":966097869_6_0" dir="s" state="M"/>
+ <connection from="130443630#1" to="83038923#0" fromLane="0" toLane="0" via=":966097869_7_0" dir="l" state="m"/>
+ <connection from="130443630#1" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_8_0" dir="t" state="m"/>
+ <connection from="130443630#10" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_6_0" dir="s" state="M"/>
+ <connection from="130443630#10" to="166576459" fromLane="0" toLane="0" via=":1780219355_7_0" dir="l" state="m"/>
+ <connection from="130443630#10" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_8_0" dir="t" state="m"/>
+ <connection from="130443630#11" to="179692877#0" fromLane="0" toLane="0" via=":444026889_4_0" dir="s" state="M"/>
+ <connection from="130443630#11" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_5_0" dir="t" state="m"/>
+ <connection from="130443630#2" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_6_0" dir="s" state="M"/>
+ <connection from="130443630#2" to="-105254618" fromLane="0" toLane="0" via=":1634988377_7_0" dir="l" state="m"/>
+ <connection from="130443630#2" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_8_0" dir="t" state="m"/>
+ <connection from="130443630#3" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_4_0" dir="s" state="M"/>
+ <connection from="130443630#3" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_5_0" dir="t" state="m"/>
+ <connection from="130443630#4" to="37973569#6" fromLane="0" toLane="0" via=":446017744_6_0" tl="446017744" linkIndex="6" dir="r" state="o"/>
+ <connection from="130443630#4" to="130443630#5" fromLane="0" toLane="0" via=":446017744_7_0" tl="446017744" linkIndex="7" dir="s" state="o"/>
+ <connection from="130443630#4" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_8_0" tl="446017744" linkIndex="8" dir="t" state="o"/>
+ <connection from="130443630#5" to="111863125#6" fromLane="0" toLane="0" via=":950640413_6_0" dir="r" state="m"/>
+ <connection from="130443630#5" to="130443630#6" fromLane="0" toLane="0" via=":950640413_7_0" dir="s" state="m"/>
+ <connection from="130443630#5" to="-130443630#5" fromLane="0" toLane="0" via=":950640413_8_0" dir="t" state="m"/>
+ <connection from="130443630#6" to="37973572#2" fromLane="0" toLane="0" via=":30406599_14_0" tl="30406599" linkIndex="14" dir="r" state="o"/>
+ <connection from="130443630#6" to="130443630#7" fromLane="0" toLane="0" via=":30406599_15_0" tl="30406599" linkIndex="15" dir="s" state="o"/>
+ <connection from="130443630#6" to="-37973572#1" fromLane="0" toLane="1" via=":30406599_16_0" tl="30406599" linkIndex="16" dir="l" state="o"/>
+ <connection from="130443630#6" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_17_0" tl="30406599" linkIndex="17" dir="t" state="o"/>
+ <connection from="130443630#7" to="130443630#8" fromLane="0" toLane="0" via=":950640411_6_0" dir="s" state="m"/>
+ <connection from="130443630#7" to="111549913#3" fromLane="0" toLane="0" via=":950640411_7_0" dir="l" state="m"/>
+ <connection from="130443630#7" to="-130443630#7" fromLane="0" toLane="0" via=":950640411_8_0" dir="t" state="m"/>
+ <connection from="130443630#8" to="130443630#9" fromLane="0" toLane="0" via=":446017741_6_0" tl="446017741" linkIndex="6" dir="s" state="o"/>
+ <connection from="130443630#8" to="37973568#4" fromLane="0" toLane="0" via=":446017741_7_0" tl="446017741" linkIndex="7" dir="l" state="o"/>
+ <connection from="130443630#8" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_8_0" tl="446017741" linkIndex="8" dir="t" state="o"/>
+ <connection from="130443630#9" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_6_0" dir="s" state="M"/>
+ <connection from="130443630#9" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_7_0" dir="l" state="m"/>
+ <connection from="130443630#9" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_8_0" dir="t" state="m"/>
+ <connection from="130443635#0" to="130443635#1" fromLane="0" toLane="0" via=":250683337_0_0" dir="s" state="m"/>
+ <connection from="130443635#1" to="-122394864#0" fromLane="0" toLane="0" via=":1367855926_0_0" dir="r" state="M"/>
+ <connection from="130443635#1" to="130443635#2" fromLane="0" toLane="0" via=":1367855926_1_0" dir="s" state="M"/>
+ <connection from="130443635#1" to="122394864#1" fromLane="0" toLane="0" via=":1367855926_2_0" dir="l" state="M"/>
+ <connection from="130443635#2" to="23182484#1" fromLane="0" toLane="0" via=":250685829_0_0" dir="r" state="m"/>
+ <connection from="130443635#2" to="190048063" fromLane="0" toLane="0" via=":250685829_1_0" dir="s" state="m"/>
+ <connection from="130443635#2" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_2_0" dir="L" state="m"/>
+ <connection from="130443635#2" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_3_0" dir="l" state="m"/>
+ <connection from="132323955" to="190048065" fromLane="0" toLane="0" via=":2006433692_2_0" dir="s" state="M"/>
+ <connection from="132323955" to="-132323955" fromLane="0" toLane="0" via=":2006433692_3_0" dir="t" state="m"/>
+ <connection from="133868186" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_7_0" dir="s" state="M"/>
+ <connection from="133868186" to="37973565#7" fromLane="1" toLane="0" via=":435668539_8_0" dir="L" state="m"/>
+ <connection from="133868186" to="37351089#0" fromLane="2" toLane="2" via=":435668539_9_0" dir="l" state="m"/>
+ <connection from="133868186" to="37351089#0" fromLane="3" toLane="3" via=":435668539_10_0" dir="l" state="M"/>
+ <connection from="133868188" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_6_0" dir="r" state="m"/>
+ <connection from="133868188" to="133868191#0" fromLane="0" toLane="2" via=":243489891_7_0" dir="s" state="m"/>
+ <connection from="133868188" to="130443629#1" fromLane="0" toLane="0" via=":243489891_8_0" dir="l" state="m"/>
+ <connection from="133868191#0" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_0_0" dir="r" state="m"/>
+ <connection from="133868191#0" to="133868191#1" fromLane="1" toLane="1" via=":948350597_1_0" dir="s" state="M"/>
+ <connection from="133868191#0" to="133868191#1" fromLane="2" toLane="2" via=":948350597_2_0" dir="s" state="M"/>
+ <connection from="133868191#0" to="81394200#1" fromLane="3" toLane="0" via=":948350597_3_0" dir="l" state="m"/>
+ <connection from="133868191#1" to="133868191#2" fromLane="0" toLane="2" via=":948350673_3_0" dir="s" state="M"/>
+ <connection from="133868191#1" to="133868191#2" fromLane="0" toLane="3" via=":948350673_4_0" dir="s" state="M"/>
+ <connection from="133868191#1" to="81394188#1" fromLane="1" toLane="0" via=":948350673_5_0" dir="l" state="m"/>
+ <connection from="133868229#0" to="133868229#1" fromLane="0" toLane="0" via=":948350588_7_0" dir="s" state="M"/>
+ <connection from="133868229#0" to="133868229#1" fromLane="1" toLane="1" via=":948350588_8_0" dir="s" state="M"/>
+ <connection from="133868229#0" to="37973565#6" fromLane="1" toLane="0" via=":948350588_9_0" dir="l" state="m"/>
+ <connection from="133868229#0" to="-133868229#0" fromLane="1" toLane="1" via=":948350588_10_0" dir="t" state="m"/>
+ <connection from="133868229#1" to="81523330#0" fromLane="0" toLane="0" via=":948350630_5_0" dir="s" state="M"/>
+ <connection from="133868229#1" to="81523330#0" fromLane="1" toLane="1" via=":948350630_6_0" dir="s" state="M"/>
+ <connection from="133868229#1" to="-133868229#1" fromLane="1" toLane="1" via=":948350630_7_0" dir="t" state="m"/>
+ <connection from="133868231#0" to="133868231#1" fromLane="0" toLane="0" via=":948350595_2_0" dir="s" state="M"/>
+ <connection from="133868231#0" to="44641745#1" fromLane="0" toLane="0" via=":948350595_3_0" dir="l" state="M"/>
+ <connection from="133960538#0" to="133960538#1" fromLane="0" toLane="0" via=":438042385_2_0" tl="438042385" linkIndex="2" dir="s" state="o"/>
+ <connection from="133960538#0" to="133960538#1" fromLane="1" toLane="1" via=":438042385_3_0" tl="438042385" linkIndex="3" dir="s" state="o"/>
+ <connection from="133960538#0" to="37449249#2" fromLane="1" toLane="0" via=":438042385_4_0" tl="438042385" linkIndex="4" dir="l" state="o"/>
+ <connection from="133960538#1" to="-109912572#1" fromLane="0" toLane="0" via=":1257054108_3_0" dir="r" state="M"/>
+ <connection from="133960538#1" to="133960538#2" fromLane="0" toLane="0" via=":1257054108_4_0" dir="s" state="M"/>
+ <connection from="133960538#1" to="133960538#2" fromLane="1" toLane="1" via=":1257054108_5_0" dir="s" state="M"/>
+ <connection from="133960538#1" to="109912572#2" fromLane="1" toLane="0" via=":1257054108_6_0" dir="l" state="M"/>
+ <connection from="133960538#2" to="172498380#2" fromLane="0" toLane="0" via=":452446345_0_0" dir="r" state="M"/>
+ <connection from="133960539#0" to="81672207#0" fromLane="0" toLane="0" via=":951739771_0_0" dir="s" state="M"/>
+ <connection from="133960539#0" to="133960539#1" fromLane="0" toLane="0" via=":951739771_1_0" dir="s" state="M"/>
+ <connection from="133960539#0" to="133960539#1" fromLane="1" toLane="1" via=":951739771_2_0" dir="s" state="M"/>
+ <connection from="133960539#1" to="166576462#3" fromLane="0" toLane="0" via=":1780219359_0_0" dir="r" state="M"/>
+ <connection from="133960539#1" to="133960539#2" fromLane="0" toLane="0" via=":1780219359_1_0" dir="s" state="M"/>
+ <connection from="133960539#1" to="133960539#2" fromLane="1" toLane="1" via=":1780219359_2_0" dir="s" state="M"/>
+ <connection from="133960539#1" to="-166576462#2" fromLane="1" toLane="0" via=":1780219359_3_0" dir="l" state="M"/>
+ <connection from="133960539#2" to="37973569#2" fromLane="0" toLane="0" via=":446017746_0_0" tl="446017746" linkIndex="0" dir="r" state="o"/>
+ <connection from="133960539#2" to="133960539#3" fromLane="0" toLane="0" via=":446017746_1_0" tl="446017746" linkIndex="1" dir="s" state="o"/>
+ <connection from="133960539#2" to="133960539#3" fromLane="1" toLane="1" via=":446017746_2_0" tl="446017746" linkIndex="2" dir="s" state="o"/>
+ <connection from="133960539#3" to="111863125#5" fromLane="0" toLane="0" via=":950640550_0_0" dir="r" state="m"/>
+ <connection from="133960539#3" to="133960539#4" fromLane="1" toLane="0" via=":950640550_1_0" dir="s" state="M"/>
+ <connection from="133960539#4" to="37973572#0" fromLane="0" toLane="0" via=":438042367_0_0" tl="438042367" linkIndex="0" dir="r" state="o"/>
+ <connection from="133960539#4" to="42976406#0" fromLane="0" toLane="1" via=":438042367_1_0" tl="438042367" linkIndex="1" dir="s" state="o"/>
+ <connection from="133960539#4" to="42976406#0" fromLane="1" toLane="2" via=":438042367_2_0" tl="438042367" linkIndex="2" dir="s" state="o"/>
+ <connection from="133960539#4" to="-149868584#8" fromLane="1" toLane="1" via=":438042367_3_0" tl="438042367" linkIndex="3" dir="l" state="o"/>
+ <connection from="134572336#0" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_6_0" dir="r" state="m"/>
+ <connection from="134572336#0" to="134572336#1" fromLane="1" toLane="1" via=":477486714_7_0" dir="s" state="m"/>
+ <connection from="134572336#0" to="81394169#0" fromLane="1" toLane="0" via=":477486714_8_0" dir="l" state="m"/>
+ <connection from="134572336#1" to="81394192#0" fromLane="0" toLane="0" via=":446017735_0_0" dir="r" state="M"/>
+ <connection from="134572336#1" to="134572336#2" fromLane="0" toLane="0" via=":446017735_1_0" dir="s" state="M"/>
+ <connection from="134572336#1" to="134572336#2" fromLane="1" toLane="1" via=":446017735_2_0" dir="s" state="M"/>
+ <connection from="134572336#2" to="130443629#5" fromLane="0" toLane="0" via=":428303370_6_0" dir="r" state="m"/>
+ <connection from="134572336#2" to="134572336#3" fromLane="1" toLane="1" via=":428303370_7_0" dir="s" state="m"/>
+ <connection from="134572336#2" to="-130443629#4" fromLane="1" toLane="0" via=":428303370_8_0" dir="l" state="m"/>
+ <connection from="134572336#3" to="44641744#0" fromLane="0" toLane="0" via=":445506215_3_0" dir="r" state="M"/>
+ <connection from="134572336#3" to="134572340#0" fromLane="0" toLane="0" via=":445506215_4_0" dir="s" state="M"/>
+ <connection from="134572336#3" to="134572340#0" fromLane="1" toLane="1" via=":445506215_5_0" dir="s" state="M"/>
+ <connection from="134572336#3" to="37973565#5" fromLane="1" toLane="0" via=":445506215_6_0" dir="s" state="M"/>
+ <connection from="134572340#0" to="109438231#1" fromLane="0" toLane="0" via=":1479400627_0_0" dir="s" state="m"/>
+ <connection from="134572340#0" to="134572340#1" fromLane="1" toLane="0" via=":1479400627_1_0" dir="s" state="M"/>
+ <connection from="134572340#1" to="81523330#0" fromLane="0" toLane="0" via=":948350630_3_0" dir="r" state="m"/>
+ <connection from="134572340#1" to="-133868229#1" fromLane="1" toLane="1" via=":948350630_4_0" dir="l" state="m"/>
+ <connection from="134872478" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_3_0" dir="r" state="m"/>
+ <connection from="134872478" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_4_0" dir="l" state="m"/>
+ <connection from="134872478" to="-134872478" fromLane="0" toLane="0" via=":1482088987_5_0" dir="t" state="m"/>
+ <connection from="139118802#0" to="139118802#1" fromLane="0" toLane="0" via=":443101938_0_0" tl="443101938" linkIndex="0" dir="s" state="o"/>
+ <connection from="139118802#1" to="81096855#0" fromLane="0" toLane="0" via=":945146413_0_0" dir="r" state="M"/>
+ <connection from="139118802#1" to="139118802#2" fromLane="0" toLane="0" via=":945146413_1_0" dir="s" state="M"/>
+ <connection from="139118802#2" to="144874008#0" fromLane="0" toLane="0" via=":252418152_1_0" dir="s" state="m"/>
+ <connection from="139118804#0" to="139118804#1" fromLane="0" toLane="0" via=":452446339_0_0" dir="s" state="M"/>
+ <connection from="139118804#1" to="141191260#0" fromLane="0" toLane="0" via=":1545672787_0_0" dir="s" state="M"/>
+ <connection from="139118804#1" to="139118804#2" fromLane="0" toLane="0" via=":1545672787_1_0" dir="s" state="M"/>
+ <connection from="139118804#2" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_3_0" tl="252418937" linkIndex="3" dir="r" state="o"/>
+ <connection from="139118804#2" to="139118804#3" fromLane="0" toLane="0" via=":252418937_4_0" tl="252418937" linkIndex="4" dir="s" state="o"/>
+ <connection from="139118804#2" to="23315111#0" fromLane="0" toLane="0" via=":252418937_5_0" tl="252418937" linkIndex="5" dir="l" state="o"/>
+ <connection from="139118804#3" to="83827202" fromLane="0" toLane="0" via=":975934874_0_0" dir="r" state="M"/>
+ <connection from="139118804#3" to="139118804#4" fromLane="0" toLane="0" via=":975934874_1_0" dir="s" state="M"/>
+ <connection from="139118804#4" to="37973565#9" fromLane="0" toLane="0" via=":445823604_0_0" dir="r" state="M"/>
+ <connection from="139118804#4" to="44641745#0" fromLane="0" toLane="0" via=":445823604_1_0" dir="s" state="M"/>
+ <connection from="139118805#0" to="139118805#1" fromLane="0" toLane="0" via=":974693391_7_0" dir="s" state="M"/>
+ <connection from="139118805#0" to="139118805#1" fromLane="1" toLane="1" via=":974693391_8_0" dir="s" state="M"/>
+ <connection from="139118805#0" to="37449253#6" fromLane="1" toLane="0" via=":974693391_9_0" dir="l" state="m"/>
+ <connection from="139118805#0" to="-139118805#0" fromLane="1" toLane="1" via=":974693391_10_0" dir="t" state="m"/>
+ <connection from="139118805#1" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_13_0" dir="r" state="M"/>
+ <connection from="139118805#1" to="139118805#2" fromLane="0" toLane="0" via=":1257054172_14_0" dir="s" state="M"/>
+ <connection from="139118805#1" to="139118805#2" fromLane="1" toLane="1" via=":1257054172_15_0" dir="s" state="M"/>
+ <connection from="139118805#1" to="-38319546#2" fromLane="1" toLane="0" via=":1257054172_16_0" dir="l" state="m"/>
+ <connection from="139118805#1" to="-139118805#1" fromLane="1" toLane="1" via=":1257054172_17_0" dir="t" state="m"/>
+ <connection from="139118805#2" to="149408824#0" fromLane="0" toLane="0" via=":950094458_4_0" dir="s" state="M"/>
+ <connection from="139118805#2" to="149408824#0" fromLane="1" toLane="1" via=":950094458_5_0" dir="s" state="M"/>
+ <connection from="139118805#2" to="129780026#1" fromLane="1" toLane="0" via=":950094458_6_0" dir="l" state="M"/>
+ <connection from="139118805#2" to="-139118805#2" fromLane="1" toLane="1" via=":950094458_7_0" dir="t" state="m"/>
+ <connection from="139118806" to="-190048065" fromLane="0" toLane="0" via=":450564005_2_0" dir="r" state="M"/>
+ <connection from="139118806" to="129780019#0" fromLane="0" toLane="0" via=":450564005_3_0" dir="l" state="m"/>
+ <connection from="139118808" to="37449245#0" fromLane="0" toLane="0" via=":13929737_0_0" dir="s" state="m"/>
+ <connection from="139118808" to="172498380#0" fromLane="0" toLane="0" via=":13929737_1_0" dir="s" state="m"/>
+ <connection from="141190463" to="-23182484#2" fromLane="0" toLane="0" via=":250685816_4_0" dir="r" state="M"/>
+ <connection from="141190463" to="141190466#0" fromLane="0" toLane="0" via=":250685816_5_0" dir="l" state="m"/>
+ <connection from="141190464" to="139118806" fromLane="0" toLane="0" via=":450564004_1_0" dir="s" state="M"/>
+ <connection from="141190466#0" to="23182391" fromLane="0" toLane="0" via=":250686694_0_0" dir="r" state="M"/>
+ <connection from="141190466#0" to="141190466#1" fromLane="0" toLane="0" via=":250686694_1_0" dir="s" state="M"/>
+ <connection from="141190466#1" to="23182358#0" fromLane="0" toLane="0" via=":250685766_3_0" tl="250685766" linkIndex="3" dir="r" state="o"/>
+ <connection from="141190466#1" to="141190466#2" fromLane="0" toLane="0" via=":250685766_4_0" tl="250685766" linkIndex="4" dir="s" state="o"/>
+ <connection from="141190466#1" to="23182517#0" fromLane="0" toLane="0" via=":250685766_5_0" tl="250685766" linkIndex="5" dir="l" state="o"/>
+ <connection from="141191247#0" to="141191247#1" fromLane="0" toLane="0" via=":1545672806_0_0" dir="s" state="m"/>
+ <connection from="141191247#0" to="141191260#1" fromLane="0" toLane="0" via=":1545672806_1_0" dir="r" state="m"/>
+ <connection from="141191247#0" to="-141191247#0" fromLane="0" toLane="0" via=":1545672806_2_0" dir="t" state="m"/>
+ <connection from="141191247#1" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_8_0" dir="r" state="="/>
+ <connection from="141191247#1" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_9_0" dir="s" state="="/>
+ <connection from="141191247#1" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_10_0" dir="l" state="="/>
+ <connection from="141191247#1" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_11_0" dir="t" state="="/>
+ <connection from="141191247#2" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_8_0" dir="r" state="="/>
+ <connection from="141191247#2" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_9_0" dir="s" state="="/>
+ <connection from="141191247#2" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_10_0" dir="l" state="="/>
+ <connection from="141191247#2" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_11_0" dir="t" state="="/>
+ <connection from="141191247#3" to="141191247#4" fromLane="0" toLane="0" via=":1545673319_6_0" dir="s" state="m"/>
+ <connection from="141191247#3" to="141191261#1" fromLane="0" toLane="0" via=":1545673319_7_0" dir="l" state="m"/>
+ <connection from="141191247#3" to="-141191247#3" fromLane="0" toLane="0" via=":1545673319_8_0" dir="t" state="m"/>
+ <connection from="141191247#4" to="141191258#3" fromLane="0" toLane="0" via=":1545673304_0_0" dir="r" state="="/>
+ <connection from="141191247#4" to="-141191258#2" fromLane="0" toLane="0" via=":1545673304_1_0" dir="l" state="="/>
+ <connection from="141191247#4" to="-141191247#4" fromLane="0" toLane="0" via=":1545673304_2_0" dir="t" state="="/>
+ <connection from="141191248#0" to="141191263#0" fromLane="0" toLane="0" via=":1545672843_0_0" dir="r" state="="/>
+ <connection from="141191248#0" to="141191248#1" fromLane="0" toLane="0" via=":1545672843_1_0" dir="s" state="="/>
+ <connection from="141191248#0" to="-141191248#0" fromLane="0" toLane="0" via=":1545672843_2_0" dir="t" state="="/>
+ <connection from="141191248#1" to="-141191263#1" fromLane="0" toLane="0" via=":1545672797_6_0" dir="r" state="="/>
+ <connection from="141191248#1" to="141191248#2" fromLane="0" toLane="0" via=":1545672797_7_0" dir="s" state="="/>
+ <connection from="141191248#1" to="-141191248#1" fromLane="0" toLane="0" via=":1545672797_8_0" dir="t" state="="/>
+ <connection from="141191248#2" to="-141191248#2" fromLane="0" toLane="0" via=":1545672785_0_0" dir="t" state="M"/>
+ <connection from="141191249#0" to="-141191247#2" fromLane="0" toLane="0" via=":1545673345_12_0" dir="r" state="="/>
+ <connection from="141191249#0" to="141191249#1" fromLane="0" toLane="0" via=":1545673345_13_0" dir="s" state="="/>
+ <connection from="141191249#0" to="141191247#3" fromLane="0" toLane="0" via=":1545673345_14_0" dir="l" state="="/>
+ <connection from="141191249#0" to="-141191249#0" fromLane="0" toLane="0" via=":1545673345_15_0" dir="t" state="="/>
+ <connection from="141191249#1" to="-141191251#2" fromLane="0" toLane="0" via=":1545673333_6_0" dir="r" state="="/>
+ <connection from="141191249#1" to="141191249#2" fromLane="0" toLane="0" via=":1545673333_7_0" dir="s" state="="/>
+ <connection from="141191249#1" to="-141191249#1" fromLane="0" toLane="0" via=":1545673333_8_0" dir="t" state="="/>
+ <connection from="141191249#2" to="141191251#0" fromLane="0" toLane="0" via=":1545673280_6_0" dir="r" state="="/>
+ <connection from="141191249#2" to="141191249#3" fromLane="0" toLane="0" via=":1545673280_7_0" dir="s" state="="/>
+ <connection from="141191249#2" to="-141191249#2" fromLane="0" toLane="0" via=":1545673280_8_0" dir="t" state="="/>
+ <connection from="141191249#3" to="141191249#4" fromLane="0" toLane="0" via=":1545673191_6_0" dir="s" state="="/>
+ <connection from="141191249#3" to="-141191253#1" fromLane="0" toLane="0" via=":1545673191_7_0" dir="l" state="="/>
+ <connection from="141191249#3" to="-141191249#3" fromLane="0" toLane="0" via=":1545673191_8_0" dir="t" state="="/>
+ <connection from="141191249#4" to="141191254#0" fromLane="0" toLane="0" via=":1545673135_6_0" dir="r" state="="/>
+ <connection from="141191249#4" to="141191249#5" fromLane="0" toLane="0" via=":1545673135_7_0" dir="s" state="="/>
+ <connection from="141191249#4" to="-141191249#4" fromLane="0" toLane="0" via=":1545673135_8_0" dir="t" state="="/>
+ <connection from="141191249#5" to="-141191258#0" fromLane="0" toLane="0" via=":1545673031_6_0" dir="r" state="="/>
+ <connection from="141191249#5" to="141191258#1" fromLane="0" toLane="0" via=":1545673031_7_0" dir="l" state="="/>
+ <connection from="141191249#5" to="-141191249#5" fromLane="0" toLane="0" via=":1545673031_8_0" dir="t" state="="/>
+ <connection from="141191250#0" to="-141191247#1" fromLane="0" toLane="0" via=":1545673105_12_0" dir="r" state="="/>
+ <connection from="141191250#0" to="141191250#1" fromLane="0" toLane="0" via=":1545673105_13_0" dir="s" state="="/>
+ <connection from="141191250#0" to="141191247#2" fromLane="0" toLane="0" via=":1545673105_14_0" dir="l" state="="/>
+ <connection from="141191250#0" to="-141191250#0" fromLane="0" toLane="0" via=":1545673105_15_0" dir="t" state="="/>
+ <connection from="141191250#1" to="141191250#2" fromLane="0" toLane="0" via=":1545673065_6_0" dir="r" state="="/>
+ <connection from="141191250#1" to="141191264#0" fromLane="0" toLane="0" via=":1545673065_7_0" dir="l" state="="/>
+ <connection from="141191250#1" to="-141191250#1" fromLane="0" toLane="0" via=":1545673065_8_0" dir="t" state="="/>
+ <connection from="141191250#2" to="141191250#3" fromLane="0" toLane="0" via=":1545672874_6_0" dir="s" state="="/>
+ <connection from="141191250#2" to="141191262#0" fromLane="0" toLane="0" via=":1545672874_7_0" dir="l" state="="/>
+ <connection from="141191250#2" to="-141191250#2" fromLane="0" toLane="0" via=":1545672874_8_0" dir="t" state="="/>
+ <connection from="141191250#3" to="141191248#0" fromLane="0" toLane="0" via=":1545672864_6_0" dir="r" state="="/>
+ <connection from="141191250#3" to="141191250#4" fromLane="0" toLane="0" via=":1545672864_7_0" dir="s" state="="/>
+ <connection from="141191250#3" to="-141191250#3" fromLane="0" toLane="0" via=":1545672864_8_0" dir="t" state="="/>
+ <connection from="141191250#4" to="141191250#5" fromLane="0" toLane="0" via=":1545672804_6_0" dir="s" state="="/>
+ <connection from="141191250#4" to="141191252" fromLane="0" toLane="0" via=":1545672804_7_0" dir="l" state="="/>
+ <connection from="141191250#4" to="-141191250#4" fromLane="0" toLane="0" via=":1545672804_8_0" dir="t" state="="/>
+ <connection from="141191250#5" to="-141191250#5" fromLane="0" toLane="0" via=":1545672788_0_0" dir="t" state="M"/>
+ <connection from="141191251#0" to="141191251#1" fromLane="0" toLane="0" via=":1545673218_0_0" dir="s" state="="/>
+ <connection from="141191251#0" to="-141191254#2" fromLane="0" toLane="0" via=":1545673218_1_0" dir="l" state="="/>
+ <connection from="141191251#0" to="-141191251#0" fromLane="0" toLane="0" via=":1545673218_2_0" dir="t" state="="/>
+ <connection from="141191251#1" to="141191251#2" fromLane="0" toLane="0" via=":1545673223_0_0" dir="s" state="="/>
+ <connection from="141191251#1" to="141191256#0" fromLane="0" toLane="0" via=":1545673223_1_0" dir="l" state="="/>
+ <connection from="141191251#1" to="-141191251#1" fromLane="0" toLane="0" via=":1545673223_2_0" dir="t" state="="/>
+ <connection from="141191251#2" to="141191249#2" fromLane="0" toLane="0" via=":1545673333_3_0" dir="r" state="="/>
+ <connection from="141191251#2" to="-141191249#1" fromLane="0" toLane="0" via=":1545673333_4_0" dir="l" state="="/>
+ <connection from="141191251#2" to="-141191251#2" fromLane="0" toLane="0" via=":1545673333_5_0" dir="t" state="="/>
+ <connection from="141191252" to="-141191259#0" fromLane="0" toLane="0" via=":1545672824_3_0" dir="r" state="="/>
+ <connection from="141191252" to="141191259#1" fromLane="0" toLane="0" via=":1545672824_4_0" dir="l" state="="/>
+ <connection from="141191252" to="-141191252" fromLane="0" toLane="0" via=":1545672824_5_0" dir="t" state="="/>
+ <connection from="141191253#0" to="-141191258#3" fromLane="0" toLane="0" via=":1545673240_0_0" dir="s" state="="/>
+ <connection from="141191253#0" to="141191253#1" fromLane="0" toLane="0" via=":1545673240_1_0" dir="s" state="="/>
+ <connection from="141191253#0" to="-141191253#0" fromLane="0" toLane="0" via=":1545673240_2_0" dir="t" state="="/>
+ <connection from="141191253#1" to="-141191249#3" fromLane="0" toLane="0" via=":1545673191_0_0" dir="r" state="="/>
+ <connection from="141191253#1" to="141191249#4" fromLane="0" toLane="0" via=":1545673191_1_0" dir="l" state="="/>
+ <connection from="141191253#1" to="-141191253#1" fromLane="0" toLane="0" via=":1545673191_2_0" dir="t" state="="/>
+ <connection from="141191254#0" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_0_0" dir="s" state="="/>
+ <connection from="141191254#0" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_1_0" dir="s" state="="/>
+ <connection from="141191254#0" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_2_0" dir="l" state="="/>
+ <connection from="141191254#0" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_3_0" dir="t" state="="/>
+ <connection from="141191254#1" to="141191254#2" fromLane="0" toLane="0" via=":1545673123_0_0" dir="s" state="="/>
+ <connection from="141191254#1" to="-141191264#1" fromLane="0" toLane="0" via=":1545673123_1_0" dir="s" state="="/>
+ <connection from="141191254#1" to="-141191254#1" fromLane="0" toLane="0" via=":1545673123_2_0" dir="t" state="="/>
+ <connection from="141191254#2" to="-141191251#0" fromLane="0" toLane="0" via=":1545673218_3_0" dir="r" state="="/>
+ <connection from="141191254#2" to="141191251#1" fromLane="0" toLane="0" via=":1545673218_4_0" dir="l" state="="/>
+ <connection from="141191254#2" to="-141191254#2" fromLane="0" toLane="0" via=":1545673218_5_0" dir="t" state="="/>
+ <connection from="141191255#0" to="-141191257" fromLane="0" toLane="0" via=":1545672999_6_0" dir="l" state="="/>
+ <connection from="141191255#0" to="141191255#1" fromLane="0" toLane="0" via=":1545672999_7_0" dir="s" state="="/>
+ <connection from="141191255#0" to="-141191255#0" fromLane="0" toLane="0" via=":1545672999_8_0" dir="t" state="="/>
+ <connection from="141191255#1" to="141191255#0" fromLane="0" toLane="0" via=":1545672923_0_0" dir="l" state="M"/>
+ <connection from="141191255#1" to="-141191255#1" fromLane="0" toLane="0" via=":1545672923_1_0" dir="t" state="m"/>
+ <connection from="141191256#0" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_12_0" dir="r" state="="/>
+ <connection from="141191256#0" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_13_0" dir="s" state="="/>
+ <connection from="141191256#0" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_14_0" dir="l" state="="/>
+ <connection from="141191256#0" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_15_0" dir="t" state="="/>
+ <connection from="141191256#1" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_12_0" dir="r" state="="/>
+ <connection from="141191256#1" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_13_0" dir="s" state="="/>
+ <connection from="141191256#1" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_14_0" dir="l" state="="/>
+ <connection from="141191256#1" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_15_0" dir="t" state="="/>
+ <connection from="141191256#2" to="-141191259#1" fromLane="0" toLane="0" via=":1545672910_6_0" dir="r" state="="/>
+ <connection from="141191256#2" to="141191259#2" fromLane="0" toLane="0" via=":1545672910_7_0" dir="l" state="="/>
+ <connection from="141191256#2" to="-141191256#2" fromLane="0" toLane="0" via=":1545672910_8_0" dir="t" state="="/>
+ <connection from="141191257" to="-141191255#0" fromLane="0" toLane="0" via=":1545672999_0_0" dir="r" state="="/>
+ <connection from="141191257" to="141191255#1" fromLane="0" toLane="0" via=":1545672999_1_0" dir="l" state="="/>
+ <connection from="141191257" to="-141191257" fromLane="0" toLane="0" via=":1545672999_2_0" dir="t" state="="/>
+ <connection from="141191258#0" to="141191258#1" fromLane="0" toLane="0" via=":1545673031_3_0" dir="s" state="="/>
+ <connection from="141191258#0" to="-141191249#5" fromLane="0" toLane="0" via=":1545673031_4_0" dir="l" state="="/>
+ <connection from="141191258#0" to="-141191258#0" fromLane="0" toLane="0" via=":1545673031_5_0" dir="t" state="="/>
+ <connection from="141191258#1" to="141191258#2" fromLane="0" toLane="0" via=":1545673150_3_0" dir="s" state="="/>
+ <connection from="141191258#1" to="141191253#0" fromLane="0" toLane="0" via=":1545673150_4_0" dir="l" state="="/>
+ <connection from="141191258#1" to="-141191258#1" fromLane="0" toLane="0" via=":1545673150_5_0" dir="t" state="="/>
+ <connection from="141191258#2" to="-141191247#4" fromLane="0" toLane="0" via=":1545673304_3_0" dir="r" state="="/>
+ <connection from="141191258#2" to="141191258#3" fromLane="0" toLane="0" via=":1545673304_4_0" dir="s" state="="/>
+ <connection from="141191258#2" to="-141191258#2" fromLane="0" toLane="0" via=":1545673304_5_0" dir="t" state="="/>
+ <connection from="141191258#3" to="141191253#1" fromLane="0" toLane="0" via=":1545673240_6_0" dir="r" state="="/>
+ <connection from="141191258#3" to="-141191253#0" fromLane="0" toLane="0" via=":1545673240_7_0" dir="s" state="="/>
+ <connection from="141191258#3" to="-141191258#3" fromLane="0" toLane="0" via=":1545673240_8_0" dir="t" state="="/>
+ <connection from="141191259#0" to="141191259#1" fromLane="0" toLane="0" via=":1545672824_0_0" dir="s" state="="/>
+ <connection from="141191259#0" to="-141191252" fromLane="0" toLane="0" via=":1545672824_1_0" dir="l" state="="/>
+ <connection from="141191259#0" to="-141191259#0" fromLane="0" toLane="0" via=":1545672824_2_0" dir="t" state="="/>
+ <connection from="141191259#1" to="141191259#2" fromLane="0" toLane="0" via=":1545672910_3_0" dir="s" state="="/>
+ <connection from="141191259#1" to="-141191256#2" fromLane="0" toLane="0" via=":1545672910_4_0" dir="l" state="="/>
+ <connection from="141191259#1" to="-141191259#1" fromLane="0" toLane="0" via=":1545672910_5_0" dir="t" state="="/>
+ <connection from="141191259#2" to="141191259#3" fromLane="0" toLane="0" via=":1545673067_8_0" dir="s" state="="/>
+ <connection from="141191259#2" to="-141191254#0" fromLane="0" toLane="0" via=":1545673067_9_0" dir="s" state="="/>
+ <connection from="141191259#2" to="141191254#1" fromLane="0" toLane="0" via=":1545673067_10_0" dir="l" state="="/>
+ <connection from="141191259#2" to="-141191259#2" fromLane="0" toLane="0" via=":1545673067_11_0" dir="t" state="="/>
+ <connection from="141191259#3" to="141191257" fromLane="0" toLane="0" via=":1545673030_6_0" dir="r" state="="/>
+ <connection from="141191259#3" to="141191259#4" fromLane="0" toLane="0" via=":1545673030_7_0" dir="s" state="="/>
+ <connection from="141191259#3" to="-141191259#3" fromLane="0" toLane="0" via=":1545673030_8_0" dir="t" state="="/>
+ <connection from="141191259#4" to="141191259#5" fromLane="0" toLane="0" via=":1545672954_6_0" dir="s" state="="/>
+ <connection from="141191259#4" to="141191258#0" fromLane="0" toLane="0" via=":1545672954_7_0" dir="l" state="="/>
+ <connection from="141191259#4" to="-141191259#4" fromLane="0" toLane="0" via=":1545672954_8_0" dir="t" state="="/>
+ <connection from="141191259#5" to="141191259#0" fromLane="0" toLane="0" via=":1545672852_0_0" dir="s" state="M"/>
+ <connection from="141191259#5" to="-141191259#5" fromLane="0" toLane="0" via=":1545672852_1_0" dir="t" state="m"/>
+ <connection from="141191260#0" to="-141191247#0" fromLane="0" toLane="0" via=":1545672806_3_0" dir="r" state="M"/>
+ <connection from="141191260#0" to="141191247#1" fromLane="0" toLane="0" via=":1545672806_4_0" dir="l" state="M"/>
+ <connection from="141191260#0" to="141191260#1" fromLane="0" toLane="0" via=":1545672806_5_0" dir="s" state="M"/>
+ <connection from="141191261#0" to="-141191247#3" fromLane="0" toLane="0" via=":1545673319_3_0" dir="l" state="M"/>
+ <connection from="141191261#0" to="141191247#4" fromLane="0" toLane="0" via=":1545673319_4_0" dir="r" state="M"/>
+ <connection from="141191261#0" to="141191261#1" fromLane="0" toLane="0" via=":1545673319_5_0" dir="s" state="M"/>
+ <connection from="141191261#1" to="141190464" fromLane="0" toLane="0" via=":1545661417_0_0" dir="r" state="m"/>
+ <connection from="141191261#1" to="141190463" fromLane="0" toLane="0" via=":1545661417_1_0" dir="s" state="m"/>
+ <connection from="141191262#0" to="141191256#2" fromLane="0" toLane="0" via=":1545672919_8_0" dir="r" state="="/>
+ <connection from="141191262#0" to="141191262#1" fromLane="0" toLane="0" via=":1545672919_9_0" dir="s" state="="/>
+ <connection from="141191262#0" to="-141191256#1" fromLane="0" toLane="0" via=":1545672919_10_0" dir="l" state="="/>
+ <connection from="141191262#0" to="-141191262#0" fromLane="0" toLane="0" via=":1545672919_11_0" dir="t" state="="/>
+ <connection from="141191262#1" to="-141191262#1" fromLane="0" toLane="0" via=":1545672971_0_0" dir="t" state="M"/>
+ <connection from="141191263#0" to="141191247#0" fromLane="0" toLane="0" via=":1545672819_0_0" dir="s" state="="/>
+ <connection from="141191263#0" to="141191263#1" fromLane="0" toLane="0" via=":1545672819_1_0" dir="l" state="="/>
+ <connection from="141191263#0" to="-141191263#0" fromLane="0" toLane="0" via=":1545672819_2_0" dir="t" state="="/>
+ <connection from="141191263#1" to="141191248#2" fromLane="0" toLane="0" via=":1545672797_3_0" dir="s" state="="/>
+ <connection from="141191263#1" to="-141191248#1" fromLane="0" toLane="0" via=":1545672797_4_0" dir="l" state="="/>
+ <connection from="141191263#1" to="-141191263#1" fromLane="0" toLane="0" via=":1545672797_5_0" dir="t" state="="/>
+ <connection from="141191264#0" to="141191256#1" fromLane="0" toLane="0" via=":1545673092_8_0" dir="r" state="="/>
+ <connection from="141191264#0" to="141191264#1" fromLane="0" toLane="0" via=":1545673092_9_0" dir="s" state="="/>
+ <connection from="141191264#0" to="-141191256#0" fromLane="0" toLane="0" via=":1545673092_10_0" dir="l" state="="/>
+ <connection from="141191264#0" to="-141191264#0" fromLane="0" toLane="0" via=":1545673092_11_0" dir="t" state="="/>
+ <connection from="141191264#1" to="-141191254#1" fromLane="0" toLane="0" via=":1545673123_3_0" dir="s" state="="/>
+ <connection from="141191264#1" to="141191254#2" fromLane="0" toLane="0" via=":1545673123_4_0" dir="l" state="="/>
+ <connection from="141191264#1" to="-141191264#1" fromLane="0" toLane="0" via=":1545673123_5_0" dir="t" state="="/>
+ <connection from="144874008#0" to="144874008#1" fromLane="0" toLane="0" via=":1257054127_0_0" dir="s" state="M"/>
+ <connection from="144874008#0" to="38319546#0" fromLane="0" toLane="0" via=":1257054127_1_0" dir="l" state="M"/>
+ <connection from="144874008#1" to="81523343" fromLane="0" toLane="0" via=":428097664_0_0" dir="s" state="M"/>
+ <connection from="144874010#0" to="144874010#1" fromLane="0" toLane="0" via=":1243159115_0_0" dir="s" state="M"/>
+ <connection from="144874010#0" to="144874010#1" fromLane="1" toLane="1" via=":1243159115_1_0" dir="s" state="M"/>
+ <connection from="144874010#0" to="-108329427#2" fromLane="1" toLane="0" via=":1243159115_2_0" dir="s" state="M"/>
+ <connection from="144874010#1" to="-23315111#0" fromLane="0" toLane="0" via=":950094412_3_0" dir="r" state="M"/>
+ <connection from="144874010#1" to="144874010#2" fromLane="0" toLane="0" via=":950094412_4_0" dir="s" state="M"/>
+ <connection from="144874010#1" to="144874010#2" fromLane="1" toLane="1" via=":950094412_5_0" dir="s" state="M"/>
+ <connection from="144874010#1" to="23315111#1" fromLane="1" toLane="0" via=":950094412_6_0" dir="l" state="M"/>
+ <connection from="144874010#2" to="81523316" fromLane="0" toLane="0" via=":948350705_0_0" dir="s" state="M"/>
+ <connection from="144874010#2" to="81523316" fromLane="1" toLane="1" via=":948350705_1_0" dir="s" state="M"/>
+ <connection from="144874010#2" to="109438232" fromLane="1" toLane="0" via=":948350705_2_0" dir="s" state="M"/>
+ <connection from="144874012#0" to="129780022#3" fromLane="0" toLane="0" via=":435668534_0_0" dir="r" state="m"/>
+ <connection from="144874012#0" to="144874012#1" fromLane="0" toLane="0" via=":435668534_1_0" dir="s" state="m"/>
+ <connection from="144874012#0" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_2_0" dir="l" state="m"/>
+ <connection from="144874012#1" to="-81523330#4" fromLane="0" toLane="0" via=":950094494_0_0" dir="r" state="m"/>
+ <connection from="144874012#1" to="139118808" fromLane="0" toLane="0" via=":950094494_1_0" dir="s" state="m"/>
+ <connection from="144874012#1" to="139118805#0" fromLane="0" toLane="1" via=":950094494_2_0" dir="l" state="m"/>
+ <connection from="149408824#0" to="-160587537#2" fromLane="0" toLane="0" via=":1726394729_7_0" dir="r" state="M"/>
+ <connection from="149408824#0" to="149408824#1" fromLane="0" toLane="0" via=":1726394729_8_0" dir="s" state="M"/>
+ <connection from="149408824#0" to="149408824#1" fromLane="1" toLane="1" via=":1726394729_9_0" dir="s" state="M"/>
+ <connection from="149408824#0" to="160587537#3" fromLane="1" toLane="1" via=":1726394729_10_0" dir="l" state="M"/>
+ <connection from="149419435#0" to="38319550#13" fromLane="0" toLane="0" via=":1719213668_6_0" dir="r" state="M"/>
+ <connection from="149419435#0" to="149419435#1" fromLane="0" toLane="0" via=":1719213668_7_0" dir="s" state="M"/>
+ <connection from="149419435#0" to="-38319550#12" fromLane="0" toLane="0" via=":1719213668_8_0" dir="l" state="M"/>
+ <connection from="149419435#1" to="24573930#4" fromLane="0" toLane="0" via=":1624003193_2_0" dir="r" state="M"/>
+ <connection from="149419435#1" to="149419435#2" fromLane="0" toLane="0" via=":1624003193_3_0" dir="s" state="M"/>
+ <connection from="149419435#2" to="149419435#3" fromLane="0" toLane="0" via=":1624003168_2_0" dir="s" state="m"/>
+ <connection from="149419435#2" to="24573897#1" fromLane="0" toLane="0" via=":1624003168_3_0" dir="l" state="m"/>
+ <connection from="149419435#3" to="81096816#4" fromLane="0" toLane="0" via=":1624003199_1_0" dir="r" state="M"/>
+ <connection from="149420179" to="24573930#2" fromLane="0" toLane="0" via=":1624020482_1_0" dir="l" state="m"/>
+ <connection from="149422193#0" to="170590354#2" fromLane="0" toLane="0" via=":2265767389_3_0" dir="r" state="m"/>
+ <connection from="149422193#0" to="149422193#1" fromLane="0" toLane="0" via=":2265767389_4_0" dir="s" state="m"/>
+ <connection from="149422193#0" to="-149422193#0" fromLane="0" toLane="0" via=":2265767389_5_0" dir="t" state="m"/>
+ <connection from="149422193#1" to="-149868584#0" fromLane="0" toLane="0" via=":255227483_9_0" dir="r" state="m"/>
+ <connection from="149422193#1" to="24573947#0" fromLane="0" toLane="0" via=":255227483_10_0" dir="s" state="m"/>
+ <connection from="149422193#1" to="149868584#1" fromLane="0" toLane="1" via=":255227483_11_0" dir="l" state="m"/>
+ <connection from="149422193#1" to="-149422193#1" fromLane="0" toLane="0" via=":255227483_12_0" dir="t" state="m"/>
+ <connection from="149422199#0" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_30_0" dir="r" state="M"/>
+ <connection from="149422199#0" to="166728377#0" fromLane="0" toLane="0" via=":255227480_31_0" dir="s" state="m"/>
+ <connection from="149422199#0" to="149422199#1" fromLane="0" toLane="0" via=":255227480_32_0" dir="s" state="m"/>
+ <connection from="149422199#0" to="23566901#1" fromLane="0" toLane="0" via=":255227480_33_0" dir="L" state="m"/>
+ <connection from="149422199#0" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_34_0" dir="l" state="m"/>
+ <connection from="149422199#0" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_35_0" dir="t" state="m"/>
+ <connection from="149422199#1" to="149422199#2" fromLane="0" toLane="0" via=":255227482_15_0" dir="s" state="M"/>
+ <connection from="149422199#1" to="166728377#1" fromLane="0" toLane="0" via=":255227482_16_0" dir="L" state="m"/>
+ <connection from="149422199#1" to="149422210#0" fromLane="0" toLane="0" via=":255227482_17_0" dir="L" state="m"/>
+ <connection from="149422199#1" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_18_0" dir="l" state="m"/>
+ <connection from="149422199#1" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_19_0" dir="t" state="m"/>
+ <connection from="149422199#2" to="-149422199#2" fromLane="0" toLane="0" via=":432548414_0_0" dir="t" state="M"/>
+ <connection from="149422210#0" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_5_0" dir="s" state="M"/>
+ <connection from="149422210#0" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_6_0" dir="L" state="m"/>
+ <connection from="149422210#0" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_7_0" dir="L" state="m"/>
+ <connection from="149422210#0" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_8_0" dir="l" state="m"/>
+ <connection from="149422210#0" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_9_0" dir="t" state="m"/>
+ <connection from="149422210#1" to="101272426#2" fromLane="0" toLane="0" via=":443101921_3_0" dir="r" state="m"/>
+ <connection from="149422210#1" to="149422193#0" fromLane="0" toLane="0" via=":443101921_4_0" dir="s" state="m"/>
+ <connection from="149422210#1" to="-149422210#1" fromLane="0" toLane="0" via=":443101921_5_0" dir="t" state="m"/>
+ <connection from="149819220" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_0_0" dir="r" state="m"/>
+ <connection from="149819220" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_1_0" dir="l" state="m"/>
+ <connection from="149819220" to="-149819220" fromLane="0" toLane="0" via=":1224074535_2_0" dir="t" state="m"/>
+ <connection from="149819222" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_3_0" dir="r" state="m"/>
+ <connection from="149819222" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_4_0" dir="l" state="m"/>
+ <connection from="149819222" to="-149819222" fromLane="0" toLane="0" via=":1627657715_5_0" dir="t" state="m"/>
+ <connection from="149819224" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_3_0" dir="r" state="m"/>
+ <connection from="149819224" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_4_0" dir="l" state="m"/>
+ <connection from="149819224" to="-149819224" fromLane="0" toLane="0" via=":1627657825_5_0" dir="t" state="m"/>
+ <connection from="149819227#0" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_12_0" dir="r" state="M"/>
+ <connection from="149819227#0" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_13_0" dir="s" state="M"/>
+ <connection from="149819227#0" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_14_0" dir="l" state="m"/>
+ <connection from="149819227#0" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_15_0" dir="t" state="m"/>
+ <connection from="149819227#1" to="-149819224" fromLane="0" toLane="0" via=":1627657825_6_0" dir="r" state="M"/>
+ <connection from="149819227#1" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_7_0" dir="s" state="M"/>
+ <connection from="149819227#1" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_8_0" dir="t" state="m"/>
+ <connection from="149819227#2" to="149819220" fromLane="0" toLane="0" via=":1224074532_6_0" dir="r" state="M"/>
+ <connection from="149819227#2" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_7_0" dir="s" state="M"/>
+ <connection from="149819227#2" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_8_0" dir="t" state="m"/>
+ <connection from="149819227#3" to="-149819222" fromLane="0" toLane="0" via=":1627657715_6_0" dir="r" state="M"/>
+ <connection from="149819227#3" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_7_0" dir="s" state="M"/>
+ <connection from="149819227#3" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_8_0" dir="t" state="m"/>
+ <connection from="149819232#0" to="-149819220" fromLane="0" toLane="0" via=":1224074535_3_0" dir="r" state="M"/>
+ <connection from="149819232#0" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_4_0" dir="s" state="M"/>
+ <connection from="149819232#0" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_5_0" dir="t" state="m"/>
+ <connection from="149819232#1" to="149819224" fromLane="0" toLane="0" via=":1627657822_3_0" dir="r" state="M"/>
+ <connection from="149819232#1" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_4_0" dir="s" state="M"/>
+ <connection from="149819232#1" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_5_0" dir="t" state="m"/>
+ <connection from="149819232#2" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_3_0" dir="r" state="M"/>
+ <connection from="149819232#2" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_4_0" dir="s" state="M"/>
+ <connection from="149819232#2" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_5_0" dir="t" state="m"/>
+ <connection from="149819232#3" to="-149819232#3" fromLane="0" toLane="0" via=":1224074526_0_0" dir="t" state="M"/>
+ <connection from="149868584#0" to="24573947#0" fromLane="0" toLane="0" via=":255227483_4_0" dir="r" state="M"/>
+ <connection from="149868584#0" to="149868584#1" fromLane="0" toLane="0" via=":255227483_5_0" dir="s" state="M"/>
+ <connection from="149868584#0" to="149868584#1" fromLane="1" toLane="1" via=":255227483_6_0" dir="s" state="M"/>
+ <connection from="149868584#0" to="-149422193#1" fromLane="1" toLane="0" via=":255227483_7_0" dir="l" state="m"/>
+ <connection from="149868584#0" to="-149868584#0" fromLane="1" toLane="1" via=":255227483_8_0" dir="t" state="m"/>
+ <connection from="149868584#1" to="37772597#0" fromLane="0" toLane="0" via=":255227471_4_0" dir="r" state="M"/>
+ <connection from="149868584#1" to="149868584#2" fromLane="0" toLane="0" via=":255227471_5_0" dir="s" state="M"/>
+ <connection from="149868584#1" to="149868584#2" fromLane="1" toLane="1" via=":255227471_6_0" dir="s" state="M"/>
+ <connection from="149868584#1" to="23262356#0" fromLane="1" toLane="0" via=":255227471_7_0" dir="l" state="m"/>
+ <connection from="149868584#1" to="-149868584#1" fromLane="1" toLane="1" via=":255227471_8_0" dir="t" state="m"/>
+ <connection from="149868584#2" to="154844487#1" fromLane="0" toLane="0" via=":1168929657_0_0" tl="1168929657" linkIndex="0" dir="r" state="o"/>
+ <connection from="149868584#2" to="149868584#3" fromLane="1" toLane="0" via=":1168929657_1_0" tl="1168929657" linkIndex="1" dir="s" state="o"/>
+ <connection from="149868584#2" to="-149868584#2" fromLane="1" toLane="1" via=":1168929657_2_0" tl="1168929657" linkIndex="2" dir="t" state="o"/>
+ <connection from="149868584#3" to="160587538#4" fromLane="0" toLane="0" via=":1726394724_4_0" tl="1726394724" linkIndex="4" dir="r" state="o"/>
+ <connection from="149868584#3" to="149868584#4" fromLane="0" toLane="0" via=":1726394724_5_0" tl="1726394724" linkIndex="5" dir="s" state="o"/>
+ <connection from="149868584#3" to="149868584#4" fromLane="1" toLane="1" via=":1726394724_6_0" tl="1726394724" linkIndex="6" dir="s" state="o"/>
+ <connection from="149868584#3" to="-160587538#3" fromLane="1" toLane="1" via=":1726394724_7_0" tl="1726394724" linkIndex="7" dir="l" state="o"/>
+ <connection from="149868584#3" to="-149868584#3" fromLane="1" toLane="1" via=":1726394724_8_0" tl="1726394724" linkIndex="8" dir="t" state="o"/>
+ <connection from="149868584#4" to="149868584#5" fromLane="0" toLane="1" via=":1168929383_3_0" tl="1168929383" linkIndex="3" dir="s" state="o"/>
+ <connection from="149868584#4" to="154844470#1" fromLane="1" toLane="0" via=":1168929383_4_0" tl="1168929383" linkIndex="4" dir="l" state="o"/>
+ <connection from="149868584#4" to="-149868584#4" fromLane="1" toLane="1" via=":1168929383_5_0" tl="1168929383" linkIndex="5" dir="t" state="o"/>
+ <connection from="149868584#5" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_4_0" tl="767282288" linkIndex="4" dir="r" state="o"/>
+ <connection from="149868584#5" to="149868584#6" fromLane="0" toLane="0" via=":767282288_5_0" tl="767282288" linkIndex="5" dir="s" state="o"/>
+ <connection from="149868584#5" to="149868584#6" fromLane="1" toLane="1" via=":767282288_6_0" tl="767282288" linkIndex="6" dir="s" state="o"/>
+ <connection from="149868584#5" to="38319550#6" fromLane="1" toLane="0" via=":767282288_7_0" tl="767282288" linkIndex="7" dir="l" state="o"/>
+ <connection from="149868584#5" to="-149868584#5" fromLane="1" toLane="1" via=":767282288_8_0" tl="767282288" linkIndex="8" dir="t" state="o"/>
+ <connection from="149868584#6" to="42976410#0" fromLane="0" toLane="0" via=":13929775_0_0" tl="13929775" linkIndex="0" dir="r" state="o"/>
+ <connection from="149868584#6" to="149868584#7" fromLane="0" toLane="0" via=":13929775_1_0" tl="13929775" linkIndex="1" dir="s" state="o"/>
+ <connection from="149868584#6" to="149868584#7" fromLane="1" toLane="1" via=":13929775_2_0" tl="13929775" linkIndex="2" dir="s" state="o"/>
+ <connection from="149868584#6" to="-149868584#6" fromLane="1" toLane="1" via=":13929775_3_0" tl="13929775" linkIndex="3" dir="t" state="o"/>
+ <connection from="149868584#7" to="42976405#0" fromLane="0" toLane="0" via=":438042369_0_0" tl="438042369" linkIndex="0" dir="r" state="o"/>
+ <connection from="149868584#7" to="42976405#0" fromLane="1" toLane="1" via=":438042369_1_0" tl="438042369" linkIndex="1" dir="r" state="o"/>
+ <connection from="149868584#7" to="149868584#8" fromLane="1" toLane="0" via=":438042369_2_0" tl="438042369" linkIndex="2" dir="s" state="o"/>
+ <connection from="149868584#7" to="-149868584#7" fromLane="1" toLane="1" via=":438042369_3_0" tl="438042369" linkIndex="3" dir="t" state="o"/>
+ <connection from="149868584#8" to="37973572#0" fromLane="0" toLane="1" via=":438042367_4_0" tl="438042367" linkIndex="4" dir="s" state="o"/>
+ <connection from="149868584#8" to="42976406#0" fromLane="1" toLane="2" via=":438042367_5_0" tl="438042367" linkIndex="5" dir="l" state="o"/>
+ <connection from="149868584#8" to="-149868584#8" fromLane="1" toLane="1" via=":438042367_6_0" tl="438042367" linkIndex="6" dir="t" state="o"/>
+ <connection from="151164683" to="-151164683" fromLane="0" toLane="0" via=":1718241040_0_0" dir="t" state="M"/>
+ <connection from="151167658#0" to="38319549#2" fromLane="0" toLane="0" via=":1719213140_6_0" dir="r" state="M"/>
+ <connection from="151167658#0" to="151167658#1" fromLane="0" toLane="0" via=":1719213140_7_0" dir="s" state="M"/>
+ <connection from="151167658#0" to="-38319549#1" fromLane="0" toLane="0" via=":1719213140_8_0" dir="l" state="M"/>
+ <connection from="151167658#1" to="151167658#2" fromLane="0" toLane="0" via=":438042376_2_0" dir="s" state="M"/>
+ <connection from="151167658#1" to="23066443#2" fromLane="0" toLane="0" via=":438042376_3_0" dir="l" state="M"/>
+ <connection from="151167658#2" to="110514869#0" fromLane="0" toLane="0" via=":1261880295_2_0" dir="s" state="M"/>
+ <connection from="151167658#2" to="110514869#0" fromLane="0" toLane="1" via=":1261880295_3_0" dir="s" state="M"/>
+ <connection from="151167658#2" to="44738605#0" fromLane="0" toLane="0" via=":1261880295_4_0" dir="l" state="m"/>
+ <connection from="154409616#0" to="154409616#1" fromLane="0" toLane="0" via=":252418151_0_0" dir="s" state="M"/>
+ <connection from="154409616#1" to="144874008#0" fromLane="0" toLane="0" via=":252418152_0_0" dir="r" state="M"/>
+ <connection from="154409621" to="129780026#2" fromLane="0" toLane="0" via=":248913124_0_0" dir="r" state="M"/>
+ <connection from="154409621" to="129780022#0" fromLane="0" toLane="0" via=":248913124_1_0" dir="s" state="M"/>
+ <connection from="154409621" to="-154409621" fromLane="0" toLane="0" via=":248913124_2_0" dir="t" state="m"/>
+ <connection from="154489992#0" to="129780026#3" fromLane="0" toLane="0" via=":950094434_0_0" dir="r" state="M"/>
+ <connection from="154489992#0" to="154489992#1" fromLane="0" toLane="0" via=":950094434_1_0" dir="s" state="M"/>
+ <connection from="154489992#0" to="154489992#1" fromLane="1" toLane="1" via=":950094434_2_0" dir="s" state="M"/>
+ <connection from="154489992#1" to="-38319546#0" fromLane="0" toLane="0" via=":1257054074_3_0" dir="r" state="M"/>
+ <connection from="154489992#1" to="154489992#2" fromLane="0" toLane="0" via=":1257054074_4_0" dir="s" state="M"/>
+ <connection from="154489992#1" to="154489992#2" fromLane="1" toLane="1" via=":1257054074_5_0" dir="s" state="M"/>
+ <connection from="154489992#1" to="38319546#1" fromLane="1" toLane="0" via=":1257054074_6_0" dir="l" state="M"/>
+ <connection from="154489992#2" to="172498367" fromLane="0" toLane="0" via=":950094314_0_0" dir="r" state="M"/>
+ <connection from="154489992#2" to="172498388" fromLane="0" toLane="0" via=":950094314_1_0" dir="s" state="M"/>
+ <connection from="154489992#2" to="172498388" fromLane="1" toLane="1" via=":950094314_2_0" dir="s" state="M"/>
+ <connection from="154500693#0" to="166576464#3" fromLane="0" toLane="0" via=":1780219342_3_0" dir="r" state="M"/>
+ <connection from="154500693#0" to="154500693#1" fromLane="0" toLane="0" via=":1780219342_4_0" dir="s" state="M"/>
+ <connection from="154500693#0" to="154500693#1" fromLane="1" toLane="1" via=":1780219342_5_0" dir="s" state="M"/>
+ <connection from="154500693#0" to="154500693#1" fromLane="2" toLane="2" via=":1780219342_6_0" dir="s" state="M"/>
+ <connection from="154500693#0" to="-166576464#2" fromLane="2" toLane="0" via=":1780219342_7_0" dir="l" state="M"/>
+ <connection from="154500693#1" to="166576468#2" fromLane="0" toLane="0" via=":1780219352_3_0" dir="r" state="M"/>
+ <connection from="154500693#1" to="154500693#2" fromLane="0" toLane="0" via=":1780219352_4_0" dir="s" state="M"/>
+ <connection from="154500693#1" to="154500693#2" fromLane="1" toLane="1" via=":1780219352_5_0" dir="s" state="M"/>
+ <connection from="154500693#1" to="154500693#2" fromLane="2" toLane="2" via=":1780219352_6_0" dir="s" state="M"/>
+ <connection from="154500693#1" to="-166576468#1" fromLane="2" toLane="0" via=":1780219352_7_0" dir="l" state="M"/>
+ <connection from="154500693#2" to="37973568#7" fromLane="0" toLane="0" via=":446017743_0_0" tl="446017743" linkIndex="0" dir="r" state="o"/>
+ <connection from="154500693#2" to="154500693#3" fromLane="0" toLane="0" via=":446017743_1_0" tl="446017743" linkIndex="1" dir="s" state="o"/>
+ <connection from="154500693#2" to="154500693#3" fromLane="1" toLane="1" via=":446017743_2_0" tl="446017743" linkIndex="2" dir="s" state="o"/>
+ <connection from="154500693#2" to="154500693#3" fromLane="2" toLane="2" via=":446017743_3_0" tl="446017743" linkIndex="3" dir="s" state="o"/>
+ <connection from="154500693#3" to="-149868584#7" fromLane="0" toLane="0" via=":438042369_4_0" tl="438042369" linkIndex="4" dir="r" state="o"/>
+ <connection from="154500693#3" to="42976405#0" fromLane="0" toLane="0" via=":438042369_5_0" tl="438042369" linkIndex="5" dir="s" state="o"/>
+ <connection from="154500693#3" to="42976405#0" fromLane="1" toLane="1" via=":438042369_6_0" tl="438042369" linkIndex="6" dir="s" state="o"/>
+ <connection from="154500693#3" to="149868584#8" fromLane="2" toLane="1" via=":438042369_7_0" tl="438042369" linkIndex="7" dir="l" state="o"/>
+ <connection from="154500695" to="37449249#0" fromLane="0" toLane="0" via=":438042373_1_0" tl="438042373" linkIndex="1" dir="s" state="o"/>
+ <connection from="154500698" to="154500699#0" fromLane="0" toLane="0" via=":438042386_3_0" tl="438042386" linkIndex="3" dir="s" state="o"/>
+ <connection from="154500698" to="133960538#0" fromLane="0" toLane="1" via=":438042386_4_0" tl="438042386" linkIndex="4" dir="l" state="o"/>
+ <connection from="154500699#0" to="154500699#1" fromLane="0" toLane="0" via=":438042378_1_0" tl="438042378" linkIndex="1" dir="s" state="o"/>
+ <connection from="154500699#1" to="151167658#0" fromLane="0" toLane="0" via=":438042377_0_0" tl="438042377" linkIndex="0" dir="s" state="o"/>
+ <connection from="154500699#1" to="154500695" fromLane="0" toLane="0" via=":438042377_1_0" tl="438042377" linkIndex="1" dir="s" state="o"/>
+ <connection from="154500706#0" to="42976406#5" fromLane="0" toLane="0" via=":441236060_4_0" dir="r" state="m"/>
+ <connection from="154500706#0" to="154500706#1" fromLane="0" toLane="0" via=":441236060_5_0" dir="s" state="m"/>
+ <connection from="154500706#1" to="154500706#2" fromLane="0" toLane="0" via=":1168929600_4_0" tl="1168929600" linkIndex="4" dir="s" state="o"/>
+ <connection from="154500706#1" to="122301994#1" fromLane="0" toLane="1" via=":1168929600_5_0" tl="1168929600" linkIndex="5" dir="l" state="o"/>
+ <connection from="154500706#1" to="122301994#1" fromLane="0" toLane="2" via=":1168929600_6_0" tl="1168929600" linkIndex="6" dir="l" state="o"/>
+ <connection from="154500706#2" to="154500706#3" fromLane="0" toLane="0" via=":1168929298_1_0" tl="1168929298" linkIndex="1" dir="s" state="o"/>
+ <connection from="154500706#3" to="8272412#0" fromLane="0" toLane="0" via=":1096401733_0_0" dir="r" state="M"/>
+ <connection from="154500706#3" to="160587552#0" fromLane="0" toLane="0" via=":1096401733_1_0" dir="s" state="M"/>
+ <connection from="154844461#0" to="-108733429" fromLane="0" toLane="0" via=":1246731460_2_0" dir="r" state="M"/>
+ <connection from="154844461#0" to="154844461#1" fromLane="0" toLane="0" via=":1246731460_3_0" dir="s" state="m"/>
+ <connection from="154844461#1" to="154844461#2" fromLane="0" toLane="0" via=":1168929295_1_0" tl="1168929295" linkIndex="1" dir="s" state="o"/>
+ <connection from="154844461#2" to="101272429#0" fromLane="0" toLane="0" via=":1246731455_0_0" dir="r" state="M"/>
+ <connection from="154844461#2" to="108733428" fromLane="0" toLane="0" via=":1246731455_1_0" dir="s" state="M"/>
+ <connection from="154844461#2" to="154844461#3" fromLane="0" toLane="0" via=":1246731455_2_0" dir="s" state="m"/>
+ <connection from="154844461#3" to="111863125#0" fromLane="0" toLane="0" via=":1168929523_0_0" dir="r" state="M"/>
+ <connection from="154844461#3" to="154844470#0" fromLane="0" toLane="0" via=":1168929523_1_0" dir="s" state="M"/>
+ <connection from="154844462" to="-108733424" fromLane="0" toLane="0" via=":1246731525_0_0" dir="l" state="M"/>
+ <connection from="154844462" to="154844481" fromLane="0" toLane="0" via=":1246731525_1_0" dir="s" state="M"/>
+ <connection from="154844463" to="-108733422" fromLane="0" toLane="0" via=":1246731544_2_0" tl="1246731544" linkIndex="2" dir="t" state="o"/>
+ <connection from="154844463" to="154844479" fromLane="0" toLane="0" via=":1246731544_3_0" tl="1246731544" linkIndex="3" dir="s" state="o"/>
+ <connection from="154844465#0" to="154844465#1" fromLane="0" toLane="0" via=":1168929613_0_0" tl="1168929613" linkIndex="0" dir="s" state="o"/>
+ <connection from="154844465#1" to="-108733431" fromLane="0" toLane="0" via=":1246731627_2_0" dir="r" state="M"/>
+ <connection from="154844465#1" to="154844465#2" fromLane="0" toLane="0" via=":1246731627_3_0" dir="s" state="m"/>
+ <connection from="154844465#2" to="81096816#0" fromLane="0" toLane="0" via=":1168929272_0_0" dir="s" state="M"/>
+ <connection from="154844465#2" to="154844465#3" fromLane="0" toLane="0" via=":1168929272_1_0" dir="s" state="M"/>
+ <connection from="154844465#3" to="108733425" fromLane="0" toLane="0" via=":1246731504_2_0" dir="s" state="M"/>
+ <connection from="154844465#3" to="154844465#4" fromLane="0" toLane="0" via=":1246731504_3_0" dir="s" state="m"/>
+ <connection from="154844465#4" to="166602674#0" fromLane="0" toLane="0" via=":1168929382_3_0" dir="r" state="m"/>
+ <connection from="154844465#4" to="101272431" fromLane="0" toLane="0" via=":1168929382_4_0" dir="s" state="m"/>
+ <connection from="154844467" to="101272426#0" fromLane="0" toLane="0" via=":1168929367_0_0" dir="r" state="M"/>
+ <connection from="154844467" to="154844473" fromLane="0" toLane="0" via=":1168929367_1_0" dir="R" state="M"/>
+ <connection from="154844470#0" to="149868584#5" fromLane="0" toLane="0" via=":1168929383_0_0" tl="1168929383" linkIndex="0" dir="r" state="o"/>
+ <connection from="154844470#0" to="154844470#1" fromLane="0" toLane="0" via=":1168929383_1_0" tl="1168929383" linkIndex="1" dir="s" state="o"/>
+ <connection from="154844470#0" to="-149868584#4" fromLane="0" toLane="1" via=":1168929383_2_0" tl="1168929383" linkIndex="2" dir="l" state="o"/>
+ <connection from="154844470#1" to="154844465#0" fromLane="0" toLane="0" via=":1168929310_0_0" dir="s" state="m"/>
+ <connection from="154844470#1" to="111863096#0" fromLane="0" toLane="0" via=":1168929310_1_0" dir="l" state="m"/>
+ <connection from="154844473" to="81547611" fromLane="0" toLane="0" via=":1168929388_0_0" dir="r" state="M"/>
+ <connection from="154844473" to="154844487#0" fromLane="0" toLane="0" via=":1168929388_1_0" dir="s" state="M"/>
+ <connection from="154844474#0" to="38319548#6" fromLane="0" toLane="0" via=":1669480284_3_0" dir="r" state="M"/>
+ <connection from="154844474#0" to="154844474#1" fromLane="0" toLane="0" via=":1669480284_4_0" dir="s" state="M"/>
+ <connection from="154844474#0" to="154844474#1" fromLane="1" toLane="1" via=":1669480284_5_0" dir="s" state="M"/>
+ <connection from="154844474#0" to="-38319548#5" fromLane="1" toLane="0" via=":1669480284_6_0" dir="l" state="M"/>
+ <connection from="154844477" to="101272435#0" fromLane="0" toLane="0" via=":1168929459_0_0" dir="r" state="M"/>
+ <connection from="154844477" to="154844489#0" fromLane="0" toLane="0" via=":1168929459_1_0" dir="s" state="M"/>
+ <connection from="154844478" to="154844484#0" fromLane="0" toLane="0" via=":1168929385_3_0" dir="s" state="m"/>
+ <connection from="154844478" to="154844483#0" fromLane="0" toLane="1" via=":1168929385_4_0" dir="l" state="m"/>
+ <connection from="154844479" to="108733421" fromLane="0" toLane="0" via=":1246731574_2_0" dir="s" state="M"/>
+ <connection from="154844479" to="154844467" fromLane="0" toLane="0" via=":1246731574_3_0" dir="l" state="m"/>
+ <connection from="154844481" to="154844477" fromLane="0" toLane="0" via=":1168929549_1_0" tl="1168929549" linkIndex="1" dir="s" state="o"/>
+ <connection from="154844482" to="160587538#6" fromLane="0" toLane="0" via=":1168929558_3_0" tl="1168929558" linkIndex="3" dir="r" state="o"/>
+ <connection from="154844482" to="154844486" fromLane="0" toLane="0" via=":1168929558_4_0" tl="1168929558" linkIndex="4" dir="s" state="o"/>
+ <connection from="154844482" to="-160587538#5" fromLane="0" toLane="1" via=":1168929558_5_0" tl="1168929558" linkIndex="5" dir="l" state="o"/>
+ <connection from="154844483#0" to="111863096#3" fromLane="0" toLane="0" via=":951739557_0_0" dir="r" state="M"/>
+ <connection from="154844483#0" to="154844483#1" fromLane="0" toLane="0" via=":951739557_1_0" dir="s" state="M"/>
+ <connection from="154844483#0" to="154844483#1" fromLane="1" toLane="1" via=":951739557_2_0" dir="s" state="M"/>
+ <connection from="154844483#1" to="154844483#2" fromLane="0" toLane="0" via=":951739718_2_0" dir="s" state="M"/>
+ <connection from="154844483#1" to="154844483#2" fromLane="1" toLane="1" via=":951739718_3_0" dir="s" state="M"/>
+ <connection from="154844483#1" to="103851602#2" fromLane="1" toLane="0" via=":951739718_4_0" dir="l" state="M"/>
+ <connection from="154844483#2" to="154844491#0" fromLane="0" toLane="0" via=":1168929269_2_0" dir="s" state="M"/>
+ <connection from="154844483#2" to="154844491#0" fromLane="1" toLane="1" via=":1168929269_3_0" dir="s" state="M"/>
+ <connection from="154844483#2" to="154844482" fromLane="1" toLane="0" via=":1168929269_4_0" dir="l" state="M"/>
+ <connection from="154844484#0" to="38319548#15" fromLane="0" toLane="0" via=":1168929546_6_0" dir="r" state="M"/>
+ <connection from="154844484#0" to="154844484#1" fromLane="0" toLane="0" via=":1168929546_7_0" dir="s" state="M"/>
+ <connection from="154844484#0" to="-38319548#14" fromLane="0" toLane="0" via=":1168929546_8_0" dir="l" state="M"/>
+ <connection from="154844484#1" to="154844463" fromLane="0" toLane="0" via=":1168929585_1_0" dir="s" state="M"/>
+ <connection from="154844485#0" to="108733429" fromLane="0" toLane="0" via=":1246731647_0_0" dir="s" state="M"/>
+ <connection from="154844485#0" to="154844485#1" fromLane="0" toLane="0" via=":1246731647_1_0" dir="s" state="m"/>
+ <connection from="154844485#0" to="154844485#1" fromLane="1" toLane="1" via=":1246731647_2_0" dir="s" state="M"/>
+ <connection from="154844485#1" to="154844461#0" fromLane="0" toLane="0" via=":1168929562_0_0" dir="r" state="M"/>
+ <connection from="154844485#1" to="166603397#0" fromLane="0" toLane="0" via=":1168929562_1_0" dir="s" state="M"/>
+ <connection from="154844485#1" to="166603397#0" fromLane="1" toLane="1" via=":1168929562_2_0" dir="s" state="M"/>
+ <connection from="154844486" to="154844461#0" fromLane="0" toLane="0" via=":1168929562_3_0" dir="s" state="m"/>
+ <connection from="154844486" to="166603397#0" fromLane="0" toLane="1" via=":1168929562_4_0" dir="l" state="m"/>
+ <connection from="154844487#0" to="-149868584#2" fromLane="0" toLane="0" via=":1168929657_3_0" tl="1168929657" linkIndex="3" dir="r" state="o"/>
+ <connection from="154844487#0" to="154844487#1" fromLane="0" toLane="0" via=":1168929657_4_0" tl="1168929657" linkIndex="4" dir="s" state="o"/>
+ <connection from="154844487#0" to="149868584#3" fromLane="0" toLane="1" via=":1168929657_5_0" tl="1168929657" linkIndex="5" dir="l" state="o"/>
+ <connection from="154844487#1" to="154844462" fromLane="0" toLane="0" via=":1168929324_2_0" dir="s" state="m"/>
+ <connection from="154844487#1" to="103851602#0" fromLane="0" toLane="0" via=":1168929324_3_0" dir="l" state="m"/>
+ <connection from="154844489#0" to="108733430" fromLane="0" toLane="0" via=":1246731482_0_0" dir="s" state="M"/>
+ <connection from="154844489#0" to="154844489#1" fromLane="0" toLane="0" via=":1246731482_1_0" dir="s" state="m"/>
+ <connection from="154844489#1" to="-38319548#11" fromLane="0" toLane="0" via=":1168929659_3_0" dir="r" state="M"/>
+ <connection from="154844489#1" to="154844489#2" fromLane="0" toLane="0" via=":1168929659_4_0" dir="s" state="M"/>
+ <connection from="154844489#1" to="38319548#12" fromLane="0" toLane="0" via=":1168929659_5_0" dir="l" state="M"/>
+ <connection from="154844489#2" to="154844491#0" fromLane="0" toLane="0" via=":1168929269_0_0" dir="r" state="m"/>
+ <connection from="154844489#2" to="154844482" fromLane="0" toLane="0" via=":1168929269_1_0" dir="s" state="m"/>
+ <connection from="154844491#0" to="-108733430" fromLane="0" toLane="0" via=":1246731457_2_0" dir="r" state="M"/>
+ <connection from="154844491#0" to="154844491#1" fromLane="0" toLane="0" via=":1246731457_3_0" dir="s" state="M"/>
+ <connection from="154844491#0" to="154844491#1" fromLane="1" toLane="1" via=":1246731457_4_0" dir="s" state="M"/>
+ <connection from="154844491#1" to="154844500#0" fromLane="0" toLane="0" via=":1669480281_3_0" dir="r" state="M"/>
+ <connection from="154844491#1" to="154844474#0" fromLane="0" toLane="0" via=":1669480281_4_0" dir="s" state="M"/>
+ <connection from="154844491#1" to="154844474#0" fromLane="1" toLane="1" via=":1669480281_5_0" dir="s" state="M"/>
+ <connection from="154844491#1" to="-160587542" fromLane="1" toLane="1" via=":1669480281_6_0" dir="l" state="M"/>
+ <connection from="154844500#0" to="154844500#1" fromLane="0" toLane="0" via=":441266880_6_0" tl="441266880" linkIndex="6" dir="s" state="o"/>
+ <connection from="154844500#0" to="101272435#5" fromLane="0" toLane="0" via=":441266880_7_0" tl="441266880" linkIndex="7" dir="l" state="o"/>
+ <connection from="154844500#0" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_8_0" tl="441266880" linkIndex="8" dir="t" state="o"/>
+ <connection from="154844500#1" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_12_0" dir="r" state="M"/>
+ <connection from="154844500#1" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_13_0" dir="s" state="M"/>
+ <connection from="154844500#1" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_14_0" dir="l" state="m"/>
+ <connection from="154844500#1" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_15_0" dir="t" state="m"/>
+ <connection from="154844500#2" to="154844500#3" fromLane="0" toLane="0" via=":441266854_2_0" tl="441266854" linkIndex="2" dir="s" state="o"/>
+ <connection from="154844500#2" to="-154844500#2" fromLane="0" toLane="0" via=":441266854_3_0" tl="441266854" linkIndex="3" dir="t" state="o"/>
+ <connection from="154844500#3" to="-154844500#3" fromLane="0" toLane="0" via=":248913154_0_0" tl="248913154" linkIndex="0" dir="t" state="o"/>
+ <connection from="154844503" to="-160587538#7" fromLane="0" toLane="0" via=":1726394726_13_0" tl="1726394726" linkIndex="13" dir="r" state="o"/>
+ <connection from="154844503" to="160587542" fromLane="0" toLane="0" via=":1726394726_14_0" tl="1726394726" linkIndex="14" dir="s" state="o"/>
+ <connection from="154844503" to="160587542" fromLane="1" toLane="1" via=":1726394726_15_0" tl="1726394726" linkIndex="15" dir="s" state="o"/>
+ <connection from="154844503" to="160587537#0" fromLane="1" toLane="1" via=":1726394726_16_0" tl="1726394726" linkIndex="16" dir="l" state="o"/>
+ <connection from="154844503" to="-154844503" fromLane="1" toLane="1" via=":1726394726_17_0" tl="1726394726" linkIndex="17" dir="t" state="o"/>
+ <connection from="160584980" to="160584981" fromLane="0" toLane="0" via=":1726380187_0_0" dir="s" state="M"/>
+ <connection from="160584980" to="160584982#0" fromLane="0" toLane="0" via=":1726380187_1_0" dir="l" state="m"/>
+ <connection from="160584981" to="37973569#8" fromLane="0" toLane="0" via=":1726380184_0_0" dir="r" state="M"/>
+ <connection from="160584981" to="-160584981" fromLane="0" toLane="0" via=":1726380184_1_0" dir="t" state="m"/>
+ <connection from="160584982#0" to="81394192#10" fromLane="0" toLane="0" via=":1726380193_0_0" dir="r" state="M"/>
+ <connection from="160584982#0" to="160584982#1" fromLane="0" toLane="0" via=":1726380193_1_0" dir="s" state="M"/>
+ <connection from="160584982#1" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_2_0" dir="r" state="m"/>
+ <connection from="160584982#1" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_3_0" dir="l" state="m"/>
+ <connection from="160584984" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_0_0" dir="r" state="m"/>
+ <connection from="160584984" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_1_0" dir="l" state="m"/>
+ <connection from="160584984" to="-160584984" fromLane="0" toLane="0" via=":1224080669_2_0" dir="t" state="m"/>
+ <connection from="160587537#0" to="38319548#5" fromLane="0" toLane="0" via=":1726394727_9_0" dir="r" state="M"/>
+ <connection from="160587537#0" to="160587537#1" fromLane="0" toLane="0" via=":1726394727_10_0" dir="s" state="M"/>
+ <connection from="160587537#0" to="160587537#1" fromLane="1" toLane="1" via=":1726394727_11_0" dir="s" state="M"/>
+ <connection from="160587537#0" to="-38319548#4" fromLane="1" toLane="0" via=":1726394727_12_0" dir="l" state="m"/>
+ <connection from="160587537#0" to="-160587537#0" fromLane="1" toLane="1" via=":1726394727_13_0" dir="t" state="m"/>
+ <connection from="160587537#1" to="172498387#3" fromLane="0" toLane="0" via=":1726394728_4_0" dir="r" state="M"/>
+ <connection from="160587537#1" to="160587537#2" fromLane="0" toLane="0" via=":1726394728_5_0" dir="s" state="M"/>
+ <connection from="160587537#1" to="160587537#2" fromLane="1" toLane="1" via=":1726394728_6_0" dir="s" state="M"/>
+ <connection from="160587537#1" to="-160587537#1" fromLane="1" toLane="1" via=":1726394728_7_0" dir="t" state="m"/>
+ <connection from="160587537#2" to="149408824#1" fromLane="0" toLane="0" via=":1726394729_3_0" dir="r" state="m"/>
+ <connection from="160587537#2" to="149408824#1" fromLane="1" toLane="1" via=":1726394729_4_0" dir="r" state="m"/>
+ <connection from="160587537#2" to="160587537#3" fromLane="1" toLane="0" via=":1726394729_5_0" dir="s" state="M"/>
+ <connection from="160587537#2" to="-160587537#2" fromLane="1" toLane="1" via=":1726394729_6_0" dir="t" state="m"/>
+ <connection from="160587537#3" to="-160587537#3" fromLane="1" toLane="1" via=":13929752_0_0" tl="13929752" linkIndex="0" dir="t" state="o"/>
+ <connection from="160587538#0" to="197955309#3" fromLane="0" toLane="0" via=":2081499950_9_0" dir="r" state="M"/>
+ <connection from="160587538#0" to="160587538#1" fromLane="0" toLane="0" via=":2081499950_10_0" dir="s" state="M"/>
+ <connection from="160587538#0" to="160587538#1" fromLane="1" toLane="1" via=":2081499950_11_0" dir="s" state="M"/>
+ <connection from="160587538#0" to="-197955309#2" fromLane="1" toLane="0" via=":2081499950_12_0" dir="l" state="m"/>
+ <connection from="160587538#0" to="-160587538#0" fromLane="1" toLane="1" via=":2081499950_13_0" dir="t" state="m"/>
+ <connection from="160587538#1" to="154844478" fromLane="0" toLane="0" via=":1168929634_3_0" tl="1168929634" linkIndex="3" dir="r" state="o"/>
+ <connection from="160587538#1" to="160587538#2" fromLane="1" toLane="0" via=":1168929634_4_0" tl="1168929634" linkIndex="4" dir="s" state="o"/>
+ <connection from="160587538#1" to="-160587538#1" fromLane="1" toLane="1" via=":1168929634_5_0" tl="1168929634" linkIndex="5" dir="t" state="o"/>
+ <connection from="160587538#2" to="111863096#2" fromLane="0" toLane="0" via=":1726394723_3_0" dir="r" state="m"/>
+ <connection from="160587538#2" to="160587538#3" fromLane="1" toLane="0" via=":1726394723_4_0" dir="s" state="M"/>
+ <connection from="160587538#2" to="-160587538#2" fromLane="1" toLane="1" via=":1726394723_5_0" dir="t" state="m"/>
+ <connection from="160587538#3" to="-149868584#3" fromLane="0" toLane="0" via=":1726394724_9_0" tl="1726394724" linkIndex="9" dir="r" state="o"/>
+ <connection from="160587538#3" to="160587538#4" fromLane="1" toLane="1" via=":1726394724_10_0" tl="1726394724" linkIndex="10" dir="s" state="o"/>
+ <connection from="160587538#3" to="149868584#4" fromLane="1" toLane="1" via=":1726394724_11_0" tl="1726394724" linkIndex="11" dir="l" state="o"/>
+ <connection from="160587538#3" to="-160587538#3" fromLane="1" toLane="1" via=":1726394724_12_0" tl="1726394724" linkIndex="12" dir="t" state="o"/>
+ <connection from="160587538#4" to="160587538#5" fromLane="0" toLane="1" via=":1726394725_6_0" dir="s" state="m"/>
+ <connection from="160587538#4" to="103851602#3" fromLane="1" toLane="0" via=":1726394725_7_0" dir="l" state="m"/>
+ <connection from="160587538#4" to="-160587538#4" fromLane="1" toLane="1" via=":1726394725_8_0" dir="t" state="m"/>
+ <connection from="160587538#5" to="160587538#6" fromLane="0" toLane="1" via=":1168929558_6_0" tl="1168929558" linkIndex="6" dir="s" state="o"/>
+ <connection from="160587538#5" to="154844486" fromLane="1" toLane="0" via=":1168929558_7_0" tl="1168929558" linkIndex="7" dir="l" state="o"/>
+ <connection from="160587538#5" to="-160587538#5" fromLane="1" toLane="1" via=":1168929558_8_0" tl="1168929558" linkIndex="8" dir="t" state="o"/>
+ <connection from="160587538#6" to="160587538#7" fromLane="0" toLane="0" via=":1913728534_3_0" tl="1913728534" linkIndex="3" dir="s" state="o"/>
+ <connection from="160587538#6" to="160587538#7" fromLane="1" toLane="1" via=":1913728534_4_0" tl="1913728534" linkIndex="4" dir="s" state="o"/>
+ <connection from="160587538#6" to="-160587538#6" fromLane="1" toLane="1" via=":1913728534_5_0" tl="1913728534" linkIndex="5" dir="t" state="o"/>
+ <connection from="160587538#7" to="160587542" fromLane="0" toLane="0" via=":1726394726_9_0" tl="1726394726" linkIndex="9" dir="r" state="o"/>
+ <connection from="160587538#7" to="160587537#0" fromLane="1" toLane="1" via=":1726394726_10_0" tl="1726394726" linkIndex="10" dir="s" state="o"/>
+ <connection from="160587538#7" to="-154844503" fromLane="1" toLane="1" via=":1726394726_11_0" tl="1726394726" linkIndex="11" dir="l" state="o"/>
+ <connection from="160587538#7" to="-160587538#7" fromLane="1" toLane="1" via=":1726394726_12_0" tl="1726394726" linkIndex="12" dir="t" state="o"/>
+ <connection from="160587542" to="154844500#0" fromLane="0" toLane="0" via=":1669480281_7_0" dir="s" state="m"/>
+ <connection from="160587542" to="154844474#0" fromLane="1" toLane="1" via=":1669480281_8_0" dir="l" state="m"/>
+ <connection from="160587542" to="-160587542" fromLane="1" toLane="1" via=":1669480281_9_0" dir="t" state="m"/>
+ <connection from="160587552#0" to="101272424#0" fromLane="0" toLane="0" via=":1168929542_0_0" dir="s" state="M"/>
+ <connection from="160587552#0" to="160587552#1" fromLane="0" toLane="0" via=":1168929542_1_0" dir="s" state="M"/>
+ <connection from="160587552#1" to="154500693#0" fromLane="0" toLane="0" via=":1168929349_0_0" dir="r" state="m"/>
+ <connection from="160587552#1" to="37638426#0" fromLane="0" toLane="0" via=":1168929349_1_0" dir="s" state="m"/>
+ <connection from="166576459" to="-166576466#1" fromLane="0" toLane="0" via=":1780219374_3_0" dir="r" state="="/>
+ <connection from="166576459" to="166576466#2" fromLane="0" toLane="0" via=":1780219374_4_0" dir="l" state="="/>
+ <connection from="166576459" to="-166576459" fromLane="0" toLane="0" via=":1780219374_5_0" dir="t" state="="/>
+ <connection from="166576461#0" to="166576461#1" fromLane="0" toLane="0" via=":1780219366_6_0" dir="s" state="="/>
+ <connection from="166576461#0" to="166576464#0" fromLane="0" toLane="0" via=":1780219366_7_0" dir="l" state="="/>
+ <connection from="166576461#0" to="-166576461#0" fromLane="0" toLane="0" via=":1780219366_8_0" dir="t" state="="/>
+ <connection from="166576461#1" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_0_0" dir="r" state="m"/>
+ <connection from="166576461#1" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_1_0" dir="l" state="m"/>
+ <connection from="166576461#1" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_2_0" dir="t" state="m"/>
+ <connection from="166576462#0" to="42976410#3" fromLane="0" toLane="0" via=":1780219377_0_0" dir="r" state="m"/>
+ <connection from="166576462#0" to="166576462#1" fromLane="0" toLane="0" via=":1780219377_1_0" dir="s" state="m"/>
+ <connection from="166576462#0" to="-166576462#0" fromLane="0" toLane="0" via=":1780219377_2_0" dir="t" state="m"/>
+ <connection from="166576462#1" to="42976405#3" fromLane="0" toLane="0" via=":1780219361_0_0" dir="r" state="m"/>
+ <connection from="166576462#1" to="166576462#2" fromLane="0" toLane="0" via=":1780219361_1_0" dir="s" state="m"/>
+ <connection from="166576462#1" to="-166576462#1" fromLane="0" toLane="0" via=":1780219361_2_0" dir="t" state="m"/>
+ <connection from="166576462#2" to="166576462#3" fromLane="0" toLane="0" via=":1780219359_4_0" dir="s" state="m"/>
+ <connection from="166576462#2" to="133960539#2" fromLane="0" toLane="1" via=":1780219359_5_0" dir="l" state="m"/>
+ <connection from="166576462#2" to="-166576462#2" fromLane="0" toLane="0" via=":1780219359_6_0" dir="t" state="m"/>
+ <connection from="166576462#3" to="37973569#3" fromLane="0" toLane="0" via=":1780219341_0_0" dir="r" state="m"/>
+ <connection from="166576462#3" to="166576462#4" fromLane="0" toLane="0" via=":1780219341_1_0" dir="s" state="m"/>
+ <connection from="166576462#3" to="-166576462#3" fromLane="0" toLane="0" via=":1780219341_2_0" dir="t" state="m"/>
+ <connection from="166576462#4" to="37973572#1" fromLane="0" toLane="0" via=":1780219353_0_0" dir="r" state="m"/>
+ <connection from="166576462#4" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_1_0" dir="s" state="m"/>
+ <connection from="166576462#4" to="-37973572#0" fromLane="0" toLane="1" via=":1780219353_2_0" dir="l" state="m"/>
+ <connection from="166576462#4" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_3_0" dir="t" state="m"/>
+ <connection from="166576462#5" to="166576462#6" fromLane="0" toLane="0" via=":1780219360_0_0" dir="s" state="m"/>
+ <connection from="166576462#5" to="37973568#5" fromLane="0" toLane="0" via=":1780219360_1_0" dir="l" state="m"/>
+ <connection from="166576462#5" to="-166576462#5" fromLane="0" toLane="0" via=":1780219360_2_0" dir="t" state="m"/>
+ <connection from="166576462#6" to="166576462#7" fromLane="0" toLane="0" via=":1780219369_0_0" dir="s" state="="/>
+ <connection from="166576462#6" to="166576468#0" fromLane="0" toLane="0" via=":1780219369_1_0" dir="l" state="="/>
+ <connection from="166576462#6" to="-166576462#6" fromLane="0" toLane="0" via=":1780219369_2_0" dir="t" state="="/>
+ <connection from="166576462#7" to="166576466#0" fromLane="0" toLane="0" via=":1780219335_0_0" dir="r" state="="/>
+ <connection from="166576462#7" to="166576462#8" fromLane="0" toLane="0" via=":1780219335_1_0" dir="s" state="="/>
+ <connection from="166576462#7" to="-166576462#7" fromLane="0" toLane="0" via=":1780219335_2_0" dir="t" state="="/>
+ <connection from="166576462#8" to="-166576463" fromLane="0" toLane="0" via=":1780219348_3_0" dir="r" state="="/>
+ <connection from="166576462#8" to="166576462#9" fromLane="0" toLane="0" via=":1780219348_4_0" dir="s" state="="/>
+ <connection from="166576462#8" to="-166576462#8" fromLane="0" toLane="0" via=":1780219348_5_0" dir="t" state="="/>
+ <connection from="166576462#9" to="-166576464#0" fromLane="0" toLane="0" via=":1780219373_6_0" dir="r" state="="/>
+ <connection from="166576462#9" to="166576464#1" fromLane="0" toLane="0" via=":1780219373_7_0" dir="l" state="="/>
+ <connection from="166576462#9" to="-166576462#9" fromLane="0" toLane="0" via=":1780219373_8_0" dir="t" state="="/>
+ <connection from="166576463" to="166576462#9" fromLane="0" toLane="0" via=":1780219348_0_0" dir="s" state="="/>
+ <connection from="166576463" to="-166576462#8" fromLane="0" toLane="0" via=":1780219348_1_0" dir="l" state="="/>
+ <connection from="166576463" to="-166576463" fromLane="0" toLane="0" via=":1780219348_2_0" dir="t" state="="/>
+ <connection from="166576464#0" to="166576464#1" fromLane="0" toLane="0" via=":1780219373_3_0" dir="s" state="="/>
+ <connection from="166576464#0" to="-166576462#9" fromLane="0" toLane="0" via=":1780219373_4_0" dir="l" state="="/>
+ <connection from="166576464#0" to="-166576464#0" fromLane="0" toLane="0" via=":1780219373_5_0" dir="t" state="="/>
+ <connection from="166576464#1" to="42976406#3" fromLane="0" toLane="0" via=":1780219331_8_0" dir="r" state="m"/>
+ <connection from="166576464#1" to="166576464#2" fromLane="0" toLane="0" via=":1780219331_9_0" dir="s" state="m"/>
+ <connection from="166576464#1" to="-166576464#1" fromLane="0" toLane="0" via=":1780219331_10_0" dir="t" state="m"/>
+ <connection from="166576464#2" to="166576464#3" fromLane="0" toLane="0" via=":1780219342_8_0" dir="s" state="m"/>
+ <connection from="166576464#2" to="154500693#1" fromLane="0" toLane="2" via=":1780219342_9_0" dir="l" state="m"/>
+ <connection from="166576464#2" to="-166576464#2" fromLane="0" toLane="0" via=":1780219342_10_0" dir="t" state="m"/>
+ <connection from="166576464#3" to="166576464#4" fromLane="0" toLane="0" via=":1780219363_6_0" dir="s" state="m"/>
+ <connection from="166576464#3" to="101272424#1" fromLane="0" toLane="0" via=":1780219363_7_0" dir="l" state="m"/>
+ <connection from="166576464#3" to="-166576464#3" fromLane="0" toLane="0" via=":1780219363_8_0" dir="t" state="m"/>
+ <connection from="166576464#4" to="38319550#11" fromLane="0" toLane="0" via=":1780219371_6_0" dir="r" state="M"/>
+ <connection from="166576464#4" to="-38319550#10" fromLane="0" toLane="0" via=":1780219371_7_0" dir="l" state="M"/>
+ <connection from="166576464#4" to="-166576464#4" fromLane="0" toLane="0" via=":1780219371_8_0" dir="t" state="m"/>
+ <connection from="166576466#0" to="166576466#1" fromLane="0" toLane="0" via=":1780219344_0_0" dir="s" state="="/>
+ <connection from="166576466#0" to="166576463" fromLane="0" toLane="0" via=":1780219344_1_0" dir="l" state="="/>
+ <connection from="166576466#0" to="-166576466#0" fromLane="0" toLane="0" via=":1780219344_2_0" dir="t" state="="/>
+ <connection from="166576466#1" to="166576466#2" fromLane="0" toLane="0" via=":1780219374_0_0" dir="s" state="="/>
+ <connection from="166576466#1" to="-166576459" fromLane="0" toLane="0" via=":1780219374_1_0" dir="l" state="="/>
+ <connection from="166576466#1" to="-166576466#1" fromLane="0" toLane="0" via=":1780219374_2_0" dir="t" state="="/>
+ <connection from="166576466#2" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_0_0" dir="r" state="m"/>
+ <connection from="166576466#2" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_1_0" dir="l" state="m"/>
+ <connection from="166576466#2" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_2_0" dir="t" state="m"/>
+ <connection from="166576468#0" to="42976406#2" fromLane="0" toLane="0" via=":1780219343_8_0" dir="r" state="m"/>
+ <connection from="166576468#0" to="166576468#1" fromLane="0" toLane="0" via=":1780219343_9_0" dir="s" state="m"/>
+ <connection from="166576468#0" to="-166576468#0" fromLane="0" toLane="0" via=":1780219343_10_0" dir="t" state="m"/>
+ <connection from="166576468#1" to="166576468#2" fromLane="0" toLane="0" via=":1780219352_8_0" dir="s" state="m"/>
+ <connection from="166576468#1" to="154500693#2" fromLane="0" toLane="2" via=":1780219352_9_0" dir="l" state="m"/>
+ <connection from="166576468#1" to="-166576468#1" fromLane="0" toLane="0" via=":1780219352_10_0" dir="t" state="m"/>
+ <connection from="166576468#2" to="166576468#3" fromLane="0" toLane="0" via=":1780219362_6_0" dir="s" state="m"/>
+ <connection from="166576468#2" to="101272424#3" fromLane="0" toLane="0" via=":1780219362_7_0" dir="l" state="m"/>
+ <connection from="166576468#2" to="-166576468#2" fromLane="0" toLane="0" via=":1780219362_8_0" dir="t" state="m"/>
+ <connection from="166576468#3" to="38319550#9" fromLane="0" toLane="0" via=":1780219332_6_0" dir="r" state="M"/>
+ <connection from="166576468#3" to="-38319550#8" fromLane="0" toLane="0" via=":1780219332_7_0" dir="l" state="M"/>
+ <connection from="166576468#3" to="-166576468#3" fromLane="0" toLane="0" via=":1780219332_8_0" dir="t" state="m"/>
+ <connection from="166602674#0" to="-108733425" fromLane="0" toLane="0" via=":1246731466_2_0" dir="r" state="M"/>
+ <connection from="166602674#0" to="166602674#1" fromLane="0" toLane="0" via=":1246731466_3_0" dir="s" state="M"/>
+ <connection from="166602674#0" to="166602674#1" fromLane="1" toLane="1" via=":1246731466_4_0" dir="s" state="M"/>
+ <connection from="166602674#1" to="-197955309#1" fromLane="0" toLane="0" via=":2081499951_0_0" dir="r" state="M"/>
+ <connection from="166602674#1" to="166602674#2" fromLane="0" toLane="0" via=":2081499951_1_0" dir="s" state="M"/>
+ <connection from="166602674#1" to="166602674#2" fromLane="1" toLane="1" via=":2081499951_2_0" dir="s" state="M"/>
+ <connection from="166602674#1" to="197955309#2" fromLane="1" toLane="0" via=":2081499951_3_0" dir="l" state="M"/>
+ <connection from="166603397#0" to="103851602#4" fromLane="0" toLane="0" via=":951739776_0_0" dir="r" state="M"/>
+ <connection from="166603397#0" to="166603397#1" fromLane="0" toLane="0" via=":951739776_1_0" dir="s" state="M"/>
+ <connection from="166603397#0" to="166603397#1" fromLane="1" toLane="1" via=":951739776_2_0" dir="s" state="M"/>
+ <connection from="166603397#1" to="166603397#2" fromLane="0" toLane="0" via=":951739443_0_0" dir="s" state="M"/>
+ <connection from="166603397#1" to="166603397#2" fromLane="1" toLane="1" via=":951739443_1_0" dir="s" state="M"/>
+ <connection from="166603397#1" to="111863096#1" fromLane="1" toLane="0" via=":951739443_2_0" dir="l" state="M"/>
+ <connection from="166603397#2" to="166602674#0" fromLane="0" toLane="0" via=":1168929382_0_0" dir="s" state="M"/>
+ <connection from="166603397#2" to="166602674#0" fromLane="1" toLane="1" via=":1168929382_1_0" dir="s" state="M"/>
+ <connection from="166603397#2" to="101272431" fromLane="1" toLane="0" via=":1168929382_2_0" dir="l" state="M"/>
+ <connection from="166625256#0" to="166625256#1" fromLane="0" toLane="0" via=":1244292210_0_0" dir="l" state="M"/>
+ <connection from="166625256#0" to="-166625256#0" fromLane="0" toLane="0" via=":1244292210_1_0" dir="t" state="m"/>
+ <connection from="166625256#1" to="166625256#0" fromLane="0" toLane="0" via=":1244292219_0_0" dir="l" state="M"/>
+ <connection from="166625256#1" to="-166625256#1" fromLane="0" toLane="0" via=":1244292219_1_0" dir="t" state="m"/>
+ <connection from="166625259" to="-166625259" fromLane="0" toLane="0" via=":1780623649_0_0" dir="t" state="M"/>
+ <connection from="166728377#0" to="149422199#2" fromLane="0" toLane="0" via=":255227482_20_0" dir="s" state="m"/>
+ <connection from="166728377#0" to="166728377#1" fromLane="0" toLane="0" via=":255227482_21_0" dir="L" state="m"/>
+ <connection from="166728377#0" to="149422210#0" fromLane="0" toLane="0" via=":255227482_22_0" dir="L" state="m"/>
+ <connection from="166728377#0" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_23_0" dir="l" state="m"/>
+ <connection from="166728377#0" to="-166728377#0" fromLane="0" toLane="0" via=":255227482_24_0" dir="t" state="m"/>
+ <connection from="166728377#1" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_10_0" dir="s" state="m"/>
+ <connection from="166728377#1" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_11_0" dir="L" state="m"/>
+ <connection from="166728377#1" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_12_0" dir="l" state="m"/>
+ <connection from="166728377#1" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_13_0" dir="L" state="m"/>
+ <connection from="166728377#1" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_14_0" dir="t" state="m"/>
+ <connection from="166728377#2" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_0_0" dir="r" state="m"/>
+ <connection from="166728377#2" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_1_0" dir="s" state="m"/>
+ <connection from="166728377#2" to="166728377#0" fromLane="0" toLane="0" via=":255227480_2_0" dir="L" state="m"/>
+ <connection from="166728377#2" to="149422199#1" fromLane="0" toLane="0" via=":255227480_3_0" dir="L" state="m"/>
+ <connection from="166728377#2" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_4_0" dir="l" state="m"/>
+ <connection from="166728377#2" to="23566901#1" fromLane="0" toLane="0" via=":255227480_5_0" dir="t" state="m"/>
+ <connection from="170088033" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_2_0" dir="s" state="m"/>
+ <connection from="170088033" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_3_0" dir="l" state="m"/>
+ <connection from="170590352" to="154844484#0" fromLane="0" toLane="0" via=":1168929385_0_0" dir="r" state="M"/>
+ <connection from="170590352" to="154844483#0" fromLane="0" toLane="0" via=":1168929385_1_0" dir="s" state="M"/>
+ <connection from="170590352" to="154844483#0" fromLane="1" toLane="1" via=":1168929385_2_0" dir="s" state="M"/>
+ <connection from="170590354#0" to="23262356#1" fromLane="0" toLane="0" via=":2265767394_6_0" dir="r" state="M"/>
+ <connection from="170590354#0" to="170590354#1" fromLane="0" toLane="0" via=":2265767394_7_0" dir="s" state="M"/>
+ <connection from="170590354#0" to="170590354#1" fromLane="1" toLane="1" via=":2265767394_8_0" dir="s" state="M"/>
+ <connection from="170590354#0" to="-23262356#0" fromLane="1" toLane="0" via=":2265767394_9_0" dir="l" state="M"/>
+ <connection from="170590354#1" to="-149422193#0" fromLane="0" toLane="0" via=":2265767389_6_0" dir="r" state="M"/>
+ <connection from="170590354#1" to="170590354#2" fromLane="0" toLane="0" via=":2265767389_7_0" dir="s" state="M"/>
+ <connection from="170590354#1" to="170590354#2" fromLane="1" toLane="1" via=":2265767389_8_0" dir="s" state="M"/>
+ <connection from="170590354#1" to="149422193#1" fromLane="1" toLane="0" via=":2265767389_9_0" dir="l" state="M"/>
+ <connection from="170594822#0" to="24573947#1" fromLane="0" toLane="0" via=":2265767392_3_0" dir="r" state="M"/>
+ <connection from="170594822#0" to="170594822#1" fromLane="0" toLane="0" via=":2265767392_4_0" dir="s" state="M"/>
+ <connection from="170594822#0" to="170594822#1" fromLane="1" toLane="1" via=":2265767392_5_0" dir="s" state="M"/>
+ <connection from="170594822#0" to="-24573947#0" fromLane="1" toLane="0" via=":2265767392_6_0" dir="l" state="M"/>
+ <connection from="170594822#1" to="37772597#1" fromLane="0" toLane="0" via=":2265767395_3_0" dir="r" state="M"/>
+ <connection from="170594822#1" to="170594822#2" fromLane="0" toLane="0" via=":2265767395_4_0" dir="s" state="M"/>
+ <connection from="170594822#1" to="170594822#2" fromLane="1" toLane="1" via=":2265767395_5_0" dir="s" state="M"/>
+ <connection from="170594822#1" to="-37772597#0" fromLane="1" toLane="0" via=":2265767395_6_0" dir="l" state="M"/>
+ <connection from="170594822#2" to="108733424" fromLane="0" toLane="0" via=":1246731470_0_0" dir="s" state="M"/>
+ <connection from="170594822#2" to="170594822#3" fromLane="0" toLane="0" via=":1246731470_1_0" dir="s" state="m"/>
+ <connection from="170594822#2" to="170594822#3" fromLane="1" toLane="1" via=":1246731470_2_0" dir="s" state="M"/>
+ <connection from="170594822#3" to="154844462" fromLane="0" toLane="0" via=":1168929324_0_0" dir="r" state="M"/>
+ <connection from="170594822#3" to="103851602#0" fromLane="1" toLane="0" via=":1168929324_1_0" dir="s" state="M"/>
+ <connection from="172498367" to="81523343" fromLane="0" toLane="0" via=":428097664_1_0" dir="l" state="m"/>
+ <connection from="172498380#0" to="81394162#0" fromLane="0" toLane="0" via=":452446340_0_0" dir="r" state="M"/>
+ <connection from="172498380#0" to="81394162#0" fromLane="0" toLane="1" via=":452446340_1_0" dir="r" state="M"/>
+ <connection from="172498380#0" to="172498380#1" fromLane="0" toLane="0" via=":452446340_2_0" dir="s" state="M"/>
+ <connection from="172498380#1" to="172498380#2" fromLane="0" toLane="0" via=":452446345_1_0" dir="s" state="m"/>
+ <connection from="172498380#2" to="81523332#0" fromLane="0" toLane="0" via=":435668516_2_0" dir="r" state="m"/>
+ <connection from="172498380#2" to="37449253#5" fromLane="0" toLane="0" via=":435668516_3_0" dir="s" state="m"/>
+ <connection from="172498387#0" to="58770725#0" fromLane="0" toLane="0" via=":435668521_0_0" dir="r" state="M"/>
+ <connection from="172498387#0" to="172498387#1" fromLane="0" toLane="0" via=":435668521_1_0" dir="s" state="M"/>
+ <connection from="172498387#1" to="37771900#1" fromLane="0" toLane="0" via=":443089060_2_0" tl="443089060" linkIndex="2" dir="r" state="o"/>
+ <connection from="172498387#1" to="172498387#2" fromLane="0" toLane="0" via=":443089060_3_0" tl="443089060" linkIndex="3" dir="s" state="o"/>
+ <connection from="172498387#2" to="-160587537#1" fromLane="0" toLane="0" via=":1726394728_8_0" dir="r" state="m"/>
+ <connection from="172498387#2" to="172498387#3" fromLane="0" toLane="0" via=":1726394728_9_0" dir="s" state="m"/>
+ <connection from="172498387#2" to="160587537#2" fromLane="0" toLane="1" via=":1726394728_10_0" dir="l" state="m"/>
+ <connection from="172498387#3" to="-81096822#0" fromLane="0" toLane="0" via=":1669480292_6_0" dir="r" state="M"/>
+ <connection from="172498387#3" to="172498387#4" fromLane="0" toLane="0" via=":1669480292_7_0" dir="s" state="M"/>
+ <connection from="172498387#3" to="81096822#1" fromLane="0" toLane="0" via=":1669480292_8_0" dir="l" state="M"/>
+ <connection from="172498387#4" to="172498387#5" fromLane="0" toLane="0" via=":441266884_2_0" tl="441266884" linkIndex="2" dir="s" state="o"/>
+ <connection from="172498387#4" to="101272435#7" fromLane="0" toLane="0" via=":441266884_3_0" tl="441266884" linkIndex="3" dir="l" state="o"/>
+ <connection from="172498388" to="144874010#0" fromLane="0" toLane="0" via=":950094380_2_0" dir="s" state="M"/>
+ <connection from="172498388" to="144874010#0" fromLane="1" toLane="1" via=":950094380_3_0" dir="s" state="M"/>
+ <connection from="172498388" to="144874012#0" fromLane="1" toLane="0" via=":950094380_4_0" dir="l" state="M"/>
+ <connection from="179692877#0" to="179692877#1" fromLane="0" toLane="0" via=":1168929398_2_0" tl="1168929398" linkIndex="2" dir="s" state="o"/>
+ <connection from="179692877#0" to="-179692877#0" fromLane="0" toLane="0" via=":1168929398_3_0" tl="1168929398" linkIndex="3" dir="t" state="o"/>
+ <connection from="179692877#1" to="37638426#1" fromLane="0" toLane="0" via=":441236049_8_0" dir="r" state="m"/>
+ <connection from="179692877#1" to="42976406#4" fromLane="0" toLane="0" via=":441236049_9_0" dir="s" state="m"/>
+ <connection from="179692877#1" to="-179692877#1" fromLane="0" toLane="0" via=":441236049_10_0" dir="t" state="m"/>
+ <connection from="179917801" to="-106367427#1" fromLane="0" toLane="0" via=":1903640411_0_0" dir="s" state="M"/>
+ <connection from="179917803#0" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_6_0" dir="r" state="M"/>
+ <connection from="179917803#0" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_7_0" dir="s" state="M"/>
+ <connection from="179917803#0" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_8_0" dir="t" state="m"/>
+ <connection from="179917803#1" to="37973571#1" fromLane="0" toLane="0" via=":1224074533_0_0" dir="s" state="M"/>
+ <connection from="179917803#1" to="-179917803#1" fromLane="0" toLane="0" via=":1224074533_1_0" dir="t" state="m"/>
+ <connection from="190048063" to="139118806" fromLane="0" toLane="0" via=":450564004_0_0" dir="l" state="m"/>
+ <connection from="190048065" to="129780019#0" fromLane="0" toLane="0" via=":450564005_0_0" dir="s" state="M"/>
+ <connection from="190048065" to="-190048065" fromLane="0" toLane="0" via=":450564005_1_0" dir="t" state="m"/>
+ <connection from="191056427#0" to="191056427#1" fromLane="0" toLane="0" via=":2016414184_4_0" dir="s" state="="/>
+ <connection from="191056427#0" to="-191056427#0" fromLane="0" toLane="0" via=":2016414184_5_0" dir="t" state="="/>
+ <connection from="191056427#1" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_3_0" dir="s" state="M"/>
+ <connection from="191056427#1" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_4_0" dir="l" state="m"/>
+ <connection from="191056427#1" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_5_0" dir="t" state="m"/>
+ <connection from="191056428" to="-191056427#0" fromLane="0" toLane="0" via=":2016414184_2_0" dir="s" state="="/>
+ <connection from="191056428" to="191056427#1" fromLane="0" toLane="0" via=":2016414184_3_0" dir="r" state="="/>
+ <connection from="191176261" to="191176262" fromLane="0" toLane="0" via=":2017759586_0_0" dir="r" state="M"/>
+ <connection from="191176261" to="-191176261" fromLane="0" toLane="0" via=":2017759586_1_0" dir="t" state="m"/>
+ <connection from="191176262" to="-191176262" fromLane="0" toLane="0" via=":1474873139_0_0" dir="t" state="M"/>
+ <connection from="191176263" to="191176267" fromLane="0" toLane="0" via=":2017759596_2_0" dir="s" state="M"/>
+ <connection from="191176263" to="-191176263" fromLane="0" toLane="0" via=":2017759596_3_0" dir="t" state="m"/>
+ <connection from="191176264" to="191176261" fromLane="0" toLane="0" via=":2017759592_0_0" dir="s" state="M"/>
+ <connection from="191176264" to="-191176264" fromLane="0" toLane="0" via=":2017759592_1_0" dir="t" state="m"/>
+ <connection from="191176265" to="191176263" fromLane="0" toLane="0" via=":2017759594_4_0" dir="r" state="="/>
+ <connection from="191176265" to="191176264" fromLane="0" toLane="0" via=":2017759594_5_0" dir="s" state="="/>
+ <connection from="191176265" to="-191176266" fromLane="0" toLane="0" via=":2017759594_6_0" dir="s" state="="/>
+ <connection from="191176265" to="-191176265" fromLane="0" toLane="0" via=":2017759594_7_0" dir="t" state="="/>
+ <connection from="191176266" to="-191176265" fromLane="0" toLane="0" via=":2017759594_8_0" dir="s" state="="/>
+ <connection from="191176266" to="191176263" fromLane="0" toLane="0" via=":2017759594_9_0" dir="s" state="="/>
+ <connection from="191176266" to="191176264" fromLane="0" toLane="0" via=":2017759594_10_0" dir="l" state="="/>
+ <connection from="191176266" to="-191176266" fromLane="0" toLane="0" via=":2017759594_11_0" dir="t" state="="/>
+ <connection from="191176267" to="-191176267" fromLane="0" toLane="0" via=":2017759615_0_0" dir="t" state="M"/>
+ <connection from="191176268" to="191176266" fromLane="0" toLane="0" via=":1474873133_2_0" dir="s" state="M"/>
+ <connection from="191176268" to="-191176268" fromLane="0" toLane="0" via=":1474873133_3_0" dir="t" state="m"/>
+ <connection from="197781817" to="-122394841#3" fromLane="0" toLane="0" via=":2079750190_0_0" dir="r" state="="/>
+ <connection from="197781817" to="197794762" fromLane="0" toLane="0" via=":2079750190_1_0" dir="l" state="="/>
+ <connection from="197781817" to="-197781817" fromLane="0" toLane="0" via=":2079750190_2_0" dir="t" state="="/>
+ <connection from="197794762" to="-197794762" fromLane="0" toLane="0" via=":1431113444_0_0" dir="t" state="M"/>
+ <connection from="197955309#0" to="151164683" fromLane="0" toLane="0" via=":1639892546_6_0" dir="r" state="="/>
+ <connection from="197955309#0" to="197955309#1" fromLane="0" toLane="0" via=":1639892546_7_0" dir="s" state="="/>
+ <connection from="197955309#0" to="-197955309#0" fromLane="0" toLane="0" via=":1639892546_8_0" dir="t" state="="/>
+ <connection from="197955309#1" to="166602674#2" fromLane="0" toLane="0" via=":2081499951_7_0" dir="r" state="m"/>
+ <connection from="197955309#1" to="197955309#2" fromLane="0" toLane="0" via=":2081499951_8_0" dir="s" state="m"/>
+ <connection from="197955309#1" to="-197955309#1" fromLane="0" toLane="0" via=":2081499951_9_0" dir="t" state="m"/>
+ <connection from="197955309#2" to="-160587538#0" fromLane="0" toLane="0" via=":2081499950_14_0" dir="r" state="m"/>
+ <connection from="197955309#2" to="197955309#3" fromLane="0" toLane="0" via=":2081499950_15_0" dir="s" state="m"/>
+ <connection from="197955309#2" to="160587538#1" fromLane="0" toLane="1" via=":2081499950_16_0" dir="l" state="m"/>
+ <connection from="197955309#2" to="-197955309#2" fromLane="0" toLane="0" via=":2081499950_17_0" dir="t" state="m"/>
+ <connection from="197955309#3" to="197955309#4" fromLane="0" toLane="0" via=":2081499949_7_0" dir="s" state="m"/>
+ <connection from="197955309#3" to="81124943#1" fromLane="0" toLane="1" via=":2081499949_8_0" dir="l" state="m"/>
+ <connection from="197955309#3" to="-197955309#3" fromLane="0" toLane="0" via=":2081499949_9_0" dir="t" state="m"/>
+ <connection from="197955309#4" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_12_0" dir="r" state="M"/>
+ <connection from="197955309#4" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_13_0" dir="s" state="M"/>
+ <connection from="197955309#4" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_14_0" dir="l" state="m"/>
+ <connection from="197955309#4" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_15_0" dir="t" state="m"/>
+ <connection from="197955309#5" to="37640550#5" fromLane="0" toLane="0" via=":2081499947_2_0" dir="l" state="m"/>
+ <connection from="197955309#5" to="-197955309#5" fromLane="0" toLane="0" via=":2081499947_3_0" dir="t" state="m"/>
+ <connection from="23066443#0" to="23066443#1" fromLane="0" toLane="0" via=":443089071_2_0" dir="s" state="m"/>
+ <connection from="23066443#0" to="58770723#1" fromLane="0" toLane="0" via=":443089071_3_0" dir="l" state="m"/>
+ <connection from="23066443#1" to="151167658#2" fromLane="0" toLane="0" via=":438042376_0_0" dir="r" state="m"/>
+ <connection from="23066443#1" to="23066443#2" fromLane="0" toLane="0" via=":438042376_1_0" dir="s" state="m"/>
+ <connection from="23066443#2" to="23066443#3" fromLane="0" toLane="0" via=":438042372_2_0" dir="s" state="m"/>
+ <connection from="23066443#2" to="44738605#1" fromLane="0" toLane="0" via=":438042372_3_0" dir="l" state="m"/>
+ <connection from="23066443#3" to="38319548#1" fromLane="0" toLane="0" via=":452425491_3_0" dir="r" state="M"/>
+ <connection from="23066443#3" to="23066443#4" fromLane="0" toLane="0" via=":452425491_4_0" dir="s" state="M"/>
+ <connection from="23066443#3" to="-38319548#0" fromLane="0" toLane="0" via=":452425491_5_0" dir="l" state="M"/>
+ <connection from="23066443#4" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_3_0" dir="r" state="m"/>
+ <connection from="23066443#4" to="23066443#5" fromLane="0" toLane="0" via=":733663121_4_0" dir="s" state="m"/>
+ <connection from="23066443#4" to="59159260#2" fromLane="0" toLane="0" via=":733663121_5_0" dir="l" state="m"/>
+ <connection from="23066443#5" to="23066446#2" fromLane="0" toLane="0" via=":248913131_3_0" dir="r" state="m"/>
+ <connection from="23066443#5" to="23066443#6" fromLane="0" toLane="0" via=":248913131_4_0" dir="s" state="m"/>
+ <connection from="23066443#5" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_5_0" dir="l" state="m"/>
+ <connection from="23066443#6" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_3_0" dir="r" state="m"/>
+ <connection from="23066443#6" to="23066443#7" fromLane="0" toLane="0" via=":248913144_4_0" dir="s" state="m"/>
+ <connection from="23066443#6" to="81096844#2" fromLane="0" toLane="0" via=":248913144_5_0" dir="l" state="m"/>
+ <connection from="23066443#7" to="172498387#0" fromLane="0" toLane="0" via=":435668513_0_0" dir="r" state="m"/>
+ <connection from="23066443#7" to="129780026#0" fromLane="0" toLane="0" via=":435668513_1_0" dir="s" state="m"/>
+ <connection from="23066446#0" to="38319546#7" fromLane="0" toLane="0" via=":452425488_12_0" dir="r" state="M"/>
+ <connection from="23066446#0" to="23066446#1" fromLane="0" toLane="0" via=":452425488_13_0" dir="s" state="M"/>
+ <connection from="23066446#0" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_14_0" dir="l" state="m"/>
+ <connection from="23066446#0" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_15_0" dir="t" state="m"/>
+ <connection from="23066446#1" to="23066446#2" fromLane="0" toLane="0" via=":248913131_6_0" dir="s" state="M"/>
+ <connection from="23066446#1" to="23066443#6" fromLane="0" toLane="0" via=":248913131_7_0" dir="l" state="m"/>
+ <connection from="23066446#1" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_8_0" dir="t" state="m"/>
+ <connection from="23066446#2" to="58770725#2" fromLane="0" toLane="0" via=":248913133_6_0" dir="r" state="M"/>
+ <connection from="23066446#2" to="23066446#3" fromLane="0" toLane="0" via=":248913133_7_0" dir="s" state="M"/>
+ <connection from="23066446#2" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_8_0" dir="t" state="m"/>
+ <connection from="23066446#3" to="37771900#3" fromLane="0" toLane="0" via=":443089062_2_0" dir="r" state="m"/>
+ <connection from="23066446#3" to="-23066446#3" fromLane="0" toLane="0" via=":443089062_3_0" dir="t" state="m"/>
+ <connection from="23066462#0" to="-83051421#2" fromLane="0" toLane="0" via=":250689186_6_0" dir="r" state="="/>
+ <connection from="23066462#0" to="23066462#1" fromLane="0" toLane="0" via=":250689186_7_0" dir="s" state="="/>
+ <connection from="23066462#0" to="-23066462#0" fromLane="0" toLane="0" via=":250689186_8_0" dir="t" state="="/>
+ <connection from="23066462#1" to="-83051455" fromLane="0" toLane="0" via=":441266870_6_0" dir="r" state="="/>
+ <connection from="23066462#1" to="23066462#2" fromLane="0" toLane="0" via=":441266870_7_0" dir="s" state="="/>
+ <connection from="23066462#1" to="-23066462#1" fromLane="0" toLane="0" via=":441266870_8_0" dir="t" state="="/>
+ <connection from="23066462#2" to="-83051426" fromLane="0" toLane="0" via=":250689131_6_0" dir="r" state="="/>
+ <connection from="23066462#2" to="23066462#3" fromLane="0" toLane="0" via=":250689131_7_0" dir="s" state="="/>
+ <connection from="23066462#2" to="-23066462#2" fromLane="0" toLane="0" via=":250689131_8_0" dir="t" state="="/>
+ <connection from="23066462#3" to="-83051480#1" fromLane="0" toLane="0" via=":250689201_3_0" dir="r" state="="/>
+ <connection from="23066462#3" to="23066462#4" fromLane="0" toLane="0" via=":250689201_4_0" dir="s" state="="/>
+ <connection from="23066462#3" to="-23066462#3" fromLane="0" toLane="0" via=":250689201_5_0" dir="t" state="="/>
+ <connection from="23066462#4" to="23066462#0" fromLane="0" toLane="0" via=":248913200_0_0" dir="l" state="M"/>
+ <connection from="23066462#4" to="-23066462#4" fromLane="0" toLane="0" via=":248913200_1_0" dir="t" state="m"/>
+ <connection from="23182340#0" to="23182340#1" fromLane="0" toLane="0" via=":250683362_0_0" dir="s" state="m"/>
+ <connection from="23182340#0" to="23182387#3" fromLane="0" toLane="0" via=":250683362_1_0" dir="l" state="m"/>
+ <connection from="23182340#1" to="141190466#0" fromLane="0" toLane="0" via=":250685816_0_0" dir="r" state="m"/>
+ <connection from="23182340#1" to="-23182484#2" fromLane="0" toLane="0" via=":250685816_1_0" dir="l" state="m"/>
+ <connection from="23182358#0" to="23182387#1" fromLane="0" toLane="0" via=":250683336_3_0" dir="r" state="M"/>
+ <connection from="23182358#0" to="23182358#1" fromLane="0" toLane="0" via=":250683336_4_0" dir="s" state="M"/>
+ <connection from="23182358#0" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_5_0" dir="t" state="m"/>
+ <connection from="23182358#1" to="23182358#2" fromLane="0" toLane="0" via=":250684983_2_0" tl="250684983" linkIndex="2" dir="s" state="o"/>
+ <connection from="23182358#1" to="-23182358#1" fromLane="0" toLane="0" via=":250684983_3_0" tl="250684983" linkIndex="3" dir="t" state="o"/>
+ <connection from="23182358#2" to="-23182358#2" fromLane="0" toLane="0" via=":2004733211_0_0" dir="t" state="M"/>
+ <connection from="23182387#0" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_6_0" dir="r" state="m"/>
+ <connection from="23182387#0" to="23182387#1" fromLane="0" toLane="0" via=":250683336_7_0" dir="s" state="m"/>
+ <connection from="23182387#0" to="23182358#1" fromLane="0" toLane="0" via=":250683336_8_0" dir="l" state="m"/>
+ <connection from="23182387#1" to="23182387#2" fromLane="0" toLane="0" via=":250683402_1_0" dir="s" state="m"/>
+ <connection from="23182387#2" to="23182340#1" fromLane="0" toLane="0" via=":250683362_2_0" dir="r" state="M"/>
+ <connection from="23182387#2" to="23182387#3" fromLane="0" toLane="0" via=":250683362_3_0" dir="s" state="M"/>
+ <connection from="23182387#3" to="122394833#1" fromLane="0" toLane="0" via=":1367855932_6_0" dir="r" state="M"/>
+ <connection from="23182387#3" to="23182387#4" fromLane="0" toLane="0" via=":1367855932_7_0" dir="s" state="M"/>
+ <connection from="23182387#3" to="-122394833#0" fromLane="0" toLane="0" via=":1367855932_8_0" dir="l" state="M"/>
+ <connection from="23182387#4" to="130443635#1" fromLane="0" toLane="0" via=":250683337_1_0" dir="r" state="M"/>
+ <connection from="23182391" to="23182387#2" fromLane="0" toLane="0" via=":250683402_0_0" dir="r" state="M"/>
+ <connection from="23182484#0" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_8_0" dir="r" state="M"/>
+ <connection from="23182484#0" to="23182484#1" fromLane="0" toLane="0" via=":250685829_9_0" dir="s" state="M"/>
+ <connection from="23182484#0" to="190048063" fromLane="0" toLane="0" via=":250685829_10_0" dir="l" state="m"/>
+ <connection from="23182484#0" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_11_0" dir="t" state="m"/>
+ <connection from="23182484#1" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_3_0" dir="r" state="M"/>
+ <connection from="23182484#1" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_4_0" dir="s" state="M"/>
+ <connection from="23182484#1" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_5_0" dir="t" state="m"/>
+ <connection from="23182484#2" to="141190466#0" fromLane="0" toLane="0" via=":250685816_2_0" dir="s" state="M"/>
+ <connection from="23182484#2" to="-23182484#2" fromLane="0" toLane="0" via=":250685816_3_0" dir="t" state="m"/>
+ <connection from="23182517#0" to="23182517#1" fromLane="0" toLane="0" via=":450564003_0_0" tl="450564003" linkIndex="0" dir="s" state="o"/>
+ <connection from="23182517#0" to="38230510#2" fromLane="0" toLane="0" via=":450564003_1_0" tl="450564003" linkIndex="1" dir="l" state="o"/>
+ <connection from="23182517#0" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_2_0" tl="450564003" linkIndex="2" dir="t" state="o"/>
+ <connection from="23182517#1" to="23182517#2" fromLane="0" toLane="0" via=":975934878_0_0" dir="s" state="M"/>
+ <connection from="23182517#1" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_1_0" dir="t" state="m"/>
+ <connection from="23182517#2" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_0_0" dir="s" state="M"/>
+ <connection from="23182517#2" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_1_0" dir="l" state="m"/>
+ <connection from="23182517#2" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_2_0" dir="t" state="m"/>
+ <connection from="23182517#3" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_0_0" dir="s" state="M"/>
+ <connection from="23182517#3" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_1_0" dir="l" state="m"/>
+ <connection from="23182517#3" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_2_0" dir="t" state="m"/>
+ <connection from="23182517#4" to="139118804#3" fromLane="0" toLane="0" via=":252418937_0_0" tl="252418937" linkIndex="0" dir="r" state="o"/>
+ <connection from="23182517#4" to="23315111#0" fromLane="0" toLane="0" via=":252418937_1_0" tl="252418937" linkIndex="1" dir="s" state="o"/>
+ <connection from="23182517#4" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_2_0" tl="252418937" linkIndex="2" dir="t" state="o"/>
+ <connection from="23182589#0" to="24319558" fromLane="0" toLane="0" via=":250688540_0_0" dir="r" state="M"/>
+ <connection from="23182589#0" to="23182589#1" fromLane="0" toLane="0" via=":250688540_1_0" dir="s" state="M"/>
+ <connection from="23182589#1" to="24319547" fromLane="0" toLane="0" via=":250688445_0_0" dir="r" state="M"/>
+ <connection from="23182640" to="101272435#3" fromLane="0" toLane="0" via=":441266879_0_0" dir="r" state="M"/>
+ <connection from="23262356#0" to="23262356#1" fromLane="0" toLane="0" via=":2265767394_0_0" dir="s" state="m"/>
+ <connection from="23262356#0" to="170590354#1" fromLane="0" toLane="1" via=":2265767394_1_0" dir="l" state="m"/>
+ <connection from="23262356#0" to="-23262356#0" fromLane="0" toLane="0" via=":2265767394_2_0" dir="t" state="m"/>
+ <connection from="23262356#1" to="23262356#2" fromLane="0" toLane="0" via=":443101920_0_0" dir="s" state="M"/>
+ <connection from="23262356#1" to="101272426#1" fromLane="0" toLane="0" via=":443101920_1_0" dir="l" state="m"/>
+ <connection from="23262356#1" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_2_0" dir="t" state="m"/>
+ <connection from="23262356#2" to="23262356#3" fromLane="0" toLane="0" via=":255227475_0_0" dir="s" state="M"/>
+ <connection from="23262356#2" to="149422199#0" fromLane="0" toLane="0" via=":255227475_1_0" dir="l" state="m"/>
+ <connection from="23262356#2" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_2_0" dir="t" state="m"/>
+ <connection from="23262356#3" to="23566902" fromLane="0" toLane="0" via=":255227472_0_0" dir="r" state="M"/>
+ <connection from="23262356#3" to="-23262356#3" fromLane="0" toLane="0" via=":255227472_1_0" dir="t" state="M"/>
+ <connection from="23315111#0" to="144874010#2" fromLane="0" toLane="0" via=":950094412_0_0" dir="r" state="m"/>
+ <connection from="23315111#0" to="23315111#1" fromLane="0" toLane="0" via=":950094412_1_0" dir="s" state="m"/>
+ <connection from="23315111#0" to="-23315111#0" fromLane="0" toLane="0" via=":950094412_2_0" dir="t" state="m"/>
+ <connection from="23315111#1" to="129780022#5" fromLane="0" toLane="0" via=":427996791_0_0" tl="427996791" linkIndex="0" dir="r" state="o"/>
+ <connection from="23315111#1" to="23315111#2" fromLane="0" toLane="0" via=":427996791_1_0" tl="427996791" linkIndex="1" dir="s" state="o"/>
+ <connection from="23315111#1" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_2_0" tl="427996791" linkIndex="2" dir="l" state="o"/>
+ <connection from="23315111#1" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_3_0" tl="427996791" linkIndex="3" dir="t" state="o"/>
+ <connection from="23315111#2" to="-81523330#1" fromLane="0" toLane="0" via=":950094425_0_0" dir="r" state="m"/>
+ <connection from="23315111#2" to="23315111#3" fromLane="0" toLane="0" via=":950094425_1_0" dir="s" state="m"/>
+ <connection from="23315111#2" to="81523330#2" fromLane="0" toLane="1" via=":950094425_2_0" dir="l" state="m"/>
+ <connection from="23315111#2" to="-23315111#2" fromLane="0" toLane="0" via=":950094425_3_0" dir="t" state="m"/>
+ <connection from="23315111#3" to="108329426#1" fromLane="0" toLane="0" via=":427996792_0_0" tl="427996792" linkIndex="0" dir="s" state="o"/>
+ <connection from="23315111#3" to="44641744#1" fromLane="0" toLane="0" via=":427996792_1_0" tl="427996792" linkIndex="1" dir="L" state="o"/>
+ <connection from="23315111#3" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_2_0" tl="427996792" linkIndex="2" dir="L" state="o"/>
+ <connection from="23315111#3" to="108329427#0" fromLane="0" toLane="0" via=":427996792_3_0" tl="427996792" linkIndex="3" dir="l" state="o"/>
+ <connection from="23315111#3" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_4_0" tl="427996792" linkIndex="4" dir="t" state="o"/>
+ <connection from="23566901#0" to="166728377#0" fromLane="0" toLane="0" via=":255227480_24_0" dir="r" state="m"/>
+ <connection from="23566901#0" to="149422199#1" fromLane="0" toLane="0" via=":255227480_25_0" dir="R" state="m"/>
+ <connection from="23566901#0" to="23566901#1" fromLane="0" toLane="0" via=":255227480_26_0" dir="s" state="m"/>
+ <connection from="23566901#0" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_27_0" dir="s" state="m"/>
+ <connection from="23566901#0" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_28_0" dir="l" state="m"/>
+ <connection from="23566901#0" to="-23566901#0" fromLane="0" toLane="0" via=":255227480_29_0" dir="t" state="m"/>
+ <connection from="23566901#1" to="-166728377#1" fromLane="0" toLane="0" via=":1624060630_20_0" dir="R" state="m"/>
+ <connection from="23566901#1" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_21_0" dir="R" state="m"/>
+ <connection from="23566901#1" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_22_0" dir="s" state="m"/>
+ <connection from="23566901#1" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_23_0" dir="l" state="m"/>
+ <connection from="23566901#1" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_24_0" dir="t" state="m"/>
+ <connection from="23566902" to="37640550#3" fromLane="0" toLane="0" via=":566579339_0_0" dir="r" state="M"/>
+ <connection from="24319547" to="58770836" fromLane="0" toLane="0" via=":443089065_1_0" dir="r" state="M"/>
+ <connection from="24319558" to="58770833" fromLane="0" toLane="0" via=":443089066_1_0" dir="r" state="M"/>
+ <connection from="24573897#0" to="149419435#3" fromLane="0" toLane="0" via=":1624003168_0_0" dir="r" state="M"/>
+ <connection from="24573897#0" to="24573897#1" fromLane="0" toLane="0" via=":1624003168_1_0" dir="s" state="M"/>
+ <connection from="24573897#1" to="8272412#3" fromLane="0" toLane="0" via=":538810726_0_0" dir="r" state="M"/>
+ <connection from="24573897#1" to="24573897#2" fromLane="0" toLane="0" via=":538810726_1_0" dir="s" state="M"/>
+ <connection from="24573897#2" to="24573897#3" fromLane="0" toLane="0" via=":1624020484_0_0" dir="s" state="M"/>
+ <connection from="24573897#2" to="149420179" fromLane="0" toLane="0" via=":1624020484_1_0" dir="l" state="M"/>
+ <connection from="24573897#3" to="24573897#4" fromLane="0" toLane="0" via=":267169554_2_0" dir="s" state="m"/>
+ <connection from="24573897#3" to="24573905#1" fromLane="0" toLane="0" via=":267169554_3_0" dir="l" state="m"/>
+ <connection from="24573897#4" to="37772596#3" fromLane="0" toLane="0" via=":443101915_0_0" dir="r" state="M"/>
+ <connection from="24573905#0" to="24573897#4" fromLane="0" toLane="0" via=":267169554_0_0" dir="r" state="M"/>
+ <connection from="24573905#0" to="24573905#1" fromLane="0" toLane="0" via=":267169554_1_0" dir="s" state="M"/>
+ <connection from="24573905#1" to="24573905#2" fromLane="0" toLane="0" via=":267169592_2_0" dir="s" state="m"/>
+ <connection from="24573905#1" to="24573930#1" fromLane="0" toLane="0" via=":267169592_3_0" dir="l" state="m"/>
+ <connection from="24573905#2" to="-38319550#9" fromLane="0" toLane="0" via=":719463795_3_0" dir="r" state="M"/>
+ <connection from="24573905#2" to="24573905#3" fromLane="0" toLane="0" via=":719463795_4_0" dir="s" state="M"/>
+ <connection from="24573905#2" to="38319550#10" fromLane="0" toLane="0" via=":719463795_5_0" dir="l" state="M"/>
+ <connection from="24573905#3" to="101272424#2" fromLane="0" toLane="0" via=":267169591_0_0" dir="r" state="M"/>
+ <connection from="24573930#0" to="24573905#2" fromLane="0" toLane="0" via=":267169592_0_0" dir="r" state="M"/>
+ <connection from="24573930#0" to="24573930#1" fromLane="0" toLane="0" via=":267169592_1_0" dir="s" state="M"/>
+ <connection from="24573930#1" to="24573930#2" fromLane="0" toLane="0" via=":1624020482_0_0" dir="s" state="M"/>
+ <connection from="24573930#2" to="24573930#3" fromLane="0" toLane="0" via=":538810724_0_0" dir="s" state="m"/>
+ <connection from="24573930#2" to="8272412#2" fromLane="0" toLane="0" via=":538810724_1_0" dir="l" state="m"/>
+ <connection from="24573930#3" to="24573930#4" fromLane="0" toLane="0" via=":1624003193_0_0" dir="s" state="m"/>
+ <connection from="24573930#3" to="149419435#2" fromLane="0" toLane="0" via=":1624003193_1_0" dir="l" state="m"/>
+ <connection from="24573937" to="83051420" fromLane="0" toLane="0" via=":966193808_12_0" dir="r" state="M"/>
+ <connection from="24573937" to="83051436#0" fromLane="0" toLane="0" via=":966193808_13_0" dir="s" state="m"/>
+ <connection from="24573937" to="-83051417" fromLane="0" toLane="0" via=":966193808_14_0" dir="l" state="m"/>
+ <connection from="24573937" to="-24573937" fromLane="0" toLane="0" via=":966193808_15_0" dir="t" state="m"/>
+ <connection from="24573939#0" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_8_0" dir="r" state="="/>
+ <connection from="24573939#0" to="24573939#1" fromLane="0" toLane="0" via=":267169686_9_0" dir="s" state="="/>
+ <connection from="24573939#0" to="83051421#1" fromLane="0" toLane="0" via=":267169686_10_0" dir="l" state="="/>
+ <connection from="24573939#0" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_11_0" dir="t" state="="/>
+ <connection from="24573939#1" to="-37640549#1" fromLane="0" toLane="0" via=":267169715_6_0" dir="r" state="M"/>
+ <connection from="24573939#1" to="24573939#2" fromLane="0" toLane="0" via=":267169715_7_0" dir="s" state="m"/>
+ <connection from="24573939#1" to="-24573939#1" fromLane="0" toLane="0" via=":267169715_8_0" dir="t" state="m"/>
+ <connection from="24573939#2" to="83051442#2" fromLane="0" toLane="0" via=":441266874_3_0" dir="r" state="="/>
+ <connection from="24573939#2" to="-83051442#1" fromLane="0" toLane="0" via=":441266874_4_0" dir="l" state="="/>
+ <connection from="24573939#2" to="-24573939#2" fromLane="0" toLane="0" via=":441266874_5_0" dir="t" state="="/>
+ <connection from="24573947#0" to="24573947#1" fromLane="0" toLane="0" via=":2265767392_7_0" dir="s" state="m"/>
+ <connection from="24573947#0" to="170594822#1" fromLane="0" toLane="1" via=":2265767392_8_0" dir="l" state="m"/>
+ <connection from="24573947#0" to="-24573947#0" fromLane="0" toLane="0" via=":2265767392_9_0" dir="t" state="m"/>
+ <connection from="24573947#1" to="24573947#2" fromLane="0" toLane="0" via=":443101905_6_0" dir="s" state="M"/>
+ <connection from="24573947#1" to="37772595#1" fromLane="0" toLane="0" via=":443101905_7_0" dir="l" state="m"/>
+ <connection from="24573947#1" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_8_0" dir="t" state="m"/>
+ <connection from="24573947#2" to="24573947#3" fromLane="0" toLane="0" via=":267169634_4_0" dir="s" state="M"/>
+ <connection from="24573947#2" to="83051421#0" fromLane="0" toLane="0" via=":267169634_5_0" dir="L" state="m"/>
+ <connection from="24573947#2" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_6_0" dir="l" state="m"/>
+ <connection from="24573947#2" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_7_0" dir="t" state="m"/>
+ <connection from="24573947#3" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_8_0" dir="r" state="m"/>
+ <connection from="24573947#3" to="24573947#4" fromLane="0" toLane="0" via=":267169714_9_0" dir="s" state="m"/>
+ <connection from="24573947#3" to="37640549#1" fromLane="0" toLane="0" via=":267169714_10_0" dir="l" state="m"/>
+ <connection from="24573947#3" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_11_0" dir="t" state="m"/>
+ <connection from="24573947#4" to="-24573947#4" fromLane="0" toLane="0" via=":267169795_0_0" dir="t" state="M"/>
+ <connection from="34962531#0" to="34962531#1" fromLane="0" toLane="0" via=":950640371_0_0" dir="s" state="m"/>
+ <connection from="34962531#0" to="111549913#1" fromLane="0" toLane="0" via=":950640371_1_0" dir="l" state="m"/>
+ <connection from="34962531#0" to="-34962531#0" fromLane="0" toLane="0" via=":950640371_2_0" dir="t" state="m"/>
+ <connection from="34962531#1" to="160584984" fromLane="0" toLane="0" via=":446017738_0_0" dir="s" state="M"/>
+ <connection from="34962531#1" to="37973568#2" fromLane="0" toLane="0" via=":446017738_1_0" dir="l" state="m"/>
+ <connection from="34962531#1" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_2_0" dir="t" state="m"/>
+ <connection from="37351086#0" to="37351086#1" fromLane="0" toLane="0" via=":948350693_2_0" dir="s" state="m"/>
+ <connection from="37351086#0" to="81394169#3" fromLane="0" toLane="0" via=":948350693_3_0" dir="l" state="m"/>
+ <connection from="37351086#1" to="44641744#0" fromLane="0" toLane="0" via=":445506215_7_0" dir="s" state="m"/>
+ <connection from="37351086#1" to="134572340#0" fromLane="0" toLane="1" via=":445506215_8_0" dir="L" state="m"/>
+ <connection from="37351086#1" to="37973565#5" fromLane="0" toLane="0" via=":445506215_9_0" dir="l" state="m"/>
+ <connection from="37351089#0" to="81394169#5" fromLane="0" toLane="0" via=":948350621_0_0" dir="r" state="m"/>
+ <connection from="37351089#0" to="37351089#1" fromLane="2" toLane="0" via=":948350621_1_0" dir="s" state="M"/>
+ <connection from="37351089#0" to="37351089#1" fromLane="3" toLane="1" via=":948350621_2_0" dir="s" state="M"/>
+ <connection from="37351089#1" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_9_0" dir="r" state="M"/>
+ <connection from="37351089#1" to="133868191#0" fromLane="0" toLane="0" via=":243489891_10_0" dir="s" state="M"/>
+ <connection from="37351089#1" to="133868191#0" fromLane="1" toLane="1" via=":243489891_11_0" dir="s" state="M"/>
+ <connection from="37351089#1" to="133868191#0" fromLane="2" toLane="2" via=":243489891_12_0" dir="s" state="M"/>
+ <connection from="37351089#1" to="133868191#0" fromLane="3" toLane="3" via=":243489891_13_0" dir="s" state="M"/>
+ <connection from="37351089#1" to="130443629#1" fromLane="3" toLane="0" via=":243489891_14_0" dir="l" state="M"/>
+ <connection from="37369047#0" to="81394188#2" fromLane="0" toLane="0" via=":724002953_3_0" dir="r" state="m"/>
+ <connection from="37369047#0" to="37369047#1" fromLane="2" toLane="0" via=":724002953_4_0" dir="s" state="M"/>
+ <connection from="37369047#0" to="37369047#1" fromLane="3" toLane="1" via=":724002953_5_0" dir="s" state="M"/>
+ <connection from="37369047#1" to="130443629#3" fromLane="0" toLane="0" via=":435668511_8_0" dir="r" state="M"/>
+ <connection from="37369047#1" to="37351086#0" fromLane="1" toLane="0" via=":435668511_9_0" dir="s" state="M"/>
+ <connection from="37369047#1" to="37369047#2" fromLane="2" toLane="1" via=":435668511_10_0" dir="s" state="M"/>
+ <connection from="37369047#1" to="37369047#2" fromLane="3" toLane="2" via=":435668511_11_0" dir="s" state="M"/>
+ <connection from="37369047#1" to="37369047#2" fromLane="3" toLane="3" via=":435668511_12_0" dir="s" state="M"/>
+ <connection from="37369047#1" to="-130443629#2" fromLane="3" toLane="0" via=":435668511_13_0" dir="l" state="M"/>
+ <connection from="37369047#2" to="133868229#0" fromLane="0" toLane="0" via=":948350707_8_0" dir="s" state="m"/>
+ <connection from="37369047#2" to="133868229#0" fromLane="1" toLane="1" via=":948350707_9_0" dir="s" state="m"/>
+ <connection from="37369047#2" to="133868186" fromLane="2" toLane="2" via=":948350707_10_0" dir="s" state="M"/>
+ <connection from="37369047#2" to="81394169#4" fromLane="2" toLane="0" via=":948350707_11_0" dir="L" state="m"/>
+ <connection from="37369047#2" to="-81394200#2" fromLane="3" toLane="0" via=":948350707_12_0" dir="l" state="m"/>
+ <connection from="37449245#0" to="109912572#4" fromLane="0" toLane="0" via=":1257054165_0_0" dir="r" state="M"/>
+ <connection from="37449245#0" to="37449245#1" fromLane="0" toLane="0" via=":1257054165_1_0" dir="s" state="M"/>
+ <connection from="37449245#0" to="-109912572#3" fromLane="0" toLane="0" via=":1257054165_2_0" dir="l" state="M"/>
+ <connection from="37449245#1" to="81394162#2" fromLane="0" toLane="0" via=":438042380_0_0" dir="s" state="m"/>
+ <connection from="37449249#0" to="37449253#0" fromLane="0" toLane="0" via=":438042374_0_0" dir="s" state="M"/>
+ <connection from="37449249#0" to="37449249#1" fromLane="0" toLane="0" via=":438042374_1_0" dir="s" state="M"/>
+ <connection from="37449249#1" to="133960538#1" fromLane="0" toLane="0" via=":438042385_0_0" tl="438042385" linkIndex="0" dir="r" state="o"/>
+ <connection from="37449249#1" to="37449249#2" fromLane="0" toLane="0" via=":438042385_1_0" tl="438042385" linkIndex="1" dir="s" state="o"/>
+ <connection from="37449249#2" to="37449249#3" fromLane="0" toLane="0" via=":438042387_1_0" tl="438042387" linkIndex="1" dir="l" state="o"/>
+ <connection from="37449249#3" to="133960539#0" fromLane="0" toLane="0" via=":438042381_0_0" tl="438042381" linkIndex="0" dir="r" state="o"/>
+ <connection from="37449249#3" to="133960539#0" fromLane="0" toLane="1" via=":438042381_1_0" tl="438042381" linkIndex="1" dir="r" state="o"/>
+ <connection from="37449249#3" to="154500698" fromLane="0" toLane="0" via=":438042381_2_0" tl="438042381" linkIndex="2" dir="s" state="o"/>
+ <connection from="37449253#0" to="-59159260#3" fromLane="0" toLane="0" via=":733663089_2_0" dir="r" state="M"/>
+ <connection from="37449253#0" to="37449253#1" fromLane="0" toLane="0" via=":733663089_3_0" dir="s" state="M"/>
+ <connection from="37449253#1" to="23066446#0" fromLane="0" toLane="0" via=":248913130_2_0" dir="r" state="M"/>
+ <connection from="37449253#1" to="37449253#2" fromLane="0" toLane="0" via=":248913130_3_0" dir="s" state="M"/>
+ <connection from="37449253#2" to="-81096844#3" fromLane="0" toLane="0" via=":248913145_2_0" dir="r" state="M"/>
+ <connection from="37449253#2" to="37449253#3" fromLane="0" toLane="0" via=":248913145_3_0" dir="s" state="M"/>
+ <connection from="37449253#3" to="-109912572#0" fromLane="0" toLane="0" via=":1257054155_3_0" dir="r" state="M"/>
+ <connection from="37449253#3" to="37449253#4" fromLane="0" toLane="0" via=":1257054155_4_0" dir="s" state="M"/>
+ <connection from="37449253#3" to="109912572#1" fromLane="0" toLane="0" via=":1257054155_5_0" dir="l" state="M"/>
+ <connection from="37449253#4" to="81523332#0" fromLane="0" toLane="0" via=":435668516_0_0" dir="r" state="M"/>
+ <connection from="37449253#4" to="37449253#5" fromLane="0" toLane="0" via=":435668516_1_0" dir="s" state="M"/>
+ <connection from="37449253#5" to="139118805#1" fromLane="0" toLane="0" via=":974693391_4_0" dir="r" state="m"/>
+ <connection from="37449253#5" to="37449253#6" fromLane="0" toLane="0" via=":974693391_5_0" dir="s" state="m"/>
+ <connection from="37449253#5" to="-139118805#0" fromLane="0" toLane="1" via=":974693391_6_0" dir="l" state="m"/>
+ <connection from="37449253#6" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_3_0" dir="r" state="m"/>
+ <connection from="37449253#6" to="37449253#7" fromLane="0" toLane="0" via=":13929747_4_0" dir="s" state="m"/>
+ <connection from="37449253#6" to="129780022#2" fromLane="0" toLane="0" via=":13929747_5_0" dir="l" state="m"/>
+ <connection from="37449253#7" to="172498367" fromLane="0" toLane="0" via=":950094314_3_0" dir="s" state="m"/>
+ <connection from="37449253#7" to="172498388" fromLane="0" toLane="1" via=":950094314_4_0" dir="l" state="m"/>
+ <connection from="37638426#0" to="-179692877#1" fromLane="0" toLane="0" via=":441236049_5_0" dir="r" state="m"/>
+ <connection from="37638426#0" to="37638426#1" fromLane="0" toLane="0" via=":441236049_6_0" dir="s" state="m"/>
+ <connection from="37638426#0" to="42976406#4" fromLane="0" toLane="2" via=":441236049_7_0" dir="l" state="m"/>
+ <connection from="37638426#1" to="37638470#0" fromLane="0" toLane="0" via=":1168929308_3_0" tl="1168929308" linkIndex="3" dir="r" state="o"/>
+ <connection from="37638426#1" to="42976408#0" fromLane="0" toLane="0" via=":1168929308_4_0" tl="1168929308" linkIndex="4" dir="R" state="o"/>
+ <connection from="37638426#1" to="154500706#0" fromLane="0" toLane="0" via=":1168929308_5_0" tl="1168929308" linkIndex="5" dir="s" state="o"/>
+ <connection from="37638470#0" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_3_0" dir="r" state="M"/>
+ <connection from="37638470#0" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_4_0" dir="s" state="M"/>
+ <connection from="37638470#0" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_5_0" dir="t" state="m"/>
+ <connection from="37638470#1" to="-160584984" fromLane="0" toLane="0" via=":1224080669_3_0" dir="r" state="M"/>
+ <connection from="37638470#1" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_4_0" dir="s" state="M"/>
+ <connection from="37638470#1" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_5_0" dir="t" state="m"/>
+ <connection from="37638470#2" to="-37638470#2" fromLane="0" toLane="0" via=":484282961_0_0" dir="t" state="M"/>
+ <connection from="37640549#0" to="24573947#4" fromLane="0" toLane="0" via=":267169714_4_0" dir="r" state="M"/>
+ <connection from="37640549#0" to="37640549#1" fromLane="0" toLane="0" via=":267169714_5_0" dir="s" state="M"/>
+ <connection from="37640549#0" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_6_0" dir="l" state="m"/>
+ <connection from="37640549#0" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_7_0" dir="t" state="m"/>
+ <connection from="37640549#1" to="24573939#2" fromLane="0" toLane="0" via=":267169715_3_0" dir="r" state="M"/>
+ <connection from="37640549#1" to="-24573939#1" fromLane="0" toLane="0" via=":267169715_4_0" dir="l" state="M"/>
+ <connection from="37640549#1" to="-37640549#1" fromLane="0" toLane="0" via=":267169715_5_0" dir="t" state="m"/>
+ <connection from="37640550#0" to="37640550#1" fromLane="0" toLane="0" via=":566579336_0_0" tl="566579336" linkIndex="0" dir="s" state="o"/>
+ <connection from="37640550#1" to="37640550#2" fromLane="0" toLane="0" via=":566579338_0_0" tl="566579338" linkIndex="0" dir="s" state="o"/>
+ <connection from="37640550#2" to="37640550#3" fromLane="0" toLane="0" via=":566579339_1_0" dir="s" state="m"/>
+ <connection from="37640550#3" to="81124945" fromLane="0" toLane="0" via=":441266876_0_0" dir="r" state="M"/>
+ <connection from="37640550#3" to="37640550#4" fromLane="0" toLane="0" via=":441266876_1_0" dir="s" state="M"/>
+ <connection from="37640550#4" to="37640550#5" fromLane="0" toLane="0" via=":2081499947_0_0" dir="s" state="M"/>
+ <connection from="37640550#4" to="-197955309#5" fromLane="0" toLane="0" via=":2081499947_1_0" dir="l" state="M"/>
+ <connection from="37640550#5" to="154844463" fromLane="0" toLane="0" via=":1168929585_0_0" dir="r" state="m"/>
+ <connection from="37771900#0" to="37771900#1" fromLane="0" toLane="0" via=":443089060_0_0" tl="443089060" linkIndex="0" dir="s" state="o"/>
+ <connection from="37771900#0" to="172498387#2" fromLane="0" toLane="0" via=":443089060_1_0" tl="443089060" linkIndex="1" dir="l" state="o"/>
+ <connection from="37771900#1" to="81096844#0" fromLane="0" toLane="0" via=":443089061_0_0" dir="r" state="M"/>
+ <connection from="37771900#1" to="37771900#2" fromLane="0" toLane="0" via=":443089061_1_0" dir="s" state="M"/>
+ <connection from="37771900#2" to="-23066446#3" fromLane="0" toLane="0" via=":443089062_0_0" dir="r" state="M"/>
+ <connection from="37771900#2" to="37771900#3" fromLane="0" toLane="0" via=":443089062_1_0" dir="s" state="M"/>
+ <connection from="37771900#3" to="59159260#0" fromLane="0" toLane="0" via=":733663131_0_0" dir="r" state="M"/>
+ <connection from="37771900#3" to="37771900#4" fromLane="0" toLane="0" via=":733663131_1_0" dir="s" state="M"/>
+ <connection from="37771900#4" to="-38319548#2" fromLane="0" toLane="0" via=":1669480287_0_0" dir="r" state="M"/>
+ <connection from="37771900#4" to="37771900#5" fromLane="0" toLane="0" via=":1669480287_1_0" dir="s" state="M"/>
+ <connection from="37771900#4" to="38319548#3" fromLane="0" toLane="0" via=":1669480287_2_0" dir="l" state="M"/>
+ <connection from="37771900#5" to="-110514869#1" fromLane="0" toLane="0" via=":443089063_0_0" tl="443089063" linkIndex="0" dir="r" state="o"/>
+ <connection from="37771900#5" to="37771900#6" fromLane="0" toLane="0" via=":443089063_1_0" tl="443089063" linkIndex="1" dir="s" state="o"/>
+ <connection from="37771900#5" to="110514869#2" fromLane="0" toLane="1" via=":443089063_2_0" tl="443089063" linkIndex="2" dir="l" state="o"/>
+ <connection from="37771900#6" to="37771903" fromLane="0" toLane="0" via=":443089064_0_0" dir="r" state="M"/>
+ <connection from="37771900#6" to="37771900#7" fromLane="0" toLane="0" via=":443089064_1_0" dir="s" state="M"/>
+ <connection from="37771900#7" to="58770837#0" fromLane="0" toLane="0" via=":443089070_0_0" dir="s" state="m"/>
+ <connection from="37771902#0" to="38319550#2" fromLane="0" toLane="0" via=":452425501_6_0" dir="r" state="M"/>
+ <connection from="37771902#0" to="37771902#1" fromLane="0" toLane="0" via=":452425501_7_0" dir="s" state="M"/>
+ <connection from="37771902#0" to="-38319550#1" fromLane="0" toLane="0" via=":452425501_8_0" dir="l" state="M"/>
+ <connection from="37771902#1" to="37771902#2" fromLane="0" toLane="0" via=":966132112_1_0" dir="s" state="M"/>
+ <connection from="37771902#2" to="37771902#3" fromLane="0" toLane="0" via=":252417165_0_0" dir="s" state="M"/>
+ <connection from="37771902#2" to="23066443#0" fromLane="0" toLane="0" via=":252417165_1_0" dir="l" state="M"/>
+ <connection from="37771902#3" to="58770724" fromLane="0" toLane="0" via=":252417190_1_0" dir="s" state="M"/>
+ <connection from="37771903" to="58770723#0" fromLane="0" toLane="0" via=":443089072_2_0" dir="s" state="M"/>
+ <connection from="37771903" to="58770725#6" fromLane="0" toLane="0" via=":443089072_3_0" dir="l" state="M"/>
+ <connection from="37771904#0" to="83051483" fromLane="0" toLane="0" via=":966193857_2_0" dir="r" state="M"/>
+ <connection from="37771904#0" to="37771904#1" fromLane="0" toLane="0" via=":966193857_3_0" dir="s" state="m"/>
+ <connection from="37772595#0" to="24573947#2" fromLane="0" toLane="0" via=":443101905_3_0" dir="r" state="m"/>
+ <connection from="37772595#0" to="37772595#1" fromLane="0" toLane="0" via=":443101905_4_0" dir="s" state="m"/>
+ <connection from="37772595#0" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_5_0" dir="l" state="m"/>
+ <connection from="37772595#1" to="37772597#2" fromLane="0" toLane="0" via=":443101906_3_0" dir="r" state="m"/>
+ <connection from="37772595#1" to="37772595#2" fromLane="0" toLane="0" via=":443101906_4_0" dir="s" state="m"/>
+ <connection from="37772595#1" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_5_0" dir="l" state="m"/>
+ <connection from="37772595#2" to="-83051420" fromLane="0" toLane="0" via=":966193796_2_0" dir="r" state="M"/>
+ <connection from="37772595#2" to="37772595#3" fromLane="0" toLane="0" via=":966193796_3_0" dir="s" state="m"/>
+ <connection from="37772595#3" to="154844477" fromLane="0" toLane="0" via=":1168929549_0_0" tl="1168929549" linkIndex="0" dir="r" state="o"/>
+ <connection from="37772596#0" to="38319550#8" fromLane="0" toLane="0" via=":719463587_6_0" tl="719463587" linkIndex="6" dir="r" state="o"/>
+ <connection from="37772596#0" to="37772596#1" fromLane="0" toLane="0" via=":719463587_7_0" tl="719463587" linkIndex="7" dir="s" state="o"/>
+ <connection from="37772596#0" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_8_0" tl="719463587" linkIndex="8" dir="l" state="o"/>
+ <connection from="37772596#1" to="24573930#0" fromLane="0" toLane="0" via=":443101914_0_0" dir="r" state="M"/>
+ <connection from="37772596#1" to="37772596#2" fromLane="0" toLane="0" via=":443101914_1_0" dir="s" state="M"/>
+ <connection from="37772596#2" to="37772596#3" fromLane="0" toLane="0" via=":443101915_1_0" dir="s" state="m"/>
+ <connection from="37772596#3" to="154844465#1" fromLane="0" toLane="0" via=":1168929613_1_0" tl="1168929613" linkIndex="1" dir="r" state="o"/>
+ <connection from="37772597#0" to="37772597#1" fromLane="0" toLane="0" via=":2265767395_7_0" dir="s" state="m"/>
+ <connection from="37772597#0" to="170594822#2" fromLane="0" toLane="1" via=":2265767395_8_0" dir="l" state="m"/>
+ <connection from="37772597#0" to="-37772597#0" fromLane="0" toLane="0" via=":2265767395_9_0" dir="t" state="m"/>
+ <connection from="37772597#1" to="37772597#2" fromLane="0" toLane="0" via=":443101906_6_0" dir="s" state="M"/>
+ <connection from="37772597#1" to="37772595#2" fromLane="0" toLane="0" via=":443101906_7_0" dir="l" state="m"/>
+ <connection from="37772597#1" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_8_0" dir="t" state="m"/>
+ <connection from="37772597#2" to="83051436#1" fromLane="0" toLane="0" via=":267169690_8_0" dir="r" state="M"/>
+ <connection from="37772597#2" to="24573939#0" fromLane="0" toLane="0" via=":267169690_9_0" dir="s" state="M"/>
+ <connection from="37772597#2" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_10_0" dir="l" state="m"/>
+ <connection from="37772597#2" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_11_0" dir="t" state="m"/>
+ <connection from="37942667#0" to="37942667#1" fromLane="0" toLane="0" via=":1323557956_1_0" dir="s" state="M"/>
+ <connection from="37942667#1" to="105251811#1" fromLane="0" toLane="0" via=":1212941056_0_0" dir="r" state="M"/>
+ <connection from="37942667#1" to="37942667#2" fromLane="0" toLane="0" via=":1212941056_1_0" dir="s" state="M"/>
+ <connection from="37942667#2" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_3_0" dir="r" state="m"/>
+ <connection from="37942667#2" to="37942667#3" fromLane="0" toLane="0" via=":1213368991_4_0" dir="s" state="m"/>
+ <connection from="37942667#2" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_5_0" dir="l" state="m"/>
+ <connection from="37942667#3" to="37942667#4" fromLane="0" toLane="0" via=":1212941077_2_0" dir="s" state="m"/>
+ <connection from="37942667#3" to="59159259#1" fromLane="0" toLane="0" via=":1212941077_3_0" dir="l" state="m"/>
+ <connection from="37942667#4" to="37942667#5" fromLane="0" toLane="0" via=":733663070_1_0" dir="s" state="m"/>
+ <connection from="37942667#5" to="37973565#0" fromLane="0" toLane="0" via=":445506213_0_0" dir="s" state="M"/>
+ <connection from="37942668#0" to="37942668#1" fromLane="0" toLane="0" via=":560472378_0_0" dir="s" state="M"/>
+ <connection from="37942668#0" to="-44104491#1" fromLane="0" toLane="0" via=":560472378_1_0" dir="l" state="M"/>
+ <connection from="37942668#1" to="37973565#3" fromLane="0" toLane="0" via=":445506217_0_0" dir="r" state="M"/>
+ <connection from="37942668#1" to="37942668#2" fromLane="0" toLane="0" via=":445506217_1_0" dir="s" state="M"/>
+ <connection from="37942668#2" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_2_0" dir="r" state="m"/>
+ <connection from="37942668#2" to="130443629#6" fromLane="0" toLane="0" via=":445506221_3_0" dir="l" state="m"/>
+ <connection from="37973565#0" to="59159262#2" fromLane="0" toLane="0" via=":733663082_3_0" dir="r" state="m"/>
+ <connection from="37973565#0" to="37973565#1" fromLane="0" toLane="0" via=":733663082_4_0" dir="s" state="m"/>
+ <connection from="37973565#0" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_5_0" dir="l" state="m"/>
+ <connection from="37973565#1" to="44104490" fromLane="0" toLane="0" via=":560472379_0_0" dir="r" state="M"/>
+ <connection from="37973565#1" to="37973565#2" fromLane="0" toLane="0" via=":560472379_1_0" dir="s" state="M"/>
+ <connection from="37973565#10" to="23182387#0" fromLane="0" toLane="0" via=":503954409_0_0" dir="r" state="M"/>
+ <connection from="37973565#10" to="37973565#11" fromLane="0" toLane="0" via=":503954409_1_0" dir="s" state="M"/>
+ <connection from="37973565#2" to="37973565#3" fromLane="0" toLane="0" via=":445506217_2_0" dir="s" state="m"/>
+ <connection from="37973565#2" to="37942668#2" fromLane="0" toLane="0" via=":445506217_3_0" dir="l" state="m"/>
+ <connection from="37973565#3" to="-109912567#1" fromLane="0" toLane="0" via=":1257054132_2_0" dir="r" state="M"/>
+ <connection from="37973565#3" to="37973565#4" fromLane="0" toLane="0" via=":1257054132_3_0" dir="s" state="M"/>
+ <connection from="37973565#4" to="44641744#0" fromLane="0" toLane="0" via=":445506215_0_0" dir="r" state="m"/>
+ <connection from="37973565#4" to="134572340#0" fromLane="0" toLane="0" via=":445506215_1_0" dir="R" state="m"/>
+ <connection from="37973565#4" to="37973565#5" fromLane="0" toLane="0" via=":445506215_2_0" dir="s" state="m"/>
+ <connection from="37973565#5" to="133868229#1" fromLane="0" toLane="0" via=":948350588_4_0" dir="r" state="m"/>
+ <connection from="37973565#5" to="37973565#6" fromLane="0" toLane="0" via=":948350588_5_0" dir="s" state="m"/>
+ <connection from="37973565#5" to="-133868229#0" fromLane="0" toLane="1" via=":948350588_6_0" dir="l" state="m"/>
+ <connection from="37973565#6" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_3_0" dir="r" state="m"/>
+ <connection from="37973565#6" to="37973565#7" fromLane="0" toLane="0" via=":435668539_4_0" dir="s" state="m"/>
+ <connection from="37973565#6" to="37351089#0" fromLane="0" toLane="1" via=":435668539_5_0" dir="l" state="M"/>
+ <connection from="37973565#6" to="37351089#0" fromLane="0" toLane="2" via=":435668539_6_0" dir="l" state="m"/>
+ <connection from="37973565#7" to="37973565#8" fromLane="0" toLane="0" via=":948350607_3_0" dir="s" state="m"/>
+ <connection from="37973565#7" to="133868231#0" fromLane="0" toLane="0" via=":948350607_4_0" dir="s" state="m"/>
+ <connection from="37973565#7" to="133868188" fromLane="0" toLane="0" via=":948350607_5_0" dir="l" state="m"/>
+ <connection from="37973565#8" to="37973565#9" fromLane="0" toLane="0" via=":445823604_2_0" dir="s" state="m"/>
+ <connection from="37973565#8" to="44641745#0" fromLane="0" toLane="0" via=":445823604_3_0" dir="l" state="m"/>
+ <connection from="37973565#9" to="38230510#1" fromLane="0" toLane="0" via=":450564002_0_0" dir="r" state="M"/>
+ <connection from="37973565#9" to="37973565#10" fromLane="0" toLane="0" via=":450564002_1_0" dir="s" state="M"/>
+ <connection from="37973566" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_30_0" dir="r" state="m"/>
+ <connection from="37973566" to="43684741#0" fromLane="0" toLane="0" via=":552842256_31_0" dir="R" state="m"/>
+ <connection from="37973566" to="130443630#0" fromLane="0" toLane="0" via=":552842256_32_0" dir="s" state="m"/>
+ <connection from="37973566" to="105251811#0" fromLane="0" toLane="0" via=":552842256_33_0" dir="L" state="m"/>
+ <connection from="37973566" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_34_0" dir="l" state="m"/>
+ <connection from="37973566" to="-37973566" fromLane="0" toLane="0" via=":552842256_35_0" dir="t" state="m"/>
+ <connection from="37973568#0" to="106366774" fromLane="0" toLane="0" via=":1224080660_2_0" dir="r" state="M"/>
+ <connection from="37973568#0" to="37973568#1" fromLane="0" toLane="0" via=":1224080660_3_0" dir="s" state="m"/>
+ <connection from="37973568#1" to="160584984" fromLane="0" toLane="0" via=":446017738_6_0" dir="r" state="m"/>
+ <connection from="37973568#1" to="37973568#2" fromLane="0" toLane="0" via=":446017738_7_0" dir="s" state="m"/>
+ <connection from="37973568#1" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_8_0" dir="l" state="m"/>
+ <connection from="37973568#2" to="81394192#15" fromLane="0" toLane="0" via=":446017739_0_0" tl="446017739" linkIndex="0" dir="r" state="o"/>
+ <connection from="37973568#2" to="37973568#3" fromLane="0" toLane="0" via=":446017739_1_0" tl="446017739" linkIndex="1" dir="s" state="o"/>
+ <connection from="37973568#3" to="130443630#9" fromLane="0" toLane="0" via=":446017741_3_0" tl="446017741" linkIndex="3" dir="r" state="o"/>
+ <connection from="37973568#3" to="37973568#4" fromLane="0" toLane="0" via=":446017741_4_0" tl="446017741" linkIndex="4" dir="s" state="o"/>
+ <connection from="37973568#3" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_5_0" tl="446017741" linkIndex="5" dir="l" state="o"/>
+ <connection from="37973568#4" to="166576462#6" fromLane="0" toLane="0" via=":1780219360_6_0" dir="r" state="M"/>
+ <connection from="37973568#4" to="37973568#5" fromLane="0" toLane="0" via=":1780219360_7_0" dir="s" state="M"/>
+ <connection from="37973568#4" to="-166576462#5" fromLane="0" toLane="0" via=":1780219360_8_0" dir="l" state="M"/>
+ <connection from="37973568#5" to="42976406#1" fromLane="0" toLane="0" via=":446017742_4_0" tl="446017742" linkIndex="4" dir="r" state="o"/>
+ <connection from="37973568#5" to="37973568#6" fromLane="0" toLane="0" via=":446017742_5_0" tl="446017742" linkIndex="5" dir="s" state="o"/>
+ <connection from="37973568#6" to="37973568#7" fromLane="0" toLane="0" via=":446017743_4_0" tl="446017743" linkIndex="4" dir="s" state="o"/>
+ <connection from="37973568#6" to="154500693#3" fromLane="0" toLane="1" via=":446017743_5_0" tl="446017743" linkIndex="5" dir="l" state="o"/>
+ <connection from="37973568#6" to="154500693#3" fromLane="0" toLane="2" via=":446017743_6_0" tl="446017743" linkIndex="6" dir="l" state="o"/>
+ <connection from="37973568#7" to="37772596#0" fromLane="0" toLane="0" via=":443101913_2_0" tl="443101913" linkIndex="2" dir="s" state="o"/>
+ <connection from="37973568#7" to="101272424#4" fromLane="0" toLane="0" via=":443101913_3_0" tl="443101913" linkIndex="3" dir="l" state="o"/>
+ <connection from="37973569#0" to="42976405#2" fromLane="0" toLane="0" via=":446017747_0_0" tl="446017747" linkIndex="0" dir="r" state="o"/>
+ <connection from="37973569#0" to="37973569#1" fromLane="0" toLane="0" via=":446017747_1_0" tl="446017747" linkIndex="1" dir="s" state="o"/>
+ <connection from="37973569#1" to="37973569#2" fromLane="0" toLane="0" via=":446017746_3_0" tl="446017746" linkIndex="3" dir="s" state="o"/>
+ <connection from="37973569#1" to="133960539#3" fromLane="0" toLane="1" via=":446017746_4_0" tl="446017746" linkIndex="4" dir="l" state="o"/>
+ <connection from="37973569#2" to="-166576462#3" fromLane="0" toLane="0" via=":1780219341_3_0" dir="r" state="M"/>
+ <connection from="37973569#2" to="37973569#3" fromLane="0" toLane="0" via=":1780219341_4_0" dir="s" state="M"/>
+ <connection from="37973569#2" to="166576462#4" fromLane="0" toLane="0" via=":1780219341_5_0" dir="l" state="M"/>
+ <connection from="37973569#3" to="37973569#4" fromLane="0" toLane="0" via=":538265870_1_0" dir="s" state="m"/>
+ <connection from="37973569#4" to="81672216#0" fromLane="0" toLane="0" via=":951739693_2_0" dir="r" state="M"/>
+ <connection from="37973569#4" to="37973569#5" fromLane="0" toLane="0" via=":951739693_3_0" dir="s" state="M"/>
+ <connection from="37973569#5" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_0_0" tl="446017744" linkIndex="0" dir="r" state="o"/>
+ <connection from="37973569#5" to="37973569#6" fromLane="0" toLane="0" via=":446017744_1_0" tl="446017744" linkIndex="1" dir="s" state="o"/>
+ <connection from="37973569#5" to="130443630#5" fromLane="0" toLane="0" via=":446017744_2_0" tl="446017744" linkIndex="2" dir="l" state="o"/>
+ <connection from="37973569#6" to="37973569#7" fromLane="0" toLane="0" via=":446017740_0_0" tl="446017740" linkIndex="0" dir="s" state="o"/>
+ <connection from="37973569#6" to="81394192#11" fromLane="0" toLane="0" via=":446017740_1_0" tl="446017740" linkIndex="1" dir="l" state="o"/>
+ <connection from="37973569#7" to="-160584981" fromLane="0" toLane="0" via=":1726380184_2_0" dir="r" state="M"/>
+ <connection from="37973569#7" to="37973569#8" fromLane="0" toLane="0" via=":1726380184_3_0" dir="s" state="m"/>
+ <connection from="37973569#8" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_3_0" dir="r" state="m"/>
+ <connection from="37973569#8" to="37973569#9" fromLane="0" toLane="0" via=":552842255_4_0" dir="s" state="m"/>
+ <connection from="37973569#8" to="43684741#4" fromLane="0" toLane="0" via=":552842255_5_0" dir="l" state="m"/>
+ <connection from="37973571#0" to="-179917803#1" fromLane="0" toLane="0" via=":1224074533_2_0" dir="r" state="M"/>
+ <connection from="37973571#0" to="37973571#1" fromLane="0" toLane="0" via=":1224074533_3_0" dir="l" state="m"/>
+ <connection from="37973571#1" to="179692877#0" fromLane="0" toLane="0" via=":444026889_2_0" dir="r" state="m"/>
+ <connection from="37973571#1" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_3_0" dir="l" state="m"/>
+ <connection from="37973572#0" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_4_0" dir="r" state="M"/>
+ <connection from="37973572#0" to="37973572#1" fromLane="0" toLane="0" via=":1780219353_5_0" dir="s" state="M"/>
+ <connection from="37973572#0" to="37973572#1" fromLane="1" toLane="1" via=":1780219353_6_0" dir="s" state="M"/>
+ <connection from="37973572#0" to="166576462#5" fromLane="1" toLane="0" via=":1780219353_7_0" dir="l" state="m"/>
+ <connection from="37973572#0" to="-37973572#0" fromLane="1" toLane="1" via=":1780219353_8_0" dir="t" state="m"/>
+ <connection from="37973572#1" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_0_0" tl="30406599" linkIndex="0" dir="r" state="o"/>
+ <connection from="37973572#1" to="37973572#2" fromLane="0" toLane="0" via=":30406599_1_0" tl="30406599" linkIndex="1" dir="s" state="o"/>
+ <connection from="37973572#1" to="37973572#2" fromLane="1" toLane="1" via=":30406599_2_0" tl="30406599" linkIndex="2" dir="s" state="o"/>
+ <connection from="37973572#1" to="130443630#7" fromLane="1" toLane="0" via=":30406599_3_0" tl="30406599" linkIndex="3" dir="l" state="o"/>
+ <connection from="37973572#1" to="-37973572#1" fromLane="1" toLane="1" via=":30406599_4_0" tl="30406599" linkIndex="4" dir="t" state="o"/>
+ <connection from="37973572#2" to="37973572#3" fromLane="0" toLane="0" via=":444026884_0_0" tl="444026884" linkIndex="0" dir="s" state="o"/>
+ <connection from="37973572#2" to="37973572#3" fromLane="1" toLane="1" via=":444026884_1_0" tl="444026884" linkIndex="1" dir="s" state="o"/>
+ <connection from="37973572#2" to="81394192#13" fromLane="1" toLane="0" via=":444026884_2_0" tl="444026884" linkIndex="2" dir="l" state="o"/>
+ <connection from="37973572#2" to="-37973572#2" fromLane="1" toLane="1" via=":444026884_3_0" tl="444026884" linkIndex="3" dir="t" state="o"/>
+ <connection from="37973572#3" to="37973572#4" fromLane="0" toLane="0" via=":410296508_0_0" dir="s" state="M"/>
+ <connection from="37973572#3" to="37973572#4" fromLane="1" toLane="1" via=":410296508_1_0" dir="s" state="M"/>
+ <connection from="37973572#3" to="34962531#0" fromLane="1" toLane="0" via=":410296508_2_0" dir="l" state="m"/>
+ <connection from="37973572#3" to="-37973572#3" fromLane="1" toLane="1" via=":410296508_3_0" dir="t" state="m"/>
+ <connection from="37973572#4" to="-43684741#5" fromLane="0" toLane="0" via=":552842254_3_0" dir="r" state="M"/>
+ <connection from="37973572#4" to="37973572#5" fromLane="0" toLane="0" via=":552842254_4_0" dir="s" state="M"/>
+ <connection from="37973572#4" to="37973572#5" fromLane="1" toLane="1" via=":552842254_5_0" dir="s" state="M"/>
+ <connection from="37973572#4" to="-37973572#4" fromLane="1" toLane="1" via=":552842254_6_0" dir="t" state="m"/>
+ <connection from="37973572#5" to="-37973572#5" fromLane="1" toLane="1" via=":356693794_0_0" dir="t" state="M"/>
+ <connection from="38027102#0" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_12_0" dir="r" state="m"/>
+ <connection from="38027102#0" to="38027102#1" fromLane="0" toLane="0" via=":477486717_13_0" dir="s" state="m"/>
+ <connection from="38027102#0" to="107066313#3" fromLane="0" toLane="0" via=":477486717_14_0" dir="l" state="m"/>
+ <connection from="38027102#0" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_15_0" dir="t" state="m"/>
+ <connection from="38027102#1" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_12_0" dir="r" state="M"/>
+ <connection from="38027102#1" to="38027102#2" fromLane="0" toLane="0" via=":728492366_13_0" dir="s" state="M"/>
+ <connection from="38027102#1" to="107166846#4" fromLane="0" toLane="0" via=":728492366_14_0" dir="l" state="m"/>
+ <connection from="38027102#1" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_15_0" dir="t" state="m"/>
+ <connection from="38027102#2" to="81394192#3" fromLane="0" toLane="0" via=":446766149_6_0" dir="r" state="M"/>
+ <connection from="38027102#2" to="59159262#0" fromLane="0" toLane="0" via=":446766149_7_0" dir="s" state="M"/>
+ <connection from="38027102#2" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_8_0" dir="t" state="m"/>
+ <connection from="38027665#0" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_12_0" dir="r" state="m"/>
+ <connection from="38027665#0" to="38027665#1" fromLane="0" toLane="0" via=":477486719_13_0" dir="s" state="m"/>
+ <connection from="38027665#0" to="107066313#1" fromLane="0" toLane="0" via=":477486719_14_0" dir="l" state="m"/>
+ <connection from="38027665#0" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_15_0" dir="t" state="m"/>
+ <connection from="38027665#1" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_8_0" dir="r" state="m"/>
+ <connection from="38027665#1" to="38027665#2" fromLane="0" toLane="0" via=":728492372_9_0" dir="s" state="m"/>
+ <connection from="38027665#1" to="107166846#1" fromLane="0" toLane="0" via=":728492372_10_0" dir="l" state="m"/>
+ <connection from="38027665#1" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_11_0" dir="t" state="m"/>
+ <connection from="38027665#2" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_6_0" dir="r" state="M"/>
+ <connection from="38027665#2" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_7_0" dir="s" state="M"/>
+ <connection from="38027665#2" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_8_0" dir="t" state="m"/>
+ <connection from="38027665#3" to="81394192#6" fromLane="0" toLane="0" via=":446770959_0_0" dir="r" state="M"/>
+ <connection from="38027665#3" to="-38027665#3" fromLane="0" toLane="0" via=":446770959_1_0" dir="t" state="m"/>
+ <connection from="38230510#0" to="38230510#1" fromLane="0" toLane="0" via=":450564002_2_0" dir="s" state="m"/>
+ <connection from="38230510#0" to="37973565#10" fromLane="0" toLane="0" via=":450564002_3_0" dir="l" state="m"/>
+ <connection from="38230510#1" to="23182517#1" fromLane="0" toLane="0" via=":450564003_6_0" tl="450564003" linkIndex="6" dir="r" state="o"/>
+ <connection from="38230510#1" to="38230510#2" fromLane="0" toLane="0" via=":450564003_7_0" tl="450564003" linkIndex="7" dir="s" state="o"/>
+ <connection from="38230510#1" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_8_0" tl="450564003" linkIndex="8" dir="l" state="o"/>
+ <connection from="38230510#2" to="141190464" fromLane="0" toLane="0" via=":1545661417_2_0" dir="s" state="M"/>
+ <connection from="38230510#2" to="141190463" fromLane="0" toLane="0" via=":1545661417_3_0" dir="l" state="M"/>
+ <connection from="38318373#0" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_0_0" dir="r" state="m"/>
+ <connection from="38318373#0" to="38318373#1" fromLane="0" toLane="0" via=":314636763_1_0" dir="s" state="m"/>
+ <connection from="38318373#0" to="122394864#2" fromLane="0" toLane="0" via=":314636763_2_0" dir="l" state="m"/>
+ <connection from="38318373#0" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_3_0" dir="t" state="m"/>
+ <connection from="38318373#1" to="23182484#1" fromLane="0" toLane="0" via=":250685829_4_0" dir="r" state="m"/>
+ <connection from="38318373#1" to="190048063" fromLane="0" toLane="0" via=":250685829_5_0" dir="s" state="m"/>
+ <connection from="38318373#1" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_6_0" dir="l" state="m"/>
+ <connection from="38318373#1" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_7_0" dir="t" state="m"/>
+ <connection from="38319546#0" to="154489992#2" fromLane="0" toLane="0" via=":1257054074_0_0" dir="r" state="m"/>
+ <connection from="38319546#0" to="38319546#1" fromLane="0" toLane="0" via=":1257054074_1_0" dir="s" state="m"/>
+ <connection from="38319546#0" to="-38319546#0" fromLane="0" toLane="0" via=":1257054074_2_0" dir="t" state="m"/>
+ <connection from="38319546#1" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_0_0" dir="r" state="m"/>
+ <connection from="38319546#1" to="38319546#2" fromLane="0" toLane="0" via=":1257054205_1_0" dir="s" state="m"/>
+ <connection from="38319546#1" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_2_0" dir="l" state="m"/>
+ <connection from="38319546#1" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_3_0" dir="t" state="m"/>
+ <connection from="38319546#2" to="-139118805#1" fromLane="0" toLane="0" via=":1257054172_0_0" dir="r" state="m"/>
+ <connection from="38319546#2" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_1_0" dir="s" state="m"/>
+ <connection from="38319546#2" to="139118805#2" fromLane="0" toLane="1" via=":1257054172_2_0" dir="l" state="m"/>
+ <connection from="38319546#2" to="-38319546#2" fromLane="0" toLane="0" via=":1257054172_3_0" dir="t" state="m"/>
+ <connection from="38319546#3" to="38319546#4" fromLane="0" toLane="0" via=":452425486_0_0" dir="s" state="m"/>
+ <connection from="38319546#3" to="81523332#1" fromLane="0" toLane="0" via=":452425486_1_0" dir="l" state="m"/>
+ <connection from="38319546#3" to="-38319546#3" fromLane="0" toLane="0" via=":452425486_2_0" dir="t" state="m"/>
+ <connection from="38319546#4" to="109912572#0" fromLane="0" toLane="0" via=":1257054178_0_0" dir="r" state="="/>
+ <connection from="38319546#4" to="38319546#5" fromLane="0" toLane="0" via=":1257054178_1_0" dir="s" state="="/>
+ <connection from="38319546#4" to="-38319546#4" fromLane="0" toLane="0" via=":1257054178_2_0" dir="t" state="="/>
+ <connection from="38319546#5" to="81096844#3" fromLane="0" toLane="0" via=":452425487_0_0" dir="r" state="m"/>
+ <connection from="38319546#5" to="38319546#6" fromLane="0" toLane="0" via=":452425487_1_0" dir="s" state="m"/>
+ <connection from="38319546#5" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_2_0" dir="l" state="m"/>
+ <connection from="38319546#5" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_3_0" dir="t" state="m"/>
+ <connection from="38319546#6" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_0_0" dir="r" state="m"/>
+ <connection from="38319546#6" to="38319546#7" fromLane="0" toLane="0" via=":452425488_1_0" dir="s" state="m"/>
+ <connection from="38319546#6" to="23066446#1" fromLane="0" toLane="0" via=":452425488_2_0" dir="l" state="m"/>
+ <connection from="38319546#6" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_3_0" dir="t" state="m"/>
+ <connection from="38319546#7" to="59159260#3" fromLane="0" toLane="0" via=":733663096_0_0" dir="r" state="m"/>
+ <connection from="38319546#7" to="38319546#8" fromLane="0" toLane="0" via=":733663096_1_0" dir="s" state="m"/>
+ <connection from="38319546#7" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_2_0" dir="l" state="m"/>
+ <connection from="38319546#7" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_3_0" dir="t" state="m"/>
+ <connection from="38319546#8" to="38319547" fromLane="0" toLane="0" via=":452425489_0_0" dir="s" state="M"/>
+ <connection from="38319546#8" to="-38319546#8" fromLane="0" toLane="0" via=":452425489_1_0" dir="t" state="m"/>
+ <connection from="38319547" to="38319549#0" fromLane="0" toLane="0" via=":452425490_6_0" dir="r" state="="/>
+ <connection from="38319547" to="38319548#0" fromLane="0" toLane="0" via=":452425490_7_0" dir="l" state="="/>
+ <connection from="38319547" to="-38319547" fromLane="0" toLane="0" via=":452425490_8_0" dir="t" state="="/>
+ <connection from="38319548#0" to="38319548#1" fromLane="0" toLane="0" via=":452425491_6_0" dir="s" state="m"/>
+ <connection from="38319548#0" to="23066443#4" fromLane="0" toLane="0" via=":452425491_7_0" dir="l" state="m"/>
+ <connection from="38319548#0" to="-38319548#0" fromLane="0" toLane="0" via=":452425491_8_0" dir="t" state="m"/>
+ <connection from="38319548#1" to="58770725#4" fromLane="0" toLane="0" via=":452425493_6_0" dir="r" state="m"/>
+ <connection from="38319548#1" to="38319548#2" fromLane="0" toLane="0" via=":452425493_7_0" dir="s" state="m"/>
+ <connection from="38319548#1" to="-38319548#1" fromLane="0" toLane="0" via=":452425493_8_0" dir="t" state="m"/>
+ <connection from="38319548#10" to="101272435#4" fromLane="0" toLane="0" via=":1669480279_0_0" dir="r" state="m"/>
+ <connection from="38319548#10" to="38319548#11" fromLane="0" toLane="0" via=":1669480279_1_0" dir="s" state="m"/>
+ <connection from="38319548#10" to="-38319548#10" fromLane="0" toLane="0" via=":1669480279_2_0" dir="t" state="m"/>
+ <connection from="38319548#11" to="154844489#2" fromLane="0" toLane="0" via=":1168929659_0_0" dir="r" state="m"/>
+ <connection from="38319548#11" to="38319548#12" fromLane="0" toLane="0" via=":1168929659_1_0" dir="s" state="m"/>
+ <connection from="38319548#11" to="-38319548#11" fromLane="0" toLane="0" via=":1168929659_2_0" dir="t" state="m"/>
+ <connection from="38319548#12" to="103851602#1" fromLane="0" toLane="0" via=":951739684_0_0" dir="r" state="m"/>
+ <connection from="38319548#12" to="38319548#13" fromLane="0" toLane="0" via=":951739684_1_0" dir="s" state="m"/>
+ <connection from="38319548#12" to="-38319548#12" fromLane="0" toLane="0" via=":951739684_2_0" dir="t" state="m"/>
+ <connection from="38319548#13" to="38319548#14" fromLane="0" toLane="0" via=":951739649_0_0" dir="s" state="m"/>
+ <connection from="38319548#13" to="111863096#4" fromLane="0" toLane="0" via=":951739649_1_0" dir="l" state="m"/>
+ <connection from="38319548#13" to="-38319548#13" fromLane="0" toLane="0" via=":951739649_2_0" dir="t" state="m"/>
+ <connection from="38319548#14" to="38319548#15" fromLane="0" toLane="0" via=":1168929546_0_0" dir="s" state="m"/>
+ <connection from="38319548#14" to="154844484#1" fromLane="0" toLane="0" via=":1168929546_1_0" dir="l" state="m"/>
+ <connection from="38319548#14" to="-38319548#14" fromLane="0" toLane="0" via=":1168929546_2_0" dir="t" state="m"/>
+ <connection from="38319548#15" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_0_0" dir="r" state="m"/>
+ <connection from="38319548#15" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_1_0" dir="s" state="m"/>
+ <connection from="38319548#15" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_2_0" dir="l" state="m"/>
+ <connection from="38319548#15" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_3_0" dir="t" state="m"/>
+ <connection from="38319548#16" to="-38319548#16" fromLane="0" toLane="0" via=":1780381201_0_0" dir="t" state="M"/>
+ <connection from="38319548#2" to="37771900#5" fromLane="0" toLane="0" via=":1669480287_6_0" dir="r" state="m"/>
+ <connection from="38319548#2" to="38319548#3" fromLane="0" toLane="0" via=":1669480287_7_0" dir="s" state="m"/>
+ <connection from="38319548#2" to="-38319548#2" fromLane="0" toLane="0" via=":1669480287_8_0" dir="t" state="m"/>
+ <connection from="38319548#3" to="81124939#1" fromLane="0" toLane="0" via=":1669480286_7_0" dir="r" state="m"/>
+ <connection from="38319548#3" to="38319548#4" fromLane="0" toLane="0" via=":1669480286_8_0" dir="s" state="m"/>
+ <connection from="38319548#3" to="-38319548#3" fromLane="0" toLane="0" via=":1669480286_9_0" dir="t" state="m"/>
+ <connection from="38319548#4" to="-160587537#0" fromLane="0" toLane="0" via=":1726394727_14_0" dir="r" state="m"/>
+ <connection from="38319548#4" to="38319548#5" fromLane="0" toLane="0" via=":1726394727_15_0" dir="s" state="m"/>
+ <connection from="38319548#4" to="160587537#1" fromLane="0" toLane="1" via=":1726394727_16_0" dir="l" state="m"/>
+ <connection from="38319548#4" to="-38319548#4" fromLane="0" toLane="0" via=":1726394727_17_0" dir="t" state="m"/>
+ <connection from="38319548#5" to="38319548#6" fromLane="0" toLane="0" via=":1669480284_7_0" dir="s" state="m"/>
+ <connection from="38319548#5" to="154844474#1" fromLane="0" toLane="1" via=":1669480284_8_0" dir="l" state="m"/>
+ <connection from="38319548#5" to="-38319548#5" fromLane="0" toLane="0" via=":1669480284_9_0" dir="t" state="m"/>
+ <connection from="38319548#6" to="38319548#7" fromLane="0" toLane="0" via=":452425497_6_0" dir="s" state="="/>
+ <connection from="38319548#6" to="81096822#0" fromLane="0" toLane="0" via=":452425497_7_0" dir="l" state="="/>
+ <connection from="38319548#6" to="-38319548#6" fromLane="0" toLane="0" via=":452425497_8_0" dir="t" state="="/>
+ <connection from="38319548#7" to="38319548#8" fromLane="0" toLane="0" via=":1669480283_6_0" dir="s" state="m"/>
+ <connection from="38319548#7" to="101272435#6" fromLane="0" toLane="0" via=":1669480283_7_0" dir="l" state="m"/>
+ <connection from="38319548#7" to="-38319548#7" fromLane="0" toLane="0" via=":1669480283_8_0" dir="t" state="m"/>
+ <connection from="38319548#8" to="38319548#9" fromLane="0" toLane="0" via=":1168929661_0_0" dir="s" state="="/>
+ <connection from="38319548#8" to="101272434" fromLane="0" toLane="0" via=":1168929661_1_0" dir="l" state="="/>
+ <connection from="38319548#8" to="-38319548#8" fromLane="0" toLane="0" via=":1168929661_2_0" dir="t" state="="/>
+ <connection from="38319548#9" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_0_0" dir="r" state="m"/>
+ <connection from="38319548#9" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_1_0" dir="s" state="m"/>
+ <connection from="38319548#9" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_2_0" dir="l" state="m"/>
+ <connection from="38319548#9" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_3_0" dir="t" state="m"/>
+ <connection from="38319549#0" to="44738605#2" fromLane="0" toLane="0" via=":1719213141_0_0" dir="r" state="m"/>
+ <connection from="38319549#0" to="38319549#1" fromLane="0" toLane="0" via=":1719213141_1_0" dir="s" state="m"/>
+ <connection from="38319549#0" to="-38319549#0" fromLane="0" toLane="0" via=":1719213141_2_0" dir="t" state="m"/>
+ <connection from="38319549#1" to="38319549#2" fromLane="0" toLane="0" via=":1719213140_0_0" dir="s" state="m"/>
+ <connection from="38319549#1" to="151167658#1" fromLane="0" toLane="0" via=":1719213140_1_0" dir="l" state="m"/>
+ <connection from="38319549#1" to="-38319549#1" fromLane="0" toLane="0" via=":1719213140_2_0" dir="t" state="m"/>
+ <connection from="38319549#2" to="38319550#0" fromLane="0" toLane="0" via=":452425499_0_0" dir="l" state="M"/>
+ <connection from="38319549#2" to="-38319549#2" fromLane="0" toLane="0" via=":452425499_1_0" dir="t" state="m"/>
+ <connection from="38319550#0" to="58770723#2" fromLane="0" toLane="0" via=":452425500_0_0" dir="r" state="m"/>
+ <connection from="38319550#0" to="38319550#1" fromLane="0" toLane="0" via=":452425500_1_0" dir="s" state="m"/>
+ <connection from="38319550#0" to="-38319550#0" fromLane="0" toLane="0" via=":452425500_2_0" dir="t" state="m"/>
+ <connection from="38319550#1" to="38319550#2" fromLane="0" toLane="0" via=":452425501_0_0" dir="s" state="m"/>
+ <connection from="38319550#1" to="37771902#1" fromLane="0" toLane="0" via=":452425501_1_0" dir="l" state="m"/>
+ <connection from="38319550#1" to="-38319550#1" fromLane="0" toLane="0" via=":452425501_2_0" dir="t" state="m"/>
+ <connection from="38319550#10" to="-166576464#4" fromLane="0" toLane="0" via=":1780219371_0_0" dir="r" state="M"/>
+ <connection from="38319550#10" to="38319550#11" fromLane="0" toLane="0" via=":1780219371_1_0" dir="s" state="m"/>
+ <connection from="38319550#10" to="-38319550#10" fromLane="0" toLane="0" via=":1780219371_2_0" dir="t" state="m"/>
+ <connection from="38319550#11" to="38319550#12" fromLane="0" toLane="0" via=":1719213509_0_0" dir="s" state="m"/>
+ <connection from="38319550#11" to="8272412#1" fromLane="0" toLane="0" via=":1719213509_1_0" dir="l" state="m"/>
+ <connection from="38319550#11" to="-38319550#11" fromLane="0" toLane="0" via=":1719213509_2_0" dir="t" state="m"/>
+ <connection from="38319550#12" to="38319550#13" fromLane="0" toLane="0" via=":1719213668_0_0" dir="s" state="m"/>
+ <connection from="38319550#12" to="149419435#1" fromLane="0" toLane="0" via=":1719213668_1_0" dir="l" state="m"/>
+ <connection from="38319550#12" to="-38319550#12" fromLane="0" toLane="0" via=":1719213668_2_0" dir="t" state="m"/>
+ <connection from="38319550#13" to="38319550#14" fromLane="0" toLane="0" via=":719464017_2_0" tl="719464017" linkIndex="2" dir="s" state="o"/>
+ <connection from="38319550#13" to="-38319550#13" fromLane="0" toLane="0" via=":719464017_3_0" tl="719464017" linkIndex="3" dir="t" state="o"/>
+ <connection from="38319550#14" to="-38319550#14" fromLane="0" toLane="0" via=":650318340_0_0" dir="t" state="M"/>
+ <connection from="38319550#2" to="166576462#0" fromLane="0" toLane="0" via=":1780219365_0_0" dir="r" state="M"/>
+ <connection from="38319550#2" to="38319550#3" fromLane="0" toLane="0" via=":1780219365_1_0" dir="s" state="m"/>
+ <connection from="38319550#2" to="-38319550#2" fromLane="0" toLane="0" via=":1780219365_2_0" dir="t" state="m"/>
+ <connection from="38319550#3" to="101272429#2" fromLane="0" toLane="0" via=":452425502_0_0" tl="452425502" linkIndex="0" dir="r" state="o"/>
+ <connection from="38319550#3" to="38319550#4" fromLane="0" toLane="0" via=":452425502_1_0" tl="452425502" linkIndex="1" dir="s" state="o"/>
+ <connection from="38319550#3" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_2_0" tl="452425502" linkIndex="2" dir="t" state="o"/>
+ <connection from="38319550#4" to="111863125#2" fromLane="0" toLane="0" via=":950640531_0_0" dir="r" state="m"/>
+ <connection from="38319550#4" to="38319550#5" fromLane="0" toLane="0" via=":950640531_1_0" dir="s" state="m"/>
+ <connection from="38319550#4" to="-38319550#4" fromLane="0" toLane="0" via=":950640531_2_0" dir="t" state="m"/>
+ <connection from="38319550#5" to="149868584#6" fromLane="0" toLane="0" via=":767282288_0_0" tl="767282288" linkIndex="0" dir="r" state="o"/>
+ <connection from="38319550#5" to="38319550#6" fromLane="0" toLane="0" via=":767282288_1_0" tl="767282288" linkIndex="1" dir="s" state="o"/>
+ <connection from="38319550#5" to="-149868584#5" fromLane="0" toLane="1" via=":767282288_2_0" tl="767282288" linkIndex="2" dir="l" state="o"/>
+ <connection from="38319550#5" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_3_0" tl="767282288" linkIndex="3" dir="t" state="o"/>
+ <connection from="38319550#6" to="38319550#7" fromLane="0" toLane="0" via=":950640351_0_0" dir="s" state="m"/>
+ <connection from="38319550#6" to="111549913#5" fromLane="0" toLane="0" via=":950640351_1_0" dir="l" state="m"/>
+ <connection from="38319550#6" to="-38319550#6" fromLane="0" toLane="0" via=":950640351_2_0" dir="t" state="m"/>
+ <connection from="38319550#7" to="38319550#8" fromLane="0" toLane="0" via=":719463587_0_0" tl="719463587" linkIndex="0" dir="s" state="o"/>
+ <connection from="38319550#7" to="37772596#1" fromLane="0" toLane="0" via=":719463587_1_0" tl="719463587" linkIndex="1" dir="l" state="o"/>
+ <connection from="38319550#7" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_2_0" tl="719463587" linkIndex="2" dir="t" state="o"/>
+ <connection from="38319550#8" to="-166576468#3" fromLane="0" toLane="0" via=":1780219332_0_0" dir="r" state="M"/>
+ <connection from="38319550#8" to="38319550#9" fromLane="0" toLane="0" via=":1780219332_1_0" dir="s" state="m"/>
+ <connection from="38319550#8" to="-38319550#8" fromLane="0" toLane="0" via=":1780219332_2_0" dir="t" state="m"/>
+ <connection from="38319550#9" to="24573905#3" fromLane="0" toLane="0" via=":719463795_0_0" dir="r" state="m"/>
+ <connection from="38319550#9" to="38319550#10" fromLane="0" toLane="0" via=":719463795_1_0" dir="s" state="m"/>
+ <connection from="38319550#9" to="-38319550#9" fromLane="0" toLane="0" via=":719463795_2_0" dir="t" state="m"/>
+ <connection from="40196943" to="40196944#1" fromLane="0" toLane="0" via=":484282955_2_0" dir="r" state="m"/>
+ <connection from="40196943" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_3_0" dir="l" state="m"/>
+ <connection from="40196944#0" to="40196944#1" fromLane="0" toLane="0" via=":484282955_4_0" dir="s" state="M"/>
+ <connection from="40196944#0" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_5_0" dir="t" state="m"/>
+ <connection from="40196944#1" to="42976408#1" fromLane="0" toLane="0" via=":538265864_2_0" dir="r" state="M"/>
+ <connection from="40196944#1" to="-40196944#1" fromLane="0" toLane="0" via=":538265864_3_0" dir="t" state="m"/>
+ <connection from="42976405#0" to="42976405#1" fromLane="0" toLane="1" via=":950640558_2_0" dir="s" state="M"/>
+ <connection from="42976405#0" to="111863125#4" fromLane="1" toLane="0" via=":950640558_3_0" dir="l" state="m"/>
+ <connection from="42976405#1" to="42976405#2" fromLane="0" toLane="0" via=":446017747_2_0" tl="446017747" linkIndex="2" dir="s" state="o"/>
+ <connection from="42976405#1" to="42976405#2" fromLane="1" toLane="1" via=":446017747_3_0" tl="446017747" linkIndex="3" dir="s" state="o"/>
+ <connection from="42976405#1" to="37973569#1" fromLane="1" toLane="0" via=":446017747_4_0" tl="446017747" linkIndex="4" dir="l" state="o"/>
+ <connection from="42976405#2" to="-166576462#1" fromLane="0" toLane="0" via=":1780219361_3_0" dir="r" state="M"/>
+ <connection from="42976405#2" to="42976405#3" fromLane="0" toLane="0" via=":1780219361_4_0" dir="s" state="M"/>
+ <connection from="42976405#2" to="42976405#3" fromLane="1" toLane="1" via=":1780219361_5_0" dir="s" state="M"/>
+ <connection from="42976405#2" to="166576462#2" fromLane="1" toLane="0" via=":1780219361_6_0" dir="l" state="M"/>
+ <connection from="42976405#3" to="154500699#0" fromLane="0" toLane="0" via=":438042386_0_0" tl="438042386" linkIndex="0" dir="r" state="o"/>
+ <connection from="42976405#3" to="133960538#0" fromLane="0" toLane="0" via=":438042386_1_0" tl="438042386" linkIndex="1" dir="s" state="o"/>
+ <connection from="42976405#3" to="133960538#0" fromLane="1" toLane="1" via=":438042386_2_0" tl="438042386" linkIndex="2" dir="s" state="o"/>
+ <connection from="42976406#0" to="42976406#1" fromLane="0" toLane="0" via=":446017742_0_0" tl="446017742" linkIndex="0" dir="s" state="o"/>
+ <connection from="42976406#0" to="42976406#1" fromLane="1" toLane="1" via=":446017742_1_0" tl="446017742" linkIndex="1" dir="s" state="o"/>
+ <connection from="42976406#0" to="42976406#1" fromLane="2" toLane="2" via=":446017742_2_0" tl="446017742" linkIndex="2" dir="s" state="o"/>
+ <connection from="42976406#0" to="37973568#6" fromLane="2" toLane="0" via=":446017742_3_0" tl="446017742" linkIndex="3" dir="l" state="o"/>
+ <connection from="42976406#1" to="-166576468#0" fromLane="0" toLane="0" via=":1780219343_0_0" dir="r" state="M"/>
+ <connection from="42976406#1" to="42976406#2" fromLane="0" toLane="0" via=":1780219343_1_0" dir="s" state="M"/>
+ <connection from="42976406#1" to="42976406#2" fromLane="1" toLane="1" via=":1780219343_2_0" dir="s" state="M"/>
+ <connection from="42976406#1" to="42976406#2" fromLane="2" toLane="2" via=":1780219343_3_0" dir="s" state="M"/>
+ <connection from="42976406#1" to="166576468#1" fromLane="2" toLane="0" via=":1780219343_4_0" dir="l" state="M"/>
+ <connection from="42976406#2" to="-166576464#1" fromLane="0" toLane="0" via=":1780219331_0_0" dir="r" state="M"/>
+ <connection from="42976406#2" to="42976406#3" fromLane="0" toLane="0" via=":1780219331_1_0" dir="s" state="M"/>
+ <connection from="42976406#2" to="42976406#3" fromLane="1" toLane="1" via=":1780219331_2_0" dir="s" state="M"/>
+ <connection from="42976406#2" to="42976406#3" fromLane="2" toLane="2" via=":1780219331_3_0" dir="s" state="M"/>
+ <connection from="42976406#2" to="166576464#2" fromLane="2" toLane="0" via=":1780219331_4_0" dir="l" state="M"/>
+ <connection from="42976406#3" to="-179692877#1" fromLane="0" toLane="0" via=":441236049_0_0" dir="r" state="M"/>
+ <connection from="42976406#3" to="37638426#1" fromLane="0" toLane="0" via=":441236049_1_0" dir="R" state="M"/>
+ <connection from="42976406#3" to="42976406#4" fromLane="0" toLane="0" via=":441236049_2_0" dir="s" state="M"/>
+ <connection from="42976406#3" to="42976406#4" fromLane="1" toLane="1" via=":441236049_3_0" dir="s" state="M"/>
+ <connection from="42976406#3" to="42976406#4" fromLane="2" toLane="2" via=":441236049_4_0" dir="s" state="M"/>
+ <connection from="42976406#4" to="42976406#5" fromLane="0" toLane="0" via=":441236060_0_0" dir="s" state="M"/>
+ <connection from="42976406#4" to="42976406#5" fromLane="1" toLane="1" via=":441236060_1_0" dir="s" state="M"/>
+ <connection from="42976406#4" to="42976406#5" fromLane="2" toLane="2" via=":441236060_2_0" dir="s" state="M"/>
+ <connection from="42976406#4" to="154500706#1" fromLane="2" toLane="0" via=":441236060_3_0" dir="l" state="M"/>
+ <connection from="42976407#0" to="42976407#1" fromLane="0" toLane="0" via=":538265860_0_0" tl="538265860" linkIndex="0" dir="s" state="o"/>
+ <connection from="42976407#1" to="149419435#0" fromLane="0" toLane="0" via=":1624003172_0_0" dir="r" state="M"/>
+ <connection from="42976407#1" to="42976407#2" fromLane="0" toLane="0" via=":1624003172_1_0" dir="s" state="M"/>
+ <connection from="42976407#2" to="154500706#3" fromLane="0" toLane="0" via=":1168929298_0_0" tl="1168929298" linkIndex="0" dir="s" state="o"/>
+ <connection from="42976408#0" to="-40196944#1" fromLane="0" toLane="0" via=":538265864_0_0" dir="r" state="M"/>
+ <connection from="42976408#0" to="42976408#1" fromLane="0" toLane="0" via=":538265864_1_0" dir="s" state="m"/>
+ <connection from="42976408#1" to="42976408#2" fromLane="0" toLane="0" via=":538265866_0_0" tl="538265866" linkIndex="0" dir="s" state="o"/>
+ <connection from="42976410#0" to="42976410#1" fromLane="0" toLane="0" via=":950640525_2_0" dir="s" state="m"/>
+ <connection from="42976410#0" to="111863125#3" fromLane="0" toLane="0" via=":950640525_3_0" dir="l" state="m"/>
+ <connection from="42976410#1" to="42976410#2" fromLane="0" toLane="0" via=":443101912_2_0" tl="443101912" linkIndex="2" dir="s" state="o"/>
+ <connection from="42976410#1" to="37973569#0" fromLane="0" toLane="0" via=":443101912_3_0" tl="443101912" linkIndex="3" dir="l" state="o"/>
+ <connection from="42976410#2" to="-166576462#0" fromLane="0" toLane="0" via=":1780219377_3_0" dir="r" state="M"/>
+ <connection from="42976410#2" to="42976410#3" fromLane="0" toLane="0" via=":1780219377_4_0" dir="s" state="M"/>
+ <connection from="42976410#2" to="166576462#1" fromLane="0" toLane="0" via=":1780219377_5_0" dir="l" state="M"/>
+ <connection from="42976410#3" to="37771902#0" fromLane="0" toLane="0" via=":443089069_0_0" dir="r" state="M"/>
+ <connection from="42976410#3" to="42976410#4" fromLane="0" toLane="0" via=":443089069_1_0" dir="s" state="M"/>
+ <connection from="42976410#4" to="42976410#5" fromLane="0" toLane="0" via=":250689290_1_0" dir="s" state="m"/>
+ <connection from="42976410#5" to="154500699#1" fromLane="0" toLane="0" via=":438042378_0_0" tl="438042378" linkIndex="0" dir="s" state="o"/>
+ <connection from="43684741#0" to="43684741#1" fromLane="0" toLane="0" via=":561204538_0_0" dir="s" state="M"/>
+ <connection from="43684741#0" to="81394192#8" fromLane="0" toLane="0" via=":561204538_1_0" dir="l" state="m"/>
+ <connection from="43684741#0" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_2_0" dir="t" state="m"/>
+ <connection from="43684741#1" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_0_0" dir="r" state="M"/>
+ <connection from="43684741#1" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_1_0" dir="s" state="M"/>
+ <connection from="43684741#1" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_2_0" dir="t" state="m"/>
+ <connection from="43684741#2" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_0_0" dir="s" state="M"/>
+ <connection from="43684741#2" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_1_0" dir="t" state="m"/>
+ <connection from="43684741#3" to="37973569#9" fromLane="0" toLane="0" via=":552842255_0_0" dir="r" state="M"/>
+ <connection from="43684741#3" to="43684741#4" fromLane="0" toLane="0" via=":552842255_1_0" dir="s" state="M"/>
+ <connection from="43684741#3" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_2_0" dir="t" state="m"/>
+ <connection from="43684741#4" to="111863125#8" fromLane="0" toLane="0" via=":950640393_0_0" dir="r" state="m"/>
+ <connection from="43684741#4" to="43684741#5" fromLane="0" toLane="0" via=":950640393_1_0" dir="s" state="m"/>
+ <connection from="43684741#4" to="-43684741#4" fromLane="0" toLane="0" via=":950640393_2_0" dir="t" state="m"/>
+ <connection from="43684741#5" to="37973572#5" fromLane="0" toLane="0" via=":552842254_0_0" dir="r" state="m"/>
+ <connection from="43684741#5" to="-37973572#4" fromLane="0" toLane="1" via=":552842254_1_0" dir="l" state="m"/>
+ <connection from="43684741#5" to="-43684741#5" fromLane="0" toLane="0" via=":552842254_2_0" dir="t" state="m"/>
+ <connection from="44104490" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_4_0" dir="r" state="m"/>
+ <connection from="44104490" to="44104491#1" fromLane="0" toLane="0" via=":560472377_5_0" dir="l" state="m"/>
+ <connection from="44104491#0" to="44104491#1" fromLane="0" toLane="0" via=":560472377_2_0" dir="s" state="M"/>
+ <connection from="44104491#0" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_3_0" dir="t" state="m"/>
+ <connection from="44104491#1" to="37942668#1" fromLane="0" toLane="0" via=":560472378_2_0" dir="l" state="m"/>
+ <connection from="44104491#1" to="-44104491#1" fromLane="0" toLane="0" via=":560472378_3_0" dir="t" state="m"/>
+ <connection from="44641744#0" to="108329426#1" fromLane="0" toLane="0" via=":427996792_20_0" tl="427996792" linkIndex="20" dir="r" state="o"/>
+ <connection from="44641744#0" to="44641744#1" fromLane="0" toLane="0" via=":427996792_21_0" tl="427996792" linkIndex="21" dir="s" state="o"/>
+ <connection from="44641744#0" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_22_0" tl="427996792" linkIndex="22" dir="L" state="o"/>
+ <connection from="44641744#0" to="108329427#0" fromLane="0" toLane="0" via=":427996792_23_0" tl="427996792" linkIndex="23" dir="L" state="o"/>
+ <connection from="44641744#0" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_24_0" tl="427996792" linkIndex="24" dir="l" state="o"/>
+ <connection from="44641744#1" to="37449245#0" fromLane="0" toLane="0" via=":13929737_2_0" dir="r" state="M"/>
+ <connection from="44641744#1" to="172498380#0" fromLane="0" toLane="0" via=":13929737_3_0" dir="R" state="M"/>
+ <connection from="44641745#0" to="133868231#1" fromLane="0" toLane="0" via=":948350595_0_0" dir="r" state="m"/>
+ <connection from="44641745#0" to="44641745#1" fromLane="0" toLane="0" via=":948350595_1_0" dir="s" state="m"/>
+ <connection from="44641745#1" to="81394169#6" fromLane="0" toLane="0" via=":948350715_0_0" dir="r" state="m"/>
+ <connection from="44641745#1" to="44641745#2" fromLane="0" toLane="0" via=":948350715_1_0" dir="s" state="m"/>
+ <connection from="44641745#2" to="-130443629#0" fromLane="0" toLane="0" via=":243489891_3_0" dir="r" state="m"/>
+ <connection from="44641745#2" to="133868191#0" fromLane="0" toLane="1" via=":243489891_4_0" dir="s" state="m"/>
+ <connection from="44641745#2" to="130443629#1" fromLane="0" toLane="0" via=":243489891_5_0" dir="l" state="m"/>
+ <connection from="44738605#0" to="23066443#3" fromLane="0" toLane="0" via=":438042372_0_0" dir="r" state="M"/>
+ <connection from="44738605#0" to="44738605#1" fromLane="0" toLane="0" via=":438042372_1_0" dir="s" state="M"/>
+ <connection from="44738605#1" to="-38319549#0" fromLane="0" toLane="0" via=":1719213141_3_0" dir="r" state="M"/>
+ <connection from="44738605#1" to="44738605#2" fromLane="0" toLane="0" via=":1719213141_4_0" dir="s" state="M"/>
+ <connection from="44738605#1" to="38319549#1" fromLane="0" toLane="0" via=":1719213141_5_0" dir="l" state="M"/>
+ <connection from="44738605#2" to="37449249#0" fromLane="0" toLane="0" via=":438042373_0_0" tl="438042373" linkIndex="0" dir="s" state="o"/>
+ <connection from="58770723#0" to="23066443#1" fromLane="0" toLane="0" via=":443089071_0_0" dir="r" state="M"/>
+ <connection from="58770723#0" to="58770723#1" fromLane="0" toLane="0" via=":443089071_1_0" dir="s" state="M"/>
+ <connection from="58770723#1" to="-38319550#0" fromLane="0" toLane="0" via=":452425500_3_0" dir="r" state="M"/>
+ <connection from="58770723#1" to="58770723#2" fromLane="0" toLane="0" via=":452425500_4_0" dir="s" state="M"/>
+ <connection from="58770723#1" to="38319550#1" fromLane="0" toLane="0" via=":452425500_5_0" dir="l" state="M"/>
+ <connection from="58770723#2" to="42976410#5" fromLane="0" toLane="0" via=":250689290_0_0" dir="r" state="M"/>
+ <connection from="58770724" to="58770837#0" fromLane="0" toLane="0" via=":443089070_1_0" dir="r" state="M"/>
+ <connection from="58770725#0" to="81096844#1" fromLane="0" toLane="0" via=":248913142_0_0" dir="r" state="m"/>
+ <connection from="58770725#0" to="58770725#1" fromLane="0" toLane="0" via=":248913142_1_0" dir="s" state="m"/>
+ <connection from="58770725#0" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_2_0" dir="l" state="m"/>
+ <connection from="58770725#1" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_0_0" dir="r" state="m"/>
+ <connection from="58770725#1" to="58770725#2" fromLane="0" toLane="0" via=":248913133_1_0" dir="s" state="m"/>
+ <connection from="58770725#1" to="23066446#3" fromLane="0" toLane="0" via=":248913133_2_0" dir="l" state="m"/>
+ <connection from="58770725#2" to="59159260#1" fromLane="0" toLane="0" via=":733663093_0_0" dir="r" state="m"/>
+ <connection from="58770725#2" to="58770725#3" fromLane="0" toLane="0" via=":733663093_1_0" dir="s" state="m"/>
+ <connection from="58770725#2" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_2_0" dir="l" state="m"/>
+ <connection from="58770725#3" to="-38319548#1" fromLane="0" toLane="0" via=":452425493_0_0" dir="r" state="M"/>
+ <connection from="58770725#3" to="58770725#4" fromLane="0" toLane="0" via=":452425493_1_0" dir="s" state="M"/>
+ <connection from="58770725#3" to="38319548#2" fromLane="0" toLane="0" via=":452425493_2_0" dir="l" state="M"/>
+ <connection from="58770725#4" to="-110514869#0" fromLane="0" toLane="0" via=":252417189_0_0" dir="r" state="m"/>
+ <connection from="58770725#4" to="58770725#5" fromLane="0" toLane="0" via=":252417189_1_0" dir="s" state="m"/>
+ <connection from="58770725#4" to="110514869#1" fromLane="0" toLane="1" via=":252417189_2_0" dir="l" state="m"/>
+ <connection from="58770725#5" to="58770723#0" fromLane="0" toLane="0" via=":443089072_0_0" dir="r" state="m"/>
+ <connection from="58770725#5" to="58770725#6" fromLane="0" toLane="0" via=":443089072_1_0" dir="s" state="m"/>
+ <connection from="58770725#6" to="58770724" fromLane="0" toLane="0" via=":252417190_0_0" dir="l" state="m"/>
+ <connection from="58770833" to="154844461#2" fromLane="0" toLane="0" via=":1168929295_0_0" tl="1168929295" linkIndex="0" dir="s" state="o"/>
+ <connection from="58770836" to="58770833" fromLane="0" toLane="0" via=":443089066_0_0" dir="s" state="m"/>
+ <connection from="58770837#0" to="83042949" fromLane="0" toLane="0" via=":966132131_0_0" dir="r" state="M"/>
+ <connection from="58770837#0" to="58770837#1" fromLane="0" toLane="0" via=":966132131_1_0" dir="s" state="M"/>
+ <connection from="58770837#1" to="58770836" fromLane="0" toLane="0" via=":443089065_0_0" dir="s" state="m"/>
+ <connection from="58779718#0" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_8_0" dir="r" state="m"/>
+ <connection from="58779718#0" to="58779718#1" fromLane="0" toLane="0" via=":728492360_9_0" dir="s" state="m"/>
+ <connection from="58779718#0" to="107166846#2" fromLane="0" toLane="0" via=":728492360_10_0" dir="l" state="m"/>
+ <connection from="58779718#0" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_11_0" dir="t" state="m"/>
+ <connection from="58779718#1" to="81394192#5" fromLane="0" toLane="0" via=":728492364_0_0" dir="r" state="M"/>
+ <connection from="58779718#1" to="-58779718#1" fromLane="0" toLane="0" via=":728492364_1_0" dir="t" state="m"/>
+ <connection from="58779719#0" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_8_0" dir="r" state="m"/>
+ <connection from="58779719#0" to="58779719#1" fromLane="0" toLane="0" via=":728492361_9_0" dir="s" state="m"/>
+ <connection from="58779719#0" to="107166846#3" fromLane="0" toLane="0" via=":728492361_10_0" dir="l" state="m"/>
+ <connection from="58779719#0" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_11_0" dir="t" state="m"/>
+ <connection from="58779719#1" to="81394192#4" fromLane="0" toLane="0" via=":728492371_2_0" dir="r" state="M"/>
+ <connection from="58779719#1" to="-58779719#1" fromLane="0" toLane="0" via=":728492371_3_0" dir="t" state="m"/>
+ <connection from="59159259#0" to="37942667#4" fromLane="0" toLane="0" via=":1212941077_0_0" dir="r" state="M"/>
+ <connection from="59159259#0" to="59159259#1" fromLane="0" toLane="0" via=":1212941077_1_0" dir="s" state="M"/>
+ <connection from="59159259#1" to="-37973566" fromLane="0" toLane="0" via=":552842256_0_0" dir="r" state="m"/>
+ <connection from="59159259#1" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_1_0" dir="s" state="m"/>
+ <connection from="59159259#1" to="43684741#0" fromLane="0" toLane="0" via=":552842256_2_0" dir="s" state="m"/>
+ <connection from="59159259#1" to="130443630#0" fromLane="0" toLane="0" via=":552842256_3_0" dir="L" state="m"/>
+ <connection from="59159259#1" to="105251811#0" fromLane="0" toLane="0" via=":552842256_4_0" dir="L" state="m"/>
+ <connection from="59159259#1" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_5_0" dir="l" state="m"/>
+ <connection from="59159260#0" to="59159260#1" fromLane="0" toLane="0" via=":733663093_3_0" dir="s" state="M"/>
+ <connection from="59159260#0" to="58770725#3" fromLane="0" toLane="0" via=":733663093_4_0" dir="l" state="m"/>
+ <connection from="59159260#0" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_5_0" dir="t" state="m"/>
+ <connection from="59159260#1" to="23066443#5" fromLane="0" toLane="0" via=":733663121_0_0" dir="r" state="M"/>
+ <connection from="59159260#1" to="59159260#2" fromLane="0" toLane="0" via=":733663121_1_0" dir="s" state="M"/>
+ <connection from="59159260#1" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_2_0" dir="t" state="m"/>
+ <connection from="59159260#2" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_4_0" dir="r" state="M"/>
+ <connection from="59159260#2" to="59159260#3" fromLane="0" toLane="0" via=":733663096_5_0" dir="s" state="M"/>
+ <connection from="59159260#2" to="38319546#8" fromLane="0" toLane="0" via=":733663096_6_0" dir="l" state="m"/>
+ <connection from="59159260#2" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_7_0" dir="t" state="m"/>
+ <connection from="59159260#3" to="37449253#1" fromLane="0" toLane="0" via=":733663089_0_0" dir="r" state="m"/>
+ <connection from="59159260#3" to="-59159260#3" fromLane="0" toLane="0" via=":733663089_1_0" dir="t" state="m"/>
+ <connection from="59159262#0" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_12_0" dir="r" state="m"/>
+ <connection from="59159262#0" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_13_0" dir="s" state="m"/>
+ <connection from="59159262#0" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_14_0" dir="l" state="m"/>
+ <connection from="59159262#0" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_15_0" dir="t" state="m"/>
+ <connection from="59159262#1" to="59159262#2" fromLane="0" toLane="0" via=":733663082_6_0" dir="s" state="M"/>
+ <connection from="59159262#1" to="37973565#1" fromLane="0" toLane="0" via=":733663082_7_0" dir="l" state="m"/>
+ <connection from="59159262#1" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_8_0" dir="t" state="m"/>
+ <connection from="59159262#2" to="59159262#3" fromLane="0" toLane="0" via=":956116503_6_0" dir="s" state="M"/>
+ <connection from="59159262#2" to="44104491#0" fromLane="0" toLane="0" via=":956116503_7_0" dir="l" state="m"/>
+ <connection from="59159262#2" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_8_0" dir="t" state="m"/>
+ <connection from="59159262#3" to="-134872478" fromLane="0" toLane="0" via=":1482088987_6_0" dir="r" state="M"/>
+ <connection from="59159262#3" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_7_0" dir="s" state="M"/>
+ <connection from="59159262#3" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_8_0" dir="t" state="m"/>
+ <connection from="59159262#4" to="69931595#1" fromLane="0" toLane="0" via=":733663136_6_0" dir="r" state="m"/>
+ <connection from="59159262#4" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_7_0" dir="l" state="m"/>
+ <connection from="59159262#4" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_8_0" dir="t" state="m"/>
+ <connection from="59159266#0" to="134872478" fromLane="0" toLane="0" via=":1482088973_2_0" dir="r" state="M"/>
+ <connection from="59159266#0" to="59159266#1" fromLane="0" toLane="0" via=":1482088973_3_0" dir="s" state="M"/>
+ <connection from="59159266#1" to="37942667#5" fromLane="0" toLane="0" via=":733663070_0_0" dir="r" state="M"/>
+ <connection from="69931595#0" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_0_0" dir="r" state="M"/>
+ <connection from="69931595#0" to="69931595#1" fromLane="0" toLane="0" via=":733663136_1_0" dir="s" state="M"/>
+ <connection from="69931595#0" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_2_0" dir="t" state="m"/>
+ <connection from="69931595#1" to="191176268" fromLane="0" toLane="0" via=":2017759588_0_0" dir="r" state="M"/>
+ <connection from="69931595#1" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_1_0" dir="s" state="M"/>
+ <connection from="69931595#1" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_2_0" dir="t" state="m"/>
+ <connection from="69931595#2" to="59159266#0" fromLane="0" toLane="0" via=":733663116_0_0" dir="r" state="M"/>
+ <connection from="69931595#2" to="69931595#3" fromLane="0" toLane="0" via=":733663116_1_0" dir="s" state="M"/>
+ <connection from="69931595#2" to="-69931595#2" fromLane="0" toLane="0" via=":733663116_2_0" dir="t" state="m"/>
+ <connection from="69931595#3" to="59159259#0" fromLane="0" toLane="0" via=":733663076_0_0" dir="r" state="M"/>
+ <connection from="69931595#3" to="105283535#0" fromLane="0" toLane="0" via=":733663076_1_0" dir="R" state="M"/>
+ <connection from="69931595#3" to="108329425#0" fromLane="0" toLane="0" via=":733663076_2_0" dir="s" state="m"/>
+ <connection from="69931595#3" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_3_0" dir="t" state="m"/>
+ <connection from="75656628#0" to="81096822#2" fromLane="0" toLane="0" via=":543360161_3_0" dir="r" state="M"/>
+ <connection from="75656628#0" to="75656628#1" fromLane="0" toLane="0" via=":543360161_4_0" dir="s" state="M"/>
+ <connection from="75656628#0" to="-81096822#1" fromLane="0" toLane="0" via=":543360161_5_0" dir="l" state="M"/>
+ <connection from="81096816#0" to="81096816#1" fromLane="0" toLane="0" via=":2081499952_0_0" dir="s" state="M"/>
+ <connection from="81096816#0" to="197955309#0" fromLane="0" toLane="0" via=":2081499952_1_0" dir="l" state="M"/>
+ <connection from="81096816#1" to="24573905#0" fromLane="0" toLane="0" via=":443089068_0_0" dir="r" state="M"/>
+ <connection from="81096816#1" to="81096816#2" fromLane="0" toLane="0" via=":443089068_1_0" dir="s" state="M"/>
+ <connection from="81096816#2" to="81096816#3" fromLane="0" toLane="0" via=":444026917_0_0" tl="444026917" linkIndex="0" dir="s" state="o"/>
+ <connection from="81096816#2" to="8272412#4" fromLane="0" toLane="0" via=":444026917_1_0" tl="444026917" linkIndex="1" dir="l" state="o"/>
+ <connection from="81096816#3" to="81096816#4" fromLane="0" toLane="0" via=":1624003199_0_0" dir="s" state="m"/>
+ <connection from="81096816#4" to="81096816#5" fromLane="0" toLane="0" via=":538810722_0_0" tl="538810722" linkIndex="0" dir="s" state="o"/>
+ <connection from="81096816#5" to="81096816#6" fromLane="0" toLane="0" via=":1726380179_0_0" tl="1726380179" linkIndex="0" dir="s" state="o"/>
+ <connection from="81096822#0" to="172498387#4" fromLane="0" toLane="0" via=":1669480292_3_0" dir="r" state="m"/>
+ <connection from="81096822#0" to="81096822#1" fromLane="0" toLane="0" via=":1669480292_4_0" dir="s" state="m"/>
+ <connection from="81096822#0" to="-81096822#0" fromLane="0" toLane="0" via=":1669480292_5_0" dir="t" state="m"/>
+ <connection from="81096822#1" to="81096822#2" fromLane="0" toLane="0" via=":543360161_6_0" dir="s" state="m"/>
+ <connection from="81096822#1" to="75656628#1" fromLane="0" toLane="0" via=":543360161_7_0" dir="l" state="m"/>
+ <connection from="81096822#1" to="-81096822#1" fromLane="0" toLane="0" via=":543360161_8_0" dir="t" state="m"/>
+ <connection from="81096822#2" to="-81096822#2" fromLane="0" toLane="0" via=":1268463825_0_0" dir="t" state="M"/>
+ <connection from="81096844#0" to="81096844#1" fromLane="0" toLane="0" via=":248913142_3_0" dir="s" state="M"/>
+ <connection from="81096844#0" to="58770725#1" fromLane="0" toLane="0" via=":248913142_4_0" dir="l" state="m"/>
+ <connection from="81096844#0" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_5_0" dir="t" state="m"/>
+ <connection from="81096844#1" to="23066443#7" fromLane="0" toLane="0" via=":248913144_0_0" dir="r" state="M"/>
+ <connection from="81096844#1" to="81096844#2" fromLane="0" toLane="0" via=":248913144_1_0" dir="s" state="M"/>
+ <connection from="81096844#1" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_2_0" dir="t" state="m"/>
+ <connection from="81096844#2" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_4_0" dir="r" state="M"/>
+ <connection from="81096844#2" to="81096844#3" fromLane="0" toLane="0" via=":452425487_5_0" dir="s" state="M"/>
+ <connection from="81096844#2" to="38319546#6" fromLane="0" toLane="0" via=":452425487_6_0" dir="l" state="m"/>
+ <connection from="81096844#2" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_7_0" dir="t" state="m"/>
+ <connection from="81096844#3" to="37449253#3" fromLane="0" toLane="0" via=":248913145_0_0" dir="r" state="m"/>
+ <connection from="81096844#3" to="-81096844#3" fromLane="0" toLane="0" via=":248913145_1_0" dir="t" state="m"/>
+ <connection from="81096855#0" to="81096855#1" fromLane="0" toLane="0" via=":945146437_2_0" dir="s" state="M"/>
+ <connection from="81096855#0" to="129780028" fromLane="0" toLane="0" via=":945146437_3_0" dir="l" state="M"/>
+ <connection from="81096860" to="81096855#1" fromLane="0" toLane="0" via=":945146437_0_0" dir="r" state="m"/>
+ <connection from="81096860" to="129780028" fromLane="0" toLane="0" via=":945146437_1_0" dir="s" state="m"/>
+ <connection from="81124939#0" to="-38319548#3" fromLane="0" toLane="0" via=":1669480286_0_0" dir="r" state="M"/>
+ <connection from="81124939#0" to="81124939#1" fromLane="0" toLane="0" via=":1669480286_1_0" dir="s" state="M"/>
+ <connection from="81124939#0" to="81124939#1" fromLane="1" toLane="1" via=":1669480286_2_0" dir="s" state="M"/>
+ <connection from="81124939#0" to="38319548#4" fromLane="1" toLane="0" via=":1669480286_3_0" dir="l" state="M"/>
+ <connection from="81124939#1" to="-110514869#2" fromLane="0" toLane="0" via=":1669480282_0_0" dir="r" state="M"/>
+ <connection from="81124939#1" to="154844485#0" fromLane="0" toLane="0" via=":1669480282_1_0" dir="s" state="M"/>
+ <connection from="81124939#1" to="154844485#0" fromLane="1" toLane="1" via=":1669480282_2_0" dir="s" state="M"/>
+ <connection from="81124939#1" to="154844503" fromLane="1" toLane="1" via=":1669480282_3_0" dir="l" state="M"/>
+ <connection from="81124943#0" to="197955309#4" fromLane="0" toLane="0" via=":2081499949_3_0" dir="r" state="M"/>
+ <connection from="81124943#0" to="81124943#1" fromLane="0" toLane="0" via=":2081499949_4_0" dir="s" state="M"/>
+ <connection from="81124943#0" to="81124943#1" fromLane="1" toLane="1" via=":2081499949_5_0" dir="s" state="M"/>
+ <connection from="81124943#0" to="-197955309#3" fromLane="1" toLane="0" via=":2081499949_6_0" dir="l" state="M"/>
+ <connection from="81124943#1" to="108733422" fromLane="0" toLane="0" via=":1246731620_2_0" dir="s" state="M"/>
+ <connection from="81124943#1" to="170590352" fromLane="0" toLane="0" via=":1246731620_3_0" dir="s" state="m"/>
+ <connection from="81124943#1" to="170590352" fromLane="1" toLane="1" via=":1246731620_4_0" dir="s" state="M"/>
+ <connection from="81124945" to="23262356#3" fromLane="0" toLane="0" via=":255227475_9_0" dir="r" state="m"/>
+ <connection from="81124945" to="149422199#0" fromLane="0" toLane="0" via=":255227475_10_0" dir="s" state="m"/>
+ <connection from="81124945" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_11_0" dir="l" state="m"/>
+ <connection from="81394162#0" to="109912572#3" fromLane="0" toLane="0" via=":1257054092_0_0" dir="r" state="M"/>
+ <connection from="81394162#0" to="81394162#1" fromLane="0" toLane="0" via=":1257054092_1_0" dir="s" state="M"/>
+ <connection from="81394162#0" to="81394162#1" fromLane="1" toLane="1" via=":1257054092_2_0" dir="s" state="M"/>
+ <connection from="81394162#0" to="-109912572#2" fromLane="1" toLane="0" via=":1257054092_3_0" dir="l" state="M"/>
+ <connection from="81394162#1" to="81394162#2" fromLane="0" toLane="0" via=":438042380_1_0" dir="s" state="M"/>
+ <connection from="81394162#1" to="81394162#2" fromLane="1" toLane="1" via=":438042380_2_0" dir="s" state="M"/>
+ <connection from="81394162#2" to="37449249#3" fromLane="0" toLane="0" via=":438042387_0_0" tl="438042387" linkIndex="0" dir="s" state="o"/>
+ <connection from="81394169#0" to="109438231#0" fromLane="0" toLane="0" via=":948350676_0_0" dir="s" state="M"/>
+ <connection from="81394169#0" to="81394169#1" fromLane="0" toLane="0" via=":948350676_1_0" dir="s" state="M"/>
+ <connection from="81394169#1" to="130443629#4" fromLane="0" toLane="0" via=":948350615_6_0" dir="r" state="M"/>
+ <connection from="81394169#1" to="81394169#2" fromLane="0" toLane="0" via=":948350615_7_0" dir="s" state="M"/>
+ <connection from="81394169#1" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_8_0" dir="s" state="M"/>
+ <connection from="81394169#2" to="37351086#1" fromLane="0" toLane="0" via=":948350693_0_0" dir="r" state="M"/>
+ <connection from="81394169#2" to="81394169#3" fromLane="0" toLane="0" via=":948350693_1_0" dir="s" state="M"/>
+ <connection from="81394169#3" to="133868229#0" fromLane="0" toLane="0" via=":948350707_4_0" dir="r" state="m"/>
+ <connection from="81394169#3" to="133868186" fromLane="0" toLane="1" via=":948350707_5_0" dir="R" state="M"/>
+ <connection from="81394169#3" to="81394169#4" fromLane="0" toLane="0" via=":948350707_6_0" dir="s" state="m"/>
+ <connection from="81394169#3" to="-81394200#2" fromLane="0" toLane="0" via=":948350707_7_0" dir="l" state="m"/>
+ <connection from="81394169#4" to="81394169#5" fromLane="0" toLane="0" via=":948350621_3_0" dir="s" state="M"/>
+ <connection from="81394169#4" to="37351089#1" fromLane="0" toLane="2" via=":948350621_4_0" dir="l" state="M"/>
+ <connection from="81394169#4" to="37351089#1" fromLane="0" toLane="3" via=":948350621_5_0" dir="l" state="M"/>
+ <connection from="81394169#5" to="81394169#6" fromLane="0" toLane="0" via=":948350715_2_0" dir="s" state="M"/>
+ <connection from="81394169#5" to="44641745#2" fromLane="0" toLane="0" via=":948350715_3_0" dir="l" state="M"/>
+ <connection from="81394188#0" to="133868191#2" fromLane="0" toLane="0" via=":948350673_0_0" dir="r" state="M"/>
+ <connection from="81394188#0" to="133868191#2" fromLane="0" toLane="1" via=":948350673_1_0" dir="r" state="M"/>
+ <connection from="81394188#0" to="81394188#1" fromLane="0" toLane="0" via=":948350673_2_0" dir="s" state="M"/>
+ <connection from="81394188#1" to="81394188#2" fromLane="0" toLane="0" via=":724002953_0_0" dir="s" state="M"/>
+ <connection from="81394188#1" to="37369047#1" fromLane="0" toLane="2" via=":724002953_1_0" dir="l" state="M"/>
+ <connection from="81394188#1" to="37369047#1" fromLane="0" toLane="3" via=":724002953_2_0" dir="l" state="M"/>
+ <connection from="81394188#2" to="81394188#3" fromLane="0" toLane="0" via=":1252777712_0_0" dir="s" state="M"/>
+ <connection from="81394188#3" to="109438141" fromLane="0" toLane="0" via=":950640428_0_0" dir="s" state="M"/>
+ <connection from="81394188#3" to="81394188#4" fromLane="0" toLane="0" via=":950640428_1_0" dir="s" state="M"/>
+ <connection from="81394188#4" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_0_0" dir="s" state="M"/>
+ <connection from="81394188#4" to="134572336#1" fromLane="0" toLane="1" via=":477486714_1_0" dir="L" state="m"/>
+ <connection from="81394188#4" to="81394169#0" fromLane="0" toLane="0" via=":477486714_2_0" dir="l" state="m"/>
+ <connection from="81394192#0" to="106836308#0" fromLane="0" toLane="0" via=":1228499918_0_0" dir="r" state="M"/>
+ <connection from="81394192#0" to="81394192#1" fromLane="0" toLane="0" via=":1228499918_1_0" dir="s" state="M"/>
+ <connection from="81394192#1" to="81394192#2" fromLane="0" toLane="0" via=":1228499945_0_0" dir="s" state="M"/>
+ <connection from="81394192#1" to="106836317#3" fromLane="0" toLane="0" via=":1228499945_1_0" dir="l" state="M"/>
+ <connection from="81394192#10" to="37973569#7" fromLane="0" toLane="0" via=":446017740_2_0" tl="446017740" linkIndex="2" dir="r" state="o"/>
+ <connection from="81394192#10" to="81394192#11" fromLane="0" toLane="0" via=":446017740_3_0" tl="446017740" linkIndex="3" dir="s" state="o"/>
+ <connection from="81394192#11" to="111863125#7" fromLane="0" toLane="0" via=":950640474_2_0" dir="r" state="m"/>
+ <connection from="81394192#11" to="81394192#12" fromLane="0" toLane="0" via=":950640474_3_0" dir="s" state="m"/>
+ <connection from="81394192#12" to="37973572#3" fromLane="0" toLane="0" via=":444026884_8_0" tl="444026884" linkIndex="8" dir="r" state="o"/>
+ <connection from="81394192#12" to="81394192#13" fromLane="0" toLane="0" via=":444026884_9_0" tl="444026884" linkIndex="9" dir="s" state="o"/>
+ <connection from="81394192#12" to="-37973572#2" fromLane="0" toLane="1" via=":444026884_10_0" tl="444026884" linkIndex="10" dir="l" state="o"/>
+ <connection from="81394192#13" to="81394192#14" fromLane="0" toLane="0" via=":950640361_2_0" dir="s" state="m"/>
+ <connection from="81394192#13" to="111549913#2" fromLane="0" toLane="0" via=":950640361_3_0" dir="l" state="m"/>
+ <connection from="81394192#14" to="81394192#15" fromLane="0" toLane="0" via=":446017739_2_0" tl="446017739" linkIndex="2" dir="s" state="o"/>
+ <connection from="81394192#14" to="37973568#3" fromLane="0" toLane="0" via=":446017739_3_0" tl="446017739" linkIndex="3" dir="l" state="o"/>
+ <connection from="81394192#15" to="37973571#0" fromLane="0" toLane="0" via=":444026886_0_0" dir="s" state="M"/>
+ <connection from="81394192#2" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_0_0" dir="r" state="m"/>
+ <connection from="81394192#2" to="81394192#3" fromLane="0" toLane="0" via=":446766149_1_0" dir="s" state="m"/>
+ <connection from="81394192#2" to="59159262#0" fromLane="0" toLane="0" via=":446766149_2_0" dir="l" state="m"/>
+ <connection from="81394192#3" to="-58779719#1" fromLane="0" toLane="0" via=":728492371_0_0" dir="r" state="M"/>
+ <connection from="81394192#3" to="81394192#4" fromLane="0" toLane="0" via=":728492371_1_0" dir="s" state="m"/>
+ <connection from="81394192#4" to="-58779718#1" fromLane="0" toLane="0" via=":728492364_2_0" dir="r" state="M"/>
+ <connection from="81394192#4" to="81394192#5" fromLane="0" toLane="0" via=":728492364_3_0" dir="s" state="m"/>
+ <connection from="81394192#5" to="-38027665#3" fromLane="0" toLane="0" via=":446770959_2_0" dir="r" state="M"/>
+ <connection from="81394192#5" to="81394192#6" fromLane="0" toLane="0" via=":446770959_3_0" dir="s" state="m"/>
+ <connection from="81394192#6" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_6_0" dir="r" state="m"/>
+ <connection from="81394192#6" to="81394192#7" fromLane="0" toLane="0" via=":552842257_7_0" dir="s" state="m"/>
+ <connection from="81394192#6" to="107028581#3" fromLane="0" toLane="0" via=":552842257_8_0" dir="l" state="m"/>
+ <connection from="81394192#7" to="43684741#1" fromLane="0" toLane="0" via=":561204538_6_0" dir="r" state="m"/>
+ <connection from="81394192#7" to="81394192#8" fromLane="0" toLane="0" via=":561204538_7_0" dir="s" state="m"/>
+ <connection from="81394192#7" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_8_0" dir="l" state="m"/>
+ <connection from="81394192#8" to="160584980" fromLane="0" toLane="0" via=":1726380195_0_0" dir="s" state="M"/>
+ <connection from="81394192#8" to="81394192#9" fromLane="0" toLane="0" via=":1726380195_1_0" dir="s" state="M"/>
+ <connection from="81394192#9" to="81394192#10" fromLane="0" toLane="0" via=":1726380193_2_0" dir="s" state="m"/>
+ <connection from="81394192#9" to="160584982#1" fromLane="0" toLane="0" via=":1726380193_3_0" dir="l" state="m"/>
+ <connection from="81394200#0" to="133868191#1" fromLane="0" toLane="0" via=":948350597_7_0" dir="r" state="M"/>
+ <connection from="81394200#0" to="81394200#1" fromLane="0" toLane="0" via=":948350597_8_0" dir="s" state="M"/>
+ <connection from="81394200#0" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_9_0" dir="t" state="m"/>
+ <connection from="81394200#1" to="130443629#2" fromLane="0" toLane="0" via=":948350640_12_0" dir="r" state="M"/>
+ <connection from="81394200#1" to="81394200#2" fromLane="0" toLane="0" via=":948350640_13_0" dir="s" state="M"/>
+ <connection from="81394200#1" to="-130443629#1" fromLane="0" toLane="0" via=":948350640_14_0" dir="l" state="m"/>
+ <connection from="81394200#1" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_15_0" dir="t" state="m"/>
+ <connection from="81394200#2" to="133868229#0" fromLane="0" toLane="1" via=":948350707_13_0" dir="s" state="M"/>
+ <connection from="81394200#2" to="133868186" fromLane="0" toLane="3" via=":948350707_14_0" dir="s" state="M"/>
+ <connection from="81394200#2" to="81394169#4" fromLane="0" toLane="0" via=":948350707_15_0" dir="l" state="m"/>
+ <connection from="81394200#2" to="-81394200#2" fromLane="0" toLane="0" via=":948350707_16_0" dir="t" state="m"/>
+ <connection from="81523316" to="37973565#8" fromLane="0" toLane="0" via=":948350607_0_0" dir="r" state="M"/>
+ <connection from="81523316" to="133868231#0" fromLane="0" toLane="0" via=":948350607_1_0" dir="s" state="M"/>
+ <connection from="81523316" to="133868188" fromLane="1" toLane="0" via=":948350607_2_0" dir="s" state="M"/>
+ <connection from="81523330#0" to="81523330#1" fromLane="0" toLane="0" via=":1252777720_5_0" dir="s" state="M"/>
+ <connection from="81523330#0" to="81523330#1" fromLane="1" toLane="1" via=":1252777720_6_0" dir="s" state="M"/>
+ <connection from="81523330#0" to="-81523330#0" fromLane="1" toLane="1" via=":1252777720_7_0" dir="t" state="m"/>
+ <connection from="81523330#1" to="23315111#3" fromLane="0" toLane="0" via=":950094425_13_0" dir="r" state="M"/>
+ <connection from="81523330#1" to="81523330#2" fromLane="0" toLane="0" via=":950094425_14_0" dir="s" state="M"/>
+ <connection from="81523330#1" to="81523330#2" fromLane="1" toLane="1" via=":950094425_15_0" dir="s" state="M"/>
+ <connection from="81523330#1" to="-23315111#2" fromLane="1" toLane="0" via=":950094425_16_0" dir="l" state="m"/>
+ <connection from="81523330#1" to="-81523330#1" fromLane="1" toLane="1" via=":950094425_17_0" dir="t" state="m"/>
+ <connection from="81523330#2" to="-108329427#0" fromLane="0" toLane="0" via=":1263725264_13_0" dir="r" state="M"/>
+ <connection from="81523330#2" to="81523330#3" fromLane="0" toLane="0" via=":1263725264_14_0" dir="s" state="M"/>
+ <connection from="81523330#2" to="81523330#3" fromLane="1" toLane="1" via=":1263725264_15_0" dir="s" state="M"/>
+ <connection from="81523330#2" to="108329427#1" fromLane="1" toLane="0" via=":1263725264_16_0" dir="l" state="m"/>
+ <connection from="81523330#2" to="-81523330#2" fromLane="1" toLane="1" via=":1263725264_17_0" dir="t" state="m"/>
+ <connection from="81523330#3" to="108329426#0" fromLane="0" toLane="0" via=":1243159116_7_0" dir="r" state="M"/>
+ <connection from="81523330#3" to="81523330#4" fromLane="0" toLane="0" via=":1243159116_8_0" dir="s" state="M"/>
+ <connection from="81523330#3" to="81523330#4" fromLane="1" toLane="1" via=":1243159116_9_0" dir="s" state="M"/>
+ <connection from="81523330#3" to="-81523330#3" fromLane="1" toLane="1" via=":1243159116_10_0" dir="t" state="m"/>
+ <connection from="81523330#4" to="139118808" fromLane="0" toLane="0" via=":950094494_7_0" dir="r" state="M"/>
+ <connection from="81523330#4" to="139118805#0" fromLane="0" toLane="0" via=":950094494_8_0" dir="s" state="M"/>
+ <connection from="81523330#4" to="139118805#0" fromLane="1" toLane="1" via=":950094494_9_0" dir="s" state="M"/>
+ <connection from="81523330#4" to="-81523330#4" fromLane="1" toLane="1" via=":950094494_10_0" dir="t" state="m"/>
+ <connection from="81523332#0" to="38319546#4" fromLane="0" toLane="0" via=":452425486_6_0" dir="r" state="M"/>
+ <connection from="81523332#0" to="81523332#1" fromLane="0" toLane="0" via=":452425486_7_0" dir="s" state="M"/>
+ <connection from="81523332#0" to="-38319546#3" fromLane="0" toLane="0" via=":452425486_8_0" dir="l" state="M"/>
+ <connection from="81523332#1" to="172498387#0" fromLane="0" toLane="0" via=":435668513_2_0" dir="s" state="M"/>
+ <connection from="81523332#1" to="129780026#0" fromLane="0" toLane="0" via=":435668513_3_0" dir="l" state="M"/>
+ <connection from="81523343" to="132323955" fromLane="0" toLane="0" via=":320879142_3_0" dir="r" state="M"/>
+ <connection from="81523343" to="139118804#0" fromLane="0" toLane="0" via=":320879142_4_0" dir="s" state="m"/>
+ <connection from="81523343" to="129780020" fromLane="0" toLane="0" via=":320879142_5_0" dir="s" state="m"/>
+ <connection from="81547611" to="-108733421" fromLane="0" toLane="0" via=":1246731541_2_0" dir="r" state="M"/>
+ <connection from="81547611" to="170590354#0" fromLane="0" toLane="1" via=":1246731541_3_0" dir="s" state="M"/>
+ <connection from="81672207#0" to="166625259" fromLane="0" toLane="0" via=":438042379_0_0" dir="s" state="M"/>
+ <connection from="81672207#0" to="81672207#1" fromLane="0" toLane="0" via=":438042379_1_0" dir="s" state="m"/>
+ <connection from="81672207#1" to="-105254616#1" fromLane="0" toLane="0" via=":1719223322_0_0" dir="r" state="M"/>
+ <connection from="81672207#1" to="81672207#2" fromLane="0" toLane="0" via=":1719223322_1_0" dir="s" state="M"/>
+ <connection from="81672207#2" to="37973569#4" fromLane="0" toLane="0" via=":538265870_0_0" dir="r" state="M"/>
+ <connection from="81672209" to="81672216#7" fromLane="0" toLane="0" via=":1457699222_6_0" dir="r" state="="/>
+ <connection from="81672209" to="-81672216#6" fromLane="0" toLane="0" via=":1457699222_7_0" dir="l" state="="/>
+ <connection from="81672209" to="-81672209" fromLane="0" toLane="0" via=":1457699222_8_0" dir="t" state="="/>
+ <connection from="81672213" to="81672216#8" fromLane="0" toLane="0" via=":951739568_6_0" dir="r" state="="/>
+ <connection from="81672213" to="-81672216#7" fromLane="0" toLane="0" via=":951739568_7_0" dir="l" state="="/>
+ <connection from="81672213" to="-81672213" fromLane="0" toLane="0" via=":951739568_8_0" dir="t" state="="/>
+ <connection from="81672214" to="81672216#9" fromLane="0" toLane="0" via=":951739549_6_0" dir="r" state="="/>
+ <connection from="81672214" to="-81672216#8" fromLane="0" toLane="0" via=":951739549_7_0" dir="l" state="="/>
+ <connection from="81672214" to="-81672214" fromLane="0" toLane="0" via=":951739549_8_0" dir="t" state="="/>
+ <connection from="81672216#0" to="-81672216#9" fromLane="0" toLane="0" via=":1457699220_6_0" dir="r" state="="/>
+ <connection from="81672216#0" to="81672216#1" fromLane="0" toLane="0" via=":1457699220_7_0" dir="s" state="="/>
+ <connection from="81672216#0" to="-81672216#0" fromLane="0" toLane="0" via=":1457699220_8_0" dir="t" state="="/>
+ <connection from="81672216#1" to="81672214" fromLane="0" toLane="0" via=":951739766_6_0" dir="r" state="="/>
+ <connection from="81672216#1" to="81672216#2" fromLane="0" toLane="0" via=":951739766_7_0" dir="s" state="="/>
+ <connection from="81672216#1" to="-81672216#1" fromLane="0" toLane="0" via=":951739766_8_0" dir="t" state="="/>
+ <connection from="81672216#2" to="81672213" fromLane="0" toLane="0" via=":951739420_6_0" dir="r" state="="/>
+ <connection from="81672216#2" to="81672216#3" fromLane="0" toLane="0" via=":951739420_7_0" dir="s" state="="/>
+ <connection from="81672216#2" to="-81672216#2" fromLane="0" toLane="0" via=":951739420_8_0" dir="t" state="="/>
+ <connection from="81672216#3" to="81672209" fromLane="0" toLane="0" via=":951739458_6_0" dir="r" state="="/>
+ <connection from="81672216#3" to="81672216#4" fromLane="0" toLane="0" via=":951739458_7_0" dir="s" state="="/>
+ <connection from="81672216#3" to="-81672216#3" fromLane="0" toLane="0" via=":951739458_8_0" dir="t" state="="/>
+ <connection from="81672216#4" to="81672218" fromLane="0" toLane="0" via=":951739511_6_0" dir="r" state="="/>
+ <connection from="81672216#4" to="81672216#5" fromLane="0" toLane="0" via=":951739511_7_0" dir="s" state="="/>
+ <connection from="81672216#4" to="-81672216#4" fromLane="0" toLane="0" via=":951739511_8_0" dir="t" state="="/>
+ <connection from="81672216#5" to="81672216#6" fromLane="0" toLane="0" via=":1457699223_0_0" dir="s" state="="/>
+ <connection from="81672216#5" to="-81672218" fromLane="0" toLane="0" via=":1457699223_1_0" dir="r" state="="/>
+ <connection from="81672216#5" to="-81672216#5" fromLane="0" toLane="0" via=":1457699223_2_0" dir="t" state="="/>
+ <connection from="81672216#6" to="-81672209" fromLane="0" toLane="0" via=":1457699222_0_0" dir="r" state="="/>
+ <connection from="81672216#6" to="81672216#7" fromLane="0" toLane="0" via=":1457699222_1_0" dir="s" state="="/>
+ <connection from="81672216#6" to="-81672216#6" fromLane="0" toLane="0" via=":1457699222_2_0" dir="t" state="="/>
+ <connection from="81672216#7" to="-81672213" fromLane="0" toLane="0" via=":951739568_0_0" dir="r" state="="/>
+ <connection from="81672216#7" to="81672216#8" fromLane="0" toLane="0" via=":951739568_1_0" dir="s" state="="/>
+ <connection from="81672216#7" to="-81672216#7" fromLane="0" toLane="0" via=":951739568_2_0" dir="t" state="="/>
+ <connection from="81672216#8" to="-81672214" fromLane="0" toLane="0" via=":951739549_0_0" dir="r" state="="/>
+ <connection from="81672216#8" to="81672216#9" fromLane="0" toLane="0" via=":951739549_1_0" dir="s" state="="/>
+ <connection from="81672216#8" to="-81672216#8" fromLane="0" toLane="0" via=":951739549_2_0" dir="t" state="="/>
+ <connection from="81672216#9" to="81672216#1" fromLane="0" toLane="0" via=":1457699220_3_0" dir="r" state="="/>
+ <connection from="81672216#9" to="-81672216#0" fromLane="0" toLane="0" via=":1457699220_4_0" dir="l" state="="/>
+ <connection from="81672216#9" to="-81672216#9" fromLane="0" toLane="0" via=":1457699220_5_0" dir="t" state="="/>
+ <connection from="81672218" to="81672216#6" fromLane="0" toLane="0" via=":1457699223_6_0" dir="r" state="="/>
+ <connection from="81672218" to="-81672216#5" fromLane="0" toLane="0" via=":1457699223_7_0" dir="l" state="="/>
+ <connection from="81672218" to="-81672218" fromLane="0" toLane="0" via=":1457699223_8_0" dir="t" state="="/>
+ <connection from="8272412#0" to="38319550#12" fromLane="0" toLane="0" via=":1719213509_6_0" dir="r" state="M"/>
+ <connection from="8272412#0" to="8272412#1" fromLane="0" toLane="0" via=":1719213509_7_0" dir="s" state="M"/>
+ <connection from="8272412#0" to="-38319550#11" fromLane="0" toLane="0" via=":1719213509_8_0" dir="l" state="M"/>
+ <connection from="8272412#1" to="24573930#3" fromLane="0" toLane="0" via=":538810724_2_0" dir="r" state="M"/>
+ <connection from="8272412#1" to="8272412#2" fromLane="0" toLane="0" via=":538810724_3_0" dir="s" state="M"/>
+ <connection from="8272412#2" to="8272412#3" fromLane="0" toLane="0" via=":538810726_2_0" dir="s" state="m"/>
+ <connection from="8272412#2" to="24573897#2" fromLane="0" toLane="0" via=":538810726_3_0" dir="l" state="m"/>
+ <connection from="8272412#3" to="81096816#3" fromLane="0" toLane="0" via=":444026917_2_0" tl="444026917" linkIndex="2" dir="r" state="o"/>
+ <connection from="8272412#3" to="8272412#4" fromLane="0" toLane="0" via=":444026917_3_0" tl="444026917" linkIndex="3" dir="s" state="o"/>
+ <connection from="8272412#4" to="160587538#0" fromLane="0" toLane="0" via=":1726394722_1_0" tl="1726394722" linkIndex="1" dir="l" state="o"/>
+ <connection from="8272412#4" to="160587538#0" fromLane="0" toLane="1" via=":1726394722_2_0" tl="1726394722" linkIndex="2" dir="l" state="o"/>
+ <connection from="83038920" to="-83038923#1" fromLane="0" toLane="0" via=":966097830_0_0" dir="r" state="M"/>
+ <connection from="83038920" to="-83038920" fromLane="0" toLane="0" via=":966097830_1_0" dir="t" state="m"/>
+ <connection from="83038923#0" to="83038923#1" fromLane="0" toLane="0" via=":966097837_6_0" dir="s" state="="/>
+ <connection from="83038923#0" to="83038920" fromLane="0" toLane="0" via=":966097837_7_0" dir="l" state="="/>
+ <connection from="83038923#0" to="-83038923#0" fromLane="0" toLane="0" via=":966097837_8_0" dir="t" state="="/>
+ <connection from="83038923#1" to="-83038920" fromLane="0" toLane="0" via=":966097830_2_0" dir="l" state="M"/>
+ <connection from="83038923#1" to="-83038923#1" fromLane="0" toLane="0" via=":966097830_3_0" dir="t" state="m"/>
+ <connection from="83042949" to="37771902#2" fromLane="0" toLane="0" via=":966132112_0_0" dir="r" state="m"/>
+ <connection from="83051417" to="-24573937" fromLane="0" toLane="0" via=":966193808_0_0" dir="r" state="m"/>
+ <connection from="83051417" to="83051420" fromLane="0" toLane="0" via=":966193808_1_0" dir="s" state="m"/>
+ <connection from="83051417" to="83051436#0" fromLane="0" toLane="0" via=":966193808_2_0" dir="l" state="m"/>
+ <connection from="83051417" to="-83051417" fromLane="0" toLane="0" via=":966193808_3_0" dir="t" state="m"/>
+ <connection from="83051420" to="37772595#3" fromLane="0" toLane="0" via=":966193796_0_0" dir="r" state="M"/>
+ <connection from="83051420" to="-83051420" fromLane="0" toLane="0" via=":966193796_1_0" dir="t" state="m"/>
+ <connection from="83051421#0" to="24573939#1" fromLane="0" toLane="0" via=":267169686_4_0" dir="r" state="="/>
+ <connection from="83051421#0" to="83051421#1" fromLane="0" toLane="0" via=":267169686_5_0" dir="s" state="="/>
+ <connection from="83051421#0" to="-24573939#0" fromLane="0" toLane="0" via=":267169686_6_0" dir="l" state="="/>
+ <connection from="83051421#0" to="-83051421#0" fromLane="0" toLane="0" via=":267169686_7_0" dir="t" state="="/>
+ <connection from="83051421#1" to="83051421#2" fromLane="0" toLane="0" via=":966193812_0_0" dir="s" state="="/>
+ <connection from="83051421#1" to="83051417" fromLane="0" toLane="0" via=":966193812_1_0" dir="l" state="="/>
+ <connection from="83051421#1" to="-83051421#1" fromLane="0" toLane="0" via=":966193812_2_0" dir="t" state="="/>
+ <connection from="83051421#2" to="23066462#1" fromLane="0" toLane="0" via=":250689186_3_0" dir="r" state="="/>
+ <connection from="83051421#2" to="-23066462#0" fromLane="0" toLane="0" via=":250689186_4_0" dir="l" state="="/>
+ <connection from="83051421#2" to="-83051421#2" fromLane="0" toLane="0" via=":250689186_5_0" dir="t" state="="/>
+ <connection from="83051424" to="83051480#1" fromLane="0" toLane="0" via=":966193793_0_0" dir="r" state="="/>
+ <connection from="83051424" to="-83051480#0" fromLane="0" toLane="0" via=":966193793_1_0" dir="l" state="="/>
+ <connection from="83051424" to="-83051424" fromLane="0" toLane="0" via=":966193793_2_0" dir="t" state="="/>
+ <connection from="83051426" to="23066462#3" fromLane="0" toLane="0" via=":250689131_3_0" dir="r" state="="/>
+ <connection from="83051426" to="-23066462#2" fromLane="0" toLane="0" via=":250689131_4_0" dir="l" state="="/>
+ <connection from="83051426" to="-83051426" fromLane="0" toLane="0" via=":250689131_5_0" dir="t" state="="/>
+ <connection from="83051436#0" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_12_0" dir="r" state="m"/>
+ <connection from="83051436#0" to="83051436#1" fromLane="0" toLane="0" via=":267169690_13_0" dir="s" state="m"/>
+ <connection from="83051436#0" to="24573939#0" fromLane="0" toLane="0" via=":267169690_14_0" dir="l" state="m"/>
+ <connection from="83051436#0" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_15_0" dir="t" state="m"/>
+ <connection from="83051436#1" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_8_0" dir="r" state="m"/>
+ <connection from="83051436#1" to="24573947#3" fromLane="0" toLane="0" via=":267169634_9_0" dir="L" state="m"/>
+ <connection from="83051436#1" to="83051421#0" fromLane="0" toLane="0" via=":267169634_10_0" dir="l" state="m"/>
+ <connection from="83051436#1" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_11_0" dir="t" state="m"/>
+ <connection from="83051442#0" to="83051455" fromLane="0" toLane="0" via=":733663078_0_0" dir="r" state="="/>
+ <connection from="83051442#0" to="83051442#1" fromLane="0" toLane="0" via=":733663078_1_0" dir="s" state="="/>
+ <connection from="83051442#0" to="-83051442#0" fromLane="0" toLane="0" via=":733663078_2_0" dir="t" state="="/>
+ <connection from="83051442#1" to="-24573939#2" fromLane="0" toLane="0" via=":441266874_6_0" dir="r" state="="/>
+ <connection from="83051442#1" to="83051442#2" fromLane="0" toLane="0" via=":441266874_7_0" dir="s" state="="/>
+ <connection from="83051442#1" to="-83051442#1" fromLane="0" toLane="0" via=":441266874_8_0" dir="t" state="="/>
+ <connection from="83051442#2" to="83051426" fromLane="0" toLane="0" via=":733663071_0_0" dir="s" state="="/>
+ <connection from="83051442#2" to="83051442#0" fromLane="0" toLane="0" via=":733663071_1_0" dir="s" state="="/>
+ <connection from="83051442#2" to="-83051442#2" fromLane="0" toLane="0" via=":733663071_2_0" dir="t" state="="/>
+ <connection from="83051455" to="23066462#2" fromLane="0" toLane="0" via=":441266870_3_0" dir="r" state="="/>
+ <connection from="83051455" to="-23066462#1" fromLane="0" toLane="0" via=":441266870_4_0" dir="l" state="="/>
+ <connection from="83051455" to="-83051455" fromLane="0" toLane="0" via=":441266870_5_0" dir="t" state="="/>
+ <connection from="83051480#0" to="-83051424" fromLane="0" toLane="0" via=":966193793_3_0" dir="r" state="="/>
+ <connection from="83051480#0" to="83051480#1" fromLane="0" toLane="0" via=":966193793_4_0" dir="s" state="="/>
+ <connection from="83051480#0" to="-83051480#0" fromLane="0" toLane="0" via=":966193793_5_0" dir="t" state="="/>
+ <connection from="83051480#1" to="23066462#4" fromLane="0" toLane="0" via=":250689201_0_0" dir="r" state="="/>
+ <connection from="83051480#1" to="-23066462#3" fromLane="0" toLane="0" via=":250689201_1_0" dir="l" state="="/>
+ <connection from="83051480#1" to="-83051480#1" fromLane="0" toLane="0" via=":250689201_2_0" dir="t" state="="/>
+ <connection from="83051483" to="83051424" fromLane="0" toLane="0" via=":966193814_0_0" dir="s" state="M"/>
+ <connection from="83051483" to="-83051483" fromLane="0" toLane="0" via=":966193814_1_0" dir="t" state="m"/>
+ <connection from="83827202" to="23182517#2" fromLane="0" toLane="0" via=":975934878_4_0" dir="r" state="m"/>
+ <connection from="83827202" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_5_0" dir="l" state="m"/>
+
+ <connection from=":1096401733_0" to="8272412#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1096401733_1" to="160587552#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929269_0" to="154844491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929269_1" to="154844482" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929269_2" to="154844491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929269_3" to="154844491#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929269_4" to="154844482" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929272_0" to="81096816#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929272_1" to="154844465#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929295_0" to="154844461#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929295_1" to="154844461#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929298_0" to="154500706#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929298_1" to="154500706#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929308_0" to="42976408#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929308_1" to="154500706#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929308_2" to="37638470#0" fromLane="0" toLane="0" via=":1168929308_6_0" dir="s" state="M"/>
+ <connection from=":1168929308_6" to="37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929308_3" to="37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929308_4" to="42976408#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929308_5" to="154500706#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929310_0" to="154844465#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929310_1" to="111863096#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929310_2" to="154844465#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929310_3" to="111863096#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929324_0" to="154844462" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929324_1" to="103851602#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929324_2" to="154844462" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929324_3" to="103851602#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929349_0" to="154500693#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929349_1" to="37638426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929349_2" to="154500693#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929349_3" to="154500693#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929349_4" to="154500693#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1168929349_5" to="37638426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929367_0" to="101272426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929367_1" to="154844473" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929382_0" to="166602674#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929382_1" to="166602674#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929382_2" to="101272431" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929382_3" to="166602674#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929382_4" to="101272431" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929383_0" to="149868584#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929383_1" to="154844470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929383_2" to="-149868584#4" fromLane="0" toLane="1" via=":1168929383_9_0" dir="s" state="M"/>
+ <connection from=":1168929383_9" to="-149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929383_3" to="149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929383_4" to="154844470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929383_5" to="-149868584#4" fromLane="0" toLane="1" via=":1168929383_10_0" dir="s" state="M"/>
+ <connection from=":1168929383_10" to="-149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929383_6" to="154844470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929383_7" to="-149868584#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929383_8" to="149868584#5" fromLane="0" toLane="1" via=":1168929383_11_0" dir="s" state="M"/>
+ <connection from=":1168929383_11" to="149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929385_0" to="154844484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929385_1" to="154844483#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929385_2" to="154844483#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929385_3" to="154844484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929385_4" to="154844483#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929388_0" to="81547611" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929388_1" to="154844487#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929388_2" to="81547611" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929388_3" to="154844487#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929398_0" to="-179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929398_1" to="179692877#1" fromLane="0" toLane="0" via=":1168929398_4_0" dir="s" state="M"/>
+ <connection from=":1168929398_4" to="179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929398_2" to="179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929398_3" to="-179692877#0" fromLane="0" toLane="0" via=":1168929398_5_0" dir="s" state="M"/>
+ <connection from=":1168929398_5" to="-179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929459_0" to="101272435#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929459_1" to="154844489#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929523_0" to="111863125#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929523_1" to="154844470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929523_2" to="111863125#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929523_3" to="154844470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929542_0" to="101272424#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929542_1" to="160587552#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_0" to="38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_1" to="154844484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_2" to="-38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_3" to="154844484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_4" to="-38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_5" to="38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_6" to="38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_7" to="154844484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929546_8" to="-38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929549_0" to="154844477" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929549_1" to="154844477" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929558_0" to="154844486" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929558_1" to="-160587538#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929558_2" to="160587538#6" fromLane="0" toLane="1" via=":1168929558_9_0" dir="s" state="M"/>
+ <connection from=":1168929558_9" to="160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929558_3" to="160587538#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929558_4" to="154844486" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929558_5" to="-160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929558_6" to="160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929558_7" to="154844486" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929558_8" to="-160587538#5" fromLane="0" toLane="1" via=":1168929558_10_0" dir="s" state="M"/>
+ <connection from=":1168929558_10" to="-160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929562_0" to="154844461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929562_1" to="166603397#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929562_2" to="166603397#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929562_3" to="154844461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929562_4" to="166603397#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929585_0" to="154844463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929585_1" to="154844463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929600_0" to="154500706#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929600_1" to="122301994#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929600_2" to="122301994#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929600_3" to="122301994#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1168929600_4" to="154500706#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929600_5" to="122301994#1" fromLane="0" toLane="1" via=":1168929600_7_0" dir="s" state="M"/>
+ <connection from=":1168929600_7" to="122301994#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929600_6" to="122301994#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1168929613_0" to="154844465#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929613_1" to="154844465#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929634_0" to="-160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929634_1" to="154844478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929634_2" to="160587538#2" fromLane="0" toLane="1" via=":1168929634_9_0" dir="s" state="M"/>
+ <connection from=":1168929634_9" to="160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929634_3" to="154844478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929634_4" to="160587538#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929634_5" to="-160587538#1" fromLane="0" toLane="1" via=":1168929634_10_0" dir="s" state="M"/>
+ <connection from=":1168929634_10" to="-160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929634_6" to="-160587538#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929634_7" to="154844478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929634_8" to="160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929652_0" to="37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_1" to="-37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_2" to="-166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_3" to="-166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_4" to="37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_5" to="-37638470#0" fromLane="0" toLane="0" via=":1168929652_9_0" dir="s" state="M"/>
+ <connection from=":1168929652_9" to="-37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_6" to="-37638470#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_7" to="-166576461#1" fromLane="0" toLane="0" via=":1168929652_10_0" dir="s" state="M"/>
+ <connection from=":1168929652_10" to="-166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929652_8" to="37638470#1" fromLane="0" toLane="0" via=":1168929652_11_0" dir="s" state="M"/>
+ <connection from=":1168929652_11" to="37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929657_0" to="154844487#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929657_1" to="149868584#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929657_2" to="-149868584#2" fromLane="0" toLane="1" via=":1168929657_9_0" dir="s" state="M"/>
+ <connection from=":1168929657_9" to="-149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929657_3" to="-149868584#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929657_4" to="154844487#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929657_5" to="149868584#3" fromLane="0" toLane="1" via=":1168929657_10_0" dir="s" state="M"/>
+ <connection from=":1168929657_10" to="149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929657_6" to="-149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929657_7" to="154844487#1" fromLane="0" toLane="0" via=":1168929657_11_0" dir="s" state="M"/>
+ <connection from=":1168929657_11" to="154844487#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929657_8" to="149868584#3" fromLane="0" toLane="1" via=":1168929657_12_0" dir="s" state="M"/>
+ <connection from=":1168929657_12" to="149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1168929659_0" to="154844489#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_1" to="38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_2" to="-38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_3" to="-38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_4" to="154844489#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_5" to="38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_6" to="-38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_7" to="154844489#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929659_8" to="38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_0" to="38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_1" to="101272434" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_2" to="-38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_3" to="-38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_4" to="38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_5" to="101272434" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_6" to="101272434" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_7" to="-38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1168929661_8" to="38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941056_0" to="105251811#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941056_1" to="37942667#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941056_2" to="105251811#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941056_3" to="37942667#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941077_0" to="37942667#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941077_1" to="59159259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941077_2" to="37942667#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212941077_3" to="59159259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_0" to="108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_1" to="105254618" fromLane="0" toLane="0" via=":1212960877_9_0" dir="s" state="M"/>
+ <connection from=":1212960877_9" to="105254618" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_2" to="-108329425#2" fromLane="0" toLane="0" via=":1212960877_10_0" dir="s" state="M"/>
+ <connection from=":1212960877_10" to="-108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_3" to="-108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_4" to="108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_5" to="105254618" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_6" to="-108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_7" to="105254618" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960877_8" to="108329425#3" fromLane="0" toLane="0" via=":1212960877_11_0" dir="s" state="M"/>
+ <connection from=":1212960877_11" to="108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_0" to="108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_1" to="105254616#0" fromLane="0" toLane="0" via=":1212960879_9_0" dir="s" state="M"/>
+ <connection from=":1212960879_9" to="105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_2" to="-108329425#0" fromLane="0" toLane="0" via=":1212960879_10_0" dir="s" state="M"/>
+ <connection from=":1212960879_10" to="-108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_3" to="-108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_4" to="108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_5" to="105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_6" to="105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_7" to="-108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1212960879_8" to="108329425#1" fromLane="0" toLane="0" via=":1212960879_11_0" dir="s" state="M"/>
+ <connection from=":1212960879_11" to="108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_0" to="37942667#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_1" to="105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_2" to="-105283535#0" fromLane="0" toLane="0" via=":1213368991_9_0" dir="s" state="M"/>
+ <connection from=":1213368991_9" to="-105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_3" to="-105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_4" to="37942667#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_5" to="105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_6" to="-105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_7" to="37942667#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1213368991_8" to="105283535#1" fromLane="0" toLane="0" via=":1213368991_10_0" dir="s" state="M"/>
+ <connection from=":1213368991_10" to="105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074526_0" to="-149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074527_0" to="149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_0" to="-149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_1" to="149819220" fromLane="0" toLane="0" via=":1224074532_9_0" dir="s" state="M"/>
+ <connection from=":1224074532_9" to="149819220" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_2" to="149819227#3" fromLane="0" toLane="0" via=":1224074532_10_0" dir="s" state="M"/>
+ <connection from=":1224074532_10" to="149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_3" to="149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_4" to="-149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_5" to="149819220" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_6" to="149819220" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_7" to="149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074532_8" to="-149819227#2" fromLane="0" toLane="0" via=":1224074532_11_0" dir="s" state="M"/>
+ <connection from=":1224074532_11" to="-149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074533_0" to="37973571#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074533_1" to="-179917803#1" fromLane="0" toLane="0" via=":1224074533_4_0" dir="s" state="M"/>
+ <connection from=":1224074533_4" to="-179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074533_2" to="-179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074533_3" to="37973571#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_0" to="-179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_1" to="166576461#0" fromLane="0" toLane="0" via=":1224074534_9_0" dir="s" state="M"/>
+ <connection from=":1224074534_9" to="166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_2" to="179917803#1" fromLane="0" toLane="0" via=":1224074534_10_0" dir="s" state="M"/>
+ <connection from=":1224074534_10" to="179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_3" to="179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_4" to="-179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_5" to="166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_6" to="166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_7" to="179917803#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074534_8" to="-179917803#0" fromLane="0" toLane="0" via=":1224074534_11_0" dir="s" state="M"/>
+ <connection from=":1224074534_11" to="-179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_0" to="149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_1" to="-149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_2" to="-149819220" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_3" to="-149819220" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_4" to="149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_5" to="-149819232#0" fromLane="0" toLane="0" via=":1224074535_9_0" dir="s" state="M"/>
+ <connection from=":1224074535_9" to="-149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_6" to="-149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_7" to="-149819220" fromLane="0" toLane="0" via=":1224074535_10_0" dir="s" state="M"/>
+ <connection from=":1224074535_10" to="-149819220" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224074535_8" to="149819232#1" fromLane="0" toLane="0" via=":1224074535_11_0" dir="s" state="M"/>
+ <connection from=":1224074535_11" to="149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080660_0" to="37973568#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080660_1" to="106366774" fromLane="0" toLane="0" via=":1224080660_4_0" dir="s" state="M"/>
+ <connection from=":1224080660_4" to="106366774" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080660_2" to="106366774" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080660_3" to="37973568#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080662_0" to="179917801" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_0" to="37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_1" to="-37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_2" to="-160584984" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_3" to="-160584984" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_4" to="37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_5" to="-37638470#1" fromLane="0" toLane="0" via=":1224080669_9_0" dir="s" state="M"/>
+ <connection from=":1224080669_9" to="-37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_6" to="-37638470#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_7" to="-160584984" fromLane="0" toLane="0" via=":1224080669_10_0" dir="s" state="M"/>
+ <connection from=":1224080669_10" to="-160584984" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080669_8" to="37638470#2" fromLane="0" toLane="0" via=":1224080669_11_0" dir="s" state="M"/>
+ <connection from=":1224080669_11" to="37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224080676_0" to="-106366774" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_0" to="149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_1" to="-149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_2" to="106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_3" to="106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_4" to="149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_5" to="-149819232#2" fromLane="0" toLane="0" via=":1224091971_9_0" dir="s" state="M"/>
+ <connection from=":1224091971_9" to="-149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_6" to="-149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_7" to="106367427#0" fromLane="0" toLane="0" via=":1224091971_10_0" dir="s" state="M"/>
+ <connection from=":1224091971_10" to="106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1224091971_8" to="149819232#3" fromLane="0" toLane="0" via=":1224091971_11_0" dir="s" state="M"/>
+ <connection from=":1224091971_11" to="149819232#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499918_0" to="106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499918_1" to="81394192#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499918_2" to="81394192#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499918_3" to="106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499925_0" to="-106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499945_0" to="81394192#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499945_1" to="106836317#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499945_2" to="81394192#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499945_3" to="106836317#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_0" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_1" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_2" to="-106836308#1" fromLane="0" toLane="0" via=":1228499957_16_0" dir="s" state="M"/>
+ <connection from=":1228499957_16" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_3" to="107066313#5" fromLane="0" toLane="0" via=":1228499957_17_0" dir="s" state="M"/>
+ <connection from=":1228499957_17" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_4" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_5" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_6" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_7" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_8" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_9" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_10" to="106836308#2" fromLane="0" toLane="0" via=":1228499957_18_0" dir="s" state="M"/>
+ <connection from=":1228499957_18" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_11" to="-107066313#4" fromLane="0" toLane="0" via=":1228499957_19_0" dir="s" state="M"/>
+ <connection from=":1228499957_19" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_12" to="-107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_13" to="-106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_14" to="107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499957_15" to="106836308#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_0" to="-107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_1" to="106836317#1" fromLane="0" toLane="0" via=":1228499992_9_0" dir="s" state="M"/>
+ <connection from=":1228499992_9" to="106836317#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_2" to="107066313#4" fromLane="0" toLane="0" via=":1228499992_10_0" dir="s" state="M"/>
+ <connection from=":1228499992_10" to="107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_3" to="106836317#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_4" to="107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_5" to="-107066313#3" fromLane="0" toLane="0" via=":1228499992_11_0" dir="s" state="M"/>
+ <connection from=":1228499992_11" to="-107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_6" to="-107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_7" to="106836317#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1228499992_8" to="107066313#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1231011197_0" to="130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1231011197_1" to="-130443629#6" fromLane="0" toLane="0" via=":1231011197_6_0" dir="s" state="M"/>
+ <connection from=":1231011197_6" to="-130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1231011197_2" to="-130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1231011197_3" to="130443629#7" fromLane="0" toLane="0" via=":1231011197_7_0" dir="s" state="M"/>
+ <connection from=":1231011197_7" to="130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1231011197_4" to="130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1231011197_5" to="-130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_0" to="106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_1" to="-107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_2" to="-106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_3" to="-106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_4" to="106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_5" to="-107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_6" to="-107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_7" to="-106836308#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232169474_8" to="106836308#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_0" to="-38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_1" to="-107167209#1" fromLane="0" toLane="0" via=":1232172714_9_0" dir="s" state="M"/>
+ <connection from=":1232172714_9" to="-107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_2" to="38027665#3" fromLane="0" toLane="0" via=":1232172714_10_0" dir="s" state="M"/>
+ <connection from=":1232172714_10" to="38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_3" to="38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_4" to="-38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_5" to="-107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_6" to="-107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_7" to="38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172714_8" to="-38027665#2" fromLane="0" toLane="0" via=":1232172714_11_0" dir="s" state="M"/>
+ <connection from=":1232172714_11" to="-38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_0" to="107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_1" to="43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_2" to="-43684741#1" fromLane="0" toLane="0" via=":1232172723_9_0" dir="s" state="M"/>
+ <connection from=":1232172723_9" to="-43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_3" to="-43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_4" to="107167209#0" fromLane="0" toLane="0" via=":1232172723_10_0" dir="s" state="M"/>
+ <connection from=":1232172723_10" to="107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_5" to="43684741#2" fromLane="0" toLane="0" via=":1232172723_11_0" dir="s" state="M"/>
+ <connection from=":1232172723_11" to="43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_6" to="43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_7" to="-43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1232172723_8" to="107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1233612841_0" to="107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_0" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_1" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_2" to="-107167209#0" fromLane="0" toLane="0" via=":1239242543_16_0" dir="s" state="M"/>
+ <connection from=":1239242543_16" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_3" to="107028581#2" fromLane="0" toLane="0" via=":1239242543_17_0" dir="s" state="M"/>
+ <connection from=":1239242543_17" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_4" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_5" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_6" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_7" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_8" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_9" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_10" to="107167209#1" fromLane="0" toLane="0" via=":1239242543_18_0" dir="s" state="M"/>
+ <connection from=":1239242543_18" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_11" to="-107028581#1" fromLane="0" toLane="0" via=":1239242543_19_0" dir="s" state="M"/>
+ <connection from=":1239242543_19" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_12" to="-107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_13" to="-107167209#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_14" to="107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242543_15" to="107167209#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_0" to="-107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_1" to="106836317#2" fromLane="0" toLane="0" via=":1239242544_9_0" dir="s" state="M"/>
+ <connection from=":1239242544_9" to="106836317#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_2" to="107166846#5" fromLane="0" toLane="0" via=":1239242544_10_0" dir="s" state="M"/>
+ <connection from=":1239242544_10" to="107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_3" to="106836317#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_4" to="107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_5" to="-107166846#4" fromLane="0" toLane="0" via=":1239242544_11_0" dir="s" state="M"/>
+ <connection from=":1239242544_11" to="-107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_6" to="-107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_7" to="106836317#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239242544_8" to="107166846#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_0" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_1" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_2" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_3" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_4" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_5" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_6" to="-106367427#0" fromLane="0" toLane="0" via=":1239243628_16_0" dir="s" state="M"/>
+ <connection from=":1239243628_16" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_7" to="149819227#1" fromLane="0" toLane="0" via=":1239243628_17_0" dir="s" state="M"/>
+ <connection from=":1239243628_17" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_8" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_9" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_10" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_11" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_12" to="-106367427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_13" to="149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_14" to="106367427#1" fromLane="0" toLane="0" via=":1239243628_18_0" dir="s" state="M"/>
+ <connection from=":1239243628_18" to="106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1239243628_15" to="-149819227#0" fromLane="0" toLane="0" via=":1239243628_19_0" dir="s" state="M"/>
+ <connection from=":1239243628_19" to="-149819227#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159115_0" to="144874010#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159115_1" to="144874010#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1243159115_2" to="-108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159115_3" to="144874010#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1243159115_4" to="-108329427#2" fromLane="0" toLane="0" via=":1243159115_5_0" dir="s" state="M"/>
+ <connection from=":1243159115_5" to="-108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_0" to="-81523330#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_1" to="-81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1243159116_2" to="108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_3" to="81523330#4" fromLane="0" toLane="1" via=":1243159116_11_0" dir="s" state="M"/>
+ <connection from=":1243159116_11" to="81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1243159116_4" to="81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_5" to="-81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1243159116_6" to="108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_7" to="108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_8" to="81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1243159116_9" to="81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1243159116_10" to="-81523330#3" fromLane="0" toLane="1" via=":1243159116_12_0" dir="s" state="M"/>
+ <connection from=":1243159116_12" to="-81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1244292210_0" to="166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292210_1" to="-166625256#0" fromLane="0" toLane="0" via=":1244292210_4_0" dir="s" state="M"/>
+ <connection from=":1244292210_4" to="-166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292210_2" to="-166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292210_3" to="166625256#1" fromLane="0" toLane="0" via=":1244292210_5_0" dir="s" state="M"/>
+ <connection from=":1244292210_5" to="166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292219_0" to="166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292219_1" to="-166625256#1" fromLane="0" toLane="0" via=":1244292219_4_0" dir="s" state="M"/>
+ <connection from=":1244292219_4" to="-166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292219_2" to="-166625256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1244292219_3" to="166625256#0" fromLane="0" toLane="0" via=":1244292219_5_0" dir="s" state="M"/>
+ <connection from=":1244292219_5" to="166625256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731455_0" to="101272429#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731455_1" to="108733428" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731455_2" to="154844461#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731455_3" to="154844461#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731455_4" to="101272429#0" fromLane="0" toLane="0" via=":1246731455_6_0" dir="s" state="M"/>
+ <connection from=":1246731455_6" to="101272429#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731455_5" to="108733428" fromLane="0" toLane="0" via=":1246731455_7_0" dir="s" state="M"/>
+ <connection from=":1246731455_7" to="108733428" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731457_0" to="154844491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731457_1" to="-108733430" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731457_2" to="-108733430" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731457_3" to="154844491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731457_4" to="154844491#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1246731460_0" to="154844461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731460_1" to="-108733429" fromLane="0" toLane="0" via=":1246731460_4_0" dir="s" state="M"/>
+ <connection from=":1246731460_4" to="-108733429" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731460_2" to="-108733429" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731460_3" to="154844461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731466_0" to="166602674#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731466_1" to="-108733425" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731466_2" to="-108733425" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731466_3" to="166602674#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731466_4" to="166602674#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1246731470_0" to="108733424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731470_1" to="170594822#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731470_2" to="170594822#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1246731470_3" to="170594822#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731470_4" to="108733424" fromLane="0" toLane="0" via=":1246731470_5_0" dir="s" state="M"/>
+ <connection from=":1246731470_5" to="108733424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731482_0" to="108733430" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731482_1" to="154844489#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731482_2" to="154844489#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731482_3" to="108733430" fromLane="0" toLane="0" via=":1246731482_4_0" dir="s" state="M"/>
+ <connection from=":1246731482_4" to="108733430" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731504_0" to="154844465#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731504_1" to="108733425" fromLane="0" toLane="0" via=":1246731504_4_0" dir="s" state="M"/>
+ <connection from=":1246731504_4" to="108733425" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731504_2" to="108733425" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731504_3" to="154844465#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731525_0" to="-108733424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731525_1" to="154844481" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731525_2" to="154844481" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731525_3" to="-108733424" fromLane="0" toLane="0" via=":1246731525_4_0" dir="s" state="M"/>
+ <connection from=":1246731525_4" to="-108733424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731541_0" to="170590354#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731541_1" to="-108733421" fromLane="0" toLane="0" via=":1246731541_4_0" dir="s" state="M"/>
+ <connection from=":1246731541_4" to="-108733421" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731541_2" to="-108733421" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731541_3" to="170590354#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1246731544_0" to="154844479" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731544_1" to="-108733422" fromLane="0" toLane="0" via=":1246731544_4_0" dir="s" state="M"/>
+ <connection from=":1246731544_4" to="-108733422" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731544_2" to="-108733422" fromLane="0" toLane="0" via=":1246731544_5_0" dir="s" state="M"/>
+ <connection from=":1246731544_5" to="-108733422" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731544_3" to="154844479" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731574_0" to="154844467" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731574_1" to="108733421" fromLane="0" toLane="0" via=":1246731574_4_0" dir="s" state="M"/>
+ <connection from=":1246731574_4" to="108733421" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731574_2" to="108733421" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731574_3" to="154844467" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731576_0" to="111863125#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731576_1" to="-108733428" fromLane="0" toLane="0" via=":1246731576_4_0" dir="s" state="M"/>
+ <connection from=":1246731576_4" to="-108733428" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731576_2" to="-108733428" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731576_3" to="111863125#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731601_0" to="111549913#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731601_1" to="108733431" fromLane="0" toLane="0" via=":1246731601_4_0" dir="s" state="M"/>
+ <connection from=":1246731601_4" to="108733431" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731601_2" to="108733431" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731601_3" to="111549913#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731620_0" to="170590352" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731620_1" to="108733422" fromLane="0" toLane="0" via=":1246731620_5_0" dir="s" state="M"/>
+ <connection from=":1246731620_5" to="108733422" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731620_2" to="108733422" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731620_3" to="170590352" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731620_4" to="170590352" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1246731627_0" to="154844465#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731627_1" to="-108733431" fromLane="0" toLane="0" via=":1246731627_4_0" dir="s" state="M"/>
+ <connection from=":1246731627_4" to="-108733431" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731627_2" to="-108733431" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731627_3" to="154844465#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731647_0" to="108733429" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731647_1" to="154844485#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731647_2" to="154844485#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1246731647_3" to="154844485#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1246731647_4" to="108733429" fromLane="0" toLane="0" via=":1246731647_5_0" dir="s" state="M"/>
+ <connection from=":1246731647_5" to="108733429" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1252777712_0" to="81394188#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1252777712_1" to="81394188#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1252777720_0" to="-81523330#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1252777720_1" to="-81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1252777720_2" to="81523330#1" fromLane="0" toLane="1" via=":1252777720_8_0" dir="s" state="M"/>
+ <connection from=":1252777720_8" to="81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1252777720_3" to="81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1252777720_4" to="-81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1252777720_5" to="81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1252777720_6" to="81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1252777720_7" to="-81523330#0" fromLane="0" toLane="1" via=":1252777720_9_0" dir="s" state="M"/>
+ <connection from=":1252777720_9" to="-81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054074_0" to="154489992#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_1" to="38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_2" to="-38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_3" to="-38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_4" to="154489992#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_5" to="154489992#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054074_6" to="38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_7" to="-38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054074_8" to="154489992#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054074_9" to="38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054077_0" to="109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054077_1" to="-109912572#4" fromLane="0" toLane="0" via=":1257054077_4_0" dir="s" state="M"/>
+ <connection from=":1257054077_4" to="-109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054077_2" to="-109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054077_3" to="109912567#0" fromLane="0" toLane="0" via=":1257054077_5_0" dir="s" state="M"/>
+ <connection from=":1257054077_5" to="109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_0" to="109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_1" to="81394162#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_2" to="81394162#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054092_3" to="-109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_4" to="109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_5" to="81394162#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054092_6" to="-109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_7" to="81394162#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_8" to="-109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054092_9" to="109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_0" to="133960538#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_1" to="109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_2" to="-109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_3" to="-109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_4" to="133960538#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_5" to="133960538#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054108_6" to="109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_7" to="-109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054108_8" to="133960538#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054108_9" to="109912572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054127_0" to="144874008#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054127_1" to="38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054127_2" to="144874008#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054127_3" to="38319546#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054132_0" to="37973565#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054132_1" to="-109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054132_2" to="-109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054132_3" to="37973565#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_0" to="37449253#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_1" to="109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_2" to="-109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_3" to="-109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_4" to="37449253#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_5" to="109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_6" to="-109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_7" to="37449253#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054155_8" to="109912572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054162_0" to="-109912568" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_0" to="109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_1" to="37449245#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_2" to="-109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_3" to="109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_4" to="37449245#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_5" to="-109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_6" to="37449245#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_7" to="-109912572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054165_8" to="109912572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_0" to="-139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_1" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_2" to="139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054172_3" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_4" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_5" to="-139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_6" to="-139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054172_7" to="38319546#3" fromLane="0" toLane="0" via=":1257054172_18_0" dir="s" state="M"/>
+ <connection from=":1257054172_18" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_8" to="139118805#2" fromLane="0" toLane="1" via=":1257054172_19_0" dir="s" state="M"/>
+ <connection from=":1257054172_19" to="139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054172_9" to="139118805#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_10" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_11" to="-139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054172_12" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_13" to="38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_14" to="139118805#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_15" to="139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054172_16" to="-38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054172_17" to="-139118805#1" fromLane="0" toLane="1" via=":1257054172_20_0" dir="s" state="M"/>
+ <connection from=":1257054172_20" to="-139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1257054178_0" to="109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_1" to="38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_2" to="-38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_3" to="-38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_4" to="109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_5" to="38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_6" to="38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_7" to="-38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054178_8" to="109912572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054196_0" to="109912568" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_0" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_1" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_2" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_3" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_4" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_5" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_6" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_7" to="-129780022#0" fromLane="0" toLane="0" via=":1257054205_16_0" dir="s" state="M"/>
+ <connection from=":1257054205_16" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_8" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_9" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_10" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_11" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_12" to="38319546#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_13" to="-129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_14" to="-38319546#1" fromLane="0" toLane="0" via=":1257054205_17_0" dir="s" state="M"/>
+ <connection from=":1257054205_17" to="-38319546#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054205_15" to="129780022#1" fromLane="0" toLane="0" via=":1257054205_18_0" dir="s" state="M"/>
+ <connection from=":1257054205_18" to="129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_0" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_1" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_2" to="-109912567#0" fromLane="0" toLane="0" via=":1257054208_16_0" dir="s" state="M"/>
+ <connection from=":1257054208_16" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_3" to="-108329426#1" fromLane="0" toLane="0" via=":1257054208_17_0" dir="s" state="M"/>
+ <connection from=":1257054208_17" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_4" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_5" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_6" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_7" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_8" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_9" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_10" to="109912567#1" fromLane="0" toLane="0" via=":1257054208_18_0" dir="s" state="M"/>
+ <connection from=":1257054208_18" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_11" to="108329426#2" fromLane="0" toLane="0" via=":1257054208_19_0" dir="s" state="M"/>
+ <connection from=":1257054208_19" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_12" to="108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_13" to="-109912567#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_14" to="-108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1257054208_15" to="109912567#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1261880295_0" to="44738605#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1261880295_1" to="110514869#0" fromLane="0" toLane="1" via=":1261880295_5_0" dir="s" state="M"/>
+ <connection from=":1261880295_5" to="110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1261880295_2" to="110514869#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1261880295_3" to="110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1261880295_4" to="44738605#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_0" to="-81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_1" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_2" to="81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1263725264_3" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_4" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_5" to="-81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_6" to="-81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1263725264_7" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_8" to="81523330#3" fromLane="0" toLane="1" via=":1263725264_18_0" dir="s" state="M"/>
+ <connection from=":1263725264_18" to="81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1263725264_9" to="81523330#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_10" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_11" to="-81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1263725264_12" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_13" to="-108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_14" to="81523330#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_15" to="81523330#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1263725264_16" to="108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725264_17" to="-81523330#2" fromLane="0" toLane="1" via=":1263725264_19_0" dir="s" state="M"/>
+ <connection from=":1263725264_19" to="-81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1263725266_0" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_1" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_2" to="-129780022#3" fromLane="0" toLane="0" via=":1263725266_16_0" dir="s" state="M"/>
+ <connection from=":1263725266_16" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_3" to="108329427#2" fromLane="0" toLane="0" via=":1263725266_17_0" dir="s" state="M"/>
+ <connection from=":1263725266_17" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_4" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_5" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_6" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_7" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_8" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_9" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_10" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_11" to="-108329427#1" fromLane="0" toLane="0" via=":1263725266_18_0" dir="s" state="M"/>
+ <connection from=":1263725266_18" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_12" to="-108329427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_13" to="-129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_14" to="108329427#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1263725266_15" to="129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1268463825_0" to="-81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557956_0" to="37942667#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557956_1" to="37942667#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557968_0" to="117492209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557968_1" to="108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557968_2" to="-108329425#3" fromLane="0" toLane="0" via=":1323557968_6_0" dir="s" state="M"/>
+ <connection from=":1323557968_6" to="-108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557968_3" to="-108329425#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557968_4" to="117492209" fromLane="0" toLane="0" via=":1323557968_7_0" dir="s" state="M"/>
+ <connection from=":1323557968_7" to="117492209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1323557968_5" to="108329425#4" fromLane="0" toLane="0" via=":1323557968_8_0" dir="s" state="M"/>
+ <connection from=":1323557968_8" to="108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1366723470_0" to="123339612" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367073442_0" to="122302035#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855907_0" to="-122394853" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855907_1" to="122394834" fromLane="0" toLane="0" via=":1367855907_4_0" dir="s" state="M"/>
+ <connection from=":1367855907_4" to="122394834" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855907_2" to="122394834" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855907_3" to="-122394853" fromLane="0" toLane="0" via=":1367855907_5_0" dir="s" state="M"/>
+ <connection from=":1367855907_5" to="-122394853" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_0" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_1" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_2" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_3" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_4" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_5" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_6" to="-122394834" fromLane="0" toLane="0" via=":1367855909_16_0" dir="s" state="M"/>
+ <connection from=":1367855909_16" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_7" to="122394841#0" fromLane="0" toLane="0" via=":1367855909_17_0" dir="s" state="M"/>
+ <connection from=":1367855909_17" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_8" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_9" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_10" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_11" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_12" to="-122394834" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_13" to="122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_14" to="-122394860" fromLane="0" toLane="0" via=":1367855909_18_0" dir="s" state="M"/>
+ <connection from=":1367855909_18" to="-122394860" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855909_15" to="-122394845" fromLane="0" toLane="0" via=":1367855909_19_0" dir="s" state="M"/>
+ <connection from=":1367855909_19" to="-122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855910_0" to="-122394859" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855910_1" to="122394860" fromLane="0" toLane="0" via=":1367855910_4_0" dir="s" state="M"/>
+ <connection from=":1367855910_4" to="122394860" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855910_2" to="122394860" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855910_3" to="-122394859" fromLane="0" toLane="0" via=":1367855910_5_0" dir="s" state="M"/>
+ <connection from=":1367855910_5" to="-122394859" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855923_0" to="129780019#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855923_1" to="-122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855923_2" to="129780019#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855923_3" to="-122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_0" to="23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_1" to="-23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_2" to="-122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_3" to="-122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_4" to="23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_5" to="-23182484#1" fromLane="0" toLane="0" via=":1367855925_9_0" dir="s" state="M"/>
+ <connection from=":1367855925_9" to="-23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_6" to="-23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_7" to="-122394833#5" fromLane="0" toLane="0" via=":1367855925_10_0" dir="s" state="M"/>
+ <connection from=":1367855925_10" to="-122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855925_8" to="23182484#2" fromLane="0" toLane="0" via=":1367855925_11_0" dir="s" state="M"/>
+ <connection from=":1367855925_11" to="23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_0" to="-122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_1" to="130443635#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_2" to="122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_3" to="-122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_4" to="130443635#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_5" to="122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_6" to="130443635#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_7" to="122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855926_8" to="-122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_0" to="122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_1" to="122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_2" to="-122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_3" to="-122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_4" to="122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_5" to="122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_6" to="122394864#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_7" to="-122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855927_8" to="122394833#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_0" to="122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_1" to="122394853" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_2" to="-122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_3" to="-122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_4" to="122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_5" to="122394853" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_6" to="122394853" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_7" to="-122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855929_8" to="122394833#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_0" to="122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_1" to="122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_2" to="-122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_3" to="-122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_4" to="122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_5" to="122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_6" to="122394845" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_7" to="-122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855930_8" to="122394833#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_0" to="122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_1" to="122394859" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_2" to="-122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_3" to="-122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_4" to="122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_5" to="122394859" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_6" to="122394859" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_7" to="-122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855931_8" to="122394833#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_0" to="122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_1" to="23182387#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_2" to="-122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_3" to="23182387#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_4" to="-122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_5" to="122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_6" to="122394833#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_7" to="23182387#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855932_8" to="-122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1367855969_0" to="122394833#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844756_0" to="122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_0" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_1" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_2" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_3" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_4" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_5" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_6" to="122641559#1" fromLane="0" toLane="0" via=":1369844757_16_0" dir="s" state="M"/>
+ <connection from=":1369844757_16" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_7" to="122394841#3" fromLane="0" toLane="0" via=":1369844757_17_0" dir="s" state="M"/>
+ <connection from=":1369844757_17" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_8" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_9" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_10" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_11" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_12" to="122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_13" to="122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_14" to="-122641559#0" fromLane="0" toLane="0" via=":1369844757_18_0" dir="s" state="M"/>
+ <connection from=":1369844757_18" to="-122641559#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844757_15" to="-122394841#2" fromLane="0" toLane="0" via=":1369844757_19_0" dir="s" state="M"/>
+ <connection from=":1369844757_19" to="-122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844758_0" to="122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844760_0" to="-122641559#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_0" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_1" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_2" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_3" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_4" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_5" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_6" to="122641556#1" fromLane="0" toLane="0" via=":1369844762_16_0" dir="s" state="M"/>
+ <connection from=":1369844762_16" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_7" to="122394841#2" fromLane="0" toLane="0" via=":1369844762_17_0" dir="s" state="M"/>
+ <connection from=":1369844762_17" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_8" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_9" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_10" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_11" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_12" to="122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_13" to="122394841#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_14" to="-122641556#0" fromLane="0" toLane="0" via=":1369844762_18_0" dir="s" state="M"/>
+ <connection from=":1369844762_18" to="-122641556#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844762_15" to="-122394841#1" fromLane="0" toLane="0" via=":1369844762_19_0" dir="s" state="M"/>
+ <connection from=":1369844762_19" to="-122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844763_0" to="122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844770_0" to="-122641556#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_0" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_1" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_2" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_3" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_4" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_5" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_6" to="122641560#1" fromLane="0" toLane="0" via=":1369844772_16_0" dir="s" state="M"/>
+ <connection from=":1369844772_16" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_7" to="122394841#1" fromLane="0" toLane="0" via=":1369844772_17_0" dir="s" state="M"/>
+ <connection from=":1369844772_17" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_8" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_9" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_10" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_11" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_12" to="122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_13" to="122394841#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_14" to="-122641560#0" fromLane="0" toLane="0" via=":1369844772_18_0" dir="s" state="M"/>
+ <connection from=":1369844772_18" to="-122641560#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844772_15" to="-122394841#0" fromLane="0" toLane="0" via=":1369844772_19_0" dir="s" state="M"/>
+ <connection from=":1369844772_19" to="-122394841#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844774_0" to="-122641560#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844780_0" to="122641557" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1369844786_0" to="-122641557" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1373642446_0" to="38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929737_0" to="37449245#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929737_1" to="172498380#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929737_2" to="37449245#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929737_3" to="172498380#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_0" to="37449253#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_1" to="129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_2" to="-129780022#1" fromLane="0" toLane="0" via=":13929747_9_0" dir="s" state="M"/>
+ <connection from=":13929747_9" to="-129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_3" to="-129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_4" to="37449253#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_5" to="129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_6" to="-129780022#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_7" to="37449253#7" fromLane="0" toLane="0" via=":13929747_10_0" dir="s" state="M"/>
+ <connection from=":13929747_10" to="37449253#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929747_8" to="129780022#2" fromLane="0" toLane="0" via=":13929747_11_0" dir="s" state="M"/>
+ <connection from=":13929747_11" to="129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929752_0" to="-160587537#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":13929775_0" to="42976410#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929775_1" to="149868584#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929775_2" to="149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":13929775_3" to="-149868584#6" fromLane="0" toLane="1" via=":13929775_11_0" dir="s" state="M"/>
+ <connection from=":13929775_11" to="-149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":13929775_4" to="-149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929775_5" to="42976410#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929775_6" to="149868584#7" fromLane="0" toLane="1" via=":13929775_12_0" dir="s" state="M"/>
+ <connection from=":13929775_12" to="149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":13929775_7" to="-149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929775_8" to="-149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":13929775_9" to="42976410#0" fromLane="0" toLane="0" via=":13929775_13_0" dir="s" state="M"/>
+ <connection from=":13929775_13" to="42976410#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":13929775_10" to="149868584#7" fromLane="0" toLane="1" via=":13929775_14_0" dir="s" state="M"/>
+ <connection from=":13929775_14" to="149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":13990620_0" to="149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1431113444_0" to="-197794762" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_0" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_1" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_2" to="59159262#1" fromLane="0" toLane="0" via=":1457695393_16_0" dir="s" state="M"/>
+ <connection from=":1457695393_16" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_3" to="-130443629#7" fromLane="0" toLane="0" via=":1457695393_17_0" dir="s" state="M"/>
+ <connection from=":1457695393_17" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_4" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_5" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_6" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_7" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_8" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_9" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_10" to="-59159262#0" fromLane="0" toLane="0" via=":1457695393_18_0" dir="s" state="M"/>
+ <connection from=":1457695393_18" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_11" to="130443629#8" fromLane="0" toLane="0" via=":1457695393_19_0" dir="s" state="M"/>
+ <connection from=":1457695393_19" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_12" to="130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_13" to="59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_14" to="-130443629#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457695393_15" to="-59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_0" to="-81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_1" to="-81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_2" to="81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_3" to="81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_4" to="-81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_5" to="-81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_6" to="-81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_7" to="81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699220_8" to="-81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_0" to="-81672209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_1" to="81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_2" to="-81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_3" to="-81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_4" to="-81672209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_5" to="81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_6" to="81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_7" to="-81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699222_8" to="-81672209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_0" to="81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_1" to="-81672218" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_2" to="-81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_3" to="-81672218" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_4" to="-81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_5" to="81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_6" to="81672216#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_7" to="-81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1457699223_8" to="-81672218" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1474873133_0" to="-191176268" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1474873133_1" to="191176266" fromLane="0" toLane="0" via=":1474873133_4_0" dir="s" state="M"/>
+ <connection from=":1474873133_4" to="191176266" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1474873133_2" to="191176266" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1474873133_3" to="-191176268" fromLane="0" toLane="0" via=":1474873133_5_0" dir="s" state="M"/>
+ <connection from=":1474873133_5" to="-191176268" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1474873137_0" to="191176265" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1474873139_0" to="-191176262" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1479400627_0" to="109438231#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1479400627_1" to="134572340#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1479400627_2" to="109438231#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1479400627_3" to="134572340#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1482088973_0" to="59159266#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088973_1" to="134872478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088973_2" to="134872478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088973_3" to="59159266#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_0" to="-59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_1" to="-134872478" fromLane="0" toLane="0" via=":1482088987_9_0" dir="s" state="M"/>
+ <connection from=":1482088987_9" to="-134872478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_2" to="59159262#4" fromLane="0" toLane="0" via=":1482088987_10_0" dir="s" state="M"/>
+ <connection from=":1482088987_10" to="59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_3" to="59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_4" to="-59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_5" to="-134872478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_6" to="-134872478" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_7" to="59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1482088987_8" to="-59159262#3" fromLane="0" toLane="0" via=":1482088987_11_0" dir="s" state="M"/>
+ <connection from=":1482088987_11" to="-59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545661417_0" to="141190464" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545661417_1" to="141190463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545661417_2" to="141190464" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545661417_3" to="141190463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672785_0" to="-141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672787_0" to="141191260#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672787_1" to="139118804#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672788_0" to="-141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_0" to="-141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_1" to="-141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_2" to="141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_3" to="141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_4" to="-141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_5" to="-141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_6" to="-141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_7" to="141191248#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672797_8" to="-141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_0" to="-141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_1" to="141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_2" to="141191252" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_3" to="141191252" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_4" to="-141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_5" to="141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_6" to="141191250#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_7" to="141191252" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672804_8" to="-141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_0" to="141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_1" to="141191260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_2" to="-141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_3" to="-141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_4" to="141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_5" to="141191260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_6" to="141191260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_7" to="-141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672806_8" to="141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_0" to="141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_1" to="141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_2" to="-141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_3" to="-141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_4" to="141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_5" to="141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_6" to="141191263#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_7" to="-141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672819_8" to="141191247#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_0" to="141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_1" to="-141191252" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_2" to="-141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_3" to="-141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_4" to="141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_5" to="-141191252" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_6" to="-141191252" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_7" to="-141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672824_8" to="141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_0" to="141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_1" to="141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_2" to="-141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_3" to="-141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_4" to="141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_5" to="141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_6" to="141191248#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_7" to="-141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672843_8" to="141191263#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672852_0" to="141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672852_1" to="-141191259#5" fromLane="0" toLane="0" via=":1545672852_4_0" dir="s" state="M"/>
+ <connection from=":1545672852_4" to="-141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672852_2" to="-141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672852_3" to="141191259#0" fromLane="0" toLane="0" via=":1545672852_5_0" dir="s" state="M"/>
+ <connection from=":1545672852_5" to="141191259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_0" to="-141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_1" to="141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_2" to="141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_3" to="141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_4" to="-141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_5" to="141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_6" to="141191248#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_7" to="141191250#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672864_8" to="-141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_0" to="-141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_1" to="141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_2" to="141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_3" to="141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_4" to="-141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_5" to="141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_6" to="141191250#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_7" to="141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672874_8" to="-141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_0" to="-141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_1" to="-141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_2" to="141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_3" to="141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_4" to="-141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_5" to="-141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_6" to="-141191259#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_7" to="141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672910_8" to="-141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_0" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_1" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_2" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_3" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_4" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_5" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_6" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_7" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_8" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_9" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_10" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_11" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_12" to="-141191262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_13" to="141191256#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_14" to="141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672919_15" to="-141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672923_0" to="141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672923_1" to="-141191255#1" fromLane="0" toLane="0" via=":1545672923_4_0" dir="s" state="M"/>
+ <connection from=":1545672923_4" to="-141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672923_2" to="-141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672923_3" to="141191255#0" fromLane="0" toLane="0" via=":1545672923_5_0" dir="s" state="M"/>
+ <connection from=":1545672923_5" to="141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_0" to="-141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_1" to="141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_2" to="141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_3" to="141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_4" to="-141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_5" to="141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_6" to="141191259#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_7" to="141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672954_8" to="-141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672971_0" to="-141191262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_0" to="-141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_1" to="141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_2" to="-141191257" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_3" to="-141191257" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_4" to="-141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_5" to="141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_6" to="-141191257" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_7" to="141191255#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545672999_8" to="-141191255#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_0" to="-141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_1" to="141191257" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_2" to="141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_3" to="141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_4" to="-141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_5" to="141191257" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_6" to="141191257" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_7" to="141191259#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673030_8" to="-141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_0" to="-141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_1" to="-141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_2" to="141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_3" to="141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_4" to="-141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_5" to="-141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_6" to="-141191258#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_7" to="141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673031_8" to="-141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_0" to="-141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_1" to="141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_2" to="141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_3" to="141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_4" to="-141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_5" to="141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_6" to="141191250#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_7" to="141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673065_8" to="-141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_0" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_1" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_2" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_3" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_4" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_5" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_6" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_7" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_8" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_9" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_10" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_11" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_12" to="-141191259#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_13" to="141191259#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_14" to="-141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673067_15" to="141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_0" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_1" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_2" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_3" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_4" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_5" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_6" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_7" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_8" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_9" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_10" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_11" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_12" to="-141191264#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_13" to="141191256#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_14" to="141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673092_15" to="-141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_0" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_1" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_2" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_3" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_4" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_5" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_6" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_7" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_8" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_9" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_10" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_11" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_12" to="-141191247#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_13" to="141191250#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_14" to="141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673105_15" to="-141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_0" to="23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_1" to="141191250#0" fromLane="0" toLane="0" via=":1545673118_9_0" dir="s" state="M"/>
+ <connection from=":1545673118_9" to="141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_2" to="-23182517#3" fromLane="0" toLane="0" via=":1545673118_10_0" dir="s" state="M"/>
+ <connection from=":1545673118_10" to="-23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_3" to="-23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_4" to="23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_5" to="141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_6" to="141191250#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_7" to="-23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673118_8" to="23182517#4" fromLane="0" toLane="0" via=":1545673118_11_0" dir="s" state="M"/>
+ <connection from=":1545673118_11" to="23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_0" to="141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_1" to="-141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_2" to="-141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_3" to="-141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_4" to="141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_5" to="-141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_6" to="-141191264#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_7" to="-141191254#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673123_8" to="141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_0" to="-141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_1" to="141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_2" to="141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_3" to="141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_4" to="-141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_5" to="141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_6" to="141191254#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_7" to="141191249#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673135_8" to="-141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_0" to="141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_1" to="-141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_2" to="141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_3" to="141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_4" to="141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_5" to="-141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_6" to="-141191258#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_7" to="141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673150_8" to="141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_0" to="-141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_1" to="141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_2" to="-141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_3" to="-141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_4" to="-141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_5" to="141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_6" to="141191249#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_7" to="-141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673191_8" to="-141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_0" to="141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_1" to="-141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_2" to="-141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_3" to="-141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_4" to="141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_5" to="-141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_6" to="-141191254#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_7" to="-141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673218_8" to="141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_0" to="141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_1" to="141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_2" to="-141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_3" to="-141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_4" to="141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_5" to="141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_6" to="141191256#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_7" to="-141191251#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673223_8" to="141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_0" to="-141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_1" to="141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_2" to="-141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_3" to="-141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_4" to="-141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_5" to="141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_6" to="141191253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_7" to="-141191253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673240_8" to="-141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_0" to="-141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_1" to="141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_2" to="141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_3" to="141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_4" to="-141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_5" to="141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_6" to="141191251#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_7" to="141191249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673280_8" to="-141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_0" to="141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_1" to="-141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_2" to="-141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_3" to="-141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_4" to="141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_5" to="-141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_6" to="-141191258#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_7" to="-141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673304_8" to="141191258#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_0" to="141191261#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_1" to="-141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_2" to="141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_3" to="-141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_4" to="141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_5" to="141191261#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_6" to="141191247#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_7" to="141191261#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673319_8" to="-141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_0" to="-141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_1" to="-141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_2" to="141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_3" to="141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_4" to="-141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_5" to="-141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_6" to="-141191251#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_7" to="141191249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673333_8" to="-141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_0" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_1" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_2" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_3" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_4" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_5" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_6" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_7" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_8" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_9" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_10" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_11" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_12" to="-141191247#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_13" to="141191249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_14" to="141191247#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673345_15" to="-141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_0" to="23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_1" to="141191249#0" fromLane="0" toLane="0" via=":1545673349_9_0" dir="s" state="M"/>
+ <connection from=":1545673349_9" to="141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_2" to="-23182517#2" fromLane="0" toLane="0" via=":1545673349_10_0" dir="s" state="M"/>
+ <connection from=":1545673349_10" to="-23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_3" to="-23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_4" to="23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_5" to="141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_6" to="141191249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_7" to="-23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1545673349_8" to="23182517#3" fromLane="0" toLane="0" via=":1545673349_11_0" dir="s" state="M"/>
+ <connection from=":1545673349_11" to="23182517#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003168_0" to="149419435#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003168_1" to="24573897#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003168_2" to="149419435#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003168_3" to="24573897#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003172_0" to="149419435#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003172_1" to="42976407#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003193_0" to="24573930#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003193_1" to="149419435#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003193_2" to="24573930#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003193_3" to="149419435#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003199_0" to="81096816#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624003199_1" to="81096816#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624020482_0" to="24573930#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624020482_1" to="24573930#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624020484_0" to="24573897#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624020484_1" to="149420179" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_0" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_1" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_2" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_3" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_4" to="149422210#1" fromLane="0" toLane="0" via=":1624060630_25_0" dir="s" state="M"/>
+ <connection from=":1624060630_25" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_5" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_6" to="-23566901#1" fromLane="0" toLane="0" via=":1624060630_26_0" dir="s" state="M"/>
+ <connection from=":1624060630_26" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_7" to="166728377#2" fromLane="0" toLane="0" via=":1624060630_27_0" dir="s" state="M"/>
+ <connection from=":1624060630_27" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_8" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_9" to="-149422210#0" fromLane="0" toLane="0" via=":1624060630_28_0" dir="s" state="M"/>
+ <connection from=":1624060630_28" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_10" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_11" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_12" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_13" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_14" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_15" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_16" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_17" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_18" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_19" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_20" to="-166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_21" to="-149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_22" to="149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_23" to="-23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1624060630_24" to="166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1625774769_0" to="197781817" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_0" to="-149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_1" to="-149819222" fromLane="0" toLane="0" via=":1627657715_9_0" dir="s" state="M"/>
+ <connection from=":1627657715_9" to="-149819222" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_2" to="179917803#0" fromLane="0" toLane="0" via=":1627657715_10_0" dir="s" state="M"/>
+ <connection from=":1627657715_10" to="179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_3" to="179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_4" to="-149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_5" to="-149819222" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_6" to="-149819222" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_7" to="179917803#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657715_8" to="-149819227#3" fromLane="0" toLane="0" via=":1627657715_11_0" dir="s" state="M"/>
+ <connection from=":1627657715_11" to="-149819227#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657783_0" to="149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657783_1" to="149819222" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657783_2" to="149819222" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657783_3" to="149819232#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_0" to="149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_1" to="-149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_2" to="149819224" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_3" to="149819224" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_4" to="149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_5" to="-149819232#1" fromLane="0" toLane="0" via=":1627657822_9_0" dir="s" state="M"/>
+ <connection from=":1627657822_9" to="-149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_6" to="-149819232#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_7" to="149819224" fromLane="0" toLane="0" via=":1627657822_10_0" dir="s" state="M"/>
+ <connection from=":1627657822_10" to="149819224" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657822_8" to="149819232#2" fromLane="0" toLane="0" via=":1627657822_11_0" dir="s" state="M"/>
+ <connection from=":1627657822_11" to="149819232#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_0" to="-149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_1" to="-149819224" fromLane="0" toLane="0" via=":1627657825_9_0" dir="s" state="M"/>
+ <connection from=":1627657825_9" to="-149819224" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_2" to="149819227#2" fromLane="0" toLane="0" via=":1627657825_10_0" dir="s" state="M"/>
+ <connection from=":1627657825_10" to="149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_3" to="149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_4" to="-149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_5" to="-149819224" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_6" to="-149819224" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_7" to="149819227#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1627657825_8" to="-149819227#1" fromLane="0" toLane="0" via=":1627657825_11_0" dir="s" state="M"/>
+ <connection from=":1627657825_11" to="-149819227#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_0" to="-130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_1" to="130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_2" to="-105254618" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_3" to="-105254618" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_4" to="-130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_5" to="130443630#3" fromLane="0" toLane="0" via=":1634988377_9_0" dir="s" state="M"/>
+ <connection from=":1634988377_9" to="130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_6" to="130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_7" to="-105254618" fromLane="0" toLane="0" via=":1634988377_10_0" dir="s" state="M"/>
+ <connection from=":1634988377_10" to="-105254618" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1634988377_8" to="-130443630#2" fromLane="0" toLane="0" via=":1634988377_11_0" dir="s" state="M"/>
+ <connection from=":1634988377_11" to="-130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_0" to="-197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_1" to="151164683" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_2" to="197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_3" to="197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_4" to="-197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_5" to="151164683" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_6" to="151164683" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_7" to="197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1639892546_8" to="-197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_0" to="101272435#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_1" to="38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_2" to="-38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_3" to="-38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_4" to="101272435#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_5" to="38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_6" to="-38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_7" to="101272435#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480279_8" to="38319548#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_0" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_1" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_2" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_3" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_4" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_5" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_6" to="38319548#10" fromLane="0" toLane="0" via=":1669480280_16_0" dir="s" state="M"/>
+ <connection from=":1669480280_16" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_7" to="154844500#2" fromLane="0" toLane="0" via=":1669480280_17_0" dir="s" state="M"/>
+ <connection from=":1669480280_17" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_8" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_9" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_10" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_11" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_12" to="38319548#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_13" to="154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_14" to="-38319548#9" fromLane="0" toLane="0" via=":1669480280_18_0" dir="s" state="M"/>
+ <connection from=":1669480280_18" to="-38319548#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480280_15" to="-154844500#1" fromLane="0" toLane="0" via=":1669480280_19_0" dir="s" state="M"/>
+ <connection from=":1669480280_19" to="-154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_0" to="154844474#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_1" to="-160587542" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_2" to="154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_3" to="154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_4" to="154844474#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_5" to="154844474#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480281_6" to="-160587542" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480281_7" to="154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480281_8" to="154844474#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480281_9" to="-160587542" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_0" to="-110514869#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480282_1" to="154844485#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480282_2" to="154844485#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_3" to="154844503" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_4" to="-110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_5" to="154844485#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_6" to="154844503" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_7" to="154844485#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480282_8" to="154844485#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480282_9" to="154844503" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480282_10" to="-110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480283_0" to="101272435#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_1" to="-38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_2" to="38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_3" to="38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_4" to="101272435#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_5" to="-38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_6" to="38319548#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_7" to="101272435#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480283_8" to="-38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_0" to="154844474#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_1" to="-38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_2" to="38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_3" to="38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_4" to="154844474#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_5" to="154844474#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480284_6" to="-38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_7" to="38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480284_8" to="154844474#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480284_9" to="-38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_0" to="-38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_1" to="81124939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_2" to="81124939#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480286_3" to="38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_4" to="-38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_5" to="81124939#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1669480286_6" to="38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_7" to="81124939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_8" to="38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480286_9" to="-38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_0" to="-38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_1" to="37771900#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_2" to="38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_3" to="-38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_4" to="37771900#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_5" to="38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_6" to="37771900#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_7" to="38319548#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480287_8" to="-38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_0" to="-81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_1" to="172498387#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_2" to="81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_3" to="172498387#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_4" to="81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_5" to="-81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_6" to="-81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_7" to="172498387#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1669480292_8" to="81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1718241040_0" to="-151164683" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_0" to="38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_1" to="151167658#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_2" to="-38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_3" to="151167658#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_4" to="-38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_5" to="38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_6" to="38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_7" to="151167658#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213140_8" to="-38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_0" to="44738605#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_1" to="38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_2" to="-38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_3" to="-38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_4" to="44738605#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_5" to="38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_6" to="-38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_7" to="44738605#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213141_8" to="38319549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_0" to="38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_1" to="8272412#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_2" to="-38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_3" to="8272412#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_4" to="-38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_5" to="38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_6" to="38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_7" to="8272412#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213509_8" to="-38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_0" to="38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_1" to="149419435#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_2" to="-38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_3" to="149419435#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_4" to="-38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_5" to="38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_6" to="38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_7" to="149419435#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719213668_8" to="-38319550#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223322_0" to="-105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223322_1" to="81672207#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223322_2" to="81672207#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223322_3" to="-105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_0" to="-105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_1" to="-191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_2" to="105254616#1" fromLane="0" toLane="0" via=":1719223329_9_0" dir="s" state="M"/>
+ <connection from=":1719223329_9" to="105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_3" to="105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_4" to="-105254616#0" fromLane="0" toLane="0" via=":1719223329_10_0" dir="s" state="M"/>
+ <connection from=":1719223329_10" to="-105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_5" to="-191056427#1" fromLane="0" toLane="0" via=":1719223329_11_0" dir="s" state="M"/>
+ <connection from=":1719223329_11" to="-191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_6" to="105254616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_7" to="-191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1719223329_8" to="-105254616#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380179_0" to="81096816#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380184_0" to="37973569#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380184_1" to="-160584981" fromLane="0" toLane="0" via=":1726380184_4_0" dir="s" state="M"/>
+ <connection from=":1726380184_4" to="-160584981" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380184_2" to="-160584981" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380184_3" to="37973569#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380187_0" to="160584981" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380187_1" to="160584982#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380187_2" to="160584982#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380187_3" to="160584981" fromLane="0" toLane="0" via=":1726380187_4_0" dir="s" state="M"/>
+ <connection from=":1726380187_4" to="160584981" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380193_0" to="81394192#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380193_1" to="160584982#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380193_2" to="81394192#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380193_3" to="160584982#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380194_0" to="-130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380194_1" to="130443630#4" fromLane="0" toLane="0" via=":1726380194_6_0" dir="s" state="M"/>
+ <connection from=":1726380194_6" to="130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380194_2" to="130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380194_3" to="-130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380194_4" to="130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380194_5" to="-130443630#3" fromLane="0" toLane="0" via=":1726380194_7_0" dir="s" state="M"/>
+ <connection from=":1726380194_7" to="-130443630#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380195_0" to="160584980" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380195_1" to="81394192#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380204_0" to="43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380204_1" to="-43684741#2" fromLane="0" toLane="0" via=":1726380204_6_0" dir="s" state="M"/>
+ <connection from=":1726380204_6" to="-43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380204_2" to="-43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380204_3" to="43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380204_4" to="-43684741#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726380204_5" to="43684741#3" fromLane="0" toLane="0" via=":1726380204_7_0" dir="s" state="M"/>
+ <connection from=":1726380204_7" to="43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394722_0" to="160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394722_1" to="160587538#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394722_2" to="160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394723_0" to="-160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394723_1" to="111863096#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394723_2" to="160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394723_3" to="111863096#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394723_4" to="160587538#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394723_5" to="-160587538#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394723_6" to="-160587538#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394723_7" to="111863096#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394723_8" to="160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_0" to="149868584#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394724_1" to="-160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_2" to="-149868584#3" fromLane="0" toLane="1" via=":1726394724_18_0" dir="s" state="M"/>
+ <connection from=":1726394724_18" to="-149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_3" to="160587538#4" fromLane="0" toLane="1" via=":1726394724_19_0" dir="s" state="M"/>
+ <connection from=":1726394724_19" to="160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_4" to="160587538#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394724_5" to="149868584#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394724_6" to="149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_7" to="-160587538#3" fromLane="0" toLane="1" via=":1726394724_20_0" dir="s" state="M"/>
+ <connection from=":1726394724_20" to="-160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_8" to="-149868584#3" fromLane="0" toLane="1" via=":1726394724_21_0" dir="s" state="M"/>
+ <connection from=":1726394724_21" to="-149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_9" to="-149868584#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394724_10" to="160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_11" to="149868584#4" fromLane="0" toLane="1" via=":1726394724_22_0" dir="s" state="M"/>
+ <connection from=":1726394724_22" to="149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_12" to="-160587538#3" fromLane="0" toLane="1" via=":1726394724_23_0" dir="s" state="M"/>
+ <connection from=":1726394724_23" to="-160587538#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_13" to="-160587538#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394724_14" to="-149868584#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394724_15" to="-149868584#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_16" to="160587538#4" fromLane="0" toLane="1" via=":1726394724_24_0" dir="s" state="M"/>
+ <connection from=":1726394724_24" to="160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394724_17" to="149868584#4" fromLane="0" toLane="1" via=":1726394724_25_0" dir="s" state="M"/>
+ <connection from=":1726394724_25" to="149868584#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394725_0" to="103851602#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394725_1" to="-160587538#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394725_2" to="160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394725_3" to="160587538#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394725_4" to="103851602#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394725_5" to="-160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394725_6" to="160587538#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394725_7" to="103851602#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394725_8" to="-160587538#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_0" to="-154844503" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394726_1" to="-160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_2" to="160587542" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_3" to="160587537#0" fromLane="0" toLane="1" via=":1726394726_18_0" dir="s" state="M"/>
+ <connection from=":1726394726_18" to="160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_4" to="160587537#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394726_5" to="-154844503" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394726_6" to="-154844503" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_7" to="-160587538#7" fromLane="0" toLane="1" via=":1726394726_19_0" dir="s" state="M"/>
+ <connection from=":1726394726_19" to="-160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_8" to="160587542" fromLane="0" toLane="1" via=":1726394726_20_0" dir="s" state="M"/>
+ <connection from=":1726394726_20" to="160587542" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_9" to="160587542" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394726_10" to="160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_11" to="-154844503" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_12" to="-160587538#7" fromLane="0" toLane="1" via=":1726394726_21_0" dir="s" state="M"/>
+ <connection from=":1726394726_21" to="-160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_13" to="-160587538#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394726_14" to="160587542" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394726_15" to="160587542" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_16" to="160587537#0" fromLane="0" toLane="1" via=":1726394726_22_0" dir="s" state="M"/>
+ <connection from=":1726394726_22" to="160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394726_17" to="-154844503" fromLane="0" toLane="1" via=":1726394726_23_0" dir="s" state="M"/>
+ <connection from=":1726394726_23" to="-154844503" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_0" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_1" to="-160587537#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_2" to="-160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_3" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_4" to="160587537#1" fromLane="0" toLane="1" via=":1726394727_18_0" dir="s" state="M"/>
+ <connection from=":1726394727_18" to="160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_5" to="160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_6" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_7" to="-160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_8" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_9" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_10" to="160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_11" to="160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_12" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_13" to="-160587537#0" fromLane="0" toLane="1" via=":1726394727_19_0" dir="s" state="M"/>
+ <connection from=":1726394727_19" to="-160587537#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_14" to="-160587537#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_15" to="38319548#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394727_16" to="160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394727_17" to="-38319548#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_0" to="-160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_1" to="-160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394728_2" to="172498387#3" fromLane="0" toLane="0" via=":1726394728_11_0" dir="s" state="M"/>
+ <connection from=":1726394728_11" to="172498387#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_3" to="160587537#2" fromLane="0" toLane="1" via=":1726394728_12_0" dir="s" state="M"/>
+ <connection from=":1726394728_12" to="160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394728_4" to="172498387#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_5" to="160587537#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_6" to="160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394728_7" to="-160587537#1" fromLane="0" toLane="1" via=":1726394728_13_0" dir="s" state="M"/>
+ <connection from=":1726394728_13" to="-160587537#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394728_8" to="-160587537#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_9" to="172498387#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394728_10" to="160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_0" to="-160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_1" to="149408824#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_2" to="160587537#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_3" to="149408824#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394729_4" to="149408824#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_5" to="160587537#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394729_6" to="-160587537#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_7" to="-160587537#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394729_8" to="149408824#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1726394729_9" to="149408824#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1726394729_10" to="160587537#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219331_0" to="-166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_1" to="42976406#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_2" to="42976406#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219331_3" to="42976406#3" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219331_4" to="166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_5" to="-166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_6" to="42976406#3" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219331_7" to="166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_8" to="42976406#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_9" to="166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219331_10" to="-166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_0" to="-166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_1" to="38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_2" to="-38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_3" to="-38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_4" to="-166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_5" to="38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_6" to="38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_7" to="-38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219332_8" to="-166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_0" to="166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_1" to="166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_2" to="-166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_3" to="-166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_4" to="166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_5" to="166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_6" to="166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_7" to="-166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219335_8" to="166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_0" to="37973569#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_1" to="166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_2" to="-166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_3" to="-166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_4" to="37973569#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_5" to="166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_6" to="-166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_7" to="37973569#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219341_8" to="166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_0" to="154500693#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_1" to="-166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_2" to="166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_3" to="166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_4" to="154500693#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_5" to="154500693#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219342_6" to="154500693#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219342_7" to="-166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_8" to="166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219342_9" to="154500693#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219342_10" to="-166576464#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_0" to="-166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_1" to="42976406#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_2" to="42976406#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219343_3" to="42976406#2" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219343_4" to="166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_5" to="-166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_6" to="42976406#2" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219343_7" to="166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_8" to="42976406#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_9" to="166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219343_10" to="-166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_0" to="166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_1" to="166576463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_2" to="-166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_3" to="-166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_4" to="166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_5" to="166576463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_6" to="166576463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_7" to="-166576466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219344_8" to="166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_0" to="-130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_1" to="130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_2" to="-166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_3" to="-166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_4" to="-130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_5" to="130443630#10" fromLane="0" toLane="0" via=":1780219345_9_0" dir="s" state="M"/>
+ <connection from=":1780219345_9" to="130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_6" to="130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_7" to="-166576466#2" fromLane="0" toLane="0" via=":1780219345_10_0" dir="s" state="M"/>
+ <connection from=":1780219345_10" to="-166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219345_8" to="-130443630#9" fromLane="0" toLane="0" via=":1780219345_11_0" dir="s" state="M"/>
+ <connection from=":1780219345_11" to="-130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_0" to="166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_1" to="-166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_2" to="-166576463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_3" to="-166576463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_4" to="166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_5" to="-166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_6" to="-166576462#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_7" to="-166576463" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219348_8" to="166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_0" to="154500693#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_1" to="-166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_2" to="166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_3" to="166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_4" to="154500693#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_5" to="154500693#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219352_6" to="154500693#2" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219352_7" to="-166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_8" to="166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219352_9" to="154500693#2" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":1780219352_10" to="-166576468#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_0" to="37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_1" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_2" to="-37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219353_3" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_4" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_5" to="37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_6" to="37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219353_7" to="166576462#5" fromLane="0" toLane="0" via=":1780219353_18_0" dir="s" state="M"/>
+ <connection from=":1780219353_18" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_8" to="-37973572#0" fromLane="0" toLane="1" via=":1780219353_19_0" dir="s" state="M"/>
+ <connection from=":1780219353_19" to="-37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219353_9" to="-37973572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_10" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_11" to="37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219353_12" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_13" to="166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_14" to="-37973572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_15" to="-37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219353_16" to="-166576462#4" fromLane="0" toLane="0" via=":1780219353_20_0" dir="s" state="M"/>
+ <connection from=":1780219353_20" to="-166576462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219353_17" to="37973572#1" fromLane="0" toLane="1" via=":1780219353_21_0" dir="s" state="M"/>
+ <connection from=":1780219353_21" to="37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219355_0" to="-130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_1" to="130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_2" to="166576459" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_3" to="166576459" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_4" to="-130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_5" to="130443630#11" fromLane="0" toLane="0" via=":1780219355_9_0" dir="s" state="M"/>
+ <connection from=":1780219355_9" to="130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_6" to="130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_7" to="166576459" fromLane="0" toLane="0" via=":1780219355_10_0" dir="s" state="M"/>
+ <connection from=":1780219355_10" to="166576459" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219355_8" to="-130443630#10" fromLane="0" toLane="0" via=":1780219355_11_0" dir="s" state="M"/>
+ <connection from=":1780219355_11" to="-130443630#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_0" to="166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_1" to="133960539#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_2" to="133960539#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219359_3" to="-166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_4" to="166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_5" to="133960539#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219359_6" to="-166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_7" to="133960539#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_8" to="-166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219359_9" to="166576462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_0" to="166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_1" to="37973568#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_2" to="-166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_3" to="37973568#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_4" to="-166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_5" to="166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_6" to="166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_7" to="37973568#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219360_8" to="-166576462#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_0" to="42976405#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_1" to="166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_2" to="-166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_3" to="-166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_4" to="42976405#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_5" to="42976405#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219361_6" to="166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_7" to="-166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219361_8" to="42976405#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1780219361_9" to="166576462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_0" to="101272424#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_1" to="-166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_2" to="166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_3" to="166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_4" to="101272424#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_5" to="-166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_6" to="166576468#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_7" to="101272424#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219362_8" to="-166576468#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_0" to="101272424#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_1" to="-166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_2" to="166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_3" to="166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_4" to="101272424#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_5" to="-166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_6" to="166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_7" to="101272424#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219363_8" to="-166576464#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_0" to="166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_1" to="38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_2" to="-38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_3" to="-38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_4" to="166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_5" to="38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_6" to="38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_7" to="-38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219365_8" to="166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_0" to="-166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_1" to="166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_2" to="166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_3" to="166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_4" to="-166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_5" to="166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_6" to="166576461#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_7" to="166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219366_8" to="-166576461#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_0" to="166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_1" to="166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_2" to="-166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_3" to="-166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_4" to="166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_5" to="166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_6" to="166576468#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_7" to="-166576462#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219369_8" to="166576462#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_0" to="-166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_1" to="38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_2" to="-38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_3" to="-38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_4" to="-166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_5" to="38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_6" to="38319550#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_7" to="-38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219371_8" to="-166576464#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_0" to="-166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_1" to="-166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_2" to="166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_3" to="166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_4" to="-166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_5" to="-166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_6" to="-166576464#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_7" to="166576464#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219373_8" to="-166576462#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_0" to="166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_1" to="-166576459" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_2" to="-166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_3" to="-166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_4" to="166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_5" to="-166576459" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_6" to="-166576459" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_7" to="-166576466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219374_8" to="166576466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_0" to="42976410#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_1" to="166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_2" to="-166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_3" to="-166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_4" to="42976410#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_5" to="166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_6" to="-166576462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_7" to="42976410#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780219377_8" to="166576462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780381201_0" to="-38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1780623649_0" to="-166625259" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1903640411_0" to="-106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1903640411_1" to="-106367427#1" fromLane="0" toLane="0" via=":1903640411_2_0" dir="s" state="M"/>
+ <connection from=":1903640411_2" to="-106367427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1913728534_0" to="-160587538#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1913728534_1" to="-160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1913728534_2" to="160587538#7" fromLane="0" toLane="1" via=":1913728534_6_0" dir="s" state="M"/>
+ <connection from=":1913728534_6" to="160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1913728534_3" to="160587538#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":1913728534_4" to="160587538#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":1913728534_5" to="-160587538#6" fromLane="0" toLane="1" via=":1913728534_7_0" dir="s" state="M"/>
+ <connection from=":1913728534_7" to="-160587538#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2004733211_0" to="-23182358#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2006433692_0" to="-132323955" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2006433692_1" to="190048065" fromLane="0" toLane="0" via=":2006433692_4_0" dir="s" state="M"/>
+ <connection from=":2006433692_4" to="190048065" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2006433692_2" to="190048065" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2006433692_3" to="-132323955" fromLane="0" toLane="0" via=":2006433692_5_0" dir="s" state="M"/>
+ <connection from=":2006433692_5" to="-132323955" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414184_0" to="-191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414184_1" to="191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414184_2" to="-191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414184_3" to="191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414184_4" to="191056427#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414184_5" to="-191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_0" to="108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_1" to="191056427#0" fromLane="0" toLane="0" via=":2016414185_9_0" dir="s" state="M"/>
+ <connection from=":2016414185_9" to="191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_2" to="-108329425#1" fromLane="0" toLane="0" via=":2016414185_10_0" dir="s" state="M"/>
+ <connection from=":2016414185_10" to="-108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_3" to="-108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_4" to="108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_5" to="191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_6" to="191056427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_7" to="-108329425#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2016414185_8" to="108329425#2" fromLane="0" toLane="0" via=":2016414185_11_0" dir="s" state="M"/>
+ <connection from=":2016414185_11" to="108329425#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759586_0" to="191176262" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759586_1" to="-191176261" fromLane="0" toLane="0" via=":2017759586_4_0" dir="s" state="M"/>
+ <connection from=":2017759586_4" to="-191176261" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759586_2" to="-191176261" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759586_3" to="191176262" fromLane="0" toLane="0" via=":2017759586_5_0" dir="s" state="M"/>
+ <connection from=":2017759586_5" to="191176262" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_0" to="191176268" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_1" to="69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_2" to="-69931595#1" fromLane="0" toLane="0" via=":2017759588_9_0" dir="s" state="M"/>
+ <connection from=":2017759588_9" to="-69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_3" to="-69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_4" to="191176268" fromLane="0" toLane="0" via=":2017759588_10_0" dir="s" state="M"/>
+ <connection from=":2017759588_10" to="191176268" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_5" to="69931595#2" fromLane="0" toLane="0" via=":2017759588_11_0" dir="s" state="M"/>
+ <connection from=":2017759588_11" to="69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_6" to="69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_7" to="-69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759588_8" to="191176268" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759592_0" to="191176261" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759592_1" to="-191176264" fromLane="0" toLane="0" via=":2017759592_4_0" dir="s" state="M"/>
+ <connection from=":2017759592_4" to="-191176264" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759592_2" to="-191176264" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759592_3" to="191176261" fromLane="0" toLane="0" via=":2017759592_5_0" dir="s" state="M"/>
+ <connection from=":2017759592_5" to="191176261" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_0" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_1" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_2" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_3" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_4" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_5" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_6" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_7" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_8" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_9" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_10" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_11" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_12" to="-191176266" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_13" to="-191176265" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_14" to="191176263" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759594_15" to="191176264" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759596_0" to="-191176263" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759596_1" to="191176267" fromLane="0" toLane="0" via=":2017759596_4_0" dir="s" state="M"/>
+ <connection from=":2017759596_4" to="191176267" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759596_2" to="191176267" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759596_3" to="-191176263" fromLane="0" toLane="0" via=":2017759596_5_0" dir="s" state="M"/>
+ <connection from=":2017759596_5" to="-191176263" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2017759615_0" to="-191176267" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_0" to="-122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_1" to="197794762" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_2" to="-197781817" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_3" to="-197781817" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_4" to="-122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_5" to="197794762" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_6" to="197794762" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_7" to="-197781817" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2079750190_8" to="-122394841#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499947_0" to="37640550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499947_1" to="-197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499947_2" to="37640550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499947_3" to="-197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_0" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_1" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_2" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_3" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_4" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_5" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_6" to="38319548#16" fromLane="0" toLane="0" via=":2081499948_16_0" dir="s" state="M"/>
+ <connection from=":2081499948_16" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_7" to="197955309#5" fromLane="0" toLane="0" via=":2081499948_17_0" dir="s" state="M"/>
+ <connection from=":2081499948_17" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_8" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_9" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_10" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_11" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_12" to="38319548#16" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_13" to="197955309#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_14" to="-38319548#15" fromLane="0" toLane="0" via=":2081499948_18_0" dir="s" state="M"/>
+ <connection from=":2081499948_18" to="-38319548#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499948_15" to="-197955309#4" fromLane="0" toLane="0" via=":2081499948_19_0" dir="s" state="M"/>
+ <connection from=":2081499948_19" to="-197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_0" to="81124943#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_1" to="-197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_2" to="197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_3" to="197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_4" to="81124943#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_5" to="81124943#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499949_6" to="-197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_7" to="197955309#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499949_8" to="81124943#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499949_9" to="-197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_0" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_1" to="-160587538#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_2" to="-160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499950_3" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_4" to="160587538#1" fromLane="0" toLane="1" via=":2081499950_18_0" dir="s" state="M"/>
+ <connection from=":2081499950_18" to="160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499950_5" to="160587538#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_6" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_7" to="-160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499950_8" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_9" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_10" to="160587538#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_11" to="160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499950_12" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_13" to="-160587538#0" fromLane="0" toLane="1" via=":2081499950_19_0" dir="s" state="M"/>
+ <connection from=":2081499950_19" to="-160587538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499950_14" to="-160587538#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_15" to="197955309#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499950_16" to="160587538#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499950_17" to="-197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_0" to="-197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_1" to="166602674#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_2" to="166602674#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499951_3" to="197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_4" to="-197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_5" to="166602674#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2081499951_6" to="197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_7" to="166602674#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_8" to="197955309#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499951_9" to="-197955309#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499952_0" to="81096816#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499952_1" to="197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499952_2" to="81096816#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2081499952_3" to="197955309#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_0" to="-149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_1" to="170590354#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767389_2" to="149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_3" to="170590354#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_4" to="149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_5" to="-149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_6" to="-149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_7" to="170590354#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767389_8" to="170590354#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767389_9" to="149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_0" to="170594822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_1" to="-24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_2" to="24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_3" to="24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_4" to="170594822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_5" to="170594822#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767392_6" to="-24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_7" to="24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767392_8" to="170594822#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767392_9" to="-24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_0" to="23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_1" to="170590354#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767394_2" to="-23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_3" to="170590354#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_4" to="-23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_5" to="23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_6" to="23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_7" to="170590354#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767394_8" to="170590354#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767394_9" to="-23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_0" to="170594822#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_1" to="-37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_2" to="37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_3" to="37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_4" to="170594822#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_5" to="170594822#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767395_6" to="-37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_7" to="37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":2265767395_8" to="170594822#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":2265767395_9" to="-37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_0" to="133868191#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_1" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_2" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_3" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_4" to="133868191#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":243489891_5" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_6" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_7" to="133868191#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":243489891_8" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_9" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_10" to="133868191#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_11" to="133868191#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":243489891_12" to="133868191#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":243489891_13" to="133868191#0" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":243489891_14" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_15" to="-130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":243489891_16" to="133868191#0" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":243489891_17" to="130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_0" to="129780026#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_1" to="129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_2" to="-154409621" fromLane="0" toLane="0" via=":248913124_9_0" dir="s" state="M"/>
+ <connection from=":248913124_9" to="-154409621" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_3" to="-154409621" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_4" to="129780026#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_5" to="129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_6" to="-154409621" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_7" to="129780026#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913124_8" to="129780022#0" fromLane="0" toLane="0" via=":248913124_10_0" dir="s" state="M"/>
+ <connection from=":248913124_10" to="129780022#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913130_0" to="37449253#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913130_1" to="23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913130_2" to="23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913130_3" to="37449253#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_0" to="23066443#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_1" to="-23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_2" to="23066446#2" fromLane="0" toLane="0" via=":248913131_9_0" dir="s" state="M"/>
+ <connection from=":248913131_9" to="23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_3" to="23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_4" to="23066443#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_5" to="-23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_6" to="23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_7" to="23066443#6" fromLane="0" toLane="0" via=":248913131_10_0" dir="s" state="M"/>
+ <connection from=":248913131_10" to="23066443#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913131_8" to="-23066446#1" fromLane="0" toLane="0" via=":248913131_11_0" dir="s" state="M"/>
+ <connection from=":248913131_11" to="-23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_0" to="-23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_1" to="58770725#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_2" to="23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_3" to="-23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_4" to="58770725#2" fromLane="0" toLane="0" via=":248913133_9_0" dir="s" state="M"/>
+ <connection from=":248913133_9" to="58770725#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_5" to="23066446#3" fromLane="0" toLane="0" via=":248913133_10_0" dir="s" state="M"/>
+ <connection from=":248913133_10" to="23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_6" to="58770725#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_7" to="23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913133_8" to="-23066446#2" fromLane="0" toLane="0" via=":248913133_11_0" dir="s" state="M"/>
+ <connection from=":248913133_11" to="-23066446#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_0" to="81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_1" to="58770725#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_2" to="-81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_3" to="81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_4" to="58770725#1" fromLane="0" toLane="0" via=":248913142_9_0" dir="s" state="M"/>
+ <connection from=":248913142_9" to="58770725#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_5" to="-81096844#0" fromLane="0" toLane="0" via=":248913142_10_0" dir="s" state="M"/>
+ <connection from=":248913142_10" to="-81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_6" to="58770725#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_7" to="-81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913142_8" to="81096844#1" fromLane="0" toLane="0" via=":248913142_11_0" dir="s" state="M"/>
+ <connection from=":248913142_11" to="81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_0" to="23066443#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_1" to="81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_2" to="-81096844#1" fromLane="0" toLane="0" via=":248913144_9_0" dir="s" state="M"/>
+ <connection from=":248913144_9" to="-81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_3" to="-81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_4" to="23066443#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_5" to="81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_6" to="-81096844#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_7" to="23066443#7" fromLane="0" toLane="0" via=":248913144_10_0" dir="s" state="M"/>
+ <connection from=":248913144_10" to="23066443#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913144_8" to="81096844#2" fromLane="0" toLane="0" via=":248913144_11_0" dir="s" state="M"/>
+ <connection from=":248913144_11" to="81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913145_0" to="37449253#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913145_1" to="-81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913145_2" to="-81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913145_3" to="37449253#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913154_0" to="-154844500#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913200_0" to="23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913200_1" to="-23066462#4" fromLane="0" toLane="0" via=":248913200_4_0" dir="s" state="M"/>
+ <connection from=":248913200_4" to="-23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913200_2" to="-23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":248913200_3" to="23066462#0" fromLane="0" toLane="0" via=":248913200_5_0" dir="s" state="M"/>
+ <connection from=":248913200_5" to="23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":249404225_0" to="122302027#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":249404225_1" to="122302035#1" fromLane="0" toLane="0" via=":249404225_4_0" dir="s" state="M"/>
+ <connection from=":249404225_4" to="122302035#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":249404225_2" to="122302035#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":249404225_3" to="122302027#1" fromLane="0" toLane="0" via=":249404225_5_0" dir="s" state="M"/>
+ <connection from=":249404225_5" to="122302027#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_0" to="-23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_1" to="23182387#1" fromLane="0" toLane="0" via=":250683336_9_0" dir="s" state="M"/>
+ <connection from=":250683336_9" to="23182387#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_2" to="23182358#1" fromLane="0" toLane="0" via=":250683336_10_0" dir="s" state="M"/>
+ <connection from=":250683336_10" to="23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_3" to="23182387#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_4" to="23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_5" to="-23182358#0" fromLane="0" toLane="0" via=":250683336_11_0" dir="s" state="M"/>
+ <connection from=":250683336_11" to="-23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_6" to="-23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_7" to="23182387#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683336_8" to="23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683337_0" to="130443635#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683337_1" to="130443635#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683362_0" to="23182340#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683362_1" to="23182387#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683362_2" to="23182340#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683362_3" to="23182387#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683402_0" to="23182387#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250683402_1" to="23182387#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250684983_0" to="-23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250684983_1" to="23182358#2" fromLane="0" toLane="0" via=":250684983_4_0" dir="s" state="M"/>
+ <connection from=":250684983_4" to="23182358#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250684983_2" to="23182358#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250684983_3" to="-23182358#1" fromLane="0" toLane="0" via=":250684983_5_0" dir="s" state="M"/>
+ <connection from=":250684983_5" to="-23182358#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685721_0" to="38230510#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685721_1" to="130443629#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_0" to="141190466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_1" to="23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_2" to="23182358#0" fromLane="0" toLane="0" via=":250685766_9_0" dir="s" state="M"/>
+ <connection from=":250685766_9" to="23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_3" to="23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_4" to="141190466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_5" to="23182517#0" fromLane="0" toLane="0" via=":250685766_10_0" dir="s" state="M"/>
+ <connection from=":250685766_10" to="23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_6" to="23182358#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_7" to="141190466#2" fromLane="0" toLane="0" via=":250685766_11_0" dir="s" state="M"/>
+ <connection from=":250685766_11" to="141190466#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685766_8" to="23182517#0" fromLane="0" toLane="0" via=":250685766_12_0" dir="s" state="M"/>
+ <connection from=":250685766_12" to="23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685816_0" to="141190466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685816_1" to="-23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685816_2" to="141190466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685816_3" to="-23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685816_4" to="-23182484#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685816_5" to="141190466#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_0" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_1" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_2" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_3" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_4" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_5" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_6" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_7" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_8" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_9" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_10" to="190048063" fromLane="0" toLane="0" via=":250685829_16_0" dir="s" state="M"/>
+ <connection from=":250685829_16" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_11" to="-23182484#0" fromLane="0" toLane="0" via=":250685829_17_0" dir="s" state="M"/>
+ <connection from=":250685829_17" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_12" to="190048063" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_13" to="-23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_14" to="-38318373#1" fromLane="0" toLane="0" via=":250685829_18_0" dir="s" state="M"/>
+ <connection from=":250685829_18" to="-38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250685829_15" to="23182484#1" fromLane="0" toLane="0" via=":250685829_19_0" dir="s" state="M"/>
+ <connection from=":250685829_19" to="23182484#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250686694_0" to="23182391" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250686694_1" to="141190466#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250688445_0" to="24319547" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250688540_0" to="24319558" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250688540_1" to="23182589#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_0" to="-23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_1" to="-83051426" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_2" to="23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_3" to="23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_4" to="-23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_5" to="-83051426" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_6" to="-83051426" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_7" to="23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689131_8" to="-23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_0" to="-23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_1" to="-83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_2" to="23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_3" to="23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_4" to="-23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_5" to="-83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_6" to="-83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_7" to="23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689186_8" to="-23066462#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_0" to="23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_1" to="-23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_2" to="-83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_3" to="-83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_4" to="23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_5" to="-23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_6" to="-23066462#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_7" to="-83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689201_8" to="23066462#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689290_0" to="42976410#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":250689290_1" to="42976410#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417165_0" to="37771902#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417165_1" to="23066443#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_0" to="-110514869#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_1" to="58770725#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_2" to="110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":252417189_3" to="-110514869#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_4" to="-110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":252417189_5" to="58770725#5" fromLane="0" toLane="0" via=":252417189_11_0" dir="s" state="M"/>
+ <connection from=":252417189_11" to="58770725#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_6" to="110514869#1" fromLane="0" toLane="1" via=":252417189_12_0" dir="s" state="M"/>
+ <connection from=":252417189_12" to="110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":252417189_7" to="58770725#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_8" to="110514869#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417189_9" to="110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":252417189_10" to="-110514869#0" fromLane="0" toLane="1" via=":252417189_13_0" dir="s" state="M"/>
+ <connection from=":252417189_13" to="-110514869#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":252417190_0" to="58770724" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252417190_1" to="58770724" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418151_0" to="154409616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418151_1" to="154409616#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418152_0" to="144874008#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418152_1" to="144874008#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_0" to="139118804#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_1" to="23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_2" to="-23182517#4" fromLane="0" toLane="0" via=":252418937_9_0" dir="s" state="M"/>
+ <connection from=":252418937_9" to="-23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_3" to="-23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_4" to="139118804#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_5" to="23315111#0" fromLane="0" toLane="0" via=":252418937_10_0" dir="s" state="M"/>
+ <connection from=":252418937_10" to="23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_6" to="-23182517#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_7" to="139118804#3" fromLane="0" toLane="0" via=":252418937_11_0" dir="s" state="M"/>
+ <connection from=":252418937_11" to="139118804#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":252418937_8" to="23315111#0" fromLane="0" toLane="0" via=":252418937_12_0" dir="s" state="M"/>
+ <connection from=":252418937_12" to="23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_0" to="149868584#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_1" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_2" to="-149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227471_3" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_4" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_5" to="149868584#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_6" to="149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227471_7" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_8" to="-149868584#1" fromLane="0" toLane="1" via=":255227471_18_0" dir="s" state="M"/>
+ <connection from=":255227471_18" to="-149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227471_9" to="-149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_10" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_11" to="149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227471_12" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_13" to="23262356#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_14" to="-149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_15" to="-149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227471_16" to="37772597#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227471_17" to="149868584#2" fromLane="0" toLane="1" via=":255227471_19_0" dir="s" state="M"/>
+ <connection from=":255227471_19" to="149868584#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227472_0" to="23566902" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227472_1" to="-23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_0" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_1" to="149422199#0" fromLane="0" toLane="0" via=":255227475_12_0" dir="s" state="M"/>
+ <connection from=":255227475_12" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_2" to="-23262356#2" fromLane="0" toLane="0" via=":255227475_13_0" dir="s" state="M"/>
+ <connection from=":255227475_13" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_3" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_4" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_5" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_6" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_7" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_8" to="23262356#3" fromLane="0" toLane="0" via=":255227475_14_0" dir="s" state="M"/>
+ <connection from=":255227475_14" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_9" to="23262356#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_10" to="149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227475_11" to="-23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227478_0" to="23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_0" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_1" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_2" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_3" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_4" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_5" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_6" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_7" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_8" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_9" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_10" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_11" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_12" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_13" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_14" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_15" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_16" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_17" to="149422199#1" fromLane="0" toLane="0" via=":255227480_36_0" dir="s" state="M"/>
+ <connection from=":255227480_36" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_18" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_19" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_20" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_21" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_22" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_23" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_24" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_25" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_26" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_27" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_28" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_29" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_30" to="-23566901#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_31" to="166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_32" to="149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_33" to="23566901#1" fromLane="0" toLane="0" via=":255227480_37_0" dir="s" state="M"/>
+ <connection from=":255227480_37" to="23566901#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_34" to="-166728377#2" fromLane="0" toLane="0" via=":255227480_38_0" dir="s" state="M"/>
+ <connection from=":255227480_38" to="-166728377#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227480_35" to="-149422199#0" fromLane="0" toLane="0" via=":255227480_39_0" dir="s" state="M"/>
+ <connection from=":255227480_39" to="-149422199#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_0" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_1" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_2" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_3" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_4" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_5" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_6" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_7" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_8" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_9" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_10" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_11" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_12" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_13" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_14" to="149422199#2" fromLane="0" toLane="0" via=":255227482_25_0" dir="s" state="M"/>
+ <connection from=":255227482_25" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_15" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_16" to="166728377#1" fromLane="0" toLane="0" via=":255227482_26_0" dir="s" state="M"/>
+ <connection from=":255227482_26" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_17" to="149422210#0" fromLane="0" toLane="0" via=":255227482_27_0" dir="s" state="M"/>
+ <connection from=":255227482_27" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_18" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_19" to="-149422199#1" fromLane="0" toLane="0" via=":255227482_28_0" dir="s" state="M"/>
+ <connection from=":255227482_28" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_20" to="149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_21" to="166728377#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_22" to="149422210#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_23" to="-149422199#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227482_24" to="-166728377#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_0" to="149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_1" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_2" to="-149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227483_3" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_4" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_5" to="149868584#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_6" to="149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227483_7" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_8" to="-149868584#0" fromLane="0" toLane="1" via=":255227483_18_0" dir="s" state="M"/>
+ <connection from=":255227483_18" to="-149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227483_9" to="-149868584#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_10" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_11" to="149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227483_12" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_13" to="-149422193#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_14" to="-149868584#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_15" to="-149868584#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":255227483_16" to="24573947#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":255227483_17" to="149868584#1" fromLane="0" toLane="1" via=":255227483_19_0" dir="s" state="M"/>
+ <connection from=":255227483_19" to="149868584#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":256633248_0" to="160587557" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":257907508_0" to="83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169554_0" to="24573897#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169554_1" to="24573905#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169554_2" to="24573897#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169554_3" to="24573905#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169591_0" to="101272424#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169591_1" to="101272424#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169592_0" to="24573905#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169592_1" to="24573930#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169592_2" to="24573905#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169592_3" to="24573930#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_0" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_1" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_2" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_3" to="24573947#3" fromLane="0" toLane="0" via=":267169634_16_0" dir="s" state="M"/>
+ <connection from=":267169634_16" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_4" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_5" to="83051421#0" fromLane="0" toLane="0" via=":267169634_17_0" dir="s" state="M"/>
+ <connection from=":267169634_17" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_6" to="-83051436#1" fromLane="0" toLane="0" via=":267169634_18_0" dir="s" state="M"/>
+ <connection from=":267169634_18" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_7" to="-24573947#2" fromLane="0" toLane="0" via=":267169634_19_0" dir="s" state="M"/>
+ <connection from=":267169634_19" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_8" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_9" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_10" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_11" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_12" to="-83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_13" to="-24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_14" to="24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169634_15" to="83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_0" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_1" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_2" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_3" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_4" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_5" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_6" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_7" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_8" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_9" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_10" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_11" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_12" to="-24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_13" to="-83051421#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_14" to="24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169686_15" to="83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_0" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_1" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_2" to="83051436#1" fromLane="0" toLane="0" via=":267169690_16_0" dir="s" state="M"/>
+ <connection from=":267169690_16" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_3" to="24573939#0" fromLane="0" toLane="0" via=":267169690_17_0" dir="s" state="M"/>
+ <connection from=":267169690_17" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_4" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_5" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_6" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_7" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_8" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_9" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_10" to="-83051436#0" fromLane="0" toLane="0" via=":267169690_18_0" dir="s" state="M"/>
+ <connection from=":267169690_18" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_11" to="-37772597#2" fromLane="0" toLane="0" via=":267169690_19_0" dir="s" state="M"/>
+ <connection from=":267169690_19" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_12" to="-37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_13" to="83051436#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_14" to="24573939#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169690_15" to="-83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_0" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_1" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_2" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_3" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_4" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_5" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_6" to="-24573947#3" fromLane="0" toLane="0" via=":267169714_16_0" dir="s" state="M"/>
+ <connection from=":267169714_16" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_7" to="-37640549#0" fromLane="0" toLane="0" via=":267169714_17_0" dir="s" state="M"/>
+ <connection from=":267169714_17" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_8" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_9" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_10" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_11" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_12" to="-24573947#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_13" to="-37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_14" to="24573947#4" fromLane="0" toLane="0" via=":267169714_18_0" dir="s" state="M"/>
+ <connection from=":267169714_18" to="24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169714_15" to="37640549#1" fromLane="0" toLane="0" via=":267169714_19_0" dir="s" state="M"/>
+ <connection from=":267169714_19" to="37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_0" to="-24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_1" to="-37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_2" to="24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_3" to="24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_4" to="-24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_5" to="-37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_6" to="-37640549#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_7" to="24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169715_8" to="-24573939#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169795_0" to="-24573947#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169964_0" to="101272435#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169964_1" to="24573937" fromLane="0" toLane="0" via=":267169964_4_0" dir="s" state="M"/>
+ <connection from=":267169964_4" to="24573937" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169964_2" to="24573937" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":267169964_3" to="101272435#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406565_0" to="37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406565_1" to="-130443629#8" fromLane="0" toLane="0" via=":30406565_4_0" dir="s" state="M"/>
+ <connection from=":30406565_4" to="-130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406565_2" to="-130443629#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406565_3" to="37973566" fromLane="0" toLane="0" via=":30406565_5_0" dir="s" state="M"/>
+ <connection from=":30406565_5" to="37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_0" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_1" to="37973572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_2" to="37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":30406599_3" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_4" to="-37973572#1" fromLane="0" toLane="1" via=":30406599_18_0" dir="s" state="M"/>
+ <connection from=":30406599_18" to="-37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":30406599_5" to="-37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_6" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_7" to="37973572#2" fromLane="0" toLane="1" via=":30406599_19_0" dir="s" state="M"/>
+ <connection from=":30406599_19" to="37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":30406599_8" to="130443630#7" fromLane="0" toLane="0" via=":30406599_20_0" dir="s" state="M"/>
+ <connection from=":30406599_20" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_9" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_10" to="-37973572#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_11" to="-37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":30406599_12" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_13" to="37973572#2" fromLane="0" toLane="1" via=":30406599_21_0" dir="s" state="M"/>
+ <connection from=":30406599_21" to="37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":30406599_14" to="37973572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_15" to="130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":30406599_16" to="-37973572#1" fromLane="0" toLane="1" via=":30406599_22_0" dir="s" state="M"/>
+ <connection from=":30406599_22" to="-37973572#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":30406599_17" to="-130443630#6" fromLane="0" toLane="0" via=":30406599_23_0" dir="s" state="M"/>
+ <connection from=":30406599_23" to="-130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_0" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_1" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_2" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_3" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_4" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_5" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_6" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_7" to="122394864#2" fromLane="0" toLane="0" via=":314636763_16_0" dir="s" state="M"/>
+ <connection from=":314636763_16" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_8" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_9" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_10" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_11" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_12" to="38318373#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_13" to="122394864#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_14" to="-38318373#0" fromLane="0" toLane="0" via=":314636763_17_0" dir="s" state="M"/>
+ <connection from=":314636763_17" to="-38318373#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":314636763_15" to="-122394864#1" fromLane="0" toLane="0" via=":314636763_18_0" dir="s" state="M"/>
+ <connection from=":314636763_18" to="-122394864#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":320879142_0" to="139118804#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":320879142_1" to="129780020" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":320879142_2" to="132323955" fromLane="0" toLane="0" via=":320879142_6_0" dir="s" state="M"/>
+ <connection from=":320879142_6" to="132323955" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":320879142_3" to="132323955" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":320879142_4" to="139118804#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":320879142_5" to="129780020" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":356693794_0" to="-37973572#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":410296508_0" to="37973572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":410296508_1" to="37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":410296508_2" to="34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":410296508_3" to="-37973572#3" fromLane="0" toLane="1" via=":410296508_11_0" dir="s" state="M"/>
+ <connection from=":410296508_11" to="-37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":410296508_4" to="-37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":410296508_5" to="37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":410296508_6" to="34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":410296508_7" to="34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":410296508_8" to="-37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":410296508_9" to="-37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":410296508_10" to="37973572#4" fromLane="0" toLane="1" via=":410296508_12_0" dir="s" state="M"/>
+ <connection from=":410296508_12" to="37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":427996791_0" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_1" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_2" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_3" to="-23315111#1" fromLane="0" toLane="0" via=":427996791_16_0" dir="s" state="M"/>
+ <connection from=":427996791_16" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_4" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_5" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_6" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_7" to="-129780022#4" fromLane="0" toLane="0" via=":427996791_17_0" dir="s" state="M"/>
+ <connection from=":427996791_17" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_8" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_9" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_10" to="129780022#5" fromLane="0" toLane="0" via=":427996791_18_0" dir="s" state="M"/>
+ <connection from=":427996791_18" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_11" to="23315111#2" fromLane="0" toLane="0" via=":427996791_19_0" dir="s" state="M"/>
+ <connection from=":427996791_19" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_12" to="23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_13" to="-129780022#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_14" to="-23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996791_15" to="129780022#5" fromLane="0" toLane="0" via=":427996791_20_0" dir="s" state="M"/>
+ <connection from=":427996791_20" to="129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_0" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_1" to="44641744#1" fromLane="0" toLane="0" via=":427996792_25_0" dir="s" state="M"/>
+ <connection from=":427996792_25" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_2" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_26_0" dir="s" state="M"/>
+ <connection from=":427996792_26" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_3" to="108329427#0" fromLane="0" toLane="0" via=":427996792_27_0" dir="s" state="M"/>
+ <connection from=":427996792_27" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_4" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_28_0" dir="s" state="M"/>
+ <connection from=":427996792_28" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_5" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_6" to="44641744#1" fromLane="0" toLane="0" via=":427996792_29_0" dir="s" state="M"/>
+ <connection from=":427996792_29" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_7" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_30_0" dir="s" state="M"/>
+ <connection from=":427996792_30" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_8" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_9" to="108329427#0" fromLane="0" toLane="0" via=":427996792_31_0" dir="s" state="M"/>
+ <connection from=":427996792_31" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_10" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_11" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_12" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_13" to="44641744#1" fromLane="0" toLane="0" via=":427996792_32_0" dir="s" state="M"/>
+ <connection from=":427996792_32" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_14" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_33_0" dir="s" state="M"/>
+ <connection from=":427996792_33" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_15" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_16" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_17" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_18" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_19" to="108329426#1" fromLane="0" toLane="0" via=":427996792_34_0" dir="s" state="M"/>
+ <connection from=":427996792_34" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_20" to="108329426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_21" to="44641744#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_22" to="-108329426#0" fromLane="0" toLane="0" via=":427996792_35_0" dir="s" state="M"/>
+ <connection from=":427996792_35" to="-108329426#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_23" to="108329427#0" fromLane="0" toLane="0" via=":427996792_36_0" dir="s" state="M"/>
+ <connection from=":427996792_36" to="108329427#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":427996792_24" to="-23315111#3" fromLane="0" toLane="0" via=":427996792_37_0" dir="s" state="M"/>
+ <connection from=":427996792_37" to="-23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428097664_0" to="81523343" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428097664_1" to="81523343" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_0" to="130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_1" to="134572336#3" fromLane="0" toLane="1" via=":428303370_9_0" dir="s" state="M"/>
+ <connection from=":428303370_9" to="134572336#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":428303370_2" to="-130443629#4" fromLane="0" toLane="0" via=":428303370_10_0" dir="s" state="M"/>
+ <connection from=":428303370_10" to="-130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_3" to="134572336#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_4" to="-130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_5" to="130443629#5" fromLane="0" toLane="0" via=":428303370_11_0" dir="s" state="M"/>
+ <connection from=":428303370_11" to="130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_6" to="130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":428303370_7" to="134572336#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":428303370_8" to="-130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":429179805_0" to="37942667#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":429179805_1" to="108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":429179805_2" to="-108329425#4" fromLane="0" toLane="0" via=":429179805_6_0" dir="s" state="M"/>
+ <connection from=":429179805_6" to="-108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":429179805_3" to="-108329425#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":429179805_4" to="37942667#0" fromLane="0" toLane="0" via=":429179805_7_0" dir="s" state="M"/>
+ <connection from=":429179805_7" to="37942667#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":429179805_5" to="108329425#5" fromLane="0" toLane="0" via=":429179805_8_0" dir="s" state="M"/>
+ <connection from=":429179805_8" to="108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":432548414_0" to="-149422199#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_0" to="130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_1" to="37351086#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_2" to="37369047#2" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":435668511_3" to="-130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_4" to="37351086#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_5" to="37369047#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_6" to="-130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_7" to="130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_8" to="130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_9" to="37351086#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668511_10" to="37369047#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":435668511_11" to="37369047#2" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":435668511_12" to="37369047#2" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":435668511_13" to="-130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668513_0" to="172498387#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668513_1" to="129780026#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668513_2" to="172498387#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668513_3" to="129780026#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668516_0" to="81523332#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668516_1" to="37449253#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668516_2" to="81523332#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668516_3" to="37449253#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668521_0" to="58770725#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668521_1" to="172498387#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_0" to="129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_1" to="144874012#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_2" to="-129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_3" to="129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_4" to="144874012#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_5" to="-129780022#2" fromLane="0" toLane="0" via=":435668534_9_0" dir="s" state="M"/>
+ <connection from=":435668534_9" to="-129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_6" to="144874012#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_7" to="-129780022#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668534_8" to="129780022#3" fromLane="0" toLane="0" via=":435668534_10_0" dir="s" state="M"/>
+ <connection from=":435668534_10" to="129780022#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_0" to="37973565#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_1" to="37351089#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_2" to="-129780022#5" fromLane="0" toLane="0" via=":435668539_11_0" dir="s" state="M"/>
+ <connection from=":435668539_11" to="-129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_3" to="-129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_4" to="37973565#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_5" to="37351089#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":435668539_6" to="37351089#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":435668539_7" to="-129780022#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_8" to="37973565#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":435668539_9" to="37351089#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":435668539_10" to="37351089#0" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":438042367_0" to="37973572#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042367_1" to="42976406#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042367_2" to="42976406#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":438042367_3" to="-149868584#8" fromLane="0" toLane="1" via=":438042367_11_0" dir="s" state="M"/>
+ <connection from=":438042367_11" to="-149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042367_4" to="37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042367_5" to="42976406#0" fromLane="0" toLane="2" via=":438042367_12_0" dir="s" state="M"/>
+ <connection from=":438042367_12" to="42976406#0" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":438042367_6" to="-149868584#8" fromLane="0" toLane="1" via=":438042367_13_0" dir="s" state="M"/>
+ <connection from=":438042367_13" to="-149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042367_7" to="42976406#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042367_8" to="42976406#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042367_9" to="-149868584#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042367_10" to="37973572#0" fromLane="0" toLane="1" via=":438042367_14_0" dir="s" state="M"/>
+ <connection from=":438042367_14" to="37973572#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_0" to="42976405#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042369_1" to="42976405#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_2" to="149868584#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042369_3" to="-149868584#7" fromLane="0" toLane="1" via=":438042369_11_0" dir="s" state="M"/>
+ <connection from=":438042369_11" to="-149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_4" to="-149868584#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042369_5" to="42976405#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042369_6" to="42976405#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_7" to="149868584#8" fromLane="0" toLane="1" via=":438042369_12_0" dir="s" state="M"/>
+ <connection from=":438042369_12" to="149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_8" to="-149868584#7" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_9" to="42976405#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042369_10" to="149868584#8" fromLane="0" toLane="1" via=":438042369_13_0" dir="s" state="M"/>
+ <connection from=":438042369_13" to="149868584#8" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042372_0" to="23066443#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042372_1" to="44738605#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042372_2" to="23066443#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042372_3" to="44738605#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042373_0" to="37449249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042373_1" to="37449249#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042374_0" to="37449253#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042374_1" to="37449249#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042376_0" to="151167658#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042376_1" to="23066443#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042376_2" to="151167658#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042376_3" to="23066443#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042377_0" to="151167658#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042377_1" to="154500695" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042378_0" to="154500699#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042378_1" to="154500699#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042379_0" to="166625259" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042379_1" to="81672207#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042379_2" to="81672207#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042379_3" to="166625259" fromLane="0" toLane="0" via=":438042379_4_0" dir="s" state="M"/>
+ <connection from=":438042379_4" to="166625259" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042380_0" to="81394162#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042380_1" to="81394162#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042380_2" to="81394162#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042381_0" to="133960539#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042381_1" to="133960539#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042381_2" to="154500698" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042385_0" to="133960538#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042385_1" to="37449249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042385_2" to="133960538#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042385_3" to="133960538#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042385_4" to="37449249#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042386_0" to="154500699#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042386_1" to="133960538#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042386_2" to="133960538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042386_3" to="154500699#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042386_4" to="133960538#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":438042387_0" to="37449249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":438042387_1" to="37449249#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_0" to="-179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_1" to="37638426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_2" to="42976406#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_3" to="42976406#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":441236049_4" to="42976406#4" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":441236049_5" to="-179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_6" to="37638426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_7" to="42976406#4" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":441236049_8" to="37638426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_9" to="42976406#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236049_10" to="-179692877#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236060_0" to="42976406#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236060_1" to="42976406#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":441236060_2" to="42976406#5" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":441236060_3" to="154500706#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236060_4" to="42976406#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441236060_5" to="154500706#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266854_0" to="-154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266854_1" to="154844500#3" fromLane="0" toLane="0" via=":441266854_4_0" dir="s" state="M"/>
+ <connection from=":441266854_4" to="154844500#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266854_2" to="154844500#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266854_3" to="-154844500#2" fromLane="0" toLane="0" via=":441266854_5_0" dir="s" state="M"/>
+ <connection from=":441266854_5" to="-154844500#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266865_0" to="37640549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_0" to="-23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_1" to="-83051455" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_2" to="23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_3" to="23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_4" to="-23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_5" to="-83051455" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_6" to="-83051455" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_7" to="23066462#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266870_8" to="-23066462#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_0" to="-83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_1" to="-24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_2" to="83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_3" to="83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_4" to="-83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_5" to="-24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_6" to="-24573939#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_7" to="83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266874_8" to="-83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266876_0" to="81124945" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266876_1" to="37640550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266879_0" to="101272435#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266879_1" to="101272435#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_0" to="101272435#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_1" to="-154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_2" to="154844500#1" fromLane="0" toLane="0" via=":441266880_9_0" dir="s" state="M"/>
+ <connection from=":441266880_9" to="154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_3" to="154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_4" to="101272435#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_5" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_10_0" dir="s" state="M"/>
+ <connection from=":441266880_10" to="-154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_6" to="154844500#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_7" to="101272435#5" fromLane="0" toLane="0" via=":441266880_11_0" dir="s" state="M"/>
+ <connection from=":441266880_11" to="101272435#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266880_8" to="-154844500#0" fromLane="0" toLane="0" via=":441266880_12_0" dir="s" state="M"/>
+ <connection from=":441266880_12" to="-154844500#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266884_0" to="172498387#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266884_1" to="101272435#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266884_2" to="172498387#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":441266884_3" to="101272435#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089060_0" to="37771900#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089060_1" to="172498387#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089060_2" to="37771900#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089060_3" to="172498387#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089061_0" to="81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089061_1" to="37771900#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089061_2" to="37771900#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089061_3" to="81096844#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089062_0" to="-23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089062_1" to="37771900#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089062_2" to="37771900#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089062_3" to="-23066446#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_0" to="-110514869#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_1" to="37771900#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_2" to="110514869#2" fromLane="0" toLane="1" via=":443089063_11_0" dir="s" state="M"/>
+ <connection from=":443089063_11" to="110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":443089063_3" to="-110514869#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_4" to="-110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":443089063_5" to="37771900#6" fromLane="0" toLane="0" via=":443089063_12_0" dir="s" state="M"/>
+ <connection from=":443089063_12" to="37771900#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_6" to="110514869#2" fromLane="0" toLane="1" via=":443089063_13_0" dir="s" state="M"/>
+ <connection from=":443089063_13" to="110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":443089063_7" to="37771900#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_8" to="110514869#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089063_9" to="110514869#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":443089063_10" to="-110514869#1" fromLane="0" toLane="1" via=":443089063_14_0" dir="s" state="M"/>
+ <connection from=":443089063_14" to="-110514869#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":443089064_0" to="37771903" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089064_1" to="37771900#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089065_0" to="58770836" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089065_1" to="58770836" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089066_0" to="58770833" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089066_1" to="58770833" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089068_0" to="24573905#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089068_1" to="81096816#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089069_0" to="37771902#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089069_1" to="42976410#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089070_0" to="58770837#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089070_1" to="58770837#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089071_0" to="23066443#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089071_1" to="58770723#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089071_2" to="23066443#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089071_3" to="58770723#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089072_0" to="58770723#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089072_1" to="58770725#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089072_2" to="58770723#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089072_3" to="58770725#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089074_0" to="37771904#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443089074_1" to="101272435#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_0" to="37772595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_1" to="-24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_2" to="24573947#2" fromLane="0" toLane="0" via=":443101905_9_0" dir="s" state="M"/>
+ <connection from=":443101905_9" to="24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_3" to="24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_4" to="37772595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_5" to="-24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_6" to="24573947#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_7" to="37772595#1" fromLane="0" toLane="0" via=":443101905_10_0" dir="s" state="M"/>
+ <connection from=":443101905_10" to="37772595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101905_8" to="-24573947#1" fromLane="0" toLane="0" via=":443101905_11_0" dir="s" state="M"/>
+ <connection from=":443101905_11" to="-24573947#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_0" to="37772595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_1" to="-37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_2" to="37772597#2" fromLane="0" toLane="0" via=":443101906_9_0" dir="s" state="M"/>
+ <connection from=":443101906_9" to="37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_3" to="37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_4" to="37772595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_5" to="-37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_6" to="37772597#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_7" to="37772595#2" fromLane="0" toLane="0" via=":443101906_10_0" dir="s" state="M"/>
+ <connection from=":443101906_10" to="37772595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101906_8" to="-37772597#1" fromLane="0" toLane="0" via=":443101906_11_0" dir="s" state="M"/>
+ <connection from=":443101906_11" to="-37772597#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101911_0" to="23182589#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101911_1" to="101272429#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101912_0" to="42976410#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101912_1" to="37973569#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101912_2" to="42976410#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101912_3" to="37973569#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101913_0" to="37772596#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101913_1" to="101272424#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101913_2" to="37772596#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101913_3" to="101272424#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101914_0" to="24573930#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101914_1" to="37772596#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101915_0" to="37772596#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101915_1" to="37772596#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_0" to="23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_1" to="101272426#1" fromLane="0" toLane="0" via=":443101920_9_0" dir="s" state="M"/>
+ <connection from=":443101920_9" to="101272426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_2" to="-23262356#1" fromLane="0" toLane="0" via=":443101920_10_0" dir="s" state="M"/>
+ <connection from=":443101920_10" to="-23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_3" to="101272426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_4" to="-23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_5" to="23262356#2" fromLane="0" toLane="0" via=":443101920_11_0" dir="s" state="M"/>
+ <connection from=":443101920_11" to="23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_6" to="23262356#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_7" to="101272426#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101920_8" to="-23262356#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_0" to="-149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_1" to="101272426#2" fromLane="0" toLane="0" via=":443101921_9_0" dir="s" state="M"/>
+ <connection from=":443101921_9" to="101272426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_2" to="149422193#0" fromLane="0" toLane="0" via=":443101921_10_0" dir="s" state="M"/>
+ <connection from=":443101921_10" to="149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_3" to="101272426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_4" to="149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_5" to="-149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_6" to="-149422210#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_7" to="101272426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101921_8" to="149422193#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":443101938_0" to="139118802#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_0" to="37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_1" to="37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":444026884_2" to="81394192#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_3" to="-37973572#2" fromLane="0" toLane="1" via=":444026884_11_0" dir="s" state="M"/>
+ <connection from=":444026884_11" to="-37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":444026884_4" to="81394192#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_5" to="-37973572#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_6" to="-37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":444026884_7" to="37973572#3" fromLane="0" toLane="1" via=":444026884_12_0" dir="s" state="M"/>
+ <connection from=":444026884_12" to="37973572#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":444026884_8" to="37973572#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_9" to="81394192#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026884_10" to="-37973572#2" fromLane="0" toLane="1" via=":444026884_13_0" dir="s" state="M"/>
+ <connection from=":444026884_13" to="-37973572#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":444026886_0" to="37973571#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026889_0" to="-130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026889_1" to="179692877#0" fromLane="0" toLane="0" via=":444026889_6_0" dir="s" state="M"/>
+ <connection from=":444026889_6" to="179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026889_2" to="179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026889_3" to="-130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026889_4" to="179692877#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026889_5" to="-130443630#11" fromLane="0" toLane="0" via=":444026889_7_0" dir="s" state="M"/>
+ <connection from=":444026889_7" to="-130443630#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026917_0" to="81096816#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026917_1" to="8272412#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026917_2" to="81096816#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":444026917_3" to="8272412#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506213_0" to="37973565#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_0" to="44641744#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_1" to="134572340#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_2" to="37973565#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_3" to="44641744#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_4" to="134572340#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_5" to="134572340#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":445506215_6" to="37973565#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_7" to="44641744#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506215_8" to="134572340#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":445506215_9" to="37973565#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506216_0" to="37942668#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506216_1" to="69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506216_2" to="-108329426#2" fromLane="0" toLane="0" via=":445506216_6_0" dir="s" state="M"/>
+ <connection from=":445506216_6" to="-108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506216_3" to="-108329426#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506216_4" to="37942668#0" fromLane="0" toLane="0" via=":445506216_7_0" dir="s" state="M"/>
+ <connection from=":445506216_7" to="37942668#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506216_5" to="69931595#0" fromLane="0" toLane="0" via=":445506216_8_0" dir="s" state="M"/>
+ <connection from=":445506216_8" to="69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506217_0" to="37973565#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506217_1" to="37942668#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506217_2" to="37973565#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506217_3" to="37942668#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_0" to="-130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_1" to="130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_2" to="-108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_3" to="-108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_4" to="-130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_5" to="130443630#1" fromLane="0" toLane="0" via=":445506220_9_0" dir="s" state="M"/>
+ <connection from=":445506220_9" to="130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_6" to="130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_7" to="-108329425#5" fromLane="0" toLane="0" via=":445506220_10_0" dir="s" state="M"/>
+ <connection from=":445506220_10" to="-108329425#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506220_8" to="-130443630#0" fromLane="0" toLane="0" via=":445506220_11_0" dir="s" state="M"/>
+ <connection from=":445506220_11" to="-130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506221_0" to="130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506221_1" to="-130443629#5" fromLane="0" toLane="0" via=":445506221_6_0" dir="s" state="M"/>
+ <connection from=":445506221_6" to="-130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506221_2" to="-130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506221_3" to="130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506221_4" to="-130443629#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445506221_5" to="130443629#6" fromLane="0" toLane="0" via=":445506221_7_0" dir="s" state="M"/>
+ <connection from=":445506221_7" to="130443629#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445823604_0" to="37973565#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445823604_1" to="44641745#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445823604_2" to="37973565#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":445823604_3" to="44641745#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017735_0" to="81394192#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017735_1" to="134572336#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017735_2" to="134572336#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017738_0" to="160584984" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_1" to="37973568#2" fromLane="0" toLane="0" via=":446017738_9_0" dir="s" state="M"/>
+ <connection from=":446017738_9" to="37973568#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_2" to="-34962531#1" fromLane="0" toLane="0" via=":446017738_10_0" dir="s" state="M"/>
+ <connection from=":446017738_10" to="-34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_3" to="37973568#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_4" to="-34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_5" to="160584984" fromLane="0" toLane="0" via=":446017738_11_0" dir="s" state="M"/>
+ <connection from=":446017738_11" to="160584984" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_6" to="160584984" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_7" to="37973568#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017738_8" to="-34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017739_0" to="81394192#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017739_1" to="37973568#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017739_2" to="81394192#15" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017739_3" to="37973568#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017740_0" to="37973569#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017740_1" to="81394192#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017740_2" to="37973569#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017740_3" to="81394192#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_0" to="37973568#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_1" to="-130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_2" to="130443630#9" fromLane="0" toLane="0" via=":446017741_9_0" dir="s" state="M"/>
+ <connection from=":446017741_9" to="130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_3" to="130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_4" to="37973568#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_5" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_10_0" dir="s" state="M"/>
+ <connection from=":446017741_10" to="-130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_6" to="130443630#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_7" to="37973568#4" fromLane="0" toLane="0" via=":446017741_11_0" dir="s" state="M"/>
+ <connection from=":446017741_11" to="37973568#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017741_8" to="-130443630#8" fromLane="0" toLane="0" via=":446017741_12_0" dir="s" state="M"/>
+ <connection from=":446017741_12" to="-130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017742_0" to="42976406#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017742_1" to="42976406#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017742_2" to="42976406#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":446017742_3" to="37973568#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017742_4" to="42976406#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017742_5" to="37973568#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017743_0" to="37973568#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017743_1" to="154500693#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017743_2" to="154500693#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017743_3" to="154500693#3" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":446017743_4" to="37973568#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017743_5" to="154500693#3" fromLane="0" toLane="1" via=":446017743_7_0" dir="s" state="M"/>
+ <connection from=":446017743_7" to="154500693#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017743_6" to="154500693#3" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":446017744_0" to="-130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_1" to="37973569#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_2" to="130443630#5" fromLane="0" toLane="0" via=":446017744_9_0" dir="s" state="M"/>
+ <connection from=":446017744_9" to="130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_3" to="-130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_4" to="37973569#6" fromLane="0" toLane="0" via=":446017744_10_0" dir="s" state="M"/>
+ <connection from=":446017744_10" to="37973569#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_5" to="130443630#5" fromLane="0" toLane="0" via=":446017744_11_0" dir="s" state="M"/>
+ <connection from=":446017744_11" to="130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_6" to="37973569#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_7" to="130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017744_8" to="-130443630#4" fromLane="0" toLane="0" via=":446017744_12_0" dir="s" state="M"/>
+ <connection from=":446017744_12" to="-130443630#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017746_0" to="37973569#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017746_1" to="133960539#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017746_2" to="133960539#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017746_3" to="37973569#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017746_4" to="133960539#3" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017747_0" to="42976405#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017747_1" to="37973569#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017747_2" to="42976405#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446017747_3" to="42976405#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":446017747_4" to="37973569#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766148_0" to="38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_0" to="-38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_1" to="81394192#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_2" to="59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_3" to="-38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_4" to="81394192#3" fromLane="0" toLane="0" via=":446766149_9_0" dir="s" state="M"/>
+ <connection from=":446766149_9" to="81394192#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_5" to="59159262#0" fromLane="0" toLane="0" via=":446766149_10_0" dir="s" state="M"/>
+ <connection from=":446766149_10" to="59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_6" to="81394192#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_7" to="59159262#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446766149_8" to="-38027102#2" fromLane="0" toLane="0" via=":446766149_11_0" dir="s" state="M"/>
+ <connection from=":446766149_11" to="-38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446770956_0" to="38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446770959_0" to="81394192#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446770959_1" to="-38027665#3" fromLane="0" toLane="0" via=":446770959_4_0" dir="s" state="M"/>
+ <connection from=":446770959_4" to="-38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446770959_2" to="-38027665#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":446770959_3" to="81394192#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564002_0" to="38230510#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564002_1" to="37973565#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564002_2" to="38230510#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564002_3" to="37973565#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_0" to="23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_1" to="38230510#2" fromLane="0" toLane="0" via=":450564003_9_0" dir="s" state="M"/>
+ <connection from=":450564003_9" to="38230510#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_2" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_10_0" dir="s" state="M"/>
+ <connection from=":450564003_10" to="-23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_3" to="38230510#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_4" to="-23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_5" to="23182517#1" fromLane="0" toLane="0" via=":450564003_11_0" dir="s" state="M"/>
+ <connection from=":450564003_11" to="23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_6" to="23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_7" to="38230510#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564003_8" to="-23182517#0" fromLane="0" toLane="0" via=":450564003_12_0" dir="s" state="M"/>
+ <connection from=":450564003_12" to="-23182517#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564004_0" to="139118806" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564004_1" to="139118806" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564005_0" to="129780019#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564005_1" to="-190048065" fromLane="0" toLane="0" via=":450564005_4_0" dir="s" state="M"/>
+ <connection from=":450564005_4" to="-190048065" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564005_2" to="-190048065" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564005_3" to="129780019#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564006_0" to="129780019#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564006_1" to="23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564006_2" to="129780019#1" fromLane="0" toLane="0" via=":450564006_4_0" dir="s" state="M"/>
+ <connection from=":450564006_4" to="129780019#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":450564006_3" to="23182484#0" fromLane="0" toLane="0" via=":450564006_5_0" dir="s" state="M"/>
+ <connection from=":450564006_5" to="23182484#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_0" to="38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_1" to="81523332#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_2" to="-38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_3" to="81523332#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_4" to="-38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_5" to="38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_6" to="38319546#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_7" to="81523332#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425486_8" to="-38319546#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_0" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_1" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_2" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_3" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_4" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_5" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_6" to="38319546#6" fromLane="0" toLane="0" via=":452425487_16_0" dir="s" state="M"/>
+ <connection from=":452425487_16" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_7" to="-81096844#2" fromLane="0" toLane="0" via=":452425487_17_0" dir="s" state="M"/>
+ <connection from=":452425487_17" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_8" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_9" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_10" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_11" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_12" to="38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_13" to="-81096844#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_14" to="-38319546#5" fromLane="0" toLane="0" via=":452425487_18_0" dir="s" state="M"/>
+ <connection from=":452425487_18" to="-38319546#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425487_15" to="81096844#3" fromLane="0" toLane="0" via=":452425487_19_0" dir="s" state="M"/>
+ <connection from=":452425487_19" to="81096844#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_0" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_1" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_2" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_3" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_4" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_5" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_6" to="38319546#7" fromLane="0" toLane="0" via=":452425488_16_0" dir="s" state="M"/>
+ <connection from=":452425488_16" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_7" to="23066446#1" fromLane="0" toLane="0" via=":452425488_17_0" dir="s" state="M"/>
+ <connection from=":452425488_17" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_8" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_9" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_10" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_11" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_12" to="38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_13" to="23066446#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_14" to="-38319546#6" fromLane="0" toLane="0" via=":452425488_18_0" dir="s" state="M"/>
+ <connection from=":452425488_18" to="-38319546#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425488_15" to="-23066446#0" fromLane="0" toLane="0" via=":452425488_19_0" dir="s" state="M"/>
+ <connection from=":452425488_19" to="-23066446#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425489_0" to="38319547" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425489_1" to="-38319546#8" fromLane="0" toLane="0" via=":452425489_4_0" dir="s" state="M"/>
+ <connection from=":452425489_4" to="-38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425489_2" to="-38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425489_3" to="38319547" fromLane="0" toLane="0" via=":452425489_5_0" dir="s" state="M"/>
+ <connection from=":452425489_5" to="38319547" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_0" to="-38319547" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_1" to="38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_2" to="38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_3" to="38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_4" to="-38319547" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_5" to="38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_6" to="38319549#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_7" to="38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425490_8" to="-38319547" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_0" to="23066443#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_1" to="-38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_2" to="38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_3" to="38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_4" to="23066443#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_5" to="-38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_6" to="38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_7" to="23066443#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425491_8" to="-38319548#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_0" to="-38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_1" to="58770725#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_2" to="38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_3" to="-38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_4" to="58770725#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_5" to="38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_6" to="58770725#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_7" to="38319548#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425493_8" to="-38319548#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_0" to="-38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_1" to="38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_2" to="81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_3" to="81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_4" to="-38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_5" to="38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_6" to="38319548#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_7" to="81096822#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425497_8" to="-38319548#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425499_0" to="38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425499_1" to="-38319549#2" fromLane="0" toLane="0" via=":452425499_4_0" dir="s" state="M"/>
+ <connection from=":452425499_4" to="-38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425499_2" to="-38319549#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425499_3" to="38319550#0" fromLane="0" toLane="0" via=":452425499_5_0" dir="s" state="M"/>
+ <connection from=":452425499_5" to="38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_0" to="58770723#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_1" to="38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_2" to="-38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_3" to="-38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_4" to="58770723#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_5" to="38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_6" to="-38319550#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_7" to="58770723#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425500_8" to="38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_0" to="38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_1" to="37771902#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_2" to="-38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_3" to="37771902#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_4" to="-38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_5" to="38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_6" to="38319550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_7" to="37771902#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425501_8" to="-38319550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_0" to="101272429#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_1" to="38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_2" to="-38319550#3" fromLane="0" toLane="0" via=":452425502_9_0" dir="s" state="M"/>
+ <connection from=":452425502_9" to="-38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_3" to="-38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_4" to="101272429#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_5" to="38319550#4" fromLane="0" toLane="0" via=":452425502_10_0" dir="s" state="M"/>
+ <connection from=":452425502_10" to="38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_6" to="-38319550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_7" to="101272429#2" fromLane="0" toLane="0" via=":452425502_11_0" dir="s" state="M"/>
+ <connection from=":452425502_11" to="101272429#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452425502_8" to="38319550#4" fromLane="0" toLane="0" via=":452425502_12_0" dir="s" state="M"/>
+ <connection from=":452425502_12" to="38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452446339_0" to="139118804#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452446340_0" to="81394162#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452446340_1" to="81394162#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":452446340_2" to="172498380#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452446345_0" to="172498380#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":452446345_1" to="172498380#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_0" to="-107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_1" to="134572336#1" fromLane="0" toLane="1" via=":477486714_9_0" dir="s" state="M"/>
+ <connection from=":477486714_9" to="134572336#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":477486714_2" to="81394169#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_3" to="134572336#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_4" to="81394169#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_5" to="-107066313#5" fromLane="0" toLane="0" via=":477486714_10_0" dir="s" state="M"/>
+ <connection from=":477486714_10" to="-107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_6" to="-107066313#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486714_7" to="134572336#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":477486714_8" to="81394169#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_0" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_1" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_2" to="38027102#1" fromLane="0" toLane="0" via=":477486717_16_0" dir="s" state="M"/>
+ <connection from=":477486717_16" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_3" to="107066313#3" fromLane="0" toLane="0" via=":477486717_17_0" dir="s" state="M"/>
+ <connection from=":477486717_17" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_4" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_5" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_6" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_7" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_8" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_9" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_10" to="-38027102#0" fromLane="0" toLane="0" via=":477486717_18_0" dir="s" state="M"/>
+ <connection from=":477486717_18" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_11" to="-107066313#2" fromLane="0" toLane="0" via=":477486717_19_0" dir="s" state="M"/>
+ <connection from=":477486717_19" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_12" to="-107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_13" to="38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_14" to="107066313#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486717_15" to="-38027102#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_0" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_1" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_2" to="38027665#1" fromLane="0" toLane="0" via=":477486719_16_0" dir="s" state="M"/>
+ <connection from=":477486719_16" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_3" to="107066313#1" fromLane="0" toLane="0" via=":477486719_17_0" dir="s" state="M"/>
+ <connection from=":477486719_17" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_4" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_5" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_6" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_7" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_8" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_9" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_10" to="-38027665#0" fromLane="0" toLane="0" via=":477486719_18_0" dir="s" state="M"/>
+ <connection from=":477486719_18" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_11" to="-107066313#0" fromLane="0" toLane="0" via=":477486719_19_0" dir="s" state="M"/>
+ <connection from=":477486719_19" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_12" to="-107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_13" to="38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_14" to="107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":477486719_15" to="-38027665#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282948_0" to="40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282955_0" to="-40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282955_1" to="40196944#1" fromLane="0" toLane="0" via=":484282955_6_0" dir="s" state="M"/>
+ <connection from=":484282955_6" to="40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282955_2" to="40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282955_3" to="-40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282955_4" to="40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282955_5" to="-40196944#0" fromLane="0" toLane="0" via=":484282955_7_0" dir="s" state="M"/>
+ <connection from=":484282955_7" to="-40196944#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":484282961_0" to="-37638470#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":503954409_0" to="23182387#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":503954409_1" to="37973565#11" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265860_0" to="42976407#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265864_0" to="-40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265864_1" to="42976408#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265864_2" to="42976408#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265864_3" to="-40196944#1" fromLane="0" toLane="0" via=":538265864_4_0" dir="s" state="M"/>
+ <connection from=":538265864_4" to="-40196944#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265866_0" to="42976408#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265870_0" to="37973569#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538265870_1" to="37973569#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810722_0" to="81096816#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810724_0" to="24573930#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810724_1" to="8272412#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810724_2" to="24573930#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810724_3" to="8272412#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810726_0" to="8272412#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810726_1" to="24573897#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810726_2" to="8272412#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":538810726_3" to="24573897#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_0" to="75656628#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_1" to="-81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_2" to="81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_3" to="81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_4" to="75656628#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_5" to="-81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_6" to="81096822#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_7" to="75656628#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":543360161_8" to="-81096822#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_0" to="37973572#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_1" to="-37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":552842254_2" to="-43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_3" to="-43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_4" to="37973572#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_5" to="37973572#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":552842254_6" to="-37973572#4" fromLane="0" toLane="1" via=":552842254_11_0" dir="s" state="M"/>
+ <connection from=":552842254_11" to="-37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":552842254_7" to="-37973572#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_8" to="-37973572#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":552842254_9" to="-43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842254_10" to="37973572#5" fromLane="0" toLane="1" via=":552842254_12_0" dir="s" state="M"/>
+ <connection from=":552842254_12" to="37973572#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":552842255_0" to="37973569#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_1" to="43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_2" to="-43684741#3" fromLane="0" toLane="0" via=":552842255_9_0" dir="s" state="M"/>
+ <connection from=":552842255_9" to="-43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_3" to="-43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_4" to="37973569#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_5" to="43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_6" to="-43684741#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_7" to="37973569#9" fromLane="0" toLane="0" via=":552842255_10_0" dir="s" state="M"/>
+ <connection from=":552842255_10" to="37973569#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842255_8" to="43684741#4" fromLane="0" toLane="0" via=":552842255_11_0" dir="s" state="M"/>
+ <connection from=":552842255_11" to="43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_0" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_1" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_2" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_3" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_4" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_5" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_6" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_7" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_8" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_9" to="130443630#0" fromLane="0" toLane="0" via=":552842256_36_0" dir="s" state="M"/>
+ <connection from=":552842256_36" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_10" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_11" to="-105283535#1" fromLane="0" toLane="0" via=":552842256_37_0" dir="s" state="M"/>
+ <connection from=":552842256_37" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_12" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_13" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_14" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_15" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_16" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_17" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_18" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_19" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_20" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_21" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_22" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_23" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_24" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_25" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_26" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_27" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_28" to="-37973566" fromLane="0" toLane="0" via=":552842256_38_0" dir="s" state="M"/>
+ <connection from=":552842256_38" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_29" to="-107028581#3" fromLane="0" toLane="0" via=":552842256_39_0" dir="s" state="M"/>
+ <connection from=":552842256_39" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_30" to="-107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_31" to="43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_32" to="130443630#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_33" to="105251811#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_34" to="-105283535#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842256_35" to="-37973566" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_0" to="-107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_1" to="81394192#7" fromLane="0" toLane="0" via=":552842257_9_0" dir="s" state="M"/>
+ <connection from=":552842257_9" to="81394192#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_2" to="107028581#3" fromLane="0" toLane="0" via=":552842257_10_0" dir="s" state="M"/>
+ <connection from=":552842257_10" to="107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_3" to="81394192#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_4" to="107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_5" to="-107028581#2" fromLane="0" toLane="0" via=":552842257_11_0" dir="s" state="M"/>
+ <connection from=":552842257_11" to="-107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_6" to="-107028581#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_7" to="81394192#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":552842257_8" to="107028581#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472377_0" to="-44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472377_1" to="44104491#1" fromLane="0" toLane="0" via=":560472377_6_0" dir="s" state="M"/>
+ <connection from=":560472377_6" to="44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472377_2" to="44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472377_3" to="-44104491#0" fromLane="0" toLane="0" via=":560472377_7_0" dir="s" state="M"/>
+ <connection from=":560472377_7" to="-44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472377_4" to="-44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472377_5" to="44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472378_0" to="37942668#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472378_1" to="-44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472378_2" to="37942668#1" fromLane="0" toLane="0" via=":560472378_4_0" dir="s" state="M"/>
+ <connection from=":560472378_4" to="37942668#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472378_3" to="-44104491#1" fromLane="0" toLane="0" via=":560472378_5_0" dir="s" state="M"/>
+ <connection from=":560472378_5" to="-44104491#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472379_0" to="44104490" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":560472379_1" to="37973565#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_0" to="43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_1" to="81394192#8" fromLane="0" toLane="0" via=":561204538_9_0" dir="s" state="M"/>
+ <connection from=":561204538_9" to="81394192#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_2" to="-43684741#0" fromLane="0" toLane="0" via=":561204538_10_0" dir="s" state="M"/>
+ <connection from=":561204538_10" to="-43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_3" to="81394192#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_4" to="-43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_5" to="43684741#1" fromLane="0" toLane="0" via=":561204538_11_0" dir="s" state="M"/>
+ <connection from=":561204538_11" to="43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_6" to="43684741#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_7" to="81394192#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":561204538_8" to="-43684741#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566579336_0" to="37640550#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566579338_0" to="37640550#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566579339_0" to="37640550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566579339_1" to="37640550#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566579340_0" to="37771900#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566579340_1" to="154409621" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":566670951_0" to="-101272434" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":650318340_0" to="-38319550#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_0" to="38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_1" to="37772596#1" fromLane="0" toLane="0" via=":719463587_9_0" dir="s" state="M"/>
+ <connection from=":719463587_9" to="37772596#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_2" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_10_0" dir="s" state="M"/>
+ <connection from=":719463587_10" to="-38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_3" to="37772596#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_4" to="-38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_5" to="38319550#8" fromLane="0" toLane="0" via=":719463587_11_0" dir="s" state="M"/>
+ <connection from=":719463587_11" to="38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_6" to="38319550#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_7" to="37772596#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463587_8" to="-38319550#7" fromLane="0" toLane="0" via=":719463587_12_0" dir="s" state="M"/>
+ <connection from=":719463587_12" to="-38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_0" to="24573905#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_1" to="38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_2" to="-38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_3" to="-38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_4" to="24573905#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_5" to="38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_6" to="-38319550#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_7" to="24573905#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719463795_8" to="38319550#10" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719464017_0" to="-38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719464017_1" to="38319550#14" fromLane="0" toLane="0" via=":719464017_4_0" dir="s" state="M"/>
+ <connection from=":719464017_4" to="38319550#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719464017_2" to="38319550#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":719464017_3" to="-38319550#13" fromLane="0" toLane="0" via=":719464017_5_0" dir="s" state="M"/>
+ <connection from=":719464017_5" to="-38319550#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":724002953_0" to="81394188#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":724002953_1" to="37369047#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":724002953_2" to="37369047#1" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":724002953_3" to="81394188#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":724002953_4" to="37369047#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":724002953_5" to="37369047#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":728492341_0" to="-107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_1" to="58779718#0" fromLane="0" toLane="0" via=":728492341_9_0" dir="s" state="M"/>
+ <connection from=":728492341_9" to="58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_2" to="107066313#2" fromLane="0" toLane="0" via=":728492341_10_0" dir="s" state="M"/>
+ <connection from=":728492341_10" to="107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_3" to="107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_4" to="-107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_5" to="58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_6" to="58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_7" to="107066313#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492341_8" to="-107066313#1" fromLane="0" toLane="0" via=":728492341_11_0" dir="s" state="M"/>
+ <connection from=":728492341_11" to="-107066313#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492348_0" to="58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_0" to="107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_1" to="-107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_2" to="107028581#1" fromLane="0" toLane="0" via=":728492353_9_0" dir="s" state="M"/>
+ <connection from=":728492353_9" to="107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_3" to="107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_4" to="107166846#0" fromLane="0" toLane="0" via=":728492353_10_0" dir="s" state="M"/>
+ <connection from=":728492353_10" to="107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_5" to="-107028581#0" fromLane="0" toLane="0" via=":728492353_11_0" dir="s" state="M"/>
+ <connection from=":728492353_11" to="-107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_6" to="-107028581#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_7" to="107028581#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492353_8" to="107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_0" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_1" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_2" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_3" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_4" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_5" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_6" to="-58779718#0" fromLane="0" toLane="0" via=":728492360_16_0" dir="s" state="M"/>
+ <connection from=":728492360_16" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_7" to="-107166846#1" fromLane="0" toLane="0" via=":728492360_17_0" dir="s" state="M"/>
+ <connection from=":728492360_17" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_8" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_9" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_10" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_11" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_12" to="-58779718#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_13" to="-107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_14" to="58779718#1" fromLane="0" toLane="0" via=":728492360_18_0" dir="s" state="M"/>
+ <connection from=":728492360_18" to="58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492360_15" to="107166846#2" fromLane="0" toLane="0" via=":728492360_19_0" dir="s" state="M"/>
+ <connection from=":728492360_19" to="107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_0" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_1" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_2" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_3" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_4" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_5" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_6" to="-58779719#0" fromLane="0" toLane="0" via=":728492361_16_0" dir="s" state="M"/>
+ <connection from=":728492361_16" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_7" to="-107166846#2" fromLane="0" toLane="0" via=":728492361_17_0" dir="s" state="M"/>
+ <connection from=":728492361_17" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_8" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_9" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_10" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_11" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_12" to="-58779719#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_13" to="-107166846#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_14" to="58779719#1" fromLane="0" toLane="0" via=":728492361_18_0" dir="s" state="M"/>
+ <connection from=":728492361_18" to="58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492361_15" to="107166846#3" fromLane="0" toLane="0" via=":728492361_19_0" dir="s" state="M"/>
+ <connection from=":728492361_19" to="107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492364_0" to="81394192#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492364_1" to="-58779718#1" fromLane="0" toLane="0" via=":728492364_4_0" dir="s" state="M"/>
+ <connection from=":728492364_4" to="-58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492364_2" to="-58779718#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492364_3" to="81394192#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_0" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_1" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_2" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_3" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_4" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_5" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_6" to="-107166846#3" fromLane="0" toLane="0" via=":728492366_16_0" dir="s" state="M"/>
+ <connection from=":728492366_16" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_7" to="38027102#2" fromLane="0" toLane="0" via=":728492366_17_0" dir="s" state="M"/>
+ <connection from=":728492366_17" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_8" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_9" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_10" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_11" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_12" to="-107166846#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_13" to="38027102#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_14" to="107166846#4" fromLane="0" toLane="0" via=":728492366_18_0" dir="s" state="M"/>
+ <connection from=":728492366_18" to="107166846#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492366_15" to="-38027102#1" fromLane="0" toLane="0" via=":728492366_19_0" dir="s" state="M"/>
+ <connection from=":728492366_19" to="-38027102#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492371_0" to="-58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492371_1" to="81394192#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492371_2" to="81394192#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492371_3" to="-58779719#1" fromLane="0" toLane="0" via=":728492371_4_0" dir="s" state="M"/>
+ <connection from=":728492371_4" to="-58779719#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_0" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_1" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_2" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_3" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_4" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_5" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_6" to="-38027665#1" fromLane="0" toLane="0" via=":728492372_16_0" dir="s" state="M"/>
+ <connection from=":728492372_16" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_7" to="-107166846#0" fromLane="0" toLane="0" via=":728492372_17_0" dir="s" state="M"/>
+ <connection from=":728492372_17" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_8" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_9" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_10" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_11" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_12" to="-38027665#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_13" to="-107166846#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_14" to="38027665#2" fromLane="0" toLane="0" via=":728492372_18_0" dir="s" state="M"/>
+ <connection from=":728492372_18" to="38027665#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":728492372_15" to="107166846#1" fromLane="0" toLane="0" via=":728492372_19_0" dir="s" state="M"/>
+ <connection from=":728492372_19" to="107166846#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663070_0" to="37942667#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663070_1" to="37942667#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_0" to="83051426" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_1" to="83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_2" to="-83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_3" to="-83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_4" to="83051426" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_5" to="83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_6" to="83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_7" to="-83051442#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663071_8" to="83051426" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_0" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_1" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_2" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_3" to="-69931595#3" fromLane="0" toLane="0" via=":733663076_16_0" dir="s" state="M"/>
+ <connection from=":733663076_16" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_4" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_5" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_6" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_7" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_8" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_9" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_10" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_11" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_12" to="108329425#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_13" to="-69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_14" to="59159259#0" fromLane="0" toLane="0" via=":733663076_17_0" dir="s" state="M"/>
+ <connection from=":733663076_17" to="59159259#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663076_15" to="105283535#0" fromLane="0" toLane="0" via=":733663076_18_0" dir="s" state="M"/>
+ <connection from=":733663076_18" to="105283535#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_0" to="83051455" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_1" to="83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_2" to="-83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_3" to="-83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_4" to="83051455" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_5" to="83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_6" to="83051442#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_7" to="-83051442#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663078_8" to="83051455" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_0" to="37973565#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_1" to="-59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_2" to="59159262#2" fromLane="0" toLane="0" via=":733663082_9_0" dir="s" state="M"/>
+ <connection from=":733663082_9" to="59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_3" to="59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_4" to="37973565#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_5" to="-59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_6" to="59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_7" to="37973565#1" fromLane="0" toLane="0" via=":733663082_10_0" dir="s" state="M"/>
+ <connection from=":733663082_10" to="37973565#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663082_8" to="-59159262#1" fromLane="0" toLane="0" via=":733663082_11_0" dir="s" state="M"/>
+ <connection from=":733663082_11" to="-59159262#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663089_0" to="37449253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663089_1" to="-59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663089_2" to="-59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663089_3" to="37449253#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_0" to="59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_1" to="58770725#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_2" to="-59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_3" to="59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_4" to="58770725#3" fromLane="0" toLane="0" via=":733663093_9_0" dir="s" state="M"/>
+ <connection from=":733663093_9" to="58770725#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_5" to="-59159260#0" fromLane="0" toLane="0" via=":733663093_10_0" dir="s" state="M"/>
+ <connection from=":733663093_10" to="-59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_6" to="58770725#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_7" to="-59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663093_8" to="59159260#1" fromLane="0" toLane="0" via=":733663093_11_0" dir="s" state="M"/>
+ <connection from=":733663093_11" to="59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_0" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_1" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_2" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_3" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_4" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_5" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_6" to="38319546#8" fromLane="0" toLane="0" via=":733663096_16_0" dir="s" state="M"/>
+ <connection from=":733663096_16" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_7" to="-59159260#2" fromLane="0" toLane="0" via=":733663096_17_0" dir="s" state="M"/>
+ <connection from=":733663096_17" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_8" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_9" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_10" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_11" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_12" to="38319546#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_13" to="-59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_14" to="-38319546#7" fromLane="0" toLane="0" via=":733663096_18_0" dir="s" state="M"/>
+ <connection from=":733663096_18" to="-38319546#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663096_15" to="59159260#3" fromLane="0" toLane="0" via=":733663096_19_0" dir="s" state="M"/>
+ <connection from=":733663096_19" to="59159260#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663116_0" to="59159266#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663116_1" to="69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663116_2" to="-69931595#2" fromLane="0" toLane="0" via=":733663116_6_0" dir="s" state="M"/>
+ <connection from=":733663116_6" to="-69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663116_3" to="-69931595#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663116_4" to="59159266#0" fromLane="0" toLane="0" via=":733663116_7_0" dir="s" state="M"/>
+ <connection from=":733663116_7" to="59159266#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663116_5" to="69931595#3" fromLane="0" toLane="0" via=":733663116_8_0" dir="s" state="M"/>
+ <connection from=":733663116_8" to="69931595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_0" to="23066443#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_1" to="59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_2" to="-59159260#1" fromLane="0" toLane="0" via=":733663121_9_0" dir="s" state="M"/>
+ <connection from=":733663121_9" to="-59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_3" to="-59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_4" to="23066443#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_5" to="59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_6" to="-59159260#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_7" to="23066443#5" fromLane="0" toLane="0" via=":733663121_10_0" dir="s" state="M"/>
+ <connection from=":733663121_10" to="23066443#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663121_8" to="59159260#2" fromLane="0" toLane="0" via=":733663121_11_0" dir="s" state="M"/>
+ <connection from=":733663121_11" to="59159260#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663131_0" to="59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663131_1" to="37771900#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663131_2" to="37771900#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663131_3" to="59159260#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_0" to="-59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_1" to="69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_2" to="-69931595#0" fromLane="0" toLane="0" via=":733663136_9_0" dir="s" state="M"/>
+ <connection from=":733663136_9" to="-69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_3" to="-69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_4" to="-59159262#4" fromLane="0" toLane="0" via=":733663136_10_0" dir="s" state="M"/>
+ <connection from=":733663136_10" to="-59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_5" to="69931595#1" fromLane="0" toLane="0" via=":733663136_11_0" dir="s" state="M"/>
+ <connection from=":733663136_11" to="69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_6" to="69931595#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_7" to="-69931595#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":733663136_8" to="-59159262#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_0" to="149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_1" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_2" to="-149868584#5" fromLane="0" toLane="1" via=":767282288_18_0" dir="s" state="M"/>
+ <connection from=":767282288_18" to="-149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":767282288_3" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_19_0" dir="s" state="M"/>
+ <connection from=":767282288_19" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_4" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_5" to="149868584#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_6" to="149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":767282288_7" to="38319550#6" fromLane="0" toLane="0" via=":767282288_20_0" dir="s" state="M"/>
+ <connection from=":767282288_20" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_8" to="-149868584#5" fromLane="0" toLane="1" via=":767282288_21_0" dir="s" state="M"/>
+ <connection from=":767282288_21" to="-149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":767282288_9" to="-149868584#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_10" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_11" to="149868584#6" fromLane="0" toLane="1" via=":767282288_22_0" dir="s" state="M"/>
+ <connection from=":767282288_22" to="149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":767282288_12" to="38319550#6" fromLane="0" toLane="0" via=":767282288_23_0" dir="s" state="M"/>
+ <connection from=":767282288_23" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_13" to="38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_14" to="-149868584#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_15" to="-149868584#5" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":767282288_16" to="-38319550#5" fromLane="0" toLane="0" via=":767282288_24_0" dir="s" state="M"/>
+ <connection from=":767282288_24" to="-38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":767282288_17" to="149868584#6" fromLane="0" toLane="1" via=":767282288_25_0" dir="s" state="M"/>
+ <connection from=":767282288_25" to="149868584#6" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":945146413_0" to="81096855#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146413_1" to="139118802#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146413_2" to="81096855#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146413_3" to="139118802#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146437_0" to="81096855#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146437_1" to="129780028" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146437_2" to="81096855#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":945146437_3" to="129780028" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350565_0" to="81394188#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350565_1" to="81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_0" to="37973565#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_1" to="-133868229#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_2" to="-133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350588_3" to="133868229#1" fromLane="0" toLane="1" via=":948350588_11_0" dir="s" state="M"/>
+ <connection from=":948350588_11" to="133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350588_4" to="133868229#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_5" to="37973565#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_6" to="-133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350588_7" to="133868229#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_8" to="133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350588_9" to="37973565#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350588_10" to="-133868229#0" fromLane="0" toLane="1" via=":948350588_12_0" dir="s" state="M"/>
+ <connection from=":948350588_12" to="-133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350595_0" to="133868231#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350595_1" to="44641745#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350595_2" to="133868231#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350595_3" to="44641745#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_0" to="-81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_1" to="133868191#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350597_2" to="133868191#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":948350597_3" to="81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_4" to="-81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_5" to="133868191#1" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":948350597_6" to="81394200#1" fromLane="0" toLane="0" via=":948350597_10_0" dir="s" state="M"/>
+ <connection from=":948350597_10" to="81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_7" to="133868191#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_8" to="81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350597_9" to="-81394200#0" fromLane="0" toLane="0" via=":948350597_11_0" dir="s" state="M"/>
+ <connection from=":948350597_11" to="-81394200#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350607_0" to="37973565#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350607_1" to="133868231#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350607_2" to="133868188" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350607_3" to="37973565#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350607_4" to="133868231#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350607_5" to="133868188" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_0" to="130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_1" to="81394169#2" fromLane="0" toLane="0" via=":948350615_9_0" dir="s" state="M"/>
+ <connection from=":948350615_9" to="81394169#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_2" to="-130443629#3" fromLane="0" toLane="0" via=":948350615_10_0" dir="s" state="M"/>
+ <connection from=":948350615_10" to="-130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_3" to="81394169#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_4" to="-130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_5" to="130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_6" to="130443629#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_7" to="81394169#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350615_8" to="-130443629#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350621_0" to="81394169#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350621_1" to="37351089#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350621_2" to="37351089#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350621_3" to="81394169#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350621_4" to="37351089#1" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":948350621_5" to="37351089#1" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":948350630_0" to="-133868229#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350630_1" to="-133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350630_2" to="81523330#0" fromLane="0" toLane="1" via=":948350630_8_0" dir="s" state="M"/>
+ <connection from=":948350630_8" to="81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350630_3" to="81523330#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350630_4" to="-133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350630_5" to="81523330#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350630_6" to="81523330#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350630_7" to="-133868229#1" fromLane="0" toLane="1" via=":948350630_9_0" dir="s" state="M"/>
+ <connection from=":948350630_9" to="-133868229#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350640_0" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_1" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_2" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_3" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_4" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_5" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_6" to="130443629#2" fromLane="0" toLane="0" via=":948350640_16_0" dir="s" state="M"/>
+ <connection from=":948350640_16" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_7" to="81394200#2" fromLane="0" toLane="0" via=":948350640_17_0" dir="s" state="M"/>
+ <connection from=":948350640_17" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_8" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_9" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_10" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_11" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_12" to="130443629#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_13" to="81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_14" to="-130443629#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350640_15" to="-81394200#1" fromLane="0" toLane="0" via=":948350640_18_0" dir="s" state="M"/>
+ <connection from=":948350640_18" to="-81394200#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350673_0" to="133868191#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350673_1" to="133868191#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350673_2" to="81394188#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350673_3" to="133868191#2" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":948350673_4" to="133868191#2" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":948350673_5" to="81394188#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350676_0" to="109438231#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350676_1" to="81394169#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350693_0" to="37351086#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350693_1" to="81394169#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350693_2" to="37351086#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350693_3" to="81394169#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350705_0" to="81523316" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350705_1" to="81523316" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350705_2" to="109438232" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_0" to="133868186" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_1" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_2" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_3" to="133868229#0" fromLane="0" toLane="1" via=":948350707_17_0" dir="s" state="M"/>
+ <connection from=":948350707_17" to="133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350707_4" to="133868229#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_5" to="133868186" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350707_6" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_7" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_8" to="133868229#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_9" to="133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350707_10" to="133868186" fromLane="0" toLane="2" dir="s" state="M"/>
+ <connection from=":948350707_11" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_12" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_13" to="133868229#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":948350707_14" to="133868186" fromLane="0" toLane="3" dir="s" state="M"/>
+ <connection from=":948350707_15" to="81394169#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350707_16" to="-81394200#2" fromLane="0" toLane="0" via=":948350707_18_0" dir="s" state="M"/>
+ <connection from=":948350707_18" to="-81394200#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350715_0" to="81394169#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350715_1" to="44641745#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350715_2" to="81394169#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":948350715_3" to="44641745#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094314_0" to="172498367" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094314_1" to="172498388" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094314_2" to="172498388" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094314_3" to="172498367" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094314_4" to="172498388" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094380_0" to="144874010#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094380_1" to="144874012#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094380_2" to="144874010#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094380_3" to="144874010#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094380_4" to="144874012#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_0" to="144874010#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_1" to="23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_2" to="-23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_3" to="-23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_4" to="144874010#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_5" to="144874010#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094412_6" to="23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_7" to="-23315111#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094412_8" to="144874010#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094412_9" to="23315111#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_0" to="-81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_1" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_2" to="81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094425_3" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_4" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_5" to="-81523330#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_6" to="-81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094425_7" to="23315111#3" fromLane="0" toLane="0" via=":950094425_18_0" dir="s" state="M"/>
+ <connection from=":950094425_18" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_8" to="81523330#2" fromLane="0" toLane="1" via=":950094425_19_0" dir="s" state="M"/>
+ <connection from=":950094425_19" to="81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094425_9" to="81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_10" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_11" to="-81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094425_12" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_13" to="23315111#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_14" to="81523330#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_15" to="81523330#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094425_16" to="-23315111#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094425_17" to="-81523330#1" fromLane="0" toLane="1" via=":950094425_20_0" dir="s" state="M"/>
+ <connection from=":950094425_20" to="-81523330#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094434_0" to="129780026#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094434_1" to="154489992#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094434_2" to="154489992#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094434_3" to="129780026#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094434_4" to="154489992#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094458_0" to="149408824#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094458_1" to="129780026#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094458_2" to="-139118805#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094458_3" to="-139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094458_4" to="149408824#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094458_5" to="149408824#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094458_6" to="129780026#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094458_7" to="-139118805#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094494_0" to="-81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094494_1" to="139118808" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094494_2" to="139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094494_3" to="-81523330#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094494_4" to="-81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094494_5" to="139118808" fromLane="0" toLane="0" via=":950094494_11_0" dir="s" state="M"/>
+ <connection from=":950094494_11" to="139118808" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094494_6" to="139118805#0" fromLane="0" toLane="1" via=":950094494_12_0" dir="s" state="M"/>
+ <connection from=":950094494_12" to="139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094494_7" to="139118808" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094494_8" to="139118805#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950094494_9" to="139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950094494_10" to="-81523330#4" fromLane="0" toLane="1" via=":950094494_13_0" dir="s" state="M"/>
+ <connection from=":950094494_13" to="-81523330#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950640351_0" to="38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_1" to="111549913#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_2" to="-38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_3" to="111549913#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_4" to="-38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_5" to="38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_6" to="38319550#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_7" to="111549913#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640351_8" to="-38319550#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640361_0" to="81394192#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640361_1" to="111549913#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640361_2" to="81394192#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640361_3" to="111549913#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_0" to="34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_1" to="111549913#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_2" to="-34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_3" to="111549913#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_4" to="-34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_5" to="34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_6" to="34962531#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_7" to="111549913#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640371_8" to="-34962531#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_0" to="111863125#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_1" to="43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_2" to="-43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_3" to="-43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_4" to="111863125#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_5" to="43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_6" to="-43684741#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_7" to="111863125#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640393_8" to="43684741#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640399_0" to="111549913#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640399_1" to="101272424#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640399_2" to="111549913#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640399_3" to="101272424#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_0" to="111549913#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_1" to="-130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_2" to="130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_3" to="130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_4" to="111549913#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_5" to="-130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_6" to="130443630#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_7" to="111549913#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640411_8" to="-130443630#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_0" to="-130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_1" to="111863125#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_2" to="130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_3" to="-130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_4" to="111863125#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_5" to="130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_6" to="111863125#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_7" to="130443630#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640413_8" to="-130443630#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640428_0" to="109438141" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640428_1" to="81394188#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640474_0" to="111863125#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640474_1" to="81394192#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640474_2" to="111863125#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640474_3" to="81394192#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640525_0" to="42976410#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640525_1" to="111863125#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640525_2" to="42976410#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640525_3" to="111863125#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_0" to="111863125#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_1" to="38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_2" to="-38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_3" to="-38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_4" to="111863125#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_5" to="38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_6" to="-38319550#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_7" to="111863125#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640531_8" to="38319550#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640550_0" to="111863125#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640550_1" to="133960539#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640550_2" to="111863125#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640550_3" to="133960539#4" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950640558_0" to="42976405#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640558_1" to="111863125#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640558_2" to="42976405#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":950640558_3" to="111863125#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":950640617_0" to="107066313#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_0" to="-81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_1" to="81672213" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_2" to="81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_3" to="81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_4" to="-81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_5" to="81672213" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_6" to="81672213" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_7" to="81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739420_8" to="-81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739443_0" to="166603397#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739443_1" to="166603397#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":951739443_2" to="111863096#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739443_3" to="166603397#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739443_4" to="111863096#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_0" to="-81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_1" to="81672209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_2" to="81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_3" to="81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_4" to="-81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_5" to="81672209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_6" to="81672209" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_7" to="81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739458_8" to="-81672216#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_0" to="-81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_1" to="81672218" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_2" to="81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_3" to="-81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_4" to="81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_5" to="81672218" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_6" to="81672218" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_7" to="81672216#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739511_8" to="-81672216#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_0" to="-81672214" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_1" to="81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_2" to="-81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_3" to="-81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_4" to="-81672214" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_5" to="81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_6" to="81672216#9" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_7" to="-81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739549_8" to="-81672214" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739557_0" to="111863096#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739557_1" to="154844483#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739557_2" to="154844483#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":951739557_3" to="111863096#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739557_4" to="154844483#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":951739568_0" to="-81672213" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_1" to="81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_2" to="-81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_3" to="-81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_4" to="-81672213" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_5" to="81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_6" to="81672216#8" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_7" to="-81672216#7" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739568_8" to="-81672213" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_0" to="38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_1" to="111863096#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_2" to="-38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_3" to="111863096#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_4" to="-38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_5" to="38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_6" to="38319548#14" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_7" to="111863096#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739649_8" to="-38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_0" to="103851602#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_1" to="38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_2" to="-38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_3" to="-38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_4" to="103851602#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_5" to="38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_6" to="-38319548#12" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_7" to="103851602#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739684_8" to="38319548#13" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739693_0" to="37973569#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739693_1" to="81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739693_2" to="81672216#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739693_3" to="37973569#5" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739718_0" to="154844483#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739718_1" to="103851602#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739718_2" to="154844483#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739718_3" to="154844483#2" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":951739718_4" to="103851602#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_0" to="-81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_1" to="81672214" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_2" to="81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_3" to="81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_4" to="-81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_5" to="81672214" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_6" to="81672214" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_7" to="81672216#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739766_8" to="-81672216#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739771_0" to="81672207#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739771_1" to="133960539#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739771_2" to="133960539#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":951739776_0" to="103851602#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739776_1" to="166603397#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739776_2" to="166603397#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":951739776_3" to="103851602#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":951739776_4" to="166603397#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":956116503_0" to="-59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_1" to="59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_2" to="44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_3" to="44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_4" to="-59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_5" to="59159262#3" fromLane="0" toLane="0" via=":956116503_9_0" dir="s" state="M"/>
+ <connection from=":956116503_9" to="59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_6" to="59159262#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_7" to="44104491#0" fromLane="0" toLane="0" via=":956116503_10_0" dir="s" state="M"/>
+ <connection from=":956116503_10" to="44104491#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":956116503_8" to="-59159262#2" fromLane="0" toLane="0" via=":956116503_11_0" dir="s" state="M"/>
+ <connection from=":956116503_11" to="-59159262#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097830_0" to="-83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097830_1" to="-83038920" fromLane="0" toLane="0" via=":966097830_4_0" dir="s" state="M"/>
+ <connection from=":966097830_4" to="-83038920" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097830_2" to="-83038920" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097830_3" to="-83038923#1" fromLane="0" toLane="0" via=":966097830_5_0" dir="s" state="M"/>
+ <connection from=":966097830_5" to="-83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_0" to="-83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_1" to="83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_2" to="83038920" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_3" to="-83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_4" to="83038920" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_5" to="83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_6" to="83038923#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_7" to="83038920" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097837_8" to="-83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_0" to="-130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_1" to="130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_2" to="83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_3" to="83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_4" to="-130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_5" to="130443630#2" fromLane="0" toLane="0" via=":966097869_9_0" dir="s" state="M"/>
+ <connection from=":966097869_9" to="130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_6" to="130443630#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_7" to="83038923#0" fromLane="0" toLane="0" via=":966097869_10_0" dir="s" state="M"/>
+ <connection from=":966097869_10" to="83038923#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966097869_8" to="-130443630#1" fromLane="0" toLane="0" via=":966097869_11_0" dir="s" state="M"/>
+ <connection from=":966097869_11" to="-130443630#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966132112_0" to="37771902#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966132112_1" to="37771902#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966132131_0" to="83042949" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966132131_1" to="58770837#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_0" to="83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_1" to="-83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_2" to="-83051424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_3" to="-83051424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_4" to="83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_5" to="-83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_6" to="-83051480#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_7" to="-83051424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193793_8" to="83051480#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193796_0" to="37772595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193796_1" to="-83051420" fromLane="0" toLane="0" via=":966193796_4_0" dir="s" state="M"/>
+ <connection from=":966193796_4" to="-83051420" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193796_2" to="-83051420" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193796_3" to="37772595#3" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_0" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_1" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_2" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_3" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_4" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_5" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_6" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_7" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_8" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_9" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_10" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_11" to="83051420" fromLane="0" toLane="0" via=":966193808_16_0" dir="s" state="M"/>
+ <connection from=":966193808_16" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_12" to="83051420" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_13" to="83051436#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_14" to="-83051417" fromLane="0" toLane="0" via=":966193808_17_0" dir="s" state="M"/>
+ <connection from=":966193808_17" to="-83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193808_15" to="-24573937" fromLane="0" toLane="0" via=":966193808_18_0" dir="s" state="M"/>
+ <connection from=":966193808_18" to="-24573937" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_0" to="83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_1" to="83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_2" to="-83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_3" to="-83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_4" to="83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_5" to="83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_6" to="83051417" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_7" to="-83051421#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193812_8" to="83051421#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193814_0" to="83051424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193814_1" to="-83051483" fromLane="0" toLane="0" via=":966193814_4_0" dir="s" state="M"/>
+ <connection from=":966193814_4" to="-83051483" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193814_2" to="-83051483" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193814_3" to="83051424" fromLane="0" toLane="0" via=":966193814_5_0" dir="s" state="M"/>
+ <connection from=":966193814_5" to="83051424" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193857_0" to="37771904#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193857_1" to="83051483" fromLane="0" toLane="0" via=":966193857_4_0" dir="s" state="M"/>
+ <connection from=":966193857_4" to="83051483" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193857_2" to="83051483" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":966193857_3" to="37771904#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_0" to="37449253#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_1" to="-139118805#0" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_2" to="-139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":974693391_3" to="139118805#1" fromLane="0" toLane="1" via=":974693391_11_0" dir="s" state="M"/>
+ <connection from=":974693391_11" to="139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":974693391_4" to="139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_5" to="37449253#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_6" to="-139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":974693391_7" to="139118805#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_8" to="139118805#1" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":974693391_9" to="37449253#6" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":974693391_10" to="-139118805#0" fromLane="0" toLane="1" via=":974693391_12_0" dir="s" state="M"/>
+ <connection from=":974693391_12" to="-139118805#0" fromLane="0" toLane="1" dir="s" state="M"/>
+ <connection from=":975934874_0" to="83827202" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934874_1" to="139118804#4" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934878_0" to="23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934878_1" to="-23182517#1" fromLane="0" toLane="0" via=":975934878_6_0" dir="s" state="M"/>
+ <connection from=":975934878_6" to="-23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934878_2" to="-23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934878_3" to="23182517#2" fromLane="0" toLane="0" via=":975934878_7_0" dir="s" state="M"/>
+ <connection from=":975934878_7" to="23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934878_4" to="23182517#2" fromLane="0" toLane="0" dir="s" state="M"/>
+ <connection from=":975934878_5" to="-23182517#1" fromLane="0" toLane="0" dir="s" state="M"/>
+
+</net>
diff --git a/tools/contributed/traci4j/test/sumo_maps/polito/polito.osm b/tools/contributed/traci4j/test/resources/sumo_maps/polito/polito.osm
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/polito/polito.osm
rename to tools/contributed/traci4j/test/resources/sumo_maps/polito/polito.osm
diff --git a/tools/contributed/traci4j/test/sumo_maps/polito/test.sumo.cfg b/tools/contributed/traci4j/test/resources/sumo_maps/polito/test.sumo.cfg
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/polito/test.sumo.cfg
rename to tools/contributed/traci4j/test/resources/sumo_maps/polito/test.sumo.cfg
diff --git a/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e1_detectors.xml b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e1_detectors.xml
new file mode 100644
index 0000000..6927bcd
--- /dev/null
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e1_detectors.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<inductionLoop id="e1_0" lane="beg_0" pos="30" freq="100" file="/dev/null"/>
\ No newline at end of file
diff --git a/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e2_detectors.xml b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e2_detectors.xml
new file mode 100644
index 0000000..1d1e822
--- /dev/null
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e2_detectors.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<laneAreaDetector id="e2_0" lane="beg_0" pos="10" length="10" freq="100" file="/dev/null" />
\ No newline at end of file
diff --git a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/e3_detectors.xml b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e3_detectors.xml
similarity index 97%
rename from tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/e3_detectors.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e3_detectors.xml
index d4955d4..e5df6df 100644
--- a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/e3_detectors.xml
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/e3_detectors.xml
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<entryExitDetector id="e3_0" freq="100" file="/dev/null">
- <detEntry lane="beg_0" pos="0"/>
- <detExit lane="end_0" pos="0"/>
-</entryExitDetector>
+<?xml version="1.0" encoding="UTF-8"?>
+<entryExitDetector id="e3_0" freq="100" file="/dev/null">
+ <detEntry lane="beg_0" pos="0"/>
+ <detExit lane="end_0" pos="0"/>
+</entryExitDetector>
diff --git a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/input_routes.rou.xml b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/input_routes.rou.xml
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/input_routes.rou.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/input_routes.rou.xml
diff --git a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/net.net.xml b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/net.net.xml
similarity index 100%
rename from tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/net.net.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/net.net.xml
diff --git a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/pois.poi.xml b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/pois.poi.xml
similarity index 90%
rename from tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/pois.poi.xml
rename to tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/pois.poi.xml
index dc32e82..194cbe7 100644
--- a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/pois.poi.xml
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/pois.poi.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
-<pois>
- <poi id="0" type="TEST_TYPE" color="1,0.5,0" x="100" y="50" />
+<?xml version="1.0"?>
+<pois>
+ <poi id="0" type="TEST_TYPE" color="1,0.5,0" x="100" y="50" />
</pois>
\ No newline at end of file
diff --git a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/test.sumo.cfg b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg
similarity index 83%
rename from tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/test.sumo.cfg
rename to tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg
index 752ec67..d2e2b31 100644
--- a/tools/contributed/traci4j/test/sumo_maps/variable_speed_signs/test.sumo.cfg
+++ b/tools/contributed/traci4j/test/resources/sumo_maps/variable_speed_signs/test.sumo.cfg
@@ -5,7 +5,7 @@
<input>
<net-file value="net.net.xml"/>
<route-files value="input_routes.rou.xml"/>
- <additional-files value="pois.poi.xml,e3_detectors.xml"/>
+ <additional-files value="pois.poi.xml,e1_detectors.xml,e2_detectors.xml,e3_detectors.xml"/>
</input>
<time>
diff --git a/tools/districts2poly.py b/tools/districts2poly.py
old mode 100644
new mode 100755
index 6a7e3d1..f8fea2b
--- a/tools/districts2poly.py
+++ b/tools/districts2poly.py
@@ -3,7 +3,7 @@
@file districts2poly.py
@author Jakob Erdmann
@date 2015-07-31
- at version $Id: districts2poly.py 18666 2015-08-19 14:23:53Z behrisch $
+ at version $Id: districts2poly.py 18908 2015-09-23 08:50:48Z namdre $
From a sumo network and a taz (district) file, this script colors each district
with a unique color (by creating a colored polygon for each edge in that
diff --git a/tools/edgesInDistricts.py b/tools/edgesInDistricts.py
index e12890f..eee6496 100755
--- a/tools/edgesInDistricts.py
+++ b/tools/edgesInDistricts.py
@@ -5,7 +5,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2007-07-26
- at version $Id: edgesInDistricts.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: edgesInDistricts.py 19541 2015-12-05 16:45:04Z behrisch $
Parsing a number of networks and taz (district) files with shapes
this script writes a taz file with all the edges which are inside
@@ -26,6 +26,7 @@ import collections
from optparse import OptionParser
from xml.sax import parse
import sumolib
+import random
# written into the net. All members are "private".
@@ -43,7 +44,7 @@ class DistrictEdgeComputer:
districtBoxes[district.id] = district.getBoundingBox()
for idx, edge in enumerate(self._net.getEdges()):
shape = edge.getShape()
- if edge.getSpeed() < options.maxspeed and (options.internal or edge.getFunction() != "internal"):
+ if edge.getSpeed() < options.maxspeed and edge.getSpeed() > options.minspeed and (options.internal or edge.getFunction() != "internal"):
if options.vclass is None or edge.allows(options.vclass):
if options.assign_from:
xmin, ymin = shape[0]
@@ -80,17 +81,21 @@ class DistrictEdgeComputer:
result[edge] = districts[0]
return result
- def writeResults(self, output, weighted):
- fd = open(output, "w")
+ def writeResults(self, options):
+ fd = open(options.output, "w")
fd.write("<tazs>\n")
for district, edges in sorted(self._districtEdges.iteritems()):
filtered = [
edge for edge in edges if edge not in self._invalidatedEdges]
if len(filtered) == 0:
- print("District '" + district + "' has no edges!")
+ print("District '" + district.id + "' has no edges!")
else:
- if weighted:
- fd.write(' <taz id="%s">\n' % district.id)
+ if options.weighted:
+ if options.shapeinfo:
+ fd.write(' <taz id="%s" shape="%s">\n' %
+ (district.id, district.getShapeString()))
+ else:
+ fd.write(' <taz id="%s">\n' % district.id)
for edge in filtered:
weight = edge.getSpeed() * edge.getLength()
fd.write(
@@ -99,8 +104,12 @@ class DistrictEdgeComputer:
' <tazSink id="%s" weight="%.2f"/>\n' % (edge.getID(), weight))
fd.write(" </taz>\n")
else:
- fd.write(' <taz id="%s" edges="%s"/>\n' %
- (district.id, " ".join([e.getID() for e in filtered])))
+ if options.shapeinfo:
+ fd.write(' <taz id="%s" shape="%s" edges="%s"/>\n' %
+ (district.id, district.getShapeString(), " ".join([e.getID() for e in filtered])))
+ else:
+ fd.write(' <taz id="%s" edges="%s"/>\n' %
+ (district.id, " ".join([e.getID() for e in filtered])))
fd.write("</tazs>\n")
fd.close()
@@ -120,8 +129,10 @@ def fillOptions(optParser):
help="read districts from FILEs", metavar="FILE")
optParser.add_option("-o", "--output", default="districts.taz.xml",
help="write results to FILE (default: %default)", metavar="FILE")
- optParser.add_option("-m", "--max-speed", type="float", dest="maxspeed",
+ optParser.add_option("-x", "--max-speed", type="float", dest="maxspeed",
default=1000.0, help="use lanes where speed is not greater than this (m/s) (default: %default)")
+ optParser.add_option("-m", "--min-speed", type="float", dest="minspeed",
+ default=0., help="use lanes where speed is greater than this (m/s) (default: %default)")
optParser.add_option("-w", "--weighted", action="store_true",
default=False, help="Weights sources/sinks by lane number and length")
optParser.add_option("-f", "--assign-from", action="store_true",
@@ -130,6 +141,8 @@ def fillOptions(optParser):
default=False, help="Include internal edges in output")
optParser.add_option(
"-l", "--vclass", help="Include only edges allowing VCLASS")
+ optParser.add_option("-s", "--shapeinfo", action="store_true",
+ default=False, help="write also the shape info in the file")
if __name__ == "__main__":
@@ -141,7 +154,7 @@ if __name__ == "__main__":
optParser.exit("Error! Providing a network is mandatory")
if options.verbose:
- print("Reading net '" + net_file + "'")
+ print("Reading net '" + options.net_file + "'")
nets = options.net_file.split(",")
if len(nets) > 1:
print(
@@ -156,4 +169,5 @@ if __name__ == "__main__":
reader.computeWithin(polyReader.getPolygons(), options)
if options.verbose:
print("Writing results")
- reader.writeResults(options.output, options.weighted)
+ reader.writeResults(options)
+
diff --git a/tools/game/runner.py b/tools/game/runner.py
index eca4b83..7ae0c44 100755
--- a/tools/game/runner.py
+++ b/tools/game/runner.py
@@ -5,7 +5,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2010-01-30
- at version $Id: runner.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: runner.py 18931 2015-09-24 11:34:58Z behrisch $
This script runs the gaming GUI for the LNdW traffic light game.
It checks for possible scenarios in the current working directory
@@ -371,8 +371,6 @@ high = loadHighscore()
def findSumoBinary(guisimBinary):
if os.name != "posix":
guisimBinary += ".exe"
- elif guisimBinary.endswith("64"):
- guisimBinary = guisimBinary[:-2]
if os.path.exists(os.path.join(base, guisimBinary)):
guisimPath = os.path.join(base, guisimBinary)
else:
@@ -382,11 +380,11 @@ def findSumoBinary(guisimBinary):
guisimPath = guisimBinary
return guisimPath
-guisimPath = findSumoBinary("meso-gui64")
+guisimPath = findSumoBinary("meso-gui")
try:
subprocess.call([guisimPath, "-Q", "-c", "blub"], stderr=open(os.devnull))
except OSError:
- print("meso-gui64 not found. 3D scenario will not work.")
+ print("meso-gui not found. 3D scenario will not work.")
guisimPath = findSumoBinary("sumo-gui")
diff --git a/tools/game/setup.py b/tools/game/setup.py
index 04fba18..2717c94 100644
--- a/tools/game/setup.py
+++ b/tools/game/setup.py
@@ -3,7 +3,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2010-05-23
- at version $Id: setup.py 18479 2015-06-08 11:53:18Z behrisch $
+ at version $Id: setup.py 19535 2015-12-05 13:47:18Z behrisch $
SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
@@ -27,9 +27,10 @@ import subprocess
import tempfile
nightlyDir = r"O:\Daten\Sumo\Nightly"
-sevenZip = r'C:\Program Files\7-Zip\7z.exe'
-if not os.path.exists(sevenZip):
- sevenZip = r'C:\Program Files (x86)\7-Zip\7z.exe'
+for d in ["Program Files", "Program Files (x86)", "Programme"]:
+ sevenZip = r'C:\%s\7-Zip\7z.exe' % d
+ if os.path.exists(sevenZip):
+ break
internal = False
if "internal" in sys.argv:
@@ -59,7 +60,7 @@ if internal:
shutil.copy2(dll, ".")
pluginDir = glob.glob(os.path.join(nightlyDir, 'bin64', 'osgPlugins*'))[0]
shutil.copytree(pluginDir, os.path.basename(pluginDir))
- shutil.copy2(os.path.join(nightlyDir, 'bin64', 'meso-gui64.exe'), ".")
+ shutil.copy2(os.path.join(nightlyDir, 'bin64', 'meso-gui.exe'), ".")
for f in glob.glob(os.path.join(base, '..', '..', 'data', '3D', '*')):
shutil.copy2(f, ".")
os.chdir("bs3d")
diff --git a/tools/generateBidiDistricts.py b/tools/generateBidiDistricts.py
old mode 100644
new mode 100755
index edd260f..6d1c124
--- a/tools/generateBidiDistricts.py
+++ b/tools/generateBidiDistricts.py
@@ -3,7 +3,7 @@
@file generateBidiDistricts.py
@author Jakob Erdmann
@date 2015-07-31
- at version $Id: generateBidiDistricts.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: generateBidiDistricts.py 19535 2015-12-05 13:47:18Z behrisch $
Generate a taz (district) file which groups edges in opposite directions
belonging to the same road. For each edge, a taz is created which contains this edge
@@ -23,13 +23,9 @@ the Free Software Foundation; either version 3 of the License, or
"""
import sys
import os
-import itertools
-from collections import defaultdict
from optparse import OptionParser
-sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
-from sumolib.output import parse
+
from sumolib.net import readNet
-from sumolib.miscutils import Colorgen
from sumolib import geomhelper
@@ -37,6 +33,10 @@ def parse_args():
USAGE = "Usage: " + sys.argv[0] + " <netfile> [options]"
optParser = OptionParser()
optParser.add_option("-o", "--outfile", help="name of output file")
+ optParser.add_option(
+ "-r", "--radius", type=float, default=10., help="radius around the edge")
+ optParser.add_option("-t", "--travel-distance", action="store_true",
+ default=False, help="use travel distance in the graph")
options, args = optParser.parse_args()
try:
options.net, = args
@@ -46,41 +46,48 @@ def parse_args():
options.outfile = options.net + ".taz.xml"
return options
-DEBUGID = ["24214694", "-24214694"]
-
-def computeBidiTaz(net, radius=10):
- taz = defaultdict(set)
+def computeBidiTaz(net, radius=10., useTravelDist=False):
for edge in net.getEdges():
- candidates = []
- r = min(radius, geomhelper.polyLength(edge.getShape()) / 2)
- if edge.getID() in DEBUGID:
- print r, edge.getLength(), edge.getShape()
- for x, y in edge.getShape():
- nearby = set()
- for edge2, dist in net.getNeighboringEdges(x, y, r):
- nearby.add(edge2)
- if edge.getID() in DEBUGID:
- print " ", [e.getID() for e in nearby]
- candidates.append(nearby)
- opposites = reduce(lambda a, b: a.intersection(b), candidates)
- # XXX edges with the same endpoints should have roughly the same length
- # to be considered as opposites
- opposites.update(set(edge.getToNode().getOutgoing()).intersection(
- set(edge.getFromNode().getIncoming())))
- taz[edge.getID()] = opposites
- return taz
+ if useTravelDist:
+ opposites = set()
+ queue = [(edge, -1.)]
+ while not len(queue) == 0:
+ edge2, dist = queue.pop()
+ if edge2 not in opposites and dist < radius:
+ opposites.add(edge2)
+ if dist == -1.:
+ dist = 0.
+ else:
+ dist += edge2.getLength()
+ toN = edge2.getToNode()
+ fromN = edge2.getFromNode()
+ for e in toN.getOutgoing() + toN.getIncoming() + fromN.getOutgoing() + fromN.getIncoming():
+ queue.append((e, dist))
+ else:
+ candidates = []
+ r = min(radius, geomhelper.polyLength(edge.getShape()) / 2)
+ for x, y in edge.getShape():
+ nearby = set()
+ for edge2, dist in net.getNeighboringEdges(x, y, r):
+ nearby.add(edge2)
+ candidates.append(nearby)
+ opposites = reduce(lambda a, b: a.intersection(b), candidates)
+ opposites.update(set(edge.getToNode().getOutgoing()).intersection(
+ set(edge.getFromNode().getIncoming())))
+ yield edge, opposites
-def main():
- options = parse_args()
- net = readNet(options.net)
- with open(options.outfile, 'w') as outf:
+def main(netFile, outFile, radius, useTravelDist):
+ net = readNet(netFile, withConnections=False, withFoes=False)
+ with open(outFile, 'w') as outf:
outf.write('<tazs>\n')
- for tazID, edges in computeBidiTaz(net).items():
+ for taz, edges in computeBidiTaz(net, radius, useTravelDist):
outf.write(' <taz id="%s" edges="%s"/>\n' % (
- tazID, ' '.join(sorted([e.getID() for e in edges]))))
+ taz.getID(), ' '.join(sorted([e.getID() for e in edges]))))
outf.write('</tazs>\n')
+ return net
if __name__ == "__main__":
- main()
+ options = parse_args()
+ main(options.net, options.outfile, options.radius, options.travel_distance)
diff --git a/tools/import/vissim/vissim_parseRoutes.py b/tools/import/vissim/vissim_parseRoutes.py
index 91337ce..ba8d8f9 100755
--- a/tools/import/vissim/vissim_parseRoutes.py
+++ b/tools/import/vissim/vissim_parseRoutes.py
@@ -4,7 +4,7 @@
@author Daniel Krajzewicz
@author Michael Behrisch
@date 2009-05-27
- at version $Id: vissim_parseRoutes.py 18596 2015-08-04 11:33:00Z ait-mob-dts $
+ at version $Id: vissim_parseRoutes.py 19535 2015-12-05 13:47:18Z behrisch $
Parses routes given in the Vissim file (first parameter) as (in-)flows and
@@ -13,12 +13,8 @@ Parses routes given in the Vissim file (first parameter) as (in-)flows and
The read flows are saved as <OUTPUT_PREFIX>.flows.xml
The read routes are saved as <OUTPUT_PREFIX>.rou.xml
-Where <OUTPUT_PREFIX> is the second parameter.
-
-A third parameter may be given to change the random number seed (default=42)
-
-(Starting?) edges of the route may be renamed by setting them within "edgemap"
- variable (see below).
+(Starting?) edges of the route may be renamed by setting them with "edgemap"
+ option (see below).
SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
Copyright (C) 2009-2015 DLR (http://www.dlr.de/) and contributors
@@ -30,15 +26,9 @@ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
"""
-edgemap = {}
-#edgemap["203"] = "203[0]"
-
-
-SEED = 42
-
-
import sys
-from random import *
+import optparse
+import random
def getName(vals, beg):
@@ -129,13 +119,25 @@ def sorter(idx):
return 0
-if len(sys.argv) < 3:
- print "Usage: " + sys.argv[0] + " <VISSIM_NETWORK> <OUTPUT_PREFIX>"
+optParser = optparse.OptionParser(
+ usage="%prog <VISSIM_NETWORK> <test directory>")
+optParser.add_option(
+ "-o", "--output", default="out", help="output filename prefix")
+optParser.add_option(
+ "-e", "--edgemap", help="mapping of edge names for renamed edges (orig1:renamed1,orig2:renamed2,...)")
+optParser.add_option("-s", "--seed", type=int, default=42, help="random seed")
+options, args = optParser.parse_args()
+
+if len(args) < 1:
+ optParser.print_help
sys.exit()
-if len(sys.argv) > 3:
- SEED = int(sys.argv[3])
-seed(SEED)
+random.seed(options.seed)
+edgemap = {}
+if options.edgemap:
+ for entry in options.edgemap.split(","):
+ orig, renamed = entry.split(":")
+ edgemap[orig] = renamed
print "Parsing Vissim input..."
fd = open(sys.argv[1])
routeDecisions = []
@@ -172,7 +174,7 @@ for line in fd:
# process inflows
print "Writing flows..."
-fdo = open(sys.argv[2] + ".flows.xml", "w")
+fdo = open(options.output + ".flows.xml", "w")
fdo.write("<flowdefs>\n")
flow_sn = 0
for inflow in inflows:
@@ -203,7 +205,7 @@ for inflow in inflows:
routes = edges2check[strecke]
for vi in range(0, int(q)):
t = von + float(bis - von) / float(q) * float(vi)
- fi = random() * edgesSumFlows[strecke]
+ fi = random.random() * edgesSumFlows[strecke]
edges = []
ri = 0
rid = ""
@@ -227,7 +229,7 @@ emissions.sort(sorter(0))
# save emissions
print "Writing routes..."
-fdo = open(sys.argv[2] + ".rou.xml", "w")
+fdo = open(options.output + ".rou.xml", "w")
fdo.write("<routes>\n")
for emission in emissions:
if len(emission[2]) < 2:
diff --git a/tools/net/netextract.py b/tools/net/netextract.py
index 7bc118e..d1d2de1 100755
--- a/tools/net/netextract.py
+++ b/tools/net/netextract.py
@@ -5,7 +5,7 @@
@author Laura Bieker
@author Michael Behrisch
@date 2007-02-21
- at version $Id: netextract.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: netextract.py 19535 2015-12-05 13:47:18Z behrisch $
This script reads in the network given as
first parameter and extracts nodes and edges
@@ -67,6 +67,23 @@ def writeEdges(net):
fd.write("</edges>\n")
+def writeConnections(net):
+ with open("connections.xml", "w") as fd:
+ fd.write("<connections>\n")
+
+ # take care to write output in stable order
+ for edge in sorted(net._edges, key=lambda e: e.getID()):
+ for toEdge in sorted(edge.getOutgoing().keys(), key=lambda e: e.getID()):
+ for conn in edge.getOutgoing()[toEdge]:
+ fd.write('<connection from="%s" to="%s" fromLane="%s" toLane="%s"/>\n' %
+ (edge.getID(),
+ toEdge.getID(),
+ conn.getFromLane().getIndex(),
+ conn.getToLane().getIndex()))
+
+ fd.write("</connections>\n")
+
+
if len(sys.argv) < 2:
print "Usage: " + sys.argv[0] + " <net>"
sys.exit()
@@ -76,3 +93,5 @@ print "Writing nodes..."
writeNodes(net)
print "Writing edges..."
writeEdges(net)
+print "Writing connections..."
+writeConnections(net)
diff --git a/tools/import/osm/osmBuild.py b/tools/osmBuild.py
similarity index 65%
rename from tools/import/osm/osmBuild.py
rename to tools/osmBuild.py
index ff7c07f..9afaaf9 100755
--- a/tools/import/osm/osmBuild.py
+++ b/tools/osmBuild.py
@@ -1,13 +1,13 @@
#!/usr/bin/env python
"""
- at file osmGet.py
+ at file osmBuild.py
@author Daniel Krajzewicz
@author Jakob Erdmann
@author Michael Behrisch
@date 2009-08-01
- at version $Id: osmBuild.py 18461 2015-05-28 10:50:39Z behrisch $
+ at version $Id: osmBuild.py 19535 2015-12-05 13:47:18Z behrisch $
-Retrieves an area from OpenStreetMap.
+Builds a sumo network and polygons from a downloaded area from OpenStreetMap.
SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
Copyright (C) 2009-2015 DLR (http://www.dlr.de/) and contributors
@@ -24,18 +24,16 @@ import sys
import optparse
import subprocess
from os import path
-sys.path.append(os.path.join(os.environ.get(
- "SUMO_HOME", os.path.join(os.path.dirname(__file__), '..', '..')), 'tools'))
import sumolib
-vclassRemove = {"passenger": " --keep-edges.by-vclass passenger",
- "road": " --remove-edges.by-vclass tram,rail_urban,rail_electric,bicycle,pedestrian",
- "all": ""}
+vclassRemove = {"passenger": ["--keep-edges.by-vclass", "passenger"],
+ "road": ["--remove-edges.by-vclass", "tram,rail_urban,rail_electric,bicycle,pedestrian"],
+ "all": []}
possibleVClassOptions = '|'.join(vclassRemove.keys())
-DEFAULT_NETCONVERT_OPTS = "--geometry.remove,--roundabouts.guess,--ramps.guess,-v,--junctions.join,--tls.guess-signals,--tls.discard-simple,--tls.join"
+DEFAULT_NETCONVERT_OPTS = "--geometry.remove,--roundabouts.guess,--ramps.guess,-v,--junctions.join,--tls.guess-signals,--tls.discard-simple,--tls.join,--output.original-names,--junctions.corner-detail,5,--output.street-names"
optParser = optparse.OptionParser()
@@ -65,8 +63,6 @@ optParser.add_option("-y", "--polyconvert-options",
def build(args=None, bindir=None):
(options, args) = optParser.parse_args(args=args)
- netconvert = sumolib.checkBinary('netconvert', bindir)
- polyconvert = sumolib.checkBinary('polyconvert', bindir)
if ((options.oldapi_prefix and options.osm_file) or
not (options.oldapi_prefix or options.osm_file)):
@@ -82,51 +78,45 @@ def build(args=None, bindir=None):
optParser.error('output directory "%s" does not exist' %
options.output_directory)
- netconvertOpts = ' ' + \
- ' '.join(options.netconvert_options.split(',')) + ' --osm-files '
+ netconvertOpts = [sumolib.checkBinary('netconvert', bindir)]
if options.pedestrians:
- netconvertOpts = " --sidewalks.guess --crossings.guess" + \
- netconvertOpts
+ netconvertOpts += ['--sidewalks.guess', '--crossings.guess']
if options.netconvert_typemap:
- netconvertOpts = " -t " + options.netconvert_typemap + netconvertOpts
- polyconvertOpts = ' ' + \
- ' '.join(options.polyconvert_options.split(',')) + \
- ' --type-file %s --osm-files ' % options.typemap
+ netconvertOpts += ["-t", options.netconvert_typemap]
+ netconvertOpts += options.netconvert_options.split(',') + ['--osm-files']
+ polyconvertOpts = [sumolib.checkBinary('polyconvert', bindir)] + \
+ options.polyconvert_options.split(',') + \
+ ['--type-file', options.typemap, '--osm-files']
prefix = options.oldapi_prefix
if prefix: # used old API
num = options.tiles
- for i in range(num):
- if i != 0:
- netconvertOpts += ","
- polyconvertOpts += ","
- netconvertOpts += "%s%s_%s.osm.xml" % (prefix, i, num)
- polyconvertOpts += "%s%s_%s.osm.xml" % (prefix, i, num)
-
+ tiles = ",".join(["%s%s_%s.osm.xml" % (prefix, i, num)
+ for i in range(num)])
+ netconvertOpts += [tiles]
+ polyconvertOpts += [tiles]
else: # used new API
- netconvertOpts += options.osm_file
- polyconvertOpts += options.osm_file
+ netconvertOpts += [options.osm_file]
+ polyconvertOpts += [options.osm_file]
prefix = path.basename(options.osm_file).replace('.osm.xml', '')
if options.prefix:
prefix = options.prefix
- remove = vclassRemove[options.vehicle_classes]
- netfile = path.join(options.output_directory, prefix + '.net.xml')
- polyfile = path.join(options.output_directory, prefix + '.poly.xml')
+ basename = path.join(options.output_directory, prefix)
+ netfile = basename + '.net.xml'
+ netconvertOpts += vclassRemove[options.vehicle_classes] + ["-o", netfile]
- call(netconvert + netconvertOpts + remove + " -o %s" % netfile)
+ subprocess.call(netconvertOpts)
+ # write config
+ subprocess.call(
+ netconvertOpts + ["--save-configuration", basename + ".netccfg"])
if options.typemap:
- call(polyconvert + polyconvertOpts + " -n %s -o %s" %
- (netfile, polyfile))
-
-
-def call(cmd):
- # ensure unix compatibility
- # print(cmd)
- if isinstance(cmd, str):
- cmd = filter(lambda a: a != '', cmd.split(' '))
- subprocess.call(cmd)
+ polyconvertOpts += ["-n", netfile, "-o", basename + '.poly.xml']
+ subprocess.call(polyconvertOpts)
+ # write config
+ subprocess.call(
+ polyconvertOpts + ["--save-configuration", basename + ".polycfg"])
if __name__ == "__main__":
diff --git a/tools/import/osm/osmGet.py b/tools/osmGet.py
similarity index 81%
rename from tools/import/osm/osmGet.py
rename to tools/osmGet.py
index 3dd0f9b..5ce4fb1 100755
--- a/tools/import/osm/osmGet.py
+++ b/tools/osmGet.py
@@ -5,7 +5,7 @@
@author Jakob Erdmann
@author Michael Behrisch
@date 2009-08-01
- at version $Id: osmGet.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: osmGet.py 19535 2015-12-05 13:47:18Z behrisch $
Retrieves an area from OpenStreetMap.
@@ -18,7 +18,6 @@ it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
"""
-
import os
import sys
import httplib
@@ -27,6 +26,8 @@ import gzip
import optparse
from os import path
+import sumolib
+
def readCompressed(conn, query, filename):
conn.request("POST", "/api/interpreter", """
@@ -61,19 +62,35 @@ optParser.add_option("-t", "--tiles", type="int",
optParser.add_option(
"-d", "--output-dir", help="optional output directory (must already exist)")
optParser.add_option("-a", "--area", type="int", help="area id to retrieve")
+optParser.add_option(
+ "-x", "--polygon", help="calculate bounding box from polygon data in file")
def get(args=None):
(options, args) = optParser.parse_args(args=args)
-
- if not options.bbox and not options.area:
- optParser.error("At least one of 'bbox' and 'area' has to be set.")
+ if not options.bbox and not options.area and not options.polygon:
+ optParser.error(
+ "At least one of 'bbox' and 'area' and 'polygon' has to be set.")
if options.oldapi and options.area:
optParser.error("Only the new API supports 'area'.")
+ if options.polygon:
+ west = 1e400
+ south = 1e400
+ east = -1e400
+ north = -1e400
+ for area in sumolib.output.parse_fast(options.polygon, 'poly', ['shape']):
+ coordList = [tuple(map(float, x.split(',')))
+ for x in area.shape.split()]
+ for point in coordList:
+ west = min(point[0], west)
+ south = min(point[1], south)
+ east = max(point[0], east)
+ north = max(point[1], north)
if options.bbox:
south, west, north, east = [float(v) for v in options.bbox.split(',')]
if south > north or west > east:
optParser.error("Invalid geocoordinates in bbox.")
+
if options.output_dir:
options.prefix = path.join(options.output_dir, options.prefix)
@@ -101,7 +118,7 @@ def get(args=None):
options.area += 3600000000
readCompressed(conn, '<area-query ref="%s"/>' %
options.area, options.prefix + "_city.osm.xml")
- if options.bbox:
+ if options.bbox or options.polygon:
if options.tiles == 1:
readCompressed(conn, '<bbox-query n="%s" s="%s" w="%s" e="%s"/>' %
(north, south, west, east), options.prefix + "_bbox.osm.xml")
diff --git a/tools/import/osm/server.py b/tools/osmWebWizard.py
similarity index 74%
rename from tools/import/osm/server.py
rename to tools/osmWebWizard.py
index 2213d6d..5b7fb50 100755
--- a/tools/import/osm/server.py
+++ b/tools/osmWebWizard.py
@@ -1,9 +1,11 @@
#!/usr/bin/env python
"""
- at file server.py
+ at file osmWebWizard.py
@author Jakob Stigloher
+ at author Jakob Erdmann
+ at author Michael Behrisch
@date 2014-14-10
- at version $Id: server.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: osmWebWizard.py 19535 2015-12-05 13:47:18Z behrisch $
Browser GUI for OSMget, OSMbuild, optionally randomTrips and SUMO GUI
@@ -24,7 +26,6 @@ import traceback
import webbrowser
import datetime
from argparse import ArgumentParser
-from SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
import json
import threading
import subprocess
@@ -33,9 +34,14 @@ import shutil
from zipfile import ZipFile
import base64
+import osmGet
+import osmBuild
+import randomTrips
+import sumolib
+from webWizard.SimpleWebSocketServer import SimpleWebSocketServer, WebSocket
+
SUMO_HOME = os.environ.get("SUMO_HOME", os.path.join(
- os.path.dirname(os.path.abspath(__file__)), "..", "..", ".."))
-sys.path.append(os.path.join(SUMO_HOME, "tools"))
+ os.path.dirname(os.path.abspath(__file__)), ".."))
typemapdir = os.path.join(SUMO_HOME, "data", "typemap")
typemaps = {
@@ -48,16 +54,16 @@ typemaps = {
}
vehicleParameters = {
- "passenger": ["--vehicle-class", "passenger", "--vclass", "passenger", "--prefix", "veh", "--min-distance", "300", "--trip-attributes", 'departLane="best"'],
- "truck": ["--vehicle-class", "truck", "--vclass", "truck", "--prefix", "truck", "--min-distance", "600", "--trip-attributes", 'departLane="best"'],
- "bus": ["--vehicle-class", "bus", "--vclass", "bus", "--prefix", "bus", "--min-distance", "600", "--trip-attributes", 'departLane="best"'],
- "motorcycle": ["--vehicle-class", "motorcycle", "--vclass", "motorcycle", "--prefix", "moto", "--max-distance", "1200", "--trip-attributes", 'departLane="best"'],
- "bicycle": ["--vehicle-class", "bicycle", "--vclass", "bicycle", "--prefix", "bike", "--max-distance", "8000", "--trip-attributes", 'departLane="best"'],
- "tram": ["--vehicle-class", "tram", "--vclass", "tram", "--prefix", "tram", "--min-distance", "1200", "--trip-attributes", 'departLane="best"'],
- "rail_urban": ["--vehicle-class", "rail_urban", "--vclass", "rail_urban", "--prefix", "urban", "--min-distance", "1800", "--trip-attributes", 'departLane="best"'],
- "rail": ["--vehicle-class", "rail", "--vclass", "rail", "--prefix", "rail", "--min-distance", "2400", "--trip-attributes", 'departLane="best"'],
- "ship": ["--vehicle-class", "ship", "--vclass", "ship", "--prefix", "ship"],
- "pedestrian": ["--pedestrians", "--prefix", "ped", "--max-distance", "2000"]
+ "passenger": ["--vehicle-class", "passenger", "--vclass", "passenger", "--prefix", "veh", "--min-distance", "300", "--trip-attributes", 'departLane="best"', "--validate"],
+ "truck": ["--vehicle-class", "truck", "--vclass", "truck", "--prefix", "truck", "--min-distance", "600", "--trip-attributes", 'departLane="best"', "--validate"],
+ "bus": ["--vehicle-class", "bus", "--vclass", "bus", "--prefix", "bus", "--min-distance", "600", "--trip-attributes", 'departLane="best"', "--validate"],
+ "motorcycle": ["--vehicle-class", "motorcycle", "--vclass", "motorcycle", "--prefix", "moto", "--max-distance", "1200", "--trip-attributes", 'departLane="best"', "--validate"],
+ "bicycle": ["--vehicle-class", "bicycle", "--vclass", "bicycle", "--prefix", "bike", "--max-distance", "8000", "--trip-attributes", 'departLane="best"', "--validate"],
+ "tram": ["--vehicle-class", "tram", "--vclass", "tram", "--prefix", "tram", "--min-distance", "1200", "--trip-attributes", 'departLane="best"', "--validate"],
+ "rail_urban": ["--vehicle-class", "rail_urban", "--vclass", "rail_urban", "--prefix", "urban", "--min-distance", "1800", "--trip-attributes", 'departLane="best"', "--validate"],
+ "rail": ["--vehicle-class", "rail", "--vclass", "rail", "--prefix", "rail", "--min-distance", "2400", "--trip-attributes", 'departLane="best"', "--validate"],
+ "ship": ["--vehicle-class", "ship", "--vclass", "ship", "--prefix", "ship", "--validate"],
+ "pedestrian": ["--pedestrians", "--prefix", "ped", "--max-distance", "2000"]
}
vehicleNames = {
@@ -73,11 +79,6 @@ vehicleNames = {
"ship": "Ships"
}
-import osmGet
-import osmBuild
-import randomTrips
-import sumolib
-import route2trips
RANDOMSEED = "42"
@@ -91,7 +92,10 @@ def quoted_str(s):
if type(s) != str:
return str(s)
elif '"' in s:
- return "'%s'" % s
+ if os.name == "nt":
+ return s.replace('"', '\\"')
+ else:
+ return "'%s'" % s
else:
return s
@@ -103,14 +107,23 @@ class Builder(object):
self.files = {}
self.data = data
+ self.tmp = None
if local:
- self.tmp = os.path.abspath(
- datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S"))
- os.mkdir(self.tmp)
- else:
+ now = datetime.datetime.now().strftime("%Y-%m-%d-%H-%M-%S")
+ for base in ['', os.path.expanduser('~/Sumo')]:
+ try:
+ self.tmp = os.path.abspath(os.path.join(base, now))
+ os.makedirs(self.tmp)
+ break
+ except:
+ print("Cannot create directory '%s'" % self.tmp)
+ self.tmp = None
+ if self.tmp is None:
self.tmp = tempfile.mkdtemp()
+ self.origDir = os.getcwd()
os.chdir(self.tmp)
+ print("Building scenario in '%s'" % self.tmp)
def report(self, message):
pass
@@ -119,8 +132,8 @@ class Builder(object):
self.files[use] = self.prefix + name
def build(self):
- # output name for the osm file, will be used by osmBuild, can be after the
- # process deleted
+ # output name for the osm file, will be used by osmBuild, can be
+ # deleted after the process
self.filename("osm", "_bbox.osm.xml")
# output name for the net file, will be used by osmBuild, randomTrips and
# sumo-gui
@@ -143,8 +156,7 @@ class Builder(object):
options += ["-m", typemaps["poly"]]
typefiles = [typemaps["net"]]
- netconvertOptions = osmBuild.DEFAULT_NETCONVERT_OPTS + \
- ",--junctions.corner-detail,5,--output.street-names"
+ netconvertOptions = osmBuild.DEFAULT_NETCONVERT_OPTS
if "pedestrian" in self.data["vehicles"]:
# sidewalks are already included via typefile
netconvertOptions += ",--crossings.guess"
@@ -165,7 +177,6 @@ class Builder(object):
# be used by sumo-gui
self.routenames = []
randomTripsCalls = []
- route2TripsCalls = []
self.edges = sumolib.net.readNet(self.files["net"]).getEdges()
@@ -173,6 +184,7 @@ class Builder(object):
self.report("Processing %s" % vehicleNames[vehicle])
self.filename("route", ".%s.rou.xml" % vehicle)
+ self.filename("trips", ".%s.trips.xml" % vehicle)
try:
options = self.parseTripOpts(vehicle, options)
@@ -182,31 +194,20 @@ class Builder(object):
randomTrips.main(randomTrips.get_options(options))
randomTripsCalls.append(options)
- # route2trips is not called for pedestrians
+ # --validate is not called for pedestrians
if vehicle == "pedestrian":
self.routenames.append(self.files["route"])
else:
- self.filename("trips", ".%s.trips.xml" % vehicle)
self.routenames.append(self.files["trips"])
- route2trips.main(
- [self.files["route"]], outfile=self.files["trips"])
- route2TripsCalls.append(
- [self.files["route"], self.files["trips"]])
- # create a batch file for reproducing calls to randomTrips.py and
- # route2trips
+ # create a batch file for reproducing calls to randomTrips.py
randomTripsPath = os.path.join(
SUMO_HOME, "tools", "randomTrips.py")
- route2TripsPath = os.path.join(
- SUMO_HOME, "tools", "route2trips.py")
batchFile = "build.bat"
with open(batchFile, 'w') as f:
for opts in randomTripsCalls:
f.write("python %s %s\n" %
(randomTripsPath, " ".join(map(quoted_str, opts))))
- for route, trips in route2TripsCalls:
- f.write("python %s %s > %s\n" %
- (route2TripsPath, route, trips))
def parseTripOpts(self, vehicle, options):
"Return an option list for randomTrips.py for a given vehicle"
@@ -220,7 +221,7 @@ class Builder(object):
period = 3600 / (length / 1000) / options["count"]
opts = ["-n", self.files["net"], "--seed", RANDOMSEED, "--fringe-factor", options["fringeFactor"],
- "-p", period, "-r", self.files["route"], "-e", self.data["duration"]]
+ "-p", period, "-r", self.files["route"], "-o", self.files["trips"], "-e", self.data["duration"]]
opts += vehicleParameters[vehicle]
return opts
@@ -267,7 +268,7 @@ class Builder(object):
sumogui = sumolib.checkBinary("sumo-gui")
- subprocess.call([sumogui, "-c", self.files["config"]])
+ subprocess.Popen([sumogui, "-c", self.files["config"]])
def createZip(self):
"Create a zip file with everything inside which SUMO GUI needs, returns it base64 encoded"
@@ -310,8 +311,10 @@ class OSMImporterWebSocket(WebSocket):
local = False
def report(self, message):
- print message
+ print(message)
self.sendMessage(unicode("report " + message))
+ # number of remaining steps
+ self.steps -= 1
def handleMessage(self):
data = json.loads(self.data)
@@ -323,22 +326,29 @@ class OSMImporterWebSocket(WebSocket):
builder = Builder(data, self.local)
builder.report = self.report
- steps = len(data["vehicles"]) + 4
- self.sendMessage(unicode("steps " + str(steps)))
+ self.steps = len(data["vehicles"]) + 4
+ self.sendMessage(unicode("steps " + str(self.steps)))
- builder.build()
- builder.makeConfigFile()
- builder.createBatch()
+ try:
+ builder.build()
+ builder.makeConfigFile()
+ builder.createBatch()
- if self.local:
- builder.openSUMO()
- else:
- data = builder.createZip()
- builder.finalize()
+ if self.local:
+ builder.openSUMO()
+ else:
+ data = builder.createZip()
+ builder.finalize()
- self.sendMessage(unicode("zip " + data))
+ self.sendMessage(unicode("zip " + data))
+ except:
+ # reset 'Generate Scenario' button
+ while self.steps > 0:
+ self.report("Recovering")
+ os.chdir(builder.origDir)
-parser = ArgumentParser(description="OSM Importer for SUMO - Websocket Server")
+parser = ArgumentParser(
+ description="OSM Web Wizard for SUMO - Websocket Server")
parser.add_argument("--remote", action="store_true",
help="In remote mode, SUMO GUI will not be automatically opened instead a zip file will be generated.")
parser.add_argument("--testing", action="store_true",
@@ -368,7 +378,7 @@ if __name__ == "__main__":
else:
if not args.remote:
webbrowser.open(
- os.path.join(os.path.dirname(os.path.abspath(__file__)), "index.html"))
+ os.path.join(os.path.dirname(os.path.abspath(__file__)), "webWizard", "index.html"))
server = SimpleWebSocketServer(
args.address, args.port, OSMImporterWebSocket)
diff --git a/tools/output/analyze_teleports.py b/tools/output/analyze_teleports.py
index 8a0069a..5a1aaa7 100755
--- a/tools/output/analyze_teleports.py
+++ b/tools/output/analyze_teleports.py
@@ -5,7 +5,7 @@
@author Jakob Erdmann
@author Michael Behrisch
@date 2012-11-20
- at version $Id: analyze_teleports.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: analyze_teleports.py 18982 2015-10-01 11:46:20Z namdre $
Extract statistics from the warning outputs of a simulation run for plotting.
@@ -27,7 +27,7 @@ from collections import defaultdict
def parse_log(logfile, edges=True, aggregate=3600):
print "Parsing %s" % logfile
reFrom = re.compile("lane='([^']*)'")
- reFromMeso = re.compile("from '([^']*)'")
+ reFromMeso = re.compile("edge '([^']*)'")
reTime = re.compile("time.(\d*)\.")
# counts per lane
waitingCounts = defaultdict(lambda: 0)
diff --git a/tools/pedestrianFlow.py b/tools/pedestrianFlow.py
old mode 100644
new mode 100755
index 76b693b..2c502d9
--- a/tools/pedestrianFlow.py
+++ b/tools/pedestrianFlow.py
@@ -5,7 +5,7 @@ A script for generating a flow of pedestrians (a long list of person-walks)
@file pedestrianFlow.py
@author Jakob Erdmann
@date 2014-01-16
- at version $Id: pedestrianFlow.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: pedestrianFlow.py 19535 2015-12-05 13:47:18Z behrisch $
SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
Copyright (C) 2014-2014 DLR (http://www.dlr.de/) and contributors
@@ -19,6 +19,7 @@ the Free Software Foundation; either version 3 of the License, or
import os
import sys
import random
+import datetime
from optparse import OptionParser
if 'SUMO_HOME' in os.environ:
@@ -32,15 +33,19 @@ else:
def get_options():
optParser = OptionParser()
optParser.add_option(
- "-w", "--width", type="float", default=0.7, help="pedestrian width")
+ "-w", "--width", type="float", default=0.7, help="pedestrian width, negative numbers denote the center of a uniform distribution [x-0.2, x+0.2]")
optParser.add_option(
- "-l", "--length", type="float", default=0.35, help="pedestrian length")
+ "-l", "--length", type="float", default=0.5, help="pedestrian length, negative numbers denote the center of a uniform distribution [x-0.2, x+0.2]")
optParser.add_option(
- "--departPos", type="float", default=0, help="depart position")
+ "-m", "--minGap", type="float", default=0.2, help="pedestrian min gap, negative numbers denote the center of a uniform distribution [x-0.2, x+0.2]")
optParser.add_option(
- "--arrivalPos", type="float", default=-1, help="arrival position")
+ "-s", "--maxSpeed", type="float", default=1.2, help="pedestrian max speed, negative numbers denote the center of a uniform distribution [x-0.4, x+0.4]")
optParser.add_option(
- "--prob", type="float", default=0.1, help="depart probability per second")
+ "-d", "--departPos", type="float", default=0, help="depart position")
+ optParser.add_option(
+ "-a", "--arrivalPos", type="float", default=-1, help="arrival position")
+ optParser.add_option(
+ "-p", "--prob", type="float", default=0.1, help="depart probability per second")
optParser.add_option("-r", "--route", help="edge list")
optParser.add_option("-c", "--color", help="the color to use or 'random'")
optParser.add_option(
@@ -57,6 +62,12 @@ def get_options():
return options
+def randomOrFixed(value, offset=0.2):
+ if value >= 0:
+ return value
+ return random.uniform(-value - offset, -value + offset)
+
+
def write_ped(f, index, options, depart, edges):
if options.color == None:
color = ''
@@ -67,9 +78,10 @@ def write_ped(f, index, options, depart, edges):
f.write(' <vType id="%s%s" vClass="pedestrian" width="%s" length="%s" minGap="%s" maxSpeed="%s" guiShape="pedestrian"%s/>\n' % (
options.name, index,
- options.width, options.length,
- random.uniform(0.1, 0.5),
- random.uniform(0.7, 1.5), color))
+ randomOrFixed(options.width),
+ randomOrFixed(options.length),
+ randomOrFixed(options.minGap),
+ randomOrFixed(options.maxSpeed, 0.4), color))
f.write(' <person id="%s%s" type="%s%s" depart="%s">\n' %
(options.name, index, options.name, index, depart))
f.write(' <walk edges="%s" departPos="%s" arrivalPos="%s"/>\n' %
@@ -80,7 +92,10 @@ def write_ped(f, index, options, depart, edges):
def main():
options = get_options()
with open(options.output, 'w') as f:
- f.write('<routes>\n')
+ f.write('<!-- generated on %s by "%s" -->\n' %
+ (datetime.datetime.now(), os.path.basename(" ".join(sys.argv))))
+ f.write(
+ '<routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/routes_file.xsd">\n')
index = options.index
for depart in range(options.begin, options.end):
if random.random() < options.prob:
diff --git a/tools/projects/evacuation/evacuation.py b/tools/projects/evacuation/evacuation.py
new file mode 100644
index 0000000..6bc1249
--- /dev/null
+++ b/tools/projects/evacuation/evacuation.py
@@ -0,0 +1,183 @@
+#!/usr/bin/env python
+# -*- coding: cp1252 -*-
+"""
+ at file evacuation.py
+ at author Martin Taraz
+ at author Michael Behrisch
+ at date 2015-09-09
+ at version $Id: evacuation.py 19537 2015-12-05 14:48:01Z behrisch $
+
+Starts the creation of an Evacuation Scenario
+
+Sources:
+Inhabitant data
+https://www.destatis.de/DE/ZahlenFakten/LaenderRegionen/Regionales/Gemeindeverzeichnis/Administrativ/Archiv/GVAuszugQ/AuszugGV3QAktuell.html
+Gemeinde XML data generated by using the Shape Data
+Source: https://www.zensus2011.de/SharedDocs/Downloads/DE/Shapefile/VG250_1Jan2011_WGS84.zip?__blob=publicationFile&v=29
+
+SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+Copyright (C) 2009-2015 DLR (http://www.dlr.de/) and contributors
+
+This file is part of SUMO.
+SUMO is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+"""
+
+import os
+import sys
+import subprocess
+import math
+import csv
+
+SUMO_HOME = os.environ.get("SUMO_HOME", os.path.join(
+ os.path.dirname(os.path.abspath(__file__)), "..", "..", ".."))
+sys.path.append(os.path.join(SUMO_HOME, "tools"))
+
+import xml.etree.cElementTree as ET
+from xml.etree.ElementTree import Element, SubElement, Comment, tostring
+from xml.dom import minidom
+from shapely.geometry import Polygon
+
+import osmBuild
+import osmGet
+import sumolib
+
+import generateTraffic
+
+
+def mergePopulationData(populationFile, regionFile, mergedFile):
+ csvReader = csv.reader(open(populationFile), delimiter=',', quotechar='"')
+ inhabDict = {}
+ for entry in csvReader:
+ if csvReader.line_num <= 3:
+ continue
+ while(len(entry[0]) < 2):
+ entry[0] = '0' + entry[0]
+ while(len(entry[2]) < 2):
+ entry[2] = '0' + entry[2]
+ while(len(entry[3]) < 4):
+ entry[3] = '0' + entry[3]
+ while(len(entry[4]) < 3):
+ entry[4] = '0' + entry[4]
+ inhabDict["".join(entry[:5])] = str(entry[6]).replace(' ', '')
+
+ root = ET.ElementTree(file=regionFile).getroot()
+ for parents in root.findall("./*"):
+ for elem in parents.findall("param[7]"):
+ RSValue = str(elem.attrib)[11:23]
+ inhabitants = SubElement(parents, 'param')
+ if RSValue in inhabDict:
+ inhabitants.clear()
+ inhabitants.attrib = {
+ 'key': "INHABITANTS", 'value': inhabDict[RSValue]}
+ outstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ")
+ with open(mergedFile, 'w') as out:
+ out.write(outstr.encode('utf-8'))
+
+
+def extract(mergedPopulationFile, mappedSiteFile, intersectionFile):
+ PopulationXML = ET.ElementTree(file=mergedPopulationFile)
+ EvacuationXML = ET.ElementTree(file=mappedSiteFile)
+ PopRoot = PopulationXML.getroot()
+ EvaRoot = EvacuationXML.getroot()
+ Schnittmenge = []
+ for evaArea in EvaRoot.findall("./poly[0]"):
+ koordinatenStr = evaArea.attrib["shape"]
+ koordinatenList = [tuple(map(float, x.split(',')))
+ for x in koordinatenStr.split()]
+ evacuationArea = Polygon(koordinatenList)
+
+ for PopArea in PopRoot.findall("./poly"):
+ koordinatenStr = PopArea.attrib["shape"]
+ koordinatenList = [tuple(map(float, x.split(',')))
+ for x in koordinatenStr.split()]
+ Gemeinde = Polygon(koordinatenList)
+ if Gemeinde.intersection(evacuationArea):
+ for Inhab in PopArea.findall("./param"):
+ if Inhab.attrib["key"] == "INHABITANTS":
+ Einwohner = int((Inhab.attrib["value"]))
+ Einwohner *= Gemeinde.intersection(
+ evacuationArea).area / Gemeinde.area
+ Einwohner = str(Einwohner)
+ Schnittmenge.append(
+ (Gemeinde.intersection(evacuationArea), Einwohner))
+ print("merge!")
+
+ root = ET.Element('additional')
+ outTree = ET.ElementTree(root)
+ i = 1
+ for G in Schnittmenge:
+ poly = ET.SubElement(root, 'poly')
+ exterior = G[0].exterior.coords
+ OutExterior = ''
+ for elem in exterior:
+ OutExterior += str(elem[0]) + "," + str(elem[1]) + " "
+ identity = "Schnittflache" + str(i)
+ poly.attrib = {
+ "id": identity, "shape": OutExterior, "inhabitants": G[1]}
+ i += 1
+ outstr = minidom.parseString(ET.tostring(root)).toprettyxml(indent=" ")
+ with open(intersectionFile, 'w') as out:
+ out.write(outstr)
+
+
+def buildEvaSite(inputFile, siteFile):
+ dots = 10
+ with open(siteFile, 'w') as out:
+ out.write("<additional>\n")
+ for poi in sumolib.output.parse(inputFile, "poi"):
+ lon = float(poi.lon)
+ lat = float(poi.lat)
+ radius = float(poi.radius) * 360 / 4008 / 1000
+ shape = ""
+ if poi.color is None:
+ poi.color = "0,0,255"
+ for i in range(dots):
+ angle = 2 * math.pi * i / dots
+ templon = lon + radius * math.cos(angle)
+ templat = lat + radius * \
+ math.sin(angle) * math.cos(math.radians(lat))
+ shape += "%s,%s " % (templon, templat)
+ out.write(' <poly id="%s" color="%s" fill="1" layer="-1" shape="%s"/>\n' %
+ (poi.id, poi.color, shape[:-1]))
+ out.write("</additional>\n")
+
+
+print("building Evacuation Site")
+prefix = "evacuationArea"
+siteFile = "site.poly.xml"
+mappedSiteFile = "mappedSite.poly.xml"
+mergedPopulationFile = "population.poly.xml"
+intersectionFile = "intersections.poly.xml"
+if len(sys.argv) > 1:
+ buildEvaSite(sys.argv[1], siteFile)
+else:
+ buildEvaSite("inputLocations.poi.xml", siteFile)
+print("osm Get")
+osmGet.get(["-x", siteFile])
+print("osm Build")
+osmOptions = ['-f', 'osm_bbox.osm.xml', '-p', prefix, '--vehicle-classes', 'road',
+ '-m', os.path.join(SUMO_HOME, 'data', 'typemap', 'osmPolyconvert.typ.xml')]
+osmBuild.build(osmOptions)
+print("polyconvert")
+sys.stdout.flush()
+subprocess.call([sumolib.checkBinary('polyconvert'), '-n', '%s.net.xml' %
+ prefix, '--xml-files', siteFile, '-o', mappedSiteFile])
+print("merging")
+mergePopulationData("population.csv", 'regions.poly.xml', mergedPopulationFile)
+print("extracting population data")
+extract(mergedPopulationFile, mappedSiteFile, intersectionFile)
+print("generating traffic")
+generateTraffic.generate(
+ '%s.net.xml' % prefix, mappedSiteFile, intersectionFile, '%s.rou.xml' % prefix)
+print("calling sumo")
+sys.stdout.flush()
+sumo = sumolib.checkBinary('sumo')
+sumoOptions = [sumo, '-n', "%s.net.xml" % prefix, '-a', "%s.poly.xml,inputLocations.poi.xml,%s" % (prefix, mappedSiteFile),
+ '-r', '%s.rou.xml' % prefix, '--ignore-route-errors', '--no-step-log', '--save-configuration', '%s.sumocfg' % prefix]
+subprocess.call(sumoOptions)
+subprocess.call([sumo, '%s.sumocfg' % prefix])
+#subprocess.call([sumolib.checkBinary('sumo-gui'), '%s.sumocfg' % prefix])
+print("done")
diff --git a/tools/projects/evacuation/generateTraffic.py b/tools/projects/evacuation/generateTraffic.py
new file mode 100644
index 0000000..a518ef8
--- /dev/null
+++ b/tools/projects/evacuation/generateTraffic.py
@@ -0,0 +1,86 @@
+# -*- coding: cp1252 -*-
+"""
+ at file generateTraffic.py
+ at author Martin Taraz
+ at author Michael Behrisch
+ at date 2015-09-09
+ at version $Id: generateTraffic.py 19541 2015-12-05 16:45:04Z behrisch $
+
+Generates an O/D matrix for the evacuation scenario and runs od2trips
+
+SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+Copyright (C) 2009-2015 DLR (http://www.dlr.de/) and contributors
+
+This file is part of SUMO.
+SUMO is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+"""
+
+import os
+import sys
+import subprocess
+from optparse import OptionParser
+from xml.sax import parse
+
+SUMO_HOME = os.environ.get("SUMO_HOME", os.path.join(
+ os.path.dirname(os.path.abspath(__file__)), "..", "..", ".."))
+sys.path.append(os.path.join(SUMO_HOME, "tools"))
+
+import edgesInDistricts as EID
+import sumolib
+
+
+def generate(netFile, mappedSiteFile, intersectionFile, tripFile):
+ # EdgesInDistricts
+ # evakuierungsbereich
+ options = OptionParser()
+ options.maxspeed = 1000.
+ options.minspeed = 0.
+ options.complete = False
+ options.internal = False
+ options.vclass = None
+ options.assign_from = True
+ options.verbose = False
+ options.weighted = False
+ options.shapeinfo = False
+ options.output = "edgesInIntersections.taz.xml"
+ net = sumolib.net.readNet(netFile)
+ reader = EID.DistrictEdgeComputer(net)
+ polyReader = sumolib.shapes.polygon.PolygonReader(True)
+ parse(intersectionFile, polyReader)
+ reader.computeWithin(polyReader.getPolygons(), options)
+ reader.writeResults(options)
+
+ # Evakuierungsziele
+ options.output = "evacuationsiteEdges.taz.xml"
+ reader = EID.DistrictEdgeComputer(net)
+ polyReader = sumolib.shapes.polygon.PolygonReader(True)
+ parse(mappedSiteFile, polyReader)
+ reader.computeWithin(polyReader.getPolygons(), options)
+ reader.writeResults(options)
+ print("EdgesInDistricts - done")
+
+ # O/D Matrix
+ import xml.etree.cElementTree as ET
+ Districts = ET.ElementTree(file=intersectionFile)
+ root = Districts.getroot()
+ EVA = ET.ElementTree(file='evacuationsiteEdges.taz.xml')
+ EV = EVA.getroot()
+ EV.remove(EV[0])
+ with open('ODMatrix.fma', 'w') as odm:
+ odm.write('$OR \n* From-Tome To-Time \n1.00 2.00\n* Factor \n1.00\n')
+ for elem in root.findall("./poly"):
+ for ESite in EV.findall("./*"):
+ CarAmount = str(
+ int(float(elem.attrib["inhabitants"]) / float(3 * (len(EV.findall("./*")) - 1))))
+ odm.write(
+ elem.attrib["id"] + '\t' + ESite.attrib["id"] + '\t' + CarAmount + '\n')
+ print("OD Matrix - done")
+
+ # OD2TRIPS
+ od2t = sumolib.checkBinary('od2trips')
+ od2tOptions = [od2t, '--no-step-log', '-d', odm.name, '-n',
+ 'edgesInIntersections.taz.xml,evacuationsiteEdges.taz.xml', '-o', tripFile]
+ subprocess.call(od2tOptions)
diff --git a/tools/randomTrips.py b/tools/randomTrips.py
index c33872e..171552d 100755
--- a/tools/randomTrips.py
+++ b/tools/randomTrips.py
@@ -5,7 +5,7 @@
@author Jakob Erdmann
@author Michael Behrisch
@date 2010-03-06
- at version $Id: randomTrips.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: randomTrips.py 19495 2015-12-02 12:36:28Z behrisch $
Generates random trips for the given network.
@@ -309,7 +309,7 @@ def main(options):
with open(options.tripfile, 'w') as fouttrips:
fouttrips.write("""<?xml version="1.0"?>
-<!-- generated on %s by $Id: randomTrips.py 18756 2015-08-31 19:16:33Z behrisch $
+<!-- generated on %s by $Id: randomTrips.py 19495 2015-12-02 12:36:28Z behrisch $
options: %s
-->
<trips>
@@ -338,7 +338,7 @@ def main(options):
if options.routefile:
args = [DUAROUTER, '-n', options.netfile, '-t', options.tripfile, '-o', options.routefile, '--ignore-errors',
- '--begin', str(options.begin), '--end', str(options.end), '--no-step-log']
+ '--begin', str(options.begin), '--end', str(options.end), '--no-step-log', '--no-warnings']
if options.additional is not None:
args += ['--additional-files', options.additional]
print("calling ", " ".join(args))
diff --git a/tools/route/extractRouteEdges.py b/tools/route/extractRouteEdges.py
deleted file mode 100755
index 08c2846..0000000
--- a/tools/route/extractRouteEdges.py
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env python
-"""
- at file extract_route_edges.py
- at author Jakob Erdmann
- at author Michael Behrisch
- at date 2012-10-11
- at version $Id: extractRouteEdges.py 18096 2015-03-17 09:50:59Z behrisch $
-
-Extract all used edges from routes and person plans and output a file suitable
-for pruning edges with netconvert
-
-SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
-Copyright (C) 2012-2015 DLR (http://www.dlr.de/) and contributors
-
-This file is part of SUMO.
-SUMO is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 3 of the License, or
-(at your option) any later version.
-"""
-
-import os
-import sys
-from collections import defaultdict
-sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
-from sumolib.output import parse, parse_fast
-
-route_file, keep_file = sys.argv[1:]
-edges = set()
-for route in parse_fast(route_file, 'route', ['edges']):
- edges.update(route.edges.split())
-for walk in parse_fast(route_file, 'walk', ['edges']):
- edges.update(walk.edges.split())
-
-# warn about potentially missing edges
-for trip in parse_fast(route_file, 'trip', ['id', 'from', 'to']):
- edges.update([trip.attr_from, trip.to])
- print(
- "Warning: Trip %s is not guaranteed to be connected within the extacted edges." % trip.id)
-for walk in parse_fast(route_file, 'walk', ['from', 'to']):
- edges.update([walk.attr_from, walk.to])
- print("Warning: Walk from %s to %s is not guaranteed to be connected within the extacted edges." % (
- walk.attr_from, walk.to))
-
-with open(keep_file, 'w') as outf:
- outf.write(','.join(edges) + '\n')
diff --git a/tools/route2sel.py b/tools/route2sel.py
old mode 100644
new mode 100755
index 048b002..1550628
--- a/tools/route2sel.py
+++ b/tools/route2sel.py
@@ -3,7 +3,7 @@
@file route2trips.py
@author Jakob Erdmann
@date 2015-08-05
- at version $Id: route2sel.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: route2sel.py 19535 2015-12-05 13:47:18Z behrisch $
This script converts SUMO routes into an edge selection
@@ -39,8 +39,21 @@ def parse_args():
def main():
options = parse_args()
edges = set()
+
for route in parse_fast(options.routefile, 'route', ['edges']):
edges.update(route.edges.split())
+ for walk in parse_fast(options.routefile, 'walk', ['edges']):
+ edges.update(walk.edges.split())
+
+ # warn about potentially missing edges
+ for trip in parse_fast(options.routefile, 'trip', ['id', 'from', 'to']):
+ edges.update([trip.attr_from, trip.to])
+ print(
+ "Warning: Trip %s is not guaranteed to be connected within the extracted edges." % trip.id)
+ for walk in parse_fast(options.routefile, 'walk', ['from', 'to']):
+ edges.update([walk.attr_from, walk.to])
+ print("Warning: Walk from %s to %s is not guaranteed to be connected within the extracted edges." % (
+ walk.attr_from, walk.to))
with open(options.outfile, 'w') as outf:
for e in sorted(list(edges)):
diff --git a/tools/shapes/circlePolygon.py b/tools/shapes/circlePolygon.py
index 8633c0b..4fe1d14 100755
--- a/tools/shapes/circlePolygon.py
+++ b/tools/shapes/circlePolygon.py
@@ -4,7 +4,7 @@
@author Daniel Krajzewicz
@author Michael Behrisch
@date 2010-02-20
- at version $Id: circlePolygon.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: circlePolygon.py 19535 2015-12-05 13:47:18Z behrisch $
Approximates a list of circles by polygons.
@@ -18,6 +18,7 @@ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
"""
+from __future__ import print_function
import os
import sys
import math
@@ -38,13 +39,19 @@ optParser.add_option("-l", "--layer", type="int", default=-1,
help="layer")
optParser.add_option("-x", "--corners", type="int", default=100,
help="default number of corners")
+optParser.add_option(
+ "-o", "--output-file", help="output file (default: standard output)")
(options, args) = optParser.parse_args()
+output = sys.stdout if options.output_file is None else open(
+ options.output_file, 'w')
+
if len(args) == 0:
print >> sys.stderr, "Usage: " + sys.argv[0] + " x,y[[,r],c] ..."
sys.exit()
-print "<additional>"
+
+print("<additional>", file=output)
for idx, d in enumerate(args):
desc = d.split(",")
x = float(desc[0])
@@ -56,6 +63,7 @@ for idx, d in enumerate(args):
for i in range(c):
shape += "%s,%s " % (math.cos(i * angle) * r + x,
math.sin(i * angle) * r + y)
- print ' <poly id="%s%s" type="%s" color="%s"' % (options.prefix, idx, options.type, options.color),
- print 'fill="%i" layer="%s" shape="%s"/>' % (options.fill, options.layer, shape[:-1])
-print "</additional>"
+ print(' <poly id="%s%s" type="%s" color="%s" fill="%i" layer="%s" shape="%s"/>' % (
+ options.prefix, idx, options.type, options.color, options.fill, options.layer, shape[:-1]),
+ file=output)
+print("</additional>", file=output)
diff --git a/tools/sumolib/__init__.py b/tools/sumolib/__init__.py
index ade6cd0..a9cdcef 100644
--- a/tools/sumolib/__init__.py
+++ b/tools/sumolib/__init__.py
@@ -5,7 +5,7 @@
@author Jakob Erdmann
@author Michael Behrisch
@date 2011-06-23
- at version $Id: __init__.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: __init__.py 19177 2015-10-27 11:26:09Z behrisch $
Python interface to SUMO especially for parsing xml input and output files.
@@ -203,7 +203,10 @@ class TeeFile:
for fp in self.files:
fp.flush()
if type(fp) is int or hasattr(fp, "fileno"):
- os.fsync(fp)
+ try:
+ os.fsync(fp)
+ except OSError:
+ pass
def _intTime(tStr):
diff --git a/tools/sumolib/net/__init__.py b/tools/sumolib/net/__init__.py
index 350b47f..8d7067a 100644
--- a/tools/sumolib/net/__init__.py
+++ b/tools/sumolib/net/__init__.py
@@ -6,7 +6,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2008-03-27
- at version $Id: __init__.py 18490 2015-06-15 08:40:28Z behrisch $
+ at version $Id: __init__.py 19545 2015-12-06 10:20:01Z behrisch $
This file contains a content handler for parsing sumo network xml files.
It uses other classes from this module to represent the road network.
@@ -28,6 +28,7 @@ import math
from xml.sax import saxutils, parse, handler
from copy import copy
from itertools import *
+from collections import defaultdict
import sumolib
from . import lane, edge, node, connection, roundabout
@@ -82,6 +83,9 @@ class TLS:
ret = ret + self._programs[p].toXML(self._id)
return ret
+ def getPrograms(self):
+ return self._programs
+
class TLSProgram:
@@ -103,6 +107,9 @@ class TLSProgram:
ret = ret + ' </tlLogic>\n'
return ret
+ def getPhases(self):
+ return self._phases
+
class Net:
@@ -121,6 +128,7 @@ class Net:
self._roundabouts = []
self._rtree = None
self._allLanes = []
+ self._origIdx = None
def setLocation(self, netOffset, convBoundary, origBoundary, projParameter):
self._location["netOffset"] = netOffset
@@ -167,9 +175,9 @@ class Net:
self._roundabouts.append(r)
return r
- def addConnection(self, fromEdge, toEdge, fromlane, tolane, direction, tls, tllink):
+ def addConnection(self, fromEdge, toEdge, fromlane, tolane, direction, tls, tllink, state):
conn = connection.Connection(
- fromEdge, toEdge, fromlane, tolane, direction, tls, tllink)
+ fromEdge, toEdge, fromlane, tolane, direction, tls, tllink, state)
fromEdge.addOutgoing(conn)
fromlane.addOutgoing(conn)
toEdge._addIncoming(conn)
@@ -268,7 +276,7 @@ class Net:
self._id2node[junctionID].setFoes(index, foes, prohibits)
def forbids(self, possProhibitor, possProhibited):
- return possProhibitor[0].getEdge()._to.forbids(possProhibitor, possProhibited)
+ return possProhibitor.getFrom().getToNode().forbids(possProhibitor, possProhibited)
def getDownstreamEdges(self, edge, distance, stopOnTLS):
ret = []
@@ -302,6 +310,15 @@ class Net:
toProc.extend(mn)
return ret
+ def getEdgesByOrigID(self, origID):
+ if self._origIdx is None:
+ self._origIdx = defaultdict(set)
+ for edge in self._edges:
+ for lane in edge.getLanes():
+ for oID in lane.getParam("origId", "").split():
+ self._origIdx[oID].add(edge)
+ return self._origIdx[origID]
+
# the diagonal of the bounding box of all nodes
def getBBoxDiameter(self):
return math.sqrt(
@@ -428,7 +445,8 @@ class NetReader(handler.ContentHandler):
toEdge = self._net.getEdge(lid[:lid.rfind('_')])
tolane = toEdge._lanes[tolane]
self._net.addConnection(self._currentEdge, connected, self._currentEdge._lanes[
- self._currentLane], tolane, attrs['dir'], tl, tllink)
+ self._currentLane], tolane,
+ attrs['dir'], tl, tllink, attrs['state'])
if name == 'connection' and self._withConnections and attrs['from'][0] != ":":
fromEdgeID = attrs['from']
toEdgeID = attrs['to']
@@ -447,7 +465,8 @@ class NetReader(handler.ContentHandler):
tl = ""
tllink = -1
self._net.addConnection(
- fromEdge, toEdge, fromLane, toLane, attrs['dir'], tl, tllink)
+ fromEdge, toEdge, fromLane, toLane, attrs['dir'], tl,
+ tllink, attrs['state'])
# 'row-logic' is deprecated!!!
if self._withFoes and name == 'ROWLogic':
self._currentNode = attrs['id']
@@ -467,7 +486,7 @@ class NetReader(handler.ContentHandler):
self._net.addRoundabout(attrs['nodes'].split())
if name == 'param':
if self._currentLane != None:
- self._currentLane._params[attrs['key']] = attrs['value']
+ self._currentLane.setParam(attrs['key'], attrs['value'])
def characters(self, content):
if self._currentLane != None:
diff --git a/tools/sumolib/net/connection.py b/tools/sumolib/net/connection.py
index 4cd2b99..b7e6594 100644
--- a/tools/sumolib/net/connection.py
+++ b/tools/sumolib/net/connection.py
@@ -6,7 +6,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2011-11-28
- at version $Id: connection.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: connection.py 19499 2015-12-03 08:52:04Z namdre $
This file contains a Python-representation of a single connection.
@@ -32,7 +32,7 @@ class Connection:
"""edge connection for a sumo network"""
- def __init__(self, fromEdge, toEdge, fromLane, toLane, direction, tls, tllink):
+ def __init__(self, fromEdge, toEdge, fromLane, toLane, direction, tls, tllink, state):
self._from = fromEdge
self._to = toEdge
self._fromLane = fromLane
@@ -40,6 +40,7 @@ class Connection:
self._direction = direction
self._tls = tls
self._tlLink = tllink
+ self._state = state
def __str__(self):
return '<connection from="%s" to="%s" fromLane="%s" toLane="%s" %sdirection="%s">' % (
@@ -62,3 +63,18 @@ class Connection:
def getToLane(self):
return self._toLane
+
+ def getDirection(self):
+ return self._direction
+
+ def getTLSID(self):
+ return self._tls
+
+ def getTLLinkIndex(self):
+ return self._tlLink
+
+ def getJunctionIndex(self):
+ return self._from.getToNode().getLinkIndex(self)
+
+ def getState(self):
+ return self._state
diff --git a/tools/sumolib/net/lane.py b/tools/sumolib/net/lane.py
index 0538ab8..d441971 100644
--- a/tools/sumolib/net/lane.py
+++ b/tools/sumolib/net/lane.py
@@ -6,7 +6,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2011-11-28
- at version $Id: lane.py 18655 2015-08-18 15:37:28Z behrisch $
+ at version $Id: lane.py 19545 2015-12-06 10:20:01Z behrisch $
This file contains a Python-representation of a single lane.
@@ -133,3 +133,12 @@ class Lane:
def addOutgoing(self, conn):
self._outgoing.append(conn)
+
+ def getOutgoing(self):
+ return self._outgoing
+
+ def setParam(self, key, value):
+ self._params[key] = value
+
+ def getParam(self, key, default=None):
+ return self._params.get(key, default)
diff --git a/tools/sumolib/net/node.py b/tools/sumolib/net/node.py
index 9a1b383..7b89296 100644
--- a/tools/sumolib/net/node.py
+++ b/tools/sumolib/net/node.py
@@ -6,7 +6,7 @@
@author Michael Behrisch
@author Jakob Erdmann
@date 2011-11-28
- at version $Id: node.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: node.py 19535 2015-12-05 13:47:18Z behrisch $
This file contains a Python-representation of a single node.
@@ -57,19 +57,15 @@ class Node:
def areFoes(self, link1, link2):
return self._foes[link1][len(self._foes[link1]) - link2 - 1] == '1'
- def getLinkIndex(self, link):
+ def getLinkIndex(self, conn):
ret = 0
- for lid in self._incLanes:
- (e, l) = lid.split("_")
- lane = None
- for et in self._incoming:
- for l in et._lanes:
- if l == link[0]:
- lane = l
-
- if l[0] == link[0] and l[1] == link[1]:
- return ret
- ret += 1
+ for lane_id in self._incLanes:
+ (edge_id, index) = lane_id.split("_")
+ edge = [e for e in self._incoming if e.getID() == edge_id][0]
+ for candidate_conn in edge.getLane(int(index)).getOutgoing():
+ if candidate_conn == conn:
+ return ret
+ ret += 1
return -1
def forbids(self, possProhibitor, possProhibited):
diff --git a/tools/sumolib/output/convert/ns2.py b/tools/sumolib/output/convert/ns2.py
index 3ceae6a..f15334b 100644
--- a/tools/sumolib/output/convert/ns2.py
+++ b/tools/sumolib/output/convert/ns2.py
@@ -4,7 +4,7 @@
@author Jakob Erdmann
@author Michael Behrisch
@date 2013-01-15
- at version $Id: ns2.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: ns2.py 19091 2015-10-15 10:48:45Z namdre $
This module includes functions for converting SUMO's fcd-output into
data files read by ns2.
@@ -27,6 +27,7 @@ import sumolib.net
def fcd2ns2mobility(inpFCD, outSTRM, further):
vIDm = sumolib._Running(further["orig-ids"], True)
+ checkGaps = not further["ignore-gaps"]
begin = -1
end = None
area = [None, None, None, None]
@@ -38,7 +39,7 @@ def fcd2ns2mobility(inpFCD, outSTRM, further):
begin = timestep.time
end = timestep.time
seen = set()
- if not timestep.vehicle:
+ if not timestep.vehicle and checkGaps:
_writeMissing(timestep.time, vIDm, seen, vehInfo, removed)
continue
for v in timestep.vehicle:
@@ -71,7 +72,9 @@ def fcd2ns2mobility(inpFCD, outSTRM, further):
area[1] = min(area[1], v.y)
area[2] = max(area[2], v.x)
area[3] = max(area[3], v.y)
- _writeMissing(timestep.time, vIDm, seen, vehInfo, removed)
+ if checkGaps:
+ _writeMissing(timestep.time, vIDm, seen, vehInfo, removed)
+ _writeMissing(timestep.time, vIDm, seen, vehInfo, removed)
return vIDm, vehInfo, begin, end, area
diff --git a/tools/sumolib/output/convert/omnet.py b/tools/sumolib/output/convert/omnet.py
index 40719e0..040007a 100644
--- a/tools/sumolib/output/convert/omnet.py
+++ b/tools/sumolib/output/convert/omnet.py
@@ -3,7 +3,7 @@
@author Daniel Krajzewicz
@author Michael Behrisch
@date 2013-01-15
- at version $Id: omnet.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: omnet.py 19091 2015-10-15 10:48:45Z namdre $
This module includes functions for converting SUMO's fcd-output into
data files read by OMNET.
@@ -31,9 +31,10 @@ def fcd2omnet(inpFCD, outSTRM, further):
(datetime.datetime.now(), further["app"]), file=outSTRM)
print('<mobility_trace>', file=outSTRM)
vIDm = sumolib._Running(further["orig-ids"], True)
+ checkGaps = not further["ignore-gaps"]
for timestep in inpFCD:
seen = set()
- if not timestep.vehicle:
+ if not timestep.vehicle and checkGaps:
_writeMissing(outSTRM, timestep.time, vIDm, seen)
continue
for v in timestep.vehicle:
@@ -47,7 +48,9 @@ def fcd2omnet(inpFCD, outSTRM, further):
nid = vIDm.g(v.id)
print(""" <waypoint><nodeid>%s</nodeid><time>%s</time>\
<destination><xpos>%s</xpos><ypos>%s</ypos></destination><speed>%s</speed></waypoint>""" % (nid, timestep.time, v.x, v.y, v.speed), file=outSTRM)
- _writeMissing(outSTRM, timestep.time, vIDm, seen)
+ if checkGaps:
+ _writeMissing(outSTRM, timestep.time, vIDm, seen)
+ _writeMissing(outSTRM, timestep.time, vIDm, seen)
print('</mobility_trace>', file=outSTRM)
diff --git a/tools/sumolib/output/convert/phem.py b/tools/sumolib/output/convert/phem.py
index aa85571..6497bb3 100644
--- a/tools/sumolib/output/convert/phem.py
+++ b/tools/sumolib/output/convert/phem.py
@@ -4,7 +4,7 @@
@author Jakob Erdmann
@author Michael Behrisch
@date 2013-01-15
- at version $Id: phem.py 18096 2015-03-17 09:50:59Z behrisch $
+ at version $Id: phem.py 18826 2015-09-10 21:13:31Z behrisch $
This module includes functions for converting SUMO's fcd-output into
data files read by PHEM.
@@ -24,17 +24,17 @@ import sumolib
def _convType(tID):
- if tID.lower().startswith("passenger") or tID.lower().startswith("pkw"):
- # needed for V2X applications only
- if tID.lower().startswith("passenger_equipped") or tID.lower().startswith("pkw_equipped"):
- return "PKW_equipped"
- else:
+ if tID:
+ if tID.lower().startswith("passenger") or tID.lower().startswith("pkw"):
+ # needed for V2X applications only
+ if tID.lower().startswith("passenger_equipped") or tID.lower().startswith("pkw_equipped"):
+ return "PKW_equipped"
return "PKW"
- if tID.lower().startswith("bus"):
- return "BUS"
- if tID.lower().startswith("heavy") or tID.lower().startswith("lkw"):
- return "LKW"
- print("Could not convert the vehicle type properly")
+ if tID.lower().startswith("bus"):
+ return "BUS"
+ if tID.lower().startswith("heavy") or tID.lower().startswith("lkw"):
+ return "LKW"
+ print("Could not convert the vehicle type properly")
return "unknown"
@@ -105,7 +105,7 @@ def fcd2fzp(inpFCD, outSTRM, further):
vid = vIDm.g(v.id)
aType = _convType(v.type)
vtid = vtIDm.g(aType)
- sid = sIDm.g(sumolib._laneID2edgeID(v.lane))
+ sid = sIDm.g(v.edge)
percSlope = math.sin(float(v.slope)) * 100.
if outSTRM != None:
print("%s,%s,%s,%s,%s,%s,%s,%s" % (
diff --git a/tools/sumolib/shapes/polygon.py b/tools/sumolib/shapes/polygon.py
index bc10221..910532d 100644
--- a/tools/sumolib/shapes/polygon.py
+++ b/tools/sumolib/shapes/polygon.py
@@ -4,7 +4,7 @@
@author Melanie Knocke
@author Michael Behrisch
@date 2012-12-04
- at version $Id: polygon.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: polygon.py 18951 2015-09-25 09:26:15Z behrisch $
Library for reading and storing polygons.
@@ -46,10 +46,10 @@ class Polygon:
assert(xmin != xmax or ymin != ymax)
return xmin, ymin, xmax, ymax
+ def getShapeString(self):
+ return " ".join([",".join(map(str, e)) for e in self.shape])
+
def toXML(self):
- s = []
- for e in self.shape:
- s.append("%s,%s" % (e[0], e[1]))
ret = '<poly id="%s"' % self.id
if type is not None:
ret += ' type="%s"' % self.type
@@ -60,7 +60,7 @@ class Polygon:
if fill is not None:
ret += ' fill="%s"' % self.fill
if shape is not None:
- ret += ' shape="%s"' % (" ".join(s))
+ ret += ' shape="%s"' % self.getShapeString()
if len(self.attributes) == 0:
ret += '/>'
else:
diff --git a/tools/tlsCoordinator.py b/tools/tlsCoordinator.py
new file mode 100755
index 0000000..37b76a3
--- /dev/null
+++ b/tools/tlsCoordinator.py
@@ -0,0 +1,337 @@
+#!/usr/bin/env python
+"""
+ at file tlsCoordinator.py
+ at author Martin Taraz (martin at taraz.de)
+ at author Jakob Erdmann
+ at date 2015-09-07
+ at version $Id: tlsCoordinator.py 19535 2015-12-05 13:47:18Z behrisch $
+
+Coordinates traffic lights in a sumo net for a given demand
+
+SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+Copyright (C) 2010-2015 DLR (http://www.dlr.de/) and contributors
+
+This file is part of SUMO.
+SUMO is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+"""
+
+import os
+import sys
+import subprocess
+import xml.etree.cElementTree as ET
+import optparse
+
+if 'SUMO_HOME' in os.environ:
+ tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
+ sys.path.append(tools)
+ import sumolib
+else:
+ sys.exit("please declare environment variable 'SUMO_HOME'")
+
+from sumolib.miscutils import Statistics
+from sumolib.output import parse_fast
+from operator import itemgetter
+from collections import namedtuple
+
+TLTuple = namedtuple('TLTuple', ['edgeID', 'dist', 'time', 'connection'])
+PairKey = namedtuple('PairKey', ['edgeID', 'edgeID2', 'dist'])
+PairData = namedtuple('PairData', ['otl', 'oconnection', 'tl', 'connection', 'betweenOffset', 'startOffset', 'travelTime',
+ 'prio', 'numVehicles', 'ogreen', 'green'])
+
+
+def pair2str(p, full=True):
+ brief = "%s,%s s=%.1f b=%.1f t=%.1f" % (
+ p.otl.getID(), p.tl.getID(), p.startOffset, p.betweenOffset, p.travelTime)
+ if full:
+ return brief + " og=%s g=%s p=%s n=%s" % (p.ogreen, p.green, p.prio, p.numVehicles)
+ else:
+ return brief
+
+
+def logAddedPair(TLSP, sets, operation):
+ print "added pair %s,%s with operation %s" % (TLSP.otl.getID(), TLSP.tl.getID(), operation)
+ for s in sets:
+ print " " + " ".join([pair2str(p, False) for p in s])
+
+
+def get_options(args=None):
+ optParser = optparse.OptionParser()
+ optParser.add_option("-n", "--net-file", dest="netfile",
+ help="define the net file (mandatory)")
+ optParser.add_option("-o", "--output-file", dest="outfile",
+ default="tlsOffsets.add.xml", help="define the output filename")
+ optParser.add_option("-r", "--route-file", dest="routefile",
+ help="define the inputroute file (mandatory)")
+ optParser.add_option("-v", "--verbose", action="store_true",
+ default=False, help="tell me what you are doing")
+ optParser.add_option("--speed-factor", type="float",
+ default=0.9, help="avg ration of vehicle speed in relation to the speed limit")
+ optParser.add_option("-e", "--evaluate", action="store_true",
+ default=False, help="run the scenario and print duration statistics")
+ (options, args) = optParser.parse_args(args=args)
+ if not options.netfile or not options.routefile:
+ optParser.print_help()
+ sys.exit()
+
+ return options
+
+
+def locate(tlsToFind, sets):
+ """return
+ - the set in which the given traffic light exists
+ - the pair in which it was found
+ - the index within the pair
+ """
+ for s in sets:
+ for pair in s:
+ if tlsToFind == pair.otl:
+ return s, pair, 0
+ elif tlsToFind == pair.tl:
+ return s, pair, 1
+ return None, None, None
+
+
+def coordinateAfterSet(TLSP, l1, l1Pair, l1Index):
+ # print "coordinateAfter\n TLSP: %s\n l1Pair: %s\n l1Index=%s" % (
+ # pair2str(TLSP), pair2str(l1Pair), l1Index)
+ if l1Index == 0:
+ TLSPdepart = l1Pair.startOffset - TLSP.ogreen
+ TLSParrival = TLSPdepart + TLSP.travelTime
+ TLSPstartOffset2 = TLSParrival - TLSP.green
+ TLSP = TLSP._replace(startOffset=l1Pair.startOffset,
+ betweenOffset=TLSPstartOffset2 - l1Pair.startOffset)
+ else:
+ l1depart = l1Pair.startOffset + l1Pair.betweenOffset + TLSP.ogreen
+ TLSParrival = l1depart + TLSP.travelTime
+ TLSPstartOffset = TLSParrival - TLSP.green
+ TLSP = TLSP._replace(
+ startOffset=l1depart, betweenOffset=TLSPstartOffset - l1depart)
+ l1.append(TLSP)
+ return TLSP
+
+
+def coordinateBeforeSet(TLSP, l2, l2Pair, l2Index):
+ # print "coordinateBeforeSet\n TLSP: %s\n l2Pair: %s\n l2Index=%s" % (
+ # pair2str(TLSP), pair2str(l2Pair), l2Index)
+ if l2Index == 0:
+ l2arrival = l2Pair.startOffset + TLSP.green
+ TLSPdepart = l2arrival - TLSP.travelTime
+ TLSPstartOffset = TLSPdepart - TLSP.ogreen
+ TLSP = TLSP._replace(
+ startOffset=TLSPstartOffset, betweenOffset=l2Pair.startOffset - TLSPstartOffset)
+ else:
+ l2arrival = l2Pair.startOffset + l2Pair.betweenOffset + TLSP.green
+ TLSPdepart = l2arrival - TLSP.travelTime
+ TLSPstartOffset = TLSPdepart - TLSP.ogreen
+ TLSP = TLSP._replace(
+ startOffset=TLSPstartOffset, betweenOffset=l2arrival - TLSPstartOffset)
+ l2.append(TLSP)
+ return TLSP
+
+
+def computePairOffsets(TLSPList, verbose):
+ c1, c2, c3, c4, c5 = 0, 0, 0, 0, 0
+ sets = [] # sets of coordinate TLPairs
+ operation = ""
+ for TLSP in TLSPList:
+ l1, l1Pair, l1Index = locate(TLSP.otl, sets)
+ l2, l2Pair, l2Index = locate(TLSP.tl, sets)
+ # print(l1)
+ if l1 == None and l2 == None:
+ # new set
+ newlist = []
+ newlist.append(TLSP)
+ sets.append(newlist)
+ c1 += 1
+ operation = "newSet"
+ elif l2 == None and not l1 == None:
+ # add to set 1 - add after existing set
+ TLSP = coordinateAfterSet(TLSP, l1, l1Pair, l1Index)
+ c2 += 1
+ operation = "addAfterSet"
+ elif l1 == None and not l2 == None:
+ # add to set 2 - add before existing set
+ TLSP = coordinateBeforeSet(TLSP, l2, l2Pair, l2Index)
+ c3 += 1
+ operation = "addBeforeSet"
+ else:
+ if l1 == l2:
+ # cannot uncoordinated both tls. coordinate the first
+ # arbitrarily
+ TLSP = coordinateAfterSet(TLSP, l1, l1Pair, l1Index)
+ c4 += 1
+ operation = "addHalfCoordinated"
+ else:
+ # merge sets
+ TLSP = coordinateAfterSet(TLSP, l1, l1Pair, l1Index)
+ if verbose:
+ logAddedPair(TLSP, sets, "addAfterSet (intermediate)")
+
+ # print "merge\n TLSP: %s\n l1Pair: %s\n l1Index=%s\n l2Pair: %s\n l2Index=%s" % (
+ # pair2str(TLSP), pair2str(l1Pair), l1Index, pair2str(l2Pair),
+ # l2Index)
+
+ if l2Index == 0:
+ dt = TLSP.startOffset + \
+ TLSP.betweenOffset - l2Pair.startOffset
+ else:
+ dt = TLSP.startOffset + TLSP.betweenOffset - \
+ (l2Pair.startOffset + l2Pair.betweenOffset)
+
+ merge(sets, l1, l2, dt)
+ c5 += 1
+ operation = "mergeSets"
+
+ if verbose:
+ logAddedPair(TLSP, sets, operation)
+
+ print("operations: newSet=%s addToSet=%s addToSet2=%s addHalfCoordinated=%s mergeSets=%s" % (
+ c1, c2, c3, c4, c5))
+ return(sets)
+
+
+def merge(sets, list1, list2, dt):
+ for elem in list2:
+ list1.append(elem._replace(startOffset=elem.startOffset + dt))
+ sets.remove(list2)
+
+
+def finalizeOffsets(sets):
+ offsetDict = {}
+ for singleSet in sets:
+ singleSet.sort(
+ key=lambda pd: (pd.prio, pd.numVehicles / pd.travelTime), reverse=True)
+ for pair in singleSet:
+ # print " %s,%s:%s,%s" % (pair.otl.getID(), pair.tl.getID(),
+ # pair.startOffset, pair.betweenOffset)
+ tl1 = pair.otl.getID()
+ tl2 = pair.tl.getID()
+ betweenOffset = pair.betweenOffset
+ startOffset = pair.startOffset
+ if not tl1 in offsetDict:
+ # print " added %s offset %s" % (tl1, startOffset)
+ offsetDict[tl1] = startOffset
+ if not tl2 in offsetDict:
+ # print " added %s offset %s" % (tl2, startOffset +
+ # betweenOffset)
+ offsetDict[tl2] = startOffset + betweenOffset
+ return offsetDict
+
+
+def getTLSInRoute(net, edge_ids):
+ rTLSList = [] # list of traffic lights along the current route
+ dist = 0
+ time = 0
+ for edgeID, nextEdgeID in zip(edge_ids[:-1], edge_ids[1:]):
+ edge = net.getEdge(edgeID)
+ nextEdge = net.getEdge(nextEdgeID)
+ connection = edge.getOutgoing()[nextEdge][0]
+
+ TLS = edge.getTLS()
+ dist += edge.getLength()
+ time += edge.getLength() / edge.getSpeed()
+ alreadyFound = [item for item in rTLSList if item[0] == edgeID]
+ if TLS and not alreadyFound:
+ rTLSList.append(TLTuple(edgeID, dist, time, connection))
+ dist = 0
+ time = 0
+ return rTLSList
+
+
+def getFirstGreenOffset(tl, connection):
+ index = connection._tlLink
+ tlp = tl.getPrograms()
+ if len(tlp) != 1:
+ raise RuntimeError("Found %s programs for tl %s" %
+ (len(tlp), connection._tls))
+ phases = tlp.values()[0].getPhases()
+ start = 0
+ for state, duration in phases:
+ if state[index] in ['G', 'g']:
+ return start
+ else:
+ start += duration
+ raise RuntimeError(
+ "No green light for tlIndex %s at tl %s" % (index, connection._tls))
+
+
+def getTLPairs(net, routeFile, speedFactor):
+ # pairs of traffic lights
+ TLPairs = {} # PairKey -> PairData
+
+ for route in sumolib.output.parse_fast(routeFile, 'route', ['edges']):
+ rTLSList = getTLSInRoute(net, route.edges.split())
+
+ for oldTL, TLelement in zip(rTLSList[:-1], rTLSList[1:]):
+ key = PairKey(oldTL.edgeID, TLelement.edgeID, oldTL.dist)
+ numVehicles = 0 if not key in TLPairs else TLPairs[key].numVehicles
+
+ tl = net.getEdge(TLelement.edgeID).getTLS()
+ otl = net.getEdge(oldTL.edgeID).getTLS()
+ edge = net.getEdge(TLelement.edgeID)
+ connection = TLelement.connection
+ oconnection = oldTL.connection
+
+ ogreen = getFirstGreenOffset(otl, oconnection)
+ green = getFirstGreenOffset(tl, connection)
+
+ travelTime = TLelement.time / speedFactor
+ betweenOffset = travelTime + ogreen - green
+ startOffset = 0
+ # relevant data for a pair of traffic lights
+ TLPairs[key] = PairData(otl, oconnection, tl, connection, betweenOffset, startOffset, travelTime,
+ edge.getPriority(), numVehicles + 1, ogreen, green)
+
+ return TLPairs
+
+
+def removeDuplicates(TLPairs):
+ # @todo: for multiple pairs with the same edges but different dist, keep only the one with the largest numVehicles
+ return TLPairs
+
+
+def main(options):
+ net = sumolib.net.readNet(options.netfile, withPrograms=True)
+ TLPairs = getTLPairs(net, options.routefile, options.speed_factor)
+ TLPairs = removeDuplicates(TLPairs)
+
+ sortHelper = [(
+ (pairData.prio, pairData.numVehicles / pairData.travelTime), # sortKey
+ (pairKey, pairData)) # payload
+ for pairKey, pairData in TLPairs.items()]
+
+ tlPairsList = [
+ value for sortKey, value in sorted(sortHelper, reverse=True)]
+
+ print("number of tls-pairs: %s" % (len(tlPairsList)))
+ if options.verbose:
+ print '\n'.join(["edges=%s,%s prio=%s numVehicles/time=%s" % (
+ pairKey.edgeID, pairKey.edgeID2, pairData.prio, pairData.numVehicles / pairData.travelTime)
+ for pairKey, pairData in tlPairsList])
+
+ coordinatedSets = computePairOffsets(
+ [pairData for pairKey, pairData in tlPairsList], options.verbose)
+
+ offsetDict = finalizeOffsets(coordinatedSets)
+
+ with open(options.outfile, 'w') as outf:
+ outf.write('<additional>\n')
+ for ID, startOffset in offsetDict.items():
+ outf.write(' <tlLogic id="%s" programID="0" offset="%s"/>\n' %
+ (ID, str(startOffset)))
+ outf.write('</additional>\n')
+
+ sumo = sumolib.checkBinary('sumo')
+ if options.evaluate:
+ subprocess.call([sumo,
+ '-n', options.netfile,
+ '-r', options.routefile,
+ '-a', options.outfile,
+ '-v', '--no-step-log', '--duration-log.statistics'], stdout=sys.stdout)
+
+if __name__ == "__main__":
+ options = get_options(sys.argv)
+ main(options)
diff --git a/tools/traceExporter.py b/tools/traceExporter.py
index d067cdd..79e65bc 100755
--- a/tools/traceExporter.py
+++ b/tools/traceExporter.py
@@ -7,7 +7,7 @@ A script for converting SUMO's fcd-output into files readable by PHEM and commun
@author Jakob Erdmann
@author Michael Behrisch
@date 2013-01-15
- at version $Id: traceExporter.py 18756 2015-08-31 19:16:33Z behrisch $
+ at version $Id: traceExporter.py 19535 2015-12-05 13:47:18Z behrisch $
SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
Copyright (C) 2013-2015 DLR (http://www.dlr.de/) and contributors
@@ -40,14 +40,14 @@ import sumolib.output.convert.poi as poi
class FCDVehicleEntry:
- def __init__(self, id, x, y, z, speed, typev, lane, slope):
+ def __init__(self, id, x, y, z, speed, typev, edge, slope):
self.id = id
self.x = x
self.y = y
self.z = z
self.speed = speed
self.type = typev
- self.lane = lane
+ self.edge = edge
self.slope = slope
@@ -77,21 +77,37 @@ def _closeOutputStream(strm):
strm.close()
+def makeEntries(movables, chosen, options):
+ if options.boundary:
+ xmin, ymin, xmax, ymax = [float(e)
+ for e in options.boundary.split(",")]
+ result = []
+ for v in movables:
+ if v.id not in chosen:
+ chosen[v.id] = random.random() < options.penetration
+ if chosen[v.id]:
+ x, y = disturb_gps(float(v.x), float(v.y), options.blur)
+ if v.z:
+ z = v.z
+ else:
+ z = 0
+ if not options.boundary or (x >= xmin and x <= xmax and y >= ymin and y <= ymax):
+ edge = v.edge
+ if v.lane:
+ edge = sumolib._laneID2edgeID(v.lane)
+ result.append(
+ FCDVehicleEntry(v.id, x, y, z, v.speed, v.type, edge, v.slope))
+ return result
+
+
def procFCDStream(fcdstream, options):
pt = -1 # "prior" time step
lt = -1 # "last" time step
- ft = -1 # "first" time step
lastExported = -1
chosen = {}
- if options.boundary:
- xmin, ymin, xmax, ymax = [float(e)
- for e in options.boundary.split(",")]
for i, q in enumerate(fcdstream):
pt = lt
lt = float(q.time.encode("latin1"))
- if ft < 0:
- # this is the first step contained in the simulation
- ft = lt # save it for later purposes
if options.begin and options.begin > lt:
continue # do not export steps before a set begin
if options.end and options.end <= lt:
@@ -101,18 +117,9 @@ def procFCDStream(fcdstream, options):
lastExported = lt
e = FCDTimeEntry(lt)
if q.vehicle:
- for v in q.vehicle:
- if v.id not in chosen:
- chosen[v.id] = random.random() < options.penetration
- if chosen[v.id]:
- x, y = disturb_gps(float(v.x), float(v.y), options.blur)
- if v.z:
- z = v.z
- else:
- z = 0
- if not options.boundary or (x >= xmin and x <= xmax and y >= ymin and y <= ymax):
- e.vehicle.append(
- FCDVehicleEntry(v.id, x, y, z, v.speed, v.type, v.lane, v.slope))
+ e.vehicle += makeEntries(q.vehicle, chosen, options)
+ if options.persons and q.person:
+ e.vehicle += makeEntries(q.person, chosen, options)
yield e
t = lt - pt + lt
yield FCDTimeEntry(t)
@@ -121,6 +128,7 @@ def procFCDStream(fcdstream, options):
def runMethod(inputFile, outputFile, writer, options, further={}):
further["app"] = os.path.split(__file__)[1]
further["orig-ids"] = options.orig_ids
+ further["ignore-gaps"] = options.ignore_gaps
if options.base >= 0:
further["base-date"] = datetime.datetime.fromtimestamp(options.base)
else:
@@ -165,6 +173,10 @@ output format. Optionally the output can be sampled, filtered and distorted.
"--base-date", dest="base", default=-1, type="int", help="Defines the base date")
optParser.add_option("--orig-ids", dest="orig_ids", default=False, action="store_true",
help="Write original vehicle IDs instead of a running index")
+ optParser.add_option("--ignore-gaps", dest="ignore_gaps", default=False, action="store_true",
+ help="Ignore steps where a vehicle is not in the network")
+ optParser.add_option("--persons", default=False, action="store_true",
+ help="Include person data")
# PHEM
optParser.add_option("--dri-output", dest="dri", metavar="FILE",
help="Defines the name of the PHEM .dri-file to generate")
diff --git a/tools/traci/route.py b/tools/traci/route.py
index 02e1145..6424423 100644
--- a/tools/traci/route.py
+++ b/tools/traci/route.py
@@ -4,7 +4,7 @@
@author Michael Behrisch
@author Lena Kalleske
@date 2008-10-09
- at version $Id: route.py 18106 2015-03-19 08:08:16Z behrisch $
+ at version $Id: route.py 19415 2015-11-24 14:46:56Z behrisch $
Python implementation of the TraCI interface.
@@ -89,6 +89,10 @@ def getContextSubscriptionResults(routeID=None):
def add(routeID, edges):
+ """add(string, list(string)) -> None
+
+ Adds a new route with the given id consisting of the given list of edge IDs.
+ """
traci._beginMessage(tc.CMD_SET_ROUTE_VARIABLE, tc.ADD, routeID,
1 + 4 + sum(map(len, edges)) + 4 * len(edges))
traci._message.string += struct.pack("!Bi", tc.TYPE_STRINGLIST, len(edges))
diff --git a/tools/import/osm/SimpleWebSocketServer.py b/tools/webWizard/SimpleWebSocketServer.py
similarity index 99%
rename from tools/import/osm/SimpleWebSocketServer.py
rename to tools/webWizard/SimpleWebSocketServer.py
index 9bf110c..7e37095 100644
--- a/tools/import/osm/SimpleWebSocketServer.py
+++ b/tools/webWizard/SimpleWebSocketServer.py
@@ -2,7 +2,7 @@
@file SimpleWebSocketServer.py
@author Dave Pallot
@date 2013
- at version $Id: SimpleWebSocketServer.py 18764 2015-09-01 19:03:45Z behrisch $
+ at version $Id: SimpleWebSocketServer.py 19475 2015-12-01 11:42:08Z behrisch $
A web socket server implementation to be used by the osm server.py
Originally distributed under the MIT license at
diff --git a/tools/webWizard/__init__.py b/tools/webWizard/__init__.py
new file mode 100644
index 0000000..876469d
--- /dev/null
+++ b/tools/webWizard/__init__.py
@@ -0,0 +1,19 @@
+"""
+ at file __init__.py
+ at author Michael Behrisch
+ at date 2015-12-02
+ at version $Id: __init__.py 19475 2015-12-01 11:42:08Z behrisch $
+
+This file imports all webWizard dependencies.
+
+SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
+Copyright (C) 2012-2015 DLR (http://www.dlr.de/) and contributors
+
+This file is part of SUMO.
+SUMO is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+"""
+
+import SimpleWebSocketServer
diff --git a/tools/import/osm/images/bicycle.png b/tools/webWizard/images/bicycle.png
similarity index 100%
rename from tools/import/osm/images/bicycle.png
rename to tools/webWizard/images/bicycle.png
diff --git a/tools/import/osm/images/bus.png b/tools/webWizard/images/bus.png
similarity index 100%
rename from tools/import/osm/images/bus.png
rename to tools/webWizard/images/bus.png
diff --git a/tools/import/osm/images/generate.png b/tools/webWizard/images/generate.png
similarity index 100%
rename from tools/import/osm/images/generate.png
rename to tools/webWizard/images/generate.png
diff --git a/tools/import/osm/images/map.png b/tools/webWizard/images/map.png
similarity index 100%
rename from tools/import/osm/images/map.png
rename to tools/webWizard/images/map.png
diff --git a/tools/import/osm/images/motorcycle.png b/tools/webWizard/images/motorcycle.png
similarity index 100%
rename from tools/import/osm/images/motorcycle.png
rename to tools/webWizard/images/motorcycle.png
diff --git a/tools/import/osm/images/passenger.png b/tools/webWizard/images/passenger.png
similarity index 100%
rename from tools/import/osm/images/passenger.png
rename to tools/webWizard/images/passenger.png
diff --git a/tools/import/osm/images/pedestrian.png b/tools/webWizard/images/pedestrian.png
similarity index 100%
rename from tools/import/osm/images/pedestrian.png
rename to tools/webWizard/images/pedestrian.png
diff --git a/tools/import/osm/images/rail.png b/tools/webWizard/images/rail.png
similarity index 100%
rename from tools/import/osm/images/rail.png
rename to tools/webWizard/images/rail.png
diff --git a/tools/import/osm/images/rail_urban.png b/tools/webWizard/images/rail_urban.png
similarity index 100%
rename from tools/import/osm/images/rail_urban.png
rename to tools/webWizard/images/rail_urban.png
diff --git a/tools/import/osm/images/ship.png b/tools/webWizard/images/ship.png
similarity index 100%
rename from tools/import/osm/images/ship.png
rename to tools/webWizard/images/ship.png
diff --git a/tools/import/osm/images/tram.png b/tools/webWizard/images/tram.png
similarity index 100%
rename from tools/import/osm/images/tram.png
rename to tools/webWizard/images/tram.png
diff --git a/tools/import/osm/images/truck.png b/tools/webWizard/images/truck.png
similarity index 100%
rename from tools/import/osm/images/truck.png
rename to tools/webWizard/images/truck.png
diff --git a/tools/import/osm/index.html b/tools/webWizard/index.html
similarity index 98%
rename from tools/import/osm/index.html
rename to tools/webWizard/index.html
index daf3c4b..a2f2cb9 100644
--- a/tools/import/osm/index.html
+++ b/tools/webWizard/index.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <title>OSM Importer for SUMO</title>
+ <title>OSM Web Wizard for SUMO</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<script type="text/javascript" src="lib.js"></script>
diff --git a/tools/import/osm/lib.js b/tools/webWizard/lib.js
similarity index 100%
rename from tools/import/osm/lib.js
rename to tools/webWizard/lib.js
diff --git a/tools/import/osm/script.js b/tools/webWizard/script.js
similarity index 100%
rename from tools/import/osm/script.js
rename to tools/webWizard/script.js
diff --git a/tools/import/osm/style.css b/tools/webWizard/style.css
similarity index 100%
rename from tools/import/osm/style.css
rename to tools/webWizard/style.css
diff --git a/tools_filelist b/tools_filelist
index 149cfdd..249daff 100644
Binary files a/tools_filelist and b/tools_filelist differ
diff --git a/unittest/src/Makefile.am b/unittest/src/Makefile.am
index bb1dba7..56a8615 100644
--- a/unittest/src/Makefile.am
+++ b/unittest/src/Makefile.am
@@ -28,7 +28,6 @@ sumo_unittest_LDADD = \
./utils/common/ValueTimeLineTest.o \
./utils/geom/BoundaryTest.o \
./utils/geom/PositionVectorTest.o \
-./utils/geom/LineTest.o \
./utils/geom/GeomHelperTest.o \
./utils/geom/GeoConvHelperTest.o \
./netbuild/NBHeightMapperTest.o \
diff --git a/unittest/src/Makefile.in b/unittest/src/Makefile.in
index 6c87617..676904d 100644
--- a/unittest/src/Makefile.in
+++ b/unittest/src/Makefile.in
@@ -105,7 +105,6 @@ am__DEPENDENCIES_1 =
@WITH_GTEST_TRUE@ ./utils/common/ValueTimeLineTest.o \
@WITH_GTEST_TRUE@ ./utils/geom/BoundaryTest.o \
@WITH_GTEST_TRUE@ ./utils/geom/PositionVectorTest.o \
- at WITH_GTEST_TRUE@ ./utils/geom/LineTest.o \
@WITH_GTEST_TRUE@ ./utils/geom/GeomHelperTest.o \
@WITH_GTEST_TRUE@ ./utils/geom/GeoConvHelperTest.o \
@WITH_GTEST_TRUE@ ./netbuild/NBHeightMapperTest.o \
@@ -404,7 +403,6 @@ top_srcdir = @top_srcdir@
@WITH_GTEST_TRUE at ./utils/common/ValueTimeLineTest.o \
@WITH_GTEST_TRUE at ./utils/geom/BoundaryTest.o \
@WITH_GTEST_TRUE at ./utils/geom/PositionVectorTest.o \
- at WITH_GTEST_TRUE@./utils/geom/LineTest.o \
@WITH_GTEST_TRUE at ./utils/geom/GeomHelperTest.o \
@WITH_GTEST_TRUE at ./utils/geom/GeoConvHelperTest.o \
@WITH_GTEST_TRUE at ./netbuild/NBHeightMapperTest.o \
diff --git a/unittest/src/utils/geom/GeomHelperTest.cpp b/unittest/src/utils/geom/GeomHelperTest.cpp
index 9ac1d8b..d08d9d9 100644
--- a/unittest/src/utils/geom/GeomHelperTest.cpp
+++ b/unittest/src/utils/geom/GeomHelperTest.cpp
@@ -4,7 +4,7 @@
/// @author Laura Bieker
/// @author Michael Behrisch
/// @date 2011-12-12
-/// @version $Id: GeomHelperTest.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: GeomHelperTest.cpp 19222 2015-10-29 20:48:55Z behrisch $
///
// Tests the class GeomHelper
/****************************************************************************/
@@ -26,7 +26,7 @@
using namespace std;
-
+/*
TEST(GeomHelper, test_method_intersects) {
// on the same line but non-overlapping segments
EXPECT_FALSE(GeomHelper::intersects(
@@ -135,4 +135,4 @@ TEST(GeomHelper, test_method_closestDistancePointLine_outside_before) {
EXPECT_FLOAT_EQ(expected.y(), closestPoint.y());
EXPECT_FLOAT_EQ(expected.z(), closestPoint.z());
EXPECT_FLOAT_EQ(expectedDistance, result);
-}
+}*/
diff --git a/unittest/src/utils/geom/LineTest.cpp b/unittest/src/utils/geom/LineTest.cpp
deleted file mode 100644
index cf3f6e5..0000000
--- a/unittest/src/utils/geom/LineTest.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************/
-/// @file LineTest.cpp
-/// @author Matthias Heppner
-/// @author Michael Behrisch
-/// @author Jakob Erdmann
-/// @date 2009-11-11
-/// @version $Id: LineTest.cpp 18095 2015-03-17 09:39:00Z behrisch $
-///
-// Tests the class Line
-/****************************************************************************/
-// SUMO, Simulation of Urban MObility; see http://sumo.dlr.de/
-// Copyright (C) 2001-2015 DLR (http://www.dlr.de/) and contributors
-/****************************************************************************/
-//
-// This file is part of SUMO.
-// SUMO is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-/****************************************************************************/
-
-#include <gtest/gtest.h>
-#include <utils/geom/Line.h>
-#include <utils/geom/GeomHelper.h>
-
-
-/* Test the method 'intersectsAt' with no intersection, expected thrown exception*/
-//TODO must return NULL
-/*
-TEST(Line, test_method_intersectsAt_no_intersection) {
- Line line(Position(0,0),Position(2,2));
- Position pos = line.intersectsAt(Line(Position(0,3),Position(0,6)));
- EXPECT_EQUALS(NULL,pos);
-}
-*/
-
-/* Test the method 'intersectsAt' with intersection on an end position, expected thrown exception*/
-//TODO must return NULL
-/*
-TEST(Line, test_method_intersectsAt_at_end_position) {
- Line line(Position(0,0),Position(2,2));
- Position pos = line.intersectsAt(Line(Position(0,-1),Position(0,6)));
- EXPECT_EQUALS(NULL,pos);
-}
-*/
-
-/* Test the method 'add' with positive numbers*/
-TEST(Line, test_method_add_positive) {
- Line line(Position(0,0),Position(2,2));
- line.add(2,2);
- EXPECT_DOUBLE_EQ(2,(line.p1()).x());
- EXPECT_DOUBLE_EQ(2,(line.p1()).y());
- EXPECT_DOUBLE_EQ(4,(line.p2()).x());
- EXPECT_DOUBLE_EQ(4,(line.p2()).y());
-}
-
-/* Test the method 'add' with negative numbers*/
-TEST(Line, test_method_add_negative) {
- Line line(Position(0,0),Position(2,2));
- line.add(Position(-2,-2));
- EXPECT_DOUBLE_EQ(-2,(line.p1()).x());
- EXPECT_DOUBLE_EQ(-2,(line.p1()).y());
- EXPECT_DOUBLE_EQ(0,(line.p2()).x());
- EXPECT_DOUBLE_EQ(0,(line.p2()).y());
-}
-
-/* Test the method 'sub' with negative numbers*/
-TEST(Line, test_method_sub_negative) {
- Line line(Position(0,0),Position(2,2));
- line.sub(-2,-2);
- EXPECT_DOUBLE_EQ(2,(line.p1()).x());
- EXPECT_DOUBLE_EQ(2,(line.p1()).y());
- EXPECT_DOUBLE_EQ(4,(line.p2()).x());
- EXPECT_DOUBLE_EQ(4,(line.p2()).y());
-}
-
-/* Test the method 'sub' with positive numbers*/
-TEST(Line, test_method_sub_positive) {
- Line line(Position(0,0),Position(2,2));
- line.sub(2,2);
- EXPECT_DOUBLE_EQ(-2,(line.p1()).x());
- EXPECT_DOUBLE_EQ(-2,(line.p1()).y());
- EXPECT_DOUBLE_EQ(0,(line.p2()).x());
- EXPECT_DOUBLE_EQ(0,(line.p2()).y());
-}
-
-/* Test the method 'reverse' */
-TEST(Line, test_method_reverse) {
- Line line(Position(0,0),Position(2,2));
- Line lineReverse = line.reverse();
- EXPECT_DOUBLE_EQ(2,(lineReverse.p1()).x());
- EXPECT_DOUBLE_EQ(2,(lineReverse.p1()).y());
- EXPECT_DOUBLE_EQ(0,(lineReverse.p2()).x());
- EXPECT_DOUBLE_EQ(0,(lineReverse.p2()).y());
-}
-
-/* Test the method 'intersectsAtLength2D' */
-TEST(Line, test_method_intersectsAtLength2D) {
- Line line(Position(0,0),Position(2,2));
- SUMOReal point = line.intersectsAtLength2D(Line(Position(0,2),Position(2,0)));
- EXPECT_DOUBLE_EQ(sqrt(SUMOReal(2)), point);
-}
-
-/* Test the method 'intersectsAtLength' at the beginning */
-TEST(Line, test_method_intersectsAtLength_zero) {
- Line line(Position(0,0),Position(2,2));
- SUMOReal point = line.intersectsAtLength2D(Line(Position(0,0),Position(2,0)));
- EXPECT_DOUBLE_EQ(0, point);
-}
-
-/* Test the method 'intersectsAtLength' with no intersect. Must be -1*/
-TEST(Line, test_method_intersectsAtLength_no_intersect) {
- Line line(Position(0,0),Position(2,2));
- SUMOReal point = line.intersectsAtLength2D(Line(Position(0,3),Position(0,6)));
- EXPECT_DOUBLE_EQ(-1, point);
-}
-
-/* Test the method 'rotateAtP1' */
-TEST(Line, test_method_rotateAtP1) {
- Line line(Position(0,0),Position(2,2));
- line.rotateAtP1(M_PI/2);
- EXPECT_DOUBLE_EQ(-2,(line.p2()).x());
- EXPECT_DOUBLE_EQ(2,(line.p2()).y());
-}
-
-/* Test the method 'rotateAtP1' with negative rotation */
-TEST(Line, test_method_rotateAtP1_negative) {
- Line line(Position(0,0),Position(2,2));
- line.rotateAtP1(-3*M_PI/4);
- EXPECT_DOUBLE_EQ(1,SUMOReal((line.p2()).x())+1);
- EXPECT_DOUBLE_EQ(-2*sqrt(SUMOReal(2)),(line.p2()).y());
-}
-
-/* Test the method 'length' */
-TEST(Line, test_method_length) {
- Line line(Position(0,0),Position(0,2));
- EXPECT_DOUBLE_EQ(2,line.length());
- Line line2(Position(0,0),Position(-1,0));
- EXPECT_DOUBLE_EQ(1,line2.length());
- Line line3(Position(2,2),Position(2,2));
- EXPECT_DOUBLE_EQ(0,line3.length());
-}
-
-/* Test the method 'intersects' */
-TEST(Line, test_method_intersects) {
- Line line(Position(0,0),Position(2,2));
- EXPECT_TRUE(line.intersects(Line(Position(2,0),Position(0,2))));
- Line line2(Position(0,0),Position(2,2));
- EXPECT_FALSE(line.intersects(Line(Position(0,3),Position(0,6))));
- Line line3(Position(0,0),Position(2,2));
- EXPECT_TRUE(line.intersects(Line(Position(0,-1),Position(0,6))));
-}
-
-/* Test the method 'intersectsAt' */
-TEST(Line, test_method_intersectsAt) {
- Line line(Position(0,0),Position(2,2));
- Position pos = line.intersectsAt(Line(Position(2,0),Position(0,2)));
- EXPECT_DOUBLE_EQ(1,pos.x());
- EXPECT_DOUBLE_EQ(1,pos.y());
-}
-
-/* Test the method 'move2side' */
-TEST(Line, test_method_move2side) {
- Line line(Position(0,0),Position(2,2));
- line.move2side(SUMOReal(3));
- //TODO what do the method? correct the assertions.
- /*
- EXPECT_DOUBLE_EQ(0,(line.p1()).x());
- EXPECT_DOUBLE_EQ(3,(line.p1()).y());
- EXPECT_DOUBLE_EQ(2,(line.p2()).x());
- EXPECT_DOUBLE_EQ(5,(line.p2()).y());
- */
-}
diff --git a/unittest/src/utils/geom/Makefile.am b/unittest/src/utils/geom/Makefile.am
index e7e29fd..7f299ef 100644
--- a/unittest/src/utils/geom/Makefile.am
+++ b/unittest/src/utils/geom/Makefile.am
@@ -3,5 +3,4 @@ noinst_LIBRARIES = libtestgeom.a
libtestgeom_a_SOURCES = BoundaryTest.cpp \
GeoConvHelperTest.cpp \
PositionVectorTest.cpp \
-LineTest.cpp \
GeomHelperTest.cpp
diff --git a/unittest/src/utils/geom/Makefile.in b/unittest/src/utils/geom/Makefile.in
index bef5cc4..92f638f 100644
--- a/unittest/src/utils/geom/Makefile.in
+++ b/unittest/src/utils/geom/Makefile.in
@@ -100,7 +100,7 @@ libtestgeom_a_AR = $(AR) $(ARFLAGS)
libtestgeom_a_LIBADD =
am_libtestgeom_a_OBJECTS = BoundaryTest.$(OBJEXT) \
GeoConvHelperTest.$(OBJEXT) PositionVectorTest.$(OBJEXT) \
- LineTest.$(OBJEXT) GeomHelperTest.$(OBJEXT)
+ GeomHelperTest.$(OBJEXT)
libtestgeom_a_OBJECTS = $(am_libtestgeom_a_OBJECTS)
AM_V_P = $(am__v_P_ at AM_V@)
am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
@@ -313,7 +313,6 @@ noinst_LIBRARIES = libtestgeom.a
libtestgeom_a_SOURCES = BoundaryTest.cpp \
GeoConvHelperTest.cpp \
PositionVectorTest.cpp \
-LineTest.cpp \
GeomHelperTest.cpp
all: all-am
@@ -368,7 +367,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/BoundaryTest.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GeoConvHelperTest.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/GeomHelperTest.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/LineTest.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/PositionVectorTest.Po at am__quote@
.cpp.o:
diff --git a/unittest/src/utils/geom/PositionVectorTest.cpp b/unittest/src/utils/geom/PositionVectorTest.cpp
index 74f5c94..cfadb04 100644
--- a/unittest/src/utils/geom/PositionVectorTest.cpp
+++ b/unittest/src/utils/geom/PositionVectorTest.cpp
@@ -4,7 +4,7 @@
/// @author Michael Behrisch
/// @author Jakob Erdmann
/// @date 2009-10-24
-/// @version $Id: PositionVectorTest.cpp 18095 2015-03-17 09:39:00Z behrisch $
+/// @version $Id: PositionVectorTest.cpp 19252 2015-11-03 18:04:34Z behrisch $
///
// Tests the class PositionVector
/****************************************************************************/
@@ -274,6 +274,37 @@ TEST_F(PositionVectorTest, test_method_nearest_offset_to_point2D) {
}
+TEST_F(PositionVectorTest, test_method_extrapolate2D) {
+ PositionVector vec1;
+ vec1.push_back(Position(0,1,0));
+ vec1.push_back(Position(0,0,0));
+ vec1.push_back(Position(1,0,0));
+ vec1.extrapolate2D(1);
+ EXPECT_EQ(Position(0,2,0), vec1[0]);
+ EXPECT_EQ(Position(0,0,0), vec1[1]);
+ EXPECT_EQ(Position(2,0,0), vec1[2]);
+
+ PositionVector vec2;
+ vec2.push_back(Position(0,1,0));
+ vec2.push_back(Position(0,0,1));
+ vec2.push_back(Position(1,0,0));
+ vec2.extrapolate2D(1);
+// EXPECT_EQ(Position(0,2,0), vec2[0]);
+// EXPECT_EQ(Position(0,0,0), vec2[1]);
+// EXPECT_EQ(Position(2,0,0), vec2[2]);
+
+ PositionVector vec3;
+ vec3.push_back(Position(-.5,1));
+ vec3.push_back(Position(-.5,-.5));
+ vec3.push_back(Position(1,-.5));
+ vec3.extrapolate2D(.5);
+ EXPECT_EQ(Position(-.5,1.5), vec3[0]);
+ EXPECT_EQ(Position(-.5,-.5), vec3[1]);
+ EXPECT_EQ(Position(1.5,-.5), vec3[2]);
+
+}
+
+
/* Test the method 'move2side'*/
TEST_F(PositionVectorTest, test_method_move2side) {
PositionVector vec1;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/sumo.git
More information about the debian-science-commits
mailing list